Модель данных – это совокупность структур данных и операций по их обработке. С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними.
Рассмотрим три основных типа моделей данных: иерархическую, сетевую и реляционную.
Все СУБД основываются на использовании этих моделей или их комбинаций.
Иерархическая модель данных.
Основными понятиями иерархической структуры являются – уровень, узел, элемент, связь.
Данные понятия соответствуют описанию графического представления иерархической модели в виде ориентированного графа (перевернутое дерево).
Каждый элемент иерархической структуры соответствует некоторому атрибуту базы данных. Каждой записи в базе данных соответствует единственный путь, ведущий от корневой вершины к оконечным атрибутам (листьям). Например путь А;В3;С4 – это запись в базе данных. Если под А; понимать атрибут – институт № (например МИРЭА), а под В3; - атрибут группа № (например ВУС – 6.99), а под С4; - атрибут студент № (например Иванов), то данная структура является описанием логической структуры базы данных студентов МИРЭА.
В базе данных может быть несколько корневых вершин.
Сетевая модель данных.
В сетевой модели при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом. Графическое представление сетевой структуры представлено на следующем рисунке:
Рис.
Реляционная модель данных.
Понятие реляционная база данных (от англ. relation – отношение) связанно, прежде всего, с именем американского специалиста по базам данных Е. Кодда.
Реляционная модель – это организация данных в виде двухмерных таблиц. Каждая таблица при этом обладает следующими свойствами:
|
каждый столбец (атрибут или домен) имеют уникальное имя;
одинаковые строки в таблице отсутствуют;
все элементы в столбце имеют одинаковый тип и формат;
порядок следования строк и столбцов – произвольный.
В базе данных может быть несколько таблиц, но каждая таблица при этом должна иметь уникальное имя.
На следующем рисунке представлен пример реляционной модели, построенной на основе отношений: СТУДЕНТ, СЕССИЯ, СТИПЕНДИЯ.
Поле т.е. один или несколько доменов, значение которого однозначно определяет соответствующую запись называется ключевым, или ключом. В табл. 1 и 2 ключом является поле “номер зачетной книжки”. Для того что бы связать две таблицы, надо ключ одной таблицы ввести в состав ключа другой таблицы. Например чтобы связать таблицы 2 и 3 надо в табл. 3 и 2 использовать атрибут “результат”. Если бы его не было в одной из таблиц, то его необходимо было бы ввести.
С реляционным подходом к построению баз данных тесно связано понятие инфологической модели.
Инфологическая модель.
Инфологическая модель основывается прежде всего на понятии информационного объекта. Информационный объект – это описание реального объекта в виде совокупности логически связанных реквизитов, или показателей, или иначе информационных элементов.
Множество информационных объектов образует класс (или тип), которому присваивается определенное уникальное имя.
Информационный объект может иметь несколько ключей, т.е. реквизитов однозначно его определяющих.
|
Пример представления информационного объекта в виде графа представлен на следующем рисунке:
Группировка реквизитов в информационных объектах может происходить различными способами, но желательно, чтобы она была рациональной, т.е. минимизирующей дублирование данных и упрощающей процедуры их обработки. Достигается рациональность при помощи нормализации отношений.
Нормализация отношений – это формальный аппарат ограничений на формирование отношений, который позволяет устранить дублирование данных, обеспечивает их непротиворечивость и уменьшает трудозатраты на ведение данных (т.е. их ввод и корректировку).
Е. Коддом выделены 3 нормальные формы отношений и предложен механизм их получения.
Первая нормальная форма. Отношение находится в первой нормальной форме (1 НФ), если все его атрибуты являются неделимыми. Например, атрибут “Ф.И.О.” не находится в 1 НФ, т.к. может быть разбит на “Фамилия”, “Имя”, “Отчество”, т.е. приведен к 1 НФ.
Для определения второй нормальной формы (2 НФ) необходимо пояснить понятие функциональной зависимости. Функциональная зависимость атрибутов – это зависимость, при которой в экземпляре информационного объекта каждому одному значению ключа соответствует только одно значение не ключевого (т.е. описательного) атрибута.
Пример функциональной зависимости представлен на рисунке:
Помимо функциональной существует также понятие функционально – полной зависимости.
Функционально полная зависимость заключается в том, что каждый не ключевой атрибут функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.
|
Отношение будет находиться во 2 НФ, если оно находится в 1 НФ и каждый ключевой атрибут функционально полно зависит от составного ключа.
Пример т-осного отношения (во 2 НФ) – это отношение студент = (, фамилия, имя, отчество, дата, группа) – которое также находится и в 1 НФ.
Отношение успеваемость = (номер, фамилия, имя, отчество, дисциплина, оценка) находится в 1 НФ и имеет составной ключ номер + дисциплина. Но это отношение не находится во 2 НФ, т.к. атрибуты фамилия, имя, отчество, не находятся в полной функциональной зависимости от составного ключа отношения (иными словами фамилия, имя, отчество функционально зависят от части составного ключа – атрибута номер и это функционально полную зависимость).
Понятие третьей нормальной формы основывается на понятии транзитивной и не транзитивной зависимости.
Транзитивная зависимость существует между двумя описательными (не ключевыми) атрибутами, если один из них зависит от ключа, а другой описательный атрибут зависит от него (т.е. первого описательного атрибута).
Отношение будет находиться в третьей нормальной форме (3 НФ), если оно, находясь во 2 НФ не имеет не ключевых атрибутов транзитивно зависящих от первичного ключа.
Примером транзитивной зависимости для отношения “Студент” может служить атрибут “Староста”, который определяется номером “группы”.
В этом случае фамилия “Старосты” будет многократно повторяться во многих экземплярах информационного объекта “Студент”, что вызывает неоправданный расход памяти и затруднения в корректировке данных при замене старосты.
Для устранения транзитивной зависимости необходимо произвести “расщепление” исходного информационного объекта. В результате расщепления часть атрибутов удаляется из исходного информационного объекта – см. рис.
Построение информационно – логической (инфологической) модели.
Инфологическая модель предметной области отражает предметную область в виде совокупности информационных объектов и их структурных связей.
При разработке базы данных инфологическая модель строится первой. Это сопровождается анализом и нормализацией отношений.
Пример графического представления инфологической модели, связывающей информационные объекты “Студент”, “Сессия”, “Стипендия”, “Преподаватель” приведен на рис.
На основании инфологической модели строятся концептуальная (логическая), внутренняя (физическая) и внешняя модели базы данных.
Концептуальная модель состоит из множества экземпляров различных типов данных, структурированных в соответствии с требованиями СУБД к логической структуре базы данных (т.е. фактически это незаполненные шаблоны для ввода данных).
Внутренняя модель состоит из отдельных экземпляров записей, физически хранимых во внешних носителях.
Внешняя модель поддерживает частные представления данных, требуемые конкретным пользователем.