Автор работы: Пользователь скрыл имя, 11 Декабря 2012 в 05:07, практическая работа
Перечень:
Название книги, автор книги, вид(жанр) книги, год издания книги, издательство, город издательства, год издания, количество страниц, код ISBN, код УДК, код ББК, стандарт упаковки, цена покупки, оптовая цена, розничная цена, складской остаток, наименование партнёра, город партнёра, адрес партнёра, контактёр, телефон портнёра, электронная почта партнёра, финансовое сальдо, коэффициент скидки-наценки, срок реализации, дата документа, тип операции, партнёр, срок возврата нереализованной продукции, величина скидки/наценки, сумма накладной, оплаченная сумма, сумма возврата, направление.
Но при использовании программы «АНАЛИЗ» позволяет получить структуру данных соответствующей 5 НФ. Для нашей задачи эта структура избыточно детализирована, она имеет завышенное количество таблиц и число связей, запросы в ней будут выполняться медленно.
На рисунке представлен ручной способ нормализации, на мой взгляд она является более простой и удобной, потому что в ней имеется меньше таблиц и меньше связей, чем при использовании программы «АНАЛИЗ».
Таблица находится в 4NF, если она находится в BCNF и не содержит нетривиальных многозначных зависимостей.
Четвёртая нормальная форма (4NF) — одна из возможных нормальных форм отношения реляционной базы данных.
Отношение находится в 4NF, если оно находится в НФБК и не содержит нетривиальных многозначных зависимостей. То есть все многозначные зависимости являются, по сути, функциональными зависимостями от ключей отношения.
Отношение находится в пятой нормальной форме (иначе — в проекционно-соединительной нормальной форме) тогда и только тогда, когда каждая нетривиальная зависимость соединения в нём определяется потенциальным ключом (ключами) этого отношения.
Пятая нормальная форма (5NF) — одна из возможных нормальных форм отношения реляционной базы данных.
Для определения пятой нормальной формы следует предварительно ввести понятие зависимости соединения, которое, в свою очередь основано на понятии декомпозиции без потерь.
Любое отношение в 5НФ автоматически находится также в 4НФ и, следовательно, во всех других нормальных формах. 5НФ является окончательной нормальной формой (по крайней мере в контексте операций проекции и соединения).
Рональд Фейгин в 1979 г. показал, что любая переменная отношения может быть подвергнута декомпозиции без потерь на эквивалентный набор переменных отношения в 5НФ, т.е. 5НФ всегда достижима. Однако К. Дейт отмечает, что процедура определения того, что некоторая переменная отношения все еще находится в 4НФ, а не в 5НФ, и, таким образом, существует возможность ее дальнейшей выгодной декомпозиции, все еще остается не вполне ясной. Это связано с тем, что задача определения всех зависимостей соединения для отношения может оказаться очень сложной, а по поводу отношения можно утверждать, что оно находится в 5НФ, только при условии известности всех его потенциальных ключей и всех его зависимостей соединения.
Очень редко отношение, находящееся в 4НФ, не соответствует 5НФ. Это те ситуации, в которых реальные правила, ограничивающие допустимые комбинации атрибутов, никак не выражены в структуре отношения (см. пример ниже). В таком случае, если отношение не приведено к 5НФ, бремя обеспечения логической целостности данных отчасти перекладывается на приложение, отвечающее за добавление, удаление и изменения данных. В этом случае существует риск возникновения ошибок. Пятая нормальная форма исключает возникновение таких аномалий.
Импортирование Базы MS Access в среду программирования Borland Delphi 7.
Создаём новый проект в Delphi 7(File\New\Application).
На форму необходимо поместить следующие компоненты:
Осущствляем связь и вывод с базы Access с помощью компонентов ADO.
Пример вывода таблицы с 2мя столбцами.
procedure TForm1.Button1Click(Sender: TObject);
var
List,XApp: Variant;
Index,i,j:integer;
begin
XApp:=CreateOleObject('Excel.
XApp.visible:=true;
XApp.WorkBooks.Add(-4167);
XApp.WorkBooks[1].WorkSheets[
List:=XApp.WorkBooks[1].
List.Columns[1].ColumnWidth:=
List.Columns[2].ColumnWidth:=
List:=XApp.WorkBooks[1].
List.Rows[1].font.size:=14;
List.Rows[1].font.italic:=
List.Rows[1].font.bold:=true;
List.Rows[2].font.bold:=true;
List:=XApp.WorkBooks[1].
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.
Index:=Index+1;
adoquery1.Next;
end;
end;