Modele de date. folosind formulare de ecran special create pentru aceasta de către utilizator. Model ierarhic de bază de date

După cum sa menționat, se afișează modelul de informații lumea realaîn unele concepte care pot fi citite de om, care sunt complet independente de parametrii mediului de stocare a datelor. Există multe abordări pentru construirea unor astfel de modele: modele grafice, rețele semantice, model entitate-relație etc. Cel mai popular dintre acestea s-a dovedit a fi modelul entitate-relație, care va fi discutat în Capitolul 2.

Modelul informațional trebuie mapat într-un model datalogic orientat pe computer, care este „înțeles” de către SGBD. În procesul de dezvoltare a teoriei şi uz practic baze de date, precum și instrumente tehnologia calculatoarelor Au fost create SGBD-uri care au suportat diverse modele datalogice.

În primul rând, au început să fie utilizate modele datalogice ierarhice. Ușurință de organizare, disponibilitate în avans conexiuni dateîntre entități, asemănarea cu modelele de date fizice a făcut posibilă realizarea unei performanțe acceptabile a SGBD-urilor ierarhice pe computere lente, cu cantități foarte limitate de memorie. Dar, dacă datele nu au avut o structură arborescentă, atunci au apărut o mulțime de dificultăți la construirea unui model ierarhic și dorința de a obține performanța dorită.

Au fost create și modele de rețea pentru calculatoare cu resurse reduse. Acestea sunt structuri destul de complexe constând din „seturi” - numite arbori cu două niveluri. „Seturile” sunt conectate folosind „înregistrări de legături”, formând lanțuri etc. La dezvoltarea modelelor de rețea, au fost inventate multe „mici trucuri” care au făcut posibilă creșterea performanței SGBD-ului, dar au complicat semnificativ pe acesta din urmă. Programator de aplicații trebuie să cunoască o mulțime de termeni, să studieze mai multe limbaje interne DBMS, prezente în detaliu structura logica baze de date pentru navigarea între diferite instanțe, seturi, înregistrări etc. Unul dintre dezvoltatori sistem de operare UNIX a spus " Baza rețelei- acesta este cel mai mult calea cea buna pierde date.”

Complexitatea utilizării practice a SGBD-urilor ierarhice și de rețea ne-a forțat să căutăm alte modalități de prezentare a datelor. La sfârșitul anilor 60 au apărut SGBD-urile bazate pe fișiere inversate, caracterizate prin ușurință în organizare și prezența unor limbaje foarte convenabile de manipulare a datelor. Cu toate acestea, astfel de SGBD-uri au o serie de restricții privind numărul de fișiere pentru stocarea datelor, numărul de conexiuni dintre ele, lungimea înregistrării și numărul câmpurilor acesteia.

Cele mai comune modele astăzi sunt modelele relaționale, care vor fi discutate în detaliu în Capitolul 3.

Organizarea fizică a datelor are un impact major asupra caracteristicilor operaționale ale bazei de date. Dezvoltatorii DBMS încearcă să creeze cel mai productiv modele fizice date, oferind utilizatorilor unul sau altul instrument de personalizare a modelului pentru o anumită bază de date. Varietatea modalităților de ajustare a modelelor fizice ale SGBD-urilor industriale moderne nu ne permite să le luăm în considerare în această secțiune.

Modele de organizare a bazelor de date

1. Abordarea ierarhică a organizării bazelor de date. Bazele de date ierarhice au forma de arbori cu arc-link-uri și noduri-element de date. Structura ierarhică presupunea inegalități între date – unele erau strict subordonate altora. Astfel de structuri, desigur, satisfac în mod clar cerințele multor, dar nu tuturor problemelor din viața reală.

2. Model de date de rețea.În bazele de date de rețea, împreună cu conexiunile verticale, sunt implementate și conexiunile orizontale. Cu toate acestea, multe deficiențe ierarhice au fost moștenite, iar principala este necesitatea de a defini clar nivel fizic conexiuni de date și urmăriți la fel de clar această structură de conexiune atunci când interogați baza de date.

3. Model relațional. Modelul relațional a apărut din dorința de a face baza de date cât mai flexibilă. Acest model a oferit un mecanism simplu și eficient pentru menținerea legăturilor de date.

in primul rand, toate datele din model sunt prezentate sub formă de tabele și numai tabele. Modelul relațional este singurul care asigură uniformitatea prezentării datelor. Atât entitățile, cât și conexiunile acestor entități sunt reprezentate în model exact în același mod - Mese . Adevărat, această abordare complică înțelegerea sensului informațiilor stocate în baza de date și, ca urmare, manipularea acestor informații.

Vă permite să evitați dificultățile de manipulare al doilea element modele – un limbaj complet relațional (rețineți că limbajul este parte integrantă a oricărui model de date, fără el modelul nu există). Completitudinea unui limbaj atunci când este aplicată unui model relațional înseamnă că trebuie să efectueze orice operație de algebră relațională sau de calcul relațional (completitudinea acestuia din urmă a fost dovedită matematic de E.F. Codd). Mai mult, limbajul trebuie să descrie orice interogare în termeni de operații pe tabele, nu pe rândurile acestora. Un astfel de limbaj este SQL.

Al treilea element modelul relațional necesită ca modelul relațional să mențină unele constrângeri de integritate. O astfel de constrângere afirmă că fiecare rând dintr-un tabel trebuie să aibă un anumit identificator unic, numit cheia principala . A doua limitare este impusă integrității legăturilor dintre tabele. Acesta afirmă că atributele de tabel care fac referire la cheile primare ale altor tabele trebuie să aibă una dintre acele valori ale cheilor primare.

4. Model orientat pe obiecte. Noi domenii de utilizare a calculatoarelor, cum ar fi cercetarea științifică, proiectare asistată de calculatorși automatizarea instituțiilor, bazele de date necesare pentru a putea stoca și procesa obiecte noi - informații text, audio și video, precum și documente. Principalele dificultăți ale modelării datelor orientate pe obiecte provin din faptul că un astfel de aparat matematic dezvoltat pe care s-ar putea baza un model general de date orientat pe obiecte nu există. Acesta este în mare parte motivul pentru care încă nu există un model de bază orientat pe obiecte. Pe de altă parte, unii autori susțin că un model de date general orientat pe obiect în sensul clasic nu poate fi definit deoarece conceptul clasic de model de date este nepotrivit paradigmei orientate pe obiect. În ciuda avantajelor sistemelor orientate pe obiecte - implementarea unor tipuri de date complexe, comunicarea cu limbaje de programare etc. - superioritate în viitorul apropiat SGBD relațional garantat.

5.3.3 Modele de date și modelare conceptuală

