Разработка базы данных патентов
Реализация системы управления, предоставляющей пользователю информацию о патенте. Основные предметно-значимые сущности и их атрибуты. Ограничения предметной области. Требования к функциям системы. Концептуальная схема базы данных в виде ER-диаграммы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 27.05.2013 |
Размер файла | 295,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
ГОУ ВПО «Московский государственный университет приборостроения и информатики»
Факультет ИТ
Кафедра ИТ-7 «Автоматизированные системы управления и информационные технологии»
ДОМАШНЯЯ РАБОТА
по дисциплине: «Управление данными»
на тему: «Разработка базы данных патентов»
Выполнил: студент 4-го курса
Группы 230201
специальности 230201
Кириченко М.А.
Преподаватель: Чижиков В.И.
Москва - 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 <QMainWindow>
#include <QtSql>
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 <QtGui/QApplication>
#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 <QtSql>
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->tableView_2->setHidden(true); // Видимость таблицы 2
ui->tableView_3->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->tableView_2->setHidden(false);
ui->tableView_3->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->tableView_2->setHidden(true);
ui->tableView_3->setHidden(true);
mod->setTable("Data");
}
else if(ui->comboBox->currentText() == "Claim") {
ui->tableView_2->setHidden(true);
ui->tableView_3->setHidden(true);
mod->setTable("Claim");
}
else if(ui->comboBox->currentText() == "Owner") {
ui->tableView_2->setHidden(true);
ui->tableView_3->setHidden(true);
mod->setTable("Owner");
}
else {
ui->tableView_2->setHidden(true);
ui->tableView_3->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->tableView_2->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->tableView_3->setModel(mod);
ui->tableView_3->setRowHeight(0,500);
ui->tableView_3->setColumnWidth(1,500);
}
// Выполняет SQL запрос при нажатии на кнопку
void MainWindow::on_pushButton_clicked()
{
ui->tableView_2->setHidden(true);
ui->tableView_3->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/51650/
5. http://citforum.ru/database/dblearn/dblearn06.shtml#01
Размещено на http://www.allbest.ru
Подобные документы
Сущности и функциональные зависимости базы данных. Атрибуты и связи. Таблицы базы данных. Построение ER-диаграммы. Организация ввода и корректировки данных. Реляционная схема базы данных. Реализация запросов, получение отчетов. Защита базы данных.
курсовая работа [2,4 M], добавлен 06.02.2016Информационно-логическая модель предметной области по нотациям Ричарда Баркера. Даталогическая модель реляционной базы данных в виде диаграммы схемы отношений. Приложение интерфейса для базы данных на языке программирования С# в среде Visual Studio.
курсовая работа [3,6 M], добавлен 23.12.2014Системный анализ и анализ требований к базе данных. Концептуальная и инфологическая модель предметной области. Типы атрибутов в логической модели базы. Физическая модель проектируемой базы данных в методологии IDEF1X. Требования к пользователям системы.
курсовая работа [2,3 M], добавлен 21.11.2013Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.
курсовая работа [318,6 K], добавлен 24.12.2014Определение понятия и общее описание базы данных как упорядоченной информационной системы на носителе информации. Описание предметной области и разработка приложения базы данных, содержащей информацию о расписании занятий, для преподавателей кафедры.
курсовая работа [1,3 M], добавлен 08.08.2012Цель инфологического моделирования предметной области. Источники данных, базы данных и система управления, разработка модели. Принципы проектирования базы данных, концептуальная, логическая, материальная разработка. Типы сущностей, атрибутов и связей.
курсовая работа [188,6 K], добавлен 15.07.2012Определение предметной области базы данных ("Сеть ресторанов"), виды ее моделирования. Первоначальный набор сущностей и атрибутов предметной области. Процесс смыслового наполнения базы данных. Атрибуты в концептуальной модели. Характеристика видов связей.
контрольная работа [510,9 K], добавлен 03.12.2014Разработка базы данных с информацией о сотрудниках, товарах, со справочником типов товаров средствами системы управления базами данных MySQL с помощью SQL-запросов. Разработка инфологической модели предметной области. Структура таблиц, полей базы данных.
контрольная работа [648,7 K], добавлен 13.04.2012Создание концептуальной (инфологической) модели системы, которая позволила описать сущности предметной области и отношения между ними. Диаграммы функциональных зависимостей атрибутов сущностей базы данных. Разработка программного обеспечения для ЭВМ.
курсовая работа [877,8 K], добавлен 28.05.2012Выбор методологии проектирования и системы управления базами данных. Описание предметной области и проектирование физической структуры базы данных. Реализация проекта в MS SQL Server 2008. Построение инфологической модели. Ограничения целостности связи.
курсовая работа [679,2 K], добавлен 22.01.2013