Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcii_OBD.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.87 Mб
Скачать

4.4. Фізичні моделі даних

Фізичні моделі даних описують те, як дані зберігаються в комп'ютері, представляючи інформацію про структуру записів, їхньої упорядкованості й існуючих шляхів доступу. Фізичних моделей даних не так багато, як логічних, а самою популярною серед них є узагальнююча модель (unifying model) і модель пам'яті кадрів (frame memory).

Лекція 5. Структура реляційних даних та їх цілістність.

Математичні відношення. Структура реляційних даних. Домени Декартовий добуток доменів та відношення. Схема БД. Таблиці (відношення) БД. Властивості відношень. Реляційні ключі. Потенційні, первині та зовнішні ключі. Цілістність реляційних даних. Визначник NULL. Цілісність сутностей. Посилальна цілісність. Корпоративні обмеження цілісності.

5.1. Математичні відношення. Структура реляційних даних.

Основними поняттями реляційних баз даних є: тип даних, домен, атрибут, кортеж, первинний ключ і відношення

Рис.5.1. Табличне зображення реляційного відношення

5.2.Домени

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

Домен - це семантичне поняття. Домен можна розглядати як підмножину значень деякого типу даних, які мають певний сенс. Домен характеризується наступними властивостями:

-домен має унікальну назву (в межах бази даних);

-домен визначений на деякому простому типі даних або на іншому домені;

-домен може мати деяку логічну умову, що дозволяє описати підмножину даних, допустимих для даного домену;

-домен несе певне смислове навантаження.

Приклади доменів:

домен «Курс» приймає значення від 1 до 6;

домен «Пори року» приймає значення від 1 до 4.

Схема БД. Таблиці (відношення)

Кортеж, що відповідає даній схемі відношення, - це множина пар {назва атрибута, значення}, яке містить одне входження кожної назви атрибута, що належить схемі відношення. «Значення» є припустимим значенням домену цього атрибута (або типу даних, якщо поняття домену не підтримується). Попросту кажучи, кортеж - це набір іменованих значень заданого типу.

Відношення - це множина кортежів, які відповідають одній схемі відношення. Насправді, поняття схеми відношення найближче до поняття структурного типу даних в мовах програмування.

Відношення зазвичай записується у вигляді:

R(<A1: D1>, <A2: D2>, ..., <An: Dn>),

або коротше

R(A1, A2, ..., An).

Число атрибутів у відношенні називають степенем (або -арністю) відношення.

Потужність множини кортежів відношення називають потужністю відношення.

Тоді, реляційною базою даних називається набір відношень.

Звичайним для користувача поданням відношення є таблиця, заголовком якої є схема відношення, а рядками - кортежі відношення-екземляру; в цьому випадку назви атрибутів іменують стовпці цієї таблиці. Тому іноді кажуть «стовпець таблиці», маючи на увазі «атрибут відношення». Такої термінології дотримуються в більшості комерційних реляційних СКБД.

Схема відношення, схема бази даних

Схема відношення - це іменована множина пар {назва атрибута, назва домену (або типу, якщо поняття домену не підтримується)}. Степінь або «арність» схеми відношень - потужність цієї множини. Схема БД (в структурному сенсі) - це набір іменованих схем відношень. Наприклад, нехай схема відношень «лампочка» виглядає так: лампочка ((назва, varchar (10)), потужність (dec), напруга (vol), тип цоколя (cok). При цьому раніше повинні бути задані домени vol з областю значень (110 або 220) і cok з областю значень («звичайний E27» або «міньйон E14»).

Схема БД - це пойменована сукупність схем відношень, які входять до неї.

Як видно, основні структурні поняття реляційної моделі даних (якщо не вважати поняття домену) мають дуже просту інтуїтивну інтерпретацію, хоча в теорії реляційних БД всі вони визначаються абсолютно формально і точно.

Властивості відношень.

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

відсутність упорядкованості кортежів також є наслідком визначення відношення-екземпляра як множини кортежів. Відсутність вимоги до підтримання порядку на множині кортежів відношення дає додаткову гнучкість СКБД при зберіганні баз даних у зовнішній пам'яті та при виконанні запитів до бази даних. Це не суперечить тому, що при формулюванні запиту до БД, наприклад, на мові SQL можна вказати сортування результуючої таблиці у відповідності зі значеннями деяких стовпців. Такий результат, взагалі кажучи, не відношення, а деякий впорядкований список кортежів;

відсутність упорядкованості атрибутів - атрибути відношень не впорядковані, оскільки за визначенням схема відношення є множиною пар {назва атрибута, назва домену}. Для посилання на значення атрибута в кортежі відношення завжди використовується назва атрибута. Ця властивість теоретично дозволяє, наприклад, модифікувати схеми існуючих відношень не тільки шляхом додавання нових атрибутів, але і шляхом видалення існуючих атрибутів. Однак у більшості існуючих систем така можливість не допускається, і хоча впорядкованість набору атрибутів відношення явно не потрібно, часто в ролі неявного порядку атрибутів використовується їх порядок у лінійній формі визначення схеми відношення;

атомарність значень атрибутів - значення всіх атрибутів є атомарними. Це випливає з визначення домену як потенційної множини значень простого типу даних, тобто серед значень домену не можуть міститися множини значень (відношення). Прийнято говорити, що в реляційних базах даних допускаються тільки нормалізовані відношення або відношення, які представлені в першій нормальній формі. Нормалізовані відношення становлять основу класичного реляційного підходу до організації баз даних. Вони мають деякі обмеження (не будь-яку інформацію зручно представляти у вигляді плоских таблиць), але істотно спрощують маніпулювання даними.

Реляційні ключі. Потенційні, первині та зовнішні ключі.

Цілістність реляційних даних. Визначник NULL. Цілісність сутностей. Посилальна цілісність. Корпоративні обмеження цілісності

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

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

Зрозуміло, що при оновленні відношення, що посилається (вставлення нових кортежів або модифікація значення зовнішнього ключа в існуючих кортежах) необхідно стежити за тим, щоб не з'являлися некоректні значення зовнішнього ключа. Але як бути при видаленні кортежу з відношення, на яке є посилання?

Тут існують три підходи, кожен з яких підтримує цілісність за посиланнями:

забороняється проводити видалення кортежу, на який існують посилання (тобто спочатку потрібно або видалити кортежі, що посилаються, або відповідним чином змінити значення їх зовнішнього ключа);

при видаленні кортежу, на який є посилання, у всіх кортежах, що посилаються, значення зовнішнього ключа автоматично стає невизначеним (NULL);

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

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

Ключові поля ідентифікують примірник об'єкта:

одне поле;

кілька полів - складений ключ.

Ключове поле для створеного запису згодом оновитися вже не може.

Якщо роль ключа грають кілька полів, виділяють первинний ключ. Значення не первинних ключів, які називаються можливими можуть оновлюватися.

Сукупність визначених для таблиці полів, їх властивості (ключі тощо) складають схему таблиці-відношення. Дві таблиці з однаковою схемою називаються односхемними.

Типи зв'язків через типи ключів:

значення первинного ключа унікальні, а зовнішнього ключа - можуть повторюватися, тому зв'язок «один-до-багатьох»;

зв'язки «один-до-одного» автоматично забезпечуються при однакових первинних ключах;

зв'язки типу «багато-до-багатьох» безпосередньо не відображаються.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]