
- •Лекція 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 - вичерпна підмова даних
- •Питання
Проекція
-
П атр1, атр2,…атр3 (R)
Операція проекції працює з одним відношенням R і визначає нове відношення, що містить вертикальну підмножину відношення R, створюване за допомогою витягу значень зазначених атрибутів і виключення з результату рядків дублікатів.
Приклад 3.2 Операція проекції
Створіть відомість зарплати всіх співробітників із вказівкою атрибутів Sno, Fname, Lname, Salary.
П Sno, Fname, Lname, Salary (Staff)
У цьому прикладі операція проекцій визначає нове відношення, що буде містити только атрибути Sno, Fname, Lname, Salary відношення Staff розміщені в зазначеному порядку. Результат виконання цієї операції показаний у табл. 3.10.
Декартовий добуток
-
R x S
Операція декартового добутку визначає нове відношення, що є результатом конкатенації (тобто зчеплення) кожного кортежу з відношення R з кожним кортежем з відношення S.
О
ператори
вибірки і проекції витягають інформацію
тільки з одного відношення. Очевидно,
можливе виникнення таких ситуацій, коли
потрібна деяка комбінація даних з
декількох відношень. Оператор декартового
добутку множить двоє відношень, що в
результаті приводить до створення
іншого відношення, що складається з
усіх можливих пар кортежів обох відношень.
Отже, якщо одне відношення має I
кортежів і N атрибутів, а інше — J
кортежів і М атрибутів, то відношення
з їх декартовим добутком буде містити
(I x J) кортежів і (N x M) атрибутів.
Вихідні відношення можуть містити
атрибути з однаковими іменами. У такому
випадку імена атрибутів будуть містити
назви відношень у виді префіксів для
забезпечення унікальності імен
атрибутів у відношенні, отриманому як
результат виконання операції декартового
добутку.
Приклад 3.3 Операція декартового добутку
Створіть список всіх орендарів, що оглядали об'єкти нерухомості з указівкою зроблених ними коментарів.
(П Rno, Fname, Lname (Renter)) x (П Rno, Pno, Comment (Viewing))
Результат виконання цієї операції показаний у табл. 3.11.
У такому виді це відношення містить більше інформації, чим необхідно. Наприклад, перший кортеж цього відношення містить різні значення атрибута Rno. Для одержання шуканого списку необхідно для цього відношення зробити oперацію вибірки з витягом тих кортежів, для яких виконується рівність Renter.Rno=Viewing.Rno. Цілком ця операція виглядає так, як показано нижче.
σRenter.Rno = Viewing.Rno((П Rno, Fname, Lname (Renter)) x (П Rno, Pno, Comment (Viewing))
Р
езультат
виконання цієї операції показаний у
табл. 3.12.
Як ми незабаром побачимо, комбінація декартового добутку і вибірки може бути зведена до одній операції з'єднання.
Об'єднання
-
R U S
Об'єднання відношень R і S з кортежами I і J відповідно можна одержати в результаті їх конкатенації з утворенням одного відношення з максимальною кількістю кортежів (I + J), якщо кортежі дублікати виключені. При цьому відношення R і S повинні бути сумісні по об'єднанню.
Об'єднання відношень можливо тільки в тому випадку, якщо збігаються їх схеми, тобто якщо вони мають однакову кількість атрибутів зі співпадаючими доменами. Інакше кажучи, відношення повинні бути сумісні по об'єднанню. Відзначимо, що в деяких випадках для одержання двох сумісних по об'єднанню відношень може бути використана операція проекції.
Приклад 3.4 Операція об'єднання
Створіть список усіх районів, у яких мається відділення компанійки чи об'єкт нерухомості.
П Area (Branch) U П Area (Property_for_Rent)
Д
ля
створення сумісних по об'єднанню
відношень спочатку варто застосувати
операцію проекції, щоб виділити з
відношень Branch і Property_for_Rent стовпці
з атрибутами Area, крім у разі потреби
дублікатів. Потім для комбінування
отриманих проміжних відношень варто
використовувати операцію об'єднання.
Результат виконання всіх цих дій
приведений у табл.3.13