Documente Academic
Documente Profesional
Documente Cultură
2 http://ebautu.disciplinele.ml 18.02.2017
Exemplu
Se doreşte realizarea unui sistem ce necesită
stocarea de informaţii despre studenţi, profesori,
cursurile predate de aceştia şi cursurile la care
participă studenţii
FĂRĂ o bază de date => stocăm datele în fişiere
text
Apoi, scriem programe (C, Java) care să
implementeze diferite sarcini
3 http://ebautu.disciplinele.ml 18.02.2017
Exemplu
E.g. Profesorul “Bautu Elena” preda “Baze de date”
studenţilor de la Informatica anul 2
1. Se citesc informatiile despre studenti
2. Se citesc informatiile despre profesori
3. Se citesc informatiile despre cursuri
4. Se actualizează informaţiile pentru Elena Bautu
5. Se actualizeaza informaţiile despre
1. Dacă apare o eroare între paşii 4 şi 5, informaţiile
sunt inconsistente
2. Dacă dimensiunea datelor este mare…
3. Dacă mai mulţi utilizatori accesează simultan
fişierele de date
1. E.g. un user modifica numele din Rogojina în Bautu
2. Altcineva adauga cursuri pentru userul Rogojina
4 http://ebautu.disciplinele.ml 18.02.2017
Introducere
Bază de date – o colecție de informații (date)
relaționate logic
Sistem de gestiune a bazelor de date (SGBD)
un mediu de stocare pentru date de dimensiuni mari
ofera modalităţi eficiente și sigure de regăsire și
furnizare a datelor (în general, către un număr mare
de utilizatori)
Ansamblu
Hardware
Software
Date
Utilizatori
5 http://ebautu.disciplinele.ml 18.02.2017
Baze de date – Curs 1
Sisteme de gestiune a bazelor de date
6 http://ebautu.disciplinele.ml 18.02.2017
SGBD - Scop
Pentru a elimina problemele sistemelor clasice
de procesare a informațiilor bazate pe fișiere
Redundanța și inconsistența datelor
Accesul dificil la date
Date izolate în fișiere multiple și de diferite formate
Probleme cu integritatea datelor
Atomicitatea actualizărilor
Acces concurent al mai multor utilizatori
Probleme de securitate a datelor
7 http://ebautu.disciplinele.ml 18.02.2017
SGBD - Aplicatii
Aplicaţii ce folosesc baze de date
Domeniul bancar
Companii aeriene: rezervări, orare
Universităţi: studenti, cursuri
Vânzări: clienţi, produse, recomandări, comenzi
Mediul social: Facebook, Google, Apple
https://myactivity.google.com/myactivity
“Databases touch all aspects of our lives.”
(Silberschatz et. Al)
Whether you know it or not, you‟re using a
database every day (J. Widom)
8 http://ebautu.disciplinele.ml 18.02.2017
SGBD - Caracteristici
Hardware
Caracter persistent pentru date de volum ridicat,
accesate rapid
Siguranță (dpdv hardware, software, al utilizatorilor)
Asigurat de un simplu telefon, sau PC, de o retea,
sau în cloud
9 http://ebautu.disciplinele.ml 18.02.2017
SGBD - Caracteristici
Software
Acces facil la date
Acces multi-utilizator controlat
e.g. accesul necontrolat poate duce la inconsistente
Mecanisme de control al accesului concurent (simultan) la date
Independent de mediul fizic de stocare
Eficient (Sute/mii de interogări pe secundă)
Protecție la distrugeri accidentale ale datelor
Atomicitatea actualizarilor (e.g. transferul de bani dintr-un cont in altul
trebuie sa se realizeze fie complet, fie deloc)
Menține integritatea datelor
conţinutul bd trebuie să fie valid în orice moment de timp între două
tranzacţii
Constrangerile de integritate sa nu fie „ascunse‟ in cod, ci delcarate explicit
Aplicațiile de baze de date pot fi programate prin intermediul unor
framework-uri
10 http://ebautu.disciplinele.ml 18.02.2017
SGBD - Utilizatori
Proiectantul bazei de date:
Stabilește structura (schema) bazei de date
scrie specificatia cu datele care vor fi memorate, unde,
in ce format, cu ce nume, etc
Programatorul bazei de date:
Implementează schema
Scrie comenzi care sa transpuna in SGBD specificatia
proiectantului
Administratorul bazei de date:
face update-uri, creaza conturi, verifica securitatea,
etc
Programatorii de aplicații
Implementează aplicații ce folosesc date si le modifica
11 http://ebautu.disciplinele.ml 18.02.2017
SGBD - Arhitectura ANSI-SPARC
Obiective:
Permite vederi independente
particularizate in fc de utilizator
Nivelul aplicaţie (view): aplicaţiile
ascund detaliile legate de tipurile de
date. De asemenea, pot fi ascunse si
informatii, precum salariul, din motive
de securitate.
Ascunde detalii ale stocarii
fizice (cum sunt stocate inreg)
Administratorul bd poate sa
modifice structurile de stocare
ale bd fără să afecteze vederile
userilor
Structura internă a bd nu este
afectată de modificări asupra
stocării fizice
La nivel conceptual, sunt
descrise datele stocate şi
(sursa: wikipedia)
relaţiile între date
13 http://ebautu.disciplinele.ml 18.02.2017
SGBD - Arhitectura
Dpdv funcțional
1. Managerul de memorie – modul ce oferă interfaţa
între date de nivel jos stocate în bd şi aplicaţii
Interacţionează cu managerul de fişiere
Ofera stocare, actualizare şi aducerea datelor eficient
2. Procesorul de interogări
Parsarea şi traducerea interogarilor
Optimizarea
Evaluarea interogărilor
14 http://ebautu.disciplinele.ml 18.02.2017
SGBD - Arhitectura
Dpdv funcțional
3. Managerul de tranzacții
O tranzacţie este o colecţie de operaţii ce efectuează o
singura functionalitate logică într+o aplicaţie de bd
Componenta de management a tranzacţiilor asigură că
baza de date rămâne într+o stare consistentă chiar daca
apar erori în sistem (e.g. se întrerupe curentul, cade
sistemul de operare)
Managerul de control al concurentei – controlează
interacţiunea între tranzacţii concurente, pentru a asigura
consistenţa bd.
15 http://ebautu.disciplinele.ml 18.02.2017
SGBD - Arhitectura
Dpdv al aplicației
Client-Server
Centralizat
Paralel (multi-procesor)
Distribuit (cloud)
16 http://ebautu.disciplinele.ml 18.02.2017
SGBD – Exemple
Sisteme comerciale de baze de date, oferite de companiile:
Oracle
IBM (with DB2)
Microsoft (SQL Server)
Sybase
Sisteme NoSQL
MongoDB, Redis, Solr, ElasticSearch
Amazon SimpleDB
http://db-engines.com/en/ranking_trend
17 http://ebautu.disciplinele.ml 18.02.2017
Baze de date – Curs 1
Modele de date.
18 http://ebautu.disciplinele.ml 18.02.2017
Concepte
Modelul de date – o colecţie de unelte ce descriu
Datele si semantica lor
Relaţiile dintre date
Constrângerile asupra datelor
Modele cunoscute
Modelul Relaţional al Datelor (Relational Data Model, (E.F.
Codd, 1970))
Modelul Entităţi Asociaţii (Entity-Relationship data model,
Chen, 1976l)
Modele de date bazate pe obiecte
Modelul Matematic Elementar al Datelor (Mancaș, 1985,
2013)
Modele semistructurate (e.g. XML, JSON)
Modele mai vechi
Modelul reţea (C.W. Bachman, 1969)
Modelul ierarhic
19 http://ebautu.disciplinele.ml 18.02.2017
Proiectarea bazelor de date -
Metodologie
Analiza cerințelor
Modelarea conceptuală
Diagrame EA, UML etc.
Pe parte de business: ce atribute sunt de interes?
Modelarea logică – stabilește schema bazei de date
Pe parte de informatică: ce tabele sunt necesare și care
sunt schemele acestora (cum să distribuim atributele
între tabele)?
Modelarea fizică
Depinde de SGBD ales
Va ține cont de
Încărcarea dpdv I/O
Performanța așteptată, nivelul de siguranță necesar
Cerințe hardware care să suporte
20 http://ebautu.disciplinele.ml 18.02.2017
Proiectarea bazelor de date
Ce probleme sunt cu această baza de date?
22 http://ebautu.disciplinele.ml 18.02.2017
Limbaje de modelare (Modele)
Modelul relaţional (Relational Data Model):
Formalizează idei de proiectare; colecţie de tabele,
atribute simple
Propune teste pentru a depista design-uri care nu sunt
bune
Teoria normalizării oferă reguli de proiectare/descompunere
Modele orientate obiect
Extind modelul relaţional prin adăugarea de obiecte şi
construcţii noi pentru tipurile noi de date
Permit atributelor din tuple să aiba tipuri complexe,
inclusiv valori ne-atomice, e.g. relaţii încuibate
Adauga expresivitate modelării, dar pastrează
fundamentele relaţionale şi compatibilitatea cu limbajele
relaţionale existente
23 http://ebautu.disciplinele.ml 18.02.2017
Limbaje de modelare (Modele)
Un exemplu de bază de date
relaţională
Tabele – Relaţii
Coloane - Atribute
Randuri – Înregistrări (tuple)
Tip de date – Domeniul
atributului
Bază de date relaţională =
colecţie de relaţii
Schema unei relaţii – colecţie de
atribute cu domenii bine definite
Schema unei bd – o colecţie de
scheme de relaţii
Instanţa unei bd – conţinutul
bazei de date la un moment dat
18.02.2017
25 http://ebautu.disciplinele.ml
Limbaje de modelare (Modele)
XML
Stocare: documente/arbori XML
Scheme de validare: DTD, XML Schema, RELAX
NG, etc.
Limbaje de interogare: XPath, XSLT, XQuery, …
Procesare: API standardizate: SAX, DOM, …
26 http://ebautu.disciplinele.ml 18.02.2017
Limbaje de modelare (Modele)
JSON (JavaScript Object Notation)
Standard pentru serializarea obiectelor, de obicei în
fişiere
Nu depinde de Javascript, exista parsere pentru multe
limbaje
27 http://ebautu.disciplinele.ml 18.02.2017
Limbaje de modelare (Modele)
JSON
Uşor de citit, utilizat pentru schimb de date
Reprezentare şi stocare de date semistructurate
28 http://ebautu.disciplinele.ml 18.02.2017
Scheme şi instanţe
În limbajele de programare – tipuri și variabile
Schema – structura logică a unei baze de date
Similar cu tipul de date (al variabilelor) din lb. de progr.
Exexmplu: baza de date constă în informații despre
studenții unei universități, despre cursurile pe care
aceștia le urmează și despre profesori, și relațiile dintre
aceștia
Instanță – conținutul concret al bd la un moment dat
Independența de mediul fizic
Posibilitatea modificării mediului fizic fără a afecta
structura logică a datelor
Aplicațiile depind de schema logică
29 http://ebautu.disciplinele.ml 18.02.2017
Tendinţe noi în practică şi cercetare
In-memory database (Main Memory DB)
Raspuns rapid si mai sigur la interogari
Datorita procesoarelor multi-core ce pot adresa
spaţii de memorie mai mari si datorita RAM ieftin
Pt aplicaţii unde e necesar raspunsul foarte rapid
(eg. Pt echipamente de retele de telecomunicaţii
XML/JSON
Baze de date relaţionale cu suport XML
Native XML database systems
Înca în faza de cercetare
Managementul datelor de tip stream
Data management in Peer to Peer Systems
30 http://ebautu.disciplinele.ml 18.02.2017
Rezumat
Exemplu
Baza de date – Concepte
Sisteme de gestiune a bazelor de date
Caracteristici, avantaje
Modele de date (Limbaje de modelare a datelor)
Vă mulţumesc!
Intrebări?
31 http://ebautu.disciplinele.ml 18.02.2017