Maparea+reguli

8
1 Crearea unui proiect de baze de date Procesul mapării Transformarea modelului conceptual, a modelului ERD în model fizic, adică în baza de date propriu zisă, se numeşte mapare. Model conceptual Model fizic Termen Oracle Entitate Tabel Table Atribut Câmp ( coloană) Field Instanţă Înregistrare (articol,linie) Record UID Cheie primară Primary key Indentificator unic secundar Cheie unică Relaţie Cheie străină şi constrângere Foreign key Foreign key Constraint Regulile afacerii Restricţii (constrângeri) Constraints Maparea relaţiilor Tip de relaţie Reguli de mapare E1 E1 E1 One-to-one E2 E2 E2 1. Se introduce în entitatea E1 cheia primară a entităţii E2, ca şi cheie străină .Această cheie străină va fi şi cheie unică 2. Cheia străină se introduce în entitatea E1 sau în entitatea E2, dar se scrie cod adiţional 3. Cheia străină se introduce în entitatea cu mai puţine instanţe One-to-many Introducem în tabela corespunzătoare entităţii de pe partea many a relaţiei cheia primară a entităţii de pe partea one a relaţiei. Cheia străină va avea opţionalitatea relaţiei - dacă relaţia pe partea many este opţională atunci şi coloanele cheii străine vor fi opţionale. - dacă relaţia este obligatorie pe partea many atunci cheia străină va fi opţională Non-transferabilă Cheia străină nu poate fi actualizată Barată Cheia străină apare în partea many a relaţiei şi în plus, face parte din cheia primară Arc Se introduc în entitatea cu arc două chei străine, câte una pentru fiecare arc şi acestea sunt întotdeauna opţionale -se scrie cod adiţional pentru a verfica exclusivitatea

description

baze de date

