Лекция № 3. Модели организации данных

Модель данных – интегрированный набор понятий для описания данных, связей между ними и ограничений, накладываемых на данные. Модель определяет, каким способом происходит объединение данных в структуры разной сложности, какие существуют ограничения на значения данных и как происходит оперирование этими данными.

Цель построения модели заключается в представлении данных в понятном виде, чтоб ее можно было применять при проектировании БД.

Модели данных подразделяются на три категории:

- модели данных на основе записей;

- объектные модели данных;

- физические модели данных.

Существуют три классические модели данных на основе записей:

- иерархическая;

- сетевая;

- реляционная.

В первой иерархической системе были полностью реализованы функции СУБД: языки определения и манипулирования данными, описание и поддержка ограничений целостности, параллелизм, восстановление, а также механизм эффективной обработки запросов.

Иерархическая структура данных определяется иерархической упорядоченностью своих компонентов (или узлов). Каждый узел имеет не более одного предка – объект более близкий к корню, старший по иерархии узел.

Иерархическая структура состоит из схем элементов данных (это поле данных) и их экземпляров (это элементарные значения).

Схема сегмента (или сегмент) – это поименованная упорядоченная совокупность имен полей. Сегмент является единицей доступа к данным иерархической структуры во время взаимодействия внешней и оперативной памяти. Экземпляр сегмента – упорядоченная совокупность значений полей.

Иерархическая схема данных – иерархически упорядоченная совокупность сегментов, имеет свойства:

- на наивысшем уровне расположен один сегмент – корень;

- каждый другой сегмент, кроме корневого, связан только с одним сегментом высшего уровня, т.е. предком (начальным);

- сегмент может быть связан с одним или несколькими сегментами нижнего уровня – дочерними (потомки);

- сегменты, подчиненные одному предку, называются близнецами;

- сегменты, которые не имеют дочерних, называются листками.

Иерархический путь представлен инвертированным деревом.

Уровень сегмента определяется количеством сегментов на пути от корневого к данному сегменту. Верхний уровень занимает один сегмент, второй – сегменты второго уровня и т. д.

В иерархической модели автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя.

В иерархической БД записи упорядочиваются в определенную последовательность, как ступеньки лестницы, и поиск данных может осуществляться последовательным «спуском» со ступени на ступень. Иерархическая база данных по своей структуре соответствует структуре иерархической файловой системы.

Недостатки этой модели:

- не все предметные области имеют четко выраженную иерархическую структуру;

- аномалии добавления, удаления и обновления данных;

- связь типа «многие-ко-многим» (преподаватель-дисциплина) не является адекватной иерархической структуре данных (дублирование данных неизбежно).

Известные иерархические СУБД:

типичным представителем является 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.

Эти системы относятся к СУБД третьего поколения.

Физические модели данных описывают то, как данные хранятся в компьютере, представляя информацию о структуре записей, их упорядоченности и существующих путях доступа. Реализуется администраторами БД на выбранной СУБД.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: