Автоматизированная информационная система, позволяющая осуществлять оперативную обработку информации, редактирование

Автор: Пользователь скрыл имя, 06 Декабря 2013 в 14:26, курсовая работа

Краткое описание

В данной курсовой работе в качестве предметной области рассматривается «Изделие на складе». База данных решает следующие задачи: учёт изделий, выдача данных о поставщиках и поставляемых ими товарах, выдача данных о покупателях и осуществляемых ими заказах.

Оглавление

Введение……………………………………………………………………5
1 Основная часть…………………………………………………………6
1.1 Описание предметной области……………………………………6
1.2 Структура реляционной базы данных……………………………9
1.3 Программа реализации информационных запросов……………13
1.4 Итоговые документы, полученные в результате
обработки информационных запросов…………………………………19
2 Вопросы стандартизации…………………………………………….24
Заключение……………………………………………………………….27
Список использованных источников…………………………………..

Файлы: 1 файл

Пояснительная записка БД.doc

— 598.50 Кб (Скачать)

— требует определить первичный ключ для таблицы, то есть тот столбец или комбинацию столбцов, которые однозначно определяют каждую строку.

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

Чтобы таблица  находилась в третьей нормальной форме, необходимо, чтобы неключевые столбцы в ней не зависели от других неключевых столбцов, а зависели только от первичного ключа.

База данных «Изделие на складе» нормализована по 1НФ, так как в ней нет повторяющихся столбцов, нет множественных столбцов. Кроме того, в базе данных каждая таблица имеет свой первичный ключ, который однозначно определяет каждый объект, т.е. таблицу.

База данных «Изделие на складе» автоматически сводится ко второй нормальной форме, так как в каждой ее таблице: Поставщик, Покупатель, Заказ - существует несоставной первичный ключ: Код поставщика, Код покупателя и Код заказа соответственно.

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

 

1.3 Программа  реализации информационных запросов.

Создание базы данных следует начинать с детальной разработки структуры ее таблиц. Эта структура должна быть такой, чтобы при работе с базой требовалось вводить в нее как можно меньше данных. Уже имеющиеся данные, должны быть доступны для выбора при добавлении новой записи с идентичными полями. Если ручной ввод каких-то данных приходится повторять неоднократно, то структуру базы необходимо изменить, придумав другой набор связанных таблиц, устраняющий этот недостаток.

База данных «Изделие на складе» имеет структуру, показанную на рисунке 2.

Рисунок 2 – Схема данных базы данных «Изделие на складе»

Данная структура  имеет таблицы Изделие, Заказ, Поставщик  и Покупатель. Таблица Поставщик связана с таблицей Заказ. Таблица Заказ связана с таблицами Изделие и Покупатель. Тем самым посредством этих связей можно осуществлять запросы необходимой информации по каждому полю таблицы при известных некоторых параметрах.

Данная база написана в среде программирования Borland Delphi. Она содержит главную форму, показанную на рисунке 3, нажимая на кнопки которой осуществляется переход в один из режимов базы данных – запросы и таблицы.

Рисунок 3 –  Главная форма

В режиме Таблицы, показанном на рисунке 4, осуществляется просмотр имеющихся таблиц на соответствующих вкладках, редактирование необходимой информации по каждой таблице и записи, которое включает изменение, вставка и удаление записей. Кроме того, для удобства поиска записи, которую необходимо редактировать, используется соответствующий запрос.

В курсовой работе осуществляется печать отчётов, для того чтобы перевести электронные данные в бумажный вид.

Рисунок 4 –  Режим «Таблицы» базы данных

Для построения пользовательского  интерфейса приложения Delphi, работающего с базой данных, используются различные компоненты. Для отображения таблиц используется компонент DBGrid, для их редактирования DBNavigator, кроме того используются стандартные компоненты – Button, Edit, Label. Для подключения оболочки к ядру базы данных, созданной в MS SQL Server использовались компоненты ADO: ADOConnection, ADOQuery, ADODataSet. Кроме того, для доступа к данным использовался компонент DataSource.

В режиме Запросы, показанном на рисунке 5, осуществляется поиск информации по таблицам при вводе некоторых параметров. Запросы осуществляются либо по одному полю, либо возможен сложный запрос, т.е. осуществление запроса по нескольким параметрам.

Рисунок 5 –  Режим «Запросы» базы данных

Кроме того, в  режиме «Запросы» осуществляется передача данных в Microsoft Word.

