PowerPoint Presentation

Documente similare
Baze de date Anul 2 Teorie Examen 1. Diagrama entitate/relatie si diagrama conceptuala (curs 2-5) 2. Arbore algebric si expresie algebrica (curs 6-10)

Microsoft Word - Curs_07.doc

PowerPoint Presentation

proiectarea bazelor de date

Microsoft Word - Curs_10.doc

Slide 1

Retele Petri si Aplicatii

PowerPoint Presentation

RZOLVARE EXERCITIU ZODII declare cursor distributie_zodie is select nume_zodie, count(*) distributie from zodiac z join utilizatori u on to_date(to_ch

Baze de date

1

Microsoft Word - Fisa disciplinei BD_I_IE doc

PowerPoint Presentation

Microsoft Word - Curs_08.doc

ALGORITHMICS

Giurgiteanu.doc

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Managementul Resurselor Umane

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X u

CONCURSUL NAŢIONAL DE MATEMATICA PANAITOPOL EDIŢIA a X-a, TULCEA, 21 aprilie 2018 Clasa a VII - a 1. Se consideră numerele reale x, y şi z, cel puţin

PHP (II)

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-

Laborator02

Prezentarea calculatorului

Curs8

Retele Petri si Aplicatii

Paradigme de Programare

LOGICA MATEMATICA SI COMPUTATIONALA Sem. I,

CRIPTOSISTEME SIMETRICE I

Microsoft Word - Curs_09.doc

ASDN

Carrier Pidgeon Protocol

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Microsoft Word - D_ MT1_II_001.doc

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

Subiecte_funar_2006.doc

UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB 6 aprilie 2019 Proba scrisă la MATEMATICĂ NOTĂ IM

Utilizare Internet

SSC-Impartire

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Microsoft Word - Tematica examen AII.doc

PowerPoint Presentation

Analiză statică Analiza fluxului de date 23 octombrie 2014

Mai multe despre optimizare

Microsoft Word - Curs 11 - PHP.doc

Microsoft Word - Algoritmi genetici.docx

Diapositive 1

PowerPoint Presentation

Baze de date - Anul 2 Laborator 8 Limbajul de definire a datelor (LDD) (partea I) În general, instrucţiunile LDD sunt utilizate pentru definirea struc

PowerPoint Presentation

I

PowerPoint Presentation

Curs7

ADRIAN TRIF BAZE DE DATE APLICAŢII ACCESS UTPRESS Cluj-Napoca, 2019 ISBN

Limbaje de Programare Curs 6 – Functii de intrare-iesire

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Limbaje Formale, Automate si Compilatoare

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

PowerPoint Presentation

Funcţii singulare

carteInvataturaEd_2.0_lectia5.pdf

COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathemati

B

Analiză de flux de date 29 octombrie 2012

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Database Management Systems Cap 2. Structured Query Language (1)

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Baze de date-Anul 2 (semestrul 2)

Microsoft Word - cap1p4.doc

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

OLM_2009_barem.pdf

Guns N' Roses Video Slots Regulile jocului Guns N' Roses Video Slots este un slot video cu 5 role, 3 rânduri și 20 de linii care conține substituții W

ExamView Pro - Untitled.tst

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Noțiuni de bază ale criptografiei

Elemente de aritmetica

programă şcolară pentru clasa a 11a, liceu

METODE NUMERICE ÎN INGINERIE

Concursul de Matematică Upper.School ediția 2019 Etapa III - Clasa a 7-a Lista de probleme PROBLEMA 1 / 4 punctaj: 7 Aflați numerele prime p, q, r car

Metode avansate de gestiune a documentelor și a sistemelor de calcul - LABORATOR 1 -

Coman Marinela Furnizor program formare acreditat: CCD BRĂILA Denumire program: INFORMATICĂ ŞI TIC PENTRU GIMNAZIU Clasa a V-a Categorie: 1; Tip de co

Creational design patterns

1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de

Aggregating Data

Programarea şi utilizarea calculatoarelor

Curs 6: Clasificarea surselor de informatii - Clasificarea Bayes Naiva. Modelul Bernoulli

Laborator 8: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea II - functii) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de bloc

ALGORITHMICS

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

Calcul Numeric

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29

PowerPoint Presentation

Microsoft PowerPoint - SD6-RO.ppt

