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

Содержание

Введение……………………………………………………………………5

1   Основная часть…………………………………………………………6

    1. Описание предметной области……………………………………6
    2. Структура реляционной базы данных……………………………9
    3. Программа реализации информационных запросов……………13
    4. Итоговые документы, полученные в результате

обработки информационных запросов…………………………………19

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

Заключение……………………………………………………………….27

Список использованных источников…………………………………..28

Приложение  А

 

 

Введение

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

Совокупность  сведений о каких-либо объектах, процессах, событиях или явлениях, организованная таким образом, чтобы можно было легко представить любую часть  этой совокупности, называют базой  данных. Задачи хранения, получения, анализа  данных принято называть управлением данными, а программы для решения подобных задач – системами управления базами данных (СУБД).

Любая СУБД позволяет  выполнять четыре простейшие операции с данными:

-  добавить в таблицу одну или несколько записей;

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

Для выполнения этих операций используется механизм запросов. Результатом выполнения запросов является либо отобранное по определённым критериям множество записей, либо изменение в таблицах.

Объектом данной курсовой работы является «Изделие на складе». Главная задача курсовой работы – создание базы данных «Склад изделий», в которой бы автоматизировалась работа по сбору, редактированию и поиску информации. Данную задачу необходимо реализовать в среде разработки баз данных MS SQL Server и Borland Delphi.

 

1 Основная  часть

    1. Описание предметной области.

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

Связь устанавливается  между двумя общими полями (столбцами) двух таблиц. Существуют связи с отношением «один-к-одному», «один-ко-многим» и «многие-ко-многим».

Отношения, которые  могут существовать между записями двух таблиц:

– один – к - одному, каждой записи из одной таблицы соответствует одна запись в другой таблице;

– один – ко - многим, каждой записи из одной таблицы соответствует несколько записей  другой таблице;

– многие – ко - многим, множеству записей из одной таблицы соответствует несколько записей в другой таблице.

Тип отношения  в создаваемой связи зависит от способа определения связываемых полей:

Отношение «один-ко-многим»  создается в том случае, когда  только одно из полей является полем  первичного ключа или уникального  индекса.

Отношение «один-к-одному»  создается в том случае, когда  оба связываемых поля являются ключевыми или имеют уникальные индексы.

Отношение «многие-ко-многим»  фактически является двумя отношениями  «один-ко-многим» с третьей таблицей, первичный ключ которой состоит  из полей внешнего ключа двух других таблиц

Ключ – это  столбец (может быть несколько столбцов), добавляемый к таблице и позволяющий установить связь с  записями в другой таблице. Существуют ключи двух типов: первичные и вторичные или внешние.

Первичный ключ – это одно или несколько полей (столбцов), комбинация значений которых однозначно определяет каждую запись в таблице. Первичный ключ не допускает значений Null и всегда должен иметь уникальный индекс. Первичный ключ используется для связывания таблицы с внешними ключами в других таблицах.

Внешний (вторичный) ключ - это одно или несколько полей (столбцов) в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице. Внешний ключ определяет способ объединения таблиц.

Из двух логически  связанных таблиц одну называют таблицей первичного ключа или главной таблицей, а другую таблицей вторичного (внешнего) ключа или подчиненной таблицей.

Рассмотрим, какой  вид связи осуществлён в данной курсовой работе. Курсовая работа содержит четыре таблицы: Поставщик, Покупатель, Заказ и Изделие. Каждая из этих таблиц имеет связь 1:N с другой таблицей.

Это означает, что  один поставщик может осуществить  поставку множества заказов, и много  заказов может удовлетворить один поставщик. Таблица Поставщик имеет следующие поля: Код поставщика, Наименование поставщика, Адрес, Телефон и ФИО директора. Первичным ключом является поле Код поставщика. Оно связывается с внешним ключом в таблице Заказ, которая имеет ключевое поле Код заказа и поля: Код поставщика, Код покупателя, Количество заказанных изделий и Дата заказа.

