Normalizarea Bazelor de Date

download Normalizarea Bazelor de Date

of 103

Transcript of Normalizarea Bazelor de Date

Cuprins Capitolul I ............................................................................................................... 5 Despre baze de date .............................................................................................. 5 Introducere .................................................................................................................. 6 1.1 Istoric[20] ............................................................................................................... 7 1.2 Elemente de fond .................................................................................................. 9 1.3 Arhitectura unei baze de date [13] ........................................................................ 9 1.4 Modele conceptuale pentru sisteme de gestiune a bazelor de date .................... 14 1.5. Proiectarea logic a datelor ............................................................................... 26 1.6. Obinerea modelului logic de date ...................................................................... 31 CAPITOLUL II ....................................................................................................... 32 MODELUL LOGIC RELATIONAL. NORMALIZAREA .......................................... 32 Modelul logic relaional ....................................................................................... 33 2.1. Concepte de baz [20] ....................................................................................... 33 2.2 Relaii ntre tabele (Relationships)[12] ................................................................. 34 2. 3 Restricii de integritate ........................................................................................ 36 2.4 Regulile lui Codd [17] .......................................................................................... 37 2.5.Proiectarea bazelor de date relaionale [17] ........................................................ 38 2.6 Normalizarea bazei de date................................................................................. 40 2.7 Prima form normal (1NF First Normal Form) [11] ........................................ 42 2.8 Dependene funcionale [11]................................................................................ 45 2. 9 A doua form normal (2NF Second Normal Form) [11] ................................. 46 2. 10 A treia form normal (3NF Third Normal Form) ........................................... 47 2.11 Studiu de caz..................................................................................................... 50 CAPITOLUL III ...................................................................................................... 53 Aspecte didactice ale predrii normalizrii ....................................................... 53 n cadrul unitii de nvare ............................................................................... 53 3

"MODELAREA DATELOR .................................................................................. 53 3.1 Experimentul didactic .......................................................................................... 54 3.2 Caracterizarea claselor cuprinse n experiment .................................................. 54 3.3 Unitatea de nvare Modelarea datelor ............................................................. 55 3.4 Normalizarea. Prima form normal .................................................................... 78 3.5 A doua form normal ......................................................................................... 86 3.6 A treia form normal .......................................................................................... 92 3.7 Proiect final........................................................................................................ 101 Concluzii .................................................................................................................. 102 Bibliografie............................................................................................................... 104

4

Capitolul I Despre baze de date

5

IntroducereBazele de date se regsesc la tot pasul n viaa noastr de zi cu zi: la coal, la magazin, la agenia CFR sau la banc, oriunde. n spatele acestor aplicaii att de raspndite i de uor de utilizat se afl o ntreag echip care a analizat activitatea respectiv, a identificat cerinele beneficiarilor, a realizat un model care s permit rezolvarea eficient a acestor cerine, apoi l-au implementat, rezultnd o baz de date i un pachet de programe care s permit exploatarea acesteia. Modelarea datelor reprezint prima etap n dezvoltarea aplicaiilor orientate pe baze de date i const n analiza datelor i a relaiilor dintre acestea n scopul elaborrii modelului conceptual. Eficiena modelului realizat este determinant pentru aplicaia creat. Dei pentru un dezvoltator de baze de date studiul modelrii datelor este echivalent cu studiul algoritmicii pentru un programator, modelarea datelor nu este studiat sistematic i riguros n coal, accentul fiind plasat pe partea de implementare i de exploatare. Se studiaz amnunit elemente de sintax a unui limbaj de manipulare a datelor i cum se utilizeaz elementele limbajului pentru interogarea bazei de date, dar... nu nvm s proiectm baza de date. Nu nvm s comunicm cu beneficiarii, sa analizm cerinele acestora pentru a identifica datele relevante i relaiile importante care exist ntre acestea. In lucrarea de fa se ncearc s se arate rolul analizei proiectrii bazelor de date i necesitatea realizrii unor judeci ct mai corecte despre viziunea de ansamblu a situaiilor ce pot aprea n practic.

6

1.1 Istoric[20]Cnd vine vorba despre stocarea informaiilor, pentru unii acest termen nseamn o agenda veche n care sunt trecute toate datele importante de care au nevoie: adrese, numere de telefon, informaii financiare s.a.m.d.. Pentru cei din domeniul IT i nu numai, nseamn sisteme dedicate special stocrii datelor importante. n acest articol voi face o istorie a ceea ce nseamn stocare datelor cu ajutorul produselor informatice. Primele baze de date erau dezvoltate pe sisteme mainframe i erau manipulate de oameni special pregtii pentru a gestiona aceste sisteme. Aceste baze de date erau simple Sisteme de Gestiune a Bazelor de Date (SGBD). Primul Sistem de Baze de Date Relaionale (SGBDR) a fost lansat de Oracle Corporation i folosea limbajul de interogare SQL. Dei versiunea original a fost dezvoltat pentru sisteme VAX/VMS, Oracle a fost unul dintre primii furnizori care a lansat o versiune i pentru sistemele PC pe sistemul de operare DOS. La jumtatea anilor 80, Sybase a lansat propriul sau SGBDR - SQL Server. Acesta avea biblioteci client pentru accesul la baza de date. Asigurnd suportul pentru proceduri rezidente (astzi denumite "proceduri stocate") i interoperabilitatea cu o diversitate de reele, SQL Server a devenit un produs de succes n scurt timp, mai ales n mediile client/server. O dat cu dezvoltarea sistemelor personale (PC), au aprut i primele aplicaii de baze de date care foloseau un singur fiier pentru a stoca toata informaia din baza de date (denumite baze de date "flat file"). Ele erau de tip Xbase, un limbaj care s-a rspndit foarte repede fiind folosit in special la manipularea datelor. Sistemele care l-au folosit, daca mai este nevoie sa le enumer, au fost dBase, FoxBase, FoxPro. Aceste versiuni rulau sub sistemul MS-DOS i mprteau limitrile acestuia. Cea mai rspndit aplicaie care folosea limbajul xBase a fost FoxPro, sistem dezvoltat de firma Fox Software. Chiar i n zilele noastre exist firme care stocheaz alte extrem de importante n baze de date FoxPro, iar cel mai cunoscut exemplu este cel al organizaiei care gestioneaz Euro Tunel. Aceasta folosete o aplicaie care gestioneaz cteva sute de GB de date.

7

La nceputul anilor 90, firma Microsoft Corporation a lansat aplicaia Access, aplicaie care se bazeaz n mare parte pe logica de stocare a sistemului FoxPro, sistem care fusese achiziionat de firm n 1989. Aplicaia Access a devenit, n scurt timp, cea mai folosit aplicaie de gestiune a bazelor de date "flat file" de pe sistemele personale. Ajuns acum la versiunea 9 (denumit 2000), sistemul de stocare s-a schimbat fiind pregtit s fie scalat oricnd ctre o baza de date Microsoft SQL Server. Totodat, ncepnd cu versiunea 7 i s-a adugat un limbaj de programare dedicat (Visual Basic for Applications - VBA), bazat pe limbajul de programare Visual Basic. Prin intermediul acestuia se puteau manipula datele mai uor, se puteau folosi automatisme pentru diverse interogri, afiri etc. ncepnd cu versiunea 9, limbajul integrat este compatibil cu Visual Basic i cu limbajul folosit de MS SQL Server. n privina sistemelor server, piaa s-a dezvoltat uimitor de repede deoarece sa constatat ct de folositoare sunt sistemele dedicate acestui lucru. Oracle a lansat i i-a dezvoltat baza de aplicaii server, astzi ajungnd la versiunea 9. ncepnd cu versiunea i, au fost introduse extensii orientate pe obiecte. Lansat cu ocazia Oracle OpenWorld , Oracle i reprezint cea mai complet infrastructura pregtit pentru rularea aplicaiilor Internet. Oracle i include Oracle i Database i Oracle i Application Server i pachetul de unelte de dezvoltare Oracle i Developer Suite. n ceea ce privete corporaia Microsoft, aceasta a lansat tot n anul 2000 serverul de baze de date SQL Server 2000. Aplicaia se dorete a fi un concurent direct pentru aplicaiile Oracle, iar pentru acest fapt i s-a adugat suport 100% pentru limbajul XML prin intermediul cruia se poate interoga direct serverul dintrun browser (dac serverul a fost configurat s suporte aceast facilitate). Tot n 2000, compania IBM a lansat varianta 7 a aplicaiei DB 2. Aceast aplicaie, ca i Oracle, este implementata pe mai multe platforme (inclusiv Linux), fiind o aplicaie pur obiectual. i pentru ca am ajuns la aplicaii de baze de date obiectuale, trebuie s amintim i de aplicaia companiei Computer Associates, Jasmine. Deoarece despre aceasta aplicaie nu se tiu prea multe n Romnia, promit ca am sa revin cu mai multe detalii. Pe sistemele Linux, cel mai folosit server de baze de date este MySQL. Cu toate c exist un alt produs gratuit (MySQL este gratuit att timp ct aplicaia8

dezvoltata nu este revnduta) - PostgreSQL, MySQL rmne preferatul programatorilor de Linux. De ce? Pentru c limbajul cel mai folosit pe partea de server web - PHP - dispune de o extensie MySQL nglobat. Dar nu numai acest lucru a influenat folosirea MySQL. Una dintre alegeri a fost i datorit uurinei administrrii acestui sever, el dispunnd de un client de accesare inclus.

1.2 Elemente de fond Organizarea datelor se realizeaz intr-o form centralizat care prezint o serie de avantaje: 1. reducerea redundanei datelor memorate; 2. evitarea inconsistenei datelor memorate; 3. posibilitatea partajrii datelor; 4. ncurajarea introducerii standardelor 5. posibilitatea aplicrii restriciilor de securitate; 6.Meninerea integritii datelor. Independena datelor este o problem a crei rezolvare constituie un scop n sine n concepia i organizarea oricrei baze de date. Independena datelor nseamn ca exist o delimitare net ntre reprezentarea fizic a datelor i imaginea pe care o are utilizatorul asupra acestor date (memorarea i organizarea datelor este transparent pentru utilizator).

1.3 Arhitectura unei baze de date [13]Arhitectura sistemului de baze de date este format din urmtoarele componente (Figura 1): baza/bazele de date reprezint componenta de tip date a sistemului (coleciile de date propriu-zise, indecii); sistemul de gestiune a bazei/bazelor de date ansamblul de programe prin care se asigur gestionarea i prelucrarea complex a datelor i care reprezint componenta software a sistemului de baze de date (Sistem de Gestiune a Bazelor de Date SGBD); 9

alte componente proceduri manuale sau automate, inclusiv reglementri administrative, destinate bunei funcionri a sistemului, dicionarul bazei de date (metabaza de date) care conine informaii despre date, structura acestora, elemente de descriere a semanticii, statistici, documentaii, mijloacele hardware utilizate, personalul implicat.

Arhitectura intern a unui sistem de baze de date conform standardului ANSI/X3/SPARC (1975) conine trei niveluri funcionale. O caracteristic fundamental a bazelor de date este aceea c produce cteva niveluri de abstractizare a datelor prin ascunderea (transparena) detaliilor legate de stocarea datelor, utilizatorilor. Se definete modelul datelor, ca un set de concepte utilizat n descrierea structurii datelor. Prin structura bazei de date se nelege tipul datelor, legtura dintre ele, restriciile aplicate datelor. O structur de date asociat unei baze de date poate fi reprezentat pe trei niveluri, Figura 2, astfel [17]:

Nivelul intern constituit din schema intern ce descrie structura de stocare fizic a datelor n baza de date, utiliznd un model al datelor fizice. La acest nivel se descriu detaliile complete ale stocrii i modul de acces la date. Nivelul conceptual sau schema conceptual, descrie structura ntregii baze de date pentru o cumunitate de utilizatori. La nivel conceptual se face o descriere complet a bazei de date ascunzndu-se detaliile legate de stocarea fizic i detaliind descrierea entitilor, tipurilor de date, relaiile dintre ele i restriciile asociate.

Nivelul extern sau nivelul vizual (utilizator), include o colecie de schemeexterne ce descriu baze de date prin prisma diferiilor utilizatori.

10

Scheme externe [6] O schem extern reprezint coninutul bazei de date aa cum este ea vzut de un utilizator particular. Exemplu: Pentru un utilizator poate s apar ntr-o vedere atributul numr strchini (= numrul fragmentelor ceramice de tipul N), dar la nivel logic i fizic acest atribut nu este indicat, din cauza permanentei modificri a coninutului su. n acest caz se folosete la nivel logic atributul ceramic (= numrul total general de fragmente ceramice) din care se scad atributele nr. oale, nr. farfurii, nr. chiupuri, etc. (= numrul fragmentelor ceramice MN) din baza de date. Astfel se permite aflarea numrului exact al fragmentelor ceramice de tip strachin din baza de date. Pentru utilizatorul obinuit, modul de definire a vederilor este transparent, el putnd s obin sau s modifice informaiile dorite prin intermediul unor comenzi cu 11

structur dat, folosind formule predefinite pe care le completeaz sau poate utiliza un sistem de meniuri. n reprezentarea intuitiv a vederilor intervin noiunile de entitate, relaie, atribut, cheie, funcionalitate, diagram, i altele pe care le vom definii ulterior.

Scheme conceptuale O schem conceptual este o reprezentare a ntregii informaii coninute n baza de date ce combin subschemele vederilor ce privesc o anumit aplicaie ntr-un model unitar. Acest tip de schem trebuie s se bazeze pe un model teoretic i s fie simpl, adic uor de neles i de prelucrat. Sistemele de gestiune a bazelor de date au fost clasificate n trei grupe mari, n funcie de tipul elementelor cu care lucreaz i a structurilor obinute: a. modelul reea permite lucrul cu entiti i relaii binare de tipul 1:1 i 1:N, diagrama rezultat fiind un graf oarecare; b. modelul arborescent (ierarhic) permite lucrul cu entiti i relaii binare de tipul 1:1 i 1:N, iar diagrama este alctuit dintr-o mulime de arbori; c. modelul relaional n care intervin numai relaii i operaii cu aceste relaii. Scheme interne Schemele interne descriu diferitele fiiere utilizate pentru memorarea informaiilor bazei de date i modul de operare cu ele. Exist mai multe moduri de organizare a fiierelor, cele mai cunoscute fiind: organizarea secvenial; organizarea cu index rar; organizarea cu index dens; organizarea cu dispersie; organizarea folosind B-arbori.

Sistemul de gestiune a bazelor de date (DBMS) este softul (programul) care coordoneaz toate accesele la baza de date, n modul urmtor: a. un utilizator emite o cerere de acces, folosind un limbaj particular de manipulare a datelor; b. DBMS-ul intercepteaz cererea i o interpreteaz; 12

c.

DBMS-ul

inspecteaz,

pe

rnd,

schema

extern,

maparea

extern/conceptual, schema conceptual, maparea conceptual/intern i definiia de structur de memorare; d. DBMS-ul realizeaz operaiile necesare asupra bazei de date memorate. Administratorul bazei de date (DBA) urmeaz apoi s gestioneze operaiile specifice, responsabilitile lui incluznd: decizia asupra coninutului informaiei inclus n baza de date; decizia asupra structurii de memorare i a structurii de acces; legtura cu utilizatorii; definirea procedurilor de verificri autorizate i de validri; definirea unei strategii pentru salvri i restaurri; monitorizarea performanei i rspunsuri la schimbri de cerine.

Instrumentul utilizat de DBA n lucrul cu programele utilitare este dicionarul de date. El este o baz de date ce conine date despre date, adic descrieri ale obiectelor sistemului. De asemenea att DBA ct i utilizatorul beneficiaz de o interfa utilizator pentru a uura accesul la date. Aceast interfa poate fi definit ca un ecran n sistem, sub care totul devine invizibil pentru utilizator. Interfaa se afl ntotdeauna la nivelul extern. ntr-un sistem de baze de date (DBMS) datele sunt memorate la locaia la care sunt folosite mai des, dar ele sunt disponibile (prin reeaua de comunicaii) i utilizatorilor din alte locaii. Acest tip de baz de date, mprtiat ntr-o reea de calculatoare se numete baz de date distribuite.

13

1.4 Modele conceptuale pentru sisteme de gestiune a bazelor de date1.4.1. Modelul entitate-relaie (E-R) 1.4.2. Modelarea conceptual a datelor folosind modelul E-R 1.4.3. Generalizarea 1.4.4. Pai n modelarea datelor 1.4.5. Exemplu de modelare E-R 1.4.1 Modelul entitate-relaie (Entity-Relaionship Model, E-R, ERD) [19] Lumea noastr bogat n tehnologie produce cantiti vaste de fapte care au nevoie de structur i ordine. Conceptele cu care lucreaz sunt entitate, relaie, atribut Ca rezultat al utilizrii acestei modelri se va obine o diagram E-R, n fapt schema conceptual . Entitate este un obiect distinct de lumea real; poate fi o persoan, un lucru, un loc, obiecte, evenimente, concepte din mediul utilizatorului pentru care organizaia dorete s dein date exemple: persoan: ANGAJAT, STUDENT, PACIENT loc: STAT, REGIUNE, AR obiect: MAIN, CLDIRE, AUTOMOBIL eveniment: VNZARE, NREGISTRARE, SCHIMBARE concept: CONT BANCAR, CURS UNIVERSITAR, CENTRU DE PRELUCRARE Tip de entitate (clas de entitate) grupeaz toate entitile care au proprieti sau caracteristici comune se exprim printr-un substantiv la singular (scris cu majuscule) Instan de entitate (realizare a entitii) apariie singular a entitii De exemplu, s analizm dac este cinele o instan sau o entitate. 14

Depinde de: Dac suntem interesai n diferite tipuri de animale, este logic s ne gndim la un animal entitate cu cinele cazuri, pisica, cai i aa mai departe. Dar daca vom rula o afacere de cine-de ras? Avem nevoie de a pstra date despre rase diferite de cini, dar nu i pe alte specii de animale. Pentru un cine-de rasa, aceasta este mai natural s ne gndim la un cine cu instane ca CIOBNESC, DALMAIAN, LABRADOR i aa mai departe. Set de entiti

reprezint o colecie de entiti de acelai tip. Notaii E-R Simboluri de baz

Gradul relaiilor

Atributele atribut: proprietate sau caracteristic a unui tip de entitate care prezint interes este memorat n fiecare instan a tipului de entitate respective toate instanele unui tip de entitate au aceleai atribute valorile unui atribut difer de la o instan a lui E la alta exemple de tipuri de entiti i atribute: STUDENT: NUMR MATRICOL, NUME, ADRES, NUMR TELEFON ANGAJAT: MARC, NUME, ADRES, CALIFICARE AR: DENUMIRE, CONTINENT, SUPRAFA, POPULAIE AUTOMOBIL: NUMR NMATRICULARE, CULOARE, GREUTATE, PUTERE VNZARE: DATA, CINE VINDE, CUI VINDE, VALOARE 15

CURS UNIVERSITAR: DENUMIRE, SPECIALIZARE, SEMESTRU, PROFESOR, NUMR ORE PE SPTMN, FORM DE EXAMINARE

Clasificarea atributelor unui tip de entitate atribut cheie: identific o instan a entitii cheie simpl - un singur atribut cheie compus - un grup de atribute

atribut non-cheie

Tipuri de atribute cheie cheie candidat: identific unic o instan a entitii o entitate poate avea mai multe chei candidat cheie primar: cheia candidat ca identificator pentru tipul de entitate atributele ce formeaz cheia primar sunt subliniate n diagrama E-R cheie surogat: atribut artificial pe post de cheie primar Stabilirea cheii primare CP a unei entiti E [Bruce, 1992] (i) cheia candidat a lui E care nu-i modific valoarea pe toat durata de via a oricrei instane (ii) pentru orice instan a lui E, atributele lui CP au valori valide i non-nule (iii) dac CP are prea multe atribute, se nlocuiete cu o cheie surogat (iv) nu folosim chei inteligente (clasificare, localizare, structurare)

Atribute i cheie primar - reprezentare E-R

Atribute cu valori multiple

Atribut cu o singur valoare: o instan are o valoare pentru el Atribut cu valori multiple (repetitiv): o instan are mai multe valori pentru el16

Relaii

relaie: asociere ntre instane ale uneia sau mai multor tipuri de entiti care prezint interes pentru problema studiat

Relaie n notaia E-R

Relaie cu atribut Situaie Fie entitile CNTEC i GEN.

Putem avea un gen muzical fr nici un cntec?De ce avei un gen muzical fr nici un cntec? CNTECUL are un tip. Cte genuri i pot aparine unui cntec? Reguli de apartenen determin cardinalitatea sau gradul unei relaii. 17

Gradul unei relaii

numrul de tipuri de entiti care particip n relaie Clasificarea relaiilor dup gradul lor: unare sau recursive (de gradul 1) binare (de gradul 2) ternare (de gradul 3)O relaie se poate referi la o entitate n sine. Examinai-va urmtorul scenariu. Un angajat gestioneaz SALARIAI Un angajat este gestionat de un angajat Fiecare angajat are un singur manager, inclusiv directorul general, care gestioneaz el / ea. Fiecare manager poate gestiona mai muli angajai. " Din moment ce managerii sunt, de asemenea, angajai, exist o singur entitate aici: Angajat.

Cardinalitatea unei relaii Lum un exemplu

Fie entitile CLIENI i COMENZI.18

CLIENT are comenzi: opionalitate i cardinalitate. Opionalitate: trebuie sau poate? Fiecare comand trebuie s fie plasat ctre un CLIENT. Fiecare client trebuie s plaseze una sau mai multe comenzi. Cardinalitatea = Cte? Fiecare comand trebuie s fie plasate ctre un (i numai unul) CLIENT. Fiecare client trebuie s plaseze una sau mai multe comenzi. La modul general, considerm dou entiti A i B; numim cardinalitate: de la entitatea A la entitatea B: numrul de instane ale entitii B asociate unei instane a entitii A. de la entitatea B la entitatea A: numrul de instane ale entitii A asociate unei instane a entitii B.

Relaii unare

Relaii binare (stnga spre dreapta)

19

Relaii binare (dreapta spre stnga)

Relaie ternar

Exprimarea cardinalitii m:M se pune la captul B pentru relaia de la A la B m - cardinalitate minim: numrul minim de instane ale lui B asociate unei instane a lui A M - cardinalitate maxim : numrul maxim de instane ale lui B asociate unei instane a lui A m = 0 - relaie opional m > 0 - relaie obligatorie m = M - se specific numai unul dintre ele

20

Exprimarea cardinalitii n diagramele E-R [18]

1.4.2 Modelarea conceptual a datelor folosind modelul E-R (entitate-relaie)[16] n faza de proiectare conceptual a bazelor de date se proiecteaz schema conceptual i schemele externe ale bazei de date. Modelul Entitate-Relaie (Entity-Relaionship Model) este un model conceptual de nivel nalt al unei baze de date, care definete mulimile de entiti i asocierile dintre ele, dar nu impune nici un mod specific de structurare i prelucrare a datelor. Elementele eseniale ale modelului Entitate-Relaie sunt entitile (entities) i asocierile dintre acestea (Relationships). Toate entitile similare, care pot fi descrise prin aceleai atribute, aparin unui acelai tip de entitate (entity type), iar colecia tuturor entitilor de acelai tip dintr-o baz de date constituie o mulime de entiti (entities set). n general, n modelul E-A se folosete aceeai denumire att pentru un tip de entitate ct i pentru mulimeaentitilor de acel tip. Fie urmtorul exemplu ntre dou entiti: Entitate A entitate B

Fiecare entitate A Opionalitate (trebuie s fie / pot fi) Cardinalitatea entitatea B; O relaie are dou sensuri, prin urmare deosebim: 21

entitate printe entitate dependent (slab)Entitate printe i entitate dependent Intre dou entiti se poate stabili urmtoarea regul: cheia primar a entitii printe este prima component a cheii primare a entitii slabe

Putem avea atribute cu valori multiple cum ar fi n exemplul de mai jos calificrile unui angajat mai multe la numr:

Pot aprea i mai multe atribute cu valori multiple, de exemplu, pentru entitatea STUDENT vom avea atribute repetitive pentru DISCIPLINA, DATA EXAMEN, NOTA:

22

Modelarea datelor dependente de timp (time-stamping) Fie entitatea PRODUS din imaginea de mai jos; spre deosebire de situaiile de mai sus aici intervin atribute repetitive dependente de momentul n care un produs este nregistrat:

23

1.4.3 Generalizarea[16] Generalizare se numete procesul de minimizare a diferenelor dintre entiti, pentru identificarea caracteristicilor comune. Tehnici de gestionare: definirea i descompunerea asocierilor; clasificarea n entiti i atribute; definirea asocierilor (se specific gradul, conectivitatea i obligativitatea); integrarea vederilor (pentru baze de date complexe diagramele rezultate trebuiesc integrate avnd grij s nu apar probleme de redundan sau inconsisten) 1.4.4 Exemplu de modelare E-R [20]

2. Descrierea problemei

Vacane la Munte i la Mare (VMM) este o firm de turism care are n proprietate i nchiriaz cabane de vacan n toat ara. Exist dou tipuri majore de proprieti: montane i marine. Majoritatea nchirierilor se fac pe durata unei sptmni (unitatea de nchiriere este sptmna). Se cere s se realizeze o aplicaie pentru planificarea nchirierii proprietilor VMM. 2. Definirea entitilor i atributelor acestora Modelarea conceptual a datelor pornete de la patru documente folosite n sistemul de eviden manual: Client, Contract de nchiriere, Proprietate marin i Proprietate montan. Fiecare document va considerat ca entitate i va fi modelat separat. 2.1. Entitatea CLIENTCLIENT NUME ADRES TELEFON 064-145321 056-234543 01- 8989891 SUMA MAXIM 200.000 250.000 300.000

Petre Ionescu Soporului 15, 3400 Cluj-Napoca Georgiana Duu Mrului 21, 1900 Timioara Romeo Tudor Fraii Buzeti 3/20, 75112 Bucureti

a) Documentul CLIENT

24

Entitile PROPRIETATE MARIN i PROPRIETATE MONTANPROPRIETATE MARIN STRADA ORAS JUDE COD Valului 12 Mamaia, CT, 1200 Tomis 25 Mangalia, CT, 1230 PROPRIETATE MONTAN STRADA ORAS JUDE COD Bradului 1 Stibinei 2 Sinaia, PH, 2200 Bora, MM, 4230 NUMR CAMERE 3 4 NUMR CAMERE 3 4 CHIRIE UZUAL 75 120 CHIRIE UZUAL 150 75 DISTAN PLAJ 2 1/2 SCHI C C, F

(a) Documentele PROPRIETATE MARIN i PROPRIETATE MONTAN

Explicarea diagramei E-R 1. Exist o relaie ntre PROPRIETATE MARIN i PROPRIETATE, ca i ntre PROPRIETATE MONTAN i PROPRIETATE. 2. Exist o relaie numit Semneaz ntre CLIENT i CONTRACT DE NCHIRIERE. Cardinalitatea acesteia este opional 0-M de la CLIENT la CONTRACT DE NCHIRIERE i obligatorie de la CONTRACT DE NCHIRIERE la25

CLIENT. Prin urmare nu poate exista un contract de nchiriere semnat i fr chiria valid.

1.5. Proiectarea logic a datelor1.5.1. Modelul logic de date 1.5.2. Transformarea diagramelor E-R n relaii 1.5.3. Transformarea entitilor n relaii (tabele) ale modelului relaional 1.5.4. Reprezentarea relaiilor din diagrama E-R n modelul relaional

1.5.1. Modelul logic de date Scopul modelrii logice a datelor este obinerea unui model de date adecvat pentru implementare. Caracteristicile unui model de date bun Un model de date descrie structura datelor adic modul n care utilizatorul percepe datele precum i operaiile efectuate asupra datelor (accesare, modificare): (a) simplitate (b) non-redundan (c) flexibilitate i adaptabilitate la ntreinere (d) independena de main i de softul de sistem folosit

Clase de modele logice de date ad-hoc ierarhic reea relaional orientat pe obiecte

Modelul ad-hoc

fiecare aplicaie are propriul su model de date caracteristici : lipsa controlului centralizat asupra datelor lipsa operaiilor abstracte de manipulare a datelor26

dependena de implementarea concret modele matematice: modelul relaional i modelul orientat pe obiecte

Modelul ierarhic

istoric: nceputul/mijlocul anilor 70 avantaje regsire foarte eficient a datelor adecvat modelelor stabile de date (nu se modific n timp)

dezavantaje rigiditate lips de flexibilitate orice modificare a definiiei datelor provoac reorganizri masive

Modelul reea istoric: nceputul/mijlocul anilor 70 generalizare a modelului ierarhic regsire foarte eficient a datelor mai flexibil dect modelul ierarhic

avantaje

27

Modelul relaional deosebirea fa de modelul ierarhic: legturile dintre tabele nu se exprim prin adrese fizice, ci prin valori de cmpuri avantaje mai flexibil dect modelul reea SQL - nivel nalt, neprocedural mai puin eficient dect modelele anterioare o tabel are structur liniar elementele unei coloane sunt de acelai tip

dezavantaje

implementri dBase, FoxPro Oracle Microsoft SQL Server Informix

Modelul orientat pe obiecte deosebirea fa de modelul ierarhic : obiecte complexe, operaii complexe (grafic, transformare) avantaje elimin liniaritatea modelului relaional aplicaii specifice CAD, GIS,

28

1.5.2. Transformarea diagramelor E-R n relaii

pai 1. Transformarea entitilor n relaii (tabele) ale modelului relaional 2. Reprezentarea relaiilor din modelul E-R n modelul relaional Exemple

29

1.5.3. Transformarea entitilor n relaii (tabele) ale modelului relaional Fiecare tip de entitate din diagrama E-R se reprezint printr-o tabel, n care: (a) cheia primar a tabelei este cheia primar a tipului de entitate (b) fiecare atribut non-cheie al tipului de entitate devine atribut (coloan) non-cheie a tabelei 1.5.4. Reprezentarea relaiilor din diagrama E-R n modelul relaional Se adaug chei strine la tabelele realizate n pasul anterior, care reprezint relaiile existente ntre entitile corespunztoare Exist urmtoarele situaii distincte: (i) relaii binare (a) 1:N, 0:N i (b) 1:1 (ii) relaii binare M:N (iii) relaii unare (iv) relaii ISA cheia primar a entitii A se adaug pe post de cheie strin n tabela B PACIENT (1) are (1-M) FI DE CONSULTAIE FI DE CONSULTAIE(DATA, MEDIC, DIAGNOSTIC, COD PACIENT) FILM (1) este stocat sub form de (0-M) COPIE FILM COPIE FILM(NUMR COPIE, TIP SUPORT, ANUL FABRICAIEI, COD FILM) (ib) Relaii binare 1:1 A (1) R (1) B variante de rezolvare cheia primar a lui A se adaug pe post de cheie strin la B cheia primar a lui B se adaug pe post de cheie strin la A ambele de mai sus

(ia) Relaii binare 1:N i 0:N A (1) R (1-N) B, A (1) R (0-N) B i A (1) R (1) B

(ii) Relaii binare M:N i 0:N A (1-M) R (1-N) B se creeaz o nou tabel C cu cheia primar format din cheia primar a lui A + cheia primar a lui B; dac R are atribute, acestea se adaug la C (coloane non-cheie) 30

(iii) Relaii unare A (0-1) R (0-1) A i A (1) R (1-M) A se adaug la A un atribut nou, pe post de cheie strin, care este cheia primar a instanei cu care A este n relaie;numele atributului trebuie s sugereze relaia PERSOAN (0-1) este cstorit cu (0-1) PERSOAN PERSOAN(COD NUMERIC PERSONAL, NUME, ADRES, DATA NATERII, COD NUMERIC PERSONAL SO)

1.6. Obinerea modelului logic de date pai1. Verificarea entitilor 2. Normalizarea entitilor din modelul E-R1.6.1. Verificarea entitilor

Precondiie pentru normalizare: orice tip de entitate trebuie s aib cheie primar. Situaii posibile (a) entitile din modelul conceptual de date au specificat cheia primar: se verific dac cheia primar asigur proprietatea de identificare unic, folosind conceptul de dependen funcional (BD) (b) entitile din modelul conceptual de date au specificate numai atributele: se determin cheile candidat se alege dintre ele cheia primar dac cheia candidat are prea multe atribute, se poate introduce o cheie surogat1.6.2. Normalizarea entitilor din modelul E-R

respect etapele descrise la normalizare (BD) relaie cu tip de entitate (entitate) linie cu instan de entitate

la fiecare pas se examineaz toate entitile curente se produc entiti noi, iar cele existente sunt supuse revizuirii31

CAPITOLUL II MODELUL LOGIC RELATIONAL. NORMALIZAREA

32

Modelul logic relaional

2.1. Concepte de baz [20]Modelul relaional i datoreaz numele noiunii matematice numit RELAIE. O relaie poate fi simbolizat astfel: R(a1, a2, a3,an) unde R=numele relaiei, a1, a2, ... an sunt numele atributelor sau ale constituenilor. Prin definirea i utilizarea operatorilor relaionali, teoria relaiilor permite fundamentarea cercetrilor efectuate n domeniul proiectrii bazelor de date relaionale i al limbajelor relaionale. Algebra relaional conine, pe lng operatorii de mulimi care trateaz relaiile ca pe mulimi de elemente cu operaiile cunoscute {reuniunea, intersecia, diferena, produsul cartezian) i operatorii relaionali specifici (selecia, proiecia, compunerea sau jonciunea). Fr a intra n fundamentele matematice ale modelului relaional, dorim s ne familiarizm cu termenii i conceptele specifice acestui model. O relaie este o tabel; o realizare este o linie sau un tuplu; un atribut este o coloan Cheia primar a unei relaii este un atribut (sau grup) care identific fr ambiguitate fiecare linie a relaiei. Atunci cnd cheia este compus, nici un atribut al su nu poate fi eliminat fr distrugerea unicitii tuplului.O cheie strin

este un grup de atribute care pune n legtur linii din dou relaii i o alta

(tabele). Legtura dintre tabele este stabilit ntre o tabel (numit (numit copil) prin intermediul unui cmp comun. Ca efect, atunci cnd se deplaseaz pointerul de fiier n tabela printe, automat se poziioneaz i pointerul fiierului copil pe primul articol care are valoarea cheii egal cu cea din fiierul printe.printe)

33

2.2 Relaii ntre tabele (Relationships)[12]Relaiile se formeaz prin stabilirea unei legturi ntre un cmp (o combinaie de cmpuri) dintr-un tabel i cmpurile corespunztoare din alt tabel. Legturile ntre tabele sunt de trei tipuri: 1. Relaia unu-la-unu (one-to-one)- are loc ntre dou tabele care au aceeai cheie primar. Se definete prin intermediul ei o tabel compus din cele dou tabele iniiale. Relaia este util n cazul structurilor mari, care au nevoie de mai mult de 255 de cmpuri (limita Access-ului pentru un singur tabel) sau pentru creterea vitezei de cutare a datelor, dac nu toate nregistrrile din primul tabel au corespondent n al doilea tabel. Fie entitile Clase->1,1->Profesori cu relaia diriginte". Clase Cod, profil, 1:1 (diriginte) profesori Cod, nume,

sala specialitate Entitatea Clase are atributele cod, profil, sala, iar cod este cheia unic de identificare. Entitatea Profesori are atributele cod, nume, specialitatea, iar cod este cheia de identificare. Pe baza acestei relaii putem afla pentru o clas X care este specializarea profesorului diriginte i plecnd de la profesorul X putem afla care este profilul clasei la care este diriginte, dac are aceast atribuie. n modelul relaional atributele vor fi grupate n dou tabele: tabela CLASE(cod, profil, sala, cod-dirig), unde cod este codul unic al clasei iprimar

a.

este cheie

cod-dirig este codul profesorului diriginte i este cheie

extern

pentru c face legtura cu tabela Profesori i este un atribut unic, deoarece o clas nu poate avea dect n singur diriginte.b.

tabela PROFESORI(cod, nume, specialitate, cls-dirig), unde cod este codul uniccheie primar,

al profesorului

clasa-dirig este codul clasei la care este diriginte i este

cheie extern unic pentru c face legtura cu o singur linie din tabela Clase. 2. Relaia unu la mai muli (one-to-many) este cea mai frecvent utilizat i se realizeaz ntre cheia primar a tabelei T1 i un cmp similar, ca tip i ca dimensiune din T2, numit i cheie strin. Semnificaia legturii este c oricrei valori a cmpului cheie strin-C21 trebuie s-i corespund o valoare a cmpului cheie cheie-C1. n timp ce n tabela T1 valoarea este unic, n tabela T2 ea se poate repeta de un numr infinit de ori. 34

Tabela T1 C1 Primary Key ................ ................

1

Tabela T2 C2 Primary Key C21 Foreign Key ..........

Fie entitile Clase->1, n->Elevi, cu relaia nva". Entitatea Clase are atributele cod, profil, sala, iar cod este cheia de identificare unic. Entitatea Elevi are atributele cod, nume, adresa, medie, iar cod este cheia de identificare. Pe baza acestei relaii putem afla pentru o clas X care sunt elevii clasei, iar pentru elevul X putem afla care este profilul i dirigintele clasei n care nva. Clase Cod, Inva (1:n) sala profil, Cod, medie elevi nume,

Relaia 1-n presupune crearea a dou tabele n modelul relaional: CLASE(cod, profil, sala, cod-dirig), unde cod este codul unic al clasei i este cheieprimar

ELEVI(cod, nume, media, cod-clasa) unde cod este codul unic al elevului iprimar,

cheie

iar cod-clasa este codul clasei unde nva elevul i este cheie

extern

pentru

c face legtura cu tabela Clase. Valorile acestui atribut nu sunt unice - pentru c o clas poate avea mai muli elevi.

CLASE Cod Profil sala Alteinformaii 12a Info 12b 12 tiinte Litere P2 15 P6

ELEVI Cod Nume Media Codclasa lonescu 2 3 4 5 Albulescu 7.50 10 12b 12c 12 c 12a 12b

Enachescu 8.90 Enache Anania 10 8.00

35

3. Relaia mai muli la mai muli (many-to-many) se aplic la cazurile n care valorii unui cmp din prima tabel i corespund mai multe valori n a doua tabel i invers, unei valori a unui cmp din a doua tabel i corespund mai multe valori din prima tabel. T3.

O

schem relaional

poate fi definit ca un ansamblu de relaii asociate semantic

prin domeniul lor de definiie i prin anumite restricii de integritate. Schema relaional este independent n timp.

2. 3 Restricii de integritatePstrarea integritii unei baze de date se realizeaz prin reguli de integritate, ce sunt memorate odat cu structura bazei i se verific la orice aciune asupra bazei. Regulile de integritate pot fi:a.

Restriciile cheilor primare - se refer la condiia de unicitate i de valori nonRestricii refereniale - apar atunci cnd o tabel este n relaie cu alta. De exemplu, cheia strin nu trebuie s aib valori care nu se regsesc drept valori ale cheii primare n tabela de referin. Restricii de comportament - pot fi impuse asupra valorilor diferitelor atribute sau asupra ntregii nregistrri.

nule;b.

c.

36

2.4 Regulile lui Codd [17]1. Regula reprezentrii logice a datelor: Intr-o baza de date Relaional, toate datele sunt reprezentate la nivel logic intr-un singur mod, i anume sub form de valori logice n tabele. 2. Regula accesului la date: Toate datele individuale din tabele trebuie sa fie accesibile prin furnizarea numelui tabelului, numelui coloanei si valorii cheii primare. 3. Regula reprezentrii valorilor necunoscute: Un sistem Relaional trebuie sa permit declararea si manipularea sistematica a valorilor Null, cu semnificaia unor valori necunoscute sau inaplicabile. 4. Regula dicionarului de date: Descrierea bazei de date (dicionarul de date) trebuie s fie reprezentat la nivelul logic tot sub forma de tabele, astfel nct asupra acesteia sa se poat aplica aceleai operaii ca si asupra datelor propriu-zise. 5. Regula limbajului de acces: Intr-un sistem Relaional trebuie sa existe cel putin un limbaj de accesare a datelor, care sa asigure urmtoarele operaii: definirea tabelelor de baza si a tabelelor virtuale (view-uri, vederi); manipularea si interogarea datelor (att interactiv cat si prin program); definirea restriciilor de integritate, autorizarea accesului la date, delimitarea tranzaciilor. 6. Regula de actualizare a tabelelor virtuale: Un SGBD trebuie sa poat determina daca o vedere poate sa fie actualizata sau nu. 7. Regula manipulrii datelor: Un sistem Relaional trebuie sa ofere posibilitatea procesrii tabelelor nu numai in operaiile de interogare a datelor cat si in cele de inserare, actualizare si tergere. 8. Regula independentei fizice a datelor: Programele de aplicaie depind de modul de stocare si accesare fizica a datelor. 9. Regula independentei logice a datelor: Programele de aplicaie nu trebuie sa fie afectate de nici o restructurare logica a tabelelor bazei de date care conserva datele. 10. Regula independentei datelor din punctul de vedere al integritii: Regulile de integritate a bazei de date trebuie sa fie definite in limbajul utilizat de sistem pentru 37 nu trebuie sa

definirea datelor i nu in cadrul aplicaiilor individuale; in plus, aceste reguli de integritate trebuie stocate in dicionarul de date. 11. Regula independenei datelor din punctul de vedere al distribuirii: Programele de aplicaie nu trebuie sa fie afectate de distribuirea pe mai multe calculatoare a bazei de date. 12. Regula privind prelucrarea datelor de ctre un limbaj de nivel inferior: Orice limbaj Relaional folosit pentru accesarea datelor trebuie sa respecte aceleai condiii de integritate ca i limbajul Relaional de acces. 0. Regula de baza: Un SGBD Relaional trebuie sa fie capabil sa gestioneze baza de date exclusiv pe baza caracteristicilor sale Relaionale.

2.5.Proiectarea bazelor de date relaionale [17]

Etape I. II. III. Crearea schemei conceptuale Crearea design-ului logic al bazei de date Normalizarea bazei de date I Crearea schemei conceptuale [12] Aici avem modelul entitate-relaie, model entitate-legatur i model relaional. Model entitate-relaie

38

Model entitate-legtur O entitate devine un tabel Un atribut al unei entiti devine o coloana a tabelului respectiv

II Crearea design-ului logic al bazei de date Transformarea entitilor Entitile devin tabele Entitile dependente devin tabele dependente Subentitile devin subtabele. Transformarea relaiilor Relaiile 1:1 devin chei strine, cheia strin fiind plasat n tabelul cu mai puine nregistrri. Relaia N:1 devine cheie strin plasate n tabelul care se afla in partea muli a relaiei. Exemplu: o facultate are mai muli studeni, un student e la o singura facultate O relaie muli-muli N:M se transform intr-un tabel asociativ, care are doua chei strine pentru cele dou tabele asociate. Exemplu: mai muli studeni-la mai multe cursuri.

Transformarea atributelor Atributele simple ale unei entiti devin coloane in tabelul provenit din Relaie. Atributele repetitive (multivaloare) devin tabele dependente care conin o cheie strina ce face referina la cheia primar a entitii i atributul multi-valoare. 39

Atributele simple ale unei Relaii M:N vor deveni coloane ale tabelului asociativ.

2.6 Normalizarea bazei de dateConform Wikipedia, a normaliza o baz de date nseamn o modelare logic a structurii acesteia pentru a o pregti s satisfac o actual i potenial viitoare plaj larg de cereri. Obiectivele normalizrii sunt patru la numr: a) eliminarea anomaliilor de adugare, actualizare i tergere a datelor dintr-o baz de date. b) reducerea necesitii de a reorganiza tabelele dintr-o baz de date n cazul n care sunt introduse noi tipuri de date, mrind astfel durata de via a aplicaiilor construite pe respectiva baz de date. c) modelul relaional s fie ct mai intuitiv pentru utilizatori. d) tabele dintr-o baz de date nu trebuie s fie proiectate doar pentru anumite cereri/query-uri. Scopul normalizrii [11] Normalizarea reprezint o tratare de jos n sus a proiectrii bazelor de date, care ncepe prin examinarea relaiilor dintre atribute. Totui, de multe ori metodologia de proiectare abordeaz o tratare de sus n jos a BD (care ncepe prin identificarea principalelor entiti i relaii), caz n care normalizarea este folosit ca tehnic de validare. Unul din principalele scopuri urmrite la proiectarea BD relaionale, este gruparea atributelor n relaii n aa fel nct s se minimizeze redundana datelor i prin aceasta s se reduc spaiul de stocare necesar relaiilor de baz implementate. Anomaliile de reactualizare se clasific n: anomalii de inserare care pot fi de dou tipuri: anomalii privind identitatea datelor redundante: de ex, pentru inserarea noilor membri ai personalului, trebuie incluse detalii despre filiala la care vor lucra, detalii care trebuie s coincid cu

40

valorile aflate pe celelalte rnduri ale relaiei, altfel provocm o incoeren a BD. anomalii privind necesitatea introducerii de rnduri cu null pentru cheia primar: de ex, pentru a insera o nou filial, care nu are nici un personal, este necesar introducerea de null-uri pentru atributele personalului; dar PersID este cheie primar i nu e permis null-ul (deoarece se violeaz integritatea entitilor) anomalii de tergere: tergerea anumitor nregistrri duce la pierderea unor detalii care nu sunt stocate n alt parte: dac se terge ultimul membru al personalului de la o filial, se pierd detaliile despre filial Procesul de normalizare este o metod formal, care identific relaiile bazndu-se pe cheile primare ale acestora i pe dependenele funcionale dintre atributele lor. Normalizarea ajut proiectanii de BD, prin prezentarea unei serii de teste care pot fi aplicate relaiilor individuale, pentru a preveni apariia anomaliilor de reactualizare. anomalii de modificare: necesitatea modificrii unei date redundante, presupune modificarea ei n toate nregistrrile n care ea apare: dac trebuie modificat unul din atributele unei filiale, este necesar reactualizarea rndurilor corespunztoare pentru toi membrii personalului de la filiala respectiv, altfel BD devine incoerent. Aceast analiz arat c relaiile Personal i Filiala au o structur mai bun dect PersonalFiliala. Procesul de normalizare furnizeaz o tehnic de proiectare a unor relaii mai bine structurate. Proiectarea unei baze de date relaionale ncepe prin definirea entitilor i a relaiilor dintre ele. Apoi se definesc tabelele care vor memora att datele din entiti, ct i relaiile dintre acestea. Atenia proiectanilor trebuie ndreptat ctre construirea unor tabele care s evite anomaliile de actualizare i dificultile de prelucrare. O tabel de date este corect formulat - deci este o relaie conform restriciilor impuse de teoria relaiilor a lui A.F. Codd - dac:1. 2.

n cadrul unei baze de date are nume distinct; fiecare celul a relaiei conine o singur valoare; 41

3. 4. 5. 6. 7.

fiecare atribut are un nume distinct; orice valoare a unui atribut face parte din domeniul pe care a fost definit acesta; ordinea dispunerii atributelor n relaie nu prezint importan; orice linie este distinct de celelalte; ordinea liniilor nu influeneaz coninutul informaional al relaiei.

2.7 Prima form normal (1NF First Normal Form) [11] Prima form normal este o form normal utilizat n normalizarea bazelor de date. Prima form normal exclude posibilitatea existenei grupurilor repetitive cernd ca fiecare cmp ntr-o baza de date sa cuprind numai o valoare indivizibil . De asemenea, prima form normal cere i ca fiecare nregistrare s fie definit astfel nct s fie identificat n mod unic prin intermediul unei chei primare. nclcri ale primei forme normale (1) Mai multe valori semnificative in acelai cmp EXEMPLUL 1

Persoana Jocuri preferate Ion Doom2, Zelda, Sims Maria Zelda, Sims, SuperMario Daniel WOW, Zelda Oras Bucuresti Brasov Scorniceti Servicii publice Politie, Salubritate, Canalizare Politie, Canalizare, Salubritate Politie

Dup procesul de normalizare vom avea urmtoarele tabele:

42

(2) Mai multe coloane reprezentnd acelai tip de date/fapte/obiecte

EXEMPLUL 2:Persoana Ion Maria Daniel Oras Bucureti Braov Scorniceti Servicii publice Politie Canalizare Politie Jocuri preferate(1) Doom2 Zelda WOW Jocuri preferate(2) Jocuri preferate(3) Zelda Sims Sims SuperMario Zelda Servicii publice(3) Canalizare Salubritate

Servicii publice(2) Salubritate Politie

O soluie dup normalizare:ID Ora 1 Bucureti 2 Braov 3 Scorniceti 4 Bucureti 5 Braov 6 Bucureti 7 Braov Servicii publice Politie Politie Politie Salubritate Canalizare Canalizare Salubritate Ora Bucureti Braov Scorniceti Bucureti Braov Bucureti Braov Servicii publice Politie Politie Politie Salubritate Canalizare Canalizare Salubritate

Pentru a asigura unicitatea unei nregistrri, se va utiliza cheia primar. In exemplul de mai sus, prin introducerea unei coloane adiionale de tip ntreg, auto-incrementat, se asigur unicitatea fiecrei nregistrri.

Exemplul 3 [11]

43

S presupunem c tabelul urmtor reine codurile produselor solicitate la o comand, precum i numrul, data i valoarea comenzii:Comanda data furn 006 01.03.2011 f1 007 01.09.2011 f1 adr Bc Bc cod1 a23 c33 cod2 b66 cod3 cod4 c33 cant 10 12 val 1290 1200

Verificm respectarea definiiei anterioare: nu sunt linii identice, nu sunt valori de tipuri diferite n coloane, cheia este atributul Com (numr comand). Dar 1. 2. 3. 4.dac exist comenzi cu mai mult de 4 produse? dac sunt comandate cantiti diferite din toate produsele? unde este plasat preul fiecrui produs? prelucrri de tipul valoarea total a comenzilor pentru produsul 'b66' necesit verificarea tuturor coloanelor i nsumarea rezultatelor pentru ntreaga baz de date, lucru care conduce la un timp mare de rspuns.

Deci se impune eliminarea cmpurilor care se repet i astfel se ajunge la primaform normal:

comanda data furn adr codprod cant pret valoare 006 01.03.11 f1 Bc a23 10 100 1298 006 01.03.11 f1 Bc b66 10 200 1298 006 01.03.11 f1 Bc c33 10 150 1298 007 01.09.11 f1 Bc c33 12 150 1200 n aceast tabel, cheia este compus din atributele (comanda + codprod).

Prima form normal este identificat cu noiunea de relaie Dar nu toate relaiile sunt egal acceptabile, deoarece anumite relaii pot conduce la dificulti de actualizare sau de manevrare. Operaia de spargere" a relaiei care manifest anomalii n alte relaii poart numele de normalizare . O relaie se afl n a doua form normal dac toate atributele non-cheie sunt dependente de ntreaga cheie Deci problema apare cnd cheia este compus din mai multe atribute O relaie car are chei simple este n a doua form normal.

44

Observm c atributele non-cheie nu sunt dependente de ntreaga cheie. Normalizm i mprim tabela n dou alte tabele.

2.8 Dependene funcionale [11]Dependenele funcionale sunt concepte fundamentale n procesul de normalizare. Cnd exist o dependen funcional, ea este specificat ca o constrngere ntre atribute. Atributul din stnga sgeii se numete determinant. Exemplu: s considerm atributele PersID i Salariu din relaia Personal Personal (PersID, NumeP, AdresaP, Funcie, Salariu, FilialaID) PersID Salariu deci un membru al personalului are un singur salariu Salariu PersID un salariu nu determin un singur membru al personalului Exemplu: S identificm dependenele funcionale din relaia PersonalFiliala PersonalFiliala (PersID, NumeP, AdresaP, Funcie, Salariu, FilialaID, AdresaF,TelF) Dependena funcional descrie legturile dintre atributele unei relaii: fie A i B dou atribute ale relaiei R; atributul B este dependent funcional de A (notat AB) dac fiecrei valori a atributului A i corespunde o singur valoare a atributului B. A i B pot fi simple sau compuse. PersID NumeP PersID AdresaP, PersID Funcie, PersID Salariu, PersID FilialaID, PersID AdresaF, PersID TelF, FilialaID AdresaF, FilialaID TelF, AdresaF FilialaID, AdresaF TelF, TelF FilialaID, TelF AdresaF n aceast relaie sunt 13 dependene funcionale cu PersID, FilialaID, AdresaF i TelF ca determinani. Pentru a identifica cheia candidat (sau cheile candidat) din relaia PersonalFiliala, este necesar s recunoatem atributul (sau grupul de atribute) care identific n mod unic fiecare rnd din relaie. Dac o relaie are mai mult de o chei candidat, trebuie identificat cheia primar. Toate atributele care nu fac parte din cheia primar, trebuie s fie dependente funcional de aceast cheie. Singura cheie candidat pentru relaia PersonalFiliala (deci i cheie primar) este PersID, deoarece toate celelalte atribute ale relaiei sunt dependente funcional de aceasta. Cu toate c atributele FilialaID, AdresaF, TelF sunt determinani n aceast relaie, ele nu constituie chei candidat pentru ea. 45

In orice relaie, atributele sunt dependente funcional de fa de cheile acesteia, deoarece orice cheie are proprietatea c identific n mod unic fiecare tupl, deci determin n mod univoc valorile atributelor tuplei.

2. 9 A doua form normal (2NF Second Normal Form) [11]A doua form normal cere ca toate elementele unei tabele sa fie dependente funcional de totalitatea cheii primare. Dac unul sau mai multe elemente sunt dependente funcional numai de o parte a cheii primare, atunci ele trebuie sa fie separate n tabele diferite. Dac tabela are o cheie primar formata din numai un atribut, atunci ea este automat in 2NF (a 2-a forma normala). Exemplul 1: fie o tabela Comanda: Cod ReperID Comanda C1 C2 C1 C4 ReperNume Cantitate 2 2 21 22 Memorie Memorie Mouse Tastatura 1 2 31 22

Cheia primar este o cheie compusa, formata din ComandaID i ReperID. ReperNume depinde numai de ReperID, nu si de ComandaID. Pentru a fi in 2NF, tabelul trebuie modificat in felul urmtor:

Exemplul 2 Fie urmtorul tabel: 46

cod client nume clientA1 A1 A2 A2 A2 A1 A3 Petrescu Petrescu Vasilescu Vasilescu Vasilescu Petrescu lonescu

nr telefon2338291 2338291 3485734 3485734 3485734 2338291 5409054

cod comanda dataC1 C1 C2 C2 C2 C3 C4 12.05.2008 12.05.2008 13.05.2008 13.05.2008 13.05.2008 13.05.2008 13.05.2008

cod articol nume_articol cost articolP1 P3 P1 P3 P2 P3 P1 pantalon camasa pantalon camasa bluza camasa pantalon

cantitate5 0 4 5 5 0 4 5 3 5 4 5 5 0 100 20 200 300 10 20 30

Dependene funcionale : cod_client -> {nume_client, numr_telefon} cod_comanda -> {data, cod_client, nume_client, nr_telefon} cod_articol -> {nume_articol, cost_articol} Pentru a fi in 2NF, tabelul trebuie modificat in felul urmtor:cod_articolP1 P2

nume_articolpantalon bluza

cost_articol50 35

COMANDA cod_comandaC1 C2 C3 C4 P3

data12.05.2008 13.05.2008 13.05.2008 13.05.2008 camasa

cod_clientA1 A2 A1 A3 45

VNZRIcod comandaC1 C1 C2 C2 C2 C3 C4

cod_articolP1 P3 P1 P3 P2 P3 P1

cantitate100 20 200 300 10 20 30

2. 10 A treia form normal (3NF Third Normal Form)

47

Toate atributele non-chei ale unei relaii depind numai de chei candidate ale acelei relaii. Toate atributele non-cheie sunt (trebuie sa fie) mutual independente. EXEMPLUL 1 Tabela Piese de schimb, in care cheia primar (i cheie unic) este Piese de schimbPiese de schimb 1256 1425 1621 ProducatorNume Dacia Daewo Dacia ProducatorAdresa Pitesti Mangalia Pitesti

trebuie reorganizat astfel pentru a fi in a 3-a forma normal: ProductorProductorNume ProducatorAdresa Dacia Pitesti Daewo Mangalia Dacia Pitesti

EXEMPLUL 2 Fie tabelele de mai jos:Pi

Piese de schimbPiese de schimb ProducatorNume COMENZI 125 Dacia comanda Data furn adr valoare 6 006 01.03.2011 Daewo Bc f1 1298 142 007 01.09.2011 f2 Gl 1200 5 162 Dacia 1PRODUSE comanda codprod 006 a23 006 b66 006 c33 007 c33 cant 10 10 10 12 pret 100 200 150 150

S urmrim exemplul n continuare. Cheia relaiei la tabela COMENZI este comanda. tiind numrul de comand, putem afla numele furnizorului. Deci (comanda)>>>(furn). tiind furnizorul, putem determina adresa (furn)>>>(adr). Pare c adresa depinde funcional prin tranzitivitate de comand, ceea ce nu este adevrat. O relaie se afl n a treia form normal dac se afl n forma a doua i nu prezint dependene tranzitive Dup normalizare se obine:

48

FURNIZORI codfurn adr comanda

COMENZI data furn val

f1 f2

Bc Gl

006 007

