modelul relațional a bazelor de date este o metodă de structurare a datelor folosind relații, folosind structuri asemănătoare grilei, constând din coloane și rânduri. Este principiul conceptual al bazelor de date relaționale. A fost propus de Edgar F. Codd în 1969.
De atunci a devenit modelul de bază de date dominant pentru aplicațiile de afaceri, în comparație cu alte modele de baze de date, cum ar fi ierarhizarea, rețeaua și obiectul..
Codd habar nu avea cât de extrem de vitală și de influentă ar fi munca sa de platformă pentru baze de date relaționale. Majoritatea oamenilor sunt foarte familiarizați cu expresia fizică a unei relații dintr-o bază de date: tabelul.
Modelul relațional este definit ca baza de date care permite gruparea elementelor sale de date într-unul sau mai multe tabele independente, care pot fi legate între ele prin utilizarea câmpurilor comune fiecărui tabel conex..
Indice articol
Un tabel de baze de date este similar cu o foaie de calcul. Cu toate acestea, relațiile care pot fi create între tabele permit unei baze de date relaționale să stocheze eficient o cantitate mare de date, care pot fi recuperate în mod eficient..
Scopul modelului relațional este de a oferi o metodă declarativă pentru specificarea datelor și a interogărilor: utilizatorii declară direct ce informații conține baza de date și ce informații doresc de la aceasta.
Pe de altă parte, acestea permit software-ului sistemului de gestionare a bazelor de date să fie responsabil de descrierea structurilor de date pentru stocare și a procedurii de recuperare pentru a răspunde la întrebări..
Majoritatea bazelor de date relaționale utilizează limbajul SQL pentru interogarea și definirea datelor. În prezent există multe sisteme de gestionare a bazelor de date relaționale sau RDBMS (Sistem de gestionare a bazelor de date relaționale), cum ar fi Oracle, IBM DB2 și Microsoft SQL Server.
- Toate datele sunt reprezentate conceptual ca o aranjare ordonată a datelor în rânduri și coloane, numite relație sau tabel.
- Fiecare masă trebuie să aibă un antet și un corp. Antetul este pur și simplu lista de coloane. Corpul este setul de date care umple tabelul, organizat în rânduri.
- Toate valorile sunt scalare. Adică, la orice poziție dată de rând / coloană din tabel, există doar o singură valoare.
Figura următoare prezintă un tabel cu numele elementelor sale de bază, care alcătuiesc o structură completă.
Fiecare rând de date este un tuplu, cunoscut și sub numele de înregistrare. Fiecare rând este un n-tuplu, dar „n-” este în general aruncat.
Fiecare coloană dintr-un tuplu se numește atribut sau câmp. Coloana reprezintă setul de valori pe care le poate avea un anumit atribut.
Fiecare rând are una sau mai multe coloane numite cheie de tabel. Această valoare combinată este unică pentru toate rândurile dintr-un tabel. Prin intermediul acestei taste, fiecare tuplu va fi identificat în mod unic. Adică, cheia nu poate fi duplicată. Se numește cheia primară.
Pe de altă parte, o cheie străină sau secundară este câmpul dintr-un tabel care se referă la cheia primară a altui tabel. Folosit pentru a face referire la tabelul principal.
Când proiectați modelul relațional, definiți câteva condiții care trebuie îndeplinite în baza de date, numite reguli de integritate.
Cheia principală trebuie să fie unică pentru toate tuplurile și nu poate fi nulă. În caz contrar, nu veți putea identifica în mod unic rândul.
Pentru o cheie cu mai multe coloane, niciuna dintre aceste coloane nu poate conține NULL.
Fiecare valoare a unei chei străine trebuie să se potrivească cu o valoare a cheii primare a tabelului de referință sau primar.
Un rând cu o cheie străină poate fi inserat în tabelul secundar numai dacă acea valoare există într-un tabel principal.
Dacă valoarea cheii se modifică în tabelul părinte, prin actualizarea sau ștergerea rândului, atunci toate rândurile din tabelele copil cu această cheie străină ar trebui actualizate sau șterse în consecință.
Datele necesare trebuie colectate pentru a fi stocate în baza de date. Aceste date sunt împărțite în diferite tabele.
Trebuie ales un tip de date adecvat pentru fiecare coloană. De exemplu: numere întregi, numere cu virgulă mobilă, text, dată etc..
Pentru fiecare tabel, trebuie aleasă o coloană (sau câteva coloane) ca cheie principală, care va identifica în mod unic fiecare rând din tabel. Cheia principală este, de asemenea, utilizată pentru a face referire la alte tabele.
O bază de date formată din tabele independente și fără legătură are un scop redus.
Cel mai crucial aspect în proiectarea unei baze de date relaționale este identificarea relațiilor dintre tabele. Tipurile de relații sunt:
Într-o bază de date „Listare clase”, un profesor poate preda zero sau mai multe clase, în timp ce o clasă este predată de un singur profesor. Acest tip de relație este cunoscut ca unul-la-mulți..
Această relație nu poate fi reprezentată într-un singur tabel. În baza de date „Lista claselor” puteți avea un tabel numit Profesori, care stochează informații despre profesori.
Pentru a stoca cursurile predate de fiecare profesor, puteți crea coloane suplimentare, dar vă veți confrunta cu o problemă: câte coloane să creați.
Pe de altă parte, dacă aveți un tabel numit Clase, care stochează informații despre o clasă, puteți crea coloane suplimentare pentru a stoca informații despre profesor..
Cu toate acestea, întrucât un profesor poate preda în multe clase, datele sale ar fi duplicate în mai multe rânduri ale tabelului Classes.
Prin urmare, trebuie proiectate două tabele: o tabelă Classes pentru a stoca informații despre clase, cu Class_Id ca cheie primară și o tabelă Teachers pentru a stoca informații despre profesori, cu Teacher_Id ca cheie primară..
Apoi, relația unu-la-mulți poate fi creată prin stocarea cheii primare a tabelului Master (Master_Id) în tabelul Classes, așa cum este ilustrat mai jos.
Coloana Master_Id din tabelul Classes este cunoscută ca cheie străină sau cheie secundară.
Pentru fiecare valoare Master_Id din tabelul Master, pot fi zero sau mai multe rânduri în tabelul Classes. Pentru fiecare valoare Class_Id din tabelul Classes, există un singur rând în tabelul Teachers.
Într-o bază de date „Vânzare produs”, comanda unui client poate conține mai multe produse, iar un produs poate apărea în mai multe comenzi. Acest tip de relație este cunoscut la fel de multe pentru mulți.
Puteți începe baza de date „Vânzări produse” cu două tabele: Produse și Comenzi. Tabelul Produse conține informații despre produse, cu ID-ul produsului ca cheie principală.
Pe de altă parte, tabelul Comenzi conține comenzile clientului, cu ID-ul comenzii ca cheie principală.
Nu puteți stoca produsele comandate în tabelul Comenzi, deoarece nu știți câte coloane să rezervați pentru produse. Nici comenzile nu pot fi stocate în tabelul Produse din același motiv.
Pentru a susține o relație de mai mulți la mulți, trebuie să creați un al treilea tabel, cunoscut sub numele de tabel de asociere (OrderDetails), în care fiecare rând reprezintă un articol într-o anumită ordine.
Pentru tabelul OrderDetails, cheia principală constă din două coloane: orderID și productID, identificând în mod unic fiecare rând.
Coloanele orderID și productID din tabelul OrderDetails sunt folosite pentru a face referință la tabelele Comenzi și produse. Prin urmare, acestea sunt, de asemenea, chei străine în tabelul OrderDetails..
În baza de date „Vânzarea produselor”, un produs poate avea informații opționale, cum ar fi descrierea suplimentară și imaginea acestuia. Păstrarea acestuia în tabelul Produse ar genera o mulțime de spații goale.
Prin urmare, se poate crea un alt tabel (ProductExtras) pentru a stoca datele opționale. O singură înregistrare va fi creată pentru produsele cu date opționale.
Cele două tabele, Produse și Produse Extras, au o relație de la unu la unu. Pentru fiecare rând din tabelul Produse există un maxim de un rând în tabelul ProductExtras. Același ID produs trebuie utilizat ca cheie primară pentru ambele tabele.
În modelul bazei de date relaționale, modificările în structura bazei de date nu afectează accesul la date.
Când este posibil să se facă modificări în structura bazei de date fără a afecta capacitatea SGBD de a accesa datele, se poate spune că sa realizat independența structurală.
Modelul bazei de date relaționale este chiar mai simplu din punct de vedere conceptual decât modelul de baze de date ierarhice sau de rețea.
Deoarece modelul bazei de date relaționale eliberează proiectantul de detaliile stocării fizice a datelor, proiectanții se pot concentra asupra vizualizării logice a bazei de date.
Modelul bazei de date relaționale realizează atât independența datelor, cât și independența structurii, ceea ce face proiectarea, întreținerea, administrarea și utilizarea bazei de date mult mai ușoare decât celelalte modele..
Prezența unei capacități de interogare foarte puternice, flexibile și ușor de utilizat este unul dintre principalele motive pentru popularitatea imensă a modelului de baze de date relaționale.
Limbajul de interogare al modelului de baze de date relaționale, numit Structured Query Language sau SQL, face interogările ad-hoc o realitate. SQL este un limbaj de a patra generație (4GL).
Un 4GL permite utilizatorului să specifice ce ar trebui făcut, fără a specifica cum ar trebui făcut. Astfel, cu SQL, utilizatorii pot specifica ce informații doresc și pot lăsa detaliile despre cum să obțină informațiile în baza de date.
Modelul bazei de date relaționale ascunde complexitățile implementării sale și detaliile stocării fizice a datelor utilizatorului.
Pentru a face acest lucru, sistemele de baze de date relaționale au nevoie de computere cu dispozitive hardware și de stocare a datelor mai puternice..
Prin urmare, RDBMS are nevoie de mașini puternice pentru a funcționa fără probleme. Cu toate acestea, întrucât puterea de procesare a computerelor moderne crește într-un ritm exponențial, nevoia de mai multă putere de procesare în scenariul actual nu mai este o problemă foarte mare..
Baza de date relațională este ușor de proiectat și de utilizat. Utilizatorii nu trebuie să cunoască detaliile complexe ale stocării datelor fizice. Nu trebuie să știe cum sunt stocate datele pentru a le accesa.
Această ușurință de proiectare și utilizare poate duce la dezvoltarea și implementarea unor sisteme de gestionare a bazelor de date slab concepute. Deoarece baza de date este eficientă, aceste ineficiențe de proiectare nu vor ieși la iveală atunci când baza de date este proiectată și când există doar o cantitate mică de date.
Pe măsură ce baza de date crește, bazele de date slab proiectate vor încetini sistemul și vor duce la degradarea performanței și corupția datelor..
După cum sa menționat anterior, sistemele de baze de date relaționale sunt ușor de implementat și de utilizat. Aceasta va crea o situație în care prea mulți oameni sau departamente își vor crea propriile baze de date și aplicații..
Aceste insule de informații vor împiedica integrarea informațiilor, care este esențială pentru buna funcționare a organizației..
Aceste baze de date individuale vor crea, de asemenea, probleme precum inconsecvența datelor, duplicarea datelor, redundanța datelor etc..
Să presupunem o bază de date care constă din tabelele Furnizori, Piese și Expedieri. Structura tabelelor și a unor exemple de înregistrări sunt după cum urmează:
Fiecare rând din tabelul Furnizori este identificat printr-un număr unic de furnizor (SNo), identificând în mod unic fiecare rând din tabel. La fel, fiecare parte are un număr unic de piesă (PNo).
În plus, nu poate exista mai mult de o expediere pentru o anumită combinație Furnizor / Piesă în tabelul Expedieri, deoarece această combinație este cheia primară a Expedițiilor, care servește ca tabel de unire, deoarece este o relație de mai mulți la mulți..
Relația tabelelor Părți și Expedieri este dată de câmpul PNo (numărul piesei) în comun, iar relația dintre Furnizori și Expediții apare având câmpul SNo (numărul furnizorului) în comun.
Analizând tabelul Expedieri se poate obține ca informație că în total sunt trimise 500 de nuci de la furnizorii Suneet și Ankit, câte 250 fiecare.
În mod similar, 1.100 de șuruburi au fost livrate în total de la trei furnizori diferiți. Au fost livrate 500 de șuruburi albastre de la furnizorul Suneet. Fără livrări de șuruburi roșii.
Nimeni nu a comentat acest articol încă.