Помощь в написании студенческих работ
Антистрессовый сервис

Разработка базы данных патентов

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Data_id — ключевой атрибут, содержит уникальное значение. Устанавливает отношения между таблицей Patent и другими. ДОМАШНЯЯ РАБОТА по дисциплине: «Управление данными». Connect (ui→tableView, SIGNAL (clicked (QModelIndex)), this, SLOT (showClaim (QModelIndex))); При нажатии, отправляет сигнал в слот showData и showClaim. Connect (ui→tableView, SIGNAL (clicked (QModelIndex)), this, SLOT (showData… Читать ещё >

Разработка базы данных патентов (реферат, курсовая, диплом, контрольная)

ГОУ ВПО «Московский государственный университет приборостроения и информатики»

Факультет ИТ Кафедра ИТ-7 «Автоматизированные системы управления и информационные технологии»

ДОМАШНЯЯ РАБОТА по дисциплине: «Управление данными»

на тему: «Разработка базы данных патентов»

Выполнил: студент 4-го курса Группы 230 201

специальности 230 201

Кириченко М.А.

Преподаватель: Чижиков В.И.

Москва — 2013

СОДЕРЖАНИЕ ТЕКСТОВОЕ ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ Основные предметно-значимые сущности и их атрибуты Ограничения предметной области Основные требования к функциям системы МОДЕЛИРОВАНИЕ ДАННЫХ Концептуальная схема базы данных в виде ER-диаграммы Схема данных ЛИСТИНГ Листинг файла unititel4.pro

Листинг файла mainwindow. h

Листинг файла main. cpp

Листинг файла mainwindow. cpp

Форма mainwindow. ui

ТЕКСТОВОЕ ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ СУБД Патенты — центр информации о патентах. Представление более подробной информации о каждом из них.

В своей работе я попытался реализовать систему управления, которая сможет предоставить пользователю информацию о патенте. База данных patent. sqlite, создана в программе SQLiteManager.

база данный патент предметная Основные предметно-значимые сущности и их атрибуты Сущности:

Patent

Data

Claim

Owner

Сущности Patent соответствуют атрибуты:

Patent_id

Title

Owner

Country

Data

Claim

Сущности Data соответствуют атрибуты:

Data_id

Patent_number

Date_of_filing

Date_of_issue

Class_of_patent

Сущности Claim соответствуют атрибуты:

Claim_id

Formula

Сущности Owner соответствуют атрибуты:

Owner_id

Owner_Name

Ограничения предметной области

Patent — содержит следующие данные:

— Patent_id — ключевой атрибут, содержит уникальное значение.

— Title — название патента.

— Owner — атрибут типа int, который устанавливает отношение с сущностью Owner.

— Country — страна патентования.

— Data — атрибут типа int, который устанавливает отношение с сущностью Data.

— Claim — атрибут типа int, который устанавливает отношение с сущностью Claim.

2) Data — содержит следующие данные:

— Data_id — ключевой атрибут, содержит уникальное значение.

— Patent_number — идентификационный номер патента.

— Data_of_filing — дата подачи заявки.

— Data_of_issue — дата принятия заявки.

— Class_of_patent — класс патента.

3) Claim — содержит следующие данные:

— Claim_id — ключевой атрибут, содержит уникальное значение.

— Formula — формула патента.

4) Owner — содержит следующие данные:

— Owner_id — ключевой атрибут, содержит уникальное значение.

Основные требования к функциям системы Основные требования к надежности базы данных:

-обеспечение целостности хранимой информации;

-обеспечение защиты базы данных от несанкционированного доступа.

МОДЕЛИРОВАНИЕ ДАННЫХ Концептуальная схема базы данных в виде ER-диаграммы Схема данных ЛИСТИНГ Листинг файла unititel4.pro

QT += core gui

QT += sql

TARGET = untitled4

TEMPLATE = app

SOURCES += main. cpp

mainwindow.cpp

HEADERS += mainwindow. h

FORMS += mainwindow. ui

Листинг файла mainwindow. h

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

namespace Ui {

class MainWindow;

}

class MainWindow: public QMainWindow

{

Q_OBJECT

public:

explicit MainWindow (QWidget *parent = 0);

~MainWindow ();

private slots:

void on_pushButton_clicked ();

void AllTable ();

void showData (QModelIndex index);

void showClaim (QModelIndex index);

private:

Ui:MainWindow *ui;

QSqlQueryModel *model;

QSqlRelationalTableModel *mod;

};

#endif // MAINWINDOW_H

Листинг файла main. cpp

#include

#include «mainwindow.h»

int main (int argc, char *argv[])

{

QApplication a (argc, argv);

MainWindow w;

w.show ();

return a. exec ();

}

