Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 12 БД.doc
Скачиваний:
17
Добавлен:
14.02.2015
Размер:
3.44 Mб
Скачать

3.2. Виды моделей данных

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

Модель данных – совокупность структур данных и операций их обработки.

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

Рассмотрим три основных типа моделей данных: иерархическая, сетевая и реляционная

Иерархическая модель данных

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

Рассмотрим графическое изображение иерархической структуры.

Графическое изображение иерархической структуры БД

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

К каждой записи БД существует только один (иерархический) путь от корневой записи. Например, для записи С4 путь проходит через записи А и В3.

Пример иерархической структуры БД:

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

Сетевая модель данных

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

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

Графическое изображение сетевой структуры

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

Пример сетевой структуры БД:

Реляционная модель данных

Реляционные модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.

Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

  • каждый элемент таблицы – это один элемент данных;

  • все столбцы в таблице однородные, т.е. все элементы столбца имеют одинаковый тип и длину;

  • каждый столбец имеет уникальное имя;

  • одинаковые строки в таблице отсутствуют;

  • порядок следования строк и столбцов может быть произвольным.

Пример реляционной таблицы:

Табельный №

Фамилия

Имя

Отчество

Дата рождения

Отдел

16493

16593

16693

Сергеев

Петрова

Анохин

Петр

Анна

Андрей

Михайлович

Владимировна

Борисович

01.01.76

15.03.75

14.04.76

кадров

экон.

бух.

Другими словами реляционная таблица состоит из полей и записей.

Теперь вспомним, что в таблице является записью, а что полем?

Запись – это строка таблицы, а поле – это столбец.

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

Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем).

Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ.

В рассмотренном примере ключевым полем является «Табельный номер».

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

Пример:

Предположим, что у нас имеется три реляционных таблицы: Клиент, Заказ и Сотрудник.

В таблице Клиент ключевым полем является поле Код клиента, в таблице Заказы – Код заказа, а в таблице Сотрудник – Код сотрудника.

Таблицы Клиент, Заказы и Сотрудник имеют различные ключевые поля, поэтому нет возможности легко организовать между ними связь, поэтому, для организации связи между ними, необходимо: для связи таблиц Клиент и Заказы в структуру таблицы Заказы ввести внешний ключ Код клиента, а для связи таблиц Заказы и Сотрудник в структуру таблицы Заказы ввести внешний ключ Код сотрудника