Sunteți pe pagina 1din 30

Proictarea Bazelor de Date

Curs
Specializarea Ingineria Informaiei - anul IV-A

Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei

Prof. Felicia Ionescu


http://info.tech.pub.ro/~fionescu/

Bibliografie
Felicia Ionescu, Baze de date relationale si aplicatii, Editura Tehnica, Bucureti, 2004 C. J. Date, An Introduction to Database Systems, 8th Edition, 2004 R. Elmasri and S. B. Navathe, Fundamentals of Database Systems, Fourth Edition, 2004 J. Ullman, J. Windom, A First Course In Database Systems, Prentice Hall, 1997 Kevin Kline, Daniel Kline, SQL In A Nutshell, OReilly, 2001 Oracle 11g Documentation http://www.oracle.com/technetwork/database/enterprise-edition/documentation/index.html

MySQL Documentation - http://dev.mysql.com/doc/ PostgreSQL Documentation - http://www.postgresql.org/docs/manuals/ Microsoft SQL Server Books Online MSDN - Academic Alliance

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

Capitolul 1: Introducere
Definiii baze de date, sisteme de baze de date Componentele sistemelor de baze de date Arhitectura interna a sistemelor de baze de date Avantajele oferite de sistemele de baze de date Clasificari ale sistemelor de baze de date
Clasificare dupa modelul de date Clasificare dupa numarul de utilizatori Clasificare dupa numarul de statii pe care este memorata baza de date

Modelarea datelor
Modele conceptuale de nivel inalt Modele specifice de date

Evolutia sistemelor de baze de date

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

Sisteme de baze de date


Bazele de date se folosesc in aproape toate domeniile de activitate actuale:
Activitati bancare si comerciale (depozite bancare, vanzari produse) Productie (gestiunea stocurilor, gestiunea financiar-contabila, salarizare etc.) Evidenta populatiei, taxe si impozite Servicii (servicii medicale, rezervari bilete de calatorie etc.)

Definitie (in sens larg): O baza de date (database) este o colecie de date corelate din punct de vedere logic, care reflecta un anumit aspect al lumii reale i este destinata unui anumit grup de utilizatori. In acest sens pot fi considerate ca fiind baze de date:
Fise de evidenta (mentinute manual) Fisiere de documente sau foi de calcul tabelar (Microsoft Word, Microsoft Excel) Baze de date mentinute computerizat

Definitie (in sens restrans): O baz de date este o colecie de date creat i meninut computerizat, care permite operaii de:
Introducere (insert) Stergere (delete) Actualizare (update) Interogare (query)
Cap.1 - Introducere in Baze de date 4

Prof. Felicia Ionescu

Componentele unui Sistem de Baze de Date (1)


Un sistem de baze de date (Database System) este un sistem computerizat de meninere a evidenei unei anumite activiti, folosind baze de date Componentele unui sistem de baze de date sunt: hardware, software, utilizatori si date persistente Hardware:
Sistemele de baze de date sunt instalate pe calculatoare de uz general Bazele de date sunt memorate fizic ca fisiere pe discuri magnetice (hard-discuri)

Software:
Sisteme de operare, biblioteci, instrumente de dezvoltare, interfete Sistemul de Gestiune a Bazelor de Date (SGBD) (Database Management System DBMS) - recepioneaz cererile utilizatorilor de acces la baza de date, le interpreteaz, execut operaiile corespunztoare i returneaz rezultatul Aplicatii de baze de date: (Database Applications) sunt programe care ofer anumite utilizari ale unei baze de date

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

Componentele unui Sistem de Baze de Date (2)


Baza de date
Date Date

Utilizator final

Program aplicaie

SGBD
Date Date

Utilizatori:
Programatori de aplicatii Utilizatori finali Administratorul bazei de date Analisti si proiectanti ai bazelor de date

Datele persistente sunt memorate in fisiere pe hard-disk Limbaje conceptuale pentru lucrul cu bazele de date:
Limbaje pentru Definirea Datelor(LDD) (Data Definition Languages DDL) Limbaje pentru Manipularea Datelor (LMD) (Data Manipulation Languages DML)
Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 6

Arhitectura interna a unui Sistem de BD


Arhitectura pe 3 niveluri relativ independente: nivelul intern, nivelul conceptual i nivelul extern (Standard ANSI/X3/SPARC -1975) Schema descrierea datelor pe un anumit nivel: schema interna, conceptuala si scheme externe (vedere utilizator) Corespondente intre niveluri (mappings)
Vedere utilizator #1 Vedere utilizator #2 Vedere utilizator #n

Nivelul extern

Nivelul conceptual

