+ All Categories
Home > Documents > curs1-2 (1).pptx

curs1-2 (1).pptx

Date post: 16-Sep-2015
Category:
Upload: alexandra-dragan
View: 67 times
Download: 2 times
Share this document with a friend
62
Proiectarea Bazelor de Date Lector Dr. Razvan PETRUSEL [email protected] Toate slide-urile acestei prezentari sunt inspirate din cursul Oracle Academy: Database Design
Transcript

Design of Management Systems

Proiectarea Bazelor de DateLector Dr. Razvan [email protected] slide-urile acestei prezentari sunt inspirate din cursul Oracle Academy: Database DesignCe este un model conceptual?Modeleaza nevoile functionale si informationale ale unei afaceriSe bazeaza pe nevoile curente si reflecta nevoile viitoare Se refera doar la nevoile afacerii si nu se preocupa de modul in care se va realiza implementarea efectivaSe numeste Model Entitate Relatie (Entity Relationship Model)Reprezentat grafic sub forma unei Diagrame Entitate Relatie (Entity Relationship Diagram) - ERD

Construim un model conceptual pentru ca:Trebuie sa descriem exact nevoile de informatii ale afacerii;Faciliteaza discutiile si impartasirea cunostintelor;Previne greselile si neintelegerile;Sunt o parte importanta a documentatiei de sistem;Sunt fundatia solida a implementarii fizice a bazei de date;Documenteaza procesele de afaceri (cunoscute si sub nuele de reguli de afaceri - business rules);Iau in considerare reglementarile si legile care guverneaza activitatea de afaceri. De ce trebuie sa realizam modelul conceptual al datelor?Abilitatile de a organiza si clasifica datele ne permit sa tragem concluzii folositoare in legatura cu fapte aparent intamplatoare si aleatorii. Lumea in care traim produce vaste cantitati de fapte care au nevoie de structura si ordonare pentru a fi folositoare. E esential sa invatati despre entitati pentru ca acestea sunt lucrurile in legatura cu care se stocheaza datele. De exemplu:O facultate trebuie sa stocheze date despre (cel putin): STUDENT(i), PROFESOR(i), CURS(uri), SALA(i) DE CURS(uri), NOTA(e).Diagrame Entitate Relatie (ERD)Oamenii vorbesc limbi diferite dar unele semne au un inteles global.Ce inseamna aceste semne de circulatie?:

Diagrame Entitate Relatie (ERD)Este eficient sa comunici informatia astfel incat sa fie inteleasa de cat mai multa lume.

ERD-urile sunt exact asa: indiferent de limba vorbita, toata lumea deseneaza aceste diagrame in acelasi fel, urmand aceleasi conventii de notare. O entitate este:Ceva semnificativ legat de afacere in legatura cu care trebuie stiute date;Un nume pentru o multime de lucruri similare;De obicei sunt denumite prin substantive.

Exemple: obiecte, evenimente, persoane

Entitatile au instante. O instanta este o singura aparitie (materializare) a unei entitati. Entitati si InstantePERSON Mahatma GandhiPRODUCT Nike Air JordanPRODUCT TYPE shoeJOB electricianSKILL LEVEL beginnerCONCERT U2 at the PalladiumANIMAL DogCAR Volkswagen beetleEntitatiTangibile, de ex. PERSON sau PRODUCTIntangibile, de ex. SKILL LEVELUn eveniment, de ex. CONCERTEste CAINE o entitate sau o instanta?

Depinde:Daca ne gandim la diferite tipuri de animale, are sens sa ne gandim la entitatea ANIMAL cu instantele CAINE, PISICA, CAL, etc. Dar daca avem o cerscatorie de caini? Sistemul intreprinderii trebuie sa stocheze date legate de diverse rase de caini, nu de alte specii de animalePentru crescatoria de caini, CAINE este o entitate cu instantele TERRIER, POODLE, LABRADOR, etc..Ce este un atribut?Ca si o entitate, un atribut reprezinta ceva semnificativ pentru afacere. Un atribut este o bucata specifica de informatie care:Descrie o entitateCuantifica o entitateCalifica o entitateClasifica o entitateSpecifica o entitate

Un atribut are o singura valoare.

AtributeCUSTOMERfamily name, age, shoe size, town of residence, emailCARmodel, weight, catalog priceORDERorder date, ship dateJOBtitle, descriptionTRANSACTIONamount, transaction dateEMPLOYMENT CONTRACTstart date, salary