Anexa nr. 2 FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior UNIVERSITATEA DE VEST TIMISOARA 1.2 Facultatea FIZICA 1.3 De

Notiuni de algebra booleana

Probleme date la examenul de logică matematică şi computaţională. Partea a II-a Claudia MUREŞAN Universitatea din Bucureşti Facultatea de Matematică ş

Transcriere:

Forme Normale 4

Redundanţa Redundanţa este cauza principală a majorităţii problemelor legate de structura bazelor de date relaţionale: spaţiu utilizat, anomalii de inserare / stergere / actualizare.

Redundanţa Dependenţele funcţionale pot fi utilizate pentru identificarea problemelor de proiectare şi sugerează posibile îmbunătăţiri Fie relaţia R cu 3 atribute, ABC. Nici o DF: nu avem redundanţe. Pentru A B: Mai multe înregistrări pot avea aceeaşi valoare pentru A, caz în care avem valori identice pentru B!

Tehnica de rafinare a structurii: descompunerea Descompunerea trebuie folosită cu "măsură": Este necesară o rafinare? Există motive de decompunere a relaţiei? Ce probleme pot rezulta prin descompunere?

Forme Normale Dacă o relaţie se află într-o formă normală particulară avem certitudinea că anumite categorii de probleme sunt eliminate/minimizate ne ajută să decidem daca descompunerea unei relaţii este necesară sau nu. Formele normale bazate pe DF sunt: prima formă normală (1NF), a doua formă normală (2NF), a treia formă normală (3NF), forma normală Boyce-Codd (BCNF). {BCNF 3NF, 3NF 2NF, 2NF 1NF}

1NF Definiţie. O relaţie se află în Prima Formă Normală (1NF) dacă fiecare atribut al relaţiei poate avea doar valori atomice (deci listele şi mulţimile sunt excluse) (această condiţie este implicită conform definiţiei modelului relaţional)

2NF Spunem că avem o dependenţă funcţională parţială într-o relaţie atunci când un atribut neprim este dependent funcţional de o parte a cheii primare a relaţiei (dar nu de întreaga cheie). Definiţie. O relaţie se află în A Doua Formă Normală (2NF) dacă este 1NF şi nu are dependenţe parţiale.

2NF

BCNF Definiţie. O relaţie R ce satisface dependenţele funcţionale F se află în Forma Normală Boyce- Codd (BCNF) dacă, pentru toate A din F + : - A (DF trivială), sau - conţine o cheie a lui R ( este o supercheie). R este în BCNF dacă singurele dependenţe funcţionale satisfăcute de R sunt cele corespunzătoare constrângerilor de cheie.

BCNF

3NF Definitie. O relaţie R ce satisface dependenţele funcţionale F se află în A Treia Formă Normală (3NF) dacă, pentru toate A din F + - A (DF trivială), sau - este o supercheie pentru R, sau - A este un atribut prim. Dacă R este în BCNF, evident este şi în 3NF. Dacă R este în 3NF, este posibil să apară anumite redundanţe. Este un compromis, utilizat atunci când BCNF nu se poate atinge. Descompunerea cu joncţiune fără pierderi & cu păstrarea dependenţelor a relaţiei R într-o mulţime de relaţii 3NF este întotdeauna posibilă.

3NF

BCNF & 3NF

Forme Normale bazate pe DF 1NF - toate valorile atributelor sunt atomice 2NF - toate atributele non-cheie depind de întreaga cheie (nu sunt dependenţe parţiale)... 3NF tabele în 2NF şi toate atributele non-prime depind doar de cheie (nu sunt depedenţe tranzitive) BCNF - Toate dependenţele sunt date de chei

Normalizarea pe scurt Fiecare atribut depinde: de cheie, de întreaga cheie, şi de nimic altceva decât de cheie definiţie cheie 2NF BCNF

Normalizarea pe scurt neprim Fiecare atribut depinde: de cheie, de întreaga cheie, şi de nimic altceva decât de cheie definiţie cheie 2NF 3NF

Exemple de nerespectare a FN 2NF - toate atributele neprime trebuie să depindă de întreaga cheie Exam (Student, Course, Teacher, Grade) 3NF - toate atributele neprime trebuie să depindă doar de cheie Dissertation(Student, Title, Teacher, Department) BCNF - toate DF sunt implicate de cheile candidat Schedule (Day, Route, Bus, Driver)

