ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.04.2019

Просмотров: 233

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

Лекція 5 

 

Реляційна модель бази даних 

 

1. 

Історія розвитку реляційної моделі. 

2. 

Структура реляційних даних 

3. 

Математичні відношення. 

4. 

Відношення в базі даних 

5. 

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

6. 

Типи даних. 

  

  

1. Історія розвитку реляційної моделі 

 

Реляційна  модель  вперше  була  запропонована  британським  дослідником 

Едгаром Коддом  у 1970 році в його статті  «Реляційна модель бази даних для 
великих  спільно  використовуваних  банків  даних».  На  сьогоднішній  день 
публікацію  цієї  статті  прийнято  рахувати  початком  в  історії  розвитку 
реляційних баз даних. Цілі створення реляційної моделі формулюються таким 
чином: 

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

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

Розширення  мов  маніпулювання  даними  за  рахунок  включення 
операцій над множинами. 

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

в рамках трьох проектів:  

У  кінці  70-х  років  у  дослідницькій  лабораторії  корпорації  ІВМ. 
Результатом  роботи  була  система  під  назвою  «SYSTEM  R»,  яка  була 
прототипом  реляційної  бази.  Роботи  над  цим  проектом  дали  поштовх 
для  розвитку  мови  структурних  запитів  SQL  та  різних  комерційних 
реляційних СУБД, зокрема таких як DB2 та ORACLE. 

Проект INGRES (Interactive Graphics Retrieval System).  

Проект  Peterlee  Relational  Test  Vehicle  наукового  центру  корпорації 
ІВМ. Цей проект був більш теоретичним, ніж попередні проекти. Його 
результати мали важливе значення для обробки запитів та оптимізації. 

Комерційні СУБД почали  з’являтися в кінці 70-х на  початку 80-х років. 

Прикладами  реляційних  СУБД  є  Access,  FoxPro,  Paradox,  Visual  dBase.  У 


background image

 

Кам’янці-Подільському  в  кінці  80-х  на  початку  90-х  в  ПКБ  АСУ  була 
розроблена  БД  КМД,  яка  з  успіхом  використовувалась  при  вирішенні  задач 
економічного характеру. 

 

5.2. Структура реляційних даних 
 

Реляційна  модель  основана  на  математичному  понятті  відношення, 

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

 
Відношення – це плоска таблиця, яка складається із стовбців та рядків. 
 
Атрибут – це поіменований стовбець відношення. 
 
У  реляційній  моделі  відношення  використовується  для  зберігання 

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

Наприклад, інформація про факультети університету (Fakultet)  включає  

стовбці  з  атрибутами:  NomF(Номер  факультета),  NameF(Назва  факультета), 
Prof(Профіль  факультету), 

Pr_Dek(Прізвище  декана), 

Tel_Dek(Телефон 

деканату).  Інформація  про  студентів  включає  стовбці  з  атрибутами: 
Nom_Sk(Номер  студентського  квтика),  Priz_St(Прізвище),  Name_St(Ім’я), 
Adress(Адреса), Grupa(Група), NomF(Номер факультету). Як видно із рисунка, 
кожний  стовбець  містить  значення  одного  і  того  ж  атрибута  –  наприклад, 
стовбець Прізвище декана містить тільки прізвища деканів. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 


background image

 

Атрибути 

 

FAKULTET 
 
 
 
 

NomF 

NameF 

Prof 

Pr_Dek 

Tel_Dek 

Фізико-
математичний 

Фізика, 
математика,  
інформатика 

Іваненко  

12125 

філологічний  Ураїнська 

мова 
Англійська 
мова 

Петренко 

32165 

історичний 

Істрія, право 

Сидоренко  96325 

 

Степінь 

 
 
 

Nom_Sk  Priz_St 

Name_St 

Adress 

Grupa 

NomF 

12563 

Студент1 

Петро 

Соборна 5 

36 

32561 

Студент2 

Марічка 

Народна 6 

25 

65942 

Студент3 

Степан 

Колгоспна 125 

36 

 
 Домен  –  це  набір  допустимих  значень  для  одного  чи  декількох 

атрибутів. 

Домени  –  це  надзвичайно  потужний  компонент  реляційної  моделі. 

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

Кортеж – це рядок відношення. 
Елементами  відношення  являються  кортежі.  У  відношенні  Fakultet 

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

Степінь відношення – кількість атрибутів, які   містить відношення. 

 

Кардинальність – кількість кортежів, які містить відношення. 

 

В

ід

ношен

ня

 

К

ард

ин

альн

іст

ь 

Первинний ключ                                                Зовнішній ключ 


background image

 

Реляційна  база  даних  –  набір  нормалізованих  взаємопов’язаних 

відношень. 

 

