Sunteți pe pagina 1din 27

Data Base 2

Spring 2018
Cristian Cira

Baze de date 2
Introducere
Informatica [Aplicata]
cristian.cira@e-uvt.ro
Data Base 2
Spring 2018
Cristian Cira

Ce este o baza de date?

2
Data Base 2

De ce folosim modele? Spring 2018


Cristian Cira

Modele sunt utile când dorim sa examinam ori gestionam parți din lumea reala

Costul utilizării unui model este considerabil mai mic decât utilizarea ori experimentarea
directa cu realitatea

Exemple

● harta
● economia mondiala
● sisteme de alerta cutremur
● simulator de trafic

3
Data Base 2

Harta - model al realității Spring 2018


Cristian Cira

Convenții
Orientata cu Nordul geografic în sus

Aceeași scala pe înălțime și lățime

Culori convenționale

4
Data Base 2

Alte detalii Spring 2018


Cristian Cira

5
Data Base 2

Mesaj pentru “arhitecții” modelelor Spring 2018


Cristian Cira

● un model e un mod de comunicare


● utilizatorii modelului trebuie sa aibe cunoștințe comune. Ex:
○ nordul
○ scala
○ culorile
● un model
○ scoate în evidenta doar câteva aspecte ale realității
○ este descris într-un anumit limbaj
■ simboluri linii
○ poate conține erori
○ poate conține trăsături ce nu se regăsesc in realitate
■ linii de contur
■ notații

6
Data Base 2

Motive pentru utilizarea unui DBMS - 1/2 Spring 2018


Cristian Cira

● aplicații data intensive


○ volum mare de date intre utilizator și BD
○ volum mare de date intre memorie și secondary storage

● stocare persistenta (persistent storage)


○ chiar dacă aplicația este oprita datele sunt salvate

● control centralizat al datelor


○ permite impunerea politicilor/regulilor chiar dacă BD este distribuita

● controlul redundantei
○ controlul consistentei și integrității datelor
○ consistenta = abilitatea de a soluționa contradicțiile în interiorul bazei de date

7
Data Base 2

Motive pentru utilizarea unui DBMS - 2/2 Spring 2018


Cristian Cira

● schimb de date (shareing data)


○ comunicare

● DB include documentația (specificația) structurilor și datelor, și nu poate rula fără


● independenta datelor
○ posibilitatea de a optimiza/modifica implementarea BD fără a modifica interfața clientului

● controlul accesului și securității


● backup și recuperarea datelor

8
Data Base 2

Motive sa nu folosim un DBMS Spring 2018


Cristian Cira

● investiția inițială în software, hardware și educație este ridicat


● generalizarea oferita de DBMS nu este necesară/justificată
○ nivelul de securitate nejustificat
○ numărul de utilizatori concurenți/simultani nu este mare
○ recovery

● datele și aplicațiile sunt simple si stabile


○ nu avem nevoie de data independence

● aplicații real time


● nu e nevoie de clienți multiplii

9
Data Base 2
Spring 2018
Cristian Cira

Modelarea datelor

10
Data Base 2

Modelarea datelor Spring 2018


Cristian Cira

Un model reprezinta o percepție a structurilor din realitate - din care selectăm anumite
aspecte și le ignoram pe altele

Modelarea datelor presupune 2 pași :

1. fixarea percepției structurilor din realitatea


2. reprezentarea acestei percepții

Limbajul bazelor de date

1. Extended Entity Relationship Model (EER) (Model relațional al entității extinse)


pentru fixarea percepției structurilor din realitate
2. Relational model
potrivit pentru reprezentarea acestei percepții în baza de date

11
Data Base 2

Modelarea proceselor Spring 2018


Cristian Cira

Fixam și reprezentam percepția proceselor din realitate.

Spre deosebire de structura date, procesele [din realitate] nu sunt reprezentate explicit
in baza de date

Utilizarea modelului este cea care reflecta procesele din realitate

Procesele pot fi reprezentate prin Data Manipulation Language (SQL)

● includerea codului ce manipulează datele în program/aplicație/interfață


● și/sau folosire directă/ad-hoc a limbajului de manipulare

12
Data Base 2

Modele de date, Arhitectura DB si DBMS Spring 2018


Cristian Cira

Data model Arhitectura

● Structuri de date ● Baza de date


● Constrangeri ○ arhitectura
● Operatii ANSI/SPARC 3-level DB
○ independenta datelor
● Chei si identificatori ● DBMS
● Integritate si consistenta
Metadate
● Valori nule
● Surogate

13
Data Base 2

Structuri de date Spring 2018


Cristian Cira

A data model is not the same as a model of data.

O baze de date este un model al structurilor din realitate. Modelul de date este unealtă
prin care creăm un asemenea model

