Documente Academic
Documente Profesional
Documente Cultură
RELAIONAL
Noiuni, restricii, schem, coninut
Fondator
Edgar F. Codd (1923-2003)
Matematician
Angajat al IBM
1969: raport intern IBM
1970: un articol celebru publicat n
Communications of the ACM
http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf
Critic modelul ierarhic i propune un model de
date fundamentat matematic, bazat pe logica
predicatelor
Trei piloni ai unui model de date
Cum difereniem:
O persoan de alta,
Un profesor de altul (toi sunt enervani!),
O carte de alt carte (asta chiar c nu v intereseaz!),
O factur de alt factur ?
Oamenii fac diferenierea uneori incontient, pe
baza unei imagini de ansamblu
Calculatoarele au nevoie de informaii precise
pentru a face identificarea
Identificatori
Rmn n discuie:
Matricol (identific fiecare student a fost valabil
la nivel de facultate, apoi la nivel de universitate,
iar acum este valabil la nivelul rii)
CNP (este unic la nivel naional)
TelMobil (de obicei, un telefon mobil este folosit
de o singur persoan)
E-Mail (i adresa de e-mail este personal)
SerieNrCardIdentit (combinaia Serie+Nr card de
identitate este unic la nivel naional)
Pretendeni la cheia primar - 4
Pasul 2: se elimin toate atributele care ar putea
valori nule:
2: Nu toi studenii i declar numrul de telefon mobil
i adresa de e-mail (pentru a nu fi terorizai de
secretariat/decan/pro-decani); i-au rmas doar trei:
Matricol, CNP, SerieNrCardIdentit
2: Favorit pare CNP deoarece:
SerieNrCardIdentit se modific la pierderea cardului, la
schimbarea adresei sau cstorie (nu este stabil)
Valorile atributului Matricol sunt mai lungi i utile doar n
universitate (prin comparaie, CNP-ul este folosit i de
Evidena Populaiei, Paapoarte, Poliie, Moravuri, Anti-
Drog etc. );
Pretendeni la cheia primar - 5
Problema CNP-ului: FEAA are i studeni din
ri care nu folosesc CNP-ul (Grecia, Albania,
China, Frana, Germania etc.)
Specificaii minimale 1:
Numrul facturii nu se recicleaz
O factur este adresat unui singur client
O factur conine oricte linii
Pe o linie se afl un singur produs
Un produs poate aprea de dou sau mai multe ori
ntr-o factur
cheie primar
cheie strin
Exemplu de restricie referenial n care
cheia strin poate avea valori nule
tabel
tabel copil printe
cheie primar
cheie strin
Declararea restriciei refereniale
CREATE TABLE clienti(
codcl NUMERIC(6) NOT NULL,
dencl VARCHAR(30), codfiscal CHAR(9),
..., CONSTRAINT pk_clienti PRIMARY KEY (codcl
), ...
) ;
CREATE TABLE facturi (
nrfact NUMERIC(8,0) NOT NULL, datafact DATE,
codcl NUMERIC(6),
CONSTRAINT fk_facturi_clienti FOREIGN KEY
(codcl)
REFERENCES clienti (codcl)
ON UPDATE NO ACTION
ON DELETE NO ACTION ) ;
nclcarea restriciei refereniale
Operaiuni ce pot periclita restricia
referenial
ntr-o tabel copil (ex. FACTURI)
Inserarea unei nregistrri (valoarea cheii strine nu
exist n tabela printe)
Modificarea valorii unei chei strine (noua valoare a cheii
strine nu exist n tabela printe)
ntr-o tabel printe (ex. CLIENTI)
tergerea unei nregistri (nregistrrile copil rmn
orfane)
Modificarea valorii unei chei primare (nregistrrile copil
ale vechii valori a cheii primare rmn orfane)
Reguli de implementare a unei
restricii refereniale
La tergerea unei nregistrri printe - ON
DELETE
Se blocheaz operaiunea dac exist mcar o
nregistrare copil (RESTRICT)
Se terg n cascad toate nregistrrile copil (CASCADE)
La modificarea unei valori a cheii primare (ntr-o
nregistrare printe) - ON UPDATE
Se blocheaz operaiunea dac exist mcar o
nregistrare copil (RESTRICT)
Se modific n cascad valori cheilor strine n toate
nregistrrile copil (CASCADE)
(Re)Declararea restriciei refereniale
CREATE TABLE clienti (
codcl NUMERIC(6) NOT NULL,
dencl VARCHAR(30), codfiscal CHAR(9),
..., CONSTRAINT pk_clienti PRIMARY KEY (codcl ),
...
) ;
CREATE TABLE facturi (
nrfact NUMERIC(8,0) NOT NULL, datafact DATE,
codcl NUMERIC(6),
CONSTRAINT fk_facturi_clienti FOREIGN KEY
(codcl)
REFERENCES clienti (codcl)
ON UPDATE CASCADE
ON DELETE RESTRICT ) ;
Restricii de comportament
Exemple:
funcii pentru calculul unor valori implicite,
proceduri/funcii de validare la nivel de atribut
module de validare la nivel de nregistrare
funcii/proceduri de calcul a unor expresii complexe etc.
Declanatoare (triggere)
Database Fundamentals
http://www.youtube.com/watch?v=xNJZYX6tpWU&NR=1
Database Terminology
http://www.youtube.com/watch?v=UhSONIeCWj4&feature=related