Операції над даними

ДОДАТИ - внести запис у БД і, залежно від режиму включення, або включити її до групового ставлення, де вона оголошена підлеглою, або не включати до жодного групового ставлення.

ВКЛЮЧИТИ У ГРУППОВИЙ ВІДНОСИНИ - пов'язати існуючий підпорядкований запис із записом-власником.

ПЕРЕМИКАТИ - пов'язати існуючий підпорядкований запис з іншим записом-власником у тому ж груповому відношенні.

ОБНОВЛЕННЯ - змінити значення елементів попередньо отриманого запису.

ВИМАТИ - отримати записи послідовно за значенням ключа, а також використовуючи групові відносини - від власника можна перейти до записів - членам, а від підлеглого запису до власника набору.

ВИДАЛИТИ - прибрати з БД запис. Якщо цей запис є власником групового відношення, то аналізується клас членства підлеглих записів. Обов'язкові члени повинні бути попередньо виключені із групового відношення, фіксовані видалені разом із власником, необов'язкові залишаться у БД. ВИКЛЮЧИТИ З ГРУППОВОГО ВІДНОСИНИ - розірвати зв'язок між записом-власником і записом-членом.

Обмеження цілісності.

Структура даних. Реляційна модель даних

У реляційній моделі досягається набагато вищий рівень абстракції даних, ніж ієрархічної чи мережевий. У згаданій статті Е.Ф.Кодда стверджується, що "реляційна модель надає засоби опису даних на основі тільки їхньої природної структури, тобто без потреби введення будь-якої додаткової структури для цілей машинного представлення". Іншими словами, представлення даних не залежить від способу їхньої фізичної організації. Це забезпечується за рахунок використання математичної теорії відносин (сама назва "реляційна" відбуваєтьсявід англійської relation - "відношення").

Перейдемо до розгляду структурної частини реляційної моделі даних. Насамперед необхідно дати кілька визначень.

Декартове твір:Для заданих кінцевих множин (не обов'язково різних) декартовим творомназивається безліч творів виду:, де

Приклад:якщо дано дві множини A (a1,a2,a3) і B (b1,b2), їх декартове твір матиме вигляд С=A*B (a1*b1, a2*b1 , a3*b1, a1*b2, a2*b2, a3*b2)

Ставлення:ВідношеннямR, визначеним на множинах називається підмножина декартового твору. При цьому:

безлічі називаютьсядоменами відносини

елементи декартового твору називаються кортежами

числоnвизначає ступінь відношення (n=1- унарне,n=2- бінарне, .n-арне)

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

Приклад:на множині З попереднього прикладу можуть бути визначені відносини R1 (a1*b1, a3*b2) або R2 (a1*b1, a2*b1, a1*b2)

Відносини зручно представляти як таблиць. На рис. 4.1 представлено таблицю (ставлення ступеня 5), що містить деякі відомості про працівників гіпотетичного підприємства. Рядки таблиці відповідають кортежам. Кожен рядок фактично є описом одного об'єкта реального світу (в даному випадку працівника), характеристики якого містяться в стовпцях. Можна провести аналогію між елементами реляційної моделі даних та елементами моделі "сутність-зв'язок". Реляційні відносини відповідають наборам сутностей, а кортежі – сутностям. Тому, як і в моделі " сутність-зв'язок " стовпці у таблиці, що становить реляційне ставлення, називають атрибутами.

даних

Рис.4.1 Основні компонентиреляційних відносин.

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

Декілька атрибутів одного відношення і навіть атрибути різних відносин можуть бути визначені на тому самому домені. У прикладі, показаному на рис.4.1 атрибути "Оклад" та "Премія" визначено на домені "Гроші". Тому поняття домену має семантичне навантаження: дані можна вважати порівнянними тільки тоді, коли вони відносяться до одного домену. Таким чином, у наведеному прикладі порівняння атрибутів "Табельний номер" і "Оклад" є семантично некоректним, хоча вони і містять дані одного типу.

Саме ванна безліч пар "ім'я атрибута - ім'я домену" називається схемою відношення. Потужність цієї множини - називають ступенем або "арністю" відносини. Набір іменованих схем відносин є схемою бази даних.

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

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

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

даних

Рис.4.2. База даних про підрозділи та співробітників підприємства.

Наприклад, зв'язок між відносинами ВІДДІЛ і СПІВРОБІТНИК створюється шляхом копіювання первинного ключа"Номер_відділу"з першого відношення до другого. Таким чином:

для того, щоб отримати список працівників цього підрозділу, необхідно

з таблиці ВІДДІЛ встановити значення атрибуту"Номер_відділу", що відповідає даному "Найменуванню_відділу"

вибрати з таблиці СПІВРОБІТНИК всі записи, значення атрибута"Номер_отдела"яких дорівнює отриманому на попередньому кроці.

для того, щоб дізнатися в якому відділі працює співробітник, потрібно виконати зворотну операцію:

визначаємо"Номер_відділу"з таблиці СПІВРОБІТНИК

за отриманим значенням знаходимо запис у таблиці ВІДДІЛ.

Атрибути, що є копією ключів інших відносин, називаються зовнішніми ключами.