● Entity Relationship Model (EER)


○ folosit sa fixam percepția realității
● Modelul Relațional
○ folosit sa implementam modelul in DBMS
● Modelul ierarhic
○ implementat în primul sistem de DB - 1967 IBM IMS database system
○ modelul fundamental pentru bazele de date XML

14
Data Base 2
Spring 2018
Cristian Cira

Modelul relațional

15
Data Base 2

Modelul relațional - structuri de date Spring 2018


Cristian Cira

table name columns


nume tabel coloane

column name
schema nume coloana
neschimbata UserCurent
în timp data type
tipul de data email dataNasteri orasul salar
varchar[50] datetime varchar[50] integer

user1@uvt.ro 1999-11-12 Oradea 10,000

user2@uvt.ro 2000-05-12 Iasi 11,000


row
randuri user3@uvt.ro 1998-12-01 Cluj-Napoca 12,000
state
user4@uvt.ro 2002-10-10 Oradea 13,000
stare
dinamica user5@uvt.ro 1998-05-05 Cluj-Napoca 14,000
reflecta starea
realității user6@uvt.ro 1999-04-23 Oradea 15,000

user7@uvt.ro 2001-11-05 Cluj-Napoca 16


16,000
Data Base 2

Modelul relațional - Constrângeri Spring 2018


Cristian Cira

Constrângerile sunt reguli ce nu pot fi


reprezentate de structurile de date

● email unic UserCurent


● email nu poate fi NULL
email dataNasteri orasul salar
● Date nașteri după 1900-01-01 varchar[50] datetime varchar[50] integer

● Orașul din România user1@uvt.ro 1999-11-12 Oradea 10,000

user2@uvt.ro 2000-05-12 Iasi 11,000

user3@uvt.ro 1998-12-01 Cluj-Napoca 12,000

user4@uvt.ro 2002-10-10 Oradea 13,000

user5@uvt.ro 1998-05-05 Cluj-Napoca 14,000

user6@uvt.ro 1999-04-23 Oradea 15,000

user7@uvt.ro 2001-11-05 Cluj-Napoca 17


16,000
Data Base 2

Modelul relațional - Operații Spring 2018


Cristian Cira

Operațiile suporta schimbarea și recuperarea


datelor

insert into UserCurent UserCurent


(user11@uvt.ro,2002-1-23,Arad,12500)
email dataNasteri orasul salar
varchar[50] datetime varchar[50] integer
select email, dataNasteri
user1@uvt.ro 1999-11-12 Oradea 10,000
from UserCurent
where orasul=’Oradea’ and salar>12000; user2@uvt.ro 2000-05-12 Iasi 11,000

user3@uvt.ro 1998-12-01 Cluj-Napoca 12,000

user4@uvt.ro 2002-10-10 Oradea 13,000

user5@uvt.ro 1998-05-05 Cluj-Napoca 14,000

user6@uvt.ro 1999-04-23 Oradea 15,000

user7@uvt.ro 2001-11-05 Cluj-Napoca 18


16,000
Data Base 2

Modelul relațional - Chei si identificatori Spring 2018


Cristian Cira

Cheile sunt constrângeri de unicitate

Daca alegem email primary key


atunci fiecare înregistrare din coloana email va fi UserCurent
unica
email dataNasteri orasul salar
varchar[50] datetime varchar[50] integer

user1@uvt.ro 1999-11-12 Oradea 10,000

user2@uvt.ro 2000-05-12 Iasi 11,000

user3@uvt.ro 1998-12-01 Cluj-Napoca 12,000

user4@uvt.ro 2002-10-10 Oradea 13,000

user5@uvt.ro 1998-05-05 Cluj-Napoca 14,000

user6@uvt.ro 1999-04-23 Oradea 15,000

user7@uvt.ro 2001-11-05 Cluj-Napoca 19


16,000
Data Base 2

Modelul relațional - Integritate și consitență Spring 2018


Cristian Cira

Integritate: Este realitatea bine proiectata în baza de date?


Consistență: Este baza de date lipsita de conflicte interne?

UserCurent User

email dataNasteri oras nume email adresa