S-a menționat deja mai sus că o schemă este creată folosind un limbaj de definire a datelor. De fapt, este creat pe baza limbajului de definire a datelor unui anumit SGBD țintă, care este relativ nivel scăzut; cu ajutorul acestuia, este dificil să descrieți cerințele de date, astfel încât diagrama creată să fie înțeleasă de utilizatori diferite categorii. Pentru a obține o astfel de înțelegere, este necesar să se creeze o descriere a circuitului în unele, mai multe nivel inalt, pe care îl vom numi model de date. În acest caz, printr-un model de date vom înțelege un set integrat de concepte pentru descrierea datelor, conexiunile dintre acestea și restricțiile impuse datelor într-un anumit domeniul subiectului.

Un model este o reprezentare a obiectelor și evenimentelor dintr-un domeniu, precum și a relațiilor care există între ele. Un model de date poate fi gândit ca o combinație a următoarelor trei componente.

· Partea structurală, de ex. un set de reguli prin care se poate construi o bază de date.

· Partea de control, care determină tipurile de operațiuni permise cu date (aceasta include operațiuni de actualizare și preluare a datelor, precum și operațiuni de modificare a structurii bazei de date).

· Un set de constrângeri de integritate a datelor care garantează corectitudinea datelor utilizate.

Scopul construirii unui model de date este de a prezenta datele într-un mod ușor de înțeles. Dacă o astfel de reprezentare este posibilă, atunci modelul de date poate fi aplicat cu ușurință la proiectarea unei baze de date. Pentru a reprezenta arhitectura ANSI-SPARC, pot fi definite următoarele trei: modele aferente date:

· model extern date care afișează vizualizările fiecărui tip de utilizator existent în organizație;

· model conceptual date, afișând o vizualizare logică (sau generalizată) a datelor, independent de tipul de SGBD selectat;

· model de date intern care afiseaza diagrama conceptuala într-un anumit fel, de înțeles de către SGBD-ul țintă selectat.

Un număr destul de mare de modele de date au fost propuse și publicate în literatură. Acestea sunt împărțite în trei categorii: modele de date bazate pe obiecte, modele de date bazate pe înregistrări și modele de date fizice. Primele două sunt folosite pentru a descrie datele la nivel conceptual și extern, iar ultima la nivel intern.

Modele de date obiect. La construirea modele de obiecte datele utilizează concepte precum entități, atribute și relații. O entitate este un element separat (angajat, produs, concept sau eveniment) al unui domeniu care trebuie reprezentat în baza de date. Un atribut este o proprietate care descrie un aspect al unui obiect și a cărui valoare ar trebui să fie capturată, iar o relație este o relație asociativă între entități. Mai jos sunt enumerate unele dintre cele mai multe tipuri comune modele de date obiect.

    • Model Entitate-Relație sau model ER.
    • Model semantic.
    • Model functional.
    • Model orientat pe obiecte.

În prezent, modelul ER a devenit una dintre principalele metode de proiectare conceptuală a bazelor de date. Modelul orientat pe obiect extinde definiția unei entități pentru a include nu numai atributele care descriu starea obiectului, ci și acțiunile care îi sunt asociate, i.e. comportamentul lui. În acest caz, se spune că obiectul încapsulează starea și comportamentul.

Modele de date bazate pe înregistrări. Într-un model bazat pe înregistrări, baza de date constă din mai multe înregistrări în format fix care pot fi tipuri diferite. Fiecare tip de înregistrare definește un număr fix de câmpuri, fiecare dintre ele având o lungime fixă. Există trei tipuri principale de modele de date logice bazate pe înregistrări: model relațional model de date relaționale, model de date de rețea și model ierarhic date (model ierarhic de date).

Există multe modalități de implementare a unităților de date elementare și, prin urmare, sunt cunoscute o varietate de modele de date. Modelul de date oferă reguli pentru structurarea acestuia. De regulă, operațiunile asupra datelor sunt legate de structura lor. Soiuri modelele existente datele corespund unei varietăți de aplicații și preferințe ale utilizatorului.

Pentru reprezentarea datelor se folosesc modele bazate pe forme de reprezentare a informațiilor. Se numesc astfel de modele sintactic.

În literatura de specialitate există o descriere a destul cantitate mare modele de date. Metodele ierarhice, de rețea și relaționale sunt utilizate pe scară largă. Pe lângă acestea, cele mai cunoscute sunt modelul binar și rețeaua semantică.

Se consideră că se bazează modelul de date clasic, cel mai lung utilizat structură de tip arbore ierarhic(un fragment este prezentat în Fig. 10). Este adesea folosit și modelul „arborele ordonat”, în care ordinea relativă a subarborilor este semnificativă. Într-un astfel de model, fiecare unitate de informație ulterioară este asociată doar cu una anterioară, iar cele anterioare pot fi asociate cu mai multe ulterioare.


Model de date de rețea se bazează pe o astfel de reprezentare a informaţiei în care o unitate de informaţie poate fi asociată cu un număr arbitrar de altele (Fig. 11).


Model de date relaționale bazat pe metode tabelareși mijloace de prezentare și manipulare a datelor. Într-un astfel de model, informațiile despre domeniul subiectului sunt afișate într-un tabel numit „relație” (Fig. 12). Un rând dintr-un astfel de tabel se numește tuplu, iar o coloană este numită atribut. Fiecare atribut poate lua un anumit subset de valori dintr-o anumită zonă - domeniu.

Marea majoritate a SGBD-urilor s-au concentrat asupra calculatoare personale, sunt sisteme construite pe baza unui model de date relaționale - SGBD relațional.

Model de date binare este un model de grafic în care vârfurile reflectă reprezentări ale atributelor simple, fără ambiguitate, iar arcele reprezintă reprezentări ale relațiilor binare dintre atribute (Fig. 13).


Modelul binar nu este utilizat pe scară largă, dar în unele cazuri găsește uz practic. Da, în zonă inteligenţă artificială De mult timp au fost efectuate cercetări pentru a reprezenta informația sub formă de relații binare.

Rețele semantice au fost propuse ca modele de date de către cercetătorii care lucrează diverse probleme inteligenţă artificială. La fel ca în modelele de rețea și binare, structuri de bază web semantic poate fi reprezentat printr-un grafic, a cărui mulțime de vârfuri și arce formează o rețea. Cu toate acestea, rețelele semantice sunt concepute pentru a reprezenta și sistematiza cunoștințe de natură foarte generală.

Astfel, orice model de graf (de exemplu, un graf binar etichetat) poate fi considerat o rețea semantică dacă inițial este precizat clar ce înseamnă vârfurile și arcele și cum sunt utilizate.

Rețelele semantice sunt o sursă bogată de idei de modelare a datelor care sunt extrem de utile pentru rezolvarea problemei reprezentării situațiilor complexe. Ele pot fi utilizate independent sau împreună cu ideile care stau la baza altor modele de date. Al lor caracteristică interesantă Este faptul că distanța măsurată în rețea (distanță semantică sau metrică) joacă un rol important în determinarea proximității conceptelor interdependente. În același timp, este posibil să subliniem în mod explicit faptul că distanța semantică este mare. După cum se arată în Fig. 14, MAGAZIN se coreleaza cu personalitatea VANZATORULUI, iar in acelasi timp, VANZATORUL are GREUTATE. Relația dintre personalitate și specialitate este evidentă, dar asta nu înseamnă neapărat relația dintre MAGAZIN și GREUTATE.


