Download - Modelul Relational
-
Modelul relaional
2013-2014
-
Elementele unui model de date pentru baze de date
Structura modelului definirea obiectelor (entitilor) i a caracteristicilor
(cmpurilor-atributelor) asociate definirea legturilor dintre obiecte (asocieri).
Operatorii care acioneaz asupra structurii de date
Reguli de integritate - restricii care asigur meninerea corectitudinii datelor i coerena lor.
Mihaela Muntean-2013
-
Modelul relaional a fost propus de E.F. Codd de la IBM n 1970
pentru a asigura independena datelor. a fost implementat n SGBD-uri comerciale n
1981. este cel mai utilizat model de date
IBM, Informix, Oracle, SQL Server, etc. integrarea facilitilor oferite de modelul orientat obiect
n modelul relaional- modelul relaional obiectual Informix Universal Server, Oracle, DB2
Mihaela Muntean-2013
-
Modelul relaional
este bazat pe noiunea matematic de relaie.
relaiile sunt reprezentate natural prin tabele.
Mihaela Muntean-2013
-
Structura modelului relaional Domeniul este un ansamblu de valori, caracterizat
printr-o denumire. explicit : D1:{F, M}) implicit : D2:{a| a N})
Relaia (tabela) reprezint un subansamblu al produsului cartezian al mai multor domenii (D1D2D3.) caracterizat printr-o denumire conine tupluri cu semnificaie
Mihaela Muntean-2013
-
Nrmatricol:D1 Nume:D2 Facultate:D3 301 Popa Elena COM 302 Anton Dan REI . . .
Relaia STUDENTI: D1: {x| x N, x[1, 10000]} D2: domeniul cu numele de persoane D3: {CSIE, COM, REI, MK, FIN, MAN}
Structura modelului relaional
Mihaela Muntean-2013
-
Structura modelului relaional Atributul - coloana unei tabele, caracterizat
printr-o denumire. Numele atributului exprim, de obicei, semnificaia
valorilor luate dintr-un domeniu corespunztor. Fiecare atribut i ia valorile dintr-un domeniu. Mai multe atribute pot lua valori din acelai domeniu Ordinea atributelor nu trebuie s prezinte nici o
importan.
Mihaela Muntean-2013
-
Structura modelului relaional
Nrmatricol:D1 Nume:D2 Facultate:D3 301 Popa Elena COM 302 Anton Dan REI . . .
Nrmatricol:D1 Facultate:D3 Nume:D2 301 COM Popa Elena 302 REI Anton Dan . . .
Relatia Studenti
Mihaela Muntean-2013
-
Structura modelului relaional
Tuplul este linia dintr-o tabel i nu are o denumire ordinea liniilor (tuplurilor) nu trebuie s
prezinte nici o importan. numrul tuplurilor dintr-o relaie reprezint
cardinalul relaiei, numrul valorilor dintr-un tuplu definete
gradul relaiei.
Mihaela Muntean-2013
-
Structura modelului relaional Valorile unui tuplu al unei relaii R aparin produsului cartezian
al domeniilor relaiei R. De exemplu, tabela Studenti conine : tuplul unde : 301D1 Popa ElenaD2 COMD3
Mihaela Muntean-2013
-
Structura modelului relaional
Schema unei relaii STUDENTI(nrmatricol: number(4), nume: varchar(50),
facultate: varchar2(4))
Cardinalitatea relaiei (nr. tupluri)=1000 tupluri
Nrmatricol:D1 Facultate:D3 Nume:D2 301 COM Popa Elena 302 REI Anton Dan . . .
Mihaela Muntean-2013
-
Structura modelului relaional
Cheia primar este un atribut sau un ansamblu de atribute cu ajutorul cruia se poate identifica unic un tuplu dintr-o relaie.
Mihaela Muntean-2013
-
Definirea asocierilor
Se face logic construind asocieri ntre diferite tabele: atribute de legtur (chei externe-foreign key).
n tabelele implicate n asociere (1:1, 1:m) n tabele distincte (m:m)
LMD (SELECT-SQL) LDD (Create table.foreign keyreferences)
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Operatorii modelului relaional operaiile ce se pot executa pe datele stocate n baze de date
Cereri (interogri) - citiri de date din baza de date. S se afieze studentii care particip la un anumit curs.
Actualizri (adaugri/tergeri/modificri) limbaje de interogare
simple dar puternice fundamentate teoretic
algebra relaional/calculul relaional permit optimizarea cererilor
Mihaela Muntean-2013
-
Algebra relaional
ofer o colecie de operatori relaionali care acioneaz la nivel de relaie Operatori de baz (introdui de Codd) :
reuniunea diferena produsul cartezian proiecia selecia jonciunea.
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Clienti codc denc loc
1 Deck Computers Bucuresti 2 Python Bucuresti 3 Expert Computers Cluj 4 Acer Cluj
comenzi nrcom datai termen val codc
1000 10/8/2011 11/10/2011 1800 1
1001 10/10/2011 11/30/2011 200 2
1002 10/2/2011 11/20/2011 200 3
1003 10/8/2011 11/15/2011 1000 1
1004 10/9/2011 11/15/2011 200 1
1005 10/9/2011 11/16/2011 200 1
1006 10/12/2011 12/20/2011 300 4
1007 10/12/2011 12/15/2011 200 3
1008 10/13/2011 11/25/2011 200 2
1009 10/17/2011 11/25/2011 400 4
Mihaela Muntean-2013
-
Comanda SELECT
Select atribut [[as] alias {, atribut [as] alias]} From tabela [[as] alias] {, [[as] alias]} [where conditii_pe_tupluri] [group by list_de_atribute_pentru_grupare] [having condiii_pe_grupuri] [order by lista_de_atribute_pentru_ordonare]
Mihaela Muntean-2013
-
Produsul cartezian
const din construirea unei noi relaii R3 a crei schem se obine prin concatenarea schemelor relaiilor R1 i R2.
Relaia R3 conine toate combinaiile tuplurilor din R1 i R2.
Notaie: R1R2.
Mihaela Muntean-2013
-
Produsul cartezian
denc nrcom Python 1010 Python 1009 Python 1008 Python 1007 Python 1006 Python 1005 Python 1004 .. .
Select denc, nrcom from clienti, comenzi;
Mihaela Muntean-2013
-
Selecia
produce o subrelaie R1 a unei relaii R. subrelaia obinut va conine tuplurile relaiei R
care satisfac o anumit condiie. Notaie: condiie (R).
Mihaela Muntean-2013
-
Select denc from clienti where loc=Bucuresti;
Mihaela Muntean-2013
-
Select denc from clienti where loc=Bucuresti;
Mihaela Muntean-2013
-
Proiecia
const din construirea unei relaii P n care se regsesc numai acele atribute din relaia R specificate explicit n cadrul operaiei.
suprimarea unor atribute din R nseamn efectuarea unor tieturi verticale asupra lui R care pot avea ca efect apariia unor tupluri duplicate care se cer a fi eliminate.
Notaie: R(Ai, Aj, .Am).
Mihaela Muntean-2013
-
Select loc from clienti; clienti
codc denc loc 1 Deck Computers Bucuresti 2 Python Bucuresti 3 Expert Computers Cluj 4 Acer Cluj
Mihaela Muntean-2013
-
Select distinct loc from clienti;
Mihaela Muntean-2013
-
Jonciunea
este o derivat a produsului cartezian i reprezint o operaie definit pe dou relaii R1 i R2, operaie care const din construirea unei noi relaii R3 prin concatenarea unor tupluri din R1 cu tupluri din R2.
se concateneaz acele tupluri din R1 i R2 care satisfac o anumit condiie specificat explicit n cadrul operaiei.
Notaie: JOIN (R1, R2, condiie).
Mihaela Muntean-2013
-
Tipuri de jonctiuni:
jonciune de egalitate (equi-join); jonciune extern (outer-join); jonciune care utilizeaz un alt operator de comparaie
diferit de (=)
Mihaela Muntean-2013
-
Jonciune de egalitate: Select * from clienti inner join comenzi on clienti.codc = comenzi.codc;
jonctiune_de_egalitate clienti.codc denc loc nrcom datai termen val comenzi.codc
1 Deck Computers Bucuresti 1000 10/8/2011 11/10/2011 1800 1 1 Deck Computers Bucuresti 1003 10/8/2011 11/15/2011 1000 1 1 Deck Computers Bucuresti 1004 10/9/2011 11/15/2011 200 1 1 Deck Computers Bucuresti 1005 10/9/2011 11/16/2011 200 1 2 Python Bucuresti 1001 10/10/2011 11/30/2011 200 2 2 Python Bucuresti 1008 10/13/2011 11/25/2011 200 2 3 Expert Computers Cluj 1002 10/2/2011 11/20/2011 200 3 3 Expert Computers Cluj 1007 10/12/2011 12/15/2011 200 3 4 Acer Cluj 1006 10/12/2011 12/20/2011 300 4 4 Acer Cluj 1009 10/17/2011 11/25/2011 400 4 4 Acer Cluj 1010 10/12/2011 11/21/2011 1000 4
Mihaela Muntean-2013
-
SELECT clienti.denc, comenzi.nrcom FROM clienti INNER JOIN comenzi ON clienti.codc = comenzi.codc;
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Jonciunea extern (outer join)
este o operaie prin care din dou relaii R1 i R2 se obine o nou relaie R3 prin jonciunea relaiilor R1 i R2, relaie la care sunt adugate i tuplurile din R1 i R2 care nu au participat la jonciunea de egalitate.
aceste tupluri sunt completate n R3 cu valori null pentru atributele relaiei corespondente (R2 respectiv R1). Notaie: EXT-JOIN(R1, R2).
trei variante: stnga, dreapta i complet.
Mihaela Muntean-2013
-
Left outer join
Angajat Departament Ionescu Vnzri Popescu Producie Dumitru Producie
Departament Sef Producie Marinescu Contabilitate Bujor
Select r1.angajat, r1.departament, r2.sef from r1 left outer join r2 on r1.departament=r2.departament; Angajat Departament Sef
Ionescu Vnzri null Popescu Producie Marinescu Dumitru Producie Marinescu
R2
R1
Mihaela Muntean-2013
-
Right outer join
Angajat Departament Ionescu Vnzri Popescu Producie Dumitru Producie
Departament Sef Producie Marinescu Contabilitate Bujor
Select r1.angajat, r1.departament, r2.sef from r1 right outer join r2 on r1.departament=r2.departament;
R2
R1 Angajat Departament Sef Popescu Producie Marinescu Dumitru Producie Marinescu null Contabilitate Bujor
Mihaela Muntean-2013
-
Jonctiune externa completa
Angajat Departament Ionescu Vnzri Popescu Producie Dumitru Producie
Departament Sef Producie Marinescu Contabilitate Bujor
Select r1.angajat, r1.departament, r2.sef from r1 full outer join r2 on r1.departament=r2.departament;
R2
R1 Angajat Departament Sef Ionescu Vanzari null Popescu Producie Marinescu Dumitru Producie Marinescu null Contabilitate Bujor
Mihaela Muntean-2013
-
Jonciune de neegalitate
Marca Nume Salariu 100 Muntean 1000 101 Ionescu 1500 102 Florea 2000
Angajati
Treapta SALMIN SALMAX 1 500 1000 2 1000 2000 3 2000 5000
Trepte de salarizare
SELECT nume, treapta FROM angajati, trepte WHERE salariu between salmin and salmax;
Marca Nume Treapta 100 Muntean 1 101 Ionescu 2 102 Florea 3
Mihaela Muntean-2013
-
Restriciile de integritate
reguli pe care trebuie s le satisfac datele pentru a putea fi considerate corecte i coerente restricii de integritate structurale restricii de integritate de comportament (semantice)
gestionate de regula in afara modelului de date triggeri, codul aplicatiei
Mihaela Muntean-2013
-
Restricii de integritate structurale
sunt specifice modelului relaional se definesc prin compararea unor valori ale
datelor din cadrul tabelelor: Restricia de unicitate a cheii Restricia referenial Restricia entitii
Mihaela Muntean-2013
-
Restriciile de integritate minimale
sunt definite toate n raport cu noiunea de cheie a unei relaii
Cheia unei relaii este un ansamblu minim de atribute prin care se poate identifica unic orice tuplu din relaie un atribut (cheie simpl) mai multe (cheie compus). pot exista mai multe combinaii de atribute cu proprietatea de
identificare a tuplurilor (chei candidate). cheie primar
LDD (create table-SQL, alter table-SQL) Dictionarul BD informatii despre restrictii
Mihaela Muntean-2013
-
Restriciile de integritate minimale
Restricia de unicitate a cheii ntr-o relaie s nu existe dou tupluri cu aceeai
valoare pentru ansamblul atributelor cheie. Restricia entitii
ntr-o relaie atributele din cheia primar s nu ia valori null.
informaia incomplet n modelul relaional- se utilizeaz o tehnic simpl -valoarea null
Mihaela Muntean-2013
-
Tipuri de valori null Valoare necunoscut Valoarea inexistent
Mihaela Muntean-2013
-
Restricia referenial impune ca ntr-o relaie R1 care refer o relaie R2
(exist o legtur) valorile cheii externe s figureze printre valorile cheii primare din relaia R2 sau s fie valori null (nedefinite). Relaia R1 - relaia care refer R2 relaia referit. o asociere nu poate exista dect ntre parteneri cunoscui,
definii. atunci cnd ntr-o anumit situaie, asocierea nu e
aplicabil, unul dintre parteneri va fi desemnat prin valoarea null cu semnificaia de partener inexistent.
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Alte restricii : Restricii de domeniu (domeniul s se ncadreze ntre
anumite valori). Check (cantitatea >500)
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Limbajul SQL (structured query language)
a fost dezvoltat ca parte a proiectului SystemR al lui IBM CorporationSEQUEL (1974)/ Structured English Query Language
1979 Relational Software Inc. (acum Oracle) a introdus prima implementare comercial a lui SQL.
primul standard 1986, revizuit n 1989 (SQL-89) al doilea standard 1992 (SQL-92) al treilea standard 1999 (SQL-99) SQL-2008 cele mai multe SGBDR implementeaz facilitile de baz ale
standardului, dar ofer uneori i extensii ale standardului (de exemplu Oracle)
Mihaela Muntean-2013
-
Limbajul SQL interogarea datelor (SELECT); actualizarea datelor (INSERT/ UPDATE/ DELETE); crearea bazei de date, modificarea structurii bazei de date i tergerea bazei de
date, precum i a elementelor componente (tabele, tabele virtuale, indeci, triggeri, funcii stocate, etc): CREATE, ALTER, DROP;
controlul accesului la datele stocate n baza de date (GRANT/REVOKE); asigurarea consistenei i integritii bazei de date prin:
triggeri pe baza de date. In Oracle, triggerii pe baza de date sunt blocuri PL/SQL care se execut atunci cnd apare un eveniment (insert/ update/ delete);
restriciile de integritate. controlul tranzaciilor (COMMIT, ROLLBACK, SET TRANSACTION); integrarea cu limbajul XML; operaii OLAP (ROLLUP, slice, dice, pivotare, etc).
Mihaela Muntean-2013
-
Faciliti de descriere a datelor la nivel logic oferite de SQL standard
Definirea domeniilor de valori predefinite de standard
char/character , number (precizie, scala), integer, date, etc
definite de utilizator (CREATE DOMAIN)
Mihaela Muntean-2013
-
Faciliti de descriere a datelor la nivel logic oferite de SQL standard
Definirea schemei de obiecte Create schema
schema de obiecte (tabele, view, proceduri stocate, functii stocate, pachete stocate,etc) Oracle: schema are denumire si proprietar
SQL Server(Transact-SQL): CREATE SCHEMA Schema_profesor AUTHORIZATION profesor CREATE TABLE note (nr.matricol int, note int) GRANT SELECT TO student1 DENY SELECT TO student2; ALTER SCHEMA . DROP SCHEMA ..
Mihaela Muntean-2013
-
Faciliti de descriere a datelor la nivel logic oferite de SQL standard
Definirea unei tabele (Oracle)
Create table clienti (codc number(3) primary key, denc varchar2(30) not null, loc varchar2(20), zona varchar2(1), check(zona in(N, S, E, V))) create table comenzi (nrcom number(5) primary key, datai date, val number(10), codc number(3), foreign key(codc) references clienti(codc))
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Definirea restriciilor de integritate
se declar atunci cnd se creeaz tabelele pot fi ulterior adugate/ terse/ dezactivate (ALTER TABLE ADD/
DROP/ DISABLE/ ENABLE) Restricia entitii (not null) Restricia unicitii (unique)
Nume character(20) not null, Prenume character(20) not null, unique (nume, prenume),
Nume character(20) not null unique, prenume character(20) not null
unique
Restricia de cheie primar (primary key) Mihaela Muntean-2013
-
Definirea restriciilor de integritate
restricia referenial (foreign key references) se pot asocia politici de reacie la nerespectarea restriciei
refereniale. Aceste politici opereaz pe tabela ce refer, dup ce se execut modificrile n tabela referit. Se pot defini urmtoarele reacii: Cascade : propag modificarea Set null: seteaz pe null atributul referit Set default: asociaz valoarea implicit atributului referit No action: interzice modificarea n tabela referit
reaciile pot depinde de eveniment.
On
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Modificarea structurii unei tabele Oracle Alter table clienti add column adresa char(30)
Stergerea tabelelor Drop table comenzi
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Faciliti de descriere a datelor la nivel extern oferite de SQL standard
Crearea tabelelor virtuale (view) este o prezentare a datelor din una sau mai multe
tabele i poate fi gndit ca o cerere stocat. nu conine date, i deriv datele din tabelele de
baz, dar poate fi interogata, actualizata cu unele restricii.
toate operaiile executate pe tabela virtual vor afecta tabelele de baz corespunztoare.
Mihaela Muntean-2013
-
Tabela virtual ofer un nivel suplimentar de securitate prin restricionarea
accesului la un set predeterminat de rnduri i coloane ale unei tabele;
ascunde complexitatea datelor ascunde faptul c datele provin de la mai multe tabele de
baz simplific interogarea pentru utilizator. prezint datele ntr-o form/aspect diferit de tabelele de baz.
se poate modifica numele coloanelor fr a afecta tabelele de baz;
stocheaz cereri complexe. prin salvarea cererii ca o tabel virtual , calculele sunt
executate numai atunci cnd tabela virtual este interogat.
Mihaela Muntean-2013
-
CREATE VIEW CLIENTI_COM AS SELECT denc as client, count (nrcom) as comenzi FROM clienti, comenzi where clienti.codc=comenzi.codc group by denc;
Mihaela Muntean-2013
-
Obiective n asigurarea securitii datelor: pstrarea secretului asigurarea integritii datelor valabilitatea datelor
Acordarea drepturilor de acces la baza de date
Mihaela Muntean-2013
-
Controlul accesului la date
stabilirea unei politici de securitate (se specifica cine este autorizat si ce este autorizat sa faca)
utilizarea unui mecanism de securitate ce permite asigurarea unei politici de securitate: accesul bazat pe notiunea de privilegii (discretionary access
control) accesul bazat pe notiunea de clase de securitate (mandatory
access control)
Mihaela Muntean-2013
-
Accesul bazat pe notiunea de privilegii
Un privilegiu este caracterizat de: obiect, proprietarul obiectului, utilizatorul care primete privilegiul, dreptul primit pe obiect, posibilitatea de a se transmite mai departe acest drept altor
utilizatori. Proprietarul unei tabele/tabele virtuale primete automat toate
drepturile asupra acestor obiecte. Proprietarul unui obiect poate acorda drepturi altor utilizatori pe
obiectul su. SGBD este cel care monitorizeaz cine primete sau pierde
privilegiile Mihaela Muntean-2013
-
GRANT ON obiect TO utilizatori [WITH GRANT OPTION]
privilegii :
SELECT INSERT (atribut) DELETE REFERENCES(atribut) Numai proprietarul poate executa CREATE, ALTER i DROP.
GRANT INSERT, SELECT ON tabela to student GRANT DELETE ON tabela TO student WITH GRANT OPTION GRANT UPDATE (atribut) ON tabela TO student GRANT SELECT ON tabela_virtuala TO stud1, stud2 REVOKE privilegii on obiect from utilizatori [restrict|cascade]
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
Grant SELECT on "MIHAELA"."CLIENTI_COM" to "SCOTT"; REVOKE SELECT on "MIHAELA"."CLIENTI_COM" from "SCOTT";
Mihaela Muntean-2013
-
Facilitti de manipulare a datelor oferite de SQL
actualizarea tabelelor /tabelelor virtuale: INSERT UPDATE DELETE
nu toate SGBDR permit actualizarea tabelelor virtuale
Mihaela Muntean-2013
-
Exemple (Oracle) insert into clienti values (5, 'Vector Software', 'Bucuresti') ; update clienti set loc='Cluj' where codc =5; delete from clienti where loc='Cluj'; delete from clienti where codc not in (select distinct codc
from comenzi);
Mihaela Muntean-2013
-
DELETE * FROM clienti WHERE loc="Deva";
Mihaela Muntean-2013
-
Comanda SELECT
interogarea bazei de date cereri ce utilizeaz una sau mai multe tabele subcereri cereri ierarhice
simularea operatorilor algebrei relaionale selecie, proiecie, produs cartezian, jonciune, reuniune,
intersecie, diferen
agregarea datelor utiliznd funciile de agregare.
Mihaela Muntean-2013
-
Select atribut [[as] alias {, atribut [as] alias]} From tabela [[as] alias] {, [[as] alias]} [where conditii_pe_tupluri] [group by list_de_atribute_pentru_grupare] [having condiii_pe_grupuri] [order by lista_de_atribute_pentru_ordonare]
Mihaela Muntean-2013
-
Mihaela Muntean-2013
Exemple (Access)
-
SELECT clienti.codc, clienti.denc FROM clienti ORDER BY clienti.codc desc;
Mihaela Muntean-2013
-
Mihaela Muntean-201
-
SELECT produse.denp AS denumire, Sum(produse.pu*randcomanda.cant) AS vanzari FROM produse INNER JOIN randcomanda ON produse.codp=randcomanda.codp GROUP BY produse.denp;
Mihaela Muntean-2013
-
Mihaela Muntean-2013
-
SELECT produse.denp as denumire, Sum(produse.pu*randcomanda.cant) AS vanzari FROM produse INNER JOIN randcomanda on produse.codp=randcomanda.codp WHERE produse.denp like Cablu* GROUP BY produse.denp HAVING Sum(produse.pu*randcomanda.cant) > 16000000 ;
Mihaela Muntean-2013
-
Tehnica normalizarii relatiilor
Anomaliile de actualizare sunt datorate dependenelor care se manifest ntre date i care determin creterea redundanei datelor i reducerea flexibilitii structurii bazei de date.
Aceasta tehnic este construit n jurul conceptului de forme normale (FN).
Iniial E.F. Codd a definit 3 forme normale: FN1, FN2, FN3.
Ulterior au fost definite dou noi forme normale: FN4, FN5.
Mihaela Muntean-2013
-
Etapele normalizrii unei relaii (FN1FN3)
Relaie nenormalizat
Relaie normalizat n FN1
Relaie normalizat n FN2
Relaie normalizat n FN3
Pasul 1: atributele conin valori elementare (atomice- nu sunt date la nivel de grup) i orice tuplu nu trebuie s aib grupuri repetitive. Relaia trebuie s fie rupt n dou sau mai multe relaii.
Pasul 2: verific c toate atributele noncheie sunt complet dependente de cheia primar. Toate dependenele pariale sunt eliminate i plasate n alt relaie.
Pasul 3: elimin orice dependen tranzitiv (cnd un atribut noncheie este dependent de alt atribut noncheie).
Mihaela Muntean-2013
-
Etapele normalizrii unei relaii (FN1FN3)
Prin atribut simplu (atribut atomic) se nelege un atribut care nu mai poate fi descompus n alte atribute, n caz contrar, atributul este compus (atribut neatomic).
Exemplu: Data calendaristic este un atribut compus: zi, lun, an; Adresa este un atribut compus: strada, nr, bloc, scara, etaj, apartament,
localitate, jude; Un grup repetitiv este un atribut (grup de atribute) dintr-o relaie care apare cu
valori multiple pentru o singur apariie a cheii primare a relaiei nenormalizate.
-
R (codagent, numeagent, zonavnzri, codclient, numeclient, coddepozit, locaie, cantitatevndut):
Cod agent
Nume agent
Zona vnzri
Cod client
Numeclient Cod depozit
Locaie Cantitate vndut
3 Ionescu Est 18765 18830 19242
Delta Systems Sony Systems Altex SRL
4 3 3
Militari Pantelimon Pantelimon
10000 20000 30000
4 Popescu Vest 18841 18899 19565
Computers SRL Python Expert SRL
2 2 1
Berceni Berceni Voluntari
10000 20000 30000
Mihaela Muntean-2013
-
Grupul de atribute (codclient, numeclient, coddepozit, locaie, cantitatevndut) este un grup repetitiv care se va elimina i relaia R este n FN1.
Cod agent
Nume agent
Zona vnzri
Cod client
Numeclient Cod depozit
Locaie Cantitate vndut
3 Ionescu Est 18765 Delta Systems 4 Militari 10000 3 Ionescu Est 18830 Sony Systems 3 Pantelimon 20000 3 Ionescu Est 19242 Altex SRL 3 Pantelimon 30000 4 Popescu Vest 18841 Computers
SRL 2 Berceni 10000
4 Popescu Vest 18899 Python 2 Berceni 20000 4 Popescu Vest 19565 Expert SRL 1 Voluntari 30000
Cheia relaiei R este o cheie compus din atributele: codagent i codclient.
Redundanta datelor, anomalie la modificare
Anomalie la stergere: se sterge un agent, se sterg si date despre clienti
Mihaela Muntean-2013
-
Relaie normalizat n FN2
atributele numeagent i zonavanzari depind funcional parial numai de atributul codagent.
atributul cantitateavndut depinde de toat cheia, atributul numeclient depinde funcional parial numai de
atributul codclient, la fel i atributele coddepozit i locaie.
Relaia R se descompune n trei relaii: Agenti (codagent, numeagent, zona) Vnzri(codagent, codclient, cantitatevndut) Clienti (codclient, numeclient, coddepozit, locaie)
Mihaela Muntean-2013
-
Relaie normalizat n FN3
Agenti codagent nume zona
Vanzari codagent codclient cantitatevanduta
Clienti codclient numeclient coddepozit
Depozite coddepozit locatie
o singur dependen tranzitiv i anume ntre atributul coddepozit i atributul locaiedepozit. Se elimin prin descompunerea relaiei Clienti.
Mihaela Muntean-2013
-
Intrebari
Completati corect: Restricia entitii impune ca ntr-o relaie:.. Rolul unui SGBD este de a: In SQL, pentru a modifica valorile unui atribut se utilizeaz comanda: . In SGBDR Access se pot defini urmatoarele restrictii de integritate:
Se considera tabelele R1 si R2: Pentru a afisa angajatii din departamentul Vanzari se utilizeaza comanda SQL: Precizai ce operator al algebrei relaionale se utilizeaz pentru a afisa seful
departamentului de Productie La departamentul de Productie se angajeaza o noua persoana . Ce comanda SQL
utilizati pentru ca aceasta persoana sa apara in tabela R1 Dorim ca pentru fiecare angajat sa apara obligatoriu si informatii despre adresa
lor. Ce comanda SQL utilizam si ce restrictii de integritate trebuie sa definim?
Departament Sef Producie Marinescu Contabilitate Bujor
R2 Angajat Departament Ionescu Vnzri Popescu Producie Dumitru Producie
R1
-
Intrebari
Se considera relatia nenormalizata Studenti (nrmatricol, nume, adresa, sex, stare civila, cod_curs, denumire_curs, tip_curs, numar_credite_curs, nota_curs). Un student participa la mm cursuri si primeste o nota pentru fiecare curs la care participa. Un curs poate fi optional/obligatoriu si are alocat un numar de credite. La un curs pot participa mm studenti. Cheia primar a relaiei este: ............... Aduceti relatia in FN2 Aduceti relatia in FN3
Modelul relaionalElementele unui model de date pentru baze de dateModelul relaionalModelul relaionalStructura modelului relaionalStructura modelului relaionalStructura modelului relaionalStructura modelului relaionalStructura modelului relaionalStructura modelului relaionalStructura modelului relaionalStructura modelului relaionalDefinirea asocierilor Slide Number 14Operatorii modelului relaional Algebra relaionalSlide Number 17Slide Number 18Comanda SELECTProdusul cartezian Produsul cartezian SeleciaSlide Number 23Slide Number 24ProieciaSlide Number 26Select distinct loc from clienti;JonciuneaTipuri de jonctiuni:Slide Number 30Slide Number 31Slide Number 32Jonciunea extern (outer join) Left outer joinRight outer joinJonctiune externa completaSlide Number 37Restriciile de integritate Restricii de integritate structuraleRestriciile de integritate minimaleRestriciile de integritate minimaleTipuri de valori nullRestricia referenialSlide Number 44Slide Number 45Slide Number 46Slide Number 47Slide Number 48Limbajul SQL (structured query language) Limbajul SQLFaciliti de descriere a datelor la nivel logic oferite de SQL standardFaciliti de descriere a datelor la nivel logic oferite de SQL standardFaciliti de descriere a datelor la nivel logic oferite de SQL standardSlide Number 54Slide Number 55Slide Number 56Definirea restriciilor de integritate Definirea restriciilor de integritate Slide Number 59Slide Number 60Slide Number 61Slide Number 62Faciliti de descriere a datelor la nivel extern oferite de SQL standardTabela virtualSlide Number 65Acordarea drepturilor de acces la baza de dateControlul accesului la dateAccesul bazat pe notiunea de privilegii Slide Number 69Slide Number 70Slide Number 71Slide Number 72Facilitti de manipulare a datelor oferite de SQLExemple (Oracle)Slide Number 75Comanda SELECTSlide Number 77Slide Number 78Slide Number 79Slide Number 80Slide Number 81Slide Number 82Slide Number 83Tehnica normalizarii relatiilorEtapele normalizrii unei relaii (FN1FN3)Etapele normalizrii unei relaii (FN1FN3)Slide Number 87Slide Number 88Relaie normalizat n FN2Relaie normalizat n FN3IntrebariIntrebari