Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » referate » informatica » baze de date
Bd - modelul logic

Bd - modelul logic


- BD

MODELUL LOGIC

Nivel conceptual →nivel logic;

3 modele

MODEL RELATIONAL

'70 E.F.Codd - Laboratoarele IBM, San Jose, Clifornia: Teoria informatiei + teoria naiva a multimilor (10 ani SystemR).

80-90% relationale - motiv: operatii complexe - simplu, declarativ, neprocedural → implementare simpla a modelului conceptual.



Caracteristici:

  • Legaturi: atribute - relatii - n:1
  • Orientat pe valori - celelalte pe tipuri de date
  • Operatii complexe - riguros - operatii matematice - algebra relationala / calcul relationali

Elemente de teoria naiva a multimilor din modelul relational

Domeniu - multimea valorilor cu care se opereaza.

Produs cartezian al unui ansamblu de domenii: D1, D2, ., Dn, multimea ansamblurilor ordonate de forma: <d1, d2, ., dn> cu proprietatea

se noteaza

  • <d1, d2, ., dn> - n-tuplu sau tuplu - n aritatea

Exemplu: n=2, D1=, D2 =

Relatie - submultime a produsului cartezian .

Exemplu: R=

Membrii unei relatii - tuple

Observatii.

  1. Finititudinea
  2. Izomorfism: relatii finite - tabele; gestiunea tabelelor

Atribut - coloana din tabel; pentru simplificare

atribut = nume atribut.

Schema relationala - multimea atributelor din relatie.

Descrireile relatiilor

  • Tabelar

REL (A1, A2,., An) - Ai - atribute: intensia/extensia

Exemplu:

ORASE

STATE

POPULATIE

SAN DIEGO

MIAMI

PITSBURG

BUFFALO

TEXAS

OKLAHOMA

IOWA

WASHINGTON

ORASE_SUA (ORASE, STATE, POPULATIE)

  • Printr-o functie

(BUFFALO, WASHINGTON, 831) se descrie:

μ(ORASE) = 'BUFFALO'

μ(STATE) = 'WASHINGTON'

μ(POPULATIE) = 831

Observatii.

  1. Diferenta dintre functii in modelul relational si din matematica.
  2. Diferenta dintre descrierea tabelara si functionala:

(STATE, POPULATIE, ORASE) - (ORASE, POPULATIE, STATE)

submultimi ale produsului cartezian - ordinea conteaza.

Functie ordinea nu conteaza:

μ(POPULATIE) = 831

μ(ORASE) = 'BUFFALO'

μ(STATE) = 'WASHINGTON'

  1. Orice functie poate fi descrisa printr-o tabela finita si invers, orice functie poate descrise o tabel cu respectarea unor restrictii referitoare la ordine.
  2. Functiile se noteaza μ(x); x - numele atributului
  3. Din cele 2 moduri de descriere rezulta - 2 moduri de abordare:
    1. prin algebra relationala - operatii algebrice pe atribute
    2. prin calcul relational - aplicarea unor functii (predicate) asupra tuplelor.

Transformarea modelului conceptual in model logic

Exemplu: Modelul E-R a firmei cu simplificari pentru identificarea mai usoara a obiectelor:

Modelul conceptual - se descrie cu un ansamblu de scheme relationale. Ansamblul schemelor relationale formeaza - schema bazei de date sau mai exact - schema relationala a bazei de date.

Instantierea schemelor BD va forma BD (extensia BD).

Modelul E-R s-a subliniat 2 tipuri de entitati:

statice - relatii intre obiecte

dinamice - relatii intre entitati.

Entitatile statice - atributele se preiau direct de la obiectele componente ale entitatii. Exemplu: Schema relationala CLIENT va avea atributele (CNUME, CADRESA) preluate din entitate.

Pentru identificarea unei scheme relationale ca la entitati - chei. In schema relationala cheie = ansamblu de atribute. Exemplu DEPARTAMENT are cheia NR_DEP.

Cheie straina - cheie din alta schema relationala. Exemplu: MANAGER nu are cheie → ANUME (NUJMESAL - cheie straina).

Cheie surogat - Exemplu MARCA - unei persoane)

Observatie. In cazul entitatii dinamice care leaga entitatile (E1, E2,., En):

schema relationala se obtine prin reuniunea tuturor schemelor relationale; daca 2 sau mai multe atribute au acelasi nume se schimba numele;

tuplele schemei obtinute vor fi formate din tuplele tuturor schemelor relationale care compun noua schema.

Exemplu.

ANGAJAT (MARCA, ANUME, SALAR)

MANAGER (ANUME)

DEPARTAMENT (DNUME, NR_DEP)

FURNIZOR(FNUME, FADRESA)