Schema conceptual SGBD

Nivelul intern

Schema intern

Date memorate

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

Avantaje oferite de Sistemele de BD


Compactitate ridicat a datelor Reprezentarea unor asocieri complexe intre date Timp de dezvoltare a bazelor de date redus Viteza mare de actualizare si regasire a datelor Redundanta controlata a datelor (si cat mai scazuta) Flexibilitate, mentinerea datelor actualizate la zi Independenta datelor fata de suportul hardware utilizat Securitatea datelor: autentificarea utilizatorilor si autorizarea accesului Impunerea de restrictii (constrangeri) de integritate la introducerea si actualizarea datelor Mentinerea integritatii datelor in caz de defecte: salvare si refacere Posibilitatea de partajare a datelor intre mai multe categorii de utilizatori Posibilitatea de introducere a standardelor

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

Clasificarea Sistemelor de Baze de Date (1)


Clasificare dupa modelul de date:
Modelul ierarhic de date Modelul de date retea Modelul relational Modelul obiect-orientat Modelul obiect-relational

Clasificare dupa numarul de utilizatori


Sisteme mono-utilizator Sisteme multi-utilizator

Clasificare dupa numarul de statii pe care este memorata baza de date:


Baze de date centralizate Baze de date distribuite

Arhitectura client-server:
Server (back-end): SGBD-ul si baza de date Client (front-end): program (programe) de aplicatie
Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 9

Clasificarea Sistemelor de Baze de Date (2)


Aplicaie Client Aplicaie Client Aplicaie Client Reea de comunicaie Server SGBD BD a Server SGBD BD b Aplicaie Client

Sisteme de baze de date centralizate: a- mono-utilizator; b- multi-utilizator


Aplicaie Client Aplicaie Client Reea de comunicaie Server SGBD BD Server SGBD BD Aplicaie Client

Sistem de baze de date distribuit


Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 10

Modelarea datelor
Un model este o abstractizare a unui sistem:
capteaz cele mai importante trsturi caracteristice ale sistemului (concepte) conceptele trebuie sa fie relevante din punct de vedere al scopului pentru care se definete modelul respectiv

