3.2 Обоснование выбора модели данных
3.2.1 Типы моделей данных
БД может быть основана на одной модели или на совокупности нескольких моделей. Любую модель данных можно рассматривать как объект, который характеризуется своими свойствами (параметрами), и над ней, как над объектом, можно производить какие-либо действия.
Любая модель должна обеспечивать такие операции над БД:
- поиск указанного элемента базы;
- переход от одних данных к другим;
- движение по записям;
Существуют три основных типа моделей данных – реляционная, иерархическая и сетевая.
3.2.2 Иерархическая модель данных
Иерархическая модель БД представляет собой совокупность элементов, расположенных в порядке их подчинения от общего к частному и образующих перевернутое дерево. Данная модель характеризуется такими параметрами, как уровни, узлы, связи. Принцип работы модели таков, что несколько узлов более низкого уровня соединяются при помощи связи с одним узлом более высокого уровня.
Узел – информационная модель элемента, находящегося на данном уровне иерархии.
Свойства иерархической модели данных:
- несколько узлов низшего уровня связано только с одним узлом высшего уровня;
- иерархическое дерево имеет только одну вершину (корень), не подчиненную никакой другой вершине;
- каждый узел имеет свое имя (идентификатор);
- существует только один путь от корневой записи к более частной записи данных.
Пример реализации иерархической модели данных для разрабатываемой БД представлен на рисунке 3.2.
Достоинством ИМД в общем является эффективное использование памяти, малое время обращения к данным. Но для данной БД малое время обращения к информации можно наблюдать только для верхних уровней, а не для нижних из-за глубины дерева.Недостатком этой модели является высокая избыточность. Одна запись БД – это совокупность деревьев. Через эту структуру нельзя построить отношение многие ко многим. Очевидна громоздкость обрабатываемой информации, сложность в понимании для конечного пользователя. ИМД не имеет механизма поддержки целостности данных.
Изображенная на рисунке схема отображает вырожденное дерево, у которого каждый объект имеет не более одного ребенка. Основным недостатком иерархической модели для данного программного продукта являются громоздкая форма записи реляционной модели, что, в свою очередь, приводит к осложнению понимания пользователем базы.
3.2.3 Сетевая модель данных
Сетевая модель позволяет отображать разнообразные взаимосвязи элементов данных в виде произвольного графа, обобщая тем самым иерархическую модель данных.
Основной структурой в сетевых моделях данных является «сеть». При таком представлении существует несколько входов в сеть – неоднозначность доступа к данным.
Особенности такого представления: один или несколько узлов могут иметь больше одного родителя; время доступа изменяется в зависимости от исходного входа. Время доступа в сетевой структуре может быть больше, чем в иерархической структуре.
Схема сетевой модели данных для данной БД показана на рисунке 3.3.
К достоинствам СМД относят:
- возможность создания произвольных связей (например, растения произрастают на закрепительном участке, и закрепительный участок имеет растения);
- эффективную реализацию с точки зрения затрат времени и памяти.
Недостатки такие:
- сложность и жесткость схемы;
- сложность в установлении и проверке целостности данных.
Недостатком обеих этих структур является то, что при добавлении новых вершин или установлении новых связей возникают проблемы выгрузки данных из базы, перегенерации полностью структуры, загрузка данных обратно в базу. При этом возникает вероятность потерять данные при обратной загрузке.
3.2.4 Реляционная модель данных
Предпочтение было отдано реляционной модели по следующим причинам:
- реляционная модель является более простой моделью, чем сетевая;
- схема данных позволяет представить структуру в виде таблиц (после некоторых преобразований);
- в настоящее время реляционные базы данных являются более
распространенными, чем сетевые;
- использование реляционных баз данных удобнее, чем сетевых;
- сетевая модель данных сложна для изучения пользователем, проще разобраться с реляционной МД;
- реляционная МД нагляднее представляет структуру данных.
В отличие от ИМД и СМД, РМД обеспечивает логический доступ к данным, не зависящий от физической реализации. Недостатками реляционных моделей являются сложность в описании иерархических, сетевых связей и отсутствие стандартных средств идентификации отдельных записей.
Для проектируемой БД реляционная модель представлена на рисунке 3.4.
3.3 Нормализация таблиц
3.3.1 Выделение функциональных зависимостей
Функциональная связь – связь вида один ко многим в одной таблице.
Пусть R – отношение, в котором существуют подмножества множества атрибутов х и у. Тогда х→у (у функционально зависит от х) тогда и только тогда, когда для каждого допустимого значения R каждое значение х связано только с одним у. Если совпадение по х, то и по у.Если х – потенциальный ключ, то все атрибуты этого отношения всегда функционально от него зависят. На рисунке 3.5 изображена схема функциональных зависимостей.
Рис.3.5 – Схема функциональных зависимостей таблиц
3.3.2 Описание нормальных форм
Докажем, что спроектированная БД нормализована до третей нормальной формы. Так как, по определению, если БД находится в третьей нормальной форме, то она находится и в первой и во второй нормальных формах, то докажем сперва, что данная БД находится в первой нормальной форме.
Первая нормальная форма требует, чтобы каждое поле таблицы БД было неделимым и не содержало повторяющихся групп.
Неделимость поля означает, что содержащиеся в нем значения должны быть атомарные, то есть невозможно выделить из неделимого поля какую либо структуру или запись. А также невозможно разбиение поля на два и более при условии, что у получающихся в результате разбиения атрибутов полей будет свой смысл.
Повторяющимися являются поля, содержащие одинаковые по смыслу значения.
Так как разрабатываемая БД удовлетворяет этим ограничениям, то она находится в первой нормальной форме.
Вторая нормальная форма требует, чтобы все поля таблицы зависели от первичного ключа, то есть, чтобы первичный ключ однозначно определял запись и не был избыточен.
Итак, ограничениям, накладываемым второй нормальной формой, разрабатываемая БД удовлетворяет.
Третья нормальная форма требует, чтобы в таблице не имелось транзитивных зависимостей между не ключевыми полями, то есть, чтобы значение любого поля, не входящего в первичный ключ, не зависело от значения другого поля, также не входящего в первичный ключ.
Все таблицы данной БД удовлетворяют этому условию, следовательно, БД находится в третьей нормальной форме.
3.3.3 Описание РМД
Объекты данной предметной области предоставляются в виде таблиц, свойства становятся атрибутами либо полями. Таблиц и полей с одинаковыми названиями быть не может. В каждой таблице выделяется свойство, которое является ключевым. В каждой таблице первичным ключом будет первичное поле (#). По правилу построения РМД, ключевое поле из таблицы, объект которой связан с другим объектом отношением
, добавляется в таблицу, которое соответствует отношению «много» ( ). Таких связей получается 5. «Студент» связан с объектом «Группа» отношением , значит, первичным ключом у нас является код группы (# КГр) и подсоединяем его к таблице «Студент», где записываем внешний ключ (КГр #). Аналогичным образом мы проделываем остальные таблички:· таблицу «Специальность», где первичный ключ (счетчик) (#КСп), соединяем стрелочкой с таблицей «Группа» (КСп # );
· «Факультет» (#КФ) соединяем с таблицей «Специальность», где внешним ключом будет (КФ#);
· таблицу «Общежитие» (первичный ключ(#КО)) соединяем с «Комната» (КО#);
· «Студент» (#КСт) соединяем с «Проживает» (КСт #).
Отношение
преобразуется по следующему принципу: вводится дополнительная таблица, в которую ключевые поля таблиц, связанных отношением , также включаются поля, которые являются свойствами отношений между этими объектами.В нашей схеме присутствует только одна такая связь, т.е. к таблице отношения «Проживает», где счетчиком является (#КПр), присоединяется внешний ключ (#КК(код комнаты)), внешний ключ (Ст#) и свойства отношения: дата заселения и дата выселения. На рис. 2 показана схема РМД.