Atributele au valori. Valoarea unui atribut poate fi: un numar, un sir de caractere, o data calendaristica, o imagine, un sunet, etc. Acestea sunt numite tipuri de date sau formate de date. AtributeUnele atribute trebuie sa aiba o valoare. Acestea se numesc atribute obligatorii. De exemplu, daca se stocheaza date legate de o persoana, nume este un atribut obligatoriu. Alte atribute pot sa aiba o valoare sau pot fi nule. De exemplu, daca se stocheaza date legate de o persoana, numar telefon este un atribut optional.Adresa email poate fi un atribut obligatoriu al entitatii angajat daca se modeleaza o aplicatie de mesagerie, dar ar putea fi optional pentru entitatea client daca se modeleaza partenerii unei firme.Exemplu:Un DJ trebuie sa cunoasca diverse tipuri de muzica (cantece, coloane sonore, etc.). Daca am modela afacerea unui DJ, entitatea care se refera la colectia de cantece s-ar putea numi PIESA.

Ce atribute ar putea avea entitatea PIESA? Ce valori ar putea avea aceste atribute?IdentificatoriUn Identificator Unic (UID) este un atribut, sau o combinatie de atribute, care separa o instanta a unei entitati de alta instanta.

Cum ati gasi o anumita piesa in intreaga colectie? Care ar putea fi UID-ul pentru PIESE?Ganditi-va la toti studentii din sectie. Fiecare student are cateva atribute. Ce atribut va permite sa gasiti un anumit student in intreaga sectie? Termeni cheie:AtributTip de date (data type)EntitateInstantaAtribut ObligatoriuNullAtribut OptionalIdentificator Unic (UID)

Modele conceptualeUn model conceptual bine realizat ramane neschimbat indiferent de sistemul in care va fi implementa efectiv. Aceasta este ceea ce se numeste un model implementation-free.

Ce este un Model Entitate Relatie?O lista cu toate entitatile si atributele acestora precum si relatiile dintre acestea. Ofera informatii suplimentare cum ar fi descrieri ale entitatilor, tipuri de date si constrangeri. Modelele ER au patru obiective:Sa surprinda toate informatiile importante;Sa se asigure ca orice informatie apare o singura data in model; Nu modeleaza informatii care pot fi derivate din alte informatii care se gasesc deja in model; Plaseaza informatiile intr-un loc logic, previzibil. Scenariul Afacerii DJ on DemandAm inceput afacerea deoarece eram un grup de prieteni care oraganizau petreceri si se ocupau de muzica diferitelor evenimente. Asa ca ne-am gandit sa castigam ceva bani din aceste activitati. Ne-am denumit afacerea DJs on Demand (DJ la cerere).Toti angajatii firmei sunt parteneri. Fiecare partener are o responsabilitate specifica. Managerul de proiect ia primul legatura cu clientu si discuta detaliile evenimentului. De exemplu, despre ce tip de petrecere este vorba: o zi de nastere, o nunta, o aniversare, absolvire, etc. Alt detaliu important este data la care are loc evenimentul.Scenariul Afacerii DJ on DemandDupa ce clientul decide ca evenimentul va avea loc, partenerul responsabil cu planificarea evenimentelor ia legatura cu acesta pentru a stabili: locatia, catering-ul, decoratiunile si alte detalii. DJ-ul discuta cu clientul despre muzica dorita. Managerul de proiect supervizeaza planificatorul de evenimente si DJ-ul. El ami autorizeaza cheltuielile legate de eveniment.Avem o colectie larga de CD-uri. Fiecare CD contine cateva piese, iar aceeasi piesa poate aparea pe mai multe cd-uri. Clasificam fiecare piesa dupa tip (hip hop, salsa, R & B (rhythm and blues), techno, salsa, polka, rock, jazz, new age, classical, etc.)Putem propune o lista initiala de piese clientului, in functie de eveniment. Desigur, clientul poate cere alte piese, in functie de preferintele personale.Scenariul Afacerii DJ on DemandLista noastra de clienti creste. Avem o multime de clienti care revin dupa ce le-au placut evenimentele organizate anterior. De asemenea, avem multi clienti ocupati care au nevoie sa desfasoare mai multe evenimente in acelasi timp. Avem si o lista de teme pe care le folosim pentru a clasifica evenimentele. De exemplu, o nunta poate avea o tema tropicala, o petrecere poatea avea ca tema un bal mascat, o aniversare poate avea tema retro, etc. Aceasta clasificare ne ajuta sa selectam o locatie potrivita si ajuta DJ-ul sa selecteze muzica si imbracamintea. Unii dintre parteneri au o specialitate deci tema ne ajuta sa alocam persoana cea mai potrivita.Scenariul Afacerii DJ on DemandEvenimentele se tin fie intr-un loc public fie intr-o locatie privata. Managerul de eveniment este responsabil cu persona care inchiriaza spatiul public sau detine locatia privata. Deoarece mai multi parteneri pot lucra simultan la un eveniment, si un eveniment poate fi realizat de mai multi parteneri avem nevoie sa stim permanent cine se ocupa de ce eveniment. Tinem evidenta in legatura cu ce si cand a facut fiecare partener si DJ in legatura cu un eveniment.Relatiile in Modelele de DateRelatiile: Reprezinta ceva semnificativ/important pentru afacere;Arata cum sunt legate intre ele entitatile;Exista intotdeauna intre doua entitati (sau intre aceeasi entitate); Au intotdeauna doua parti; Au nume la ambele capete; Au optionalitate;Au cardinalitate.