Trebuie spus că modelele de date precum rețeaua semantică, cu toată bogăția capacităților lor de modelare a situațiilor complexe, se caracterizează prin complexitate și oarecare ineficiență în termeni conceptuali.

Să ne oprim mai în detaliu asupra relațiilor, ierarhice și modele de rețea date.

Model relațional datele sunt caracterizate de următoarele componente:

– construcția informației: o relație cu o structură pe două niveluri;

– operațiuni valabile: proiecție, selecție, conectare și altele;

- restrictii: dependențe funcționaleîntre atributele unei relaţii.

Fiecare clasă de obiecte R lumea materială este pusă în corespondență cu un anumit set de atribute, de exemplu A 1 , A 2 , ..., A n. Obiect separat clasă R descris printr-un șir de valori ( a 1, a 2, ..., a n), Unde un i– valoarea atributului A i.

Linia ( a 1, a 2, ..., un n) se numește tuplu. O întreagă clasă de obiecte are un set corespunzător de tupluri numit relație. Să notăm relația care descrie clasa de obiecte R, de asemenea prin R.

Expresie R(A 1, A 2, ..., A n) se numește o schemă de relații R.

Pentru fiecare componentă tuplu, trebuie specificată relația acesteia cu atributul corespunzător. În modelul de date relaționale, pentru a asigura această conexiune, ordinea componentelor tuplului coincide cu ordinea atributelor din schema relației.

Fiecare relație reflectă starea unei clase de obiecte la un moment dat în timp. Prin urmare, o schemă de relație în momente diferite diferite relații pot corespunde timpului.

Setul de valori de relație poate fi reprezentat sub forma unui tabel în care se observă următoarele corespondențe:

– numele tabelului și lista de nume de coloane corespund diagramei de relații;

– unui rând de tabel îi corespunde un tuplu de relație;

– toate rândurile tabelului (și deci toate tuplurile) sunt diferite;

– ordinea rândurilor și coloanelor este arbitrară (în special, modelul de date relaționale nu necesită sortare specială a rândurilor).

Descrierea proceselor de procesare a relațiilor se poate face în două moduri:

– indicarea unei liste de operațiuni, a căror implementare duce la rezultatul dorit (abordare procedurală),

– o descriere a proprietăților pe care trebuie să le satisfacă relația rezultată (abordare declarativă).

Sa luam in considerare abordare procedurală. Se formează un set de relații și operații asupra lor algebră relațională. De obicei, lista de operații conține proiecție, selecție, unire, intersecție, scădere și unire.

O proiecție este o operație care transferă coloanele relației inițiale specificate în condiția de operație în relația rezultată. Reprezentarea algebrică a proiecției are forma

T = R[X],

Unde R– atitudine initiala; T– relatia rezultata; X– lista de atribute din structura relatiei T(condiția de proiecție).

Luați în considerare relația O 1, care conține informații despre vânzările de produse în anul 2010 (Tabelul 1).

tabelul 1

Atitudine T 1, conținând doar informații despre eliberare reală produse, se obţine ca urmare a efectuării proiecţiei

T 1 = O 1[Magazin, produse, fapte]

și arată ca o masă. 2.

masa 2

Coloanele pot fi specificate în orice ordine:

T 1 = DESPRE 1 [Produse, magazin, fapt].

O selecție este o operație care transferă în relația rezultată acele rânduri din relația originală care îndeplinesc condiția de selecție. Condiția de selecție este testată pe fiecare rând al relației în mod individual și nu poate cuprinde informații pe mai multe rânduri. Există două tipuri simple de condiții de eșantionare:

1) Numele atributului 1<знак сравнения>Valoare în care sunt permise semnele de comparație =, #, >, ≥<, ≤. Например: Цена > 100.

Numele atributelor trebuie să fie conținute în structura relației sursă. Notația algebrică pentru eșantion are forma

T = R[p],

Unde R– atitudine initiala; T– relatia rezultata; R– starea de prelevare.

De exemplu, obținem valorile T 2 = DESPRE 1 [Produs = „P 1”] (Tabelul 3).

Tabelul 3

Operațiile de unire, intersecție și scădere se efectuează pe două relații originale cu aceeași structură.

Să notăm relațiile inițiale prin R 1 și R 2 , rezultanta – prin T.

O asociere T = U(R 1 , R 2) conține rânduri prezente fie în relație R 1, sau în R 2 .

Intersecție T = eu(R 1 , R 2) conține rândurile prezente în relații R 1 și R 2 în același timp.

Scădere T = M(R 1 , R 2) conține acele linii din R 1 care lipsesc în R 2 .

O operație de îmbinare a relațiilor este efectuată pe două relații sursă și creează o relație rezultantă. Fiecare rând al primei relații sursă este comparat pe rând cu toate rândurile celei de-a doua relații, iar dacă condiția de îmbinare este îndeplinită pentru această pereche de rânduri, atunci acestea sunt concatenate și formează următorul rând din relația rezultată. Condiția de conectare are forma

Numele atributului 1<знак сравнения>Nume atribut 2,

unde Numele atributului 1 este într-o relație de sursă și Numele atributului 2 este într-o altă relație. Vom folosi următoarea notație pentru operația de alăturare:

T = R l [ p] R 2 ,

Unde R 1 și R 2 – relații inițiale; T– relatia rezultata; R– starea conexiunii.

Unul dintre cele mai importante cazuri speciale de conexiune se numește conexiune naturală și are următoarele caracteristici:

– semnul de comparație în condiția de conectare este „=”;

– Numele atributului 1 și Numele atributului 2 trebuie să se potrivească, sau mai bine zis, să conțină intersecția listelor de atribute ale relațiilor sursă;

– lista de atribute ale relaţiei rezultate se formează ca urmare a combinării listelor de atribute ale relaţiilor originale.

Denumirea unui compus natural nu conține o condiție compusă și are forma T = R l* R 2 .

Abordare declarativă pentru procesare baze de date relaționale datele se bazează pe interpretarea conceptelor și metodelor logicii matematice. În special, calculul relațional se bazează pe calculul predicat. Să numim conceptele de logică matematică necesare calculului relațional.

1. Simboluri ale variabilelor și constantelor. În constructele de limbaj ale calculului relațional, acestea corespund numelor de atribute și variabile, precum și constantelor.

2. Conective logice „și”, „sau”, „nu” și semne de comparație =, # (nu este egal), >,<, ≥, ≤.

3. Termeni, adică orice constante și variabilă, precum și funcții ale căror argumente sunt termeni.

4. Formulele elementare sunt predicate ale căror argumente sunt termeni. Predicatele conectate prin operațiile „și”, „sau”, „nu” sunt, de asemenea, formule elementare. Formulele elementare sunt, de exemplu, expresiile Prenume = „Petrov” și Sumă ≤ Total.

