BAZE DE DATE c5_REI

15
BAZE DE DATE Cursul 7 Baze de date relationale

description

Baze de date curs 5 - Vlad Diaconita (2014) ASE

Transcript of BAZE DE DATE c5_REI

Page 1: BAZE DE DATE c5_REI

BAZE DE DATECursul 7

Baze de date relationale

Page 2: BAZE DE DATE c5_REI

Definitie BDRO bază de date relaţională (BDR)

reprezintă un ansamblu de relaţii (tabele) de date împreună cu legăturile dintre ele.

Page 3: BAZE DE DATE c5_REI

NormalizareaEste o teorie construită de EF Codd în jurul conceptului de

forme normale (FN), care ameliorează structura BD prin înlăturarea treptată a unor neajunsuri şi prin adăugarea unor facilităţi sporite privind manipularea datelor.

Scopul proiectării unei BDR este ca informațiile sa fie stocate într-un singur loc, în locul cel mai potrivit.

Se grupeaza atributele în relatii cu scopul de a minimiza redundanta informatiilor si (odata cu aceasta) spatiul ocupat de relatii pe suportul disc.

Page 4: BAZE DE DATE c5_REI

NormalizareaTehnica de normalizare este utilizată în

activitatea de proiectare a structurii BDR şi constă în eliminarea unor anomalii (neajunsuri) de actualizare din structură.

Normalizarea utilizează ca metodă descompunerea top-down a unei tabele în două sau mai multe tabele, păstrând informaţii (atribute) de legătură.

Page 5: BAZE DE DATE c5_REI

Anomaliile de actualizareanomaliile de adăugare = nu pot fi incluse noi

informaţii necesare într-o tabelă deoarece nu se cunosc şi alte informaţii utile (de exemplu valorile pentru cheie), informatiile isi pot pierde consistenta

anomalia de ştergere = stergând un tuplu dintr-o tabelă, pe lângă informaţiile şterse, se pierd şi informaţiile utile existente în tuplul respectiv;

anomalia de modificare = este dificil de modificat o valoare a unui atribut atunci când ea apare în mai multe tupluri.

Simbol Emitent Cod_Fiscal Cod_Piata Den_Piata Data Val_totalaSNP Petrom 1590082  REGS Regular 07.01.2014 1.600.000SNP Petrom 1590082  ODDS Odd lot 07.01.2014 500.000TLV Banca Transilvania 5022670 REGS Regular 07.01.2014 1.200.379TLV Banca Transilvania 5022670 ODDS Odd lot 07.01.2014 119.000TLV Banca Transilvania 5022670 REGS Regular 08.01.2014 1.258.379

Page 6: BAZE DE DATE c5_REI

Dependente funcționaleDescrie un anumit tip de legătura care se stabilește intre

atributele aceleiași relații;Fie o schema de relatie R si fie submultimile de atribute A

si B din R, AÍR si B Í R;Spunem ca B depinde functional de A si scriem A ® B daca

pentru orice relatie legala r, construita pe schema de relatie R, se verifica urmatoarea situatie: pentru orice pereche de tupluri t1 si t2 din r, pentru care

t1[A]=t2[A], are loc intotdeauna si t1[B]=t2[B].

Aceasta inseamna ca atunci cand un tuplu t1 are (pe submultimea de atribute A) aceeasi valoare cu alt tuplu t2, obligatoriu cele doua tupleuri vor avea aceeasi valoare si pe submultimea de atribute B.

Valorile din B sunt in mod unic determinate de valorile din A.

Page 7: BAZE DE DATE c5_REI

Dependente functionaleSimbol Emitent Cod_Fiscal Cod_Piata Den_Piata Data Val_totalaSNP Petrom 1590082  REGS Regular 07.01.2014 1.600.000SNP Petrom 1590082  ODDS Odd lot 07.01.2014 500.000TLV Banca Transilvania 5022670 REGS Regular 07.01.2014 1.200.379TLV Banca Transilvania 5022670 ODDS Odd lot 07.01.2014 119.000TLV Banca Transilvania 5022670 REGS Regular 08.01.2014 1.258.379

