Universitatea Constantin Br ncuşi” din Târgu-Jiu ...€¦ · prin comunicare, săse completeze...

66
Proiectarea bazelor de date Universitatea Constantin Brâncuşi” din Târgu-Jiu Facultatea de Inginerie şi Dezvoltare Durabilă Departamentul de Automatică, Energie, Mediu şi Dezvoltare Durabilă Lect.dr . Adrian Runceanu

Transcript of Universitatea Constantin Br ncuşi” din Târgu-Jiu ...€¦ · prin comunicare, săse completeze...

  • Proiectarea bazelor de date

    Universitatea “Constantin Brâncuşi” din Târgu-JiuFacultatea de Inginerie şi Dezvoltare DurabilăDepartamentul de Automatică, Energie, Mediu şi Dezvoltare Durabilă

    Lect.dr. Adrian Runceanu

  • Model fizic şi model conceptual

    Entităţi si instanţe (partea I)

    30.12.2015 2

    Curs 16

  • Model fizic şi model conceptualEntităţi si instanţe (partea I)

    1. Data versus informaţie

    2. Model fizic şi model conceptual

    3. Entităţi si instanţe

    4. Relaţii

    5. ERD-uri

    6. Subtipuri şi supertipuri

    7. Documentarea unui ERD

    30.12.2015 3

  • Date versus informatie

    Interacţionăm zilnic cu baze de date, fie căsuntem sau nu conştienţi:

    – Istoricul creditului la bancă

    – Codurile şi numele produselor din magazin

    – Fişa de înscriere a studentului la admitere, …

    Important este să înţelegem cum suntmodelate datele, cum se păstrează şi cum putem regăsi informaţii pe baza acestor date

    30.12.2015 4

  • (Dicţionar general al limbii române – Vasile Breban Ed. Enciclopedica,1991)

    Informaţia rezultă adesea din combinarea, compararea siefectuarea unor calcule asupra datelor.

    30.12.2015 5

    Date Informatii

    “Fapte, elemente ceservesc ca punct de plecare în cercetarea uneiprobleme sau pentru a trage o concluzie sauhotărâre”.

    “Comunicare, veste, ştire”“Fiecare dintre elementelenoi în raport cucunoştinţele prealabile”.

    Date versus informatie

  • 30.12.2015 6

    Date InformatiiNotele studentilor in sesiune Media notelor pe grupă la

    proiectarea bazelor de date

    Ultima medie de admitere la Facultatea de Inginerie

    Numarul de studenti cu media peste 9 din facultate

    Bugetul facultatii in 2013 a fost 200000 lei

    Ce buget este necesar in anulviitor?

    Bugetul facultatii in 2014 a fost 250000 lei

    Date versus informatie

  • Cum aţi folosi o baza de date dacă aţi avea unadintre meseriile de mai jos?

    Mecanic auto

    Şofer

    Cultivatoare de flori

    30.12.20157

  • Model fizic şi model conceptualEntităţi si instanţe (partea I)

    1. Data versus informaţie

    2. Model fizic şi model conceptual

    3. Entităţi si instanţe

    4. Relaţii

    5. ERD-uri

    6. Subtipuri şi supertipuri

    7. Documentarea unui ERD

    30.12.2015 8

  • Model fizic și model conceptual

    Modelarea datelor estedoar prima parte a procesului de construire al bazei de date.

    Modelul conceptual:- Modelează nevoile

    informaţionale ale afacerii- Se numeşte “Entity

    Relationship Model”- Este prezentat printr-o

    diagramă numită “Entity Relationship Diagram”

    30.12.20159

  • Etape în procesul de dezvoltare a bazelor de date

    1. Incepe prin formularea cerinţelor informaţionaleale afacerii

    2. Se desenează apoi modelul conceptual

    3. Se proiectează baza de date pornind de la modelulconceptual (entitaţile devin tabele, atributeledevin nume de coloane care corespund unor tipuride date, se stabilesc proprietăţile speciale ale unorcoloane)

    4. Se construieşte baza de date (modelul fizic) prinexecutarea unor instructiuni SQL

    30.12.2015 10

  • Principii de bază ale modelării

    Să cuprindă toate datele necesare

    Datele sa fie păstrate o singură dată

    Să nu cuprindă informaţii ce se obţin din date deja cuprinse in model

    Orice dată să fie aşezată în locul cel mai logic şi mai potrivit

    30.12.2015 11

  • Model fizic şi model conceptualEntităţi si instanţe (partea I)

    1. Data versus informaţie

    2. Model fizic şi model conceptual

    3. Entităţi si instanţe

    4. Relaţii

    5. ERD-uri

    6. Subtipuri şi supertipuri

    7. Documentarea unui ERD

    30.12.2015 12

  • Entități și instanțe

    Entitate = ceva semnificativ pentru afacere, referitorla care trebuie să cunoaştem date.

    Entităţile au instanţe.

    Entităţile au atribute.

    O instanţă este o valoare dată entităţii.

    Exemplu: Entitatea FRUCT are instanţe: cireasa, nuca, pepene, măr, portocală.

    30.12.2015 13

  • Atributul

    Este o proprietate a unei entităţi sau un detaliureferitor la acesta.

    Descrie, cuantifică, califică, clasifică sau specifică o entitate.

    Are un tip care poate fi un număr, un şir de caractere, o dată calendaristică, o imagine, etc.

    Exemplu:

    Entitatea FRUCT poate avea atributele: nume, tip, regiune, data_culesului.

    In acest caz o instanta poate fi: portocală, citrice, Grecia, 10-July-2014.

    30.12.2015 14

  • Atribute mandatorii sau opționale

    Unele atribute trebuie neapărat să aibă valoare. Acestea se numesc MANDATORII.

    Exemplu: In afaceri, numele este o informaţie absolut necesară.

    Alte atribute pot avea informaţie necompletată, nulă. Acestea se numesc OPŢIONALE.

    Exemplu: În multe cazuri numărul de telefon fix este o informaţiece poate lipsi dacă apare numărul de telefon mobil.

    30.12.2015 15

  • Exemplu

    30.12.2015 16

  • Exercițiu

    Dati exemple de atribute ale urmatoarelor entitati:

    - CUSTOMER

    - CAR

    - JOB

    - ORDER

    - TRANSACTION

    - EMPLOYMENT CONTRACT

    30.12.2015 17

  • Exercițiu

    30.12.2015 18

  • Legătura lipsă (THE MISSING LINK)

    Câteodată, clientul dă informaţii trunchiate siirelevante sau poate nu ştie nici el exact ce vrea.

    Informaţiile pe care le primim în astfel de cazurisunt asemeni unor piese incomplete de puzzle.

    Punând întrebările potrivite şi lucrând în echipă, putem descoperi ceea ce ne lipseşte.

    30.12.2015 19

  • Exercițiu

    Fiecare student primeşte o piesă de puzzle.

    Piesele componentilor unui grup formeazăimaginea, mai putin piesa cea mai importantă, care lipseşte.

    Fără a-şi arăta unul altuia bucăţica de imagine, doarprin comunicare, să se completeze imaginea grupeisi apoi să se identifice ce conţine piesa ce lipseşte.

    30.12.2015 20

  • Identificarea și modelarea entităților

    Identificați și modelați entitățile pe baza următorului set de cerințe de informații

    “I’m the manager of a training company that provides instructor-led

    courses in management techniques. We teach many course, each of which has a

    code, a name, and a fee. Introduction to UNIX and C Programming are two of our

    more popular courses. Courses vary in length from one day to four days. An

    instructor can teach several courses. Paul Rogers and Maria Gonzales are two of

    our best teachers. We track each instructor’s name and phone number. Each

    course is taught by only one instructor. We create a course and then line up an

    instructor. The students can take several courses over time, and many of them do

    this. Jamie Brown from AT&T took every course we offer! We track each students

    name and phone number. Some of our students and instructors do not give us their

    phone numbers.”

    30.12.2015 21

  • Soluție

    INSTRUCTOR (TEACHER)

    name

    phone number

    STUDENT

    name

    phone number

    COURSEcodenamefee duration

    30.12.2015 22

  • Model fizic şi model conceptualEntităţi si instanţe (partea I)

    1. Data versus informaţie

    2. Model fizic şi model conceptual

    3. Entităţi si instanţe

    4. Relaţii

    5. ERD-uri

    6. Subtipuri şi supertipuri

    7. Documentarea unui ERD

    30.12.2015 23

  • Relația

    Reprezintă ceva semnificativ pentru afacere

    Exprimă care sunt relaţiile între două entităţi (sauîntre una şi aceeaşi entitate)

    Se citeşte în ambele sensuri

    Are opţionalitate

    Are un grad de cardinalitate

    30.12.2015 24

  • Opționalitatea unei relații

    Relaţiile pot fi:

    1. mandatorii

    2. opţionale

    Exemplu:

    Pentru a stabili opţionalitatea relaţiei dintre entităţile ANGAJAT siJOB se pun următoarele întrebări:

    1. Trebuie ca fiecare angajat să aibă un job?

    2. Trebuie ca fiecare job să fie acordat unui angajat?

    30.12.2015 25

  • Cardinalitatea unei relații

    Determină gradul relaţiei.

    Se determină prin răspunsul la întrebarea: Câte? Câți?

    Exemplu:

    Câte job-uri poate îndeplini un angajat? Unul, sau maimulte?

    Câti angajaţi pot lucra la un job? Doar unul? Sau maimulţi?

    30.12.2015 26

  • Exemple de relaţii

    Each EMPLOYEE must hold one and only one JOBEach JOB may be held by one or more EMPLOYEEs

    Each PRODUCT must be classified by one and only one PRODUCT TYPE

    Each PRODUCT TYPE may classify one or more PRODUCTs

    30.12.2015 27

    Câte job-uri poate îndeplini un angajat? Unul, sau mai multe?

    Câti angajaţi pot lucra la un job? Doar unul? Sau mai mulţi?

  • Model fizic şi model conceptualEntităţi si instanţe (partea I)

    1. Data versus informaţie

    2. Model fizic şi model conceptual

    3. Entităţi si instanţe

    4. Relaţii

    5. ERD-uri

    6. Subtipuri şi supertipuri

    7. Documentarea unui ERD

    30.12.2015 28

  • Convenții ale ERD-ului

    Entităţile sunt reprezentate prin

    dreptunghiuri cu colţurile

    rotunjite, în care este înscris

    numele entităţii la singular, cu

    litere mari.

    Atributele sunt afişate sub

    numele entităţii, cu litere mici. Se pun in faţă semnele:

    * pentru atribut mandatoriu

    o pentru atribut opţional

    # pentru identificator unic.

    30.12.201529

  • Convenții ale ERD-ului

    ERD – Entity Relationship Diagram

    Informaţiile dintre date pot fi reprezentate

    într-o formă convenţională care să poată fi

    uşor înţeleasă de toată lumea.

    O astfel de reprezentare este diagrama

    entităţi-relaţii, numită şi harta relaţiilor sau

    ERD-ul (Entity Relationship Diagram).

    30.12.201530

  • Convenții ale ERD-ului

    Relaţiile sunt trasate cu linie:

    - continuă, pentru relaţie mandatorie

    - întreruptă, pentru relaţie optională

    Relaţiile se termină:

    - într-o linie, pentru cardinalitate 1;

    - în trei liniuţe (picior de cioară), pentru “maimulte”.

    30.12.2015 31

  • DESENAREA RELAŢIILOR SI CITIREA LOR IN LIMBAJ ERD-ish

    30.12.2015 32

  • Diagrame matriciale

    Sunt o alternativă la reprezentarea prin ERD.

    Sunt folosite atunci cândavem foarte multe relaţii, pentru a ne asigura că nu am uitat vreuna.

    Diagramele matriciale nu arată opţionalitatea şicardinalitatea.

    30.12.2015 33

  • Model fizic şi model conceptualEntităţi si instanţe (partea I)

    1. Data versus informaţie

    2. Model fizic şi model conceptual

    3. Entităţi si instanţe

    4. Relaţii

    5. ERD-uri

    6. Subtipuri şi supertipuri

    7. Documentarea unui ERD

    30.12.2015 34

  • Subtipuri și supertipuri

    Adesea unele instanţe au atribute sau relaţii pe care alte instanţe ale aceleiaşi entităţi nu le au. Exemplu:

    30.12.2015 35

  • Un subtip

    Moşteneşte toate atributele supertipului

    Moşteneşte toate relaţiile supertipului

    De obicei are propriile atribute / relaţii

    Este desenat în interiorul supertipului

    Nu este singurul subtip

    Poate avea la rândul său subtipuri

    Se mai numeşte “subentitate”

    30.12.201536

  • Exemplu

    30.12.2015 37

  • Subtipuri și supertipuri

    Fiecare instanţă a unui supertip este instanţă a unui subtip (partiţionarea este exhaustiva).

    Nici o instanţă a unui supertip nu apare în două subtipuri (partiţionarea este mutual exclusivă).

    Se indica folosirea subtipului OTHER atuncicand este posibil sa apara si alt tip de instantedecat cele prevazute de celelalte subtipuri.

    30.12.2015 38

  • Exercițiu

    30.12.2015 39

  • Model fizic şi model conceptualEntităţi si instanţe (partea I)

    1. Data versus informaţie

    2. Model fizic şi model conceptual

    3. Entităţi si instanţe

    4. Relaţii

    5. ERD-uri

    6. Subtipuri şi supertipuri

    7. Documentarea unui ERD

    30.12.2015 40

  • Documentarea unui ERD

    Cheia ce permite verificarea acurateţii şi completitudiniimodelului este identificarea şi documentarea regulilorafacerii.

    Nu toate regulile pot fi reprezentate în diagramă.Unele vor fi implementate mai târziu, prin programare.

    Ele trebuie incluse în documentaţia modelului.

    Există două tipuri de reguli

    1. Regulile structurale

    2. Regulile procedurale

    30.12.2015 41

  • Documentarea unui ERD

    1. Regulile structurale indică:

    tipurile de informaţii care se vor memora;

    relaţiile dintre aceste informaţii.

    Aproape toate regulile structurale pot fi reprezentate în diagramă.

    30.12.2015 42

  • Documentarea unui ERD

    2. Regulile procedurale descriu procesele din cadrul activităţii.

    In general, regulile procedurale nu pot fi reprezentate în diagramă, şi deci trebuie incluse în documentaţie.

    Acestea indică adesea succesiunea în timp a unor evenimente.

    30.12.2015 43

  • Documentarea unui ERD

    EXERCITIU

    Members of your design team have been working with the local hospital to develop a data model for their need to store information about patients, the patient's room number, the patient's doctor, drug prescriptions given, and specific drug information.

    However, they all went on vacation and left you to figure out the model.

    They also failed to give you any of their documentation other than the entities and attributes illustrated here.

    Instead of going back to the hospital, which could reflect poorly on your company, you’re going to have to think about everything you know about hospitals!

    30.12.2015 44

  • Documentarea unui ERD

    EXERCITIU

    Your task is to generate a list of business rules you think were used to arrive at the information shown here.

    Use your imagination. List 10 structural rules, 5 procedural rules, and 2

    programmatic rules (rules to be addressed by computer applications in the future).

    State each rule as a single sentence. Based on your set of business rules, draw the ERD.

    30.12.2015 45

  • Documentarea unui ERD

    30.12.2015 46

  • Documentarea unui ERD

    SOLUTIE:

    Structural Rules: A patient is someone who is admitted to the hospital. Each room assignment must include the building number and room

    number. Each room may be occupied by one or more patients. A physician must have a valid license number. Each drug must be prescribed by a physician. Each drug prescribed must have a label showing label number, dosage,

    treatment duration, and expiration date. The drug code, name, and cost must be recorded for all drugs. Each prescription must have a number and date. Each physician may be

    assigned to more than one patient. Each patient must have an assigned physician.

    30.12.2015 47

  • Documentarea unui ERD

    Procedural Rules:

    Changes to prescriptions can be made only by

    licensed physicians.

    Patients cannot refill prescriptions without a

    physician's signature.

    Physicians cannot remove drug labels.

    Patients cannot change hospital rooms without a

    physician's recommendation.

    Nurses cannot reassign patients without physician

    approval.30.12.2015 48

  • Documentarea unui ERD

    Programming Rules:

    Drugs costs are billed at current cost at the time of

    patient discharge.

    Physician fees may reflect additional costs associated

    with patient complications, additional patient

    requests, etc.

    30.12.2015 49

  • Documentarea unui ERD

    30.12.2015 50

  • TRANSFERABILITATEA RELATIILOR O relaţie este netransferabilă dacă nu poate fi mutată la altă instanţă.

    Exemplu de relaţie transferabilă:

    Un student poate fi mutat în altăgrupă

    Exemplu de relaţie netransferabilă:

    O poezie este scrisă de un autor şi nu poate fi transferată altui autor.

    30.12.2015 51

  • Tipuri de relații

    Relaţia (1:M) One to Many

    Este relaţia cea mai frecventintâlnită.

    30.12.2015 52

  • Tipuri de relații

    Relaţia (1:1) One to One

    În practică se întâlnescdoar câteva tipuri de relaţie 1:1

    30.12.2015 53

  • Tipuri de relații

    Relaţia (M:M) Many to Many

    Este o relaţie foarte întâlnităîn prima fază a modelării.

    Se recomandă rezolvareaacestor relaţii în alt mod deoarece nu poate fi implementată în aceastăformă.

    30.12.2015 54

  • Tipuri de relații

    EXERCITIU

    Draw an entity relationship diagram to represent the following:

    a. Each CLUB must be assigned to one and only DEPARTMENT

    b. Each DEPARTMENT may be responsible for one or more CLUBs

    c. Each STUDENT may join one or more CLUBs

    d. Each CLUB may be composed of one or more STUDENTs

    30.12.2015 55

  • Tipuri de relații

    SOLUTIE

    30.12.2015 56

  • Exercitiu

    Read the relationships. Write the relationship sentences for this E-R diagram.

    issued forITEM

    numberdescription

    ORDERnumber

    type boughtvia

    originated by

    theoriginator

    of

    CUSTOMERfirst namelast name

    stored in

    therepository

    for

    WAREHOUSEidaddress

    30.12.2015 57

  • Solutie

    Each ORDER must be issued for one or more ITEMs.

    Each ITEM may be bought via one or more ORDERs.

    Each ORDER must be originated by one and only one CUSTOMER.

    Each CUSTOMER may be the originator of one or more ORDERs.

    Each ITEM must be stored in one and only one WAREHOUSE.

    Each WAREHOUSE may be the repository for one or more ITEMs.

    30.12.2015 58

  • Exercitiu

    Draw an Entity-Relationship Diagram. Draw an Entity-Relationship diagram to represent the

    following:

    a. Each EMPLOYEE must be assigned to one and only DEPARTMENT.

    b. Each DEPARTMENT may be responsible for one or more EMPLOYEEs.

    c. Each EMPLOYEE may be assigned to one or more ACTIVITIES.d. Each ACTIVITY may be performed by one or more

    EMPLOYEEs.

    30.12.2015 59

  • Solutie

    assigned toDEPARTMENTEMPLOYEE

    responsiblefor

    performedby

    ACTIVITY

    30.12.2015 60

  • Exemplu pentru etapele creării unei baze de date

    1. Se prezintă necesităţile informaţionale ale afacerii:

    30.12.2015 61

  • 2. Se crează modelul conceptual:

    30.12.2015 62

  • 3. Pornind de la modelul conceptual se stabilesc:

    - numele tabelelor

    - numele coloanelor din fiecare tabel, tipulacestora şi după caz proprietatea:

    PK (primary key), FK(foreign key), Null sauUnique

    30.12.2015 63

  • 4. Prin instrucţiuni SQL se creazăbaza de date proiectată anterior.

    30.12.2015 64

  • Materialul utilizat in acest curs face parte din curriculum Oracle Academy

    30.12.2015 65

  • Întrebări?

    30.12.2015 66