Relație (model relațional)
Versiunea stabilă a fost
verificată pe 4 mai 2021 . Există
modificări neverificate în șabloane sau .
Relația este un concept fundamental al modelului de date relaționale . Din acest motiv, modelul se numește relațional (din engleză relație - „relationship”).
Definiția și proprietățile unei relații
Să fie dat un set de tipuri de date T 1 , T 2 , …, T n , numite și domenii , nu neapărat diferite. Atunci o relație n -ară R , sau o relație R de grad n este o submulțime a produsului cartezian al mulțimilor T 1 , T 2 , …, T n [1] [2] .
Relația R constă dintr- un antet ( schemă ) și un corp . Antetul este un set de atribute (ocurențe denumite ale domeniului în antetul relației), iar corpul este un set de tupluri corespunzătoare antetului [2] . Mai strict:
- Titlul (sau schema) H a relației R este o mulțime finită de perechi ordonate de forma ( A i , Ti ), unde A i este numele atributului și Ti este numele tipului (domeniului) , i =1,…, n . Prin definiție, toate numele atributelor din antetul relației trebuie să fie distincte (unice).
- Corpul B al relației R este o mulțime de tupluri t . Tuplul t corespunzător antetului H este un set de triplete (triple) ordonate de forma < A i , Ti , v i > , câte un astfel de triplet pentru fiecare atribut din H , unde v i este o valoare validă de tip (domeniu) T i . Deoarece numele atributelor sunt unice, specificarea domeniului într-un tuplu este de obicei redundantă. Prin urmare, tuplul t corespunzător antetului H este adesea definit ca un set de perechi ( Ai , vi ) .
Numărul de tupluri se numește numărul cardinal al relației ( cardinalitate ) sau puterea relației.
Numărul de atribute se numește gradul sau „ aritatea ” relației; o relație cu un singur atribut se numește unară, cu două - binare și așa mai departe, cu n atribute - n -ary. Din punctul de vedere al teoriei, este destul de corectă și o relație cu un număr zero de atribute, care fie nu conține tupluri, fie conține un singur tuplu fără componente (un tuplu gol) [2] .
Proprietățile de bază ale relației [1] [2] :
- Nu există două elemente (tupluri) identice într-o relație.
- Ordinea tuplurilor într-o relație este nedefinită.
- Ordinea atributelor din antetul relației este nedefinită.
Un subset de atribute de relație care satisface cerințele de unicitate și minimalitate (ireductibilitate) se numește cheie potențială . Deoarece toate tuplurile dintr-o relație sunt prin definiție unice, trebuie să existe cel puțin o cheie candidată în orice relație.
Relații și tabele
Relația are de obicei o interpretare grafică simplă sub forma unui tabel, ale cărui coloane corespund atributelor, iar rândurile corespund tuplurilor, iar în „celule” există valori ale atributelor în tuplu. Totuși, într-un model relațional puternic , o relație nu este un tabel , un tuplu nu este un rând și un atribut nu este o coloană [2] [3] . Termenii „tabel”, „rând”, „coloană” pot fi utilizați numai într-un context informal, cu condiția să se înțeleagă pe deplin că acești termeni mai „prietenos” sunt doar o aproximare și nu oferă o idee exactă a esenţa conceptelor fiind notate [2] [4] .
După cum este definit de C.J. Date , un tabel este o reprezentare directă și adevărată a unei relații dacă îndeplinește următoarele cinci condiții:
- Nu există o ordonare a liniilor de sus în jos (cu alte cuvinte, ordinea liniilor nu conține nicio informație).
- Nu există o ordonare de la stânga la dreapta a coloanelor (cu alte cuvinte, ordinea coloanelor nu conține informații).
- Fără linii duplicate.
- Fiecare intersecție a unui rând și a unei coloane conține exact o valoare din domeniul corespunzător (și nimic altceva).
- Toate coloanele sunt normale. „Regularitatea” tuturor coloanelor unui tabel înseamnă că nu există componente „ascunse” în tabel care să poată fi accesate doar prin invocarea unui operator special în loc să se refere la nume de coloane obișnuite sau care să ducă la efecte secundare pentru rânduri sau tabele la invocarea operatorilor standard. Astfel, de exemplu, șirurile de caractere nu au alte identificatori decât valorile chei candidate normale (fără „identificatori de rând” sau „identificatori de obiecte”) ascunși. De asemenea, nu au marcaje temporale ascunse [5] .
Exemplu
Să fie date următoarele tipuri (domenii):
- = {Ivanov, Petrov, Sidorov}
- = {Fizică, Chimie}
- = {3, 4, 5}
Apoi produsul cartezian este format din 18 tupluri, unde fiecare tuplu contine trei valori: primul este unul dintre nume de familie, al doilea este disciplina academica, iar al treilea este nota.
Fie relația R să aibă titlul H : { (Nume, T 1 ), (Subiect, T 2 ), (Scor, T 3 )}.
Apoi corpul relației R poate simula situația reală și conține cinci tupluri care corespund rezultatelor sesiunii (cu condiția ca Petrov să nu promoveze examenul de fizică). Să arătăm relația sub forma unui tabel:
R
|
Nume de familie |
Disciplina |
Nota
|
Ivanov |
Fizică |
patru
|
Ivanov |
Chimie |
3
|
Petrov |
Chimie |
5
|
Sidorov |
Fizică |
5
|
Sidorov |
Chimie |
patru
|
Operațiuni pe relații
Vezi și: algebră relațională , calcul relațional .
Orice operație care are ca rezultat o relație se încadrează în conceptul de operație relațională și poate fi utilizată în teoria și practica relațională. Următoarea este o listă de opt operații propuse inițial de creatorul modelului relațional, Edgar Codd . Toate operațiile din listă, cu excepția împărțirii, sunt încă utilizate pe scară largă, dar lista nu este exhaustivă, adică, de fapt, se utilizează un număr mult mai mare de operații relaționale.
- Unire - corpul relatiei-rezultat este unirea corpurilor relatiilor-operanzi; schema nu se schimba.
- Intersecție - corpul relației-rezultat este intersecția corpurilor relațiilor-operanzi; schema nu se schimba.
- Scăderea - corpul relației-rezultat se obține prin scăderea corpurilor relațiilor-operanzi; schema nu se schimba.
- Proiecție - schema rezultat-relație este un subset al schemei operand-relație; corpul rezultatului-relație este un subset non-strict al corpului operandului-relație din cauza posibilei eliminări a tuplurilor duplicate.
- Produs cartezian - corpul relatiei-rezultat este produsul cartezian al corpurilor relatiilor-operanzi; schema rezultată este concatenarea schemelor operanzilor.
- Eșantionare - corpul relației-rezultat este o submulțime a corpului relației-operand: sunt selectate doar acele tupluri care satisfac predicatul dat (condiția de selecție); schema nu se schimba.
- Conexiune - selectie peste produsul cartezian.
- Împărțire - divizorul este o relație unară, câtul este părțile care se potrivesc ale tuplurilor dividendului, care sunt precedate de divizor.
Note
- ↑ 1 2 Data K.J., 2005 .
- ↑ 1 2 3 4 5 6 Baza de date în profunzime, 2005 .
- ↑ În special, nimic nu împiedică ca relația să fie reprezentată vizual printr-un tabel, în care coloanele vor corespunde nu unor atribute, ci tupluri, iar rândurile nu unor tupluri, ci atribute. Adică, corelarea tuplurilor de relație cu rândurile de tabel și a atributelor de relație cu coloanele de tabel este doar un tribut adus tradiției, dar nu are o condiționalitate teoretică.
- ↑ Trebuie amintit că „tabel” de cele mai multe ori nu înseamnă „relație” ca concept abstract , ci o reprezentare vizuală a relației pe hârtie sau pe ecran. Folosirea incorectă și liberă a termenului „tabel” în locul termenului „relație” duce adesea la neînțelegeri. Cea mai frecventă greșeală este să credem că modelul de date relaționale se ocupă de tabele „plate” sau „bidimensionale”, când numai reprezentările vizuale ale tabelelor pot fi. Relațiile, pe de altă parte, sunt abstracții și nu pot fi nici „plate”, nici „neplate”.
- ↑ C. J. Data. Ce înseamnă cu adevărat prima formă normală //С. J. data. Data în baza de date: Scrieri 2000-2006, Apress, 2006, ISBN 978-1-59059-746-0
Literatură
- Kogalovsky M.R. Enciclopedia tehnologiei bazelor de date. - M. : Finanţe şi statistică , 2002. - 800 p. — ISBN 5-279-02276-4 .
- Kuznetsov SD Fundamentele bazelor de date. - Ed. a II-a. - M. : Universitatea de Tehnologii Informaţionale pe Internet; BINOM. Laboratorul de cunoștințe, 2007. - 484 p. - ISBN 978-5-94774-736-2 .
- Data CJ Introducere în sistemele de baze de date = Introducere în sistemele de baze de date. - Ed. a 8-a. - M. : Williams , 2005. - 1328 p. - ISBN 5-8459-0788-8 (rusă) 0-321-19784-4 (engleză).
- Connolly T., Begg K. Baze de date. Proiectare, implementare și suport. Teorie și practică = Sisteme de baze de date: O abordare practică a proiectării, implementării și managementului. - Ed. a 3-a. - M. : Williams , 2003. - 1436 p. — ISBN 0-201-70857-4 .
- Garcia-Molina G., Ulman J. , Widom J. Sisteme de baze de date. Curs complet = Sisteme de baze de date: Cartea completă. - Williams , 2003. - 1088 p. — ISBN 5-8459-0384-X .
- C. J. Data . Data în baza de date: Scrieri 2000–2006. - Apress , 2006. - 566 p. - ISBN 978-1-59059-746-0 , 1-59059-746-X.
- Data, CJ Database in Depth. - O'Reilly, 2005. - 240 p. - ISBN 0-596-10012-4 .