Тема: Реляционная модель данных
Таблица (отношение) Отделение
кардинальность |
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 |
Ира Перова |