Следующие два положения принимаются в теории БД как аксиома отличия: «Значениями атрибутов один объект данных отличается от другого. Не может быть двух объектов данных, у которых попарно равны значения всех атрибутов.»
Объекты данных могут объединяться в наборы объектов по некоторому общему признаку. Этот общий признак обычно выносится в название набора объектов, например, Начисления, Платежи.
В описании объекта данных нужно выделить 2 составляющие: структуру и экземпляр.
Структура – перечень атрибутов объекта и характеристики атрибутов.
Экземпляр – совокупность значений атрибутов.
Структура изменяется крайне редко. Экземпляр подвержен изменениям.
При хранении в ЭВМ базе данных соответствует группа файлов и папок, набору объектов соответствует файл. Каждому объекту соответствует запись в файле. Каждому атрибуту соответствует поле записи.
Для описания атрибута используются следующие характеристики:
1. имя, например, nContract, cStudent;
2. тип, например, символьный, числовой;
3. длина, например, 15 байт;
4. точность, для числовых данных.
5. описание, комментарий;
6. формат изображения на экране и бумаге;
7. подсказка;
8. формат ввода;
9. начальное значение;
10. диапазон значений.
Ключ – это средство упорядочивания объектов в наборе. Ключ содержит ключевое выражение, составляемое из атрибутов объектов. По возрастанию значения ключевого выражения объекты предъявляются для просмотра и обработки.
Для одного набора можно задать несколько ключей. Например, для набора Работники можно задать ключ по алфавиту фамилий, работники будут предъявляться по алфавиту.
Ключ называется первичным, если по одному значению его выражения из набора выделяется 0 или 1 объект. Например, для набора работников ключ «По табельному номеру» первичный, так как по одному значению табельного номера выделяется или ни одного, или только один работник.
Ключ называется вторичным, если по одному значению его выражения из набора выделяются 0 и более объектов. Например, ключ для набора работников ключ «По алфавиту фамилий» вторичен, так как среди работников могут быть однофамильцы.
По аксиоме отличия у каждого набора существует первичный ключ. В крайнем случае в его выражение включает все атрибуты объекта в наборе.
Хорошей практикой служит введение для объекта данных искусственного атрибута «Порядковый № в наборе», который автоматически присваивается и уникален. Ключ по такому атрибуту называется суррогатным.
Заметим, что понятия первичного и вторичного ключа не зависят от количества и значений объектов в наборе. Первичные и вторичные ключи бывают для пустых наборов.
Пусть имеется n наборов объектов Е1, Е2, … , Еn.
Связью называется множество последовательностей объектов (еi1, еi2,…, еin), где еi1 Î Е1, еi2 Î Е2, …, еin Î Еn.
С помощью связей наборы объектов объединяются в единую информационную структуру.
Между двумя наборами объектов (n=2) различают три типа связей:
1. один к одному ( 1:1 );
2. один ко многим ( 1:М );
3. много ко многим ( М:N ).
Связь между двумя наборами Е1 и Е2 относится к типу «один к одному», если для каждого объекта из первого набора можно указать 0 или 1 объект из второго набора и для каждого объекта из второго набора можно указать 0 или 1 объект из первого набора.
Примерами связей типа 1:1 служат связи между:
· студентами и зачетными книжками,
· между государствами и валютами,
· между офицерами и табельным оружием,
· между гражданами и заграничными паспортами. У каждого студента или нет зачетной книжки, или есть только одна.
Для каждой зачетки или студент не указан, или имеется только один.
Связь между двумя наборами Е1 и Е2 относится к типу «один ко многим», если для каждого объекта из первого набора можно указать 0 или более объектов из второго набора и для каждого объекта из второго набора можно указать 0 или 1 объект из первого набора.
Примерами связей 1:М служат связи между
· банками и вкладами,
· вкладами и взносами,
· между группами и студентами,
· между отделами и сотрудниками,
· между ведомостями и строками ведомостей,
· между клиентами и заявками.
В каждом банке или нет вкладов (банк еще не открылся) или может быть много вкладов. Для каждого вклада или банк не указан, или есть только один.
Связь между двумя наборами Е1 и Е2 относится к типу «многие ко многим», если для каждого объекта из первого набора можно указать 0 или более объектов из второго набора и для каждого объекта из второго набора можно указать 0 или более объектов из первого набора.
Примерами связей M:N служат связи между
· продуктами и странами,
· между студентами и дисциплинами,
· между сотрудниками и проектами,
· между заявками и товарами,
· между магазинами и покупателями.
Каждый продукт может поставляться из многих стран и не поставляться вовсе. Каждая страна может поставлять много продуктов и не поставлять никаких.
Графически связи изображаются стрелками (рис.4.5).
В реальных СУБД реализуется только один тип связи – один ко многим.
Связь 1:1 получается из связи 1:М путем ее ограничения.
Для реализации связи М:N вводится новый набор объектов и используются две связи 1:М.
Например, связь между странами и продуктами типа M:N получается с помощью набора данных «поставки» (рис.4.6).
M : N Страны Продукты 1 : М 1 : М Поставки Рис.4.6. Реализация связи M : N. |
связь М:1 это связь 1:М.
Модель данных – это совокупность трех групп логических правил:
Существует три вида моделей данных: иерархическая, сетевая, реляционная.
В иерархической модели база данных представляется в виде иерархически упорядоченных структур – деревьев (диаграммы Бахмана).
Каждая вершина дерева означает объект данных, каждая дуга означает связь между объектами. Все вершины графа – дерева распределены по уровням. Каждая вершина низшего уровня связана только с одной вершиной из верхнего уровня. Связей внутри уровня и через уровень не существует. На самом верхнем уровне существует только одна вершина - корень дерева.
корень
2-й уровень
Пример, описание ННГУ в иерархической модели выглядит так 2 уровень.
Корень дерева ВузУровень 1. Университет вершины
Рис. 4.3. Иерархическая модель
Ниже перечислены преимущества иерархической модели.
· Простота модели. Иерархия базы данных напоминает структуру компании или генеалогическое дерево.
· Использование отношений предок/потомок. СУБД позволяет легко представлять отношения подчиненности, например: «А является частью В» или «А владеет В».
· Быстродействие. В СУБД отношения предок/потомок реализованы в виде физических указателей из одной записи на другую, вследствие чего перемещение по базе данных происходило быстро.
Групповое отношение - иерархическое отношение между записями двух типов. Родительская запись называется исходной записью, а дочерние записи – подчиненными.
Для групповых отношений в иерархической модели обеспечивается автоматический режим включения и фиксированное членство. Это означает, что для запоминания любой некорневой записи в БД должна существовать ее родительская запись. При удалении родительской записи автоматически удаляются все подчиненные.
Недостатки иерархических БД:
· Каждый объект данных может участвовать только в одной иерархии объектов. Поэтому, если объект должен присутствовать в нескольких иерархиях, то его приходится дублировать.
Например, данные о сотруднике должны участвовать в иерархии подчиненности отделам и в подчиненности контрактам в качестве исполнителей (такие записи называют парными). В иерархической модели не предусмотрена поддержка соответствия между парными записями.