5. Formule, adică rezultatul aplicării unor cuantificatori de generalitate sau existență la formulele elementare. Formula corespunde unei interogări la o bază de date relațională, exprimată în termeni de calcul relațional.

Sarcina principală a proiectării unei baze de date EIS este de a determina numărul de relații (sau alte unități constitutive de informații) și compoziția atributelor acestora.

Problema grupării atributelor în relații, al căror set nu este fixat în prealabil, permite multe soluții diferite. Opțiunile de grupare rațională trebuie să țină cont de următoarele cerințe:

– setul de relații trebuie să asigure redundanță minimă în prezentarea informațiilor;

– ajustarea relațiilor nu trebuie să conducă la ambiguitate sau pierdere de informații;

– restructurarea setului de relații la adăugarea de noi atribute la baza de date ar trebui să fie minimă.

Normalizare este una dintre cele mai studiate metode de transformare a relațiilor, permițând îmbunătățirea caracteristicilor bazei de date conform criteriilor enumerate.

Există multe restricții privind valorile stocate într-o bază de date relațională. Respectarea acestor restricții în anumite aspecte este asociată cu prezența așa-numitelor forme normale. Procesul de conversie a relațiilor de baze de date într-una sau alta formă normală se numește normalizare a relațiilor . Formele normale sunt numerotate secvenţial de la 1 în ordine crescătoare. Cu cât numărul de formă normală este mai mare, cu atât mai multe restricții asupra valorilor stocate trebuie respectate în privința relevantă.

Constrângerile tipice modelului de date relaționale sunt dependențele funcționale și multivalorice, precum și generalizările acestora. În principiu, setul de restricții suplimentare poate crește și, prin urmare, numărul de forme normale va crește. Restricțiile aplicate vizează reducerea informațiilor redundante din baza de date relațională.

O relație în prima formă normală (1NF) este o relație obișnuită cu o structură pe două niveluri. Următoarele forme normale (a doua și a treia) folosesc restricții asociate conceptului de dependență funcțională. Dependențe funcționale sunt definite pentru atributele care sunt în aceeași relație care satisface 1NF.

Cel mai simplu caz de dependență funcțională implică două atribute. Într-o relație R(A, B, ..., J) atribut A definește funcțional un atribut ÎN, dacă în orice moment fiecare valoare A ÎN(notat AÎN).

Cu alte cuvinte, ÎN depinde funcțional de A (ÎN = f(A)). Prima desemnare se dovedește a fi mai convenabilă atunci când numărul de dependențe funcționale crește și relațiile dintre ele devin greu de discernător; va fi folosit în viitor. Absența dependenței funcționale se notează ca AÎN.

Pentru atribute AȘi ÎN anumite relații, sunt posibile următoarele situații:

– lipsa dependenței funcționale;

- Disponibilitate AÎN(sau ÎNA), dar nu ambele dependențe împreună;

– prezența corespondenței unu-la-unu AÎN.

Conceptul de dependență funcțională se extinde la situații cu trei sau mai multe atribute în forma următoare. Grup de atribute ( A, ÎN, CU) definește funcțional atributul Dîntr-o relație T(A, B, C, D, ..., J), dacă fiecare combinație de valori<a, b, Cu> se potrivește cu o singură valoare d (A- sens A; b- sens ÎN; Cu- sens CU; d- sens D). Prezența unei astfel de dependențe funcționale va fi notată prin A, ÎN, CUD.

Existența dependențelor funcționale este asociată cu metodele de codificare a atributelor utilizate. Astfel, pentru multe instituții, se poate argumenta că fiecare departament (ca obiect al domeniului de studiu) aparține unei singure instituții. Totuși, acest lucru nu este suficient pentru a demonstra dependența funcțională a Departamentului → Instituție. Dacă în fiecare instituție departamentele sunt numerotate succesiv, începând cu 1, atunci relația funcțională este incorectă. Dacă codul departamentului, pe lângă număr, conține și codul instituției (sau unicitatea codurilor este asigurată în alt mod), atunci relația funcțională Departament → Instituție este valabilă.

Pentru un indicator cu multe atribute de atribut R = (R 1 , R 2 , ..., P n) și atributul de bază Q dependența funcțională este valabilă RQ, deși nu se poate spune că aceasta este singura dependență de atributele specificate.

Indiciu probabil relația este un astfel de set de atribute, fiecare combinație de valori care apare doar într-un rând al relației și niciun subset de atribute nu are această proprietate. Pot exista mai multe chei posibile într-o relație. Importanța lor în prelucrarea datelor este determinată de faptul că eșantionarea după o valoare cunoscută a unei chei probabile are ca rezultat un rând de relație sau niciunul.

În practică, atributele cheii probabile ale unei relații sunt asociate cu proprietățile acelor obiecte și evenimente despre care informațiile sunt stocate în relație. Dacă, ca urmare a ajustării relației, numele atributelor care formează cheia s-au schimbat, atunci informațiile vor fi serios distorsionate. Prin urmare, verificarea sistematică a proprietăților unei chei probabile face posibilă controlul fiabilității informațiilor dintr-o relație.

Când există mai multe chei candidate într-o relație, observarea lor simultană este foarte dificilă. Este recomandabil să alegeți unul dintre ele ca principal (primar). Cheia principala O relație se numește o cheie probabilă, ale cărei valori sunt folosite pentru a controla fiabilitatea informațiilor din relație.

În ceea ce privește informațiile economice, în marea majoritate a cazurilor, relațiile obținute din documentele economice existente conțin o singură cheie probabilă, care este și cheia primară. Acest lucru se datorează faptului că conținutul documentelor economice este înțeles în mod egal de toți utilizatorii. În cele ce urmează vom avea în vedere doar astfel de relații. Prezența a două sau mai multe indicii probabile într-o relație cu informații semnificative poate fi explicată prin prezența mai multor modalități posibile de interpretare a acelorași date. Cheia primară este adesea numită pur și simplu cheie.

În relațiile cu un număr mare de rânduri, găsirea cheii primare prin aplicarea directă a definiției este destul de dificilă. În plus, în etapa de proiectare EIS, valorile multor relații sunt pur și simplu necunoscute, astfel încât practic cheia primară a unei relații este calculată pe baza dependențelor funcționale existente.

Fiecare valoare a cheii primare apare într-un singur rând al relației. Valoarea oricărui atribut din această linie este, de asemenea, unică. Dacă prin LA denotă atributele cheii primare în relație R(A, B, C, ..., J), atunci sunt valabile următoarele dependențe funcționale: LAA, LAÎN, LACU, ..., LAJ. Un set de atribute ale cheii primare definește funcțional orice atribut al unei relații. Este adevărat și invers: dacă se găsește un grup de atribute care definește funcțional toate atributele unei relații în mod individual, iar acest grup nu poate fi redus, atunci se găsește cheia primară a relației.

Pentru setul inițial de dependențe funcționale, există o serie de modele, cunoașterea cărora permite obținerea de dependențe derivate. Să notăm câteva dintre ele:

- Dacă A, ÎNA, apoi A, ÎNÎN;

