
- •Лекція 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.2.5. Реляційні ключі
Необхідно мати можливість унікальної ідентифікації кожного окремого кортежу відношення за значеннями його атрибутів. У цьому розділі описується термінологія, використовувана для позначення реляційних ключів.
Суперключ (superkey) - Атрибут чи множина атрибутів, що єдиним образом ідентифікує кортеж даного відношення.
Оскільки суперключ може містити додаткові атрибути, що необов'язкові для унікальної ідентифікації кортежу, нас будуть цікавити суперключі, що складаються тільки з тих атрибутів, що дійсно необхідні для унікальної ідентифікації кортежів.
Потенційний ключ - суперключ, що не містить підмножини, що також є суперключем даного відношення.
Потенційний ключ К для даного відношення R володіє двома властивостями.
Унікальність. У кожнім кортежі відношення R значення ключа К єдиним образом ідентифікують цей кортеж.
Неприводимість. Ніяка припустима підмножина ключа К не має властивості унікальності.
Відношення може мати кілька потенційних ключів. Якщо ключ складається з декількох атрибутів, то він називається складним ключем. Розглянемо відношення Branch, показане на мал. 3.1. Конкретне значення атрибута City може визначати відразу кілька відділень компанії (наприклад, у Лондоні знаходяться два відділення). Тому даний атрибут не може бути обраний як потенційний ключ. З іншого боку, оскільки в навчальному проекті DreamHome для кожного відділення компанії задається його унікальний номер, кожне значення цього номера (атрибут no) може визначати не більше одного кортежу (у відношенні Branch), а тому no є потенційним ключем. Аналогічно, атрибути Tel_No і Fax_No також є потенційними ключами цього відношення.
Тепер розглянемо відношення Viewing (Огляд), що містить інформацію про ознайомлювальні огляди об'єктів нерухомості потенційними орендарями. Це відношення включає атрибути номера орендаря (Rno), номера об'єкта нерухомості (Рnо), дати перегляду (Date) і, можливо, коментарі. По заданому номеру орендаря Rno можна вибрати зведення про декілька оглядів різних об'єктів нерухомості. Аналогічно, по заданому номеру об'єкту нерухомості Рnо можна вибрати зведення про декілька орендарів, що оглядали цей об'єкт нерухомості. Отже, сам по собі номер орендаря Rno чи номер об'єкта нерухомості Рпо не може бути використаний як потенційний ключ. Однак комбінація атрибутів Rno і Рпо ідентифікує не більш одного кортежу. Якщо допустити можливість того, що орендар може оглядати той самий об'єкт кілька разів, то до даного складеного ключа буде потрібно додати дату (Date). Однак у даному прикладі передбачається, що цього не потрібно.
Зверніть увагу на те, що будь-який конкретний набір кортежів відношення не можна використовувати для доказу того, що деякий атрибут чи комбінація атрибутів є потенційним ключем. Той факт, що в деякий момент часу не існує значень-дублікатів, зовсім не означає, що їх не може бути взагалі. Однак наявність значень-дублікатів у конкретному існуючому наборі кортежів цілком може бути використане для демонстрації того, що деяка комбінація атрибутів не може бути потенційним ключем. Для ідентифікації потенційного ключа потрібно знати зміст використовуваних атрибутів у "реальному світі", тільки це дозволить обґрунтовано прийняти рішення про можливість існування значень-дублікатів. Тільки виходячи з подібної семантичної інформації можна гарантувати, що деяка комбінація атрибутів є потенційним ключем відношення. Наприклад, на підставі представлених на мал. 3.1 даних можна вирішити, що придатним потенційним ключем для відношення Staff цілком може бути атрибут LName, що містить прізвище співробітника. Однак, хоча в даний момент в організації мається тільки один співробітник із прізвищем White, але при зарахуванні в організацію нового співробітника з прізвищем White атрибут LName уже не можна буде використовувати як потенційний ключ.