Transcript of Maparea+reguli

  • 1

    Crearea unui proiect de baze de date

    Procesul maprii Transformarea modelului conceptual, a modelului ERD n model fizic, adic n baza de date propriu

    zis, se numete mapare.

    Model conceptual Model fizic Termen Oracle

    Entitate Tabel Table

    Atribut

    Cmp ( coloan) Field

    Instan nregistrare (articol,linie)

    Record

    UID Cheie primar Primary key

    Indentificator unic

    secundar

    Cheie unic

    Relaie Cheie strin i constrngere

    Foreign key

    Foreign key Constraint

    Regulile afacerii Restricii (constrngeri)

    Constraints

    Maparea relaiilor

    Tip de relaie Reguli de mapare

    E1

    E1

    E1

    One-to-one

    E2

    E2

    E2

    1. Se introduce n entitatea E1 cheia primar a entitii E2, ca i cheie strin .Aceast cheie strin va fi i cheie unic

    2. Cheia strin se introduce n entitatea E1 sau n entitatea E2, dar se scrie cod adiional

    3. Cheia strin se introduce n entitatea cu mai puine instane

    One-to-many Introducem n tabela corespunztoare entitii de pe partea many a relaiei cheia primar a entitii de pe partea one a relaiei. Cheia strin va avea opionalitatea relaiei - dac relaia pe partea many este opional atunci i

    coloanele cheii strine vor fi opionale. - dac relaia este obligatorie pe partea many atunci cheia

    strin va fi opional

    Non-transferabil Cheia strin nu poate fi actualizat

    Barat Cheia strin apare n partea many a relaiei i n plus, face parte din cheia primar

    Arc Se introduc n entitatea cu arc dou chei strine, cte una pentru fiecare arc i acestea sunt ntotdeauna opionale -se scrie cod adiional pentru a verfica exclusivitatea

  • 2

    Supertipuri,

    subtipuri

    1. O singura tabela in care coloane vor fi toate atributele

    supertipului si subtipurilor.

    Atributele subtipurilor se transform n chei straine optionale.

    Se introduce o consterangere de validare pentra a verfica

    daca coloanele obligatorii ale subtipurilor nu sunt nule.

    2. Dou tabele (cnd cele 2 subtipuri au foarte putine atribute n comun). Atributele supertipului devin coloane n

    cele 2 tabele. Relaiile supertipului devin chei strine ale subtipului.

    Maparea relaiilor

    1. Maparea relaiilor one-to-one Lund n considerare entitile FACTURA i COMANDA legate printr-o relaie one-to-one, este evident

    c putem include cheia primar id din FACTURA n cadrul tabelei COMANDA, dar putem proceda la fel de bine i invers, incluznd cheia primar a tabelei COMANDA n cadrul tabelei FACTURA, deoarece fiecrei instane a entitii FACTURA i corespunde cel mult o instan a entitii COMANDA, dar i invers, oricrei instane a entitii COMANDA i corespunde cel mult o instan a entitii FACTURA.

    Figura 1. 1 Maparea relaiilor one-to-one

    Se observ faptul c n tabela FACTURI cheia strin nr_comanda este o coloan obligatorie, corespunznd tipului de relaie din care deriv maparea, cea de relaie obligatorie.

    2. Maparea relaiilor one-to-many

    n gereral, la maparea unei relaii de tip one-to-many, vom introduce n tabela corespunztoare entitii de pe partea many a relaiei cheia primar a entitii de pe partea one a relaiei. Cmpurile astfel ntroduse se vor numi cheie strin (foreign keys). Aadar:

    - cheia strin a unei tabele este cheia primar din tabela referit

  • 3

    - cheia strin este ntotdeauna introdus n tabela corespunztoare entitii din partea many a relaiei. - dac relaia pe partea many este opional atunci i coloanele cheii strine vor fi opionale. - dac relaia este obligatorie pe partea many atunci coloanele ce fac parte din cheia strin vor fi

    opionale n exemplul de mai jos este ilustrat att maparea relaiei one-to-many ct i a relaiei barate:

    Figura 1. 2 Maparea relaiei one-to-many

  • 4

    3. Maparea relaiilor recursive

    Dac vom privi o relaie recursiv ca pe o relaie de tipul one-to-many ntre o entitate i ea nsi, atunci acest caz se reduce la regulile de mapare date anterior.

    Figura 1. 3 Maparea relaiilor recursive

  • 5

    4. Maparea relaiilor barate

    Relaiile barate sunt mapate ca i cheie strin n tabela aflat n partea many a relaiei, la fel ca la maparea oricrei relaii one-to-many. Bara de pe relaie exprim faptul c acele coloane ce fac parte din cheia strin vor deveni parte a cheii primare a tabelei din partea many a relaiei barate. Un exemplu este cel din figura 1.19.

    5. Maparea tipurilor i subtipurilor

    Nici un sistem de gestiune a bazelor de date nu suport n mod direct supertipurile i subtipurile. Exist mai multe soluii ale acestei probleme.

    Varianta 1. Se creeaz o tabel pentru supertip i cte o tabel pentru fiecare subtip. Diagramele de tabel n acest caz vor fi:

    Figura 1. 4 Maparea tipurilor i subtipurilor

    Cheia primar a supertipului va fi inclus n toate tabelele corespunztoare subtipurilor i va deveni cheia primar a acelei tabele. Atributele i cheile strine provenite din relaiile de la nivelul supertipului vor fi memorate n tabela corespunztoare supertipului. Atributele i relaiile de la nivel de subtip, se vor memora doar n tabela corespunztoare subtipului respectiv. Acest model este cel mai natural dar poate crea multe probleme privind eficiena ntruct sunt necesare multe operaii de interogare din tabele multiple, pentru a obine informaii suplimentare despre toi clienii.

    Varianta 2: Se creeaz cte o tabel pentru fiecare subtip. Atributele i cheile strine provenite din relaiile de la nivelul supertipului vor fi introduse n fiecare tabel astfel obinut, acestea fiind motenite de ctre fiecare subtip.

  • 6

    Figura 1. 5 Maparea tipurilor i subtipurilor

    Varianta 3. Se creeaz o singur tabel pentru supertip. Aceast tabel va conine toate coloanele corespunztoare atributelor de la nivelul supertipului, dar i toate coloanele corespunztoare tuturor atributelor din toate subtipurile. Atributele de la nivelul supertipului i vor pstra opionalitatea, ns atributele de la nivelul subtipurilor, vor fi toate introduse n tabel, dar vor fi toate opionale. Relaiile de la nivelul supertipului se transform normal. Relaiile de la nivelul subtipurilor se vor implementa cu ajutorul cheilor strine opionale.

    Figura 1. 6 Maparea tipurilor i subtipurilor

    Am introdus un atribut suplimentar Tip_client, cu ajutorul cruia vom codifica dac un client este persoan fizic sau companie.Deoarece atributele de la nivelul subtipurilor sunt obligatorii pentru subtipul respectiv, va trebui stabilit o regul de integritate la nivel de nregistrare, care s verifice c pentru o nregistrare de un tip anume sunt completate cmpurile corespunztoare. De exemplu, la adugarea unei noi companii n tabela CLIENTI, trebuie verificat cmpul cod_fiscal dac este completat. Se observ c vor fi multe cmpuri cu valoarea null, ceea ce conduce la un spaiu de memorie vast ocupat de tabel.

  • 7

    Maparea arcelor

    Pentru a mapa un arc se creeaz un numr de chei strine egal cu numrul de relaii existente n arcul respectiv.

    Figura 1. 7 Maparea arcelor

    Dei relaiile din arc sunt obligatorii, cheile strine corespunztoare au fost setate ca fiind opionale, deoarece pentru fiecare nregistrare trebuie s avem completat una din cele dou chei strine, iar cealalt cheie strin trebuie s rmn necompletat (principiul exclusivitii). n etapa de proiectare fizic se va implementa o condiie de integritate care s verifice aceast condiie.

  • 8

    6. Maparea relaiilor nontransferabile

    O relaie nontransferabil din modelul conceptual presupune definirea n modelul fizic a urmtoarei restricii: cheia strin definit pentru relaia nontransferabil nu poate fi actualizat. Restriciile care se implementeaz n modelul fizic pentru chei strine nu prevd aceast interdicie, astfel nct se impune ca prin programare s fie create module de program pentru verificarea acestei reguli. Nontransferabilitatea dedus din regulile afacerii trebuie bine documentat pentru ca ulterior programatorii s elaboreze codurile de program corespunztoare.

    Figura 1. 8 Maparea relaiilor nontransferabile

    n anexa 2 a lucrrii este prezentat un exemplu complet de mapare bazat pe diagrama ERD elaborat pentru afacerea aleas ca studiu de caz .