Extras din referat
Construirea bazei de date se desfăşoară în două etape: construirea tabelelor (definirea cîmpurilor şi proprietăţilor lor pentru fiecare tabelă în parte) şi stabilirea relaţiilor între tabele (chei primare si secundare).
Legătura dintre tabele se realizează prin mecanismul de propagare a cheilor.
Cheie primară este reprezentată de una sau mai multe coloane ale căror valori identifică in mod unic toate liniile unui tabel. Într-un tabel trebuie să existe o singură cheie primară.
Cheia secundară este formată dintr-unul sau mai multe cîmpuri dintr-un tabel, care sunt folosite ca o cheie primară în alt tabel, valorile cîmpurilor din cheie fiind identice în ambele tabele. Se mai numeşte şi cheie străină. Într-un tabel pot exista mai multe chei secundare. O cheie externă conţine valorile care corespund valorilor din cheia primară a altui tabel.
Pentru ca să fie asigurată legătura dintre două tabele trebuie să fie respectată conditia de integritate referenţială, care impune ca mulţimea valorilor unei chei secundare să fie inclusă în mulţimea valorilor cheii primare din care s-a propagat.
Cheia secundară se mai poate numi si cheie candidat pentru un alt tabel.
De exemplu, avem doua tabele. Un tabel CLIENTI care include datele clientilor (cod client, nume, CNP, număr de telefon, oras, email) si un tabel COMENZI care conţine comenzile făcute de clientii firmei. Intenţia noastră este să asociăm toate comenzile cu un client care este deja in tabelul CLIENTI. Ca să facem acest lucru, vom plasa on cheie externă in tabelul COMENZI si o vom lega de cheia primară in tabelul CLIENTI.
Atunci cand două tabele sunt legate printr-o relaţie, o tabela se numește părinte si cealaltă copil.
Cheia secundară/externă/străină identifică o coloană sau un set de coloane intr-un tabel (copil) care face referinţă la o coloana sau un set de coloane dintr-un alt tabel (părinte). Coloanele din tabelul copil trebuie să faca referire la coloanele de cheie primară sau alte superchei in tabelul mama(părinte). Valorile dintr-o linie a coloanei de referinţă trebuie să apară intr-un singur rand in tabelul părinte. Astfel, un rand din tabelul copil nu poate conţine valori care nu exista in tabelul părinte(exceptie făcand poate valorile NULL). Astfel se pot face referinţe pentru a lega informaţia si este un mijloc esential in normalizarea bazelor de date. De cele mai multe ori, este vorba despre 1 la n (1 tabel părinte cu mai multe tabele copil).
Tabelul părinte si tabelul copil pot fi unul si acelasi, adică o cheie externă poate face referinţă inapoi la acelasi tabel. In SQL 2003, aceasta cheie se numește cheie recursivă.
Păstrarea datelor separate în tabele asociate are următoarele beneficii:
o Consistență - Deoarece fiecare element de date este înregistrat o singură dată, într-un singur tabel, scad șansele să apară ambiguități sau inconsistențe. De exemplu, stocam numele unui client o singură dată, într-un tabel despre clienți, în loc să-l stocam în mod repetat (și posibil cu greșeli) într-un tabel care conţine date despre clienți.
o Eficiență - Înregistrarea datelor într-un singur loc înseamnă că utilizam mai puțin spațiu pe disc. Mai mult, tabelele mai mici oferă date mai rapid decât cele mari. În fine, dacă nu utilizam tabele separate pentru subiecte separate, vom introduce valori Null (date absente) și redundanțe în tabelele noastre, ambele fiind o risipă de spațiu și un factor de scădere a performan-țelor.
o Claritate - Designul unei baze de date este mai ușor de înțeles dacă subiectele sunt repartizate în mod potrivit în tabele.
Un tabel poate avea mai multe chei străine, si fiecare cheie străină poate avea propriul tabel părinte. Fiecare cheie străină este aplicata in mod independent de sistemul de baze de date, astfel putand stabilii relaţii in cascadă intre tabele folosind cheile străine.
Figura 1
Meniul pentru construirea unei relaţii intre tabele in Microsoft Access 2013 poate fi accesat prin prin intermediul Database Tools -> Relationships, ca in figura numarul 1. Este ideal ca inainte să deschidem fereastra de Relationships să fim siguri ca tabelele ce urmeaza fi puse in relaţie să fie salvate in formă pe care o dorim si inchise.
Preview document
Conținut arhivă zip
- Cheia Externa.docx