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

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    151,83 Кб
  • Опубликовано:
    2013-05-27
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

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

Факультет ИТ

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






ДОМАШНЯЯ РАБОТА

по дисциплине: «Управление данными»

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


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

Группы 230201

специальности 230201

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

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




Москва - 2013

СОДЕРЖАНИЕ

ТЕКСТОВОЕ ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

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

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

Основные требования к функциям системы

МОДЕЛИРОВАНИЕ ДАННЫХ

Концептуальная схема базы данных в виде ER-диаграммы

Схема данных

ЛИСТИНГ

Листинг файла unititel4.pro

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

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

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

Форма mainwindow.ui

ТЕКСТОВОЕ ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

СУБД Патенты - центр информации о патентах. Представление более подробной информации о каждом из них.

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

база данный патент предметная

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

Сущности:

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

Patent_id

Claim

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

Data_id_number_of_filing_of_issue_of_patent

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

Сущности Owner соответствуют атрибуты:_id_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

+= core gui+= sql= untitled4= app+= main.cpp\.cpp+= mainwindow.h+= mainwindow.ui

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

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QtSql>Ui {MainWindow;

}MainWindow : public QMainWindow

{_OBJECT

public:

explicit MainWindow(QWidget *parent = 0);

~MainWindow();

private slots:

void on_pushButton_clicked();AllTable();showData(QModelIndex index);showClaim(QModelIndex index);

private:

Ui::MainWindow *ui;*model;*mod;

};

#endif // MAINWINDOW_H

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

#include <QtGui/QApplication>

#include "mainwindow.h"

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

{a(argc, argv);w;.show();a.exec();

}

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

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <QtSql>

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),(new Ui::MainWindow)

{>setupUi(this);

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

QSqlDatabase dbase = QSqlDatabase::addDatabase("QSQLITE");.setDatabaseName("patent.sqlite");

>tableView->setShowGrid(false); // Убирает сетку в таблице>tableView_2->setHidden(true); // Видимость таблицы 2>tableView_3->setHidden(true); // Видимость Таблицы 3

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

ui->comboBox->clear();>comboBox->insertItem(0,"ChoseTable");>comboBox->insertItem(1,"Patent");>comboBox->insertItem(3,"Data");>comboBox->insertItem(4,"Claim");>comboBox->insertItem(5,"Owner");

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

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

}::~MainWindow()

{ui;

}

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

void MainWindow::AllTable()

{= new QSqlRelationalTableModel(this);(ui->comboBox->currentText() == "Patent") {>tableView_2->setHidden(false);>tableView_3->setHidden(false);

mod->setTable("Patent");

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

mod->setRelation(2, QSqlRelation("Owner", "Owner_id", "Owner_Name"));>setRelation(4, QSqlRelation("Data", "Data_id", "Data_id"));>setRelation(5, QSqlRelation("Claim", "Claim_id", "Claim_id"));

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

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

}if(ui->comboBox->currentText() == "Data") {>tableView_2->setHidden(true);>tableView_3->setHidden(true);>setTable("Data");

}if(ui->comboBox->currentText() == "Claim") {>tableView_2->setHidden(true);>tableView_3->setHidden(true);>setTable("Claim");

}if(ui->comboBox->currentText() == "Owner") {>tableView_2->setHidden(true);>tableView_3->setHidden(true);>setTable("Owner");

}{>tableView_2->setHidden(true);>tableView_3->setHidden(true);>clear();

}>select();>tableView->setModel(mod);

}

// Активируется в 1 таблице по сигналу, показывает данные во 2 таблицеMainWindow::showData(QModelIndex index)

{= new QSqlRelationalTableModel;record = mod->record(index.row());>setTable("Data");>setFilter("Data_id = '" + index.data().toString() + '\'');>select();>tableView_2->setModel(mod);

}

// Активируется в 1 таблице по сигналу, показывает данные во 3 таблицеMainWindow::showClaim(QModelIndex index)

{= new QSqlRelationalTableModel;record = mod->record(index.row());>setTable("Claim");>setFilter("Claim_id = '" + index.data().toString() + '\'');>select();>tableView_3->setModel(mod);>tableView_3->setRowHeight(0,500);>tableView_3->setColumnWidth(1,500);

}

// Выполняет SQL запрос при нажатии на кнопкуMainWindow::on_pushButton_clicked()

{>tableView_2->setHidden(true);>tableView_3->setHidden(true);= new QSqlQueryModel;query;str = ui->lineEdit->text();.exec(str);>setQuery(query);>tableView->setModel(model);

}

Форма mainwindow.ui




Список литературы

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

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

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

. http://habrahabr.ru/post/51650/

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

Похожие работы на - Разработка базы данных патентов

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!