
- •Лекція 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.5.3. Відновлення представлень
Усі відновлення даних у базовому відношенні повинні бути негайно відбиті у всіх представленнях, зв'язаних з цим базовим відношенням. Аналогічно, при відновленні даних у представленні внесені зміни повинні бути відбиті в його базовому відношенні. Однак на типи змін, що можуть бути виконані за допомогою представлень, накладаються певні обмеження. Нижче перераховані умови, що більшість існуючих систем використовує для перевірки допустимості відновлення даних через деяке представлення.
Відновлення допускаються через представлення, що визначено на основі простого запиту до єдиного базового відношення і містить первинний чи потенційний ключ цього базового відношення.
Відновлення не допускаються в будь-яких представленнях, визначених на базі декількох базових відношень.
Відновлення не допускаються в будь-яких представленнях, що включають виконання операцій узагальнення чи групування.
Представлення прийнято поділяти на наступні класи: теоретично неоновлювані, теоретично обновлювані і частково обновлювані.
3.6. Коли скбд можна вважати Реляційної
Як уже згадувалося в розділі 3.1, існує кілька сотень реляційних СКБД для мейнфреймів і персональних комп'ютерів. На жаль, деякі з них, строго говорячи, не відповідають визначенню реляційної моделі. Зокрема деякі постачальники традиційних варіантів СКБД, заснованих на мережній і ієрархічній моделях даних, реалізують у своїх продуктах тільки деякі риси реляційних систем, щоб мати підстави заявити про їх приналежність до реляційних систем. Заклопотаний тим, що потенційні можливості і зміст реляційного підходу спотворюються, Кодд (Codd, 1985) запропонував 12 правил визначення реляційних систем (а точніше 13, якщо враховувати фундаментальне правило 0). Ці правила утворюють свого роду еталон, по якому можна визначити приналежність СКБД до розряду дійсно реляційних систем.
Протягом багатьох років запропоновані Коддом правила викликали масу дорікань у зацікавлених осіб і фахівців. Одні рахували їх не більш ніж чисто теоретичними вправами. Інші заявили, що їх продукти вже задовольняють багатьом цим правилам, якщо не усім. Ця дискусія сприяла росту розуміння користувачами і співтовариством розроблювачів СКБД найважливіших властивостей дійсно реляційних СКБД. Щоб підкреслити особливе значення цих правил, ми розділили їх на п'ять функціональних груп.
Фундаментальні правила.
Структурні правила.
Правила цілісності.
Правила керування даними.
Правила незалежності від даних.
Фундаментальні правила (правила 0 і 12)
Образно кажучи, правила 0 і 12 є "лакмусовим папірцем", що дозволяє визначити приналежність системи до реляційних СКБД. Якщо система не задовольняє цим правилам, то її не слід вважати реляційною.
Правило 0 - фундаментальне правило
Будь-яка система, що рекламується чи представляється як реляційна СКБД, повинна бути здатна керувати базами даних винятково за допомогою її реляційних функцій.
Це правило означає, що СКБД не повинні прибігати до будь-яких не реляційних операцій для виконання таких видів робіт, як визначення даних і маніпулювання ними.
Правило 12 - правило заборони обхідних шляхів
Якщо реляційна система має низькорівневу мову (з послідовною порядковою обробкою), вона не може бути використана для скасування чи обходу правил і обмежень цілісності, складених на реляційній мові більш високого рівня (з обробкою відразу декількох рядків).
Це правило гарантує, що всі спроби доступу до бази даних контролюються СКБД таким чином, що цілісність бази даних не може бути порушена без відома користувача чи АБД. Це, однак, не виключає можливостей використання мови низького рівня з інтерфейсом послідовної порядкової обробки.