Dependen ţ e func ţ ionale

8
Dependenţe funcţionale Definiţie Dependenţa funcţională este o restricţie care apare între atributele unei entităţi la nivelul semanticii (semnificaţiei) acestora; fie a1 şi a2 atributele unei entităţi E; spunem că atributul a2 este dependent funcţional de atributul a1 dacă fiecărei valori a atributului a1 îi corespunde o valoare şi numai una a atributului a2. Notaţie a1 a2 (a2 depinde funcţional de a1) Obs: se pot afla în dependenţă funcţională nu numai atribute individuale, ci şi grupuri

description

Dependen ţ e func ţ ionale. Definiţie - PowerPoint PPT Presentation

Transcript of Dependen ţ e func ţ ionale

Page 1: Dependen ţ e func ţ ionale

Dependenţe funcţionale

Definiţie

Dependenţa funcţională este o restricţie care apare între atributele unei entităţi la nivelul semanticii (semnificaţiei) acestora; fie a1 şi a2 atributele unei entităţi E; spunem că atributul a2 este dependent funcţional de atributul a1 dacă fiecărei valori a atributului a1 îi corespunde o valoare şi numai una a atributului a2.

Notaţie

a1 a2 (a2 depinde funcţional de a1)

Obs: se pot afla în dependenţă funcţională nu numai atribute individuale, ci şi grupuri de atribute

Page 2: Dependen ţ e func ţ ionale

Definiţie

Determinantul unei dependenţe funcţionale este un atribut care, prin valorile sale, determină valorile celuilalt atribut (atributul aflat în stânga săgeţii)

Exemple:

1. Elevi={CNP, Nume, Prenume, Adresa, CodClasă}

Atributul Nume depinde funcţional de atributul CNP; CNP este determinantul dependenţei

2. Clase={CodClasa, Locaţie, NrBănci, NrTable}

Fiecare dintre atributele Locatie, NrBanci, NrTable depinde functional de atributul CodClasa; CodClasa este determinantul dependenţei funcţionale

3. Medici={CodCabinet, Grad, Nume, Prenume}

Atributul CodCabinet depinde de grupul de atribute Nume, Prenume, Grad

Page 3: Dependen ţ e func ţ ionale

Procesul de normalizare

Normalizarea este un proces care se desfăşoară în mai mulţi paşi. Fiecare pas (cu excepţia aducerii bazei de date la FN1) necesită:

1. Identificarea dependenţelor funcţionale

2. Verificarea îndeplinirii unor anumite proprietăţi denumite generic forme normale

Dpdv al modelului relaţional, singura formă normală obligatorie pentru toate relaţiile din baza de date este FN1; pentru evitarea tuturor anomaliilor de actualizare este necesară continuarea procesului de normalizare până cel puţin la FN3

Page 4: Dependen ţ e func ţ ionale

Prima formă normală (FN1)Exemplu: fie baza de date a unei firme de transport auto care se ocupă cu transportul persoanelor. Această baza de date ar putea cuprinde următoarele entităţi: Angajaţi, Vehicule, Garaje, Clienţi , Trasee. Colectarea unor date ar putea duce la completarea următorului tabel

Examinând celulele din coloanele TipAuto si Soferi observăm că tabela Garaje se află în formă nenormalizată. Ca urmare, tabela trebuie trecută în FN1.

Definiţie:

O relaţie aflată în prima formă normală este o relaţie cu proprietatea că oricare dintre celulele tabelei care o reprezintă convenţional conţine o valoare şi numai una (nu există atribute cu valori multiple)

Page 5: Dependen ţ e func ţ ionale

Aducerea unei relaţii la FN1Fie E o entitate (ex: Garaje), a atributul său (ex: TipAuto) responsabil pentru forma

nenormalizată a tabelei T corespunzătoare entităţii (ex: tabela Garaje11)

Aducerea tabelei la FN1 necesită:

1. Eliminarea atributului a din entitatea E, respectiv a coloanei corespunzătoare din tabela T (aici: a coloanei TipAuto din tabela Garaje11; denumim Garaje22 tabela astfel rezultată)

2. Crearea – pornind de la atributul a – a unei noi entităţi E’ (aici: pe baza atributului TipAuto creăm entitatea Vehicule cu cheia primară NrÎnmatr şi atributele: TipAuto, Marca, NrLocuri, Culoare)

3. Stabilirea relaţiei dintre cele două entităţi, relaţie care este – după caz – de tip 1-m sau n-m (aici: relaţia dintre entităţile Garaje şi Vehicule este de tip 1-m). Prin urmare, cheia primară a entităţii E trebuie să fie inclusă – cu rol de cheie externă – printre atributele entităţii E’ (aici: includem atributul CodGaraj – cu rol de cheie primară pentru entitatea Garaje – pe post de cheie externă pentru entitatea Vehicule)

Page 6: Dependen ţ e func ţ ionale

Tabela Garaje după prima modificare

Tabela nou creată, Vehicule

Relaţiile dintre noile tabele

Page 7: Dependen ţ e func ţ ionale

Într-o relaţie pot exista mai multe atribute cu valori multiple; în acest caz, aducerea relaţiei la FN1 necesită câte un pas pentru fiecare atribut (aici: noua tabelă Garaj22 este în forma nenormalizată din cauza atributului Soferi). Prin urmare, se va proceda pentru acest atribut cum s-a procedat pentru atributul TipAuto

Tabela Garaj33 (aflată în FN1)

Tabela nou creată, Soferi

Tabela de joncţiune, ConducPrin aceasta se realizează o relaţie de tip n-m între entităţile nou create Soferi şi Vehicule)

Setul de relaţii rezultat după încheierea operaţiei de aducere la FN1 a entităţii Garaje

Page 8: Dependen ţ e func ţ ionale

Sursa: Informatică – Manual pentru clasa a XII-a, Editura Corint, Mioara Gheorghe, Monica Tătărâm, Corina Achinca, Ioana Pestriţu, 2007