В базе данных для отбора информации используются SQL запросы. SQL символизирует собой Структурированный Язык Запросов. Это - язык, который дает возможность создавать и работать в реляционных базах данных, являющихся наборами связанной информации, сохраняемой в таблицах.

Язык манипулирования  данными используется для манипулирования данными в таблицах баз данных. Он состоит из 4 основных команд:

—SELECT (выбрать);

—INSERT (вставить);

—UPDATE (обновить);

—DELETE (удалить).

В своей курсовой работе для выбора необходимой информации я использовала команду SELECT, которая имеет следующий синтаксис:

SELECT [ALL|DISTINCT](<Список полей>)

FROM <Список таблиц>

[WHERE <Предикат-условие выборки или соединения>]

[GROUP BY <Список полей результата>]

В разделе FROM задается перечень исходных отношений (таблиц) запроса. В разделе WHERE задаются условия отбора строк результата или условия соединения кортежей исходных таблиц, подобно операции условного соединения в реляционной алгебре. В разделе GROUP BY задается список полей группировки.

Например, для выбора всей заказанной продукции, изображенного на рисунке 6, был прописан следующий код программы:

ADOQuery5.Close;

ADOQuery5.SQL.Clear;

ADOQuery5.SQL.Text:='SELECT Zakaz.ID_zakaza, Pokupatel.Name_pokup,Izdelie.Name_izd,Zakaz.Kol_zakaz_izd,Zakaz.Data_zakaza FROM Pokupatel, Zakaz, Izdelie where Pokupatel.ID_pokup=Zakaz.ID_pokup and Izdelie.ID_zakaza=Zakaz.ID_zakaza';

try

ADOQuery5.Open;

except

application.MessageBox('Не могу выполнить запрос','Ошибка',MB_OK);

end;

Рисунок 6 –  Форма запроса «Заказанная продукция»

А для выполнения динамического запроса, т.е. запроса, при котором параметры задаются в ходе выполнения приложения, представленного на рисунке 7, был использован следующий код:

 

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:= 'SELECT ID_postav,Name_postav,Adres,Telefon,FIO_directora FROM Postavshik WHERE Postavshik.ID_postav =:ID';

ADOQuery1.Parameters.ParamByName('ID').Value:=Edit1.Text;

try

ADOQuery1.Open;

except

application.MessageBox('Не могу выполнить запрос','Ошибка',MB_OK);

end;

 

Рисунок 7 –  Пример выполнения динамического запроса  «Поставщики»

 

 

1.4 Итоговые  документы, полученные в результате  обработки информационных запросов.

В большинстве  случаев данные, которые хранятся в таблицах баз данных, необходимо тем или иным способом публиковать, создавая так называемые отчёты.

В базе данных «Изделие на складе» осуществляется печать отчётов по выбранным таблицам с помощью технологии Borland Delphi Quick Report. Для создания формы отчёта, изображённой на рисунке 8, применяются компонент TQuickRep, TQRLabel, TQRDBText, TQRSysData.

Рисунок 8 –  Форма «Отчёт по поставщикам»

 

Информация  в данный отчёт добавляется при помощи компонентов ADO и компонента TQRDBText, в котором в свойствах компонента задаются соответствующие значения.

В итоге при  нажатии на форме Таблицы и  вкладке Поставщики кнопки «Печать  отчёта» появляется окно, показанное на рисунке 9.

 

Рисунок 9 –  Отчёт по поставщикам

 

Кроме того, в  курсовой работе реализована процедура переноса данных из таблиц в Microsoft Word. Для этого в обработчик событий кнопки, при нажатии которой происходит передача данных из таблицы компонента DBGrid в MS Word, необходимо прописать следующий код:

 

var

MyDir:String;

begin

Getdir(0,MyDir);

Wordapp:=CreateOleObject('Word.Application');

WordApp.Documents.Open(MyDir + '\2.doc');

Wordapp.Visible:=true;

// Печатаем заголовок

WordApp.Selection.TypeParagraph;

WordApp.Selection.Paragraphs.Alignment:=1;

WordApp.Selection.Font.Size:=12;

WordApp.Selection.Font.Bold:=true;

