- •Лекція 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 - вичерпна підмова даних
- •Питання
Реляційне числення доменів
У реляційному численні доменів використовуються змінні, значення яких беруться з доменів, а не з кортежів відношень. Якщо P(dl,d2,…,dn) позначає предикат з змінними dl,d2,…,dn, та множина усіх змінних домену dl,d2,…,dn, для яких предикат чи формула P(dl,d2,…,dn) істинні, позначається наступним виразом:
{dl,d2,…,dn|P(dl,d2,…,dn)}
У реляційному численні доменів найчастіше потрібно перевірити умову приналежності, щоб визначити, чи належать значення зазначеному відношенню. Вираз R(x,y) вважається істинним тоді і тільки тоді, коли у відношенні R мається кортеж зі значеннями х и у в двох його атрибутах.
Приклад 3.10 Операція розподілу доменів
Знайдіть імена всіх менеджерів, зарплата яких перевищує 25000 фунтів стерлінгів.
{fname, lname | Position, Salary
(Staff (lname, position, salary) and position = ‘Manager’ and salary > 25000)}
Якщо порівняти цей запит з еквівалентним запитом реляційного числення кортежів, приведеним у прикладі 3.11, А, то можна побачити, що кожному атрибуту привласнене ім'я (змінної). Умова Staff (Iname, position, salary) гарантує, що змінні домену LName, Position і Salary будуть обмежені атрибутами того ж самого кортежу. Тому ми можемо використовувати формулу Position = 'Manager' замість формули. Staff.Position = 'Manager'.
Створіть список усіх співробітників, що відповідають за роботу з об'єктами нерухомості в Глазго
{fname, lname | sno Staff(sno, fname, lname)
and city (Property_for_Rent(pno, sno) and P.city = ‘Glasgow’)}
Ці запити безпечні і, якщо реляційне числення доменів обмежується тільки такими виразами, воно еквівалентно реляційному численню кортежів, обмеженому тільки безпечними виразами, що, у свою чергу, еквівалентно реляційній алгебрі. Це значить, що для кожного виразу реляційної алгебри існує еквівалентне вираз реляційного числення, а для кожного виразу реляційного числення доменів чи кортежів існує еквівалентний вираз реляційної алгебри.
3.4.3. Інші мови
Незважаючи на те що реляційне числення є досить складним, з погляду освоєння і використання, проте його непроцедурна природа вважається дуже перспективною і це стимулює пошук інших, більш простих у вживанні непроцедурних методів. Подібні дослідження викликали появу двох інших категорій реляційних мов: мов на основі перетворень і графічних мов.
Мови на основі перетворень є класом непроцедурних мов, що використовують відношення для перетворення вихідних даних до необхідного виду. Ці мови надають прості у вживанні структури для формулювання необхідного результату наявними засобами. Прикладами мов на основі перетворень є мова SQUARE, мова SEQUEL і його відгалуження - мова SQL.
Графічні мови надають користувачеві малюнок чи інше графічне відображення структури відношень. Користувач створює деякий зразок бажаного результату, і система повертає викликані дані в зазначеному форматі. Прикладом подібної мови є мова QBE (Query-By-Example).
Ще однією категорією мов є мови четвертого покоління (fourth-generation languages — 4GL), що дозволяють створювати цілком готову і відповідну вимогам замовника прикладну програму за допомогою обмеженого набору команд і в той же час надають дружнє стосовно користувача середовище розробки, найчастіше побудоване на використанні команд меню. У деяких системах використовуються навіть деякі різновиди природної мови, тобто обмеженої версії звичайної англійської мови, що іноді називається мовою п'ятого покоління (fifth-generation language — 5GL). Однак розробки проектів подібних мов по більшій частині усе ще знаходяться в зародковому стані.
