
- •Лекція 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 - вичерпна підмова даних
- •Питання
Правило 4 - динамічний інтерактивний каталог, побудований за правилами реляційної моделі
Опис бази даних повинний представлятися на логічному рівні в такий же спосіб, як і звичайні дані, що дозволить санкціонованим користувачам використовувати для звертань до цього опису тієї ж реляційною мовою, що і при звертанні до даних.
Це правило вказує на те, що повинна існувати тільки одна мова, призначена для маніпулювання як метаданими, так і звичайними даними, причому в СКБД для організації збереження системної інформації повинна використовуватися тільки одна логічна структура - відношення.
Правило 5 - вичерпна підмова даних
Реляційна система може підтримувати кілька мов і різні режими роботи з терміналами (наприклад, режим заповнення форми - fill-in-the-blanks). Однак повинна існувати принаймні одна мова, оператори якої дозволяли б виражати всі наступні конструкції:
визначення даних;
визначення представлень;
команди маніпулювання даними (доступні як інтерактивно, так і з програм);
обмеження цілісності;
авторизація користувачів;
організація транзакцій (запуск, фіксація і відкат).
Слід зазначити, що новий стандарт ISO для мови SQL забезпечує виконання всіх цих функцій таким чином, що будь-яка задовольняюча цьому стандарту мова автоматично буде задовольняти і цьому правилу.
Правило 7- високорівневі операції вставки, відновлення і видалення
Здатність обробляти базові похідні чи відношення (тобто представлення) як єдиний операнд повинна відноситися не тільки до процедур витягу даних, але і до операцій вставки, відновлення і видалення даних.
Правила незалежності від даних (правила 8, 9 і 11)
Кодд визначає три правила незалежності даних від програм, що ці дані використовують. Строге дотримання цих правил гарантує, що користувачі і розроблювачі будуть захищені від необхідності вносити тотальні зміни в додатки при кожній реорганізації бази даних на низькому рівні.
Правило 8 - фізична незалежність від даних
Прикладні програми і засоби роботи з терміналами повинні залишатися логічно незачепленими при внесенні будь-яких змін у способи збереження даних чи методи доступу до них.
Правило 9 - логічна незалежність від даних
Прикладні програми і засоби роботи з терміналами повинні залишатися логічно незачепленими при внесенні в базові таблиці будь-яких змін, які не змінюють інформацію, що теоретично не повинно торкатися прикладного програмного забезпечення.
Правило 11- незалежність від розподілу даних
Підмова, маніпулювання даними в реляційної СКБД повинна дозволяти прикладним програмам і запитам залишатися логічно незмінними, незалежно від того, як зберігаються дані - фізично чи централізовано в розподіленому виді.
Незалежність від розподілу даних означає, що прикладна програма, що здійснює доступ до СКБД на окремому комп'ютері, повинна без яких-небудь модифікацій продовжувати працювати й у тому випадку, коли дані в мережі будуть перенесені з одного комп'ютера на іншій. Іншими словами, для кінцевого користувача повинна бути створена ілюзія того, що дані централізовано зберігаються на єдиному комп'ютері, а відповідальність за переміщення і пошук даних серед (можливо) декількох місць їх збереження повинна покладатися винятково на систему. Зверніть увагу, що тут не сказано про те, що реляційна СКБД повинна неодмінно підтримувати роботу з розподіленою базою даних. Тут просто мається на увазі, що мова запитів повинна залишатися незмінною і в тому випадку, коли можливість роботи з розподіленими даними реалізується в деякій СКБД.
Резюме
Реляційні СКБД у даний час є найпоширенішим програмним забезпеченням обробки даних, щорічний обсяг продажів якого оцінюється 8-10 мільярдами доларів (25 мільярдів доларів разом з інструментами розробки), а темпи щорічного приросту обсягу продажів дорівнює 25%. Це програмне забезпечення являє собою друге покоління СКБД. Воно засноване на використанні реляційної моделі даних, запропонованої Э. Ф. Коддом.
Математичне відношення, є підмножиною декартового добутку двох чи більш множин. У контексті баз даних відношенням називається будь-яка підмножина декартового добутку доменів атрибутів. Відношення звичайно записується у виді множини з n кортежів, кожен елемент яких обраний з відповідного домену.
Фізичне представлення відношень має вид таблиць з рядками, що відповідають окремим кортежам, і стовпцями, що відповідають атрибутам.
Структура відношень зі специфікаціями домену і іншими обмеженнями є частиною заголовку бази даних, а відношення з усіма його кортежами являє собою поточний стан чи розширення бази даних.
Відношення бази даних мають наступні властивості: кожен осередок містить тільки одне атомарне значення, імена всіх атрибутів різні, значення одного атрибута беруться з того самого домену, порядок розташування атрибутів не має ніякого значення, порядок розташування кортежів також не має ніякого значення, причому наявність кортежів-дублікатів не допускається.
Ступенем відношення називається кількість вхідних у нього атрибутів, а кардинальністю - кількість кортежів, що містяться в ньому. Унарне відношення має один атрибут, бінарне - два, тернарне - три, а п-арне - n атрибутів.
Суперключ - це будь-яка множина атрибутів, що унікальним образом ідентифікує кортежі відношення, а потенційний ключ — це мінімальний суперключ. Первинний ключ - це потенційний ключ, обраний для ідентифікації кортежів відношення. Кожне відношення обов'язково повинно мати первинний ключ. Зовнішній ключ - це один чи кілька атрибутів даного відношення, що одночасно є потенційними ключами іншого відношення.
Невизначене значення (NULL) представляє ситуацію, коли значення атрибута в даний момент невідомо чи не визначено для цього кортежу. Цілісність сутностей - це обмеження, відповідно до якого в базовому відношенні жоден атрибут первинного ключа не може мати невизначених значень. Посилальна цілісність означає, що значення зовнішнього ключа повинні мати відповідність існуючим значенням потенційного ключа в кортежах базового відношення або цілком складатися з невизначених значень, що задаються за допомогою визначника NULL.
Реляційні мови керування даними іноді класифікують як процедурні, непроцедурні, засновані на перетвореннях, графічні, мови четвертого покоління і мови п'ятого покоління. Реляційна алгебра є формальною процедурною мовою, що включає операції вибірки, проекції, декартового добутку, об'єднання, перетинання, різниці, розподілу і деякі типи з'єднань відношень. Реляційне числення є формальною непроцедурною мовою, що використовує предикати. Реляційна алгебра логічно еквівалентна підмножині реляційного числення, обмеженому безпечними виразами (і навпаки).
Представлення в реляційній моделі є віртуальним відношенням. Представлення дозволяють досягти більш високої захищеності даних, а також надають проектувальнику засоби настроювання користувальницької моделі. Представлення користувачів створюються динамічно, причому не всі вони є обновлюваними.