В отличие от иерархической в сетевой модели (СМ) потомок может иметь любое количество предков. Сегменты, которые в СМ называются наборами записей, связываются между собой по принципу не только «сверху вниз», но и «по горизонтали» с помощью наборов связей. Например:
Приведем сетевую модель БД для анализа выполнения проектов. Для связи записей Проект и Исполнитель вводится запись Исполнитель_Проект (горизонтальный набор связей).
К достоинствам СМ относятся возможность образования произвольных связей и быстрый доступ к данным.
Недостатками являются сложность ее понимания для обычного пользователя и большие объемы памяти на хранение данных.
Самая распространенная сегодня реляционная модель данных (РМ) была предложена американским математиком Коддом, который в 1970 г. впервые сформулировал ее основные понятия.
В основе РМ данных лежит понятие отношение (relation). Отношение отображает некоторый объект, объект характеризуется набором атрибутовD1, D2, ..., Dn, a каждый атрибут – набором допустимых значений, называемым доменом. Пусть
D1 = {x1, x2, ..., xk}
D2 = {y1, y2, ..., yl}
. . . . . . . . . . . . . . .
Dn = {z1, z2, ..., zт}.
Список пар из имен и типов атрибутов называется схемой отношения, а количество атрибутов в отношении – степенью отношения.
Отношение определяется как подмножество R декартова произведения D1´D2´ ... ´Dn, т.е.
R Í D1´D2´ ... ´Dn.
Декартово произведение – это набор всевозможных сочетаний из п значений, где каждое значение берется из своего домена.
Например, пусть D1содержит номера двух заказов {1021, 1022}, D2 – коды двух клиентов {К1, К2}, D3 – веса двух заказов {100, 200}. В этом случае отношение R есть декартово произведение D1´D2´D3, которое представляет собой набор из 8 троек значений, где первое значение – это один из номеров заказов, второе – один из кодов клиентов, а третье – один из весов заказа
Термин отношение используется как синоним слова таблица. Так, описанное выше отношение можно представить как таблицу следующего вида.
R
Номер заказа
Код клиента
Вес заказа
К1
К1
К2
К2
К1
К1
К2
К2
Столбцы этой таблицы соответствуют атрибутам, а строки называются кортежами.
На практике отношения со всевозможными сочетаниями значений атрибутов встречаются редко.
Фундаментальные свойства отношений (таблиц):
1) атомарность значений столбцов, т.е. на пересечении каждой строки и столбца, должно быть одно простое значение;
2) каждый столбец имеет уникальное имя;
3) значения в столбце должны быть однородными;
4) отсутствие кортежей-дубликатов, т.е. в таблице не существует двух полностью совпадающих строк;
5) последовательность столбцов в таблице несущественна;
6) последовательность строк в таблице несущественна.
Отсутствие в таблице повторяющихся строк обеспечивается с помощью первичного ключа. Первичный ключ – это набор из одного или нескольких столбцов отношения, позволяющий однозначно идентифицировать каждую строку таблицы. Для этого значения первичного ключа каждой строки должны различаться.
В таблице реляционной БД столбцыназывают полями, а строки – записями.
При проектировании реляционной БД с целью уменьшения избыточности хранения данных обычно создается несколько таблиц, между которыми устанавливаются связи.
Например, в БД должна храниться таблица Сотрудники с информацией о сотрудниках некоторой организации. Первичный ключ – КодСотрудника. Для того, чтобы информация о названиях отделов не повторялась, она выносится в отдельную таблицу Отделы. Первичный ключ – КодОтдела. Поскольку в одном отделе работает много сотрудников, то таблица Отделы является главной, а таблица Сотрудники – подчиненной. Связь между таблицами устанавливается следующим образом: главная таблица передает в подчиненную копию первичного ключа, который становится внешним ключом подчиненной таблицы. Одна запись главной таблицы может быть связана с одной или несколькими записями подчиненной и значение внешнего ключа подчиненной таблицы ссылается на некоторую запись в главной таблице. При этом значения первичного ключа уникальны, а внешнего – могут повторяться.
Графическое изображение связей между таблицами называется схемой данных.