Тема: Реляционная модель данных
Таблица (отношение) Отделение
| кардинальность |
| branchNo | street | city | postcode |
| B001 | пр.Гагарина, 35 | Харьков | |
| B005 | ул.Мира, 8 | Киев | |
| B003 | пл.Нахимова, 1 | Севастополь | |
| B007 | пл.Контрактовая, 7 | Киев |
Таблица (отношение) Персонал
| staffNo | fName | lName | position | sex | DOB | salary | branchNo |
| Тело отношения |
| SKh1 | Иван | Перов | руководитель | м | 10.03.1980 | B001 | |
| SK2 | Сергей | Чижов | пом.руководителя | м | 05.07.1977 | B005 | |
| SS1 | Петр | Сидоренко | руководитель | м | 17.10.1965 | B003 | |
| SKh2 | Анна | Петренко | консультант | ж | 11.05.1982 | B001 | |
| SKh3 | Ольга | Петренко | консультант | ж | 11.05.1982 | B001 | |
| SK1 | Вера | Овчаренко | руководитель | ж | 19.03.1979 | B005 | |
| SK3 | Семен | Соколов | руководитель | м | 12.08.1981 | B007 |
Таблица 1. Домены некоторых атрибутов отношений Отделение и Персонал
| Атрибут | Имя домена | Содержимое домена | Определение домена |
| branchNo | BranchNumbers | Множество всех допустимых номеров отделений компании | Символьный: размер 4, диапазон 'B001'-'B999' |
| street | StreetNames | Множество всех названий улиц в Украине | Символьный: размер 40 |
| city | cityNames | Множество всех названий городов в Украине | Символьный: размер 32 |
| postcode | Postcodes | Множество всех почтовых индексов в Украине | Символьный: размер 5 |
| sex | Sex | Обозначение пола человека | Символьный: размер 1, значение 'М' или 'Ж' |
| DOB | DatesOf Birth | Все возможные значения даты рождения работника компании | Дата: диапазон от l-Jan-1900, формат dd-mon-yyyy |
| salary | Salaries | Все возможные значения годовой заработной платы работника компании | Денежный: 7 цифр, диапазон 6000.00-40000.00 |
Таблица 2. Альтернативные варианты терминов в реляционной модели
| Реляционный термин | Альтернативный вариант 1 | Альтернативный вариант 2 |
| Отношение | Таблица | Файл |
| Кортеж | Строка | Запись |
| Атрибут | Столбец | Поле |
| Кардинальность | Количество строк | |
| Степень | Количество столбцов | |
| Первичный ключ | Уникальный идентификатор | |
| Домен | Совокупность допустимых значений |
Таблица 3.Результат выполнения операции выборки из отношения Персонал кортежей с атрибутом salary>2500
| staffNo | fName | lName | position | sex | DOB | salary | branchNo |
| SKh1 | Иван | Перов | руководитель | м | 10.03.1980 | B001 | |
| SS1 | Петр | Сидоренко | руководитель | м | 17.10.1965 | B003 | |
| SK1 | Вера | Овчаренко | руководитель | ж | 19.03.1979 | B005 | |
| SK3 | Семен | Соколов | руководитель | м | 12.08.1981 | B007 |
Таблица 4.Результат выполнения операции проекции из отношения Персонал
| staffNo | fName | lName | salary |
| SKh1 | Иван | Перов | |
| SK2 | Сергей | Чижов | |
| SS1 | Петр | Сидоренко | |
| SKh2 | Анна | Петренко | |
| SKh3 | Ольга | Петренко | |
| SK1 | Вера | Овчаренко | |
| SK3 | Семен | Соколов | |
| SS2 | Сергей | Ветров |
Таблица 5. Отношение Объекты_Недвижимости
| propertyNo | street | city | postcode | type | rooms | rent | ownerNo |
| PG4 | пр.Ленина, 9, кв.11 | Харьков | квартира | С040 | |||
| PG16 | ул.Есенина, 3, кв.7 | Харьков | квартира | С093 | |||
| PG36 | ул.23 Августа, 3, кв.27 | Харьков | квартира | С093 | |||
| CA15 | ул.Спортивная, 3 | Киев | дом | С101 | |||
| CA09 | ул.Труда, 17, кв.15 | Киев | квартира | С314 | |||
| PG80 | ул.Правды, 43, кв.7 | Чугуев | квартира | С079 | |||
| КA34 | ул.Каштановая, 5 | Ялта | дом | С452 | |||
| CA19 | ул.Зерновая, 7 | Киев | дом | С453 |
Еще одна (дополнительная) таблица Объекты_Недвижимости
| propertyNo | street | city | postcode | type | rooms | rent | ownerNo | staffNo | branchNo |
| PG4 | пр.Ленина, 9, кв.11 | Харьков | квартира | С040 | SKh2 | B001 | |||
| PG16 | ул.Есенина, 3, кв.7 | Харьков | квартира | С093 | SKh2 | B001 | |||
| PG36 | ул.23 Августа, 3, кв.27 | Харьков | квартира | С093 | SKh3 | B001 | |||
| CA15 | ул.Спортивная, 3 | Киев | дом | С101 | SK2 | B005 | |||
| CA09 | ул.Труда, 17, кв.15 | Киев | квартира | С314 | SK2 | B005 | |||
| PG80 | ул.Правды, 43, кв.7 | Чугуев | квартира | С079 | B001 | ||||
| КA34 | ул.Каштановая, 5 | Ялта | дом | С452 | SS2 | B003 | |||
| CA19 | ул.Зерновая, 7 | Киев | дом | С453 | SK3 | B007 |
Таблица 6. Результат выполнения операции объединения отношений(исключая дублирование)Отделение и Объекты_Недвижимости
| city |
| Харьков |
| Севастополь |
| Киев |
| Чугуев |
| Ялта |
Таблица 7. Результат выполнения операции разности между отношениямиОтделение и Объекты_Недвижимости
| city |
| Севастополь |
Таблица 8. Результат выполнения операции пересечения отношенийОтделение и Объекты_Недвижимости
| city |
| Харьков |
| Киев |
Таблица 9. Поставщики продукции Таблица 10. Продукция
| Номер поставщика | Поставщик |
| ЧП Иванов | |
| ООО Марс | |
| ПО Зоря |
| Номер детали | Наименование детали |
| Болт | |
| Гайка | |
| Винт |
Таблица 11 – Результат декартова произведения
| Номер поставщика | Поставщик | Номер детали | Наименование детали |
| ЧП Иванов | Болт | ||
| ЧП Иванов | Гайка | ||
| ЧП Иванов | Винт | ||
| ООО Марс | Болт | ||
| ООО Марс | Гайка | ||
| ООО Марс | Винт | ||
| ПО Зоря | Болт | ||
| ПО Зоря | Гайка | ||
| ПО Зоря | Винт |
Пример. Пусть необходимо найти всех арендаторов, которые осматривали объекты недвижимости с тремя комнатами. Отношение Осмотр представлено таблицей 12, а существующее унарное отношение Комнаты_квартиры представлено таблицей 13.
Таблица 12. Отношение Осмотр
| propertyNo | street | city | type | rooms | clientNo | cName |
| PG4 | пр.Ленина, 9, кв.11 | Харьков | квартира | CR76 | Игорь Воронов | |
| PG16 | ул.Есенина, 3, кв.7 | Харьков | квартира | CR56 | Ира Перова | |
| PG36 | ул.23 Августа, 3, кв.27 | Харьков | квартира | CR56 | Ира Перова | |
| CA15 | ул.Спортивная, 3 | Киев | дом | CR76 | Игорь Воронов | |
| CA09 | ул.Труда, 17, кв.15 | Киев | квартира | CR76 | Игорь Воронов | |
| PG80 | ул.Правды, 43, кв.7 | Чугуев | квартира | CR56 | Ира Перова | |
| КA34 | ул.Каштановая, 5 | Ялта | дом | CR76 | Игорь Воронов | |
| CA19 | ул.Зерновая, 7 | Киев | дом | CR76 | Игорь Воронов |
Таблица 13. Отношение Комнаты_квартиры
| rooms |
Тогда результатом выполнения операции деления
Осмотр¸s rooms=3(Комнаты_квартиры)
будет отношение, представленное в таблице 14.
Таблица 14. Результат деления
| propertyNo | street | city | type | clientNo | cName |
| PG16 | ул.Есенина, 3, кв.7 | Харьков | квартира | CR56 | Ира Перова |
| PG80 | ул.Правды, 43, кв.7 | Чугуев | квартира | CR56 | Ира Перова |
Для того чтобы решить задачу до конца необходимо над результатом выполнить операцию проекции, то есть:
ПcName(Осмотр¸s rooms=3(Комнаты_квартиры)).
Окончательный результат представлен в таблице 14 (при этом дублирование строк исключается).
Таблица 15. Результат проекции
| cName |
| Ира Перова |