Dependențe Funcționale

Curs
8/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 26 în total
Cuvinte : 11338
Mărime: 63.17KB (arhivat)
Publicat de: Cristinel Morar
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Cotelea Vitalie

Extras din curs

Proiectarea logică a bazei de date urmăreşte printre altele diminuarea redundanţei şi asigurarea securităţii datelor. Acest scop se poate atinge, dacă se cunosc a priori constrângerile ce pot fi aplicate asupra datelor. Dependenţele sunt constrângeri impuse datelor în baza de date. Ba mai mult, mulţimea de dependenţe este partea esenţială a schemei unei relaţii, deci şi a schemei bazei de date. Dependenţele funcţionale au fost primele constrângeri logice considerate în modelul relaţional. Ele formează cel mai simplu şi cel mai larg răspândit tip de dependenţe.

Prezentul capitol e consacrat regulilor de inferenţă, închiderilor şi diverselor forme de acoperiri ale dependenţelor funcţionale.

3.1. Noţiuni generale

Să considerăm relaţia orar din fig. 3.1.

orar PROFESOR DISCIPLINĂ ZI ORĂ GRUPĂ SALĂ

Petrescu Baze de date Luni 8:00 C941 402

Petrescu Baze de date Mierc. 14:30 C941 216

Petrescu Baze de date Mierc. 16:00 C941 216

Vasilache Progr.logică Luni 9:30 C941 404

Fig.3.1. Relaţia orar

Această relaţie arată care profesor predă disciplina dată, cărei grupe, în ce zi a săptămânii, la ce oră şi în ce sală. Atributele ce formează schema acestei relaţii nu pot primi orice valori. Atributele se află într-o interdependenţă. Aici, în particular, se suprapun asupra atributelor următoarele constrângeri:

(1) o disciplină este predată unei grupe de studiu de un singur profesor;

(2) profesorul, în ziua dată, la ora dată se găseşte într-o singură sală;

(3) în ziua dată, la ora dată, în sala dată se predă o singură disciplină.

Aceste constrângeri ce reflectă o interdependenţă între atribute sunt exemple de dependenţe funcţionale. Dependenţa funcţională este o generalizare a noţiunii de cheie.

Constrângerile de mai sus pot fi formulate:

(1) DISCIPLINĂ GRUPĂ determină funcţional PROFESOR sau, ce e echivalent PROFESOR e determinat funcţional de DISCIPLINĂ GRUPĂ;

(2) PROFESOR ZI ORĂ determină funcţional SALĂ;

(3) ZI ORĂ SALĂ determină funcţional DISCIPLINĂ;

şi notate respectiv:

(1) DISCIPLINĂ GRUPĂ  PROFESOR;

(2) PROFESOR ZI ORA  SALA;

(3) ZI ORA SALĂ  DISCIPLINA.

Unica posibilitate de a determina dependenţele funcţionale constă într-o analiză cu luare-aminte a semanticii atributelor. În acest sens dependenţele sunt de fapt aserţiuni despre lumea reală. Ele nu pot fi demonstrate. Dar ele pot şi trebuie să fie susţinute de SGBD-uri. Majoritatea sistemelor susţin numai dependenţele funcţionale determinate de cheile relaţiei. Dar sunt şi sisteme ce susţin dependenţe funcţionale arbitrare.

Trebuie menţionat că declararea dependenţelor funcţionale într-o bază de date este o decizie pe care o ia numai proiectantul bazei de date. Odată declarate SGBD-ul va susţine aceste constrângeri. În afară de aceasta, după cum se va vedea în celelalte secţiuni, graţie dependenţelor, există o structură mai eficientă de păstrare a datelor. Dependenţele funcţionale vor servi la proiectarea schemelor bazelor de date cu anumite proprietăţi dezirabile.

Definiţia 3.1. Fie relaţia r cu schema R şi X,YR. Vom spune că dependenţa funcţională XY este validă în relaţia r (sau relaţia r satisface dependenţa funcţională XY), dacă, pentru orice două tupluri din r, fie t1 şi t2, din condiţia că tuplurile au X-valori identice, urmează că au şi Y-valori identice, adică t1[X]=t2[X]t1[Y]=t2[Y].

Dacă XY e validă în r(R), vom spune că X determină funcţional Y sau, că Y e determinat funcţional de X. În această definiţie (şi mai departe) simbolul "" notează "implică".

Deci dependenţa funcţională XY reprezintă o restricţie de integritate aplicată tuplurilor relaţiei r(R), în sensul că oricare două tupluri din r care prezintă o aceeaşi valoare pentru X trebuie să prezinte o aceeaşi valoare pentru Y.

Definiţia 3.1 poate fi interpretată şi în felul următor: relaţia r(R) satisface dependenţa funcţională XY, dacă relaţia Y(X=x(r)) conţine nu mai mult de un tuplu pentru orice valoare x a atributului X.

Partea stângă a dependenţei poartă numele de determinant, iar partea dreaptă a dependenţei poartă numele de determinat. Astfel în cadrul dependenţei XY, X este determinantul, iar Y determinatul.

