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:

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] :

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:

  1. Nu există o ordonare a liniilor de sus în jos (cu alte cuvinte, ordinea liniilor nu conține nicio informație).
  2. Nu există o ordonare de la stânga la dreapta a coloanelor (cu alte cuvinte, ordinea coloanelor nu conține informații).
  3. Fără linii duplicate.
  4. Fiecare intersecție a unui rând și a unei coloane conține exact o valoare din domeniul corespunzător (și nimic altceva).
  5. 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):

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.

Note

  1. 1 2 Data K.J., 2005 .
  2. 1 2 3 4 5 6 Baza de date în profunzime, 2005 .
  3. Î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ă.
  4. 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”.
  5. 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ă