Модель данных – интегрированный набор понятий для описания данных, связей между ними и ограничений, накладываемых на данные. Модель определяет, каким способом происходит объединение данных в структуры разной сложности, какие существуют ограничения на значения данных и как происходит оперирование этими данными.
Цель построения модели заключается в представлении данных в понятном виде, чтоб ее можно было применять при проектировании БД.
Модели данных подразделяются на три категории:
- модели данных на основе записей;
- объектные модели данных;
- физические модели данных.
Существуют три классические модели данных на основе записей:
- иерархическая;
- сетевая;
- реляционная.
В первой иерархической системе были полностью реализованы функции СУБД: языки определения и манипулирования данными, описание и поддержка ограничений целостности, параллелизм, восстановление, а также механизм эффективной обработки запросов.
Иерархическая структура данных определяется иерархической упорядоченностью своих компонентов (или узлов). Каждый узел имеет не более одного предка – объект более близкий к корню, старший по иерархии узел.
|
|
Иерархическая структура состоит из схем элементов данных (это поле данных) и их экземпляров (это элементарные значения).
Схема сегмента (или сегмент) – это поименованная упорядоченная совокупность имен полей. Сегмент является единицей доступа к данным иерархической структуры во время взаимодействия внешней и оперативной памяти. Экземпляр сегмента – упорядоченная совокупность значений полей.
Иерархическая схема данных – иерархически упорядоченная совокупность сегментов, имеет свойства:
- на наивысшем уровне расположен один сегмент – корень;
- каждый другой сегмент, кроме корневого, связан только с одним сегментом высшего уровня, т.е. предком (начальным);
- сегмент может быть связан с одним или несколькими сегментами нижнего уровня – дочерними (потомки);
- сегменты, подчиненные одному предку, называются близнецами;
- сегменты, которые не имеют дочерних, называются листками.
Иерархический путь представлен инвертированным деревом.
Уровень сегмента определяется количеством сегментов на пути от корневого к данному сегменту. Верхний уровень занимает один сегмент, второй – сегменты второго уровня и т. д.
В иерархической модели автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя.
В иерархической БД записи упорядочиваются в определенную последовательность, как ступеньки лестницы, и поиск данных может осуществляться последовательным «спуском» со ступени на ступень. Иерархическая база данных по своей структуре соответствует структуре иерархической файловой системы.
|
|
Недостатки этой модели:
- не все предметные области имеют четко выраженную иерархическую структуру;
- аномалии добавления, удаления и обновления данных;
- связь типа «многие-ко-многим» (преподаватель-дисциплина) не является адекватной иерархической структуре данных (дублирование данных неизбежно).
Известные иерархические СУБД:
– типичным представителем является Information Management System (IMS) фирмы IBM (первая версия появилась в 1968 г.);
– Time-Shared Date Management System (TDMS) компании Development Corporation;
– Mark IV Multi - Access Retrieval System компании Control Data Corporation;
– System - 2000 разработки SAS-Institute;
– серверы каталогов, такие, как LDAP и Active Directory (допускают чёткое представление в виде дерева).
По принципу иерархической БД построены иерархические файловые системы и реестр Windows.
Сетевая модель данных является расширением иерархической модели и предназначена для адекватного моделирования связей между сущностями типа «многие-ко-многим» (имеются указатели в обоих направлениях, которые соединяют родственную информацию).
К основным понятиям сетевой модели базы данных относятся: уровень, элемент (узел), связь. Узел — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. В сетевой структуре каждый элемент может быть связан с любым другим элементом.
Принципиальным отличием сетевой структуры от иерархической является возможность непосредственно отображать более сложные типы связей. Но иерархические системы проще в реализации и эксплуатации.
Примеры сетевых СУБД: СООБЗ Cerebrum, CronosPlus.
Иерархические и сетевые модели данных представляют собой СУБД первого поколения.
В 70-х гг. доктор Эдгар Ф. Кодд (сотрудник фирмы IBM) опубликовал статью, где было показано, что любое представление данных сводится к совокупности двумерных таблиц. В настоящее время существует несколько сотен типов различных реляционных СУБД.
Примеры реляционных СУБД: SQL, ORACLE, Access, FoxPRO, Paradox, Visual dBase и др.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
– каждый элемент таблицы – один элемент данных;
– все столбцы в таблице однородные, то есть все элементы в столбце имеют одинаковый тип данных (числовой, символьный и т. д.);
– каждый столбец имеет уникальное имя;
– одинаковые строки в таблице отсутствуют;
– порядок следования строк и столбцов может быть произвольным.
Базовыми понятиями реляционных СУБД являются:
1) отношение (плоская таблица, состоящая из столбцов и строк);
2) атрибут (поименованный столбец отношения);
3) кортеж (строка отношения).
Реляционные модели сегодня наиболее распространены, они относятся к СУБД второго поколения
Среди объектных моделей данных выделяют объектно-ориентированную модель. Почти все языки программирования являются объектно-ориентированными, а СУБД – реляционными. Так возникла необходимость совмещения особенностей баз данных и возможностей объектно-ориентированных языков программирования – это объектно-ориентированные СУБД (ООСУБД), отображающие две модели данных.
В объектно-ориентированной модели данные и методы их обработки объединяются в структуры, которые называются объектами. Типы объектов называют классами.
Объектно-ориентированная модель расширяет определение сущности с целью включения в него не только атрибутов, которые описывают состояние объекта, но и действий, которые с ним связаны, т.е. его поведение. Объект инкапсулирует состояние и поведение.
|
|
Объектно-ориентированная база данных – база данных, в которой данные оформлены в виде моделей объектов, включающих прикладные программы, которые управляются внешними событиями. ООСУБД позволяет работать с объектами баз данных так же, как с объектами в программировании на ООЯП.
ООСУБД расширяет языки программирования, прозрачно вводя долговременные данные, управление параллелизмом, восстановление данных, ассоциированные запросы и другие возможности.
Некоторые объектно-ориентированные базы данных разработаны для плотного взаимодействия с такими объектно-ориентированными языками программирования как Python, Java, C#, Visual Basic.NET, C++, Objective-C и Smalltalk; другие имеют свои собственные языки программирования.
ООСУБД использую точно такую же модель, что и объектно-ориентированные языки программирования.
Объектно-ориентированные базы данных обычно рекомендованы для тех случаев, когда требуется высокопроизводительная обработка данных, имеющих сложную структуру.
Пример объектно-ориентированной СУБД: IBM Lotus Notes/Domino, Jasmine, ObjectStore, Caché, СООБЗ Cerebrum, db4objects.
Эти системы относятся к СУБД третьего поколения.
Физические модели данных описывают то, как данные хранятся в компьютере, представляя информацию о структуре записей, их упорядоченности и существующих путях доступа. Реализуется администраторами БД на выбранной СУБД.