01.03.2011 01.09.2011

f1 f2

12980 12000

Ca o recapitulare: Prima form normal este identificat cu definiia unei relaii. A doua form normal impune ca toate atributele non-cheie s fie dependente de ntreaga cheie. A treia form normal presupune inexistena dependenelor tranzitive. In concluzie prin normalizare spectrul anomaliilor de care sufer o relaie se restrnge foarte mult. Toate aceste forme normale sunt folositoare, dar niciuna nu garanteaz c au fost eliminate toate anomaliile!

49

2.11 Studiu de cazEvidena meciurilor, a echipelor i a juctorilor de fotbal din cluburile romneti [10] S facem analiza i s proiectm structura unei baze de date pentru cerina de mai sus. Pentru analiza problemei trebuie sa rspundem la urmtoarele ntrebri:

Care sunt entitile? Juctori, echipe, meciuri. Care sunt atributele, caracteristicile pentru fiecare entitate?

JUCTORI (cod, nume, datanasterii, foto, CV, este-casatorit, are_copii, adresa), ECHIPE (cod echipa, nume, datanfiintarii, sediu), MECIURI (cod_meci, echipa 1, echipa_2, goluri_1, goluri_2, stadion, data, ora)

Care sunt Relaiile dintre ele?

Un juctor poate sa fi fost nscris la mai multe echipe, o echipa are mai muli juctori. Un meci este jucat de doua echipe; o echipa particip la mai multe meciuri

Cum arat SCHEMA conceptual a bazei de date?

