
- •Тема. Модели данных
- •2.1. Трехуровневая модель организации баз данных
- •1. Иерархическая модель
- •2. Сетевая модель
- •3. Реляционная модель
- •3.1. Основные понятия реляционной модели данных
- •Одна запись главной таблицы может быть связана с одной или несколькими записями подчиненной таблицы. При этом значения первичного ключа уникальны, а внешнего – могут повторяться.
- •Нужно связать таблицы клиенты и заказы. Поле «Код клиента» таблицы клиенты является первичным ключом, а таблицы заказы – внешним.
- •3.3. Операции реляционной алгебры
- •3.4. Достоинства и недостатки реляционной модели данных
- •4. Постреляционная модель
- •5. Объектно-ориентированная и объектно-реляционная модели
- •6. Многомерная модель
Одна запись главной таблицы может быть связана с одной или несколькими записями подчиненной таблицы. При этом значения первичного ключа уникальны, а внешнего – могут повторяться.
В общем случае реляционная модель данных представляет множество взаимосвязанных таблиц. Графическое изображение связи между таблицами называется схемой данных.
Имеется таблица Заказы вида:
ЗАКАЗЫ
Номер заказа |
Код клиента |
Дата заказа |
Вес заказа |
1020 |
АБ |
01.02.06 |
400 |
1021 |
АА |
01.02.06 |
100 |
1022 |
АС |
12.02.06 |
300 |
1023 |
АА |
20.03.06 |
120 |
1024 |
АБ |
28.05.06 |
600 |
Нужно связать таблицы клиенты и заказы. Поле «Код клиента» таблицы клиенты является первичным ключом, а таблицы заказы – внешним.
КЛИЕНТЫ ЗАКАЗЫ
К |
|
Номер_заказа |
Клиент |
|
Код клиента |
Адрес |
|
Дата заказа |
|
|
Вес заказа |
Рис.5. Схема данных таблиц
КЛИЕНТЫ и ЗАКАЗЫ
3.2. Условия реляционной целостности
В реляционной модели данных должны выполняться условия целостности данных.
Условие «целостности таблиц» накладывает ограничения на значения первичного ключа – значения первичного ключа таблицы должны быть уникальными и непустыми.
Условие «ссылочной целостности» предполагает, что каждое значение внешнего ключа должно совпадать с одним из значений первичного ключа.
3.3. Операции реляционной алгебры
В процессе обработки реляционных таблиц СУБД выполняет операции реляционной алгебры такие, как объединение, пересечение, декартово произведение, разность, проекция, выборка, соединение, деление.
Операции объединения, пересечения, разности производятся над двумя исходными отношениями R1 и R 2, имеющими одинаковый состав и порядок атрибутов. Результатом является отношение такой же структуры.
Объединением двух отношений R1 U R2 называется отношение R, содержащее множество кортежей, принадлежащих либо R1, либо R2, либо обоим отношениям R1, R2 одновременно.
Пример 1
Пусть исходными отношениями являются отношения R1 и R2, которые содержат перечень номеров заказов и веса заказов, которые оформлялись двумя различными участками отдела сбыта:
R1 R2
Номер заказа |
Вес заказа |
|
Номер заказа |
Вес заказа |
1021 |
100 |
|
1021 |
100 |
1022 |
300 |
|
1022 |
300 |
1023 |
120 |
|
1024 |
500 |
1024 |
500 |
|
1025 |
300 |
1026 |
200 |
|
|
|
Тогда объединение R1 U R2 содержит общий перечень заказов, которые оформлялись в отделе сбыта:
R
Номер заказа |
Вес заказа |
1021 |
100 |
1022 |
300 |
1023 |
120 |
1024 |
500 |
1025 |
300 |
1026 |
200 |
Пересечением отношений R1 R2 называется отношение R, которое содержит множество кортежей, принадлежащих одновременно и R1, и R2.
Пример 2
Пусть отношения R1, R2 такие же, как в примере 1. Тогда пересечение R1 R2 содержит перечень заказов, которые оформлялись обоими участками отдела сбыта:
R
Номер заказа |
Вес заказа |
1021 |
100 |
1022 |
300 |
1024 |
500 |
Операция декартова произведения была пояснена ранее.
Разностью отношений R1 и R2 называется отношение R, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2.
Пример 3
Пусть отношения R1, R2 такие же, как в примере 1. Тогда разность R1\ R2 содержит перечень заказов, которые оформлялись только на первом участке отдела сбыта:
R
Номер заказа |
Вес заказа |
1023 |
120 |
1026 |
200 |
Операции проекции, выборки, соединения, деления являются специальными операции реляционной алгебры.
Операция проекции – это выбор атрибутов в отношении. Пусть в отношении R выбирается подмножество его атрибутов Y. Тогда проекцией PY (R) будет отношение, в которое входят все кортежи R, содержащие только значения атрибутов из подмножества Y.
Пример 4
Пусть отношение R есть таблица ЗАКАЗЫ, а подмножество Y включает два атрибута – «Номер заказа» и «Код клиента». Тогда проекцией PY (R) является отношение:
Номер заказа |
Код клиента |
1020 |
АБ |
1021 |
АА |
1022 |
АС |
1023 |
АА |
1024 |
АБ |
Для операции выборки задается условие выборки кортежей булевым выражением (r), составленным из термов сравнения с помощью логических операций «И», «ИЛИ», «НЕ». Терм сравнения – выражение типа сравнения (в нем могут использоваться операции «=», «>», «<». «», «», «»). Результат операции выборки R[(r)] на отношении R есть отношение, включающее кортежи, для которых истинно заданное условие.
Пример 5
Требуется выбрать заказы с номером 1021 из отношения:
R1
Номер заказа |
Вес заказа |
Номер участка |
1021 |
100 |
1 |
1022 |
300 |
1 |
1023 |
120 |
1 |
1024 |
500 |
1 |
1026 |
200 |
1 |
1023 |
120 |
2 |
1021 |
100 |
2 |
1024 |
500 |
3 |
Тогда результатом выборки является отношение, содержащее кортежи, у которых номер заказа равен 1021:
R
Номер заказа |
Вес заказа |
Номер участка |
1021 |
100 |
1 |
1021 |
100 |
2 |
Операция соединения отношений R1 R2
А1=А2
выполняется путем сцепления кортежей отношения R1 с кортежами отношения R2 при условии совпадения значения атрибута А1 отношения R1 со значением атрибута А2 отношения R2 (А1, А2 – атрибуты, задаваемые для сцепления). При этом в результирующее отношение R одинаковые атрибуты включаются только один раз.
Пример 6
Пусть отношение R1 – это таблица КЛИЕНТЫ, а отношение R2 – таблица ЗАКАЗЫ. Тогда соединением отношений R1, R2 по «Коду клиента» будет отношение:
R
Код клиента |
Клиент |
Адрес |
Номер заказа |
Дата заказа |
Вес заказа |
АА |
БГЭУ |
Минск, пр-т Партизанский, 26 |
1021 |
01.02.06 |
100 |
АА |
БГЭУ |
Минск, пр-т Партизанский, 26 |
1023 |
20.03.06 |
120 |
АБ |
Сименс |
Мюнхен, ул. Лейбница, 8 |
1020 |
01.02.06 |
400 |
АБ |
Сименс |
Мюнхен, ул. Лейбница, 8 |
1024 |
28.05.06 |
600 |
АС |
Атлант |
Минск, пр-т Победителей, 61 |
1022 |
12.02.06 |
300 |
Операция деления выполняется над двумя отношениями R1, R2, имеющими атрибуты, определенные на одном домене. Пусть k1 – степень отношения R1, а k2 – отношения R2 и k1>k2. Тогда результат операции деления R1R2 есть отношение R степени k1-k2, любой кортеж которого вместе с любым кортежем R2 образует кортеж, имеющийся в R1.
Пример7
Пусть исходные отношения:
R1 R2
Код произво- дителя |
Произво- дитель |
Мероприятие |
Дата |
|
Мероприятие |
Дата |
П1 |
Сименс |
Рекламная акция |
10.06.06 |
|
Рекламная акция |
10.06.06 |
П1 |
Сименс |
Участие в выставке |
20.06.06 |
|
Участие в выставке |
20.06.06 |
П2 |
Атлант |
Рекламная акция |
10.06.06 |
|
|
|
П2 |
Атлант |
Участие в выставке |
20.06.06 |
|
|
|
П3 |
Горизонт |
Участие в выставке |
20.06.06 |
|
|
|
Тогда результатом операции деления R1R2 есть отношение :
R
П1 |
Сименс |
П2 |
Атлант |