- AÎNȘi ACU atunci și numai când ASoare;

- Dacă AÎNȘi ÎNCU, Acea ACU;

- Dacă AÎN, Acea ACÎN (CU arbitrar);

- Dacă AÎN, Acea ACSoare (CU arbitrar);

- Dacă AÎNȘi SoareD, Acea ACD.

Dacă se știe dinainte că există o singură cheie probabilă într-o relație, atunci aceasta poate fi găsită într-un mod simplu. O cheie probabilă (dacă este unică, adică se potrivește cu cheia primară) este un set de atribute care nu apar în partea dreaptă a tuturor dependențelor funcționale. Cu alte cuvinte, din lista completă a atributelor relației, este necesar să ștergeți atributele găsite în partea dreaptă a tuturor dependențelor funcționale. Atributele rămase formează cheia primară.

O relație este în a doua formă normală (2NF) dacă corespunde cu 1NF și nu conține dependențe funcționale incomplete.

O dependență funcțională incompletă constă din două dependențe:

– o cheie de relație probabilă definește funcțional un atribut non-cheie,

– o parte a cheii probabile definește funcțional același atribut non-cheie.

O relație care nu respectă 2NF este caracterizată de redundanța datelor stocate. O bază de date este în 2NF dacă toate relațiile sale sunt în 2NF.

O relație corespunde cu 3NF dacă corespunde cu 2NF și nu există dependențe funcționale tranzitive (FD) printre atributele sale.

Legea federală tranzitivă include două legi federale:

– o cheie de relație probabilă definește funcțional un atribut non-cheie;

– Acest atribut definește funcțional un alt atribut non-cheie.

Dacă LA- cheia relației, A, ÎN– atribute non-cheie și LAA, AÎN sunt legi federale corecte, atunci sunt tranzitive. Un caz special de lege federală tranzitivă este o lege federală incompletă, când LA = CU, EȘi LAE, EA.

O bază de date este în 3NF dacă toate relațiile sale sunt în 3NF.

O bază de date relațională, corespunzătoare în general celei de-a treia forme normale, este caracterizată de o serie de proprietăți, cunoașterea cărora facilitează și eficientizează procesele de prelucrare a datelor. Implementarea interogărilor bazei de date folosind operatori de algebră relațională poate fi descrisă prin următoarele reguli.

1. În formularea verbală a cererii, evidențiați denumirile atributelor care alcătuiesc shell-ul, intrarea și ieșirea cererii, precum și condițiile de selecție.

2. Remediați multe atribute shell. Dacă toate atributele necesare sunt într-o singură relație, atunci operațiunile ulterioare de selecție și proiecție sunt efectuate numai cu aceasta. Dacă atributele necesare sunt distribuite în mai multe relații, atunci aceste relații trebuie să fie conectate. Fiecare pereche de relații este conectată prin condiția de egalitate a atributelor cu nume potrivite (sau definite pe un domeniu comun). După fiecare conexiune, folosind proiecția, puteți tăia atributele care nu sunt necesare pentru operațiunile ulterioare.

4. Dacă o interogare poate fi împărțită în părți (subinterogări), atunci implementarea ei este de asemenea împărțită în părți, unde rezultatul fiecărei subinterogări este o relație separată.

5. Această secvență de acțiuni este standard, dar poate crea relații intermediare prea mari. Acest dezavantaj poate fi compensat prin efectuarea unor selecții și proiecții asupra relațiilor originale (înainte de a face îmbinarea) și modificarea ordinii relative a îmbinărilor necesare.

Baza de date a rețelei este reprezentat ca un ansamblu de relaţii şi relaţii cu fanii. Relațiile sunt împărțite în primare și dependente.

Relația cu fanii W(R, S) este o pereche de relații constând dintr-un singur principal ( R), o relație de dependență ( S) și conexiunile dintre acestea, cu condiția ca fiecare valoare a relației de dependență să fie asociată cu o singură valoare a relației principale. Această condiție este o caracteristică de limitare a modelului de date de rețea în ansamblu. Modul de implementare a acestei limitări în memoria computerului este diferit pentru diferitele SGBD de rețea.

Operațiile permise în modelul de date de rețea reprezintă diferite opțiuni de eșantionare.

Bazele de date de rețea, în funcție de restricțiile privind intrarea relațiilor în relațiile cu fanii, sunt împărțite în rețele cu două niveluri și mai multe niveluri.

O limitare a rețelelor pe două niveluri este că fiecare relație poate exista în unul dintre următoarele roluri:

– în afara oricărei relații cu fanii;

– ca relație principală în orice număr de relații cu fani;

– ca o relație dependentă în orice număr de relații cu fani.

Este interzis ca o relație să existe ca una principală într-un context și în același timp ca una dependentă în altul.

Rețelele cu mai multe niveluri nu prevăd nicio restricție privind interconectarea relațiilor cu ventilatoarele; în unele SGBD-uri de rețea sunt permise chiar și structurile de rețea ciclice.

Pentru SGBD-urile de rețea cu două niveluri sunt introduse încă două restricții (din punct de vedere teoretic, opțional):

– cheia primară a relației principale nu poate fi decât cu un singur atribut;

– există o relație ventilator dacă cheia primară a relației principale face parte din cheia primară a relației dependente.

Pentru a organiza o relație în formă de evantai în memoria computerului, în structura relațiilor principale și dependente este introdus un atribut suplimentar numit adresa de comunicare. Valorile adresei de comunicare lucrează împreună pentru a se asigura că fiecare valoare a relației dependente corespunde într-o relație de ventilator S la o singură valoare a relaţiei principale R.

Valoarea unui raport atunci când este stocată în memoria computerului este adesea numită înregistrare. Adresa de comunicare este un atribut dintr-o înregistrare care stochează adresa de pornire sau numărul următoarei înregistrări care urmează să fie procesată.

Legătura dintre valorile relației dependente și valoarea unică a relației principale în cel mai simplu caz se asigură după cum urmează. Adresa de legătură a unei anumite înregistrări de relație principală indică una dintre înregistrările de relație dependentă (valoarea adresei de legătură a relației principale este adresa de pornire a acelei înregistrări de relație dependentă), adresa de legătură a înregistrării de relație dependentă specificată indică către următoarea înregistrarea relației dependente asociată cu aceeași înregistrare a relației principale și etc. Ultima înregistrare a relației dependente din acest lanț se adresează înregistrării relației principale numite mai sus. Acest lucru are ca rezultat o structură de inel de adrese de comunicație numite ca un ventilator, unde rolul „mânerului” ventilatorului este jucat de înregistrarea relației principale. În ilustrațiile grafice, adresa de comunicare este reprezentată de o săgeată direcționată de la adresa de comunicare a unei înregistrări date către înregistrarea a cărei adresă de început (număr) servește ca valoare a acestei adrese de comunicare.

Există convenții standard pentru cum să includeți și să excludeți datele într-o relație cu fanii. Metoda de activare poate fi caracterizată ca automată sau neautomată.