5. Cum se modeleaz SCHEMA pentru o baza de date Relaional? Relaia juctori- echipe este spart in dou relaii prin intermediul entitii Participani (codul juctorului, codul echipei, data-intrarii-n-echipa, data-ieirii-dinechip, funcia). Relaia echipe- meciuri va fi modelata ca atare prin reinerea a dou cmpuri despre echipe (echipa 1 este cea care joac acas" iar echipa 2 este cea din deplasare. Fiecare entitate i Relaie se structureaz sub forma unui tabel. Obinem deci urmtoarele tabele: JUCTORI Id 100 101 ECHIPEId 1 2 Nume Steaua Dinamo Data insc 1.1.1800 1.1.1980 Sediu Buc Buc

Nume Mutu Popescu

Data n 1..12.1978 3.05.1978

Casat T F

Adr

Copii

Foto

cv

Bucureti T Cluj F

50

PARTClPANTI Id 1 2 3 MECIURI Id 1 2 E1 1 2 E2 2 1 G1 1 0 G2 3 0 Stadion Lia Manoliu Dinamo Data Ora Cod juc 100 100 101 Cod ech 1 2 2 Data-intr 1.1.2009 1.1.2011 15.7.2008 Data-ies post

1.12.2010 Portar Fundas portar

1.5.2011 15 7.5.2011 17

6. Care sunt cheile unice ale fiecarei tabele? Pentru simplificarea lucrului am numit un cmp special Id care s joace rolul de cheie unic. Desigur putem folosi denumirile cod-echipa, cod-juctor, codparticipant sau cod-meci! 7. Care sunt cheile strine ? ( cele care asigur legturile dintre tabele) Participant.cod_ech, Participanti.codJuc - pentru legtura cu tabelele Echipe i Juctori i Meciuri.e1, Meciuri.e2 pentru legtura cu tabela Echipe. 8. Care sunt restriciile de integritate a bazei de date? a. Un articol n participant nu poate fi introdus dac nu se regsete valoarea din cmpul Participant.CodJuc in Jucatori.id i Participant.cod_ech in Echipe.id b. Un articol in tabela Meciuri nu poate fi introdus daca codurile celor dou echipe nu figureaz deja in tabela Echipe. c. Modificarea cheii Echipe.id trebuie s determine modificarea cheilor strine Participant.codech i Meciuri.E1 sau Meciuri.E2. d. Modificarea cheii Jucatori.id trebuie s determine modificarea cheii Participant.codJuc. e. tergerea unei echipe - adic scoaterea ei din eviden - nu va determina i anularea activitii juctorilor prin eliminarea liniilor din tabela Participani dar va provoca tergerea meciurilor planificate cu aceast echip. (meciurile deja jucate pot rmne!) 9. Care sunt restriciile de validitate asupra cmpurilor din tabele? Data planificrii unui meci trebuie sa fie mai mare dect data planificata trebuie sa fie intre 8-20. 51 valoarea din cmpul

In tabela Participani data-intrrii mai mica dect data-iei rii n /dintr-o echipa. 10. Care sunt evenimentele care determina aciuni asupra datelor?

planificarea unui meci; desfurarea unui meci; nscrierea unui juctor la o echipa; plecarea unui juctor de la o echipa; nscrierea unui nou juctor; nfiinarea unei noi echipe; schimbarea unor valori pentru un meci: alt stadion, alta ora/data; modificarea unor valori pentru un juctor: castorie, schimbarea adresei; modificarea unor valori pentru echipa: alt sediu etc.

52

CAPITOLUL III

Aspecte didactice ale predrii normalizrii n cadrul unitii de nvare "MODELAREA DATELOR

53

3.1 Experimentul didacticPractica educaional se afl ntr-o perioad de tranziie accelerat de la ceea ce unii autori numesc nvmntul tradiional spre nvmntul modern. Tendinele nnoitoare se manifest i n domeniul evalurii. Idei importante ce trebuie subliniate i scoase n eviden, nc de la nceput, aa cum se desprind ele din literatura de specialitate i care reprezint caracteristici ale procesului de nvmnt n deceniile urmtoare. O prim idee este c importana i necesitatea realizrii unei evaluri pertinente au devenit att de evidente nct se vorbete frecvent despre "nvare asistat de evaluare"i. n majoritatea sistemelor de nvmnt se acord o atenie sporit asigurrii obiectivitii, transparenei i comparabilitii evalurii colare. Notarea, reprezint doar simboluri ale unor judeci de valoare asupra performanelor elevilor n diferite momente ale instruirii. Evaluarea de tip formativ are drept obiectiv ajutarea profesorilor de a-i ameliora aciunea i mijloacele de derulare a acesteia [2].

3.2 Caracterizarea claselor cuprinse n experimentLa clasele cu profil matematic-informatic primul modul care se studiaz obligatoriu indiferent de celelalte module alese pentru studiu este modelarea datelor; timpul alocat acestui modul este de ase sptmni; Am ales clasa a XII-a A matematic informatic- an colar 2010-2011 pentru a experimenta proiectele propuse la aceast unitate de nvare. In primul semestru al clasei a XII-a A experimentul didactic a fost efectuat pe parcursul semestrului I. Au fost supui testrii att individual prin fie de lucru, testare final ct i n lucru pe echipe, organiznd dou grupe, cea a bieilor i cea a fetelor- stabilind roluri comune celor dou grupe; Pe parcursul perioadei de predare elevii au manifestat interes fiind un domeniu nou i n acelai timp dovedind caracterul practic, media pe clas a evalurii finale fiind 6.24.

54

3.3 Unitatea de nvare Modelarea datelorStructura general [4] Sunt prezentate obiectivele didactice care pot fi atinse utiliznd acest material.

3.3.1. Obiective didactice Obiectiv Detaliere Obiective de referin R1 R2 R3 R4 nelegerea necesitii modelrii datelor nelegerea modalitilor de modelare a datelor Construirea unor diagrame corecte Utilizarea cunotinelor dobndite n elaborarea unor diagrame de modelare a datelor corecte Obiective operaionale OP1 Definete noiunea de entitate, specificnd elementele sale caracteristice OP2 practice. OP3 Ofer exemple de entiti, descriind contextul n care acestea intervin. OP4 OP5 OP6 Face distincie ntre entitate i instanele acesteia. Definete noiunea de atribut. Identific atributele entitilor care intervin n descrierea unei activiti practice. OP7 OP8 Face distincie ntre atribut i valoarea acestuia. Identific atributele obligatorii i context dat. OP9 Reprezint, aplicnd conventiile ERD, entiti i acestora. OP10 Definete noiunea de identificator unic. atributele atributele opionale ntr-un Identifica entitile care intervin n descrierea unei activitati

55

OP11

Stabilete un identificator unic pentru entitile care intervin n descrierea unei activiti practice, justificnd alegerea.

OP12

Ofer exemple de situaii n care este util definirea unui identificator unic artificial.

OP13 OP14 OP15

Definete identificatori unici secundari. Definete identificatori unici compui . Utilizeaz conveniile de reprezentare a identificatorilor unici n diagrame E-R.

OP16 OP17 OP18 OP19

Identific i denumete relaiile semnificative dintre entiti. Specific opionalitatea i cardinalitatea unei relaii. Formuleaz corect o Relaie dintre dou entiti. Reprezint corect o Relaie, respectnd conventiile de

reprezentare a relaiilor n diagrame ER. OP20 OP21 Clasific relaiile din punctul de vedere al cardinalitii. Utilizeaz conveniile de reprezentare n diagrama ERD a relaiei rezolvate. Identific relaiile ierarhice dintre date. OP22 Reprezint corect relaiile ierarhice, respectnd conveniile de reprezentare a Relaiilor n diagrame ER. OP23 OP24 Identific subentitile (subtipurile) unei entiti.. Definete prima regul de normalizare(1NF First Normal Form). OP25 Analizeaz o diagram pentru a stabili dac aceasta respect 1NF. OP26 Modific o diagrama astfel nct diagrama obinuta sa respecte 1NF. OP27 Definete a doua regula de normalizare (2NF Second Normal Form). OP28 Analizeaz o diagram pentru a stabili daca aceasta respecta 2NF. OP29 Modific o diagram astfel nct diagrama obinuta sa respecte 2NF.

56

OP30

Definete a treia regula de normalizare (3NF Third Normal Form).

OP31

Analizeaz o diagram pentru a stabili daca aceasta respecta 3NF.

OP32

Modific o diagram astfel nct diagrama obinut sa respecte 3NF.

3.3.2 Coninut Se prezint lista obiectelor de coninut (notate cu M) i caracteristicile lor generale. M1.1 Crearea unei atmosfere specifice orei i partea introductivTimp de predare Tip de interaciune cu elevii 15 min metode de comunicare oral: expunere, conversaie metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia n etapa de comunicare; Descriere

prezentarea modulului prezentarea modului de selecie a personajului i a modalitii de configurare i salvare prezentarea tipurilor de: par, fete, haine, pantaloni, pantofi prezentarea celor opt poziii

M1.2 Entiti

Obiective didactice Timp de predare Tip de interaciune cu elevii

OP1, OP2, OP3, OP4 35 min metode de comunicare oral: expunere, conversaie metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia n etapa de comunicare; nvarea prin descoperire dirijata, inductiva,

57

experimentala, Cuvinte cheie Obiective didactice Timp de predare Tip de interaciune cu elevii exerciiul de consolidare prezentarea definiiei unui entiti prezentarea unor aspecte practice n care pot fi identificate entiti prezentarea unor exemple prezentarea unor convenii de reprezentare prezentarea animaiilor determinarea soluiilor corecte i explicarea lor entitate instana diagrama ER

Descriere

OP5, OP6, OP7, OP8, OP9 40 min metode de comunicare oral: expunere, conversaie metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia; nvarea prin descoperire dirijata, experimentala, exerciiul de consolidare prezentarea definiiei atributului prezentarea unor convenii de reprezentare prezentarea unui exemplu animat prezentarea animaiilor rezolvarea sarcinilor de lucru 6 exerciii atribut instana atribut obligatoriu atribut opional opionalitate diagrama ER

Descriere

Cuvinte cheie

M3.1 Identificator unic

Obiective didactice

OP10, OP11, OP12, OP13, OP14, OP15

58

Timp de predare Tip de interaciune cu elevii

20 min metode de comunicare oral: expunere, conversaie metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia; nvarea prin descoperire dirijata, inductiva, experimentala, exerciiul de consolidare

Descriere

prezentarea noiunii de identificator unic prezentarea conveniilor de reprezentare prezentarea animaiilor rezolvarea sarcinilor de lucru identificator unic identificator unic simplu identificator unic compus

Cuvinte cheie

M3.2 Relaii Obiective didactice Timp de predare Tip de interaciune cu elevii Descriere Cuvinte cheie OP16, OP18, OP19 30 min metode de comunicare oral: expunere, conversaie, studiu de caz metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia; nvarea prin descoperire dirijata, experimentala, exerciiul de consolidare prezentarea noiunii de Relaie prezentarea modalitii de reformulare a Relaiilor prezentarea metricii Relaiilor prezentarea conveniilor de reprezentare prezentarea animaiilor realizarea celor ase sarcini de lucru Relaie opionalitate cardinalitate matricea Relaiilor

59

diagrama ER

M4.1 Clasificarea Relaiilor

Obiective didactice Timp de predare Tip de interaciune cu elevii

OP20 20 min metode de comunicare oral: expunere, conversaie, studiu de caz metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia; nvarea prin descoperire dirijata, inductiva, experimentala, exerciiul de consolidare prezentarea categoriilor de Relaii prezentarea tipurilor prezentarea animaiilor realizarea sarcinilor de lucru Relaie One-to-Many Relaie One-to-One Relaie Many-to-Many

Descriere

Cuvinte cheie

M4.2 Rezolvarea Relaiilor

Obiective didactice

OP21, OP22, OP23, OP24

Timp de predare Tip de interaciune cu elevii

30 min metode de comunicare oral: expunere, conversaie, studiu de caz metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia; nvarea prin descoperire dirijata, inductiva, experimentala, exerciiul de consolidare

Descriere

prezentarea exemplelor

60

Cuvinte cheie

realizarea sarcinilor de lucru

entitate de intersecie

M5.1 Prima form normal

Obiective didactice Timp de predare Tip de interaciune cu elevii

OP24, OP25, OP26 20 min metode de comunicare oral: expunere, conversaie, studiu de caz metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia; nvarea prin descoperire dirijata, inductiva, experimentala, exerciiul de consolidare definirea noiunii de 1NF First Normal Form prezentarea necesitii utilizrii 1NF realizarea sarcinii de lucru 1NF

Descriere

Cuvinte cheie

M5.2 A doua forma normala

Obiective didactice Timp de predare Tip de interaciune cu elevii

OP27, OP28, OP29 20 min metode de comunicare oral: expunere, conversaie, studiu de caz metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia; nvarea prin descoperire dirijata, inductiva, experimentala, exerciiul de consolidare definirea noiunii de 2NF Second Normal Form prezentarea necesitii utilizrii 2NF

Descriere

61

Cuvinte cheie 2NF

realizarea sarcinii de lucru

M5.3 A treia forma normal

Obiective didactice Timp de predare Tip de interaciune cu elevii

OP30, OP31 20 min metode de comunicare oral: expunere, conversaie, studiu de caz metode de aciune: exerciiul, nvarea prin descoperire procedee de instruire: explicaia; nvarea prin descoperire dirijata, inductiva, experimentala, exerciiul de consolidare 3NF definirea noiunii de 3NF Third Normal Form prezentarea necesitatii utilizrii 1NF realizarea sarcinii de lucru

Descriere

Cuvinte cheie

M6 Aplicaii; miniproiect

Obiective didactice Tip de interaciune cu elevii

OP21, OP22, OP28

metode de comunicare oral: expunere, conversaie, studiu de caz metode de aciune: exerciiul procedee de instruire: explicaia; nvarea prin descoperire dirijata, exerciiul de consolidare

Descriere

rezolvarea de exerciii i probleme recapitulative realizarea unui miniproiect n echipe - de gestionarea unei afaceri de succes pe baza unui model dat;elevii vor identifica tabelele necesare, relaiile dintre ele i vor realiza normalizri.

62

2.3. Model de structurare i predare

63

3.3.3 Obiecte de coninut detaliere

1. Entiti Definiie O entitate este denumit printr-un substantiv singular i reprezint un element generic semnificativ pentru activitatea care trebuie s fie modelat. De exemplu: ORA, CARTE, STUDENT, ELEV, SCRIITOR, VEHICUL Entitile admit instane, care sunt exemple concrete, cazuri particulare ale entitilor. Stabilirea faptului c un anumit element este o entitate sau o instan poate depinde de contextul activitii pe care o modelm. Pentru activitatea de gestiune a unei biblioteci, SCRIITOR este o entitate. Dar, de exemplu pentru Oficiul Forelor de Munc SCRIITOR ar putea fi o instan a entitii PROFESIE.

2 Convenii de reprezentare O entitate va fi reprezentat sub forma unui dreptunghi cu colurile rotunjite (softbox). n partea de sus a dreptunghiului va fi scris cu majuscule numele entitii. 64

Tem Un elev merge la o firm de turism pentru a studia ofertele de croazier din vacanta asta. A primit o brour de genul:

Se solicit elevului sa realizeze o asociere ntre entiti i instane. Pentru a asocia o entitate cu o instan, se trage o linie ntre ele.

3. Atribute Definiie Un atribut reprezint o informaie semnificativ pentru activitatea care trebuie s fie modelat, informaie care descrie, cuantific, clasific sau calific o entitate. Pentru o anumit instan a unei entiti, orice atribut poate avea o singur valoare. Valoarea respectiv este de un anumit tip (numeric, ir de caractere, dat calendaristic, etc). Pentru o bun modelare a activitii, anumite atribute trebuie s aib o valoare. Aceste atribute le vom numi obligatorii. Pentru identificarea corect a unui student numele i prenumele sunt obligatorii. De asemenea numrul matricol, data naterii i adresa. 65

Convenii de reprezentare Atributele vor fi specificate n dreptunghiul care reprezint entitatea, sub numele entitii, cte un atribut pe o linie.

Numele unui atribut obligatoriu va fi precedat de caracterul *. Numele unui atribut opional trebuie s fie precedat de caracterul .

Exerciiu tem Fie entitile FARMACIE, MEDIC, DEPOZIT i INTERPRET . Desenai entitile dup modelul dat i plasai atribute pentru acestea indicnd corect opionalitatea (obligativitatea). 66

4. Identificator unic Pentru orice entitate trebuie s definim (cel puin) un identificator unic (UID Unique IDentifier). Identificatorul unic este un atribut sau o combinaie de atribute care permit identificarea n mod unic a oricrei instane a entitii respective. Un identificator unic format dintr-un singur atribut se numete simplu. Un identificator unic format din mai multe atribute se numete compus. Atributele care intr n componena unui identificator unic trebuie s fie obligatorii. Uneori exist mai multe variante posibile de identificare n mod unic a instanelor unei entiti. n acest caz se alege un atribut/combinaie de atribute ca identificator unic principal i apoi, opional, se pot alege unul sau mai muli identificatori unici secundari. Prin urmare, trebuie s existe un singur identificator unic principal, dar pot exista mai muli identificatori unici secundari. Stabilirea unor identificatori unici secundari ofer utilizatorilor sistemului pe care l proiectm mai multe variante de a accesa sistemul, astfel sistemul devine mai flexibil. Convenii de reprezentare Pentru a marca n diagrama ERD faptul c un atribut este identificator unic sau intr n componena identificatorului unic, acesta va fi precedat de simbolul #. Dac identificatorul unic al entitii este compus din mai multe atribute, atunci fiecare dintre acestea va fi precedat de caracterul #. n acest caz nu mai este necesar precedarea atributului de simbolul *, acesta fiind implicit. Pentru a reprezenta n diagrama E-R un identificator unic secundar vom preceda numele atributului/ atributelor ce constituie identificatorul unic secundar de #1 (dac este primul identificator unic secundar), #2 (pe cel de al doilea) etc.

67

Exerciiu Care dintre urmtoarele atribute poate fi considerat identificator unic pentru entitatea INSUL?

68

Exerciiu Asociaz fiecrei entiti unul sau mai multe atribute ce pot constitui un identificator unic pentru entitatea respectiv.

Exerciiu Poate fi codul potal un identificator unic pentru o strad din Romnia?

69

5 Modelarea datelor. Relaii n procesul de modelare, dup identificarea entitilor i a atributelor acestora, trebuie s identificm relaiile care exist ntre entiti. n acest scop vom examina fiecare pereche de entiti i vom stabili dac exist ntre entitile respective o relaie semnificativ pentru activitatea pe care o modelm. Cnd identificm o relaie ntre dou entiti A i B trebuie s precizm att relaia n care A se afl cu B, ct i relaia n care B se afl cu A. De asemenea trebuie s specificm opionalitatea i cardinalitatea relaiei. O relaie poate fi opional (acest lucru se specific prin cuvntul poate) sau obligatorie (acest lucru se specific prin cuvntul trebuie). Cardinalitatea specific numrul de instane ale entitii implicate n relaie (una singur, respectiv una sau mai multe). Pentru standardizare a fost definit un "ablon" care trebuie respectat atunci cnd specificm o relaie ntre dou entiti.

Convenii de reprezentare Relaiile se reprezint printr-o linie care conecteaz cele dou entiti implicate n relaie. Linia este constituit din dou jumti. S notm cu A i B cele dou entiti ntre care este definit relaia. Jumtatea care are o extremitate n A reprezint relaia n care entitatea A se afl cu entitatea B; jumtatea care are o extremitate n B reprezint relaia n care se afl entitatea B cu entitatea A. Numele relaiei este scris pe fiecare dintre cele dou jumti.

70

Exerciiu Analizeaz relaia dintre entitile STUDENT i DISCIPLIN. Formuleaz corect relaia STUDENT-DISCIPLIN, specificnd opionalitatea i cardinalitatea, apoi specificai relaia DISCIPLIN-STUDENT.

Exerciiu Formuleaz relaiile reprezentate n diagrama ERD alturat, citind mai nti relaia de la stnga la dreapta, apoi relaia de la dreapta la stnga.

Exerciiu Care dintre urmtoarele variante corespunde relaiilor reprezentate n diagrama E-R?

71

Exerciiu Urmrete cu atenie animaia pentru a identifica relaiile existente ntre entitile CLIENT, SERVICIU TURISTIC, OFERT DE CAZARE. Reprezint relaiile existente ntre entitile CLIENT, SERVICIU TURISTIC, OFERT DE CAZARE respectnd conveniile de reprezentare specifice diagramelor ER

.

72

Exerciiu Formuleaz corect relaiile cu ajutorul cuvintelor din partea de jos:

Exerciiu Reprezint relaiile existente ntre entitile CLIENT, SERVICIU TURISTIC, OFERT DE CAZARE respectnd conveniile de reprezentare specifice diagramelor ER

.

73

Modelarea datelor. Clasificarea relaiilor Din punctul de vedere al cardinalitii relaiile pot fi clasificate n 3 categorii: 1. Relaii One-to-Many (1:M) 2. Relaii One-to-One (1:1) 3. Relaii Many-to-Many (M:M) Relaii One-to-Many (1:M) Sunt cele mai frecvent ntlnite i, n funcie de opionalitate, pot fi de 4 tipuri.

Exemplu de relaii One-to-Many (1:M).

74

Relaiile 1:1 sunt mai rar ntlnite n diagramele ER. n funcie de opionalitate, relaiile 1:1 sunt de 3 tipuri.

Exemplu Analiznd relaia TURIST-PAAPORT, deducem c aceasta este o relaie Oneto-One (1:1).

75

Relaii Many-to-Many (M:M) ntr-o prim etap de analiz i de elaborare a modelului unei activiti, relaiile M:M sunt frecvent ntlnite. ntr-o a doua etap, aceste relaii vor disprea, fiind transformate n relaii 1:M. Din punctul de vedere al opionalitii, exist 3 tipuri de relaii M:M.

Exemplu Analiznd relaia CARTE-SCRIITOR, deducem c aceasta este o relaie Many-toMany (M:M).

Exemplu Urmrind animaia i analiznd relaia FILM-ACTOR, deducem c aceasta este o relaie Many-to-Many (M:M).

76

Fi de lucru Clasificai relaiile specificate n zona punctat:

77

3.4 Normalizarea. Prima form normalPentru ca un model s fie eficient datele trebuie s fie organizate astfel nct s fie uor de accesat i de ntreinut. Pentru a obine un model eficient au fost definite o serie de reguli pe care trebuie s le respecte modelul conceptual. Aceste reguli sunt denumite reguli de normalizare sau forme normale.

Definiie Normalizarea reprezint procesul de descompunere a unui tabel Relaional n mai multe tabele care satisfac anumite reguli i care stocheaz aceleai date ca i tabelul iniial astfel nct s fie eliminate redundanta n date i actualizare. E. F. Codd a demonstrat c ntr-o anumit form relaiile posed proprieti nedorite, pe care le-a numit anomalii de actualizare. Aceste anomalii sunt: Anomalia de tergere, care const n faptul c anumite date care urmeaz s fie terse fac parte din tupluri n care se gsesc i alte date care sunt necesare i n continuare, ori tergerea fcndu-se la nivelul tuplului, acestea se pierd; Anomalia de adugare, const n faptul c anumite date care urmeaz s fie adugate fac parte din tupluri incomplete (pentru care nu se cunosc toate datele), ceea ce face ca acestea s nu poat fi adugate; Anomalia de modificare, care rezult din faptul c este dificil de modificat o valoare a unui atribut atunci cnd ea apare n mai multe tupluri ale relaiei. Pentru a nltura aceste anomalii, E. F. Codd a stabilit trei forme normale pentru relaii i a introdus procesul de normalizare care se bazeaz pe noiunea de dependen funcional (FD) ca relaie ntre atributele unei entiti cu caracter invariant. Procesul de normalizare a relaiilor se realizeaz n mai muli pai, ncepnd cu forma normal unu (1NF) i ajungnd (dup ultimele cercetri) la forma normal cinci (5NF). Aceasta const n descompunerea unei relaii n conformitate cu mulimea dependenelor funcionale F, ntr-o colecie de relaii care s conserve informaiile i dependenele funcionale din relaia iniial (descompunerea fr pierderi). anomaliile la

78

Prima form normal baz de date este n forma normal 1 dac i numai dac toate cmpurile dintabelele ei nu sunt repetate i conin numai valori indivizibile;

Orice atribut poate avea o singur valoare pentru fiecare instan a unei entiti. n cazul n care pentru o entitate identificm un atribut care are valori multiple, vom crea o nou entitate pe care o vom relaiona cu entitatea iniial printr-o relaie de tip M:M.

Pentru entitatea STUDENT am identificat urmtoarele elemente de caracterizare (atribute): Nume, Prenume, Numr Matricol, Data naterii, Domiciliu, Numr telefon, Adres e-mail i Facultate. Acest model nu respect prima regul de normalizare deoarece exist studeni acre sunt nscrii la mai multe faculti, adic atributul Facultate poate avea valori multiple. Vom rezolva aceast situaie crend o nou entitate FACULTATE pe care o vom relaiona cu entitatea STUDENT.

79

Exerciiu Examinai entitile de mai jos. Respect prima form normal? Gsii o soluie pentru fiecare situaie.1. 2MAGAZINE # nr crt * nume * director * CUI * telefon o filiala

BON # nr bon * nr casa * ora o produse

Soluieaparine PRODUSE # nr crt * denumire BON # nr bon * nr casa * ora o produse

80

Exerciiu S analizm entitatea CARTE cu urmtoarea structur:

Aceast entitate nu respect prima form normal, deoarece o carte trebuie s fie scris de unul sau mai muli autori, prin urmare, atributul Autor are valori multiple. O soluie posibil este:

81

Fi de lucruDesenai diagrama entiti-relaii (ERD) pentru care, citind relaia existent, se obine: Fiecare PERSOAN trebuie s locuiasc ntr-o LOCALITATE i numai una. Fiecare LOCALITATE poate fi locuit de una sau mai multe PERSOANE. Gsii corespondena dintre entitile din stnga i tipurile de relaii din dreapta: ELEV i CLAS AUTOR i CARTE PERSOAN i CNP ORA i STRAD M:1 M:M 1:M 1:1

Stabilii corespondenele corecte dintre noiunile de atribut, entitate i relaie din coloana stng i afirmaiile din coloana dreapt. atributul entitatea relaia Se consider entitile i atributele: INFORMAIE METEO CLIENT ELEV PRODUS temperatur cont pre numr matricol se stabilete ntre entiti poate avea mai multe instane are o singur valoare

Stabilii corespondenele corecte ntre noiuni i reprezentrile lor grafice. atribut opional atribut obligatoriu identificator unic # * o

Utilizai sgeile pentru a face asocierea corect. entitate instan atribut tabel coloan linie

82

nclcri ale primei forme normale.Exemple:

Persoana Jocuri preferate Ion Maria Doom2, Zelda, Sims Zelda, Sims, SuperMario Daniel WOW, Zelda

(1) Mai multe valori semnificative in acelai cmpOra Dej Cluj Bistria Servicii publice Politie, Salubritate, Canalizare Politie, Canalizare, Salubritate Politie

(2) Mai multe coloane reprezentnd acelai tip de date/fapte/obiecteExemple:Persoana Ion Maria Daniel Jocuri preferate(1) Doom2 Zelda WOW Jocuri preferate(2) Zelda Sims Zelda Jocuri preferate(3) Sims SuperMario

Ora Bucureti Braov Scorniceti

Servicii publice Politie Canalizare Politie

Servicii publice(2) Salubritate Politie

Servicii publice(3) Canalizare Salubritate

Interogrile pentru a selecta nregistrri pe baza componentei cmpurilor repetitive sunt foarte dificile. De exemplu, o interogare pentru a selecta acele orae care ofer acelai tip de Serviciu public, sa spunem "Politie" (acesta putnd s apar n oricare din coloanele "Servicii publice") va genera cutri in 9 perechi separate de coloane.

83

Ora Bucureti Braov Scorniceti

Servicii publice Politie Canalizare Politie

Servicii publice(2) Salubritate Politie

Servicii publice(3) Canalizare Salubritate

ID

Ora 1 Bucureti 2 Braov 3 Scorniceti 4 Bucureti 5 Braov 6 Bucureti 7 Braov

Servicii publice Politie Politie Politie Salubritate Canalizare Canalizare Salubritate

Ora Bucureti Braov Scorniceti Bucureti Braov Bucureti Braov

Servicii publice Politie Politie Politie Salubritate Canalizare Canalizare Salubritate

Pentru a asigura unicitatea unei nregistrri, se va utiliza cheia primar. In exemplul de mai sus, prin introducerea unei coloane adiionale de tip ntreg, autoincrementat, se asigura unicitatea fiecarei nregistrri.

84

Fi de lucru 1. Atunci cnd verificai un model de baz de date pentru prima form normal ce se face exact? 2. Care este regula pentru 1nF n procesul de normalizare? 3. Verificai dac urmtoarele tabele verific prima form normal. Dac nu, facei schimbrile necesare pentru a fi corect.

4.Creai entitile ELEV i Nota; Verificai dac tabelele create respect regula pentru 1nF; dac nu, facei schimbrile necesare;

Timp de lucru 35 min;

85

3.5 A doua form normalDefiniie O relaie este n FN2 dac i numai dac: 1. Este deja n FN1 2. Oricare dintre atributele sale care nu fac parte din cheia primar este complet dependent funcional de cheia primar. Aducerea unei relaii la FN2 Fie e o entitate aflat n FN1; aducerea ei la FN2 necesit: 1. Identificarea tuturor dependenelor funcionale dintre atributele entitii 2. Descompunerea entitii E n entiti noi astfel: Fiecare dependen funcional complet definete o nou entitate Din fiecare dependen funcional parial se elimin acea parte a cheii primare care este rspunztoare de incompletitudinea dependenei i apoi se definete noua relaie 3. Stabilirea relaiilor dintre noile entiti (n scopul recuperrii informaiilor de legtur, pierdute eventual prin nlocuirea entitii iniiale cu entitile normalizate)

Exemplul 1DEPARTAMENT # cod_departament # IDangajat *data_nasterii *adresa

Fie diagrama de mai sus care conine colecia facturilor de plat la un magazin; Observm ca avem o cheie primar compus din dou atribute; celelalte atribute sunt dependente doar de o parte a cheii primare. De asemenea nu avem date care s se repete, prin urmare nu este vorba de prima form normal. Realizarea acestei probleme se realizeaz prin introducerea unei entiti noi

86

Exemplul 2 Despre conturile de la o banc, fie entitate de mai jos:CONT # nrcont *sold *data desch *locaia bancii

Se pune problema posibilelor anomalii. Observm c i alte bnci pot fi titulari de conturi cu acelai numr de cont; Locaia bncii se poate schimba n timp, sau pot aprea alte filiale, nu este dependent de numrul contului; O modelare a structurii impune crearea unei noi entiti care s se refere la date despre bnci care s fie pus in relaie cu entitatea cont.

Exerciiu S analizm fragmentul din diagrama de mai jos care modeleaz activitatea de mprumut al crilor din bibliotec.

87

Identificatorul unic al entitii FISA MPRUMUT este compus din Data, ID-ul cititorului i Cota crii. Atributul titlu nu depinde de ntregul identificator unic, ci doar de Cota crii. Prin urmare, pentru a respecta cea de-a doua form normal, atributul Titlu trebuie s fac parte din entitatea CARTE.

Exerciiu S analizm fragmentul de diagram de mai jos care modeleaz relaia CLIENTSERVICIU TURISTIC. Aceasta este o relaie M:M, care a fost rezolvat prin intermediul entitii CONTRACT. Aceast diagram nu respect cea de a doua form normal. Modificai diagrama astfel nct s respecte cea de a doua form normal.

88

Soluie

Exerciiu Fie entitatea de mai jos:Persoana #nr masina #cnp *marca masina *nume persoana *adresa

Verific condiiile 2NF? Avem o cheie compus format din entitile nr maina i cnp; observm c celelalte entiti depind de una din entitile cheii primare: numepersoana de cnp i adresa tot de cnp; Prin urmare vom descompune tabela n dou tabele:

O persoan poate avea mai multe maini i fiecare main are un singur proprietar; Relaia este de tipul 1 la n.

89

Problem 1. Se dau dou tabele. Primul se numete Proprietari i conine numele proprietarului i codul terenului pe care acesta n deine. Al doilea se numete terenuri i conine codul terenului i suprafaa sa. Se tie c un proprietar poate avea mai multe terenuri dar un teren un singur proprietar. Fiecare tabel are drept cheie primar codul terenului. a) sunt cele dou tabele in 2NF? Daca nu, aducei-le la aceast form. Ce relaie se poate stabili ntre cele dou tabele? b)Stabilii relaia n baza de date astfel nct tabelul printe s fie Terenuri. c) Stabilii valoarea de adevr a urmtoarelor afirmaii: - In tabelul Terenuri nu pot introduce un teren cu un cod inexistent n tabelul Proprietari. - In ta