Sunteți pe pagina 1din 11

BAZE DE DATE

SEMINAR 2

Asociat dr. Sînziana Rîndașu


sinziana.rindasu@cig.ase.ro
DR. SÎNZIANA RÎNDAȘU
TABELE MS ACCESS ȘI TIPURI DE LEGĂTURI
Tipuri de legături
1-1 (one to one): fiecărui tuplu din relația principală (părinte) îi corespunde cel mult un tuplu din relația
DR. SÎNZIANA RÎNDAȘU


secundară (copil), iar unui tuplu din relația secundară îi corespunde un singur tuplu din relația
principală.
• 1-n (one to many): fiecărui tuplu din relația principală îi pot corespunde mai multe tupluri din relația
secundară și fiecărui tuplu din relația secundară îi corespunde un singur tuplu din relația principală.
• m-n (many to many): Astfel de legături, în cadrul unui SGBD, pot fi implementate doar indirect,
plecând de la ideea că o astfel de legătură se va descompune în două legături de tipul 1 – n.
TIPURI DE CHEI
Cheia primară (primary key)
DR. SÎNZIANA RÎNDAȘU

Cheia compusă (composite key)


Chei candidate (candidate key)
Cheia externă (foreign key)
Chei alternative
Chei surogat
CHEIA PRIMARĂ
Fiecare tabel dintr-o bază de date relaţională trebuie să aibă un identificator unic, constând
DR. SÎNZIANA RÎNDAȘU

din unul sau mai multe câmpuri, altfel nu pot fi definite legăturile între tabele.
Câmpul sau grupul de câmpuri ce constituie identificatorul unic, reprezintă cheia primară.
Cheia primară trebuie să poată asigura
 unicitatea, de aceea nu se acceptă valori duplicate pentru acest câmp (se recomandă ca tipul
de dată folosit pentru câmpul ce constituie cheia primară să fie de tip AutoNumber – dar se
poate opta şi pentru folosirea aşa-ziselor chei naturale - valorile, în acest caz, sunt coduri
generate conform unei anumite reguli, cum ar fi, de exemplu, codul numeric personal).
 nenul
Chei candidate (candidate key) – câmpuri (altele decât cheia primară) care îndeplinesc
condițiile necesare cheii primare.
CHEIA EXTERNĂ
O cheie externă reprezintă un atribut sau un grup de atribute cu rolul de
DR. SÎNZIANA RÎNDAȘU

cheie primară dintr-o relație aflată în legătură cu relația principală.


TABE L E MS A CCE S S Ș I T I P UR I D E RE LA ȚI I
Integritate referențială
Integritatea referențială
DR. SÎNZIANA RÎNDAȘU

Scopul integrității referențiale - împiedica apariția înregistrărilor solitare (orfane) și de


a ține sincronizate referințele.
Impunerea integrității referențiale determină respingerea oricărei operațiuni care ar
încălca integritatea referențială pentru acea relație între tabele (actualizări și ștergeri de
date).
Actualizare în cascadă câmpuri corelate
Ștergere în cascadă câmpuri corelate
ACTIVITATE PRACTICĂ
Scenariu
Clinica OliVet dorește implementarea unui sistem informatic pentru gestionarea
DR. SÎNZIANA RÎNDAȘU

activității. Datele stocate de clinică fac referire la posesorii animalelor de companie


pentru care se stochează un cod unic de client, numele clientului, adresa, numărul
de telefon, adresa de email. Pentru animalele de companie trebuie memorat un cod
unic, numele, specia, rasa și greutatea. Un posesor poate avea mai multe animale
de companie. În cadrul clinicii lucrează medici veterinari, pentru care sistemul
memorează codul de angajat, numele, specialitatea și data nașterii. Medicii oferă
mai multe servicii pentru animalele de companie, care se numesc proceduri, acestea
au un cod, denumire, durată și un preț.
ACTIVITATE PRACTICĂ
1. Descărcați baza de date
DR. SÎNZIANA RÎNDAȘU

2. Identificați cheile primare și cheile externe

3. Stabiliți legăturile dintre tabele


ACTIVITATE PRACTICĂ

1. Specia să accepte doar trei categorii: canine, feline și pasari (fără diacritice);
2. Data nașterii a animalului de companie să nu fie în viitor;
DR. SÎNZIANA RÎNDAȘU

3. Data de angajare a veterinarilor să nu fie în viitor.


4. Specialitatea să fie în aceste categorii: Alergologie, Imagistica, Chirurgie, Oftalmologie,
Medicina preventiva;
5. Durata unei proceduri să nu fie mai mică de 15min;
6. Tariful procedurilor să nu fie negativ;
7. Data consultației să nu fie în viitor sau nulă.
8. Numărul de telefon al clienților să înceapă cu 07 și să conțină 10 caractere numerice;
9. Adresa de email să conțină un @ si un .(punct).
MULȚUMESC PENTRU ATENȚIE!

Asociat dr. Sînziana Rîndașu


sinziana.rindasu@cig.ase.ro

S-ar putea să vă placă și