Metoda automată indică faptul că atunci când apare o nouă valoare a relației principale, aceasta este imediat pusă în corespondență cu o anumită valoare a relației dependente și formează un nou element al relației ventilator. Nerespectarea acestei reguli este tipică pentru metoda neautomată.

Metodele de excludere pot fi obligatorii sau opționale. În metoda obligatorie, odată ce o valoare este inclusă în relația principală, aceasta devine membru permanent al relației principale. Poate fi actualizat, dar nu poate fi eliminat din relație. Metoda opțională vă permite să eliminați orice valoare din relația de bază.

Din analogia definițiilor unei relații de ventilator și a dependenței funcționale, urmează afirmația: dacă există o relație de ventilator, atunci cheia relației de dependență determină funcțional cheia relației principale și invers, dacă cheia uneia relația determină funcțional cheia celei de-a doua relații, atunci prima relație poate fi dependentă, iar a doua – principală într-un fel de ventilator.

Într-o diagramă a bazei de date de rețea, relațiile și relațiile cu fanii sunt adesea tratate ca fișiere și conexiuni, ceea ce permite ca structura rețelei să fie vizualizată ca un set de fișiere

F = {F l ( X 1), F 2 (X 2), ..., F i(X i), ..., Fn(X n)},

Unde X i– atributele cheie din fișier F i.

În plus, este introdus un grafic al structurii rețelei ÎN cu vârfuri ( X eu X 2 , ..., X i, ..., X n). Arc<X i, Xj> în coloană ÎN există dacă X i este o parte XjȘi Fj[X i] este un submult F i. Ultima condiție are același sens ca și includerea sintactică a relațiilor în modelul de date relaționale. Aceasta presupune că cheia fișierului principal este conținută în fișierul dependent. Grafic ÎN similar cu graficul de conexiune pentru o bază de date relațională.

Bază de date DBA numit aciclic, dacă se află între oricare două vârfuri ale graficului ÎN există cel mult o cale. Rețelele cu două straturi sunt întotdeauna aciclice .

Pentru multe fișiere F bază de date aciclică DBA operațiunea este destul de aplicabilă

m(DBA) = F 1 & F 2 & ... & F i & ...& Fn,

numit intersecție maximă. Analogul său poate fi o secvență de conexiuni într-o bază de date relațională.

În SGBD-urile de rețea, numărul operațiunilor de eșantionare este destul de mare. Funcțiile de operare de proiecție pentru un SGBD de rețea realizează descrierea unei subscheme a bazei de date de rețea. O schemă de bază de date de rețea este o descriere a tuturor relațiilor care indică compoziția atributelor și cheile fiecărei relații, precum și relațiile cu fanii. În programul de aplicație, este posibil să se declare o parte din relațiile unei baze de date de rețea, în fiecare relație - un anumit subset de atribute (cu reținerea obligatorie a atributelor cheie) și doar unele relații de fan. Descrierea corespunzătoare a datelor se numește subschemă. Relațiile, relațiile cu fanii și atributele care nu sunt specificate în subschemă devin inaccesibile pentru programul de aplicație. Spre deosebire de operația de proiecție, baza de date corespunzătoare subschemei nu este creată fizic, ci prin restricționarea accesului la baza de date sursă, care este definită în schemă.

Rezultatele conexiunilor valide sunt de fapt înregistrate în rețeaua SGBD folosind lanțuri de adrese de comunicație. Accesul la rezultatele unei posibile îmbinări începe de la o relație principală la un evantai de valori în relația dependentă corespunzătoare, valorile cheie obținute în relația dependentă sunt reținute și utilizate pentru căutarea în altă relație principală; din această relație principală este posibilă o trecere la una nouă dependentă etc.

Model ierarhic datele au multe asemănări cu modelul de date de rețea; din punct de vedere cronologic, acestea au apărut chiar mai devreme. Structurile de informații valide în modelul de date ierarhice sunt relația, relația cu fanii și baza de date ierarhică. Spre deosebire de modelele de date discutate anterior, în care se presupunea că maparea informațiilor dintr-un domeniu este o bază de date, modelul ierarhic permite maparea unui domeniu în mai multe baze de date ierarhice.

Conceptele de relație și relație de ventilator din modelul de date ierarhic nu se schimbă.

O bază de date ierarhică este un set de relații și relații de fani pentru care sunt îndeplinite două restricții:

1) există o singură relație, numită rădăcină, care nu este dependentă în nicio relație de fan;

2) toate celelalte relații (cu excepția rădăcinii) sunt relații dependente într-o singură relație de ventilator.

Schema bazei de date ierarhice este identică ca compoziție cu cea a bazei de date din rețea. Restricțiile de mai sus sunt acceptate de SGBD-uri ierarhice.

Constrângerea care se menține în modelul de date ierarhice este că este imposibil să se încalce cerințele care apar în definiția bazei de date ierarhice. Această limitare este asigurată de o aranjare specială a valorilor relației în memoria computerului. Mai jos ne vom uita la una dintre cele mai simple implementări ale amenajării unei baze de date ierarhice.

Trebuie remarcat faptul că există diverse posibilități de trecere prin valorile organizate ierarhic într-o secvență liniară. Principiul folosit pentru bazele de date ierarhice este numit sfârşitul trecerii. Să enumerăm regulile acestuia.

1. Pornind de la prima valoare a relației rădăcină, sunt enumerate primele valori ale relațiilor corespunzătoare la fiecare nivel, până la ultimul.

2. Sunt listate toate valorile din relația ventilatorului unde s-a oprit pasul 1.

3. Sunt enumerate valorile tuturor fanilor acestei relații de fani.

4. De la nivelul atins are loc ridicarea la nivelul anterior, iar dacă este posibil să se aplice pasul 1, atunci procesul se repetă.

O înregistrare ierarhică a bazei de date este un set de valori care conține o valoare a relației rădăcină și toți fanii care se extind din aceasta, în conformitate cu structura bazei de date ierarhice. În exemplul nostru, o înregistrare constă din date referitoare la o facultate (vezi Fig. 11).

Pentru relațiile fan din cadrul unei baze de date ierarhice, modelul deja cunoscut este valabil: dacă există o relație fan, atunci cheia relației dependente determină funcțional cheia relației principale. Și invers: dacă cheia unei relații determină funcțional cheia celei de-a doua relații, atunci prima relație poate fi dependentă, iar a doua – cea principală într-o relație de ventilator.

În plus, constrângerea că există o singură relație rădăcină într-o bază de date ierarhică se traduce prin cerința ca cheia primară a fiecărei relații non-rădăcină trebuie să definească funcțional cheia primară a relației rădăcină.

Algoritmul pentru obținerea structurii unei baze de date ierarhice a fost elaborat de A.I. Mișenin.

Atunci când se compară modele de date, este foarte dificil să se separe factorii care caracterizează caracteristicile fundamentale ale modelului de factorii asociați cu implementarea acestor modele de date folosind SGBD-uri specifice.