Листинг файла mainwindow. cpp

#include «mainwindow.h»

#include «ui_mainwindow.h»

#include

MainWindow:MainWindow (QWidget *parent) :

QMainWindow (parent),

ui (new Ui: MainWindow)

{

ui->setupUi (this);

// Соединение с базой данных

QSqlDatabase dbase = QSqlDatabase: addDatabase («QSQLITE»);

dbase.setDatabaseName («patent.sqlite»);

ui->tableView->setShowGrid (false); // Убирает сетку в таблице

ui->tableView2->setHidden (true); // Видимость таблицы 2

ui->tableView3->setHidden (true); // Видимость Таблицы 3

// Очистка комбо-бокса и вставка вариантов

ui->comboBox->clear ();

ui->comboBox->insertItem (0," ChoseTable");

ui->comboBox->insertItem (1," Patent");

ui->comboBox->insertItem (3," Data");

ui->comboBox->insertItem (4," Claim");

ui->comboBox->insertItem (5," Owner");

// При выборе варианта в комбо-боксе, отправляется сигнал в слот AllTable

connect (ui->comboBox, SIGNAL (currentIndexChanged (QString)), SLOT (AllTable ()));

}

MainWindow:~MainWindow ()

{

delete ui;

}

// Функция, которая отображает варианты выбранные в комбо-боксе

void MainWindow: AllTable ()

{

mod = new QSqlRelationalTableModel (this);

if (ui->comboBox->currentText () == «Patent») {

ui->tableView2->setHidden (false);

ui->tableView3->setHidden (false);

mod->setTable («Patent»);

// Устанавливает отношения между таблицей Patent и другими

mod->setRelation (2, QSqlRelation («Owner», «Owner_id», «Owner_Name»));

mod->setRelation (4, QSqlRelation («Data», «Data_id», «Data_id»));

mod->setRelation (5, QSqlRelation («Claim», «Claim_id», «Claim_id»));

// При нажатии, отправляет сигнал в слот showData и showClaim

connect (ui->tableView, SIGNAL (clicked (QModelIndex)), this, SLOT (showData (QModelIndex)));

connect (ui->tableView, SIGNAL (clicked (QModelIndex)), this, SLOT (showClaim (QModelIndex)));

}

else if (ui->comboBox->currentText () == «Data») {

ui->tableView2->setHidden (true);

ui->tableView3->setHidden (true);

mod->setTable («Data»);

}

else if (ui->comboBox->currentText () == «Claim») {

ui->tableView2->setHidden (true);

ui->tableView3->setHidden (true);

mod->setTable («Claim»);

}

else if (ui->comboBox->currentText () == «Owner») {

ui->tableView2->setHidden (true);

ui->tableView3->setHidden (true);

mod->setTable («Owner»);

}

else {

ui->tableView2->setHidden (true);

ui->tableView3->setHidden (true);

mod->clear ();

}

mod->select ();

ui->tableView->setModel (mod);

}

// Активируется в 1 таблице по сигналу, показывает данные во 2 таблице

void MainWindow: showData (QModelIndex index)

{

mod = new QSqlRelationalTableModel;

QSqlRecord record = mod->record (index.row ());

mod->setTable («Data»);

mod->setFilter («Data_id = '» + index. data ().toString () + ''');

mod->select ();

ui->tableView2->setModel (mod);

}

// Активируется в 1 таблице по сигналу, показывает данные во 3 таблице

void MainWindow: showClaim (QModelIndex index)

{

mod = new QSqlRelationalTableModel;

QSqlRecord record = mod->record (index.row ());

mod->setTable («Claim»);

mod->setFilter («Claim_id = '» + index. data ().toString () + ''');

mod->select ();

ui->tableView3->setModel (mod);

ui->tableView3->setRowHeight (0,500);

ui->tableView3->setColumnWidth (1,500);

}

// Выполняет SQL запрос при нажатии на кнопку

void MainWindow: on_pushButton_clicked ()

{

ui->tableView2->setHidden (true);

ui->tableView3->setHidden (true);

model = new QSqlQueryModel;

QSqlQuery query;

QString str = ui->lineEdit->text ();

query.exec (str);

model->setQuery (query);

ui->tableView->setModel (model);

}

Форма mainwindow. ui

1. Дейт К. «Введение в системы баз данных»

2. http://doc.crossplatform.ru/qt/4.5.0/qsqlrelationaltablemodel.html

3. http://citforum.ru/database/dblearn/dblearn06.shtml#01

4. http://habrahabr.ru/post/51 650/

5. http://citforum.ru/database/dblearn/dblearn06.shtml#01

Показать весь текст
Заполнить форму текущей работой