Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 3 Реляційні БД.doc
Скачиваний:
24
Добавлен:
19.11.2019
Размер:
2.52 Mб
Скачать

3.3.3. Посилальна цілісність

Друге обмеження цілісності стосується зовнішніх ключів.

Посилальна цілісність - Якщо у відношенні існує зовнішній ключ, то значення зовнішнього ключа повинне або відповідати значенню потенційного ключа деякого кортежу в його базовому відношенні, або задаватися визначником NULL.

Наприклад, атрибут no у відношенні Staff є зовнішнім ключем, що посилається на атрибут no базового відношення Branch. Система повинна запобігати будь-якої спроби створити запис з інформацією про співробітника відділення з номером 'У25' доти, поки у відношенні Branch не буде створений запис, що містить зведення про відділення компанії з номером 'У25'. Однак вважається припустимим створення запису з інформацією про нового співробітника з указівкою визначника NULL замість номера відділення, у якому цей співробітник працює. Така ситуація може мати місце в тому випадку, коли співробітник зарахований у штат компанії, але ще не приписаний до якогось конкретного відділення.

3.3.4. Корпоративні обмеження цілісності Корпоративні обмеження цілісності - Додаткові правила підтримки цілісності даних, обумовлені користувачами чи адміністраторами бази даних.

Користувачі самі можуть вказувати додаткові обмеження, яким повинні задовольняти дані. Наприклад, якщо в одному відділенні не може працювати більше 20 співробітників, то користувач може вказати це правило, а СКБД стежити за його виконанням. У цьому випадку у відношення Staff не можна буде додати рядок зі зведеннями про нового співробітника деякого відділення, якщо в даному відділенні компанії вже працює 20 співробітників. На жаль, рівень підтримки реляційної цілісності в різних системах істотно варіює.

3.4. Реляційні мови

У розділі 2.3 говорилося про те, що одна з частин моделі даних є керуючої, тобто вона визначає типи припустимих операцій з даними, включаючи операції відновлення і витягу даних, а також операції зміни структури бази даних. Для керування відношеннями в реляційних СКБД використовуються найрізноманітніші мови. Деякі з них є процедурними, тобто з їх допомогою користувач точно вказує системі, як варто маніпулювати даними. Інші мови є непроцедурними, тобто користувач указує, які дані йому потрібні, а не як їх варто витягати.

У цьому розділі основна увага приділяється реляційній алгебрі і реляційному численню, що запропоновані Коддом (1971) як основу для створення реляційних мов. Попросту говорячи, реляційну алгебру можна описати як високорівневу процедурну мову, тобто ту, котру можна бути використати для того, щоб повідомити СКБД про те, як варто побудувати необхідне відношення на базі одного чи декількох існуючих у базі даних відношень. Реляційне числення, з неформальної точки зору, являє собою непроцедурну мову, яку можна використовувати для визначення того, якою буде деяке відношення, створене на основі одного чи декількох інших відношень бази даних. Однак, строго говорячи, реляційна алгебра і реляційне числення еквівалентні один одному, тобто для кожного виразу алгебри існує еквівалентний вираз в реляційному численні (і навпаки).

Реляційне числення використовується для оцінки виборчої потужності реляційних мов. Мова називається реляційно повною, якщо вона дозволяє одержати будь-які відношення, які можна вивести за допомогою реляційного числення. Більшість реляційних мов запитів є реляційно повними. Однак у порівнянні з реляційної алгеброю і реляційним численням вони володіють і іншими, більш широкими функціональними можливостями, оскільки в них передбачені додаткові операції, здатні виконувати обчислювальні, узагальнюючі і функції, що упорядковують.

Реляційна алгебра і реляційне числення являють собою формальні, а не дружні користувачу мови. У реляційних базах даних вони використовувалися як основу для розробки інших мов керування даними, більш високого рівня. Для них вони становлять інтерес тому, що ілюструють основні операції мов маніпулювання даними, а також служать визначеним критерієм порівняння інших реляційних мов.