Académique Documents
Professionnel Documents
Culture Documents
Programa analitică:
1. Concepte de bază
2. Proiectarea BD
3. Dezvoltarea BD folosind SGBD ACCESS 2000
4. Limbajul SQL
5. Baze de date avansate:
Sisteme client/server
BD on-line
BD distribuite
BD multidimensionale
Evaluare:PV
Laborator 50%
Lucrare curs 50%
Bibliografie
1
Concepte de bază ale Bazelor de date -DB
Bază de date
Definiţie:
Ansamblu de date structurate
Legate funcţional
2
Modele de date
Un model de date este un ansamblu de concepte, o convenţie
de reprezentare care permite descrierea datelor de administrat
Modelul IERARHIC
Modelul REŢEA
Modelul RELAŢIONAL
Modelul OBIECT
Permite modelarea realităţii prin intermediul
obiectelor definite ca entităţi cu identitate
proprie şi caracterizate prin stare şi
comportament
Modelul OBIECT-RELAŢIONAL
3
Modele de date: modelul IERARHIC
Datele sunt organizate sub formă de structură arborescentă;
Datele sunt grupate în tipuri înregistrări ce descriu o ierarhie simplă (“un
tată poate avea mai mulţi fii, în timp ce un fiu poate avea un singur tată”)
Singurele asocieri posibile sunt 1-1 şi 1-n
O înregistrare “fiu” nu poate exista independent de o înregistrare ierarhic
superioară “tată” de care este legată şi nu poate fi manipulată independent
de aceasta
Servicii_funcţionale
Servicii_funcţionale Cod_serv Denumire_serviciu
1 Conducere 8 Contabilitate
Cod_fun Denumire_funcţie
Angajaţi
5
Modele de date: modelul RELAŢIONAL
Un model de organizare bidimensională a datelor în
tabele
Implementează schema relaţională (MRD)
Tabele
Relaţii între tabele
Reguli de validare
Algebra relaţională (Operatori relaţionali)
Operatori de asambalare (Reuniunea, Produsul caretezian)
Operatori unari (Proiecţia, Selecţia)
Operatori de extensie (Compunerea, Diviziunea)
Un limbaj standard de gestiune a BDR
6
Modele de date: modelul RELAŢIONAL
Modelul relaţional introdus de Codd în 1970 se fundamentează pe
noţiunea matematică de relaţie R(X1,X2,....Xn)
unde, pentru fiecare element Xi se defineşte un domeniu de valori
Domeniul reprezintă mulţimea valorilor posibile care definesc o
anumită proprietate aferentă unui obiect
Atributul reprezintă mulţimea valorilor existente în coloana pe care
o desemnează în cadrul relaţiei. Într-o relaţie pot exista mai multe
atribute care iau valori în aceleaşi domenii.
Relaţiile se reprezintă prin tabele care sunt supuse următoarele
restricţii:
În fiecare coloană, toate valorile sunt de acelaşi tip;
Ordinea liniilor (tuplurilor sau înregistrărilor) nu este predefinită;
Nu sunt admise înregistrări duplicate
Coloanele sunt identificate prin nume distincte (atribute sau proprietăţi)
Tuplurile unei relaţii se pot identifica de o manieră unică prin
intermediul valorilor unuia sau mai multor atribute care joacă rol de
CHEIE PRIMARĂ a relaţiei respective
7
Modele de date: modelul RELAŢIONAL
Se numeşte DOMENIU PRIMAR acel domeniu pe care este definit
un singur atribut drept cheie primară
CHEIA EXTERNĂ: Fiind două relaţii R1 şi R2, cu atributele A1 şi
A2 chei primare definite pe acelaşi domeniu primar D, se spune că
în relaţia R1, A2 este cheie externă dacă, utilizând o parte din
valorile ei sau toate, pot fi regăsite tuplurile relaţiei R2 (altfel spus,
un atribut al unei relaţii este cheie externă, dacă se regăseşte pe
post de cheie primară în altă relaţie)
Relaţii
R1(A1,B1,C1,D1,A2) R2(A2,B2,C2,D2)
Cheie externă
Chei primare
8
Modele de date: modelul RELAŢIONAL
RESTRICŢIILE DE INTEGRITATE depind de semantica valorilor
domeniilor
Integritatea entităţii prin care valorile cheii primare trebuie să fie diferite
de zero
Integritatea referirii potrivit căreia valorile unei chei externe trebuie să
se refere la tuplurile unei alte relaţii
ALTE RESTRICŢII care se aplică asupra domeniilor (validări prin
care se reflectă alte corelaţii de ordin valoric)
SCHEMA unei relaţii este formată din:
Numele relaţiei
Atributele relaţiei
Restricţiile de integritate
9
Tipologia Bazelor de Date
După utilizarea în întreprindere:
Baze de date operaţionale (BD de domeniu) = nucleul sistemului
informaţional al întreprinderii
Baze de date de informare a executivului (EIS)
Baze de date multidimensionale (OLAP)
Baze de date externe (On-Line)
10
Administrator BD
SGBD SGBD
BD Utilizator final 1
Rol : DD
Funcţii principale:
descrierea datelor prin schemele: externă, conceptuală, internă şi
legăturile corespondente, prin intermediul unui limbaj specializat (LDD)
vizează deopotrivă structurile de date, legăturile între acestea şi
regulile care să asigure coerenţa datelor (numite şi reguli de
integritate)
manipularea datelor (LMD)
Interogarea bazelor de date
Actualizarea datelor
protejarea bazelor de date
utilizatori, drepturi de acces, reluare în caz de pană, copii de
siguranţă
11
SGBD: niveluri de descriere a datelor
internă
Nivelul conceptual de descriere a BD se face de către
Administratorul Întreprinderii
Nivelul extern de descriere a BD se face de către Administratorul
aplicaţiei, care:
Defineşte schema externă
Defineşte regulile de corespondenţă cu schema conceptuală
12
Niveluri de reprezentare a unei Baze de
date Domeniul de
studiu
Schema Proces
Grup utilizatori
externă 1 modelare
1
Grup Schema
Schema Schemă
utilizatori 2 externă 2
conceptuală fizică
Grup
Schema
utilizatori n
externă n
BD
13
SGBD
SGBDR
Pentru baze de date în volume mici/ medii
14
Proiectarea BDR
Dezvoltarea unei aplicaţii cu baze de date
Problemă Schema relaţională
Proiectare MRD
BD
normalizare
Modelul E-A Descriere
conversia MCD - MRD
LDD
SGBD
LMD
( )
Manipularea
datelor
BD
15
Normalizarea Bazelor de Date
Normalizarea se bazează pe următoarele concepte:
Proces de normalizare
Dependenţa funcţională
Forme normale
16
Normalizarea Bazelor de Date:
Procesul de normalizare
Normalizarea este un demers ce conduce la construirea
modelului relaţional al bazei de date
Se descompune o tabelă complexă în subtabele mai mici şi mai uşor de
manipulat
DD
+RG NORMALIZARE MRD
NrComandă
Dată comandă, Cantitate comandată
Cod Produs
19
Normalizarea Bazelor de Date:
Dependenţe Inter-Tabele şi Multivaloare
Dependenţe Inter-Tabele (1-1)
Când la o valoare a atributului Cheie primară dintr-o tabelă, se
asociază o singură valoare a atributului Cheie primară dintr-o altă
tabelă, se poate spune că există o dependenţă funcţională între
tabele, exprimată prin dependenţa funcţională dintre atributele
chei primare aferente celor două tabele
1 FN
O relaţie R este în 1FN atunci când atributele sale nu pot fi
descompuse în unităţi mai mici
2 FN
O relaţie R este în 2FN, dacă este în 1FN şi toate dependenţele
între cheia primară a lui R şi celelalte atribute a lui R sunt
elementare (atributele nu depind de o parte din cheie)
3 FN
O relaţie R este în 3FN, dacă este în 2FN şi dacă sunt eliminate
toate dependenţele funcţionale tranzitive (dacă nu există nici o
dependenţă funcţională între atributele
21 non-cheie)
Normalizarea Bazelor de Date : 3FN
Formele normale BC, 4, 5 Boyce-Codd
4FN
Boyce-Codd
O relaţie R este în forma BC dacă este în 5FN
3FN şi dacă fiecare determinant în
diagrama de dependenţe este un candidat
pentru a deveni cheia relaţiei.
Dacă o relaţie are un identificator
concatenat, unul dintre elementele care-l
compun nu trebuie să depindă de alt
atribut
4 FN
O relaţie R este în 4FN, dacă este în forma BC şi dacă nu există
două dependenţe funcţionale multivaloare în aceeaşi relaţie
5 FN
O relaţie R este în 5FN, dacă este în 4FN şi tratează cazurile în
care există mai multe dependenţe funcţionale multivaloare care
sunt interlegate între ele 22
Exemplu Forma Normală Boyce-Codd
GRUPĂ(Număr grupă)
23
Normalizarea Bazelor de Date:
Matricea Dependenţelor Funcţionale
Formalizarea procesului de normalizare este
operaţională prin Matricea Dependenţelor
Funcţionale:
MDF are pe linie toate atributele dicţionarului de
date
MDF are pe coloană toate atributele sau numai
atributele care pot avea rol de cheie primară
Se notează 1 la intersecţia liniei cu coloana pentru
care există dependenţă funcţională
Se notează 1T dependenţele funcţionale tranzitive
Liniile care NU AU 1 desemnează fie atribute care nu sunt
dependente funcţional de un identificator simplu, fie
desemnează atribute parametru
24
Normalizarea Bazelor de Date:
Etapele procesului de NORMALIZARE
Inventarierea atributelor (se vor selecta toate atributele referitoare la facturile
primite)
Număr factură
Dată factură
Cod furnizor
Denumire furnizor
Adresa, etc.
25
Normalizarea Bazelor de Date:
Etapele procesului de NORMALIZARE
Se întocmeşte dicţionarul datelor
Un atribut poate fi înscris o singură dată în dicţionar
Se elimină atributele sinonime (de ex. Cod furnizor = Simbol furnizor)
Dicţionarul datelor nu admite atribute derivate sau calculate (Valoare, TVA)
27
Normalizarea Bazelor de Date:
Etapele procesului de NORMALIZARE
Sau se stabilesc dependenţele funcţionale între atribute prin DDF
Denumire Furnizor
Cod Furnizor
Adresă Furnizor
28
Normalizarea Bazelor de Date:
Etapele procesului de NORMALIZARE
Pentru atributele izolate se vor căuta grupuri de atribute ce pot
constitui determinanţi ai acestora
Toate atributele sau grupurile de atribute determinante, devin
CHEI CANDIDATE (posibile chei ale relaţiei). Cheile candidate
aparţinând aceleiaşi relaţii sunt caracterizate prin dependenţe
funcţionale reciproce.
Se stabilesc CHEILE PRIMARE dintre cheile candidate
Cu fiecare cheie primară şi cu atributele determinate direct (fără
tranzitivitate) se formează o nouă relaţie.
Se stabilesc CHEILE EXTERNE
30
EXEMPLUL III: Enunţ + RG
Reguli de gestiune:
a. O carte primeşte un alt Cod ISBN la fiecare retipărire;
b. Clienţii editurii sunt numai persoane juridice;
c. Preţul de vânzare se stabileşte în momentul producerii unei
cărţi, acesta fiind un preţ orientativ, rămânând neschimbat
până la epuizare, preţul efectiv de vânzare fiind negociat cu
fiecare client;
d. Numărul unei facturi şi codul ISBN luate împreună sunt
unice la nivel naţional;
e. Numele unei persoane juridice este considerat unic la nivel
naţional;
31
EXEMPLUL III – D.A.
1 Cod ISBN
editurii au rezultat 4
5
Stocul tipărit
Preţul de bază
următoarele atribute: 7 Număr factură
8 Data factură
Se elimină “atributele” 9
10
Cantitatea facturată
Denumire Carte facturată
sinonime şi calculate 11 Pret Carte factură
17 Telefon
CLIENŢI
18 CNP autor
FACTURI 19 Nume Prenume
CF client Nr Factură 20 Data naşterii
......... ......... 21 Adresa autor
32
Matricea dependentelor functionale
Data factura
CNP autor
Cod fiscal
Cod ISBN
Denumire
Denumire
Pret carte
prenume
Cantitate
facturata
aparitiei
Telefon
nasterii
Pret de
Adresa
Adresa
factura
factura
Numar
Stocul
Nume
tiparit
client
client
client
autor
carte
baza
Data
Data
Cod ISBN 1 1 1 1
Denumire carte
Data aparitiei
Stocul tiparit
Pret de baza
T T T
Numar factura 1 1 1 1 1
Data factura
Cantitate
facturata
Pret carte
factura
Cod fiscal
client 1 1 1
Denumire
client 1 1 1
Adresa client
Telefon
CNP autor 1 1 1
Nume prenume
Data nasterii
Adresa autor
Cod ISBN +
Numar factura 1T 1T 1T 1T 1T 1 1 1T 1T 1T 1T
33
AUTORI
Nume camp Tip date Obligatoriu Unic Integritate Reguli de
Referentiala validare
CNP Number,LI Da Da
AUTORI-CĂRŢI
Nume camp Tip date Obligatoriu Unic Integritate Reguli de
Referentiala validare
CNP Number,LI Da Da
CĂRŢI CONŢINUT
Nume camp
FACTURĂ
Tip date Obligatoriu Unic Integritate Reguli de
Referentiala validare
Text,
Cod ISBN
13,M
Da Da
........
Denumire carte Text, 50 Da
Cod ISBN
Data aparitiei Date/Time Da <=Data curenta
CONŢINUT FACTURĂ
Nume camp Tip date Obligatoriu Unic Integritate Reguli de validare
Referentiala
Serie factura Text,5,M Da Da Da
CLIENŢI
Nume camp Tip date Obligatoriu Unic Integritate Reguli de validare
Referentiala
Cod fiscal Number, LI Da Da
Adresa Text,100 Da
35
Telefon Text,20
36
Algebra relaţională
37
Algebra relaţională: Operatori de Asamblare
Relaţie2
a1 b1 c1 a3 b3 c3 a1 b1 c1
a2 b2 c2
a4 b4 c4
a2 b2 c2
a5 b5 c5
a3 b3 c3
a4 b4 c4
a5 b5 c5
39
Algebra relaţională: Operatori de Asamblare:I
a1 b1 c1 a3 b3 c3
A B C
a2 b2 c2 a4 b4 c4
a4 b4 c4
a4 b4 c4
a5 b5 c5
40
Algebra relaţională: Operatori de Asamblare:D
41
Algebra relaţională: Operatori de Asamblare:PC
Produsul cartezian a două relaţii R şi S (RxS) este o relaţie T
stocând mulţimea perechilor obţinute prin concatenarea
înregistrărilor aparţinând lui R cu cele aparţinând lui S.
Relaţia T RxS
Relaţia R Relaţia S
A B C D E
C D E
A B a1 b1 c1 d1 e1
c1 d1 e1
a1 b1 a1 b1 c2 d2 e2
c2 d2 e2
a2 b2 a1 b1 c3 d3 e3
c3 d3 e3
a2 b2 c1 d1 e1
a2 b2 c2 d2 e2
a2 b2 c3 d3 e3
42
Algebra relaţională: Operatori Unari
43
Algebra relaţională: Operatori Unari:Pr
Proiecţia unei relaţii R după anumite atribute, este relaţia R1 cu
structura R1 (Ai1, Ai2, … , Aip), ale cărei tupluri se obţin prin eliminarea
valorilor atributelor din R care nu apar în R1 şi prin suprimarea sau
nesuprimarea tuplurilor multiple.
Altfel spus, prin intermediul proiecţiei, dintr-un tabel cu un anumit
număr de coloane se obţine unul cu un număr mai mic de coloane
Relaţia R Relaţia R1
A B C D
A B
a1 b1 c1 d1 R1 (R;A,B)
a1 b1
a2 b2 c2 d2
a2 b2
a3 b3 c3 d3
a3 b2
44
Algebra relaţională: Operatori Unari:Pr
Selecţia relaţiei R faţă de criteriul Q este relaţia R1 cu aceeaşi structură
ca şi R, ale cărei tupluri satisfac criteriul specificat.
Relaţia R1
Relaţia R
A B R1SELECTIE(R;A=a2 A B
a1 b1 OR A=a3)
a2 b2 a2 b2
a3 b3
a3 b3
45
Algebra relaţională: Operatori de Extensie
46
Algebra relaţională: Operatori de Extensie: Join
Relaţia R1 Relaţia
TJOIN(R1,R2;Bi = Bj)
A B C
A B C D
a1 b1 c1 Relaţia R2
B D a1 b1 c1 d1
b1 d1
b1 d2 a1 b1 c1 d2
47
Algebra relaţională: Operatori de Extensie: Div
Diviziunea relaţiei R1 (A1, A2 … An) prin relaţia R2 (Ap+1, …, Am) este
relaţia E (A1, A2, …, Ap) formată din toate tuplurile care, concatenate cu
fiecare tuplu din R2, dă totdeauna un tuplu din R1 (E = R1 ÷ R2).
Relaţia RS
Relaţia S Relaţia R
A B C D E C D E A B
a1 b1 c1 d1 e1 c1 d1 e1 a1 b1
c2 d2 e2 a2 b2
a2 b2 c2 d2 e2
c3 d3 e3 a3 b3
a3 b3 c3 d3 e3
48
SGBD ACCESS : Caracteristici generale
Utilizează modelul relaţional în gestiunea bazelor de date
Aplicaţia ACCESS conţine un ansamblu de colecţii de obiecte tip
Tabel(Table)
Interogare(Query)
Formular(Form)
Raport(Report)
Pagină Web(Page)
Macro(Macro)
Modul(Module)
Dispune de o interfaţă prietenoasă pentru construirea obiectelor tip şi
de numeroşi asisteţi(Wizard-uri)
Permite schimbul de date cu alte aplicaţii
Permite lucru în reţele de calculatoare
Permite programarea :
Declarativă(QBE, SQL, acţiuni în obiecte macro)
Procedurală(VBA)
49