varchar[50] datetime varchar[50] varchar[50 varchar[50] varchar[50]

user1@uvt.ro 1999-11-12 Oradea Viorica Petrat Inconsistencyuser1@uvt.ro Batistei 54, Arad

user2@uvt.ro 2000-05-12 Iasi Alex Nesu user2@uvt.ro Victoriei 123, Iasi

user3@uvt.ro 1998-12-01 Sibiu Felicia Conei user3@uvt.ro Cloșca 44, Sibiu

user4@uvt.ro 2002-10-10 Oradea Dorin Petrar Inconsistency user4@uvt.ro Lacului 12, Arad

user5@uvt.ro 1998-05-05 Sibiu Jenifer Liu user5@uvt.ro George Coșbuc 66, Sibiu

user6@uvt.ro 1999-04-23 Oradea Eugenia Marcu user6@uvt.ro Eminescu 10, Oradea

user7@uvt.ro 2001-11-05 Cluj-Napoca Camil Popovici user7@uvt.ro Cetatii 74, Cluj-Napoca


20
Data Base 2

Modelul relațional - Valori nule - NULL Spring 2018


Cristian Cira

NULL UNKNOWN - OK
NULL INAPLICABILE - NOT OK

UserCurent

email dataNasteri Nume de Nume de fata sex salar


varchar[50] datetime familie varchar[50] varchar[1] integer

user1@uvt.ro 1999-11-12 Cernica INAPLICABILE M 10,000

user2@uvt.ro 2000-05-12 Ivanov UNKNOWN F 11,000

user3@uvt.ro 1998-12-01 Ionescu Petru F 12,000

user4@uvt.ro 2002-10-10 Popescu Toma F 13,000

user5@uvt.ro 1998-05-05 Amariei INAPLICABILE M 14,000

user6@uvt.ro 1999-04-23 Luca INAPLICABILE M 15,000

user7@uvt.ro 2001-11-05 Popescu INAPLICABILE M 21


16,000
Data Base 2

Arhitectura - ANSI/SPARC 3-Level Spring 2018


Cristian Cira

Baza de date

● schemă descrie intenția (tipul)


● date descrie extensia (datele)

ANSI/SPARC Level 3 architecture

● separa în schema internă detaliile legate de stocarea fizica a datelor


● permite schimbarea mediului de stocarea fără a afecta aplicațiile
● schema externă permite accesul mai multor aplicații diferite

External schema -> utilizarea datelor

Conceptual schema -> Semnificatia datelor

Internal schema -> Stocarea datelor


22
Data Base 2

Schema conceptuală Spring 2018


Cristian Cira

Descrie toate aspecte legate de structura din realitate, Exclude aspecte legate de
aspecte care sunt:
● reprezentarea datelor
● relevante ● organizarea fizica
● generale ● acces
● invariante în timp
UserCurent

email dataNasteri numeFamilie numeFata sex salar


varchar[50] datetime varchar[5] varchar[50] varchar[1] integer

Nivelul aplicație nu vede decât schema [conceptuala]. Ex:

select email, dataNasteri


from UserCurent
where orasul=’Oradea’ and salar>12000;
23
Data Base 2

Schema externă Spring 2018


Cristian Cira

Descrie/afișează parte din informațiile din schema conceptuala


într-o forma potrivita (care servește) unei părți din utilizatori

Este tot timpul derivată din schema conceptuală

UserCurent FeteBinePlatite

email dataNasteri numeFamilie numeFata sex salar numeFamilie email


varchar[50] datetime varchar[5] varchar[50] varchar[1] integer varchar[5] varchar[50]

create view FeteBinePlatite


select numeFamilie, email Crează un tabel virtual [util unor utilizatori]
from UserCurent
Derivat din schema conceptuala [din UserCurent]
where sex=’F’ and salar>11000
oreder by numeFamilie;
24
Data Base 2

Schema internă Spring 2018


Cristian Cira

Descrie cum informația din schema conceptuală este reprezentată fizic (pe mediul de
stocare) a.î. performanțele (viteza de acces la acel mediu de stocare) sunt optime.

La nivel fizic, BD constă dintr-un număr de fișiere. Ordinea în care datele sunt scrise în
aceste fișiere influențează, evident, viteza de acces la aceste date. Ex:

Dacă datele dintr-un tabel [UserCurent] sunt salvate într-un fișier


în ordinea numelui de familie

● viteza căutări după un anumit nume de familie va fi mult sporită de vreme ce datele
în fișier sunt în ordinea alfabetică după nume de familie.
● căutarea după dataNasteri, salar, sau orice alt câmp va fi mai lenta

25
Data Base 2
Spring 2018
Cristian Cira

Metadate

26
Data Base 2

Metadate Spring 2018


Cristian Cira

Metadate sistem se referă la date: Metadate de business aspecte legate de

● proveniența lor ● care date sunt accesibile


● cum au fost modificate ● unde sunt datele
● modul de stocate ● care este semnificația datelor
● cine deține aceste date ● cum pot fi accesate
● cine are acces ● Rapoarte predefinite
● istoricul utilizării lor ● interogări predefinite
● statistici despre utilizare ● cat de curente sunt datele

Metadatele sistem sunt esențiale pentru gestionarea bazei de data

27