OptionalitateaRelatiile sunt fie obligatorii fie optionale. Optionalitatea se determina raspunzand la patru intrebari.De exemplu:Trebuie ca fiecare angajat sa aiba o functie? Adica, este obigatorie sau optionala relatia dintre angajat si functie?Pot angajatii sa aiba mai mult de o functie?Trebuie ca orice functie sa fie ocupata de un angajat? Adica, este obigatorie sau optionala relatia dintre functie si angajat?Poate fi o functie detinuta de mai mult de un angajat?

CardinalitateaCardinalitatea reprezinta gradul unei relatii. Raspunde la intrebarea cat de multe.

De exemplu: Cate functii sunt detinute de un angajat? Una sau mai multe?O functie poate fi detinuta de cati angajati? Doar unul? Unul sau mai multi?

Exemple de optionalitate si cardinalitateFiecare ANGAJAT trebuie sa detina una si doar o FUNCTIE

Fiecare FUNCTIE poate fi detinuta de unul sau mai multi ANGAJATI

Fiecare PRODUS trebuie sa fie clasificat unul si doar un TIP DE PRODUS

Fiecare TIP DE PRODUS poate contine unul sau mai multe PRODUSEMai multe exemple - sunt corecte?Fiecare LOC poate fi vandut catre unul sau mai multi PASAGERI.

Fiecare PASAGER poate achizitiona un singur LOC.

LOCUL este vandut unui PASAGER (sau PASAGERI deci duce la supravanzare)

PASAGERII achizitioneaza sau rezerva un LOC.

Scenariu 1In colectia noastra clasificam toata muzica pe tipuri. Tipurile diferite sunt rock, jazz, country, classical, pop, new age, etc. Oricand se pot adauga noi tipuri. De exemplu am adaugat recent un nou tip pentru muzica rap. Ne dam seama ca o piesa poate fi clasificata in mai multe tipuri dar, pentru nevoile noastre, alegem un singur tip principal pentru fiecare piesa."

Scenariu 1PIESA are un TIP: optionalitate si cardinalitate

Optionalitate = Must (trebuie) sau may (poate)?Fiecare PIESA trebuie sa fie clasificata de un (si doar un) TIP.Fiecare TIP poate sa fie clasificarea pentru una sau mai multe PIESE.

Cardinalitate = Cat de multe?Fiecare PIESA trebuie sa fie clasificata de un (si doar un) TIP.Fiecare TIP poate sa fie clasificarea pentru una sau mai multe PIESE.

Scenariu 1

Scenariu 1SONG are un TYPEPoate fi un TYPE cu nici un SONG?De ce ar exista un TYPE cu nici un SONG?

Scenariu 2Care sunt relatiile in urmatorul scenariu?

In restaurantul nostru clientii vin la bar si plaseaza comenzile. Un client poate comanda pentru sine sau pentru un intreg grup de persoane. De exemplu, daca o mama comanda pentru sine si pentru copii consideram ca mama este titularul comenzii si ea este responsabila cu plata. Desigur, un client poate plasa cate comenzi doreste.

Scenariu 2CLIENT are COMENZI: optionalitate si cardinalitate

Optionalitate = Trebuie (Must) sau poate (may)?Fiecare COMANDA trebuie sa fie realizata de un (si doar un) CLIENT.Fiecare CLIENT poate sa plaseze una sau mai multe COMENZI.

Cardinalitate = How many?Fiecare COMANDA trebuie sa fie realizata de un (si doar un) CLIENT.Fiecare CLIENT trebuie sa plaseze una sau mai multe COMENZI.

Scenariu 2

DJs on Demand: Clienti, Evenimente, si TemeLista noastra de clienti creste. Avem o multime de clienti (customers) care revin dupa ce au fost multumiti de prestatia initiala. Unii dintre clientii nostri pot sa desfasoare mai mult de un eveniment (event) in acelasi timp. Fiecare partener al firmei are o specialitate. Ne place sa clasificam evenimentele pe care le organizam dupa teme (theme). Aceasta ne ajuta sa distribui partenerului potrivit organizarea evenimentului in care este specializat. O tema (theme) de eveniment (event) poate fi: petrecere pe plaja, medievala, carnavalm retro, etc. Adaugam teme pe masura ce acestea sunt cerute de clienti.Determinati Entitatile, Atibutele si Relatiile

