Sunteți pe pagina 1din 30

Baze de date – Curs 1

Concepte. SGBD. Modele.

Lect.dr. Elena Băutu


Facultatea de Matematică și Informatică
Universitatea Ovidius, Constanța
Rezumat
 Exemplu
 Baza de date – Concepte
 Sisteme de gestiune a bazelor de date
 Caracteristici, avantaje
 Modele de date (Limbaje de modelare a datelor)

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 free (Unix/Linux, dar nu neaparat) :


 Postgres
 Mysql
 SQLite
 Apache Derby sau H2 (scrise in Java).

 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?

Persoana Curs Departamen Cladire Salariu


t
Popescu Baze de date Computer Biblioteca 3000
Science
Ionescu Programare Informatica PC 3500
Java
Gheorghies Ingineria Informatica PC 3500
programarii
Georgescu Algebra Matematica Biblioteca 4000
Grigorescu Analiza Matematica PC 4000
Comsa ASC Informatica BiBNoua 3600
Calinescu ASD Computer BibNoua 3600
Science
21 http://ebautu.disciplinele.ml 18.02.2017
Limbaje de modelare (Modele)
 Modelul Entităţi – Asociaţii (Entity Relationship Model)
 Reprezentare grafică sugestivă
 Modelează universul problemei ca o mulțime de entități și
asociații între acestea
 Independent de orice considerații de memorare ori eficiență a
implementării

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

(sursa: Silberschatz et al.)


24 http://ebautu.disciplinele.ml 18.02.2017
Limbaje de modelare (Modele)
 XML - Extensible Markup Language
 Iniţial – limbaj de marcare a documentelor , definit de Consorţiul
WWW (W3C)
 Baza pentru formatele moderne de transfer de date
 Ofera posibilitatea de a specifica taguri noi si de a crea structuri
imbricate (nested)

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

 JSON Query Language (http://www.jsoniq.org/)


 Limbaj de interogare şi procesare a datelor stocate în model
JSON
 The SQL of NoSQL

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

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