Альтернативні варіанти термінів у реляційній моделі  

 

Офіційні терміни 

Альтернативний варіант 1 

Альтернативний варіант 2

 

Відношення 

Таблиця 

Файл 

Кортеж 

Рядок 

Запис 

Атрибут 

Стовбець 

Поле 

 
 

5.3. Математичні відношення 

 

Для розуміння істинного змісту терміну відношення розглянемо кілька 

математичних  понять.  Нехай  ми  маємо  дві  множини  D

1

  та 

 

D

,  де  D

1

={2,4}  і  

D

2

={1,3,5}.  Декартовим  добутком  цих  двох  множин  (позначається    D

1

D

2

називається  набір  із  всіх  можливих  пар,  в  яких  першим  йде  елемент  із 
множини D

1

 , а другим – елемент множини  

 

D

2

.  В нашому випадку  

D

1

D

2

 = {(2,1), (2,3), (2,5), (4,1), (4,3), (4,5)} 

Будь-яка 

підмножина 

цього 

декартового 

добутку 

являється 

відношенням. Наприклад у ньому можна виділити відношення R 

R= {(2,1), (4,1)}. 
Для  визначення  тих  можливих  пар,  які  будуть  входити  у  відношення, 

можна  задати  деяку  умову  їх  вибору.  Для  попереднього  прикладу  це  можна 
записати так 

R= {(x,y)| xD

1

yD

2

, і y=1} 

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

1

D

2

... D

n

={(d

1

d

2

,…, d

n

)| d

1

D

1

d

2

D

2

,…, d

n

D

n

 

5.4. Відношення в базі даних. 

 

Використовуючи перелічені вище концепції в контекств бази даних, ми 

отримаємо слідуюче визначення реляційної схеми. 

Реляційна  схема  –  це  ім’я  відношення,  за  яким  слідує  множина  пар 

імен атрибутів і доменів. 

Наприклад,  для  атрибутів  А

1

,  А

2

,...,  А

n

  з  доменами  D

1

,  D

2

,…,  D

n

 

реляційною  схемою  буде  множина  {A

1

:D

1

,  A

2

:D

2

,…,  A

n

:D

n

}.  Відношення  R, 

задане реляційною схемою S, являється множиною відображень імен атрибутів 
на відповідні їм домени. Таким  чином, відображення  R є множиною таких  n-
арних кортежів {A

1

:d

1

, A

2

:d

2

,…, A

n

:d

n

}, де d

1

D

1

d

2

D

2

, … , d

n

D

n

Кожен  елемент  n-арного  кортежу  складається  із  атрибутів  і  значення 

його  атрибута.  Як  правило,  при  записі  відношень  у  вигляді  таблиці  імена 
атрибутів перераховуються в заголовках стовпців, а кортежі утворюють рядки 
формату  (d

1

,  d

2

,…,  d

n

),  де  кожне  значення  береться  із  відповідного  домена. 

Таким чином в реляційній моделі відношення можна представити як довільну 


background image

 

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

 

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

 

Відношення мають наступні характеристики: 
-  відношення  має  ім’я,  яке  відрізняється  від  імен  всіх  інших 

відношень; 

-  кожна  комірка  відношення  містить  тільки  атомарне  (неподільне) 

значення; 

-  кожний атрибут має унікальне ім’я; 
-  значення атрибута береться із одного і того ж домена; 
-  порядок слідування атрибутів не має ніякого значення; 
-  кожний кортеж являється унікальним, тобто дублювання кортежів не 

може бути; 

-  теоретично порядок слідування кортежів у відношенні не має ніякого 

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

Для  ілюстрації  змісту  цих  обмежень,  знову  розглянемо  відношення 

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

Імена стовпців, які вказуються у верхньому рядку, відповідають іменам 

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

Більша  частина  властивостей  відношень  походить  від  властивостей 

математичних відношень. 

-  Оскільки  відношення  являється  множиною,  то  порядок  елементів  не 

має значення. Отже, порядок кортежів в відношенні не суттєвий. 

-  У  множині  відсутні  елементи,  що  повторюються.  Аналогічно 

відношення не може містити кортежів-дублікатів. 

-  Кожна комірка відношення містить тільки одне значення. 
-  Набір  можливих  значень  для  даної  позиції  відношення  визначається 

множиною (доменом), на якому  визначена  ця позиція.  У таблиці всі 
значення  в  кожному  стовпці  повинні  походити  від  одного  і  того  ж 
домена, визначеного для даного атрибута. 

 

  5.6. Типи даних.  

 

Будь-які дані, що використовуються в програмуванні, мають свої типи 

даних. Як правило, вони діляться на три групи: 

Прості типи даних; 

Структуровані типи даних;