
- •Лекція 3. Реляційна модель бази даних
- •3. Вступ
- •3.1. Короткий огляд історії реляційної моделі
- •Домен - це набір припустимих значень для одного чи декількох атрибутів.
- •Кортеж - це рядок відношень.
- •Ступінь - ступінь відношення визначається кількістю атрибутів, що вона містить.
- •Кардинальність - це кількість кортежів, що містить відношення.
- •Реляційна база даних - Набір нормалізованих відношень.
- •Альтернативна термінологія
- •3.2.2. Математичні відношення
- •3.2.3. Відношення в базі даних
- •Реляційна схема - ім'я відношення, за яким випливає множина пар імен атрибутів і доменів.
- •3.2.4. Властивості відношень
- •3.2.5. Реляційні ключі
- •Суперключ (superkey) - Атрибут чи множина атрибутів, що єдиним образом ідентифікує кортеж даного відношення.
- •Потенційний ключ - суперключ, що не містить підмножини, що також є суперключем даного відношення.
- •Первинний ключ - Це потенційний ключ, що обраний для унікальної ідентифікації кортежів усередині відношення.
- •Зовнішній ключ - це атрибут чи множина атрибутів усередині відношення, що відповідає потенційному ключу будь якого (може того ж самого) відношення.
- •3.2.6. Представлення схем у реляційній базі даних
- •3.3. Реляційна цілісність
- •3.3.1. Визначник null Визначник null вказує, що значення атрибуту в даний момент невідомо чи неприйнятне для цього кортежу.
- •3.3.2. Цілісність сутностей
- •Цілісність сутностей - у базовому відношенні жоден атрибут, первинного ключа не може містити відсутніх значень, що позначаються визначником null.
- •3.3.3. Посилальна цілісність
- •3.3.4. Корпоративні обмеження цілісності Корпоративні обмеження цілісності - Додаткові правила підтримки цілісності даних, обумовлені користувачами чи адміністраторами бази даних.
- •3.4. Реляційні мови
- •3.4.1. Реляційна алгебра
- •Вибірка (чи обмеження)
- •Проекція
- •Декартовий добуток
- •Об'єднання
- •Різниця
- •Операції з'єднання
- •Тета-з'єднання (θ - join)
- •Природне з'єднання
- •Зовнішнє з'єднання
- •Напівз'єднання
- •Перетинання
- •Розподіл
- •3.4.2. Реляційне числення
- •Реляційне числення кортежів
- •Реляційне числення доменів
- •3.4.3. Інші мови
- •3.5. Представлення
- •3.5.1. Термінологія
- •Базове відношення - пойменоване відношення, що відповідає сутності в концептуальній схемі, кортежі якого фізично зберігаються в базі даних.
- •3.5.2. Призначення представлень
- •3.5.3. Відновлення представлень
- •3.6. Коли скбд можна вважати Реляційної
- •Фундаментальні правила (правила 0 і 12)
- •Правило 0 - фундаментальне правило
- •Правило 12 - правило заборони обхідних шляхів
- •Структурні правила (правила 1 і 6)
- •Правило 1 - представлення інформації
- •Правило 6 - відновлення представлення
- •Правила цілісності (правила 3 і 10)
- •Правило 3 - систематична обробка невизначених значень (null)
- •Правило 10 - незалежність обмежень цілісності
- •Правила маніпулювання даними (правила 2, 4, 5 і 7)
- •Правило 2 - гарантований доступ
- •Правило 4 - динамічний інтерактивний каталог, побудований за правилами реляційної моделі
- •Правило 5 - вичерпна підмова даних
- •Питання
Питання
3.1. Дайте визначення кожному з наступних понять у контексті Реляційної моделі даних:
а) відношення;
б) атрибут;
в) домен;
г) кортеж;
д) заголовок і тіло;
е) ступінь і кардинальне число.
3.2. Укажіть розходження між потенційними ключами і первинним ключем відношення. Що означає поняття "зовнішній ключ"? Як зовнішні ключі відношень зв'язані з потенційними ключами? Приведіть приклади, що ілюструють ваші відповіді.
3.3. Дайте визначення двох основних правил цілісності реляційної моделі і розповісти, чому необхідно їх використовувати.
3.4. Дайте визначення п'ятьом основним операціям реляційної алгебри. Визначите три операції реляційної алгебри що залишилися, на основі цих п'яти операцій.
3.5. Що таке представлення? Укажіть розходження, між представленням і базовим відношенням. Поясніть, що відбувається при доступі користувача до бази даних через представлення.
Вправи
Перераховані нижче таблиці утворять частину бази даних реляційної СКБД.
Hotel (Hotel_No, Name, Address)
Room (Room_No, Hotel_Mo, Type, Price)
Booking (Hotel_No, Guest_No, Date_From, Date_To, Room_No)
Guest (Guest_No, Name, Address)
Тут таблиця Hotel містить зведення про готель, причому атрибут Hotel_No є її первинним ключем. Таблиця Room містить дані про номери всіх готелів, а комбінація атрибутів (Hotel No, Room_No) утворить її первинний ключ. Таблиця Booking містить зведення про бронювання готельних номерів; її первинним ключем є комбінація атрибутів (Hotel_No, Guest_No, Date_From). Нарешті, таблиця Guest містить зведення про постояльців готелів, і її первинним ключем є атрибут Guest_No.
3.6. Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити:
а) перелічити всі готелі;
б) перелічити всі однокімнатні готельні номери вартістю менш 20 фунтів стерлінгів за добу;
в) перелічите імена й адреси всіх постояльців;
г) складіть список вартості і типів усіх готельних номерів у готелі "Grosvenor Hotel";
д) перелічите всіх постояльців готелю "Grosvenor Hotel";
е) приведіть зведення про всі номери готелю "Grosvenor Hotel", включаючи імена постояльців, що знімають той чи інший номер;
ж) приведіть зведення (атрибути Gtiest_No, Name і Address) про всіх постояльців готелю "Grosvenor Hotel".
3.7. Використовуючи засобу реляційної алгебри створіть представлення зі зведеннями про всі номери готелю "Grosvenor Hotel", крім їх вартості. Якими перевагами володіє подібне представлення?
3.8. Для перерахованих вище запитів створіть еквівалентні команди в реляційному численні кортежів і доменів.
3.9. Поясніть, як правила цілісності сутностей і посилальної цілісності можуть бути застосовані до цих відношень.
3.10. Проаналізуйте можливості використовуваної вами РСКБД. Визначите, чи надає вона засобу підтримки первинних ключів, альтернативних ключів, зовнішніх ключів, реляційної цілісності і представлень. Які типи реляційних мов підтримуються в цій системі? Які операції в кожній з цих мов еквівалентні восьми операціям реляційної алгебри, згаданим у розділі 3.4.1?