Таблица Покупатель также связывается с таблицей Заказ связью 1:N. Т.е. один покупатель может осуществлять заказ на разные изделия, и много заказов могут быть созданы одним покупателем. Таблицы Заказ и Покупатель связываются при помощи поля Код покупателя, который в таблице Покупатель является первичным ключом, а в таблице Заказ вторичным. Кроме того таблица Покупатель содержит поля Наименование покупателя, Адрес, Телефон и ФИО директора.

И наконец, таблица  Изделия связывается с таблицей Заказ тоже связью 1:N.  Данная таблица имеет поля Наименование изделия, Срок годности, Дата производства, Страна производства, Количество поставленных изделий и ключевое поле Код заказа. Тем самым один заказ может осуществляться на множество изделий, и  множество изделий может входить в один заказ.

Концептуальная модель данных, изображенная на рисунке 1, отражает таблицы  базы данных, поля и связи между  ними.





 


 

 

 

 

 

 

 

 






 

Рисунок 1 – Концептуальная модель базы данных «Изделие на складе»

 

1.2 Структура реляционной  базы данных.

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

Существуют 4 основные модели данных – списки (плоские  таблицы), реляционные базы данных, иерархические и сетевые структуры.

Реляционной называется база данных, в которой все данные, доступные пользователю, организованны в виде таблиц, а все операции над данными сводятся к операциям над этими таблицами. Приведенное определение не оставляет места встроенным указателям, имеющимся в иерархических и сетевых СУБД.

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

Реляционная модель ориентирована  на организацию данных в виде двумерных  таблиц. Каждая реляционная таблица  представляет собой двумерный массив и обладает следующими свойствами:

— каждый элемент таблицы — один элемент данных;

— все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.);

— каждый столбец имеет уникальное имя;

— одинаковые строки в таблице отсутствуют;

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

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

Любую структуру данных можно  преобразовать в простую двумерную  таблицу. Такое представление является наиболее удобным и для пользователя, и для машины, - подавляющее большинство современных информационных систем работает именно с такими таблицами. Базы данных, которые состоят из двумерных таблиц, называются реляционными.

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

В основе современных реляционных  баз данных (и стандарта SQL) лежит  несколько правил и принципов:

1) Все значения данных состоят из простых типов данных. В SQL отсутствуют массивы, указатели, векторы и другие сложные типы данных.

2) Все данные в реляционной базе данных изображаются в форме двумерных таблиц (на языке математики – “отношений”). Каждая таблица содержит некоторое число строк (в том числе 0), называемых “картежами” и один или несколько столбцов, называемых “атрибутами”. Все строки в таблице имеют одну и ту же последовательность столбцов, в которых записаны различные значения, однако наборы значений в столбцах отличаются.

3) После того как данные введены в БД, можно сравнивать значения в различных столбцах (в том числе и для разных таблиц) или объединять строки, в которых найдено совпадение. Это позволяет соотносить между собой строки и производить очень сложные операции обработки над всеми данными, находящимися в базе.

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

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

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

Другая сильная  сторона реляционных БД в том, что они содержат встроенный язык запросов SQL.

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

База данных считается  нормализованной, если ее таблицы (по крайней  мере, большинство таблиц) представлены как минимум в третьей нормальной форме.

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

Нормализация включает ряд  формальных правил, используемых для  проверки всех отношений базы данных. Различают основные нормальные формы: первая нормальная форма (1НФ), вторая нормальная форма (2НФ) и третья нормальная форма (3НФ).

Первая нормальная форма:

— запрещает повторяющиеся столбцы (содержащие одинаковую по смыслу информацию)

— запрещает множественные столбцы (содержащие значения типа списка и т.п.)

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

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

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

База данных «Изделие на складе» нормализована по 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) Дружелюбный интерфейс пользователя.

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

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

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

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