Având în vedere avantajele și dezavantajele celor mai faimoase modele de date, este de remarcat o serie de avantaje neîndoielnice ale abordării relaționale:

– simplitate: în modelul relațional există o singură structură informațională, care formalizează prezentarea tabelară a datelor, familiară utilizatorilor economiști;

– justificare teoretică: prezența unor metode argumentate teoretic pentru normalizarea relațiilor și verificarea aciclicității structurii face posibilă obținerea bazelor de date cu caracteristicile cerute;

– independența datelor: modificarea structurii unei baze de date relaționale, de regulă, duce la modificări minime în programele de aplicație.

Printre dezavantajele modelului de date relaționale se numără următoarele:

– viteza redusa la efectuarea unei operatii de conectare;

– consum mare de memorie pentru reprezentarea unei baze de date relaționale. Deși designul în 3NF este proiectat pentru o redundanță minimă (fiecare fapt este reprezentat o dată în baza de date), alte modele de date în aceleași condiții asigură un consum mai mic de memorie. De exemplu, lungimea unei adrese de comunicare este de obicei mult mai scurtă decât lungimea valorii unui atribut.

Avantajele unui model de date ierarhice sunt:

– simplitate: deși modelul folosește trei structuri informaționale, principiul ierarhic al subordonării conceptelor este firesc pentru multe sarcini economice (de exemplu, pentru organizarea raportării statistice);

– consum minim de memorie: pentru sarcini care pot fi implementate folosind oricare dintre cele trei modele de date, modelul ierarhic vă permite să obțineți o reprezentare cu memoria minimă necesară.

Dezavantajele modelului ierarhic:

– non-universalitate: multe opțiuni importante pentru interconectarea datelor nu pot fi implementate folosind un model ierarhic fără creșterea redundanței în baza de date;

– admisibilitatea numai a principiului de navigare al accesului la date;

– datele sunt accesate numai prin relația rădăcină.

Trebuie remarcate următoarele avantaje ale modelului de date de rețea:

– universalitate: capacitățile expresive ale modelului de date de rețea sunt cele mai extinse în comparație cu alte modele;

– capacitatea de a accesa date prin valorile mai multor relații (de exemplu, prin orice relații principale).

Dezavantajele modelului de date de rețea includ:

– complexitatea, adică abundența conceptelor, variantele relațiilor acestora și caracteristicile implementării;

– admisibilitatea numai a principiului de navigare al accesului la date.

Rezultatele obținute pentru bazele de date aciclice sugerează că bazele de date relaționale aciclice, bazele de date de rețea cu două niveluri și o bază de date ierarhică fără conexiuni logice au capabilități echivalente de prezentare a informațiilor.

Analiza modelelor de date nu a abordat problema ordonării valorilor în relațiile cu bazele de date. Pentru modelul relațional, această ordonare este opțională din punct de vedere teoretic, dar în celelalte două modele este utilizată pe scară largă pentru a îmbunătăți eficiența implementării interogărilor.

Alegerea finală a unui model de date este influențată de mulți factori suplimentari, de exemplu, disponibilitatea SGBD-urilor bine dovedite, calificările programatorilor de aplicații, dimensiunea bazei de date etc.

Recent, SGBD-urile relaționale au ocupat o poziție predominantă ca mijloc de dezvoltare a sistemelor informatice electronice. Dezavantajele modelului relațional sunt compensate de creșterea vitezei și a resurselor de memorie ale computerelor moderne. Datorită proceselor de descentralizare a managementului din economie, multe baze de date EIS au o structură simplă care se transformă ușor în sisteme de tabele (relații) ușor de înțeles.

Testați întrebări și sarcini

1. Enumerați cele mai cunoscute tipuri de modele de date.

2. Explicați modelele de date ierarhice și de rețea. Care sunt asemănările și diferențele lor?

3. Descrieți modelul relațional.

4. Descrieți modelul binar și domeniul său de aplicare.

5. Care sunt specificul rețelelor semantice și scopul lor?

6. Enumerați constructe de informații pentru diverse tehnologii.

7. Numiți componentele modelului de date relaționale.

8. Definiți tuplu și relație.

9. În ce moduri poate fi descrisă procesarea relațională?

10. Dezvăluie esența descrierii procedurale a proceselor de prelucrare a datelor.

11. Explicați abordarea declarativă a procesării bazelor de date relaționale.

12. Ce este normalizarea relațiilor?

13. Câte atribute există în cea mai simplă dependență funcțională?

14. Definiți dependența funcțională a atributelor din perspectiva abordării relaționale.

15. Ce este o cheie de relație probabilă?

16. Ce este o cheie primară? Care este alt nume pentru ea?

17. Explicați tiparele pentru multe dependențe funcționale.

18. Descrie a doua și a treia formă normală de relație.

19. Explicați accesul la o bază de date relațională.

20. Numiți structurile informaționale din modelul de rețea.

21. Ce este o „atitudine de fan”?

22. Dați o definiție a rețelelor cu două niveluri.

23. Definiți rețele cu mai multe niveluri.

24. Ce este o „adresă de comunicare”?

25. Ce se numește „ventilator”?

26. Ce componente conține o schemă de bază de date de rețea?

27. Ce convenții standard cunoașteți despre cum să includeți și să excludeți date într-o relație cu fanii?

28. Ce sunt fișierele și linkurile?

29. Ce este „intersecția maximă”?

30. Numiţi structurile informaţionale din modelul ierarhic.

31. Definiți o bază de date ierarhică.

32. Vorbește-ne despre regulile de trecere finală.

33. Definiți o înregistrare de bază ierarhică.

34. Numiți avantajele și dezavantajele abordării relaționale.

35. Enumerați avantajele și dezavantajele modelului ierarhic.

36. Descrieți punctele forte și punctele slabe ale modelului de date în rețea.

38. Finalizați sarcinile 2.1–2.20 privind operațiunile privind relațiile din atelier.

39. Finalizați sarcinile 2.21–2.32 pe tema „Dependențe și chei funcționale” din atelier.

40. Completați sarcinile 2.33–2.60 pe tema „Forme normale de relații” din atelier.

41. Efectuați sarcinile 2.61–2.71 pe tema „Baze de date aciclice” din atelier.

42. Finalizați sarcinile 2.72–2.93 pe tema „Modele de date de rețea și ierarhice” din atelier.

Tipuri de modele de date de baze de date

Modele de organizare a datelor. Modele de rețea, relaționale, ierarhice.

Miezul oricărei baze de date este modelul de date. Folosind un model de date, obiectele de domeniu și relațiile dintre ele pot fi reprezentate.

Model de date este un set de structuri de date și operațiunile lor de prelucrare. Să ne uităm la trei tipuri principale de modele de date: ierarhice, de rețea și relaționale.

Tipuri de modele de date de baze de date

Ierarhic Modelul bazei de date este reprezentat ca un arbore. Nodurile de arbore reprezintă o colecție de date, cum ar fi înregistrările logice.

