- 2.2 Классификация моделей данных
- 2.2.1 Иерархические модели данных
- 2.2.2 Сетевые модели данных
- 9. Понятие модели данных. Сетевые модели бд: особенности, преимущества, недостатки.
- 10. Реляционные модели данных: особенности, преимущества, недостатки.
- 11. Постреляционные модели данных: особенности, преимущества, недостатки.
2.2 Классификация моделей данных
В БД различают три основных вида моделей. 1. Сетевые. 2. Иерархические (древовидные). 3. Реляционные (относительные. . . ).
http://slava.fateback.com | 17 |
С использованием правила склейки записей и правила преобразования схемы БД в общем случае получается сетевая модель. Реже — иерархическая, в экзотическом случае — реляционная. Но все-таки сейчас популярнее именно реляционные СУБД — они наиболее полно реализуют принцип независимости данных, так как в них нет навигационных операторов. Существуют алгоритмы, связанные с введением избыточности в схемы описания данных, позволяющие сетевую модель преобразовать к иерархической, иерархическую — к реляционной и сетевую — к реляционной. Все они эвристические, поэтому свойство транзитивности не выполняется, то есть результат преобразования «сетевая — иерархическая — реляционная» совсем не то же самое, что получается после «сетевая — реляционная».
2.2.1 Иерархические модели данных
Определение 2.8 Дерево — множество узлов, среди которых выделен «корень», а остальные узлы находятся в попарно непересекающихся множествах, каждое из которых — дерево.
1 | ||||
2 | 3 | 4 | ||
5 | 6 | 7 | 8 | 9 |
Корректное определение дано у Кнута, но там оно вводится алгоритмически. Для поставленных целей подойдет и наше определение. Вершина 1 зовется корнем, она находится на первом уровне. Вершины 2, 3, 4 относятся к второму уровню. Вершины 5, 6, 7, 8, 9 — третий уровень. (1, 2, 5), (1, 3, 7) — максимальные пути. (1, 4) — минимальный путь. Узел 7 — левый сосед узла 8, но сам не имеет левого соседа. Узел 9 — правый сосед узла 8, но сам не имеет правого соседа. Замечение. В иерархических схемах БД изображения стрелок на связях опускается, поскольку подразумевается M:1 от потомка к предку. Определение 2.9 Дерево зовется сбалансированным , если все узлы, кроме листьев, имеют одинаковое количество потомков, а разница длин максимального и минимального путей не превосходит 1. К этому определению имеется масса контр-примеров, и проблема кроется во фразе «. . . кроме листьев. . . », а листья могут встречаться на любом уровне. Приведенное выше дерево является сбалансированным.
http://slava.fateback.com | 18 |
Определение 2.10 Дерево зовется бинарным , если каждый его узел имеет не более двух потомков. Замечание. При проектировании схемы БД незначительное количество прикладных областей приводит к бинарным, сбалансированным деревьям. Например, родословная собаки бинарное несбалансированное дерево. Перечисленные виды деревьев используются на физическом уровне при организации индексных файлов и будут рассматриваться в главе 3. Очень важный пример показывает зависимость данных от структуры. Отделы Номер отдела ФИО начальника отдела Служащие Номер служащего ФИО служащего Должность служащего Работа Номер проекта Наименование Содержание проекта Предложена иерархическая схема БД. Имея экземпляр данных о служащем, мы не можем без использования навигационных операторов сказать, в каком отделе он трудится и над каким проектом. Выполним преобразование схемы: дополним ключевое поле предка в потомке (в записях потомка он будет уже не ключевым) — при этом стрелки вверх исчезнут. После этого по экземпляру записи о служащем однозначно определим его отдел (без использования связей), то есть навигационные операторы не нужны. Отделы Номер отдела ФИО начальника отдела Служащие Номер служащего ФИО служащего Должность служащего Номер отдела Работа Номер проекта Наименование Содержание проекта Номер отдела И все же по-прежнему нельзя определить работы, выполняемую служащим. Однако, этой информации не было и в исходной схеме. То есть данное преобразование не изменяет количество информации. Утверждение доказывается более строго. Прием воздействует только на структуру, и в каком-то смысле приближает схему к реализации принципа независимости данных.
2.2.2 Сетевые модели данных
http://slava.fateback.com | 19 |
Определение 2.11 Схема БД называется сетевой , если хотя бы у одного узла (логической записи) более одного предка. Замечание. Если на схеме присутствует связь М:М, то модель однозначно сетевая. Определение 2.12 Если на схеме присутствует связь типа М:М, то модель называется сложной сетевой , иначе — простой сетевой . Для поддержания связи М:М на физическом уровне должны быть реализованы множественные перекрестные ссылки. При дополнении, удалении и модификации записей это приводит к необходимости преобразования таких ссылок. Сейчас существуют СУБД, не поддерживающие этот тип связей. И как только СУБД заявила об этом, связь из схемы нужно удалять — ее все равно никак не обеспечить. Правило преобразования сложной сетевой модели к простой сетевой: Пусть имеется две логические записи, межу которыми имеется связь М:М; ключевые поля записей А и Б соответственно. Вводим новый тип записей с ключевым полем А+Б (+ означает конкатенацию) и не содержащий никаких других полей; он становится потомком для рассматриваемых двух записей, связь между которыми (М:М) удаляется.
A | A | B | ||
B | A | B |
Общие данные Определение 2.13 Элемент данных на схеме зовется общим данным , если к нему приходит несколько одиночных стрелок. По правилу склейки записей этот элемент может быть присоединен сразу к нескольким типам записей — и это знак явной избыточности описания данных. Правило преобразования: формируем новый тип записей, содержащий ключевые поля записей-источников одиночных стрелок (при этом избыточные связи должны быть удалены!) и общее данное дополняется к вновь введенному типу записей. Правило эвристическое, поэтому не ясно, что за поля — ключевые. Замечание. К ак правило, семантика общего данного после преобразования изменяется — детализируется. Степень детализации определяется набором ключевых полей вновь введенного типа записей.
http://slava.fateback.com | 20 |
Поставщики | Наименование | Адрес |
Номер | ||
поставщика | поставщика | поставщика |
Изделия на складе | ||
Номер | Наименование | Количество |
изделия | изделия | изделийй |
Поставщики | Наименование | Адрес | ||
Номер | ||||
поставщика | поставщика | поставщика | ||
Изделия на складе | ||||
Номер | Наименование | Номер | Номер | Количество |
изделия | изделия | поставщика | изделия | изделий |
Стрелки меняют семантику, но элемент один. После преобразования неплохо прояснить смысл нового типа записей: «Сколько именно изделий определенного вида поставлено поставщиком». Основным критерием правильности преобразования схемы является однозначная семантическая интерпретация всех логических записей. Однако, данная проблема является базисной. Данные пересечения Определение 2.14 Элемент данных зовется данным пересечения , если в него не приходит ни одной одиночной стрелки, зато совокупность ключевых полей записей, от которых приходят сдвоенные стрелки однозначно идентифицирует значение данного. Правило преобразования: формируется новый тип записей, содержащий ключевые поля записей, однозначно идентифицирующих это пересечение; данное пересечения дополняется к новому типу записей. Фраза «. . . однозначно идентифицирует. . . »»эквивалентна «. . . функционально определяет. . . », но об этом будет сказано позже. Изолированные данные Определение 2.15 Элемент данных зовется изолированным данным , если в него не приходит ни одной одиночной стрелки, и совокупность ключевых полей записей, от которых приходят сдвоенные стрелки не идентифицирует значение данного однозначно. Для этого случая правила преобразования нет, поскольку ситуация говорит о допущенной ошибке. Чаще всего изолированные данные являются характеристиками объектов, для которых в схеме отсутствует однозначный идентификатор. Здесь рекомендуется определиться с классом объектов, перенумеровать их (ввести атрибут «Номер объекта») и установить новые связи. Преобразование сетевой модели к иерархическому виду Эта технология рекомендована в СУБД IMS от IBM. Она ориентирована на двухуровневую иерархическую модель данных.
9. Понятие модели данных. Сетевые модели бд: особенности, преимущества, недостатки.
Модель данных — это абстрактное, самодостаточное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину доступа к данным, с которой взаимодействует пользователь. Эти объекты позволяют моделировать структуру данных, а операторы — поведение данных.
Включает в себя три аспекта:
- Аспект культуры (методы описания типов и логических структур данных в базе данных)
- Аспект манипуляции (методы манипулирования данными)
- Аспект целостности (методы описания и поддержки целостности базы данных)
Сетевая модель данных позволяет отображать разнообразные взаимосвязи элементов данных в виде произвольного графа, обобщая тем самым иерархическую модель данных. Сетевая БД состоит из набора записей и набора соответствующих связей. На формирование связи особых ограничений не накладывается. Если в иерархических структурах запись-потомок могла иметь только одну запись-предка, то в сетевой модели данных запись-потомок может иметь произвольное число записей-предков. Преимущества:
- СМД является наиболее полной с точки зрения реализации различных типов связей и ограничений целостности.
Недостатки:
- Является достаточно сложной для проектирования и поддержки.
- Не обеспечивается физическая независимость данных, т.к. наборы организованы с помощью физических ссылок.
- Не обеспечивается независимость данных от программ.
10. Реляционные модели данных: особенности, преимущества, недостатки.
- Структурный аспект — данные в базе данных представляют собой набор отношений.
- Аспект целостности — отношения (таблицы) отвечают определенным условиям целостности. РМД поддерживает декларативные ограничения целостности уровня домена (типа данных), уровня отношения и уровня базы данных.
- Аспект обработки (манипулирования) — РМД поддерживает операторы манипулирования отношениями (реляционная алгебра, реляционное исчисление).
- Отношение – двухмерная таблица, не содержащая строк-дубликатов
- Сущность есть объект любой природы, данные о котором хранятся в базе данных. Данные о сущности хранятся в отношении
- Запись – строка (ряд, запись, row, кортеж) таблицы
- Отношение – множество кортежей
- Атрибут (столбец). Атрибуты представляют собой свойства, характеризующие сущность. В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы
- Домен – множество значений атрибута
- Отображает информацию в наиболее простой для пользователя форме
- Отсутствует дублирование информации
- Позволяет создавать языки манипулирования данными не процедурного типа
- Возможно изменение данных
- Медленный доступ к данным
- Трудоемкость разработки
11. Постреляционные модели данных: особенности, преимущества, недостатки.
Классическая реляционная модель предполагает неделимость данных, хранящихся в полях записей таблиц. Это означает, что информация в таблице представляется в первой нормальной форме. Существует ряд случаев, когда это ограничение мешает эффективной реализации приложений. Постреляционная модель данных представляет собой расширенную реляционную модель, снимающую ограничение неделимости данных, хранящихся в записях таблиц. Постреляционная модель данных допускает многозначные поля – поля, значения которых состоят из подзначений. Набор значений многозначных полей считается самостоятельной таблицей, встроенной в основную таблицу. При обработке данных в постреляционной модели не требуется выполнять операцию соединения данных из двух таблиц. SELECT Номер накладной, Номер покупателя, Название товара, Количество товара FROM НАКЛАДНЫЕ; Особенности.
- обеспечивает возможность вложенности полей
- поддерживает ассоциированные многозначные поля (ассоциации)
- На длину полей и количество полей в записях таблицы не накладывается требование постоянства.
- Допускает хранение в таблицах ненормализованных данных.
Достоинством постреляционной модели является возможность представления совокупности связанных реляционных таблиц одной постреляционной таблицей. Это обеспечивает высокую наглядность представления информации и повышение эффективности ее обработки. Недостатком постреляционной модели является сложность решения проблемы обеспечения целостности и непротиворечивости хранимых данных.