Нормализация БД

Автор работы: Пользователь скрыл имя, 11 Декабря 2012 в 05:07, практическая работа

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

Перечень:
Название книги, автор книги, вид(жанр) книги, год издания книги, издательство, город издательства, год издания, количество страниц, код ISBN, код УДК, код ББК, стандарт упаковки, цена покупки, оптовая цена, розничная цена, складской остаток, наименование партнёра, город партнёра, адрес партнёра, контактёр, телефон портнёра, электронная почта партнёра, финансовое сальдо, коэффициент скидки-наценки, срок реализации, дата документа, тип операции, партнёр, срок возврата нереализованной продукции, величина скидки/наценки, сумма накладной, оплаченная сумма, сумма возврата, направление.

Прикрепленные файлы: 1 файл

ИТ-16 СОЛОМАТИН НОРМАЛИЗАЦИЯ.doc

— 3.09 Мб (Скачать документ)

 

 

 

 

Но при использовании  программы «АНАЛИЗ» позволяет получить структуру данных соответствующей 5 НФ. Для нашей задачи эта структура избыточно детализирована, она имеет завышенное количество таблиц и число связей, запросы в ней будут выполняться медленно.

 

 

 

На рисунке представлен  ручной способ нормализации, на мой  взгляд она является более  простой  и удобной, потому что в ней имеется меньше таблиц и меньше связей, чем при использовании программы «АНАЛИЗ».

 

Четвёртая нормальная форма (4NF)

Таблица находится в 4NF, если она находится в BCNF и не содержит нетривиальных многозначных зависимостей.

Четвёртая нормальная форма (4NF) — одна из возможных нормальных форм отношения реляционной базы данных.

Определение

Отношение находится  в 4NF, если оно находится в НФБК и не содержит нетривиальных многозначных зависимостей. То есть все многозначные зависимости являются, по сути, функциональными  зависимостями от ключей отношения.

Пятая нормальная форма (5NF)

Отношение находится  в пятой нормальной форме (иначе — в проекционно-соединительной нормальной форме) тогда и только тогда, когда каждая нетривиальная зависимость соединения в нём определяется потенциальным ключом (ключами) этого отношения.

Пятая нормальная форма (5NF) — одна из возможных нормальных форм отношения реляционной базы данных.

Определение

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

Свойства 5НФ

Любое отношение в 5НФ автоматически находится также  в 4НФ и, следовательно, во всех других нормальных формах. 5НФ является окончательной  нормальной формой (по крайней мере в контексте операций проекции и соединения).

Рональд Фейгин в 1979 г. показал, что любая переменная отношения  может быть подвергнута декомпозиции без потерь на эквивалентный набор  переменных отношения в 5НФ, т.е. 5НФ всегда достижима. Однако К. Дейт отмечает, что процедура определения того, что некоторая переменная отношения все еще находится в 4НФ, а не в 5НФ, и, таким образом, существует возможность ее дальнейшей выгодной декомпозиции, все еще остается не вполне ясной. Это связано с тем, что задача определения всех зависимостей соединения для отношения может оказаться очень сложной, а по поводу отношения можно утверждать, что оно находится в 5НФ, только при условии известности всех его потенциальных ключей и всех его зависимостей соединения.

Очень редко отношение, находящееся в 4НФ, не соответствует 5НФ. Это те ситуации, в которых реальные правила, ограничивающие допустимые комбинации атрибутов, никак не выражены в структуре отношения (см. пример ниже). В таком случае, если отношение не приведено к 5НФ, бремя обеспечения логической целостности данных отчасти перекладывается на приложение, отвечающее за добавление, удаление и изменения данных. В этом случае существует риск возникновения ошибок. Пятая нормальная форма исключает возникновение таких аномалий.

 

Импортирование Базы MS Access в среду программирования Borland Delphi 7.

Создаём новый проект в Delphi 7(File\New\Application).

На форму  необходимо поместить следующие  компоненты:

  • DBGrid1
  • Button1
  • DataSource1
  • DBNavigator1
  • ADOConnection1
  • ADOQuery1

Осущствляем связь и вывод с базы Access с помощью компонентов ADO.

  • Для этого выбираем компонент ADOConnection1, открываем Инспектор объектов(Object inspector), переходим во вкладку properties и ищем пункт connectionString. Откроется окно выбора способа соединения с базой. Выбираем флажок «Use Connection String».  Выбираем поставщика данных(Microsoft Jet 4.0 OLE DB Provider). Во вкладке «Подключение» Указываем путь/местонахождение нашей Access базы с расширением «.mdb». Закрываем все окна. Связываем ADOQuery1 с ADOConnection1 в нспекотре обьектов с помощью пункта «Connection». Где воможно указываем «Datasourse». По тому же принципу связываем все остальные компоненты. Необходимо провести SQL-запрос. Для этого выбираем компонент ADOQuery1. В пункте «SQL» вводим «Select * from название_таблицы». После чего активируем каждый компонент пунктом «Active». Если всё прошло успешно то в DBGrid1 выведется выбранная SQL-запросом таблица. Для осуществления вывода информации в MS Excel небходимо отредактировать Button1 следующим образом:

Пример вывода таблицы с 2мя столбцами.

procedure TForm1.Button1Click(Sender: TObject);

var

List,XApp: Variant;

Index,i,j:integer;

begin

XApp:=CreateOleObject('Excel.Application');

XApp.visible:=true;

XApp.WorkBooks.Add(-4167);

XApp.WorkBooks[1].WorkSheets[1].Name:='Отчёт';

 

List:=XApp.WorkBooks[1].WorkSheets['Отчёт'].Columns;

 

List.Columns[1].ColumnWidth:=10;

List.Columns[2].ColumnWidth:=13;

List:=XApp.WorkBooks[1].WorkSheets['Отчёт'].Rows;

List.Rows[1].font.size:=14;

List.Rows[1].font.italic:=false;

List.Rows[1].font.bold:=true;

List.Rows[2].font.bold:=true;

List:=XApp.WorkBooks[1].WorkSheets['Отчёт'];

List.Cells[1,3]:='Отчёт';

List.cells[2,1]:='Код ББК';

List.Cells[2,2]:='Код';

Index:=3;

adoquery1.First;

for i:=1 to adoquery1.RecordCount do

begin for j:=1 to DBGrid1.Columns.Count do

List.Cells[index,j]:=DBGrid1.Fields[j-1].AsString;

Index:=Index+1;

adoquery1.Next;

end;

end;

 

 

 

 


Информация о работе Нормализация БД