Model ierarhic este un ansamblu de elemente dispuse în ordinea subordonării lor de la general la specific și formând un arbore (graf) inversat în structură.

Conceptele de bază ale unei structuri ierarhice includ nivelul, nodul și relația. Nod este o colecție de atribute de date care descriu un obiect. Într-o diagramă arborescentă ierarhică, nodurile sunt reprezentate ca vârfuri în grafic. Fiecare nod de la un nivel inferior este conectat doar la un singur nod de la un nivel superior. Un arbore ierarhic are un singur vârf, care nu este subordonat niciunui alt vârf și este situat la cel mai de sus - primul nivel. Nodurile dependente (slave) sunt la nivelul al doilea, al treilea etc. Numărul de arbori din baza de date este determinat de numărul de înregistrări rădăcină. Pentru fiecare înregistrare de bază de date, există o singură cale ierarhică de la înregistrarea rădăcină.

Reţea Modelele DB corespund unei clase mai largi de obiecte de management, deși necesită costuri suplimentare pentru organizarea lor.

În structura rețelei cu aceleași concepte de bază (nivel, nod, conexiune), fiecare element poate fi conectat la orice alt element.

Relațional Modelul bazei de date reprezintă obiecte și relații dintre ele sub formă de tabele, iar toate operațiunile asupra datelor sunt reduse la operații pe aceste tabele. Aproape toate SGBD-urile moderne se bazează pe acest model. Acest model este mai ușor de înțeles și mai „transparent” pentru utilizatorul final al organizației de date.

Model relațional prezintă obiectele de date și conexiunile dintre ele sub formă de tabele, în timp ce conexiunile sunt considerate și ca obiecte. Toate rândurile care alcătuiesc un tabel dintr-o bază de date relațională trebuie să aibă o cheie primară. Toate instrumentele SGBD moderne acceptă modelul de date relaționale.

Acest model se caracterizează prin simplitatea structurii datelor, reprezentarea tabelară ușor de utilizat și capacitatea de a utiliza aparatul formal al algebrei relaționale și calculului relațional pentru procesarea datelor.

Fiecare tabel relațional este o matrice bidimensională și are următoarele proprietăți:

1. Fiecare element de tabel corespunde unui element de date.

2. Toate coloanele din tabel sunt omogene, i.e. toate elementele dintr-o coloană au același tip și lungime.

3. Fiecare coloană are un nume unic.

4. Nu există rânduri identice în tabel;

5. Ordinea rândurilor și coloanelor poate fi arbitrară.

Clasificarea modelelor de date se bazează pe concepte de interconectare a obiectelor. Pot exista patru tipuri de relații diferite între tabelele bazei de date: „unu la unu”; „unu la mulți”; „mulți la mulți”.

Cu respect "unu la unu » În fiecare moment, o înregistrare a tabelului „1” corespunde nu mai mult de o înregistrare a tabelului „2”. De exemplu, un client corespunde unei singure camere de hotel. Acest tip de relație nu este folosit foarte des, deoarece astfel de date pot fi plasate într-un singur tabel. Această relație este folosită pentru a împărți tabele foarte largi, de exemplu, pentru a împărți un tabel cu informații despre angajații unei companii în două - informații oficiale și personale.

Legătura cu atitudinea" unu la multi» caracterizează faptul că o instanță a obiectului informațional „1” corespunde la 0,1,2 sau mai multe instanțe ale obiectului „2”. O astfel de relație există, de exemplu, între tabelele „Furnizori” și „Produse”, adică Fiecare furnizor poate vinde produse diferite, dar fiecare produs are un singur furnizor.

Atitudine" multi la multi» presupune că la un moment dat o înregistrare a tabelului „1” corespunde mai multor instanțe ale tabelului „2” și invers. Un exemplu este conexiunea dintre obiectele informaționale „Client” și „Bancă”. Un client stochează fonduri în multe bănci. O bancă deservește mulți clienți. Relația este implementată folosind un al treilea tabel (de legătură), a cărui cheie constă din cel puțin două câmpuri care sunt câmpuri de cheie străină în tabelele sursă.

Există trei tipuri principale de modele de date.

Model ierarhic. Acesta presupune organizarea datelor sub forma unei structuri arborescente. Un arbore este o ierarhie de elemente. La nivelul cel mai de sus al structurii se află rădăcina copacului. Un arbore poate avea o singură rădăcină, restul sunt noduri numite noduri copil. Fiecare nod are un nod sursă deasupra lui.

O bază de date ierarhică reprezintă atât un ansamblu de relații, cât și relații fan pentru care se observă două restricții: există o singură relație, numită rădăcină, care nu este dependentă de nicio relație fan; toate celelalte relații (cu excepția rădăcinii) sunt relații dependente într-o singură relație de ventilator.

O înregistrare ierarhică a bazei de date este un set de valori care conține o valoare a relației rădăcină și toți fanii accesibili din aceasta. În exemplul nostru, înregistrarea constă din date referitoare la o facultate.

Model de rețea. Modelul se bazează pe structuri de rețea în care orice element poate fi conectat la orice alt element. Structurile informaționale din model sunt relații și relații cu fanii. Acestea din urmă sunt împărțite în de bază și dependente. Atitudinea fanului W(R,S) numită pereche de relații RȘi Sși relația dintre ele, cu condiția ca fiecare valoare S asociat cu un singur sens R. Atitudine R se numește originalul (de bază) și S- generat (dependent).

Un atribut suplimentar numit adresa link este introdus în structura relațiilor principale și dependente, care asigură că fiecare valoare a relației dependente corespunde S cu o singură valoare a relaţiei principale R. Adresa de comunicare stochează adresa de pornire sau numărul următoarei înregistrări care urmează să fie procesată. Structura de inel a adreselor de comunicare este numită ca un ventilator. Rolul „mânerului” ventilatorului este jucat de înregistrarea relației principale.

Dezavantajul modelelor de date discutate mai sus este că la adăugarea de noi vârfuri sau stabilirea de noi conexiuni apar probleme în descărcarea datelor din baza de date și încărcarea acestora într-o nouă structură. Acest lucru poate duce la pierderea datelor sau la apariția unor valori de date nedefinite.

Model relațional. Structura de date a acestui model se bazează pe aparatul algebrei relaționale și al teoriei normalizării. Modelul presupune utilizarea de tabele (relații) bidimensionale.

Limitări ale relațiilor model relațional : fiecare element de tabel este un element de date simplu; nu există rânduri identice în tabel; coloanelor (câmpurilor) li se atribuie nume unice; toate rândurile tabelului au aceeași structură; Într-un tabel, ordinea rândurilor și coloanelor este arbitrară.

Relația dintre tabele se realizează prin valorile unuia sau mai multor câmpuri de potrivire. Fiecare rând al unui tabel dintr-o bază de date relațională este unic. Pentru a asigura unicitatea rândurilor, se folosesc chei care conțin unul sau mai multe câmpuri de tabel. Cheile sunt stocate într-un mod organizat, permițând accesul direct la înregistrările din tabel în timpul căutărilor.