
- •Лекція 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 - вичерпна підмова даних
- •Питання
Напівз'єднання
-
R S
Операція напівз'єднання визначає відношення, що містить ті кортежі відношення R, що входять у з'єднання відношень R і S.
П еревага напівз'єднання полягає в тім, що воно дозволяє скоротити кількість кортежів, яких потрібно обробити для одержання з'єднання. Це особливо корисно при обчисленні з'єднань у розподілених системах. Операцію напівз'єднання можна сформулювати і за допомогою операторів проекції і з'єднання:
R S = ПА(R S)
Тут А - це набір всіх атрибутів у відношенні R. Насправді це напівтета-зєднання, причому слід зазначити, що існують напівз'єднання по еквівалентності і напівприродні з'єднання.
Приклад 3.9 Операція напівз'єднання
Створіть звіт, що містить повну інформацію про всіх співробітників працюючих у відділенні компанії, розташованому в районі 'Partick'.
Якщо нас цікавлять тільки атрибути відношення Staff, то в такому випадку ми можемо використовувати наступну операцію напівз'єднання, що приводить до створення відношення, приведеного, у табл. 3.17.
S
taff
staff.bno = branch.bno and branch.ares = ‘Patrick’ Branch
Перетинання
-
R S
Операція перетинання визначає відношення, що містить кортежі, що є присутнім як у відношенні R, так і у відношенні S. Відношення R і S повинні бути сумісні по об'єднанню.
Перетинання можна сформулювати і на основі оператора різниці множин:
R S = R - (R - S)
Розподіл
Оператор розподілу може бути корисний
у випадку запитів особливого типу, які
досить часто зустрічаються в додатках
баз даних. Припустимо, що відношення R
визначене на множині атрибутів А,
а відношення S - на множини атрибутів
У, причому В
А (тобто В є підмножиною А).
Нехай С = А - У, тобто С є
множиною атрибутів відношення R, що
не є атрибутами відношення S.
Тоді визначення оператора розподілу буде виглядати в такий спосіб
-
R S
Результатом оператора розподілу є набір кортежів відношення R, визначених на множини атрибутів С, що відповідають комбінації всіх кортежів відношення S.
Цей оператор можна сформулювати і на основі інших основних операторів:
T1 = Пс(ДО)
T2 = Пс((S x T1) - R)
T = T1 + T2
Приклад 3.10 Операція розподілу відношень
Створіть список всіх орендарів, що оглядали об'єкти нерухомості з трьома кімнатами.
Для рішення поставленої задачі спочатку необхідно за допомогою оператора вибірки виконати пошук усіх трикімнатних об'єктів нерухомості (результат цієї операції представлений у табл. 3.18), а потім за допомогою оператора проекції одержати відношення, що містить тільки номери об'єктів нерухомості й особистих номерів клієнтів (результат цієї операції представлений у табл. 3.19). Після цього потрібно застосувати приведений нижче оператор розподілу й одержати нове відношення, представлене в табл. 3.20.
( П rno, pno (Viewing)) (П pno (σ rooms = 3 (Property_for_Rent)))
Таблиця 3.18. Результат застосування до відношення Property_for_Rent операції вибірки
(П pno (σ rooms = 3 (Property_for_Rent))
-
Rno
RG4
RG36