Отношение между таблицами может иметь тип
Отношение между таблицами может иметь тип:
один к одному (каждая запись одной таблицы связано только с одной записью подчиненной таблицы – связь с одинаковым количеством ключей)№зачетки | ФИО | Год рождения | образование |
№зачетки | Место работы | Должность | Оклад |
Ключ связи –№зачетки.
Таблицы содержат сведения об одном информационном объекте Студент, данные разделены на две таблицы после нормализации (речь о ней пойдет ниже).
один ко многим (одной записи главной таблицы соответствует совокупность записей подчиненной таблицы – ключ связи составляет часть общего ключа подчиненной таблицы)
№лаб | Название | ФИО начальника |
№лаб | Таб. номер | ФИО | Должность | Телефон |
Ключ связи –№лаб.
В одной лаборатории может трудиться много сотрудников.
многие ко одному (совокупность записей главной таблицы соответствует одной записи подчиненной таблицы)
Ключ связи –№лаб.
Сведения о сотрудниках могут многое сказать о лаборатории.
многие ко многим (совокупность записей главной таблицы соответствует совокупности записей подчиненной таблицы)
Код товара | Производитель | Стоимость |
Покупатель | Код товара | Дата покупки | Количество | Цена |
Ключ связи – Код товара.
Один покупатель может купить продукцию различных производителей, но и один товар могут купить разные покупатели.
Подобно другим отраслям информатики, в реляционной теории нет универсальных рецептов для проектирования надежной и эффективной в использовании базы данных. Разработчик волен выбирать различные инструменты и методы проектирования. Некоторые полагаются исключительно на интуицию и здравый смысл, другие используют различные вспомогательные средства, порой довольно изощренные.
Однако при всем разнообразии подходов все же есть некоторые каноны, нарушение которых весьма отрицательно скажется как при проектировании базы данных, так и при ее эксплуатации. Так, например, весьма актуальной является проблема нормализации баз данных. Пренебрежение нормализацией делает структуру базы данных запутанной, а саму базу - ненадежной в работе.
Главная задача - обеспечение целостности (механизм поддержания соответствия базы данных предметной области, делающей невозможным вставку и создание бессмысленной информации).
Целостность можно обеспечить, если все таблицы БД будут нормализованы. Процесс нормализации предполагает приведения всех отношений к 4 нормальной форме:
Первая нормальная форма:
- запрещает повторяющиеся столбцы (содержащие одинаковую по смыслу информацию) запрещает множественные столбцы (содержащие значения типа списка и т. п.) требует определить первичный ключ для таблицы, то есть тот столбец или комбинацию столбцов, которые однозначно определяют каждую строку
Вторая нормальная форма:
требует, чтобы неключевые столбцы таблиц зависели от первичного ключа в целом, но не от его части. Чтобы привести такую таблицу ко второй нормальной форме, ее нужно разбить на несколько таблиц. Эти таблицы должны быть связаны между собой – это делают с помощью внешнего ключа(повторяющегося в обеих таблицах поля ). Определяя внешний ключ и соответствующий ему первичный вы указываете серверу БД поддерживать целостность ссылок между этими таблицами.
Если таблица находится в первой нормальной форме и первичный ключ у нее состоит из одного столбца, то она автоматически находится и во второй нормальной форме.
Третья нормальная форма:
Чтобы таблица находилась в третьей нормальной форме, необходимо, чтобы неключевые столбцы в ней не зависели от других неключевых столбцов, а зависели только от первичного ключа. Самая распространенная ситуация в данном контексте - это расчетные столбцы, значения которых можно получить путем каких-либо манипуляций с другими столбцами таблицы. Для приведения таблицы в третью нормальную форму такие столбцы из таблиц надо удалить.
Нормальная форма Бойса-Кодда:
Нормальная форма Бойса-Кодда требует, чтобы в таблице был только один потенциальный первичный ключ. Чаще всего у таблиц, находящихся в третьей нормальной форме, так и бывает, но не всегда. Если обнаружился второй столбец (комбинация столбцов), позволяющий однозначно идентифицировать строку, то для приведения к нормальной форме Бойса-Кодда такие данные надо вынести в отдельную таблицу.
Четвертая нормальная форма:
Для приведения таблицы, находящейся в нормальной форме Бойса-Кодда, к четвертой нормальной форме необходимо устранить имеющиеся в ней многозначные зависимости. То есть обеспечить, чтобы вставка / удаление любой строки таблицы не требовала бы вставки / удаления / модификации других строк этой же таблицы.
Пятая нормальная форма – представляет скорее теоретический интерес, на практике не используется - это форма, в которой устранены зависимости соединения.
Такая вот теория...
Разработаны специальные формальные математические методы нормализации таблиц реляционных баз данных. На практике же толковый проектировщик баз данных, детально познакомившись с предметной областью, как правило, достаточно быстро набросает структуру, в которой большинство таблиц находятся в четвертой нормальной форме :).
Главное, чего мы добьемся, проведя нормализацию базы данных - это устранение (или, по крайней мере, серьезное сокращение) избыточности, дублирования данных. Как следствие, значительно сокращается вероятность появления противоречивых данных, облегчается администрирование базы и обновление информации в ней, сокращается объем дискового пространства.
Но не все так бело и пушисто. Зачастую, чтобы извлечь информацию из нормализованной базы данных, приходится конструировать очень сложные запросы, которые к тому же, бывает, работают довольно медленно - из-за, главным образом, большого количества соединений таблиц. Поэтому, чтобы увеличить скорость выборки данных и упростить программирование запросов, нередко приходится идти на выборочную денормализацию базы.
На рис. показан пример установки связей между таблицами, составляющими одну базу данных. Схемы таблиц с указанием связей между ними образуют схему данных проектируемой базы данных.

Примерно такую же схему я жду от вас в качестве ДЗ.


