Documente Academic
Documente Profesional
Documente Cultură
2. MODELAREA DATELOR
În 1970, matematicianul american Edgar F. Codd a publicat un articol care marchează începutul existenței MR:
Codd E.F. (1970). A relational model of data for large shared data banks. Comm. ACM, 13(6), pp. 377-387
Regulile lui Codd:
Regula fundamentală: Orice sistem care pretinde sau i se face reclamă de a fi un SGBDR trebuie să fie
capabil să gestioneaze în întregime bazele de date prin capacităţile sale de relaţionare.
1. Reprezentarea informaţiilor. La nivelul logic, toate informaţiile dintr-o BD relaţională sunt reprezentate
explicit într-un singur mod – prin valorile din tabele (relaţii de bază).
2. Accesul garantat. Se garantează faptul că orice element (dată) dintr-o BDR este accesibil din punct de
vedere logic prin apelarea la o combinaţie de nume de tabel, valoare a cheii primare şi nume de coloană.
3. Tratarea sistematică a valorilor null. Valorile null sunt acceptate pentru a reprezenta informaţiile lipsă şi
pe cele care nu pot fi aplicate în mod sistematic, indiferent de tipul de date.
4. Catalog dinamic online, bazat pe modelul relaţional. Descrierea BD este reprezentată la nivel logic în
acelaşi mod ca şi datele obişnuite, astfel încât utilizatorii autorizaţi pot folosi pentru interogarea acesteia
acelaşi limbaj relaţional aplicat datelor curente.
5. Sublimbaje de date cuprinzătoare. Un sistem relaţional poate accepta mai multe limbaje şi diverse moduri
de utilizare a terminalelor. Totuşi trebuie să existe cel puţin un limbaj ale cărui instrucţiuni să poată exprima
următoarele: •• definirea datelor •• definirea vederilor •• manipularea datelor •• constrângerile de integritate ••
autorizarea •• limitele tranzacţiilor (început, efectuare şi rulare înapoi).
1. Modelul relațional, concepte de bază (continuare)
Concepte :
Modelul relațional nu include regulile, structurile, operațiile referitoate la
implementarea fizica a unui sistem de baze de date;
Modelul relațional oferă o metodă declarativă pentru specificarea relațiilor la etapa
proiectării BD;
Datele sunt reprezentate ca structuri bidimensionale, relatii.
O relatie este alcatuita dintr-un numar finit de elemente numite atribute.
Fiecare atribut poate lua valori intr-un domeniu finit, numit domeniu.
Numarul de atribute ale unei relatii: aritate (cardinalitate).
Elementele unei relatii: tupluri (tuples) sau inregistrari (records).
Relatie Tabel
Inregistrare Rand in tabela
2. Structura relațională a datelor
Coloană,
Relație, tabel, entitate Domeniu
Cheie
primară
Descriere
Anul
Cod NP Funcția Salariu (schema
angajării
relației)
023 Marchiz Dana inginer 7600 2005
12
3.3. Organizarea relațiilor între tabele
Legătura unu-la-mulți: Secții – Angajați
Tabelul Angajați Tabelul Secții
Cod NP angajat Sectia Număr Denumire sectie
023 Lupu Adriana 2 sec?ie
113 Marandici Dana 1 1 Resurse umane
101 Stratulat Andrei 2 2 Finante
056 Margine Octavian 1 3 Marketing
... ... ... ... ...
098 Didica Anatol 9 9 Proiectare
De fapt, o cheie externă este o constrângere de integritate, conform căreia setul de valori
cheie străine este un subset al valorilor cheie potențiale ale unei anumite relații.
3.3. Organizarea relațiilor între tabele
În tabelul Participare:
Participant– cheie externă în tabelul Angajați
Proiect – cheie externă în tabelul Proiecte
3.4. Operațiuni asupra datelor în Modelul relațional
Avantaje:
prezența unei baze teoretice;
gradul maxim de independență a datelor față de programe;
disponibilitatea unui limbaj de interogare declarativă.
Dezavantaje:
eficiență scăzută a execuției interogărilor;
lipsa corespondenței clare între entitățile domeniului de activitate și tabelele bazelor de
date relaționale.
ANGAJAȚI
Activități:
Analiza activitatii desfasurate la momentul respectiv de beneficiarul aplicatiei sau de o multime
reprezentativa de beneficiari;
Analiza continutului de date şi a functionalitatii aplicatiilor software - daca exista - care vor fi inlocuite de
noua aplicatie (meniuri, machete ecran, machete rapoarte);
Analiza formularelor tipizate şi a altor documente utilizate de beneficiar pentru realizarea activitatii
respective;
Identificarea interdependentelor dintre datele stocate in baza de date şi a restrictiilor privind valorile lor;
Identificarea prelucrarilor care se declanseaza automat atat in cazul modificarii bazei de date cat şi la
momente prestabilite de timp (de exemplu sfarsit de luna, de an, etc.);
Identificarea operatiilor care sunt necesare beneficiarului in activitatea curenta dar care in acest moment nu
sunt realizate prin intermediul aplicatiilor software folosite precum si a operatiilor care pot fi incluse in
mod natural in noua aplicatie.
Identificarea bazelor de date existente care pot fi folosite de noua aplicatie - direct sau printr-un import
initial de date - evitandu-se reintroducerea manuala a acestora.
Identificarea modalitatilor de transfer de date intre noua aplicatie şi alte aplicatii care ruleaza deja la
beneficiar şi care vor fi folosite şi in viitor de catre acesta.
Identificarea necesitatilor privind datele şi prelucrarile care pot fi in viitor necesare beneficiarului, deci a
posibilelor dezvoltari in timp ale aplicatiei.
4.2. Elaborarea Modelului entitate-relație (ER)
21
4.2. Elaborarea Modelului entitate-relație (ER)(continuare)
Avantaje:
Nu este legat direct de nici unul dintre modelele folosite de sistemele de
gestiune a bazelor de date (relational sau orientat obiect) dar exista
algoritmi de transformare din model ER in celelalte modele de date.
Este intuitiv, rezultatul modelarii fiind o diagrama care defineste atat datele
stocate in baza de date cat şi interdependentele dintre acestea.
Poate fi usor de inteles de nespecialisti si faciliteaza punerea de acord cu
beneficiarul asupra structurii bazei de date a aplicatiei, evitandu-se in acest
fel o proiectare neconforma cu realitatea sau cu cerintele
Proiectarea se poate face pe portiuni, diagramele partiale rezultate putand fi
apoi integrate pe baza unor algoritmi şi metode bine puse la punct.
22
4.2. Elaborarea Modelului entitate-relație (ER)(continuare)
Notaţii E-R
Simboluri de bază
24
4.2. Proiectarea conceptuală - modelul entitate-relație (continuare)
25
4.2. Proiectarea conceptuală - modelul entitate-relație (continuare)
Atribut
proprietate sau caracteristică a unui tip de entitate care prezintă interes;
este memorată în fiecare instanţă a tipului de entitate respective;
toate instanţele unui tip de entitate au aceleaşi atribute;
exemple de tipuri de entităţi şi atribute:
• STUDENT: NUMĂR MATRICOL, NUME, ADRESĂ, NUMĂR TELEFON
• ANGAJAT: MARCĂ, NUME, ADRESĂ, CALIFICARE
• ŢARĂ: DENUMIRE, CONTINENT, SUPRAFAŢĂ, POPULAŢIE
• AUTOMOBIL: NUMĂR ÎNMATRICULARE, CULOARE, GREUTATE, PUTERE
• VÂNZARE: DATA, CINE VINDE, CUI VINDE, VALOARE
• CURS UNIVERSITAR: DENUMIRE, SPECIALIZARE, SEMESTRU, PROFESOR,
NUMĂR ORE PE SĂPTĂMÂNĂ, FORMĂ DE EXAMINARE
4.2. Proiectarea conceptuală - modelul entitate-relație (continuare)
Casificare atribute
atributele de identificare (formand impreuna identificatorul entitatii) reprezinta acea
multime de atribute care permit distinctia intre instantele aceleiasi entitati.
Exercițiu
Entitate Atribute
CLIENȚI nume, prenume, data nașterii, adresa, telefon
MAȘINI model, culoare, preț
SRVICIU denumire, descriere
TRANZACȚII suma, data
CONTRACT DE MUNCĂ data_început, salariu
4.2. Elaborarea Modelului entitate-relație (ER) (continuare)
STUDENT
ANGAJAT
Legături (asocieri)
asociere între instanţe ale uneia sau mai multor tipuri de entităţi care prezintă
interes pentru problema studiată
Relaţie cu atribut
4.2. Elaborarea Modelului entitate-relație (ER) (continuare)
0:1 0:M
32
4.2. Elaborarea Modelului entitate-relație (ER) (continuare)
1:1
PLAN DE
ÎNVĂŢĂMÂNT Conţine SEMESTRU
1:M
M:N
33
4.2. Elaborarea Modelului entitate-relație (ER) (continuare)
CANTITATE
34
4.2. Elaborarea Modelului entitate-relație (ER) (continuare)
Atribut asociat
In acest caz informatii ca anul absolvirii, media, specializarea nu pot fi conectate nici la
STUDENT (pentru ca un student poate fi absolventul mai multor facultati in ani diferiti, cu
medii diferite, etc.) si din motive similare nici la FACULTATE.
Ele descriu asocierea unui student cu o facultate si de aceea vor fi atasate asocierii
A_ABSOLVIT.
Toate atributele unei asocieri sunt atribute descriptive, neexistand in acest caz un
identificator al asocierii.
35
4.2. Elaborarea Modelului entitate-relație (ER) (continuare)
Exemplu:
37
4.2. Elaborarea Modelului entitate-relație (ER) (continuare)
Exprimarea cardinalităţii de tip „unu la mai mulţi” sunt asocieri în care maxima
cardinalităţii unei entităţi este unu, iar a celeilalte entităţi are valoarea „mulţi”.
Exemplu:
38
4.2. Elaborarea Modelului entitate-relație (ER) (continuare)
Exemplu:
39
4.2. Elaborarea Modelului entitate-relație (ER) (continuare)
Observaţie:
Asocierea de tip „mulţi la mulţi” se transformă în două asocieri de tipul „unul la mulţi” fiind, de
regulă, mai uşor de implementat şi de utilizat şi anume:
Exemplu: În cazul exemplului de mai sus, transformarea asocierii „mulţi la mulţi” în asocieri de
tipul „unu la mulţi” se poate realiza prin construirea unei noi entităţi DEPOZIT_PRODUS astfel:
40
4.3. Elaborarea schemei conceptuale
Relație
Entitatile pot forma relatii intre ele
Relatiile sunt reprezentate prin verbe
Intre doua entitati poate exista mai mult decat o relatie
Cardinalitatea unei relatii: numarul maxim de tupluri din fiecare entitate care participa la
o relatie.
Exemple: M 1
Student Facultate
studiază la
Multi-la-unul (many-to-one N:1)
1 1
Unu la unu (one-to-one 1:1) Profesor Facultate
angajat
Diagrama entitate-legatura
4.3. Elaborarea schemei conceptuale (continuare)
• Relației M:N se
evită prin
crearea unei
relații
suplimentare
4.3. Elaborarea schemei conceptuale (continuare)
Modul e o entitate dependenta de entitatea curs (un curs e format din mai multe
module). Cardinalitate intre master si detaliu: 1:M, cel putin 1:0 (un curs nu are nici un
modul).
Entitate recursiva PROFESORI PROFESORI
manager
4.3. Elaborarea schemei conceptuale (continuare)
In cazul in care despre anumite subclase ale unei clase de obiecte exista informatii
specifice, clasa şi subclasele (care la pasul anterior au fost catalogate ca entitati)
sunt interconectate intr-o ierarhie de incluziune sau generalizare, dupa cum este
cazul.
Rearanjare atribute:
NUME . . ..
MATR
STUDENT
CAMERA
MATR
CAMINIST
CAMIN
4.4. Transformarea în model relațional
Transformarea entitatilor
• Entitatile devin tabele
• Entitatile dependente devin tabele dependente
• Subentitatile devin subtabele (tabele ale caror cheie primara contine cheie straina ce
face referinta la cheia primara a tabelul superentitate).
Transformarea relatiilor
• Relatiile 1:1 devin chei straine, cheia straina fiind plasata in tabelul cu mai putine
inregistrari
• Relatia N:1 devine cheie straina plasate in tabelul care se afla in partea “multi” a
relatiei. Exemplu: o facultate are mai multi studenti, un student e la o singura facultate
• O relatie multi-multi N:M se transforma intr-un tabel asociativ, care are doua chei
straine pentru cele doua tabele asociate. Exemplu: mai multi studenti-la mai multe cursuri
Transformarea atributelor
• Atributele simple ale unei entitati devin coloane in tabelul provenit din relatie.
• Atributele repetitive (multivaloare) devin tabele dependente care contin o cheie
straina ce face referinta la cheia primara a entitatii si atributul multi-valoare.
• Atributele simple ale unei relatii M:N vor deveni coloane ale tabelului asociativ.
4.4. Transformarea în model relațional (continuare)
Etapele proiectării:
Datorita dependentelor prezente intre atributele relatiei, pot aparea urmatoarele anomalii:
- redundante in date;
- Anomalii de actualizare:
- Anomalie la insertie;
- Anomalie la stergere;
- Anomalie la modificare;
Anomaliile apar datorita dependentelor din baza de date, dependente pentru care
determinantul nu este cheie a tabelului.
Normalizarea: procesul reversibil de descompunere a unui tabel relational in tabele cu o
structura mai simpla, proces care are ca scop evitarea redundantei datelor si evitarea
anomaliilor de actualizare.
Reversibil: descompunerea se face fara pierdere de informatie.
4.5. Normalizarea bazelor de date relaționale (continuare)
4.5. Normalizarea bazelor de date relaționale (continuare)
Prima forma normala este o forma normala utilizata in normalizarea bazelor de date, care exclude
posibilitatea existentei grupurilor repetitive cerand ca fiecare camp intr-o baza de date sa cuprinda
numai o valoare atomica. De asemenea, prima forma normala cere si ca fiecare inregistrare sa fie
definita astfel incat sa fie identificata in mod unic prin intermediul unei chei primare.
Se pot elimina astfel de redundante dupa cum urmeaza: din tabelul initial se elimina coloana
“cod_autobuz”; se creeaza un nou tabel, cu atributele “cod_sofer” si “cod_autobuz”, cu doar 2
coloane, constituind impreuna cheia primara a noului tabel. Tabelele rezultate sunt in FNBC
(BCNF).
4.5.5. A patra forma normala (4NF – Fourth Normal Form)
In exemplul de mai jos, fiecare restaurant livreaza un tip de pizza intr-o arie de distributie. Pentru
ca aici cheia primara este formata din (Restaurant, Tip de pizza, Aria de distributie) si nu exista
atribute non-cheie, nu se incalca nici o forma normala anterioara (1, 2, 3 ori B-C). Dar deoarece
varietatile de pizza oferite de un restaurant sunt independente de ariile de distributie, exista
redundante in tabela: pentru fiecare Restaurant Jerry’s, se mentioneaza de 3 ori ca se ofera Tip de
pizza “Pufos”. De asemenea, daca dorim sa adaugam, de ex. tipul “Subtire” pentru Tip de pizza, la
Jerry’s, va trebui sa adaugam 3 inregistrari, cate una pentru fiecare Arie de distributie.