Documente Academic
Documente Profesional
Documente Cultură
1 C IBD Intro
1 C IBD Intro
BAZE de DATE
Concepte introductive
Cosmina Ivan
cosmina.ivan@cs.utcluj.ro
Departamentul de Calculatoare
UNIVERSITATEA TEHNICA CLUJ NAPOCA
Argument
Implementarea diverselor sisteme ICT necesita
BD ca parte componenta specifica, BD solutia
optima
pentru
stocarea
si
manipulatrea
informatiei PERSISTENTE.
Ca dezvoltator de sistem (arhitect) sunt necesare o serie
de cunostinte
Interogarea/ actualizarea BD SQL si algebra
relationala necesare extragerii datelor din BD existente
Programarea aplicatiilor cu BD limbaje necesare
accesului la BD in mod programatic cu scopul procesarii
tranzactiilor (modificarii datelor) sau generarii de rapoarte
Proiectarea BD conceperea unei noi aplicatii necesita
proiectarea celei mai potrivite BD
Noi tehnologii de organizare/acces la date structuri
XML, frameworkuri obiectuale de acces la date (Hibernate
Fw, Entity Fw), baze de date nonrelationale utilizate masiv de
2
gigantii actuali ai domeniului ( Google, Yahoo)
-Mongo DB..
..Argument
Date electronice cresc exponential costul stocarii lor
scade drastic
Seturile de date cresc in diversitate si volum: biblioteci
digitale,
video interactivstructuri cu bilioane de
inregistrari
Integreaza concepte diverse din stiinta calculatoarelor :
limbaje, algoritmi, logica
Datele sunt pretioase. mai pretioase decat SW,
necesita management eficient (stocare, interogare,
protectie)
Datele necesita structuralitate pentru a fi utile
Domeniul bazelor de date contributii remarcabile in
domeniul stiintei calculatoarelor
O serie de tehnologii pentru SGBD comerciale , cu
3
..Aplicabilitate
Sisteme de gestiune
Sisteme bancare si de trading ( London stock exchange -1 mil
trades/day)
Sisteme de rezervari online
Comert electronic, GIS, BD stiintifice
Biblioteci /arhive digitale
archive.org
(150 mil pages) ,
open.library.org (23 mil books)
Tipuri de BD
De uz general
Importanta
Nu exist aplicaie real fr BD ( Google,Amazon, E-bay, Web)
Pe piaa software exist un numr mare de SGBD-uri, pentru
toate tipurile de sisteme de calcul, sisteme de operare i
tehnologii de acces la date
SGBD-urile apar n topuri pe locul 3, din lista celor
mai vndute
4
..Organizatoric
CURS Luni 18-20
Laborator 210-Observator
MIERCURI - gr. 30221,30224
MIERCURI - 18-20, sgr. 30225/2 (Dan D.)
MARTI 8-10 - sgr.30225 /1 (Dan D.)
VINERI gr. 30222,30223
Organizatoric
Activitati practice regulament ftp
Resurse bibliografice (biblioteca UTCN/Departament,
Internet, ftp://ftp.utcluj.ro/pub/users/civan
Evaluare
Laborator 30% =6 teme obligatorii, realizate
individual
Proiect 20% - individual, din lista de sugestii/ideii
proprii acceptate
REFERAT 10%
Examen final 40%
toate componentele sunt obligatorii, nota de trecere
pentru fiecare, in caz de nepromovare se va reface
componenta
6
Obiective
Asteptari
Studiu individual ( bibliografie, Internet.. )
Dezvoltarea/implementarea unui proiect
alegerea/implementarea
interes
Analiza/proiectarea
EER/UML
unui
unei
domeniu
baze
de
de
date
Referinte bibliografice
1. Note de curs/lab/materiale (RO) la adresa web ftp://ftp.utcluj.ro//pub/users/civan/BD
TEXTBOOK la marile universitati (MIT, Berkeley, UCL...)
Thomas Connoly, Database systems a practical approach to
design, implementation and management, Addison Wesley, ed
4 ed5 (2009) txt book la diverse mari universitati
SUA/Anglia ftp, complexa, viziune inginereasca (modelare
UML, abordare domenii de aplicabilitate BD)
3. R.Elmasri and S. Navathe, Fundementals of Database
Systems, Benjamin/Cummings Pub. Company, 2010
extrem de multe lucrari in domeniu, trateaza conceptele
teoretice cat si aplicabilitatea practica generata de SGBD utilizat.
Multe materiale pe site-urile producatorilor de SGBD-uri.
INTERNETUL resursa imensa de referinte- vezi selectie IBD_plan de
lucru
9
https://class.stanford.edu/courses/DB/2014/SelfPaced/about
http://web.stanford.edu/class/cs145/
10
Terminologie
Atomicitate
Atribut
1NF/2NF/3NF/4NF
Chei
Concurenta
Cardinalitate
Consistenta
DDL/DML
Proceduri stocate
Tranzactii
Data Mining
Data Warehouse
Diagrame ER
Index
Izolare
Join
Metadate
Query
Replicare
Vederi (View)
11
12
alt model
13
Continut curs
Introducere in BD : Baze de date , SGBD , utilizatori
de BD, componente SGBD,concepte specifice si
arhitecturi
Limbaje relationale (SQL) si algebra relationala-tool
pentru verificarea corectitudinii formularilor de acces la
date (interogari)
Constrangeri
asupra
datelor
relationale
si
exprimarea lor
Modelarea datelor Modelul Relational,EER /UML
Elemente de proiectare a BD relationale normalizarea
Nivelul fizic. Stocare si indexarea datelor.
Elemente de administrare si de securitate a datelor
Procesarea tranzactiilor si controlul 14
concurentei
Continut curs I
Utilizari ale sistemelor de baze de date
Caracteristici ale sistemelor
Problematica
bazate pe fisiere.
Istoric
1950-1960:
Procesare de date cu stocare pe benzi magnetice acces
secvential, apar modele prerelationale ierarhic si retea
1970:
acces direct la date
Larg utilizate modelele ierarhic si retea
Ted Codd defineste modelul de date relational si conceptul
de abstractizare a datelor, regasit in sistemele de cercetare
IBM Research - System R prototype
UC Berkeley - Ingres prototype
SGBD initial evoluate din sisteme de procesare bazate pe fisiere,
vizualizarea datelor apropiata modului lor de stocare (modelele
ierarhic si retea)
Wikipedia Modelul de date relational
16
1980:
Cercetarile bazate pe prototipuri relationale au evoluat in sisteme comerciale => SQL
standard industrial
Sisteme BD Paralele si distribuite,sisteme cu BD OR si OO
1990:
Arhitecturi client server a sistemelor cu BD
Aplicatii specifice : sistemele suport decizional si pentru data mining,
data warehouses (terabyte )
Standardul SQl99, Comert electronic (~2000),
>2000:
Arhitecturi pe trei niveluri a sistemelor cu BD
Standarde XML Xquery, BD OO si in WWW larg raspandite
Noi capabilitati pentru noi clase de aplicatii (multimedia, timp real).
BigTable, Hadoop
SGBD comerciale bazate pe modelul relational cunosc o larga raspandire
: Microsoft SQL Server, Oracle , Sybase Adaptive Server, DB2
> industrie de >10 billion $
evolueaza SGBD open source performante si din ce in ce mai larg
utilizate- MySQL, PostgreSQL.
17
SGBD/BD in Cloud, abordari noSQL
BD- definitie
Baza de date
O colectie larga , integrata , de date corelate
logic si stocate pentru a mentine info si a
oferi
suport
pentru
analiza
(consultare/interogare).
Bazele de date permit
Modelarea lumii reale : entitati si relatii
Date - fapte inregistrabile din lumea reala ce
poseda semnificatie intrinseca
domeniul BD acoper largi surse de date, cu multe
concepte noi.
Cutare Web
Data mining
Baze de Date stiinifice i medicale
18
SGBD - definitie
SGBD sistem software - colectie de programe
destinat crearii, stocarii si managementului
bazelor de date
Ofera un mediu convenabil si eficient de utilizare
Gestioneaza
diverse
aspecte
de
proiectare/implementare a sistemelor cu BD
Permite crearea BD , specificarea schemei sale
Ofera suport pentru interogarea si modificarea
eficienta a datelor
Mentine securitatea datelor la accidente sau acces
neautorizat
Controleaza accesul concurent la date
ROL : reducerea dependenei aplicaiilor n
raport cu structura datelor
19
SGBD - functionalitati
Definirea bazei de date - tipuri de date,
structuri, constrangeri
BD:
tipuri
de
date,
relatii,
Modele de date
Conceptuale nivel inalt, semantic ofera
concepte apropiate de modul in care utilizatorii
percep datele
Modele de date
Modelul relational
Colectie de tabele ( relatii) ce contin inregistrari
= >un
25
Argumente
PRO
Controlul redundantei datelor
Restrictionarea accesului neautorizat
Structuri de stocare adecvate
Procesare interogari eficienta
Suport pentru Backup & Recovery
Interfete multiutilizator
Reprezentarea de relatii complexe
intre date
Specificarea de constrangeri de
integritate
permite interferente si actiuni bazat
pe seturi de reguli
Suport pentru standardizare
Reducerea timpului de dezvoltare a
aplicatiilor
Disponibilitatea informatiei
CONTRA
Investitie initiala
ridicata in hardware,
software , training
Generalitatea oferita
de SGBD pentru
definirea si procesarea
datelor este peste
nivelul cerintelor
Complexitate indusa
de securizare, controlul
concurentei, recuperare
la caderi
26
Pro - contra
Cand SE utilizeaza BD
Este necesara rezolvarea persistentei datelor
Volume mari de date persistate
Date structurate
Acces concurent si/sau distribuit pt mai multi
useri
Integritatea datelor
Securizarea accesului
Cand NU SE utilizeaza BD
Investitie mare - costuri
Aplicatia e simpla ,definita si nemodificabila
Nu e necesar acces multiutilizator
Solutie alternativa colectie de fisiere gestionate de
programe de acces
27
Cum
sa . gestionam volume mari de date persistente,
omogene si structurate , utilizate in mod partajat
de catre mai multi utilizatori/procese si pentru care
trebuie mentinuta integritatea iar accesul trebuie
securizat in mod controlat
SOLUTIE dezvoltarea de aplicatii cu baze de date
colectii de date si programe ce permit manipularea
corecta si eficienta a datelor masive
O astfel de aplicatie este implementata eficient
folosind un sistem de gestiune a bazei de date
si interfete de acces la date dintr-un limbaj de
programare de nivel inalt.
28
Interfete de acces la BD
User friendly bazate pe meniuri, forme,
grafice
Stand-alone interfete SQL interactive
Interfete de program DML incapsulat in
limbaj de programare
Browser Web interfata uzuala actual
Voce -....
Interfete parametrice - ... Bancar
Specifice DBAdmin creare conturi,
administrare, parametrizare sistem, modificari
scheme si cai de acces la date.
INTERFETE de PROGRAM - SQL embedded,
SQLJ, JDBC.ODBC, PL/SQL...
29
Ce este o schema de BD ?
Schema unei BD descrierea unei colectii
particulare de date folosind un anumit model de
date
Reflecta anumite aspecte: numele , tipul articolelor de
date, anumite constrangeri
Este specificata la definirea unei noi baze de date, se
modifica relativ rar
Meta-date = date despre date , sau
de date
Diagrama
schemei
schemei
catalogul bazei
conventie de reprezentare
Schema fizic
Schema fizica - specific detalii suplimentare
legate de stocarea datelor ( tip, dimensiune ,
structura de fisiere, mod de organizare a
acestora)
Menioneaz modul n care tabelele (la modelul
relaional) descrise prin schema conceptual sunt
stocate pe dispozitive suport secundar ( hard disk)
Descrie tipul fiierelor pentru stocare pe suport
secundar i crearea unor structuri auxiliare de date
numite indeci n scopul regsirii mai rapide a datelor
31
Schema conceptual
Schem logic (conceptuala) , descrie
datele stocate n BD n termenii (conceptele si
abstractiunile) specifice modelului de date al
SGBD-ului utilizat.
Ex. Pentru un SGBD relaional, schema conceptual
descrie toate tabelele (relaiile) stocate n BD si modul
de relationare
Limbajul folosit pentru definirea datelor conform
schemei conceptuale
se numete Limbaj de
Descriere a Datelor (LDD)... CREATE, ALTER.....
32
Niveluri de abstractizare
Nivel fizic (intern) : descrie modul in care sunt stocate
datele (fisiere si indecsi)
Nivel logic (conceptual) : descrie datele stocate in BD si
relatiile dintre acestea.
o SINGURA schema
conceptuala si fizica
DUALITATE concepte
din aplicatieconcepte specifice BD
Vedere 1
Vedere 2
Nivel
Conceptual
Nivel fizic
...
Vedere n
Designer BD
Administrator BD
33
Independenta datelor
Independenta - abilitatea de a modifica un nivel
in arhitectura BD, fara a afecta celelalte niveluri
ale schemei BD
Independenta logica capacitatea de a modifica schema
conceptuala fara a afecta vederea externa (programele
de aplicatie, necesare accesului la date)
Abordare BD-SGBD
SEPARARE program-date = INDEPENDENTA DATELOR
CONTROLUL REDUNDANTEI SGBD cotroleaza redundanta
si permite evitarea datelor inconsistente ( .. daca doar una
din copii este actualizata....)
ABSTRACTIZAREA DATELOR utilizarea unui model de
date pentru a ascunde detaliile de stocare si a oferi
utilizatorilor o vedere conceptuala asupra Bazei de date
SUPORT pentru VEDERI MULTIPLE fiecare user poate
vedea in mod diferit Baza de date, doar cu datele proprii
de interes
PARTAJAREA datelor si Tranzactii MULTI-USER - useri
concurenti, subsistem de recovery la caderi,
35 OLTP
Funciile SGBD
Transformarea datelor
Datele introduse de utilizator nu au ntotdeauna
structura identic cu cea definit n baza de date
(conversii automate de tip de date la tipul suportat
de SGBD)
Gestiunea aplicaiilor (crearea de aplicatii de
acces la date)
Limbaj de descriere a datelor ( LDD) structura de
date
Limbaj de manipulare a datelor (LMD) accesul
/utilizarea datelor
36
37
DDL
Limbaj de definire a schemei bazei de date
(DDL) - specifica structura de stocare si
metodele de acces utilizate
Compilatorul DDL genereaza un set de tabele stocate
in dictionarul de date
Un dictionar de date contine metadate (date
despre date)
Schema BD ( si cheile primare)
Constrangeri de integritate ( tip de date, domeniu
de valori)
Constrangeri de domeniu
Integritate referentiala (constrangeri aplicabile
referintelor intre tabele)
39
DML
Limbaj pentru a accesa si manipula datele organizate
conform unui anumit model de date (cunoscut sub
numele de limbaj query - de interogare a datelor)
Clase de limbaje DML :
Nivel inalt (nonprocedural - SQL)
Declarativ sunt specificate datele cerute insa
fara a specifica modul de acces
Permit Operatii cu BD complexe
Nivel jos (procedural)
Utilizatorul specifica ce date sunt cerute si cum
pot fi accesate
Integrat in limbaje de programare de uz
general(ex. JDBC Java database acces connectivity
in Java)
40
Actori in sisteme cu BD
Utilizatori diferentiati prin modul in care interactioneaza
cu sistemul
Programatorii de aplicatii interactiuni cu sistemul
prin apeluri DML ( SQL, SQL incapsulat in Java
JSP,ASP..)
Utilizatori
sofisticati
formuleaza
interogari
performante intr-un limbaj specializat SQL
Administrator de baza de date gestioneaza
aspecte legate de mentinerea bazei de date (schema,
securizare acces, modificari de nivel fizic indexare)
Utilizatori
de sistem
invoca programele de
aplicatii
41
Administratori de BD
Coordoneaza activitatile
la nivelul intregului sistem
software cu
BD, cunostinte specifice despre sistemul
informatic al intreprinderii, resurse, cerinte.
Responsabilitati:
1. Definirea schemei conceptuale si fizice a BD
2. Specificarea constrangerilor de integritate
3. Definirea structurii de stocare si a metodelor de acces
la date
4. Modificari in schema si organizarea fizica a datelor
5. Asigurarea
accesului securizat
pentru diversi
utilizatori ai BD (politici de securitate si autorizare)
6. Monitorizare
performante,
responsabilitati
in
schimbarea diverselor cerinte pe masura ce bazele de
date evolueaza (database tuning)
42
Proiectarea BD
Identificarea
tabelelor,
Controlul concurentei
Executia concurenta a programelor a accesului la
date este esentiala pentru performanta SGBD
(accese la disc frecvente, relativ lente =>este necesara
mentinerea ocupata a procesorului,
prin procesarea
concurenta a mai multor programe utilizator)
Managementul tranzactiilor
Tranzactie - colectie de operatii ce efectueaza o
singura functie logica intr-o aplicatie cu BD
o secventa atomica de actiuni asupra unei baze
de date (citiri/scrieri)
Fiecare tranzactie executata COMPLET lasa BD intr-o
stare consistenta ,daca aceasta a fost intr-o stare
consistenta la inceputul tranzactiei
Managerul tranzactiilor componenta ce asigura ca
BD sa ramana intr-o stare consistenta, corecta
indiferent de caderi in sistem (tensiune, SO sau de
nefinalizarea executiei unei tranzactii)
Proprietatile unei tranzactii :
Atomicitate ,Consistenta,Izolare,Durabilitate
46
Recuperarea datelor
SGBD asigura atomicitatea (all or nothing),
chiar daca sistemul cade in mijlocul unei
tranzactii
Solutie abordata : se mentine o ISTORIE a
actiunilor SGBD la executia unui set de
tranzactii (.log)
Inaintea oricarei modificari asupra BD se va salva in mod
corespunzator o intrare in fisierul .log (exista un protocol
specializat, relativ complex. )
Dupa o cadere in sistem , efectele unor tranzactii partiale pot
fi anulate (folosind acest fisier .log)
47
Arhitectura
unui SGBD
Ramakrishnan,
48
Cum funcioneaz?
SGBD-ul accept comenzi SQL generate de o varietate
de interfee utilizator
SGBD-ul produce planuri de evaluare a interogrilor,
pe care le execut asupra datelor din BD, i returneaz
rspunsuri
Un utilizator emite o interogare, aceasta este analizat
de catre SGBD i este prezentat unui optimizator, care
folosete informaia despre felul n care sunt stocate
datele pentru a produce un plan de execuie eficient
Un plan de execuie este o reprezentare sub form
de arbore
de operatii (cu adnotaii ce conin
informaii detaliate suplimentare legate de
metodele de
49
Clase de arhitecturi
Arhitectura cu server de
fisiere
Serverul de fisiere este un computer conectat la
retea ce serveste ca spatiu de stocare partajat
pentru acces la BD
Procesarea este distribuita in retea, WS solicita
date
Serverul de fisiere nu este SQL aware, relatiile
sunt transferate la WS pentru a putea fi procesata
interogarea
Dezavantaj trafic in retea, cost ridicad software
pe WS, problematic controlul concurentei, SGBD
multiple aceeseaza aceeasi BD
Sisteme Web
Arhitectura N Tier
Three tier poate fi extinsa cu un nivel intermediar pentru
cresterea flexibilitatii
Separare intre server web si serverul de aplicatii
Creste flexibilitatea pentru echilibrarea incarcarii prin
introducerea de servere multiple
Continutul dinamic este livrat de serverul de
aplicatie, iar continutul static de serverul de web
Arhitectura P2P
Sisteme ce schimba informatii si
servicii in maniera P2P fara o autoritate
centrala
Nu exista schema globala este necesara
integrarea de scheme... Complex
partajare de date si servicii
Nu sunt clienti servere dedicate
Site-urile pot forma in mod dinamic noi relatii C-S
Transaction processing
monitor
middleware software ce conecteaza intre aplicatii sau
alte componente software
Ascunde complexitatea heterogeneitatii si distributiei si ofera o
interfata uniforma
TP ofera avantajele:
rutarea tranzactiilor, creste scalabilitatea prin directarea
trazactiilor catre anumiite SGBDbuit
management distribuit al tranzactiilor acces la SGBD diferite
echilibrarea incarcarii- transmite tranzactia la cel mai putin
intacarcat server
creste siguranta functionarii- la caderea unui SGBD, cererea
destinata este trimisa altui SGBD , sau este stocata pentru
retrimitere dupa refacere