2.3. Сетевая модель
Сетевая модель является развитием иерархической модели. В отличие от иерархической модели в сетевой модели потомок может иметь любое количество предков. Сегменты, которые называются в сетевой модели наборами записей, связываются между собой не только по принципу «сверху вниз», но и «по горизонтали» с помощью наборов связей. На рис. 2.4 показан пример организации данных по сетевой модели.
Рис. 2.3. Пример организации данных по сетевой модели
На рис. 2.4 показана сетевая модель базы данных для анализа выполнения проектов.
ИСПОЛНИТЕЛЬ2_ПРОЕКТ2
Для связи записей ПРОЕКТ и ИСПОЛНИТЕЛЬ вводится запись ИСПОЛНИТЕЛЬ_ПРОЕКТ. Доступ к данным осуществляется не только «сверху вниз», но и по горизонтальным наборам связей.
К достоинствам сетевой модели данных относятся возможность образования произвольных связей и быстрый доступ к данным.
Недостатками сетевой модели являются сложность ее понимания для обычного пользователя и большие объемы памяти компьютера на хранение данных.
2.4. Реляционная модель
Реляционная модель базы данных была предложена американским математиком Kоддом (Dr. Codd.). в 1969 году
В настоящее время это самая распространенная модель баз данных .
Основными преимуществами указанной модели являются простота, наглядность и строгое математическое обоснование.
В основе реляционной модели базы данных лежит следующее определение:
Пусть заданы множества D1 , D2 , … Dn (n 1) необязательно различных.
N – арным отношением R называют подмножество декартова произведения указных множеств D1 x D2 x … Dn.
Исходные множества D1 , D2 , … Dn называются в модели доменами.
R D1 x D2 x … Dn (1)
где D1 x D2 x … Dn - полное декартово произведение
Полное декартово произведение – это набор всевозможных сочетаний из n элементов, где каждый элемент берется из своего домена.
Пример:
D1 содержит номера трех заказов, D2 содержит набор из двух шифров фирм, D3 содержит три веса заказов.
D1 - {1021, 1022, 1023}
D2 - {АА, АС}
D3 - {100, 300, 120}
В этом случае полное декартово произведение содержит набор из 18 троек, где первый элемент – это один из номеров заказов, второй – это один из шифров фирмы, а третий – один из весов заказа.
<1021. АА. 100> <1021. АА. 300> <1021. АА. 120>
<1022. АА. 100> <1022. АА. 300> <1022. АА. 120>
<1023. АА. 100> <1023. АА. 300> <1023. АА. 120>
<1021. АC. 100> <1021. АC. 300> <1021. АC. 120>
<1022. АC. 100> <1022. АC. 300> <1022. АC. 120>
<1023. АC. 100> <1023. АC. 300> <1023. АC. 120>
Вхождение домена в отношение называется атрибутом. Строки отношения называются кортежами. Количество кортежей в отношении называется мощностью отношения.
Отношение имеет более простую графическую интерпретацию и может быть представлена в виде таблицы, столбцы (поля) которой соответствуют вхождениям доменов в отношении, а строки (записи) – наборам из n – значений, взятых из исходных доменов, которые расположены в строгом порядке в соответствии с заголовками.
Таблица 1 Таблица 2
R R1
Ном_заказ |
Шифр_к |
Вес_з |
|
|
Ном_заказ |
Шифр_к |
Вес_з |
1021 |
АА |
100 |
|
|
1021 |
АА |
100 |
1021 |
АА |
300 |
|
|
1022 |
АА |
300 |
1021 |
АА |
120 |
|
|
1023 |
АС |
100 |
1021 |
АС |
100 |
|
|
1023 |
АС |
300 |
1021 |
АС |
300 |
|
|
1023 |
АС |
120 |
1021 |
АС |
120 |
|
|
|
|
|
1022 |
АА |
100 |
|
|
|
|
|
1022 |
АА |
300 |
|
|
|
|
|
1022 |
АА |
120 |
|
|
|
|
|
1022 |
АС |
100 |
|
|
|
|
|
1022 |
АС |
300 |
|
|
|
|
|
1022 |
АС |
120 |
|
|
|
|
|
1023 |
АА |
100 |
|
|
|
|
|
1023 |
АА |
300 |
|
|
|
|
|
1023 |
АА |
120 |
|
|
|
|
|
1023 |
АС |
100 |
|
|
|
|
|
1023 |
АС |
300 |
|
|
|
|
|
1023 |
АС |
120 |
|
|
|
|
|
Теоретически всевозможные сочетания встречаются на практике редко, поэтому отношения могут моделировать реальную ситуацию. Например, отношение R может содержать только 5 строк (Сравним Таблицу 1- полное декартово произведение и реальную Таблицу 2).
Таким образом, существуют следующие соответствия в терминологии:
Отношение- таблица
Атрибут– поле
Кортеж - запись
Поскольку отношение – это подмножество декартова произведения, где все наборы различны, поэтому в отношении (таблице) не может быть одинаковых кортежей (записей).
В соответствии со свойством декартова произведения два отношения, отличающиеся порядком атрибутов (полей), будут интерпретироваться в рамках реляционной модели как одинаковые.
Любая таблица реляционной (relation- отношение) базы данных состоит из строк называемых также записями, и столбцов, называемых полями.
Строки таблицы содержат сведения о представленных в ней фактах (документах, людях, т.е об однотипных объектах). На пресечении столбца и строки находятся конкретные значения содержащихся в таблице данных.
Пример:
Т
Поля
-
К од клиента
Клиент
Город
Улица
АА
БелТур
Минск
Правды 11
АБ
Сименс
Мюнхен
Лейбница 8
АС
ПМК –23
Пуховичи
Широкая 1
АД
Атлант
Минск
Захарова 20
…
…
…
…
Данные в таблице удовлетворяют следующим принципам:
Каждое значение, содержащееся на пересечении строки и столбца должно быть атомарным, т.е. не расчленяться на несколько значений
Значения данных в одном и том же столбце должны принадлежать к одному и тому же типу, доступному для использования в данной СУБД. Т.е каждое поле имеет свой тип – символьный, числовой, дата и т.д.
Каждая запись уникальна, т.е. в таблице не существует двух полностью совпадающих записей
Каждое поле имеет уникальное имя
Последовательность полей в таблице не существенна
Последовательность записей в таблице не существенна
Несмотря на, то что строки таблиц считаются неупорядоченными, СУБД позволяет сортировать строки и столбцы в нужном для пользователя порядке.
Так как последовательность столбцов (полей) в таблице не существенна, то обращение к ним производится по имени, поэтому имена полей для данной таблицы являются уникальными и не могут повторяться.