Операции над данными в реляционной модели
Все операции над данными в реляционной модели можно разделить на две группы: операции обновления таблиц-отношений и операции обработки таблиц-отношений.
К операциям обновления относятся:
1.Операция Включить – добавляет новый кортеж в таблицу-отношение. Требует задания имени таблицы и обязательного значения ключей. Выполняется при условии уникальности значения ключа. Добавить новую строку со значением ключа, которое уже есть в таблице невозможно.
2.Операция Удалить – удаляет один или группу кортежей. Требует задания имени таблицы, имени поля и параметров значения полей, кортежи с которыми должны быть удалены.
3.Операция Обновить - изменяет значение не ключевых полей у одного или группы кортежей. Требует задания имени таблицы-отношения, имен полей и их значений для выбора кортежей и имен изменяемых полей.
Особенностью операций обработки в реляционной модели по сравнению с иерархической и сетевой моделями является то, что в качестве единичного элемента обработки выступает не запись (экземпляр объекта), а таблица в целом, т.е. множество кортежей. Все операции обработки являются операциями над множествами и их результатом также является множество, т.е. новая таблица-отношение.
К операциям обработки относятся:
1. Операция Объединения – выполняется над двумя односхемными таблицами-отношениями. Результатом объединения является построенная по той же схеме таблица-отношение, все кортежи первой таблицы и все кортежи второй таблицы. При этом кортежи-дубликаты в итоговой таблице устраняются (рис.56).
СКЛАД 1 | СКЛАД 2 | |||||
№ | Код поставщика | Название материала | № | Код поставщика | Название материала | |
К11 | МЕЛ | К21 | МЕЛ | |||
К12 | ТЕТРАДЬ | К22 | МЕЛ | |||
К13 | КАРАНДАШ | К23 | РУЧКА |
Таблица, полученная в результате операции объединения
СКЛАД | ||
№ | Код поставщика | Название материала |
К11 | МЕЛ | |
К12 | ТЕТРАДЬ | |
К13 | КАРАНДАШ | |
К21 | МЕЛ | |
К23 | РУЧКА |
Рис.56 Иллюстрация операции объединения
2. Операция Пересечения (произведение множеств) выполняется над двумя односхемными таблицами-отношениями. Результатом является таблица-отношение построенная по той же схеме и содержащая только те кортежи первой таблицы, которые входят также в состав кортежей второй таблицы.
После выполнения операции пересечения над исходными таблицами-отношениями получим:
2040 МЕЛ
3. Операция Вычитания выполняется над двумя односхемными таблицами-отношениями. Результатом является таблица-отношение, построенная по той же схеме и содержащая только те кортежи первой таблицы, которых нет в составе кортежей второй таблицы.
После выполнения операции вычитания над исходными таблицами-отношениями получим:
4050 ТЕТРАДЬ
3070 КАРАНДАШ
4. Операция Декартова произведения выполняется над таблицами-отношениями с разными схемами. Результатом является таблица-отношение, схема которой включает все поля первой и все поля второй таблицы (рис.57). Кортежи результирующей таблицы образуются путем последовательного сцепления каждого кортежа первой таблицы-отношения с каждым кортежем второй таблицы. Количество кортежей результирующей таблицы соответственно равно произведению количества кортежей первой таблицы на количество кортежей второй таблицы.
Сотрудники первого отдела | Прохождение обследования | Прохождение обследования сотрудниками первого отдела | |||||
ФИО | Вид обследования | Дата | ФИО | Вид обследования | Дата | ||
Иванов И.И. | Сердечно-сосудистая система | 1.12 | Иванов И.И. | Сердечно-сосудистая система | 1.12 | ||
Петров П.П. | Желудочно-кишечный тракт | 8.12 | Иванов И.И. | Желудочно-кишечный тракт | 8.12 | ||
Петров П.П. | Сердечно-сосудистая система | 1.12 | |||||
Петров П.П. | Желудочно-кишечный тракт | 8.12 |
Рис.57 Иллюстрация операции декартова произведения
5. Операция Выборка (горизонтальное подмножество) – выполняется над одной таблицей-отношением. Результатом является таблица-отношение той же схемы, содержащая подмножество кортежей исходной таблицы, удовлетворяющих условию выборки.
6. Операция Проекция (вертикальное подмножество)- выполняется над одной таблицей-отношением. Результатом является новая таблица-отношение, схема которой содержит только некоторое подмножество полей исходной таблицы (рис.58). Каждому кортежу исходной таблицы соответствует кортеж итоговой таблицы, образованный соответствующими значениями по полям, вошедшим в итоговую таблицу-отношение. При этом в итоговой таблице кортежи-дубликаты устраняются и поэтому мощность итоговой таблицы (количество кортежей) может быть равным или меньше исходной.
Служащие | ||
Фамилия | Номер лаборатории | Должность |
Иванов | инженер | |
Петров | инженер | |
Сидоров | инженер | |
Федоров | экономист |
Берется проекция на поля «Номер лаборатории» и «Должность»
Номер лаборатории | Должность |
инженер | |
инженер | |
экономист |
Рис.58 Иллюстрация выполнения операции проекция
Смысл операции проекции – переупорядочить столбцы в таблице-отношении и удалить одинаковые кортежи (кроме одного)
7) Операция Соединения – выполняется над таблицами-отношениями с различными схемами. В каждой таблице-отношении выделяется поле, по которому будет осуществляться соединение. При этом оба поля должны быть определены на одном и том же домене. Схема итоговой таблицы-отношения включает все поля первой таблицы-отношения и все поля второй таблицы-отношения (как в произведении). Кортежи итоговой таблицы-отношения образуются путем сцепления каждого кортежа из первой таблицы с теми же кортежами второй таблицы, значения которых по полю сцепления одинаковы (рис.59).
Документы с охраняемыми сведениями по ОКР | Журнал выдачи документов сотрудникам | ||||
Рег. № | Тематика | Рег. № | Дата | ФИО | |
13/1-С | Топливо | 1.11 | Иванов И.И. | ||
251-СС | Боезаряд | 1.11 | Иванов И.И. | ||
1455-С | Двигатель | 251-СС | 2.11 | Петров П.П. | |
И-43С | Привод | И-43С | 2.11 | Сидоров С.С. | |
123-4/С | 3.11 | Петров П.П. | |||
3.11 | Егоров Е.Е. | ||||
1455-С | 4.11 | Петров П.П. | |||
675-И/С | 4.11 | Сидоров С.С | |||
И-43С | 3.11 | Петров П.П. |
Соединение по полю «Рег.№»
Сотрудники, работающие с документами, содержащими охранные сведения | |||
Рег. № | Тематика | Дата | ФИО |
251-СС | Боезаряд | 2.11 | Петров П.П. |
1455-С | Двигатель | 4.11 | Петров П.П. |
И-43С | Привод | 2.11 | Сидоров С.С. |
И-43С | Привод | 3.11 | Петров П.П. |
Рис.59 Иллюстрация выполнения операции соединения
8) Операция Деления выполняется над двумя таблицами-отношениями, первая из которых называется делимым, а вторая делителем. При этом схема таблицы-делителя должна состоять из подмножества полей таблицы делимого. Схема итоговой таблицы-отношения содержит только те поля таблицы-делимого, которых нет во второй таблице-делителе. Кортежи итоговой таблицы-отношения образуются на основе кортежей первой таблицы (делимого) по значениям полей, вошедших в итоговую таблицу при условии того, что если взять произведение (декартово) итоговой таблицы-отношения и второй таблицы-отношения (делителя), то образуются соответствующие кортежи первой таблицы (делимого) (рис.60).
Таблица-делимое Таблица делитель
Поездки граждан г. Урюпинска в Германию | Требуемое сочетание турфирм и городов Германии | ||||
ФИО | Турфирма | Город | Турфирма | Город | |
Иванов И.И. | «Евротур» | Берлин | «Евротур» | Берлин | |
Иванов И.И. | «Веси» | Гамбург | «Веси» | Гамбург | |
Петров П.П. | «Евротур» | Гамбург | |||
Петров П.П. | «Веси» | Берлин | |||
Сидоров С.С. | «Евротур» | Берлин | |||
Сидоров С.С. | «Веси» | Гамбург |
Рис.60 Иллюстрация выполнения операции деления
Гражданин с требуемым сочетанием турфирм и городов
ФИО
Иванов И.И.
Сидоров С.С.
Рассмотренные операции реализуются соответствующими средствами СУБД (язык SQL).
Дата добавления: 2016-05-31; просмотров: 2216;