Conventii ERDEntitatile sunt reprezentate in dreptunghiuri.In dreptunghi sunt scrise numele entitatilor.Numele entitatilor sunt intotdeauna la singular si scrise cu litere mari.

Conventii ERDAtributele sunt scrise sub numele entitatilor.Atributele obligatorii sunt marcate cu: *Atributele optionale sunt marcate cu : oIdentificatorii unici sunt marcati cu: #

Conventii ERDRelatiile sunt linii care leaga entitatile.Aceste linii sunt fie continue (trebuie - must) sau punctate (poate- may). Liniile se termina cu single toe sau cu crows foot.

Solutie

Vorbind limba ERD

Vorbind limba ERDDeoarece o relatie are doua parti vom citi prima data de la stanga la dreapta.

FIECAREEntitate A OPTIONALITATE (trebuie/poate) - (must be/may be)NUME RELATIECARDINALITATE (unul si doar unul/ unul sau mai multi) - (one and only one/ one or more)Entitate B

Vorbind limba ERDAcum vom citi de la dreapta la stanga.

FIECAREEntitate B OPTIONALITATE (trebuie/poate) - (must be/may be)NUME RELATIECARDINALITATE (unul si doar unul/ unul sau mai multi) - (one and only one/ one or more)Entitate A

Vorbind limba ERD

Putin mai complex

SupertipuriUn supertip reuneste mai multe entitati care au unele din atribute comune. Aceste atribute comune sunt plasate la nivelul supertipului. Se procedeaza la fel pentru relatii. Subtipurile mostenesc toate atributele si relatiile entitatii supertip.

Un pic si mai complex. Recunoasteti afacerea?Rezolvarea relatiilor mai multe la mai multeIn afacerea DJ, fiecarui PARTENER ii poate fi atribuit unul sau mai multe EVENIMENTE. Fiecare EVENIMENT poate fi realizat de unul sau mai multi PARTNERi.Cand un PARTENTER lucreaza la un EVENIMENT, vrem sa stim status-ul proiectului.In care entitate ar trebui adaugat atributul status?

O entitate de intersectie JOB ASSIGNMENT a fost adaugata pentru a include atributul status.Relatia M:M a fost transformata in doua realatii1:M.Care ar fi UID-ul entitatii de intersectie?

Entitati de IntersectieMai multe exemple

Mai multe exemple

Validarea unei ERDO buna modalitate de a verifica o ERD este realizarea unei analize CRUD. CRUD este un acronim pentru: Create, Retrieve, Update, Delete. Acestea sunt cele patru operatii elementare pe care baza de date le permite. Verificarea CRUD presupune ca toate operatiile CRUD specificate in scenariul de afaceri sa fie prezente si in ERD. Validarea unei ERDRealizarea validari CRUD ajuta la verificarea completitudinii. Daca exista o regula a afacerii care nu are o entitate pe care sa se realizeze o operatie CRUD modelul este incomplet. Daca exista entitati neatinse de nici o operatie CRUD (nu exista nici o regula a afacerii care sa creeze, extraga, actualizeze sau stearga date din entitate) atunci entitatea poate fi stearsa din model.Normalizarea si Forma Normala 1Forma Normala 1 cere ca in entitate sa nu existe atribute cu valori multiple.

Exista multe Sali de clasa intr-o scoala, deci atributul clasroom are mai multe valori. Daca un atribut are mai multe valori, se creeaza o entitate suplimentara care se leaga de entitatea initiala printr-o relatie M:1.

1NF - incorect

Normalizarea si Forma Normala 2Forma normala 2 cere ca fiecare atribut care nu este identificator unic (UID) sa depinda de intreg UID-ul entitatii respective.

Ce spuneti de atributil Supplier Name?Daca un furnizor livreaza 5 produse diferite, ce se intampla cand numele furnizorului se modifica?

Normalizarea si Forma Normala 3Forma Normala 3 este atinsa daca nici un atribut care nu este UID nu depinde de un alt atribut care nu este UID.

Daca doriti sa stocati date privind colectia voastra de CD-uri, are sens sa stocati si detalii legate de magazinul din care ati cumparat CD-ul in cadrul aceleiasi entitati?

Exercitii 3NF

Exercitii 3NF

Alte exercitii

Convertirea ERD in tabele din baza de date

Convertirea ERD in tabele din baza de date


Recommended