Глобальное представление данных это представление, содержащее полную совокупность требований к данным. Пользовательские функции, входящие во внешнее представление, могут задаваться разными пользователями, использующими различную терминологию. Поэтому элементы данных в них могут частично противоречить друг другу или дублироваться. Необходима идентификация элементов данных, входящих в разные пользовательские функции, и устранение противоречий в их описании. Например, 8 «группировка» и 1 «наименование группировки» очевидно одно и то же. То же можно сказать и о 7 и 14 «фамилия, имя, отчество». 5 «продолжительность деятельности группировки» лучше заменить «датой начала деятельности», чтобы этот элемент данных не зависел от времени заполнения БД. 2 «район деятельности» целесообразно дополнить информацией 19 «код района» для связи с уже существующими БД.
Роль математика состоит в получении композиции уточнённых пользовательских функций. В простых случаях, таких как наш пример, можно обойтись и без формальных математических методов. Просто объединив внешние представления, мы получим глобальное представление данных (рис. 5.7).
Внутреннее представление данных это те и только те данные, которые необходимы для автоматизации пользовательских функций. Т.е. это некоторая часть глобального представления, в которой устранена избыточность элементов данных. Избыточность могла возникнуть либо из-за дублирования элементов данных, либо по причине функциональной зависимости данных.
В рассматриваемом примере:
дважды присутствует, т.е. дублируется, элемент данных «Сфера деятельности группировки» 10 и 3;
элемент данных 6 «Число участников группировки» легко вычисляется по имеющимся данным;
то же относится и к элементу данных 9 «Опасность группировки».
Тогда внутреннее представление данных будет иметь следующий вид (рис. 5.8).
Таким образом, мы осуществили первый этап проектирования и получили концептуальную модель данных.
Рассмотрим теперь этап логического проектирования реляционной БД. Как уже было сказано, реляционные БД являются самыми распространёнными, несмотря на то, что обладают существенным недостатком: содержат огромное количество избыточной информации. При работе с такой БД возникает целый ряд проблем:
- тратится значительное время на ввод повторяющихся значений элементов данных;
- при изменении одного значения необходимо корректировать все строки, где оно повторяется;
- возрастает количество ошибок ввода;
- увеличивается время поиска информации в БД.
Процесс уменьшения избыточности в реляционной БД называется нормализацией. Разработана теория нормализации реляционных БД, которая предполагает последовательное приведение реляционных таблиц к различным нормальным формам.
Реляционная таблица находится в первой нормальной форме (1NF), если в ней:
1) все элементы данных атомарные, т. е. представляют собой одиночные значения, а не их объединение;
2) отсутствуют повторяющиеся группы элементов данных, т.е. элементы данных, имеющие одинаковое смысловое значение, объединяются.
Реляционная таблица находится во второй нормальной форме (2NF), если:
1) она находится в первой нормальной форме;
2) любой неключевой элемент данных однозначно определяется полным набором ключевых элементов.
Для приведения таблицы к 2NF необходимо в каждой таблице:
определить ключевые элементы данных;
определить функциональные зависимости неключевых элементов данных от ключевых элементов;
разделить элементы данных на группы по функциональным зависимостям так, чтобы каждый неключевой элемент данных определялся полным набором ключевых элементов;
определить связанные между собой группы элементов данных и типы отношений между ними;
для реализации связей между группами элементов данных дополнить их элементами данных, организующих связь.
При построении 2NF следует помнить следующие правила:
если ключ является простым (состоящим из одного элемента данных), то требование 2NF для этой группы элементов автоматически выполняется;
если между группами элементов A и B существует связь типа 1:M, то для реализации этой связи группа элементов B дополняется ключевыми элементами данных группы элементов A;
если в группе элементов данных возможен альтернативный выбор элементов данных для реализации связи, то следует выбирать элементы меньшей суммарной длины.
Полученные в результате группы элементов данных представляют собой реляционные таблицы в 2NF.
Реляционная таблица находится в третьей нормальной форме (3NF), если:
она находится во второй нормальной форме;
ни один неключевой элемент данных не определяется с помощью другого неключевого элемента данных.
Для приведения к 3NF таблиц, уже приведенных к 2NF, необходимо в каждой таблице:
определить транзитивные зависимости между элементами данных;
разделить элементы данных на группы без транзитивных зависимостей так, чтобы ни один неключевой элемент в этих группах не определялся другим неключевым элементом;
определить связанные между собой группы элементов данных и типы отношений между ними;
для реализации связей между группами элементов данных дополнить их элементами данных, организующих связь.
Организация связей осуществляется таким же образом, как и при построении 2NF.
Существуют также четвертая и пятая нормальные формы (4NF и 5NF). Но практически они используются крайне редко, и поэтому мы их рассматривать не будем.
Процесс приведения реляционных таблиц к нормальным формам заключается в делении их таким образом, чтобы сохранить все связи между элементами данных.
Рассмотрим на примере процесс приведения реляционных таблиц к третьей нормальной форме.
В полученной выше концептуальной модели базы данных неатомарным является элемент данных «Фамилия, имя, отчество». Он может быть разделен на атомарные так, чтобы не появились повторяющиеся группы полей (рис. 5.9). Ключевые элементы данных будем выделять серым цветом в таблицах и жирным шрифтом в тексте.
Для приведения таблицы к 2NF необходимо выполнить описанные выше действия. Анализ функциональных зависимостей показывает, что могут быть выделены четыре группы функциональных зависимостей:
Достарыңызбен бөлісу: |