- •Основные определения и требования к базам данных
- •Определения
- •Категории баз данных
- •Требования к базе данных
- •Неизбыточность и непротиворечивость данных
- •Защита данных от программных и аппаратных сбоев
- •Мобильность прикладного программного обеспечения
- •Секретность данных
- •Представление и описание информации
- •Плоские (двойные) файлы
- •Ключи
- •Системы управления базами данных (СУБД)
- •Языковые средства для работы с базами данных
- •Глобальное логическое описание
- •Компоненты описания схемы данных
- •Классификация моделей данных
- •Иерархические модели данных
- •Сетевые модели данных
- •Классификация структурированных моделей данных
- •Реляционные модели данных
- •Преобразование структурированных моделей к реляционному виду
- •Ключи
- •Операции реляционной алгебры
- •Декомпозиция отношений
- •Функциональные зависимости
- •Правила логического следования
- •Аксиомы функциональных зависимостей
- •Ключи
- •Вторая нормальная форма
- •Правило построение второй нормальной формы:
- •Преимущества второй нормальной формы перед первой
- •Третья нормальная форма
- •Правило построения
- •Преимущества третьей нормальной формы
- •Построение канонической модели общего вида
- •Построение канонической модели реляционного типа
- •Построение замыканий
- •Построение минимального покрытия множества функциональных зависимостей
- •Декомпозиция схем отношений
- •Многозначные зависимости
- •Построение канонической модели
- •Физическая организация базы данных. Алгоритмы работы СУБД
- •Введение
- •Архитектуры современных ЭВМ
- •Факторы, влияющие на выбор физической организации БД (технология, представление, алгоритмы и прочее)
- •Схема временных затрат при реализации запросов
- •Классификация методов доступа
- •Последовательный метод доступа
- •Индексно-произвольный метод доступа
- •Прямой метод доступа
- •Методы хеширования
- •Списки и инвертированные файлы
http://slava.fateback.com |
16 |
Оклад |
Должность |
сотрудника
сотрудника
Стоит сказать пару слов об оформлении схемы. Выполняется она графически, атрибуты обозначаются овалами со вписанными в них именами, связи — линиями, соединяющими соответствующие овалы. Связи, соответствующие первому и второму типу, дополняются одиночной стрелкой, а третьему и четвертому — сдвоенной. Если связь устанавливается в двух направлениях, стрелки ставятся на одной дуге.
Определение 2.4 Простой путь — направление по одиночным стрелкам.
Определение 2.5 Связи на схеме называются избыточными, если от одного элемента данных ко второму идет несколько простых путей.
Правило преобразования: удаляются все короткие пути.
Определение 2.6 Совокупность установленных связей и элементов данных, в которой удалена семантика и избыточные связи, зовется овал-диаграммой.
Овал-диаграмма — основа эвристического проектирования схемы БД.
Замечание. Установленные на схеме избыточные связи увеличивают сложность диаграммы. Для дальнейшего проектирования избыточные связи удаляются.
Определение 2.7 Правило склейки записей: если на овал-диаграмме от элемента А к элементу Б установлена связь типа 1 или 2, то элемент данных Б присоединяется к элементу данных А и в результате формируется логическая запись, ключом которой является А.
Замечание. Если существует третий элемент В (связь типа 1 или 2 от Б), то связь тоже удаляется, а элемент присоединяется к записи.
Замечание. Проблемы общих данных, данных пересечения и изолированных данных не позволяют сформировать схему БД.
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. Она ориентирована на двухуровневую иерархическую модель данных.