Exemplul 3.1. Considerăm relaţiile din fig.3.2. În ele sunt valide următoarele dependenţe funcţionale. În relaţia r1: AB; în relaţia r2: AB, BA; în relaţia r3: AB.

r1 A B r2 A B r3 A B

a1 b1 a1 b1 a1 b1

a2 b2 a2 b4 a2 b4

a3 b1 a1 b1 a1 b1

a4 b1 a3 b2 a3 b2

a5 b2 a2 b4 a2 b4

a6 b2 a4 b3 a4 b4

Fig.3.2. Relaţiile r1, r2 şi r3.

Pentru a verifica dacă o dependenţă e validă într-o relaţie dată, se utilizează următorul algoritm.

Preview document

Dependențe Funcționale - Pagina 1
Dependențe Funcționale - Pagina 2
Dependențe Funcționale - Pagina 3
Dependențe Funcționale - Pagina 4
Dependențe Funcționale - Pagina 5
Dependențe Funcționale - Pagina 6
Dependențe Funcționale - Pagina 7
Dependențe Funcționale - Pagina 8
Dependențe Funcționale - Pagina 9
Dependențe Funcționale - Pagina 10
Dependențe Funcționale - Pagina 11
Dependențe Funcționale - Pagina 12
Dependențe Funcționale - Pagina 13
Dependențe Funcționale - Pagina 14
Dependențe Funcționale - Pagina 15
Dependențe Funcționale - Pagina 16
Dependențe Funcționale - Pagina 17
Dependențe Funcționale - Pagina 18
Dependențe Funcționale - Pagina 19
Dependențe Funcționale - Pagina 20
Dependențe Funcționale - Pagina 21
Dependențe Funcționale - Pagina 22
Dependențe Funcționale - Pagina 23
Dependențe Funcționale - Pagina 24
Dependențe Funcționale - Pagina 25
Dependențe Funcționale - Pagina 26

Conținut arhivă zip

  • Dependente Functionale.doc

Alții au mai descărcat și

AutoCad

APERTURE - controleazã mãrimea cursorului selector, caracteristic modului object snap. ARC - traseazã un arc de cerc de orice dimensiune. A -...

Biblioteca de Șabloane Standard

Biblioteca de Sabloane Standard (STL) asigura o abstractizare standardizata a datelor prin intermediul containerelor si o abstractizare procedurala...

Clase Derivate

1. Clase derivate. Prin mostenire, atributele unei clase de baza sunt transmise unor clase derivate. Derivarea permite definirea unor clase noi,...

Clase în Java

Clase pentru miniaplicatii Miniaplicatiile constituie extensii ale unei clase deja existente java.applet.Applet. Structura clasei unui applet...

Clase

1. Programare procedurala –Programare orientata pe obiecte. Limbajul C, ca si Pascal, utilizeaza modelul programarii structurate procedurale, care...

Comunicații internet

2.1. Stilurile caracterelor {n sfirsit pagina dvs. contine ceva, chiar daca este vorba numai de un nume. Vom analiza in continuare elementele de...

Crearea unei aplicații independente în Java

Toate aplicatiile Java contin o metoda main(), spre deosebire de miniaplicatii. class FirstApp { public static void main( String argsst) {...

Curs Excel

Deplasarea prin foi Deplasarea dintr-o foaie in alta se face cu clic cu mouse-ul pe eticheta foii dorite. Deplasarea prin celule Va puteti...

Te-ar putea interesa și

Baze de date relaționale - proiectare și implementare

INTRODUCERE Tema proiectului Proiectul tratează aspecte teoretice ale proiectării bazelor de date relaţionale şi transpune aceste aspecte în...

Baze de Date

C1-16.10.2009 1. NOŢIUNI INTRODUCTIVE 1.1. Scurt istoric al bazelor de date Există afirmaţii conform cărora primul sistem de baze de date a fost...

Medii de Programare

O baza de date trebuie sa satisfaca cinci conditii esentiale13: - O buna reprezentare a realitatii înconjuratoare, adica baza de date trebuie sa...

Sisteme Informatice

CAP. 1 SISTEME INFORMATICE 1.1 CONCEPTUL DE SISTEM INFORMATIC O firmă este sediul unor activităţi informaţionale variate (culegerea şi...

Baze de Date

1.1. Conceptul de bazã de date Utilizarea calculatoarelor electronice în activitatea practicã din organizatii impune elaborarea unor sisteme...

Baze de Date

1.1 NEVOIA DE BAZE DE DATE După cum discutam în cursul de Instrumente software pentru afaceri, folosim bazele de date pentru că avem memoria prea...

Sisteme de gestiune a bazelor de date

1. ELEMENTE DE TEORIA BAZELOR DE DATE 1.1 Activitatile si obiectivele organizarii datelor Organizarea datelor dintr-un sistem informatic...

Baze de Date

CAPITOLUL I INTRODUCERE IN BAZE DE DATE CURSUL 1 1. Ce este o baza de date? La inceput calculatoarele au fost utilizate numai pentru calcule...

Ai nevoie de altceva?