130 likes | 299 Views
start. laborator 1. Generalit ăţi. generalitati. SGBD – Sistem de gestiune a ba zelor de date Instrument de asamblare, codificare, aranjare, protecţie şi regăsire a datelor dintr-o bază de date Exemple: dBase, FoxBase, FoxPro, Oracle, Access, SQLServer, MySql, PostrgeSql.
E N D
start laborator 1
Generalităţi generalitati • SGBD – Sistem de gestiune a bazelor de date • Instrument de asamblare, codificare, aranjare, protecţie şi regăsire a datelor dintr-o bază de date • Exemple: dBase, FoxBase, FoxPro, Oracle, Access, SQLServer, MySql, PostrgeSql. • Funcţiile unui SGBD • Memorarea (păstrarea datelor) • Gestiunea datelor şi a legăturilor dintre ele • Introducerea şi ştergerea datelor • Baza de date - definiţii • O mulţime de informaţii ce modelează un univers • Ansamblu de date elementare structurate, accesibile unei comunităţi de useri • Colecţie de date (înregistrări) aflate in interdependenţă, împreună cu descrierea datelor şi a relaţiilor dintre ele. • În mod normal prin bază de date se înţelege orice colecţie partajată de date, între care există relaţii logice, cu o descriere a datelor, proiectată pentru a satisface necesităţile informaţionale ale unei organizaţii sau grup de utilizatori. • Modele de organizare a datelor • Modelul relaţional (bazat pe teoria matematică a relaţiilor) - SGBDR • Modelul ierarhic • Modelul reţea
Exemple de SGBD • Oracle. Este realizat de firma Oracle Corporation USA. Sistemul este complet relaţional, robust, bazat pe SQL standard extins. Permite lucrul cu obiecte şi distribuit. Are BD Internet şi modul de optimizare a regăsirii. • DB2. Este realizat de firma IBM. Sistemul respectă teoria relaţională, este robust şi se bazează pe SQL standard. Permite lucrul distribuit şi are modul de optimizare a regăsirii. • Informix. Este realizat de firma Informix, respectă teoria relaţională şi permite lucru distribuit. • Progress. Este realizat de firma Progress Software. Are limbaj propriu (Progress 4GL) dar suportă şi SQL. Rulează pe o gamă largă de calculatoare sub diferite sisteme de operare. • SQL Server. Este realizat de firma Microsoft. Se bazează pe SQL şi rulează în arhitectura client/server. • Ingress II. Este realizat de firma Computer Associates. Este un SGBDR complet, implementează două limbaje relaţionale (întâi QUEL şi apoi SQL) şi este suportat de diferite sisteme de operare (Windows, UNIX). Lucrează distribuit în arhitectura client/server, are extensie cu facilităţi orientate obiect şi permite aplicaţii de tip Internet. Organizarea fizică a tabelelor se face prin sistemul de operare. • Visual FoxPro. Este realizat de firma Microsoft. Are un limbaj procedural propiu foarte puternic, o extensie orientată obiect, programare vizuală şi nucleu extins de SQL. • Access. Este realizat de firma Microsoft. Se bazează pe SQL, are limbajul procedural gazdă (Basic Access) şi instrumente de dezvoltare. • Paradox. Este realizat de firma Borland. Are limbaj procedural propiu (PAL) şi suportă SQL. Exemple de SGBD
Elemente specifice ale unei baze de date • Concepte utilizate în modelarea bazelor de date • Entitatea • Obiect distinct al bazei de date, reprezentat prin proprietăţile sale (numite atribute) • Substantivele sunt asociate entităţilor • Nu pot exista două entităţi cu acelaşi nume şi nici o entitate cu două nume diferite • Atributul • Atributul reprezintă o proprietate care descrie o anumită caracteristică a unei entităţi • Realizarea unei entităţi • Mulţimea formată din câte o valoare pentru fiecare atribut al entităţii • Relaţiile dintre entităţi • Exprimă legăturile, asociaţiile dintre entităţi, asigurând comunicarea între acestea • Verbele sunt asociate relaţiilor dintre entităţii • Cheia primară • Asigură posibilitatea identificării unice a unei entităţi • Trebuie să nu conţină informaţii descriptive, să fie simplă, neambiguă, stabilă Elementele BD
Cardinalitatea relaţiilor • Cardinalitatea relaţiilor • cardinalitatea este dată de numărul de tupluri (de elemente ale unei relaţii) • de exemplu: • Câţi studenţi sunt înscrişi într-o grupă?….. MULŢI • În câte grupe poate fi înscris la un moment dat un student? …UNA • Raportul de cardinalitate • unu la mai mulţi (one to many) • Relaţia “GRUPA – conţine – STUDENT” este “one to many” • O grupă conţine mai mulţi studenţi • Un student nu poate fi înscris în mai multe grupe • unu la unu (one to one) • Relaţia “STUDENT – conduce – GRUPA” este “one to one“ • Un singur student poate conduce o grupă (şeful de grupă) • Un student nu poate conduce mai multe grupe • mai mulţi la mai mulţi (many to many) • Relaţia “STUDENT – învaţă – MATERIE” este “many to many“ • Un student poate studia mai multe materii • O materie poate fi studiată de mai mulţi studenţi Cardinalitate
Tipuri de chei • Cheie (câmpul cheie) • Un câmp este considerat câmp cheie dacă poate fi folosit la realizarea relaţiilor între tabele (conţine date pe care tabelele le au in comun şi poate servi la identificarea unică a înregistrărilor dintr-o tabelă) • Tipurile de chei • Cheia primară (primary key) • Cheia compusă (composite key) • Chei candidate (candidate key) • Cheia externă (foreign key) Tipuri de chei
Cheia primară (primary key) Cheia primara • Fiecare tabel dintr-o bază de date relaţională trebuie să aibă un identificator unic, constând din unul sau mai multe câmpuri, altfel nu pot fi definite relaţiile între tabele. • Câmpul sau grupul de câmpuri ce constituie identificatorul unic, reprezintă cheia primară. • Cheia primară trebuie să poată asigura unicitatea, de aceea nu se acceptă valori duplicate pentru acest câmp (se recomandă ca tipul de dată folosit pentru câmpul ce constituie cheia primară să fie de tip AutoNumber – dar se poate opta şi pentru folosirea aşa-ziselor chei naturale - valorile, în acest caz, sunt coduri generate conform unei anumite reguli, cum ar fi, de exemplu, codul numeric personal). • Chei candidate (candidate key) – câmpuri (altele decât cheia primară) care îndeplinesc condiţiile necesare cheii primare.
Cheia compusă (composite key) • În unele cazuri o înregistrare nu poate fi identificată unic printr-un singur câmp. În aceste cazuri se foloseşte o cheie compusă. • Grupul de câmpuri ce constituie identificatorul unic va reprezenta cheia primară pentru tabelul respectiv, dar va fi o cheie compusă. • Deşi în câmpurile unei chei compuse se acceptă valori duplicate, nu se acceptă combinaţii de valori duplicate. • Exemplu: un eveniment poate fi reprezentat, pentru constituirea situaţiei de ocupare a unei săli de conferinte, prin cheia compusă formată din ziua si ora la care va avea loc. La o anumită oră, pentru o zi dată, nu poate avea loc decât un anumit eveniment. Cu toate acestea se permit valori duplicate pentru fiecare câmp în parte (zi şi oră) – putem avea mai multe valori de “miercuri” a câmpului zi şi mai multe valori de “14” pentru câmpul oră, dar un singur eveniment se va tine “miercuri” la ora ”14” în sala respectivă. Cheia primara
Cheia externă (foreign key) • O cheie externă reprezintă un câmp sau un grup de câmpuri dintr-un tabel ce fac legătura cu cheile primare ale altor tabele. • Prin cheile externe se realizează relaţiile dintre tabele. • Exemplu:Avem tabela “carti” ce contine şi un câmp numit “autor” – ce reprezintă codul asociat unui autor. Avem o tabelă separată numită “autori” ce conţine o cheie primară numită “id_autor”. Cele două câmpuri fac legătura între tabele. Câmpul “autor” reprezintă o cheie externă în tabela “carti” şi face legătura cu cheia primară a tabelei “autori” – numită “id_autor”. Cheia externa
Normalizarea bazelor de date • Normalizarea – reprezintă conceperea tabelelor conform modelului relaţional. Este o teorie construită în jurul conceptului de forme normale (FN), care ameliorează structura BDR prin înlăturarea treptată a unor neajunsuri (anomalii de inserare, modificare, ştergere) şi prin imprimarea unor facilităţi sporite privind manipularea datelor • Scopul – îndepărtarea datelor redundante din tabele (forma de normalizare 1NF). • Rezultatul: • Baza de date este mai flexibilă şi poate suporta mai bine eventualele schimbări ale structurii sale. • Se va economisi spaţiu – baza de date va ocupa mai puţin spaţiu. • Recomandări: • Trebuie ca fiecare tabel să conţină cheie primară pentru identificarea unică a înregistrărilor. • Un câmp va conţine o informaţie unică (va fi atomic – nu se poate “sparge” în mai multe câmpuri) – de exemplu nu se va păstra în acelaşi câmp şi numele şi prenumele unei persoane. • Se vor elimina datele redundante. normalizarea
Etape de constituire a bazelor de date etape • Identificarea datelor necesare (a tipurilor de entităţi, de relaţii, cardinalitatea relaţiilor) • Identificarea atributelor (a câmpurilor) • Identificarea cheilor candidat şi alegerea cheilor primare • Gruparea datelor redundante în aşa-numitele tabele de alegere(lookup table), ce vor fi legate la tabelele principale prin chei externe. • Crearea unei diagrame a relaţiilor dintre date (relaţiile dintre tabele) • Normalizarea bazei de date • Identificarea datelor specifice câmpurilor • numele câmpurilor, tabelelor • identificarea tipului de date potrivit fiecărui câmp • determinarea regulilor de validare, a valorilor implicite etc. • Crearea propriu-zisă a tabelelor (pentru Access – se va prefera crearea tabelelor în modul design)