"Strategia" de normalizare BCNF prin descompunere cu joncţiune fără pierderi şi păstrarea dependenţelor (prima alegere) 3NF prin descompunere cu joncţiune fără pierderi şi păstrarea dependenţelor (a doua alegere) deoarece uneori dependenţele nu pot fi păstrate pt a obţine BCNF

Descompunerea în BCNF Fie relaţia R cu dependenţele funcţionale F. Dacă A nu respectă BCNF, descompunem R în R - A şi A. Aplicarea repetată a acestei idei va conduce la o colecţie de relaţii care sunt în BCNF; conduc la joncţiune fără pierderi; garantează terminarea.

Descompunerea în BCNF Exemplu: R(C, S, J, D, P, Q, V), C cheie, {JP C, SD P, J S} Alegem SD P, decompunând în (S,D,P), (C,S,J,D,Q,V). Apoi alegem J S, decompunând (C,S,J,D,Q,V) în (J,S) şi (C,J,D,Q,V) În general, mai multe dependenţe pot cauza nerespectarea BCNF. Ordinea în care le ``abordăm poate conduce la decompuneri de relaţii complet diferite!

În general, descompunerea în BCNF nu păstrează dependenţele. Exemplu. R(C,S,Z), {CS Z, Z C} Exemplu. R(C, S, J, P, D, Q, V) în (S, D, P), (J, S) şi (C, J, D, Q, V) nu păstrează dependenţele iniţiale {JP C, SD P, J S}).! adăugând JPC la mulţimea de relaţii obţinem descompunere cu păstrarea dependenţelor. BCNF & redundanţă

Exemplu 1. Fie A o DF din F ce nu respectă BCNF 2. Descompunem R în R 1 = A şi R 2 = R - A. 3. Dacă R 1 sau R 2 nu sunt în BCNF, descompunerea continuă (Title, Director, Cinema, Phone, Time) (Title, Cinema, Phone, Time) (Title, Director) (Cinema, Phone) (Title, Cinema, Time) Title Director Cinema Phone 22 Cinema, Time Title

