Lecture 2

You might also like

You are on page 1of 55

Релационен модел

Предложен от Код, 1970


“A Relational Model of Data for Large Shared
Data Banks”, Communications of the ACM
“...Той е средство за описание на данните
единствено чрез тяхната естествено присъща
структура без никакви допълнителни елементи,
които да са свързани с начина на представянето
им в паметта на машината. Поради това той
дава една основа за създаване на език за
описание на данните от високо ниво, който да
осигури максимална независимост между
програмите и начина на съхраняване на
данните.”(Codd 1970)
Релационен модел
– Характеристики:
- простота
- унифицирани структури за
представяне на БД
-математическа основа

Начало - Търговски СУБД – DB2, Ingress,


Oracle, Informix – за големи/мини машини
Paradox, Rbase 5000, dBase, Access-за PC

Архитектура Клиент-сървър
Релационен модел – характеристики
-релация – основна структура за
моделиране
- релация – с математическа дефиниция,
теория на множества, предикатна логика
от I-ви ред
-БД –множество от релации
Неформално- релацията се онагледява с
таблица със стойности
Ред – съвкупност от свързани данни,
свойства на обект / връзка
Различимост –наименоване на колоните
за свойствата и таблицата
Релация- таблица
- стойности в редове (n-торки, кортежи),
свързани факти, обект или
взаимодействие
- множество от колони / редове
- различимост на редовете -
идентификатори
- колона –атрибут
- домейн – множество допустими
стойности за един или няколко атрибута
Релация- функции
- Множество от функции, дефинирани в
съвкупността на атрибутите, всяка
определя елемент (n-торка)
F(A) Di, i=1, ..,4
напр. F1(S#)=S1
F1(Sname) = Smith
F1(Status) = 20
F1(City) = London
F2(S#) = S2
………………
Таблично и представяне чрез функции -
еквивалентни
Релация - терминология

Неформална Формална
Таблица (файл) Релация
Ред (запис) n-торка (Кортеж)
Колона (поле) Атрибут
Дефиниции

Домейн-множество от прости (атомарни)


стойности
Елементите – най-малка единица данни
Множеството – крайно или изброимо,
непразно,
Пример-Имена (ааа, ббб, ввв, ....)
Факултети – (ФПМИ, ФА, ФТК, ЕФ, ...)
Оценка (2, 3, 4, 5, 6)
Дефиниции - Релационна схема
– крайно множество от имена на атрибути
R{A1, A2, …, An}
Примери:
СТУДЕНТ(Фак.№, Име, Факултет,
Специалност)
СЛУЖИТЕЛ( Име, Отдел, Длъжност,
Заплата)

На всеки атрибут Ai –домейн Di,


Di=dom(Ai), i=1, 2, …, n
Дефиниции - релация

Релационна схема R(A1, A2, …, An)


описва отношение (релация) r

Релация – r(R)  D1x D2x…xDn


x – Декартово произведение

Възможни комбинации - D1*D2…


Dn
tr = <v1, v2, …, vn> - n-торка
Дефиниции - релация

n-торка – n подредени стойности


Стойностi – от Di или null (липсва)
Степен на релация r – n
Мощност на релация – брой на –торките

Релационна схема R – краен брой двойки


<Ai, Di> - относително постоянна
Релация r – множество от n-торки
{t1, t2, …, tn} – състояние на схемата
конкретни данни, текущо състояние
Пример на релация
Свойства на релация
1. n-торките не са наредени
-релацията е множество, няма наредба на
елементите
2. стойностите в n-торките не са наредени
-на логическо ниво, не влияе върху
информационното съдържание на
релацията
СТУДЕНТ(Фак.№, Име, Факултет,
Специалност)
СТУДЕНТ(Име, Фак.№, Факултет,
Специалност)
Логически идентични, като схеми -
различни
Свойства на релация
3. Стойностите в n-торките са прости
(атомарни)
Домейн по дефиниция – прости стойности
не многостойностни (масиви)
4. Релацията – уникално име
5.Атрибутите в релация – уникални имена
6. Стойностите на атрибут – от един и същ
домейн
7. Релацията не съдържа еднакви n-торки
–(в множество по def елементите са
различими)
Интерпретация на релация

Представя факти за обект или връзка


между обекти
СТУДЕНТ(Фак.№, Име, Факултет,
Специалност)
Схема на РБД
Ако R1, R2, …, Rs са релационни схеми,
IC – ограничения за цялост
S={R1, R2, …, Rs}+IC

Състояние на РБД със схема S


за ri Ri, i=1, …,s, DB={r1, r2, …, rs}
Пример
Пример
Релационни ограничения (IC)
Отнасят се за релационна схема (R)–
валидни са за всяко нейно състояние (r)
1. Върху домейните – неделимост на
стойностите (числови, символни, дата,
време, пари,...), определят се от СУБД
– основна характеристика на
релационния модел
2. Върху ключа – n-торките се различават
чрез стойности в някакво подмножество от
атрибутите
напр. ЕГН, Фак.№ - едноатрибутни
многоатрибутни (съставни)
Релационни ограничения
Суперключ –
SK = {B1, B2, …, Bk}  = {A1, A2, …, An},
ako ti  tj  ti[SK]  tj[SK]

за  R  SK (поне един), по подразбиране


– всички атрибути
 има излишък
Минимален суперключ – нарича се ключ,
Кандидат ключове – няколко минимални
суперключа, (прости, съставни)
Главен ключ на релация – един от
кандидат ключовете
Релационни ограничения
3. На обект – не се допуска липсваща
стойност на главния ключ (различимост)
4. На връзките - за поддръжка на
непротиворечиви данни между n-торките

- t2  r2 е свързан със съществуването на


t1  r1 - чужд ключ
За PK  R1 FK R2, ако:
- за  t1 r1, t2[FK]=t1[PK] ; или
t2[FK]=null
Може да дефинира рекурсивна
зависимост в рамките на релация
Пример
Релационни ограничения

Присъщи на релационния модел и за


всяка РБД

Собствени ограничения – семантични,


задават се със специфични за СУБД
средства
Релационни операции

Видове:
Обновяване на БД
Извличане на данни
Обновяване на БД
1. Въвеждане на n-торка в релация
При неспазване на ограничения
- отмяна
- корекция и изпълнение

2. Премахване на на n-торка в релация


При неспазване на ограничения (чужд
ключ)
- отмяна
- изтриване на свързани чрез чужд
ключ n-торки
- корекция на чужд ключ, за да сочи
съществуваща n-торка и изпълнение
Операции за обновяване на БД
3. Модифициране на n-торка в релация
- на атрибути (не ключове)
не поражда проблеми
- промяна на ключ = изтриване и ново
въвеждане
Извличане на данни

Релационна алгебра – средството за


обработка на РБД
- избор на n-торки и комбинирането им
- резултат – релация – вход на
следваща операция (свойство на
обвивката)
- формален език - основа на основните
видове релационни езици
Релационна алгебра

- множествен език (set-at-a-time) – с


единствен оператор се обработват n-торки
от една или няколко релации без
организиране на цикъл
- процедурен език- указва начина на
изграждане на резултантната релация
Релационно смятане

- непроцедурен формален език (Codd) –


указва се какво да съдържа резултантната
релация
- служи за мярка за определяне
възможности за формулиране на заявки в
езиците (експресивна мощност)

Труден за използване, както и


релационната алгебра
Други средства за обработка на БД

- езици ориентирани към трансформации


– непроцедурни, входните данни се
преобразуват в желания изход чрез
фиксирани структури за описание
Примери: SQUARE, SEQUEL, SQL
-графични –шаблони на заявки, попълва
се с пример, описващи резултата – Query-
by-Example, реализиран е в СУБД Access
Релационна алгебра- Codd
1. Множествени – релацията е
множество!
обединение
сечение
разлика
декартово произведение
2. Релационни – специално за РБД
селекция
проекция
съединение
деление
Селекция

- избор на подмножество от n-торки ,


удовлетворяват условие (критерий) за
търсене – филтриране

 Bool(attr)(R),
R – релация, attr R – атрибут/и,
Bool – булев израз
Селекция – условие
1. Просто
<име атрибут><сравнителна
операция><константа>
2. Непосредствено
<име атрибут><сравнителна
операция><име атрибут>
Bool – булев израз
3. Условие общ вид
<Bool><логическа операция><Bool>
Всички сравнителни операции –
приложими към домейни с наредба
(числов, символен, дата), иначе само
=, 
Селекция
Изпълнение–
прилага се към всяка n-торка, проверка
на условието за посочения атрибут,
запис в резултантната релация
Характеристики:
1. Унарна
2. Резултантна релация – от същата
степен като входната, по-малък брой n-
торки
Селекция
Характеристики:

3. Комутативна –
 Bool1(attr)( Bool2(attr)(R)) =
 Bool2(attr)( Bool1(attr)(R))

4. Комбиниране на последователни
селекции в единствена –
 Bool1(attr)( Bool2(attr)(R)) =
 Bool1(attr)AndBool2(attr)(R))
Проекция
Избор на отделни колони от релация

 <attr1,attr2,…attri(R)

Степен на резултантната релация – брой


на атрибутите в списъка
Характеристики:
1. Няма дублирани n-торки – за
получаване на валидна релация
2. Брой n-торки - =, < от този във входната
релация
3. Унарна, некомутативна
Съединение

Комбинират се свързани n-торки от две


релации в една n-торка
Релациите са свързани чрез общ атрибут
(ключ чужд ключ),
Ключова операция за релационния модел
– обработват се връзки между релации

R1(A1,A2,…,An)
R2(B1,B2,…Bm)
R1  Bool(Ai,Bj)R2 = Q(A1,A2,…,An, B1,B2,…
Bm)
Съединение

Bool(Ai,Bj)  Bool1 AND Bool2 AND…AND


Booli
Booli = Ai Bj ,  ={=, >, <,  , , }

Видове:
 съединение
еквисъединение (equijoin)- ={=}
естествено – (natural join) - * -отстранени
са повтарящите се атрибути
Съединение

Характеристики:
1. Бинарна, комутативна
2. Съдържа 0...nR1*nR2 n-торки (всички
комбинации=декартово произведение)
Деление

R1 (A1,A2,…,An, B1,B2,…Bm)
R2 (B1,B2,…Bm)
Q=R1:R2 = (A1,A2,…,An),
 t Q,  s R2, конкатенацията tsR1
Деление
Множествени операции
обединение - 
сечение - 
разлика - -
Адаптация към релационния модел на БД
(резултат правилна релация)
- съвместимост по обединение
R1 (A1,A2,…,An)
R2 (B1,B2,…Bm)
- m=n
-  n двойки<Ai,Bi>, Ai,Bi  Di
(стойности от един домейн)
Множествени операции
обединение - 
сечение - 
разлика - -
Характеристики:
,  - комутативни, асоциативни
- не е комутативна
Множествени операции

Декартово произведение-
Комбинират се n-торки от две релации
R1 (A1,A2,…,An)
R2 (B1,B2,…Bm)
R1XR2=Q(A1,A2,…,An, B1,B2,…Bm)
Брой атрибути –m+n
Брой n-торки – nR (R1), nm (R2) –
nQ = nR *nm
Множествени операции – входни
релации
Множествени операции –
обединение сечение
Релационна алгебра

Операциите – селекция, проекция,


обединение, разлика, декартово
произведение- пълно множество
R1  Bool(Ai,Bj)R2   Bool(Attr) (R1xR2)
nat join   ( Bool(Attr) (R1xR2))

Съединение – не допринася за
изразителната мощ, но в СУБД се
реализира за ефективност
Релационна алгебра
Релационна алгебра - примери
Релационна алгебра
Правила на Codd – релационна СУБД
Основно: БД се управлява чрез
възможностите на релационния модел
1. Представяне на информацията – на
логическо ниво чрез стойности в
таблици
2. Гарантиран достъп – всяка стойност е
достъпна чрез име на таблица, стойност
на главен ключ и име на колоната
(атрибута)
3. Системно третиране на липсващи
стойности – null, независимо от типовете
данни
Правила на Codd – релационна СУБД

4. Динамичен интерактивен каталог –


описанието на данните се представя на
логическо ниво по същия начин като
данните
5. Език за заявки от високо ниво –
дефиниране на данни, на потребителски
представи, обработка на данни,
ограничения за цялост, права за достъп,
граници на транзакциите
Правила на Codd – релационна СУБД
6. Обновяване на потребителски
представи – от системата
7. Обновяване на данните на високо ниво
– на ниво таблица
8. Физическа независимост – промяна на
методи за достъп и представяне в паметта
– се променя логиката на приложните
програми
9. Логическа независимост – промяна на
таблици за нови приложения, не се
променят логически старите приложения
Правила на Codd – релационна СУБД
10. Независимост на ограниченията за
цялост – задават се с езика за заявки,
съхраняват се в каталога, не в
приложните програми
11. Независимост на разпределението –
приложна програма да може да работи и
при разпределена в мрежа база
12. Защита – достъпът до БД се
контролира изцяло от СУБД, нейната
цялост не може да се наруши без
знанието на администратора или
потребителя
Релационни СУБД - резюме

Доминиращ софтуер от второ поколение


за обработка на данни
Релационен модел – релация –
подмножество на декартовото
произведение на домейните на
атрибутите
Физическо представяне – файл / таблица,
множество от n-торки, всеки атрибут
принадлежи на даден домейн
Ограничения за цялост на обект – не се
допускат липсващи стойности на ключа
Релационни СУБД - резюме

Ограничение за цялост на връзките –


налагат съответствие на стойностите на
чужд ключ с тези на ключ в друга релация

Релационна алгебра – формален език за


описание на възможни операции към БД.

You might also like