
- •Лекція 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.4.1. Реляційна алгебра
Реляційна алгебра - це теоретична мова операцій, що на основі одного чи декількох відношень дозволяють створювати інше відношення без зміни самих вихідних відношень. Таким чином, обидва операнди і результат є відношеннями, а тому результати однієї операції можуть стати вихідними даними для іншої операції. Це дозволяє створювати вкладені вирази реляційної алгебри точно так само, як створюються вкладені арифметичні вирази. Ця властивість називається замкнутістю, тобто відношення покриваються реляційної алгеброю так само, як числа - арифметичними операціями.
Р
еляційна
алгебра є мовою послідовного використання
відношень, у яких всі кортежі, можливо,
узяті навіть з різних відношень,
обробляються однією командою, без
організації циклів. Для команд реляційної
алгебри запропоновано кілька варіантів
синтаксису. Нижче ми скористаємося
загальноприйнятими символічними
позначеннями для цих команд і представимо
їх у неформальному вигляді. Більш
докладні зведення по цьому питанню
зацікавлений читач зможе знайти в
роботах Ульмана (Ullman, 1988).
Існує кілька варіантів вибору операцій, що включаються в реляційну алгебру. Спочатку Кодд запропонував вісім операторів, але згодом до них були додані і деякі інші. П'ять основних операцій реляційної алгебри, а саме вибірка (selection), проекція (projection), декартовий добуток (cartesian product), об'єднання (union) і різниця (set difference), виконують більшість операцій витягу даних, що можуть представляти для нас інтерес. На підставі п'яти основних операцій можна також вивести додаткові операції, такі як операції з'єднання (join), перетинання (intersection) і розподілу (division). Функції цих операцій схематично показані на мал. 3.2.
Операції вибірки і проекції є унарними, оскільки вони працюють з одним відношенням. Інші операції працюють з парами відношень, і тому їх називають бінарними операціями. У приведених нижче визначеннях R і S - це двоє відношень, визначені над атрибутами A = (a1, a2,…...,an,) і B = (b1, b2,…...,bn,) відповідно. Для ілюстрації результатів виконання операцій ми скористаємося відношеннями бази даних навчального проекту DreamHome, що містять зведеннями про оренду нерухомості (див. табл. 3.3-3.8)
Вибірка (чи обмеження)
-
σ предикат (R)
Операція вибірки працює з одним відношенням R і визначає результуюче відношення, що містить тільки ті кортежі (рядка) відношення R, що задовольняють заданій умові (предикату).
Приклад 3.1 Операція вибірки
Складіть список усіх співробітників із зарплатою, що перевищує 10000 фунтів стерлінгів.
σ Salary > 10000 (Staff)
Тут вихідним відношенням є відношення
Staff, а предикатом – виразу Salary > 10000.
Операція вибірки визначає нове відношення,
що містить тільки ті кортежі відношення
Staff, у яких значення атрибута Salary перевищує
10000 фунтів стерлінгів. Результат виконання
цієї операції показаний у табл. 3.9. Більш
складні предикати можуть бути задані
за допомогою логічних операторів
(AND),
(OR)
і – (NOT).