PRODUS (PNUME, PRODUS#)

CERERE(C#, DATA)

CLIENT (CNUME, CADRESA, BALANTA)

In entitatile dinamice se preiau perechi de entitati statice:

LUCREAZA_IN (ANUME, DNUME)

CONDUCE (ANUME, DNUME)

LIVREAZA (PNUME, DNUME)

FURNIZEAZA(FNUME, PNUME, PRET)

INCLUDE(C#, PRODUS#,CANTITATE)

VANDUT(C#, CANTITATE)

Observatie. Ca in cazul schemelor relationale → entitatilor statice - cheia relatiei => 2 conditii pentru cheie:

nu exista 2 instantieri din relatie cu aceeasi valoare a cheii

nici o submultime care formeaza cheia nu satisface prima conditie.

Exemplu: LIVREAZA( PNUME, FNUME)

LIVREAZA( MERE, IONESCU)

LIVREAZA( PERE, IONESCU)

LIVREAZA( MERE, POPESCU)

Se alege cheia pentru LIVREAZA perechea (PNUME, FNUME)

Observatii legate de transcrierea relatiilor.

  1. Cheile depind de schema relationala si nu de instantieri - semantica problemei.
  2. Anumite relatii pot avea 2 sau mai multe chei. Exemplu DEPARTAMENT poate avea NRDEP# sau DNUME
  3. Ordinea dictata de cheia primara - chei auxiliare, chei candidat.
  4. Reguli de alegere a cheilor:
    1. Daca o relatie provine dintr-o entitate statica → cheia relatiei = cheia entitatii.
    2. Daca o relatie provine dintr-o legatura, sau o relatie m:n, in particular 1:1, cheia primara a relatiei = combinatie a cheilor entitatilor respective.
    3. Daca o relatie este de tip n:1, cheia primara se alege ca si combinatie sau una din cheile entitatilor care au intrat in relatie astfel ca sa satisfaca conditiile de cheie primara.

Exemplu: CONDUCE, cheia primara (ANUME, DNUME). Daca managerii au nume diferite se poate folosi cheia primara ANUME.

    1. Daca 2 sau mai multe entitati au o cheie candidat comuna - schema relationala se poate aduce la o singura schema care asigura economie de spatiu si timp de acces.

Exemplu:


DEPARTAMENT: DNUME | NRDEP

CEREALE | 12

LACTATE | 31

CARNE | 5

CONDUCE: ANUME | DNUME

IONESCU | CEREALE

POPESCU | LACTATE

GEORGESCU | CARNE

=>

DNUME | NRDEP | ANUME

CEREALE | 12 | IONESCU

LACTATE | 31 | POPESCU

CARNE | 5 | GEORGESCU

Dangling relations - DNUME exista in ambele relatii. Ce se intampla daca exista departament fara sef sau invers, sef de departament care n-are departament? → tuple cu valori necunoscute. => 2 metode de rezolvare:

Prin restrictia existentiala - Daca o valoare a tributului A al unui tuplu din relatia R trebuie sa intre in relatie cu un atribut B din relatia S, valoarea a trebuie sa existe in atributul B.

a.       avantaj - metoda de securitate - legaturi false. Exemplu: parinte - copil.

b.      dezavantaj - se poate restrange domeniul de aplicabilitate a BD - se elimina anumite tuple care ar trebui formate.

Folosirea valorii nule - ┴ - reprezinta nici o valoare - nu poate intra in cheia primara.

Exemplu. DEPARTAMENT: DNUME | NRDEP | MANAGER

VINURI | 16 | ┴

Observatie. Se poate trage concluzia ca din cele 13 relatii legand dupa principiile de mai sus se poate obtine urmatoarea simplificare a BD:

ANGAJAT (MARCA, ANUME, SALAR)

MANAGER (ANUME)

DEPARTAMENT (DNUME, NR_DEP)

FURNIZOR(FNUME, FADRESA)

PRODUS (PNUME, PRODUS#)

CERERE(C#, DATA, CNUME)

CLIENT (CNUME, CADRESA, BALANTA)

LUCREAZA_IN (ANUME, DNUME)

CONDUCE (ANUME, DNUME)

LIVREAZA (PNUME, DNUME)

FURNIZEAZA(FNUME, PNUME, PRET)

INCLUDE(C#, PRODUS#,CANTITATE)

VANDUT(C#, CANTITATE)

ANGAJAT (MARCA, ANUME, SALARIU, DNUME)

DEPARTAMENT (NR-DEP, DNUME, NRDEP, ANUME)

FURNIZOR (FNUME, FADRESA)

PRODUS (PNUME, PRODUS#, DNUME)

CERERE(C#, DATA, CNUME)

CLIENT (CNUME, CADRESA, BALANTA)

FURNIZOR (FNUME, PNUME, PRET)

INCLUDE (C#, PRODUS#, CANTITATE)

VANDUT (C#, CANTITATE)

OPERATIILE ALGEBREI RELATIONALE

AR - are la baza teoria naiva a multimilor + operatii specifice.

5 operatii fundamentale (de baza):

  • reuniunea - R, S de aceeasi aritate → relatie care contine toate tuplele - comune o singura data: RS, UNION(R,S).
  • diferenta - R, S de aceeasi aritate → relatie care contine toate tuplele din R care nu sunt in S: R-S, MINUS(R,S)
  • produsul cartezian - RxS, R de aritate m si S de aritate n → o relatie de aritate m+n unde primele m atribute sunt din R si urmatoarele n din S, PRODUCT(R,S).
  • proiectia - Π - relatiei R pe un ansamblu de atribute consta in:
    • reducerea lui R la atributele respective
    • eliminarea tuplelor care se repeta

Notatie , PROJECT(R,S)

Exemplu: R(a,b,c,d,e) - cum se proiecteaza pe c,a?

  • selectia - predicat (functie logica) F, care are 3 categorii de obiecte:
    • operanazi (constante, atribute)
    • operatori relationali: <, <=, >, >=, = , <>
    • operatori logici: , ^, NOT.

Selectia lui (prin) F aplicat lui R, notat cu, σF ( R), o noua relatie cu tuplele pentru care valoarea lui F este adevarata - RESTRICT(R,S).

Exemple.

R:

A

B

C

a

d

c

b

a

b

c

f

d

S:

D

E

F

b

d

g

a

a

f

RUS

R-S

σB=b(R)

R x S

Operatii auxiliare din algebra relationala

Operatii de baza: reuniunea, diferenta, produs cartezian, proiectie, selectie

Rolul operatiilor auxiliare

  • Intersectia: RS, INTERSECT(R,S) - ansamblul tuplelor din R si S

RS = R-(R-S)

RS = S-(S-R)

→ nu este operatie de baza se exprima prin -

Grafic:

  • Cat - R cu schema R(A1, A2, . , An) si sub-relatia S cu schema S(Ap+1, . , An) este Q(A1, . , Ap) - tuple de aritate p astfel ca, concatenate cu S dau tuplu din R. Notatie RS sau DIVISION (R,S) → tuple de aritate p astfel ca sa contina primele p componente din R cu conditia ca ultimele sa fie din S.

Q =

Exprimarea cu diferenta si proiectia:

Exemplu: R(4)

a

a

b

e

e

a

b

b

c

d

d

b

c

e

e

c

e

d

d

f

f

d

f

e

S(2):

c

e

d

f

S(2)

a

e

b

d

Notatie:

  • Asociere (Join)

o        Calificare multiatribut: R(A1, A2, . , An), S(B1, B2, . , Bm) si predicatul Q= Ai1 θ Bk1 . Aim θ Bkm, unde θ - operator de comparator de comparatie: =, >,<.>=,<=,<>

Teta join - Notatie:

JOIN (R,S,Q)

R x S [Q]

Observatie. JOIN = produs cartezian, proiectia pe atribute comune selectia tuplelor conform predicatului

Exemplu: Informatii despre CONTRACTANT (cod, banca) si obiectivele de investitii PROIECT (denumire, numar certificate de urbanizare) cu conditia ca sa nu fie la aceeasi adresa:

R = PROJECT (CONTRACTANT, cod, banca)

S = PROJECT(OBIECTIV_INVESTITIE, denumire, nr_cert_urb)

Rezultrat =

JOIN (R,S,OBIECT_INVESTITIE.sdresa<>CONTRACT.adresa).

o        Join Natural θ este operatorul = echijoin. Join natural: asocierea atributelor cu acelasi nume:

R x S

Se proiecteaza coloanele comune, R.A si S.A si se noteaza coloana comuna cu A

Notatie JOIN(R,S)

Exemplu: Informatii despre angajati si departamente

Rezultat = Join (SALARIAT, DEPARTAMENT)

o        Semijoin. Proiectia JOIN pe atributele lui R(A1, A2, . , An) al JOIN.

Antisimetria.

Exemplu: PERSOANA_FIZICA (nume, nr_buletin) care investesc in agrement

OB_INVEST(denumire, adresa, valoarea)

R=(SELECT(OB_INVEST, denumire='cabana' OR denumire='casa vacanta')

S= PROJECT(JOIN(PERS_FIZICA,R), nume,nr_buletin)

o        OuterJoin (Join extern): JOIN + tupluri care n-au corespondent completate cu NULL.

Outer stanga / dreapta - nesimetrica

Exemplu: Investitori inclusiv in activitati agrement

R=(SELECT(OB_INVEST, denumire='cabana' OR denumire='casa vacanta')

Rezultat=OUTER(PERSOANA_FIZICA, R)

Expresiile algebrei relationale: (relatii legate de operatii relationale)

Reprezentare grafica - arborele expresiei - arborele algebric. Rezultatul evaluarii expresiei → relatie. Relatii echivalente - acelasi rezultat.

Exemplu:

VIN (NV, PODGORIE, PRODUCTIE, ALCOOL)

CONSUMATOR (NC, NUME, ADRESA)

ABUZ (NC, NV, CANTITATE)

unde

NV - codul vinului

PRODUCTIE - anul productiei

NC - codul consumatorului (CNP sau numar de carte de identitate)

Numele consumatorului & adresa - care a baut mai mult de 10 sticle de Murfatlar din 2000 si gradul de alcool a vin-ului baut?

PROJ(NUME, ADRESA)


JOIN(, CONSUMATOR, NC)


PROJ(NC) CONSUMATOR(.)


JOIN (ABUZ, VIN, NV)

SELECT(ABUZ, SELECT(VIN,PODGORIE ="MURFATLAR" & CANTITATE>10) PRODUCTIE=2000)





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.