Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОБДЗ / Лекции Access / Проектування РБД / 5_реляцiйний_пiдхiд

.pdf
Скачиваний:
10
Добавлен:
03.03.2016
Размер:
169.52 Кб
Скачать

В результаті перетворень ми домоглися того, що значення в таблиці стали атомарними. Однак видно, що проведені перетворення призвели до виникнення великого обсягу надлишкових даних. До рішення цієї проблеми повернемося пізніше.

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

Властивість, що таблиці не містять записів-дублікатів, означає, що ніякі два записи таблиці не можуть бути однаковими в будь-який довільно заданий момент часу. Цю властивість іноді називають властивістю унікальності записів.

З цієї властивості випливає наявність у кожної таблиці так званого ключа. Ключ – це одне поле або набір (сукупність) полів, значення яких однозначно визначають (ідентифікують) кожен запис.

Ключ, що складається з одного поля, називається простим. Якщо ключ складається з кількох полів, то його називають складовим або композитним.

Ключ також називають унікальним ідентифікатором або просто ідентифікатором.

Нехай Т – таблиця з полями Р1, Р2, ..., Рn. Говорять, що множина полів K=(Рi, Рj, ..., Рk), що належать до структури таблиці Т, є ключем цієї таблиці тоді і тільки тоді, коли задовольняються дві незалежні від часу умови:

унікальність, тобто у довільний заданий момент часу два різних записи таблиці Т не мають однакового значення для полів Рi, Рj, ..., Рk, що входять до ключа;

мінімальність, тобто жодне з полів Рi, Рj, ..., Рk , що входять до ключа, не може бути виключене з нього без порушення унікальності.

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

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

Рядки в новій таблиці “Успішність” подають інформацію про успішність конкретного студента і повинні відрізнятися один від одного. А як відрізнити успішність двох студентів, у яких збігаються не тільки прізвище, але й ім'я, по батькові, і навчаються вони в одній групі? Видно, що у нашому прикладі два студенти з ПІБ Андрєєв А.А. навчаються в групі1. І навіть оцінки у них однакові!

Треба домогтись виконання властивості унікальності записів. Визначимо кожному студенту код і додамо в таблицю “Успішність” поле Код_студента, який повинен стати первинним ключем. По ньому з таблиці можна витягати необхідну інформацію за вказаним по коду студентом. Значення цього поля не можуть дублюватися: у таблиці не повинно бути записів с однаковим

36

значенням коду. В якості значень коду може бути використаний ідентифікаційний номер студента. Як відомо, застосування ідентифікаційних кодів спростило обробку фінансової інформації по всій Україні. Але простіше як ключ ввести номер залікової книжки. Залікова книжка – це ж головний документ для студента, як і паспорт для громадянина. Такий же номер можуть мати студентський та читацький квитки. Код може включати дві останні цифри від року вступу та порядковий номер (номер справи абітурієнта, чи номер студента в наказі на зарахування, чи порядковий номер справи по відділу кадрів), наприклад 03/2000 або просто 032000.

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

Таблиця 5.8 – Вид реляційної таблиці “Успішність”

Код

Рік

Сем

Спец

Група

Прізвище

Ім’я

.

Д1З

Д30Е

Стип

1001

2008

1

Спец1

Група1

Андрєєв

Андрій

 

3

 

 

100

1001

2008

1

Спец1

 

Андрєєв

Андрій

 

3

 

 

100

 

 

…..

 

 

……

 

 

 

 

 

 

1015

2008

1

Спец1

Група1

Іванов

Іван

 

3

 

 

 

 

 

…..

 

 

…….

 

 

3

 

 

 

1026

2008

1

Спец1

Група1

Яковлєв

Яків

 

3

 

 

 

20010

2008

1

Спец1

Група2

Антонов

Антон

 

3

 

 

 

 

 

 

 

……

 

 

 

 

 

 

2021

2008

1

Спец6

Група2

Яковлєв

Яків

 

3

 

 

 

2501

2008

1

Спец6

Група25

Антонов

Антон

 

 

 

5

100

 

 

….

 

 

……

 

 

 

 

 

 

2527

2008

 

Спец1

Група25

Яковлєва

Олена

 

 

 

5

0

Структуру таблиці можна подавати у вигляді: Ім’я таблиці (Поле1, Поле2,…, ПолеN) Ключ: Поле1, Поле2.

Для нашого випадку маємо:

Успішність (Код_студента, Прізвище, Ім’я, …, Адреса, Ін_ст,…, Спеціальність, Група, Рік, Семестр, Д1З,…, Д30Е, Стипендія) Ключ: Код_студента

Стало видне семантичне навантаження поняття домену: дані вважаються порівняльними тільки в тому випадку, коли вони відносяться до одного домену. У нашому прикладі значення доменів “Код_студента” та “Оцінки” відносяться до типу цілих чисел, але їх неможливо порівнювати.

Під позначеннями Д1, …Д30 треба розуміти повні назви дисциплін учбового плану, наприклад, вища математика, фізика, програмування тощо.

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

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

37

Але в практичній роботі записи в таблиці упорядковують зверху вниз, а поля – зліва праворуч. Однак умовно можна вважати, що властивості відсутності упорядкованості записів і полів виконуються, тому що і записи, і поля разом з іменами можна переставляти місцями. При цьому зміст інформації в запису все одно буде зрозумілим.

Наприклад, якщо поставити поля так: Ім’я, По батькові, Прізвище, а потім Стипендія, то значення інформації не зміниться, може тільки ускладнитись робота з “паперовим” варіантом таблиці.

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

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

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

1)Повний інформаційний зміст БД представляється у вигляді явних значень даних, зведених у таблиці; такий метод представлення є єдиним.

2)Кожна таблиця складається з однотипних записів і має унікальне ім'я.

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

4)Записи мають фіксоване число полів і значень. Множинні поля чи групи полів, що повторюються, неприпустимі. Інакше кажучи, у кожній позиції таблиці на перетині запису і поля завжди є в точності або одне значення, або нічого.

5)Записи таблиці обов'язково відрізняються один від одного хоча б єдиним значенням, що дозволяє однозначно ідентифікувати будь-який запис такої таблиці.

6)При виконанні операцій з таблицею її поля та записи можна обробляти

вбудь-якому порядку безвідносно до їхнього інформаційного змісту. Цьому сприяє наявність імен таблиць і їхніх полів, а також можливість виділення будь-якого запису чи будь-якого набору записів із зазначеними ознаками (наприклад, список студентів, які склали іспит з дисципліни Д30 на "відмінно").

По першому пункту треба додати, що раніше вважали, що в БД не існує будь-яких спеціальних “зв'язків” чи покажчиків, що з'єднують одну таблицю з іншою. Однак, як буде показано нижче, однією таблицею при створенні БД обійтися майже неможливо. Таким чином, можна уточнити поняття об’єктів та схеми БД.

Об'єкти реляційної БД – це сукупність таблиць, що містять всю ту інформацію, яка повинна зберігатися в БД.

Схема БД у структурному змісті – це набір іменованих структур таблиць, між яким можуть бути встановлені зв’язки. Як буде показано далі, ці зв’язки необхідні для реалізації цілісної частини РМД.

38