WordApp.Selection.TypeText('ООО "Корона"'+#13+#10);

WordApp.Selection.TypeParagraph;

WordApp.Selection.Paragraphs.Alignment:=1;

WordApp.Selection.Font.Size:=12;

WordApp.Selection.Font.Bold:=true;

WordApp.Selection.TypeText('Юридический адрес: ул. Рашрилевская, 142'+#13+#10);

WordApp.Selection.TypeParagraph;

WordApp.Selection.Paragraphs.Alignment:=1;

WordApp.Selection.Font.Size:=12;

WordApp.Selection.Font.Bold:=true;

WordApp.Selection.TypeText('ИНН: 2541234511'+#13+#10);

WordApp.Selection.TypeParagraph;

WordApp.Selection.Paragraphs.Alignment:=1;

WordApp.Selection.Font.Size:=20;

WordApp.Selection.Font.Bold:=true;

WordApp.Selection.TypeText('Отчёт о поставщиках'+#13+#10);

// Изменяем стиль текущего абзаца,

// потому что  он будет в таблице

WordApp.Selection.Font.Size:=12;

WordApp.Selection.Paragraphs.Alignment:=3;

WordApp.Selection.Font.Bold:=false;

 

// Создание таблицы

WordApp.ActiveDocument.Tables.Add(Range:=WordApp.Selection.Range,

NumRows:=2, NumColumns:=5,

DefaultTableBehavior:=1,

AutoFitBehavior:= 0);

// Заполнение таблицы

WordApp.Selection.Font.Bold:=true;

WordApp.Selection.TypeText('Код поставщика');

WordApp.Selection.MoveRight(12.1);

WordApp.Selection.Font.Bold:=true;

WordApp.Selection.TypeText('Наименование поставщика');

WordApp.Selection.MoveRight(12.1);

WordApp.Selection.Font.Bold:=true;

WordApp.Selection.TypeText('Адрес');

WordApp.Selection.MoveRight(12.1);

WordApp.Selection.Font.Bold:=true;

WordApp.Selection.TypeText('Телефон');

WordApp.Selection.MoveRight(12.1);

WordApp.Selection.Font.Bold:=true;

WordApp.Selection.TypeText('ФИО директора');

WordApp.Selection.MoveRight(12.1);

ADOQuery1.First;

while not ADOQuery1.eof do begin

WordApp.Selection.TypeText (ADOQuery1.FieldByName('ID_postav').asstring);

WordApp.Selection.MoveRight(12.1);

WordApp.Selection.TypeText(ADOQuery1.FieldByName('Name_postav').asstring);

WordApp.Selection.MoveRight(12.1);

WordApp.Selection.TypeText(ADOQuery1.FieldByName('Adres').asstring);

WordApp.Selection.MoveRight(12.1);

WordApp.Selection.TypeText(ADOQuery1.FieldByName('Telefon').asstring);

WordApp.Selection.MoveRight(12.1);

WordApp.Selection.TypeText(ADOQuery1.FieldByName('FIO_directora').asstring);

WordApp.Selection.MoveRight(12.1);

ADOQuery1.Next;

end;

end;

 

Пример формы, в которой реализована данная процедура, и результат выполнения данной процедуры приведены на рисунках 10, 11 соответственно. 

Рисунок 9 –  Форма «Запросы»

Рисунок 10 –  Отчёт о поставщиках

 

 

 

 

2 Вопросы  стандартизации

К современным  базам данных, а следовательно, и  к СУБД, на которых они строятся, предъявляются следующие основные требования:

  1. Высокое быстродействие (малое время отклика на запрос).

Время отклика - промежуток времени от момента  запроса к БД до фактического получения данных. Похожим является термин время доступа - промежуток времени между выдачей команды записи (считывания) и фактическим получением данных. Под доступом понимается операция поиска, чтения данных или записи их. Часто операции записи, удаления и модификации данных называют операцией обновления.

2) Простота обновления данных.

3) Независимость данных.

4) Совместное использование данных многими пользователями.

5) Безопасность данных - защита данных от преднамеренного или непреднамеренного нарушения секретности, искажения или разрушения.

6) Стандартизация построения и эксплуатации БД (фактически СУБД).

7) Адекватность отображения данных соответствующей предметной области.

8) Дружелюбный интерфейс пользователя.

Важнейшими  являются первые два противоречивых требования: повышение быстродействия требует упрощения структуры БД, что, в свою очередь, затрудняет процедуру обновления данных, увеличивает их избыточность.

Независимость данных - возможность изменения логической и физической структуры БД без  изменения представлений пользователей.

Независимость данных предполагает инвариантность к  характеру хранения данных, программному обеспечению и техническим средствам. Она обеспечивает минимальные изменения  структуры БД при изменениях стратегии  доступа к данным и структуры самих исходных данных. Это достигается, как будет показано далее, «смещением» всех изменений на этапы концептуального и логического проектирования с минимальными изменениями на этапе физического проектирования .

Информация о работе Автоматизированная информационная система, позволяющая осуществлять оперативную обработку информации, редактирование