Page 8: BAZE DE DATE c5_REI

Forma normala 1O relaţie R este în FN1 dacă domeniile pe

care sunt definite atributele relaţiei sunt constituite numai din valori atomice (elementare). În plus, un tuplu nu trebuie să conţină atribute sau grupuri de atribute repetitive.

Este forma de bază a relaţiilor, care figurează ca cerinţă minimală în cazul majorităţii SGBDR.

Page 9: BAZE DE DATE c5_REI

Forma normala 1Emitent

Simbol (PK)

Denumire

[…]

Valoare_totala

Emitent

#Simbol (PK)

Denumire

Cotatie

#Simbol (PK,FK)

#Data_cot (PK)

#Cod_Piata (PK)

Den_Piata

Valoare_totala

Cotatie devine o entitate avand un identificator unic compus, toate atributele sale vor avea o singura valoare per instanta. Entitatile Emitent si Cotatie sunt in FN1.

Atributul valoare totala va avea valori multiple. Aceasta entitate nu este in FN1.

Page 10: BAZE DE DATE c5_REI

Forma normala 2O relaţie R este în FN2 dacă este în FN1 şi

oricare dintre atributele non-cheie este dependent funcţional complet de cheia primară a relaţiei.

FN2 interzice manifestarea unor dependenţe funcţionale parţiale în cadrul relaţiei.

Page 11: BAZE DE DATE c5_REI

Forma normala 2Emitent

#Simbol (PK)

Denumire

Cod_Fiscal

Cotatie

#Simbol (PK, FK)

#Data_cot (PK)

#Cod_piata (PK,FK)

Valoare_totala

Atributul den_piata nu este bine plasat. El depinde doar de atributul cod_piata si nu de intregul identificator unic al relatiei (Simbol+Data_cot+cod_piata).Relatia Cotatie nu este in FN2.

Atributul den_piata acuma este bine plasat, depinde doar de cod_piata

Emitent

#Simbol (PK)

Denumire

Cod_fiscal

Cotatie

#Simbol (PK,FK)

#Data_cot (PK)

#Cod_Piata (PK)

Den_Piata

Valoare_totala

Piata

#Cod_piata (PK)

Den_Piata

Page 12: BAZE DE DATE c5_REI

Forma normala 3O relaţie R este în FN3 dacă este în FN2 şi

atributele non-cheie nu sunt dependente tranzitiv de cheia primară a relaţiei. FN3 interzice manifestarea dependenţelor funcţionale tranzitive în cadrul relaţiei.

Page 13: BAZE DE DATE c5_REI

Forma Normala 3Sesiune_Stiintifica

#Materie

#Sesiune

Student_Castigator

Data_nastere

Sesiune_Stiintifica

#Materie

#Sesiune

Student_Castigator

Studenti

#Student_Castigator

Data_nastere

Student si data_nastere nu depind de o partea a CP dar data_nastere depinde de Student care depinde de CP.

Se creaza o entitate noua Studenti, ambele fiind acuma in FN3.

Page 14: BAZE DE DATE c5_REI

Forma normală Boyce-Codd (BCNF)Este o varianta mai restrictiva a FN3.O relaţie este în BCNF dacă dependenţele

funcţionale netriviale care se manifestă în cadrul relaţiei conţin în partea stângă (ca determinant) o cheie candidată.

Destul de rar se intampla ca o relatie care este in Fn3 sa nu este fie si in BCNF

Page 15: BAZE DE DATE c5_REI

Forma normală Boyce-Codd (BCNF)

Reguli discount comision: Clienti ocazionali, A->discount 10%Clienti ocazionali, B->discount 15%Clienti fideli, C->discount 20%In acest caz exista o dependenta Discount->Tip ordin iar Discount nu este o cheie candidata.

Zi Tip_OrdinComision Standard Piata Discount

01.01.2014 A 0,5 REGS 10

01.01.2014 B 0,5 REGS 15

02.01.2014 C 0,75 RGBS 20

Tranzactie