Descompunerea în 3NF Evident, procedeul descompunerii din BCNF poate fi utilizat şi pentru descompunerea 3NF. Cum asigurăn păstrarea dependenţelor? Dacă X Y nu se păstrează, adăugăm XY. Problema este că XY e posibil să nu respecte 3NF! (pp. că adăugăm CJP pt `păstrarea JP C. Dacă însă are loc şi J C atunci nu e corect.) Rafinare: În loc de a utiliza mulţimea iniţială F, folosim o acoperire minimală a lui F.

Redundanţa in DF Un atribut A e redundant în DF B dacă (F - { B}) { -A B} F Pentru a verifica dacă A e redundant în B, calculăm ( -A) +. Apoi A e redundant în B dacă B ( -A) + Exerciţiu: Care sunt atributele redundante in AB C având: {AB C, A B, B A}?

Redundanţa in DF O DF f F e redundantă dacă F -{f} e echivalent cu F Verificăm că A e redundantă in F, calculând + pe baza F-{ A}. Atunci A e redundantă în F dacă A + Exerciţiu: Care sunt dependenţele funcţionale redundante în: {A C, A B, B A, B C, C A}?

Acoperire minimală O acoperire minimală pentru mulţimea F de dependente functionale este o multime G de dependente functionale pentru care: 1. Fiecare DF din G e de forma A 2. Pt fiecare DF A din G, nu are atribute redundante 3. Nu sunt DF redundante in G 4. G şi F sunt echivalente Fiecare multime de DF are cel putin o acoperire minimala!

Algoritm de calcul al acoperirii minimale pt F: 1. Folosim descompunerea pentru a obtine DF cu 1 atribut in partea dreapta. 2. Se elimina atributele redundante 3. Se elimina dependentele functionale redundante

Calcul Acoperire Minimală Fie F = {ABCD E, E D, A B, AC D} Atributele BD din ABCD E sunt redundante: F = {AC E, E D, A B, AC D} AC D este redundantă F = {AC E, E D, A B} care este o acoperire minimală Acoperirile minimale nu sunt unice (depind de ordinea de alegere a DF/atr. redundante)

Decompunere în 3NF Input: Schema R with F which is a minimal cover Output: A dependency-preserving, lossless-join 3NF decomposition of R Initialize D = Apply union rule to combine FDs in F with same L.H.S. into a single FD For each FD in F do Insert the relation schema into D Insert into D, where is some key of R Remove redundant relation schema from D as follows: delete R i from D if R i R j, where R j D return D

Exemplu Fie R(A,B,C,D,E) cu dependentele functionale: F = {ABCD E, E D, A B, AC D} - Acoperirea minimala a F este {AC E, E D, A B} - Unica cheie: AC - R nu e in 3NF deoarece A B nu respecta 3NF - descompunerea 3NF a R: Relatii pentru fiecare DF: R 1 (A, C, E), R 2 (E,D), si R 3 (A,B) Relatie pentru cheia lui R: R 4 (A, C) Eliminare relatie redundanta: R 4 (deoarece R 4 R 1 ) descompunerea 3NF este {R 1 (A,C,E),R 2 (E,D),R 3 (A,B)} Descompunerea 3NF nu este unică. Depinde de: Alegerea acoperirii minimale sau Alegerea relatiei redundante care va fi eliminata

BCNF vs 3NF BCNF: joncţiune fără pierderi (posibil să nu păstreze dependenţele) 3NF: joncţiune fără pierderi & păstrare dependenţe R(Course, Teacher, Time) cu DF {Course Teacher; Teacher, Time Course} - Chei: {Course, Time} şi { Teacher, Time } - R este în 3NF dar nu în BCNF - descompunere BCNF {R 1 (Course, Teacher), R 2 (Course, Time)} este (doar) cu joncţiune fără pierderi

Din nou despre... descompunere Descompunerea este ultima solutie de rezolvare a problemelor generate de redundanţe & anomalii Excesul poate fi nociv! Exemplu: R = (Teacher,Dept, Phone, Office) cu DF F = {Teacher Dept Phone Office} R = (Teacher,Dept, Phone, Office) R 1 = (Teacher,Dept) R 2 = (Teacher, Phone) R 3 = (Teacher, Office) Uneori, din motive de performanţă se practica denormalizarea

Dependenţe multivaloare course teacher book alg101 Green Alg Basics alg101 Green Alg Theory alg101 Brown Alg Basics alg101 Brown Alg Theory logic203 Green Logic B. logic203 Green Logic F. logic203 Green Logic intro. relaţia e în BCNF

Dependenţe multivaloare t 1 t 2 t 3 t 4 X Y Z a b 1 c 1 a b 2 c 2 a b 1 c 2 a b 2 c 1 t 1,t 2 r şi x (t 1 ) = x (t 2 ) t 3 r astfel încât XY (t 1 ) = XY (t 3 ), z (t 2 ) = z (t 3 ) Reguli adiţionale: Complementare: X Y X R XY Augumentare: X Y, Z W WX YZ Tranzitivitate: X Y, Y Z X Z Y Replicare: X Y X Y Fuzionare: X Y, W Y=, W Z, Z Y X Z

A patra formă normală (4NF) Definiţie. Fie R o schemă relaţională şi F o mulţime de dependenţe funcţionale şi multivaloare pe R. Spunem că R este în a patra forma normală NF4 dacă, pentru orice dependenţă multivaloare X Y: - Y X sau - XY = R sau - X e super-cheie

A patra formă normală (4NF) course teacher book alg101 Green Alg Basics alg101 Green Alg Theory alg101 Brown Alg Basics alg101 Brown Alg Theory logic203 Green Logic B. logic203 Green Logic F. logic203 Green Logic intro. course alg101 alg101 logic203 teacher Green Brown Green course teacher Relatia se poate descompune in: (Course,Teacher) si (Course,Book) course alg101 alg101 book Alg Basics Alg Theory logic203 Logic B. logic203 Logic F. logic203 Logic intro.

Dependenţa Join Spunem ca R satisface dependenţa join {R 1,,R n } dacă R 1, R 2,,R n este o descompunere cu joncţiuni fără pierderi a lui R. O dependenţă multivaloare X Y poate fi exprimată ca o dependenţă join: {XY,X(R-Y)}.

A cincea formă normală (5NF) O relaţie R este în NF5 dacă şi numai dacă pentru orice dependenţă join a lui R: - R i =R pentru un i oarecare, sau - dependenţa este implicată de o mulţime de dependenţe functionale din R in care partea stângă e o cheie pentru R