Tehnica de identificare a trsturilor caracteristice eseniale ale unui sistem se numete abstractizare Un model de date stabilete regulile de organizare i interpretare a unei colecii de date. n proiectarea bazelor de date se folosesc 2 categorii de modele:
Modele conceptuale de nivel nalt (modelul Entitate-Asociere, modelul Entitate-Asociere Extins) descriu concis colectiile de date care modeleaz activitatea dorit fr s detalieze modul de reprezentare sau de prelucrare a datelor - schem conceptual de nivel nalt Modele specifice (modelul ierarhic, modelul reea, modelul relaional, etc.) descriu reprezentarea mulimilor de entiti i a asocierilor dintre acestea prin structuri de date specifice implement[rii - schem conceptual (logic)

Trecerea de la modelul conceptual de nivel nalt la un model de date specific proiectare logic a bazei de date.
Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 11

Modelul Entitate-Asociere
Modelul Entitate-Asociere (Entity-Relationship Model) defineste multimile de entiti i asocierile dintre ele, dar nu impune nici un mod specific de structurare i prelucrare (gestiune) a datelor; Introdus n 1976 de P.S. Chen O entitate (entity) este orice exista in realitatea obiectiva si poate fi identificat n mod distinctiv
Exemple: o persoana, o planta, o activitate, un concept etc.

Un atribut (attribute) este o proprietate care descrie un anumit aspect al unei entiti
Exemple: persoanele au nume, prenume, adresa etc.

Tip de entitate (entity type): se refera la entittile similare, care pot fi descrise prin aceleasi atribute
Exemple: tipul persoana, tipul planta

Multime de entitati (entities set): colecia tuturor entitilor de acelai tip dintr-o baz de date constituie o mulime de entiti
Exemple: multimea tuturor persoanelor, multimea tuturor plantelor

O entitate este o instanta a unui tip de entitate si un element al multimii de entitati de acel tip In exprimarea curenta, adeseori nu se face diferentierea dintre entitate, tip de entitate si multime de entitati, dar diferenta este evidenta Asemanare cu modelul obiect: tip de entitate - clasa; entitate - obiect
Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 12

Asocieri
O asociere (relationship) este o legtur (coresponden) ntre entiti din dou sau mai multe mulimi de entiti; asocierile pot avea atribute Tipul asocierii (relationship type) se refera la asocierile similare, care pot fi definite intre entitati din 2 sau mai multe multimi de entitati Multime de asocieri (relationship set): multimea asocierilor de acelasi tip O asociere este o instanta a unui tip de asociere si un element al multimii de asocieri de acel tip In exprimarea curenta, adeseori nu se face diferentierea dintre asociere, tip de asociere si multime de asocieri, dar diferenta este evidenta Gradul unui (tip de) asociere (degree): numrul de (mulimi de) entiti asociate; dupa grad, asocierile pot fi:
binare (de gradul 2, ntre 2 mulimi de entiti) majoritatea asocierilor multiple (ntre k mulimi de entiti, k > 2)

Categorii (tipuri) de asocieri binare - dup numrul elementelor din fiecare dintre cele dou mulimi puse n coresponden:
unul-la-unul (one-to-one) 1:1; exemplu: sot-sotie unul-la-multe (one-to-many) 1:N; exemplu: parinte-fii multe-la-unul (many-to-one) N:1; exemplu: fii-parinte multe-la-multe (many-to-many) M:N; exemplu: profesori-studenti
Cap.1 - Introducere in Baze de date 13

Prof. Felicia Ionescu

Categorii de asocieri binare (1)

unul-la-unul 1:1

unul-la-multe- 1:N

Asocieri binare intre multimile de entitati A si B


Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 14

Categorii de asocieri binare (2)

multe-la-unul- N:1

multe-la-multe- M:N

Asocieri binare intre multimile de entitati A si B


Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 15

Cardinalitatea asocierilor
Cardinalitatea (multiplicitatea) unei asocieri fa de o mulime de entiti (cardinality, multiplicity) este numrul maxim de elemente din acea mulime care pot fi asociate cu un element din alt mulime a asocierii
Exemplu: asocierea unul-la-multe dintre mulimile A i B prezint multiplicitatea 1 fa de mulimea A i multiplicitatea N (se nelege o valoare oarecare N > 1) fa de mulimea B

Raport de cardinalitate (cardinality ratio): raportul dintre valorile cardinalitilor unei asocieri fa de dou din mulimile de entiti asociate
Exemple pentru asocieri binare: 1:1, 1:N, N:1, M:N Asocierile multiple (k-are, k > 2) prezint cte un raport de cardinalitate pentru fiecare pereche de mulimi de entiti pe care le asociaz.

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

16

Diagrama Entitate-Asociere
Diagrama Entitate-Asociere (Entity-Relationship Diagram) reprezint grafic modelul Entitate-Asociere prin mulimile de entiti i asocierile dintre acestea Multimi (tipuri) de entitati:
Puternice (de sine statatoare) Slabe (depind de alte multimi de entitati)

Notatii:
Tip entitate Tip de entitate puternic

Tip entitate

Tip de entitate slab

Nume atribut

Atribut

Asociere binar 1:N ntre 2 tipuri de entiti

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

17

Exemplu de diagrama Entitate-Asociere (1)


Multimi de entitati puternice:
SECTII (Numar, Nume, Buget) ANGAJATI (Nume, Prenume, DataNasterii, Adresa, Functie, Salariu) PROIECTE (Denumire, DataInceperii, Termen, Buget)

Multimi de entitati slabe: DEPENDENTI (Nume, Prenume, DataNasterii, GradRud)


Numr Buget Nume Salariu

1 SECTII Cuprind

N 1 Intretin N DEPENDENTI

ANGAJATI M Lucreaza N PROIECTE

Nume

GradRudenie

Denumire

Buget

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

18

Exemplu de diagrama Entitate-Asociere (2)


Asocieri:
Asocierea SECTII - ANGAJATI - 1:N Asocierea ANGAJATI - PROIECTE - M:N Asocierea ANGAJATI - DEPENDENTI - 1:N

Raportul de cardinalitate al unei asocieri este stabilit de proiectant astfel nct s reflecte ct mai corect modul de organizare a activitii modelate Modul de stabilire a tipurilor de entiti i a asocierilor nu este unic: aceeai funcionalitate se poate obine printr-o varietate de diagrame E-A O mulime de entiti se denumeste printr-un substantiv, iar o asociere se denumeste (de regul) printr-un verb, deoarece o asociere reprezint o interaciune ntre entiti Modelul E-A nu precizeaz modul cum sunt realizate asocierile ntre mulimile de entiti: acest aspect depinde de modelul de date specializat utilizat pentru definirea bazei de date
Exemple: n modelul ierarhic asocierile sunt realizate explicit, prin pointeri de la o entitate la entitile asociate; n modelul relaional asocierile se realizeaz prin egalitatea valorilor unor atribute comune ale multimilor de entiti (chei)
Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 19

Modelul Entitate-Asociere Extins


Modelul Entitate-Asociere Extins (Enhanced Entity-Relationship Model) permite definirea de subtipuri ale unui tip de entiti, care motenesc atribute de la tipul de entitate respectiv Crearea ierarhiilor: specializare si generalizare Tipurile i a subtipurile formeaza ierarhii de tipuri de entiti complexe, organizate pe mai multe niveluri Diagrama Entitate-Asociere Extinsa
Nume Prenume DataNasterii Adresa Salariu

ANGAJAT d

SECRETARA

TEHNICIAN

INGINER

VitezaRedactare

Calificare

Specialitate

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

20

Modelul de date ierarhic


Modelul ierarhic (Hierarchical Model): baza de date se reprezinta printr-o structur ierarhic de nregistrri (records) conectate prin legturi (links).
A fost primul model folosit pentru dezvoltarea bazelor de date Cel mai cunoscut SGBD ierarhic: sistemul IMS (Information Management System) dezvoltat de IBM n programul de cercetri Apollo, n perioada anilor 1960

O nregistrare de date n modelul ierarhic este o instan a unui tip de nregistrare (record type) i const dintr-o colecie de cmpuri (fields), fiecare cmp coninnd valoarea unui atribut. Un tip de legtur n modelul ierarhic: tip de asociere cu raportul de cardinalitate 1:N (printe-fiu) ntre dou tipuri de nregistrri Schema conceptual a unei baze de date n modelul ierarhic se reprezint printr-un numr oarecare de scheme ierarhice O schem ierarhic este un arbore direcionat, reprezentat pe mai multe niveluri, n care nodurile sunt tipuri de nregistrri, iar arcele sunt tipuri de legturi

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

21

Baze de date ierarhice


FACULTATI FACULTATI 1 N PROFESORI M N STUDENTI (a) Diagrama E-A STUDENTI (b) Schema ierarhica s1 s2 s3 s1 s2 FACULTATI f1 f2 f3 PROFESORI PROFESORI p1 p2 p3 STUDENTI s4

(c) Arbori de instantiare a datelor

Numai legturi de tipul printe-fiu, care corespund asocierilor 1:1 i 1:N din modelul E-A Asocierile M:N se pot reprezenta prin multiplicarea nregistrrilor de tip fiu, atunci cnd sunt referite de mai multe nregistrri de tip printe
mare redundan a datelor

Avantaje: simplitatea i eficiena de calcul Deficiente:


nu exista separare intre descrierea logica si fizica a datelor interogarile trebuie s fie prevzute explicit in structura datelor

Utilizari actuale - aplicatii specializate, baze de date XML


Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 22

Modelul de date retea


Modelul reea (Network Model) folosete o structur de graf pentru definirea schemei conceptuale a bazei de date Modelele ierarhic si retea modele pre-relationale Standardizat n 1971, de o comisie DBTG (Database Task Group). Sisteme de gestiune comerciale in modelul retea: IDS II (Honeywell), UNISYS (Burroughs), IDMS (Computer Associates) Nodurile grafului sunt tipuri de entiti (nregistrri - records), iar muchiile reprezint asocierile (legturile-links) dintre tipurile de entiti Asocierile M:N se reprezint fr duplicarea nregistrrilor, fiecare nregistrare putnd fi referit de mai multe nregistrri, ceea ce elimin FACULTATI (micoreaz) redundana Dezavantaje:
aceleasi ca si la modelul ierarhic, la care se adauga complexitatea mare in reprezentarea datelor
f1 f2 f3 PROFESORI p1 p2 p3 STUDENTI s1 s2 s3 Modelul retea 23 s4

Actualmente modelul retea:


este rar utilizat pentru baze de date de uz general se utilizeaza pentru aplicaii specializate
Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date

de ex, pentru baze de date grafice (scene virtuale)

Modelul de date relational


Modelul relaional (Relational Model) se bazeaz pe noiunea de relaie (relation) din matematic, care corespunde unei mulimi de entiti Fundamentat de E.F. Codd (IBM), prin lucrarea "Un Model Relaional de Date pentru Bnci Mari de Date Partajate" (1970) Dezvoltare extraordinara a sistemelor de gestiune a bazelor de date relationale, datorit simplitii i a fundamentrii matematice a modelului Alte lucrri ale cercetatorilor C.J. Date, P. Chen, R. Boyce, J.D. Ullman, R. Fagin, W. Armstrong, M. Stonebraker etc. au perfecionat modelul relaional Primul Sistem de Gestiune a Bazelor de Date Relaionale (SGBDR) a fost prototipul System R (IBM, 1970) Dup aceasta numeroase companii au realizat sisteme de gestiune relaionale: Oracle, Microsoft, Ingres, Sybase, IBM, Informix SGBDR folosesc limbajul SQL (Structured Query Language), pentru care au fost emise mai multe standarde ANSI (American National Standardization Institute) si ISO (International Standardization Office) Majoritatea SGBD-urilor relaionale actuale implementeaz versiunea SQL2 (SQL92) sau versiuni ulterioare (SQL-1999, SQL-2003, SQL-2006)
Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 24

Modelul obiect-orientat
Modelul obiect (Object Model) este un concept unificator Necesar in domenii n care se manipuleaz date de tipuri complexe:
proiectarea sistemelor de calcul: programare, hardware, interfete proiectarea asistat de calculator (CAD-CAM) sisteme de informaii geografice fizic, biologie, medicin i altele

Strategii pentru dezvoltarea sistemelor de gestiune a bazelor de date obiect-orientate (SGBDOO):


Extinderea unui limbaj de programare obiect-orientat cu capaciti de administrare a obiectelor persistente: sistemul GemStone (extinde Java si C++) Extinderea unui limbaj de programare relaional cu capaciti de orientare spre obiecte. Exemplu: limbajul OQL (Object Query Language) (sau Object SQL), Exist mai multe astfel de sisteme, cum sunt: Ontos, Versant, O2. Dezvoltarea unui limbaj obiect-orientat pentru baze de date complet nou: SIM (Semantic Information Manager).

Dificultati:
Complexitate in dezvoltare a bazei de date i a aplicaiilor Interogarile trebuie s fie prevzute explicit in structura datelor

Utilizare SGBDOO: cam 5% din sistemele de gestiune actuale


Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 25

Modelul obiect-relational
Modelul obiect-relaional (Object-Relational Model) reprezint extinderea modelului relaional cu caracteristici ale modelului obiect Modelul obiect-relaional pstreaz structurarea datelor n relaii, si, in plus:
permite definirea unor noi tipuri de date, ca domenii ale atributelor permite extinderea tipurilor de date prin motenire

Sistemele de gestiune a bazelor de date obiect-relaionale (SGBDOR) se realizeaz prin extinderea sistemelor relaionale, de regula n mod gradat, adugndu-se de la o versiune la alta ct mai multe caracteristici posibile ale modelului obiect Aceasta abordare asigur rularea n continuare a aplicaiilor relaionale existente n noile versiuni de sisteme SGBDOR, ceea ce permite productorilor s-i pstreze clienii i domeniile de utilizare Limbajele de programare pentru SGBDOR sunt implementri de standarde mai recente ale limbajului SQL: SQL3 (SQL-1999), SQL-2003, SQL-2006

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

26

Complexitatea datelor si a interogarilor


Clasificare propusa de M. Stonebraker (1996)
Complexitatea interogrilor

SGBDR

SGBDOR

Sisteme de fiiere

SGBDOO
Complexitatea datelor

SGBDR prelucreaz tipuri simple de date, dar permit interogri complexe SGBDOO prelucreaz tipuri de date complexe, dar n care rezolvarea interogrilor este destul de dificil SGBDOR permit prelucrarea datelor complexe i rezolvarea interogrilor complexe; sistemele de baze de date obiect-relaionale sunt considerate sisteme de baze de date universale
Prof. Felicia Ionescu Cap.1 - Introducere in Baze de date 27

Evolutia sistemelor de baze de date


1960 Modele prerelationale: ierarhic si retea Primele produse de baze de date (DBOM, IMS, IDS, Total, IDMS) Standarde Codasyl Modelul relational prototipuri de SGBDR Lucrari teoretice asupra modelului relational Arhitectura interna pe 3 niveluri a bazelor de date (ANSI and Codasyl) Modelul Entitate-Asociere Dezvoltarea SGBDR comerciale Primul standard SQL (1986 - ANSI, ISO) Baze de date distribuite Arhitectura client/server a sistemelor de baze de date (two-tier arch.) Baze de date obiect-orientate Baze de date obiect-relationale Standarde SQL: SQL 92, SQL 99 Arhitectura pe 3 niveluri a sistemelor de baze de date (three-tier arch.) Baze de date in sistemul WWW (World Wide Web)
Cap.1 - Introducere in Baze de date 28

1970

1980

1990

2000

Prof. Felicia Ionescu

Sisteme de Gestiune a Bazelor de date


Sisteme Comerciale Oracle ($$$$) DB2 (IBM) ($$$) SQL Server (Microsoft) ($$) Sisteme Open Source PostgreSQL MySQL

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

29

Prof. Felicia Ionescu

Cap.1 - Introducere in Baze de date

30

S-ar putea să vă placă și