curs 01

34
Baze de date Florin Ostafi [email protected] www.ac.tuiasi.ro/~fostafi

Upload: bradgauss

Post on 23-Jul-2015

26 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Curs 01

Baze de date

Florin Ostafi

[email protected]

www.ac.tuiasi.ro/~fostafi

Page 2: Curs 01

Curs - 2ore / săptămână

Laborator – 1 oră / săptămână

Evaluare

pe parcurs

laborator 25%

teste (2) 25% - săptămânile 5, 10

finală

colocviu 50%

Page 3: Curs 01

BibliografieDatabase Systems - concepts, languages & architectures

P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Ed. McGraw - Hill, 2000

Database Systems - the complete book

H. Garcia-Molina, J.D. Ullman, J. Widom, Ed. Prentice Hall, 2002

Baze de date - proiectare, implementare, gestionare

T. Connolly, C. Begg, A. Strachan, Ed. Teora, 2001

Baze de date O. Bâscă, Ed. All, 1997

PL/SQLT. Luers, T. Atwood, J. Gennick, Ed. Teora, 2001

Sisteme de gestiune a bazelor de date – aplicaţii OracleI. Lungu, M. Velicanu, C. Bodea, C. Ioniţă, Ed. All, 1998

Page 4: Curs 01

Introducere

Partea I - Baze de date relaţionale� Modelul relaţional

� Algebra relaţională

� Calculul relaţional

� SQL – Structured Query Language

Partea II – Proiectarea bazelor de date� Tehnici de proiectare şi modele

� Proiectarea conceptuală

� Proiectarea logică

Page 5: Curs 01

Introducere

� Informaţii şi date

� Sisteme de gestiune a bazelor de date

� Modele de date

� Limbaje şi utilizatori

� Avantaje şi dezavantaje ale sistemelor de gestiune a bazelor de date

Page 6: Curs 01

Introducere - Informaţii şi date

� Disponibilitatea informaţiei şi capacitatea de a o gestiona în mod eficient - esenţiale în orice activitate

� Organizaţie ⇔ sistem informaţional - gestionează informaţia necesară funcţionării

� Informaţia este înregistrată sub formă de date

� datele necesită o interpretare pentru a furniza informaţii

� Nu se poate da o definiţie exactă a conceptului de dată, precum şi a diferenţei dintre dată şi informaţie

� Data nu are nicio semnificaţie, dar odată interpretată şi corelată convenabil, ea furnizează informaţii ce îmbogăţesc cunoaşterea

Page 7: Curs 01

Introducere - Informaţii şi date

Exemplu

Şirul de caractere Popescu IonNumărul 123456

„Cine este şeful departamentului de cercetare şi care este numărul său de telefon?”

„Persoana Popescu Ion este şeful departamentului de cercetare şi numărul său de telefon este 123456”

Definiţie. O bază de date este o colecţie de date utilizată pentru a reprezenta informaţiile de interes pentru un sistem informaţional

Page 8: Curs 01

Introducere - SGBD

� Sfârşitul anilor ’60 - primele sisteme software dedicate gestiunii datelor � gestiunea se realiza cu ajutorul limbajelor tradiţionale de

programare (C şi FORTRAN)

� Mai recent, gestiunea se realiza prin intermediul limbajelor orientate obiect (C++ - ‘80, Java – ‘90)

� Abordarea convenţională a gestiunii datelor exploata prezenţa fişierelor pentru stocarea permanentă a datelor

� Sistemele de gestiune a bazelor de date bazate pe fişiere - încercare de început de a computeriza sistemul de îndosariere manual, în scopul de a accesa mai eficient datele stocate

Page 9: Curs 01

Introducere - SGBD

Definiţie. Un fişier este un set de înregistrări care conţin date între care există relaţii logice

� Structura fizică şi stocarea fişierelor de date şi a înregistrărilor sunt definite în cadrul aplicaţiei

� Un fişier permite stocarea şi căutarea datelor

� furnizează doar un mecanism simplu de acces şi partajare

� Procedurile scrise într-un limbaj de programare sunt complet autonome, fiecare definind şi utilizând unul sau mai multe fişiere „private”

� Datele ce prezintă interes pentru mai multe programe sunt multiplicate de atâtea ori câte programe utilizator există →redundanţa şi inconsistenţa datelor

Page 10: Curs 01

Limitările sistemelor de gestiune a bazelor de date bazate pe fişiere

� separarea şi izolarea datelor

� dublarea datelor

� dependenţa de date

� incompatibilitatea fişierelor

� interogarea / proliferarea fixă a programelor aplicaţie

Introducere - SGBD

Page 11: Curs 01

Separarea şi izolarea datelor

� Dacă datele sunt izolate în fişiere separate, procesul de combinare a datelor devine mai complicat

ExempluFişiere disponibile

- fişier cu informaţii despre proprietăţile disponibile pentru închiriere

- fişier cu informaţii despre chiriaşi

Cerinţă: listă a tuturor caselor care îndeplinesc pretenţiile unui potenţial chiriaş

Operaţii care trebuie efectuate:

- se caută chiriaşii care preferă tipul „casă”

- se caută proprietăţile de tip „casă” care satisfac cerinţele chiriaşilor

Programatorul de aplicaţii trebuie să realizeze sincronizarea a două fişiere, pentru a fi sigur ca datele extrase sunt corecte

� această dificultate este amplificată dacă se cer date din mai mult de două fişiere

Introducere - SGBD

Page 12: Curs 01

Dublarea datelor� Datele ce prezintă interes pentru mai multe aplicaţii sunt multiplicate de

atâtea ori câte aplicaţii utilizator există� Dublarea datelor → alterarea integrităţii acestora, atunci când modificarea

datelor redundante se face doar în fişierele accesate de o aplicaţie utilizator

Dependenţa de date� Structura fizică şi stocarea fişierelor de date şi a înregistrărilor sunt

definite în codul aplicaţiei

� Efectuarea de modificări în structura existentă este dificilă

� Exemplu: dacă se modifică dimensiunea unui câmp din structura unui fişier, programatorul trebuie

� să identifice toate programele ce accesează fişierul respectiv

� să le modifice

� să le testeze din nou,

Aceste operaţii sunt consumatoare de timp şi supuse apariţiei erorilor

Introducere - SGBD

Page 13: Curs 01

Formate de fişiere incompatibile� Structura fişierelor este încorporată în programele aplicaţiei ⇒ este

dependentă de limbajul în care sunt scrise programele aplicaţiei

� Structura unui fişier poate fi diferită în urma generării lui de către limbaje de programare diferite

� incompatibilitatea directă a unor astfel de fişiere face dificilă prelucrarea lor simultană

Interogarea / proliferarea fixă a programelor aplicaţie� Sistemele bazate pe fişiere - dependente de programatorul de aplicaţii

� Nu există facilităţi pentru realizarea interogărilor neplanificate

� Fişierele şi programele aplicaţie au proliferat ⇒

� programe inadecvate/ineficiente pentru îndeplinirea cerinţelor utilizatorilor

� documentaţie limitată şi dificil de întreţinut

Introducere - SGBD

Page 14: Curs 01

Definiţie. Un sistem de gestiune a bazelor de date (SGBD) este un sistem software capabil � să gestioneze colecţii de date mari, partajate şi persistente � să asigure corectitudinea şi securitatea datelor� să fie eficient � Să producă rezultatul scontat

Definiţie. O bază de date (BD) este o colecţie de date gestionate de un SGBD

Introducere - SGBD

Page 15: Curs 01

Caracteristici ale bazelor de date� BD sunt mari

• în general depăşesc memoria principală disponibilă

• SGBD-ul trebuie să gestioneze datele în memoria secundară ⇒ este limitat doar de de capacitatea dispozitivelor de stocare

� BD sunt partajate

• diverse aplicaţii şi utilizatori trebuie să aibă posibilitatea de a obţine accesul la datele de interes

• “controlul concurenţei” – permite accesul partajat la date al mai multor utilizatori ce operează simultan

� BD sunt persistente

• BD au o durată medie de viaţă ce nu este limitată de o singură execuţie a programelor utilizator

(datele gestionate de un program în memoria principală au o durată de viaţă cuprinsă între începutul şi sfârşitul execuţiei programului, nefiind persistente)

Introducere - SGBD

Page 16: Curs 01

Caracteristicile SGBD

� corectitudinea datelor - funcţii specifice de backup

� are capacitatea de a conserva conţinutul BD (sau cel puţin permite reconstituirea acesteia) în cazul unor defecţiuni hardware sau erori software

� securitatea datelor - mecanisme de autorizare

� fiecare utilizator, recunoscut prin intermediul unui nume de utilizator specific accesului la SGBD, poate efectua numai anumite operaţii asupra datelor

Introducere - SGBD

Page 17: Curs 01

� eficienţa - finalizează operaţiile utilizând cantitatea adecvată de resurse (timp şi spaţiu) pentru fiecare utilizator

� această caracteristică se bazează atât pe tehnicile utilizate în implementarea SGBD-ului, cât şi pe modul de proiectare a produsului respectiv

� productivitatea mărită

� productivitatea - capacitatea sistemului cu BD de a conduce la realizarea scopurilor utilizatorilor

� această definiţie este generică şi nu corespunde unei anumite funcţii a SGBD-urilor, dat fiind că un SGBD pune la dispoziţia utilizatorilor diverse servicii şi funcţii

� sarcina proiectării unei BD şi a aplicaţiilor ce o utilizează vizează garantarea unei bune productivităţi a întregului sistem

Introducere - SGBD

Page 18: Curs 01

Introducere - Modele de date

Model de date - combinaţie de elemente destinată organizării datelor

Fiecare model de date pune la dispoziţia utilizatorilor mecanisme de structurare

� similare constructorilor type din limbajele de programare - permit definirea unor tipuri noi de date pe baza tipurilor elementare, predefinite

Tipuri de modele de date:

� Modelul de date relaţional

� Modelul de date ierarhic

� Modelul de date reţea

� Modelul de date obiect

Page 19: Curs 01

Introducere - Modele de date

� Modelul de date relaţional - propus la începutul anilor ’70

� sistemele reale bazate pe modelul relaţional au apărut la începutul anilor ’80

� cel mai răspândit model de date

� pune la dispoziţie constructorul relaţie

� oferă astfel posibilitatea organizarea datelor sub forma unei colecţii de înregistrări având structură fixă

Relaţia - se reprezintă sub forma unui tabel

� liniile coincid cu înregistrările

� coloanele corespund câmpurilor înregistrării

� ordinea în care apar liniile şi coloanele nu este relevantă

Page 20: Curs 01

Introducere - Modele de dateExemplu

Datele referitoare la cursurile universitare şi titularii lor, precum şi inserarea cursurilor în prospectul diverselor specializări pot fi organizate cu ajutorul a două relaţii (tabele) CURSURI şi PROSPECT:

CURSURI

PROSPECT

PopescuIonescuAnton

Baze de dateReţele de calculatoareTehnici de programare

TitularCurs

43344

Reţele de calculatoareBaze de dateTehnici de programareReţele de calculatoareBaze de date

AutomaticăAutomaticăCalculatoareCalculatoareCalculatoare

AnCursSpecializare

Page 21: Curs 01

Introducere - Modele de date

� Modelul de date ierarhic – utilizează structuri de tip arbore şi ierarhie � a fost definit în faza de început a dezvoltării SGBD-urilor (anii ’60)� acum este utilizat doar din motive de continuitate.

� Modelul de date reţea – cunoscut şi sub numele CODASYL (Conference of Data Systems Languages) � utilizează grafuri pentru organizarea datelor � a fost dezvoltat în anii ’70

� Modelul de date obiect – a apărut în anii ’80 � rezolvă unele limitări ale modelului relaţional � extinde în domeniul bazelor de date paradigma programării

orientate obiect

Modelele prezentate - „modele logice”� deşi structurile utilizate sunt abstracte, ele reflectă o organizare

particulară (arbore, graf, tabel, obiect)

Page 22: Curs 01

Introducere - Modele de date

Modele conceptuale

� au fost introduse pentru a descrie datele într-o manieră independentă de modelul logic

� nu sunt disponibile în SGBD-urile comerciale

� sunt utilizate în faza preliminară a proiectării bazelor de date, pentru o analiză cât mai bună a aplicaţiei, fără implicaţii de implementare

� exemplu de model conceptual - modelul Entitate - Relaţie

Page 23: Curs 01

Introducere - Modele de date

Scheme şi instanţe

schema bazei de date - caracteristici ale datelor care nu se modifică în timp; conţine numele relaţiei, urmat de numele atributelor (coloanelor)

Exemplu

CURSURI (Curs, Titular) – schema relaţiei CURSURI

instanţa (starea) bazei de date - valorile actuale din baza de date care se modifică în timp; conţine o colecţie de linii ale relaţiei respective, care variază în timp

ExempluInstanţa relaţiei CURSURI este dată de următoarele trei perechi:

PopescuIonescuAnton

Baze de dateReţele de calculatoareTehnici de programare

Page 24: Curs 01

Introducere - Modele de date

Nivele de abstractizare în SGBD-uri

Arhitectura unui SGBD este împărţită pe trei nivele, logic, intern şi extern; fiecare nivel are asociată o schemă

Schema logică - o descriere a întregii baze de date prin prisma modelului logic adoptat de SGBD (relaţional, ierarhic, reţea sau obiect)

Schema internă - descrie implementarea schemei logice prin prisma structurilor de stocare fizică

� de exemplu, o relaţie poate fi organizată la nivel fizic sub forma unui fişier secvenţial sau a unui fişier secvenţial cu indici

Page 25: Curs 01

Introducere - Modele de date

Schema externă - descrierea unei porţiuni a bazei de date prin prisma modelului logic

� o schemă externă poate oferi o organizare diferită a datelor cu scopul de a reflecta un punct de vedere al unui anumit utilizator sau grup de utilizatori

� este posibil ca unei singure scheme logice să-i fie asociate diverse scheme externe

� fiecare schemă externă va furniza o anumită vedere asupra bazei de date

� în majoritatea sistemelor, nivelul extern nu apare explicit, dar este posibilă definirea unor relaţii derivate, numite vederi

Page 26: Curs 01

Introducere - Modele de date

Exemplu

Un student de la Automatică este interesat de cursurile oferite în cadrul acestei specializări. Această informaţie este prezentă în relaţia AUTOMATICĂ, derivată din relaţia PROSPECT

AUTOMATICĂ

43

Reţele de calculatoareBaze de date

AutomaticăAutomatică

AnCursSpecializare

• schemelor externe li se pot asocia mecanisme pentru autorizarea accesului• un utilizator poate fi autorizat să manipuleze doar datele descrise prin

prisma schemei externe asociată

Page 27: Curs 01

Introducere - Modele de date

Independenţa datelor - permite utilizatorilor şi programelor să facă referire la date la un nivel înalt de abstractizare, ignorând detaliile de implementare

� Independenţa fizică permite interacţiunea cu SGBD-ulindependent de aspectele fizice ale datelor; este posibilă

� modificarea organizării fişierelor ce implementează relaţiile

� modificarea alocării fizice a fişierelor la dispozitivele de stocare

fără a influenţa descrierile de nivel înalt ale datelor şi programele ce utilizează acele date

Page 28: Curs 01

Introducere - Modele de date

� Independenţa logică garantează faptul că interacţiunea cu nivelul extern al bazei de date este independentă de nivelul logic

� se poate modifica o schemă externă fără a fi necesară modificarea schemei logice

� se poate modifica nivelul logic, păstrând intactă schema externă de interes pentru un anume utilizator

Accesul la baza de date se face numai prin intermediul niveluluiextern (care poate coincide cu nivelul logic)

� SGBD-ul este cel care traduce operaţiile în termenii nivelelor corespunzătoare

Page 29: Curs 01

Introducere - Limbaje şi utilizatori

SGBD-urile oferă o gamă largă de limbaje pentru gestiunea datelor şi implică un spectru larg de utilizatori

Ţinând cont de distincţia dintre scheme şi instanţe putem face o diferenţiere similară între limbajele bazei de date

� limbajul de definire al datelor (LDD) – utilizat pentru definirea schemelor logice, externe şi fizice precum şi pentru definirea autorizărilor de acces

� limbajul de manipulare al datelor (LMD) – utilizat pentru interogarea şi modificarea instanţelor unei baze de date

Remarcă. Unele limbaje (SQL) oferă facilităţile ambelor limbaje (LDD şi LMD) într-o formă integrată

Page 30: Curs 01

Introducere - Limbaje şi utilizatori

În funcţie de modul de exploatare a bazei de date, utilizatorii se pot împărţi în:

� administratorul bazei de date (DBA) – persoana responsabilă de proiectarea, controlul şi administrarea bazei de date

� mediază între cerinţele diverse, adesea conflictuale, exprimate de utilizatori, asigurând controlul partajat asupra datelor

� este responsabil pentru garantarea serviciilor

� asigură corectitudinea sistemului

� gestionează autorizările de acces la date

� programatorii de aplicaţii – definesc şi creează programele ce accesează baza de date • utilizează LMD sau alte unelte pentru generarea interfeţelor cu baza de date

Page 31: Curs 01

Introducere - Limbaje şi utilizatori

� utilizatorii obişnuiţi – cei care utilizează efectiv baza de date

� utilizatori finali – utilizează tranzacţii (spre exemplu programe ce realizează activităţi frecvente şi predefinite)

� utilizatori ocazionali – capabili să utilizeze limbaje interactive pentru a accesa baza de date, formulând interogări (sau actualizări) de diferite tipuri

pot fi specialişti în limbajul pe care îl utilizează şi interacţionează frecvent cu baza de date; termenul „ocazional” se referă la faptul că interogările nu sunt predefinite

Page 32: Curs 01

Introducere - Avantaje şi dezavantaje SGBD

Avantaje

� Datele - resurse comune ale organizaţiei, disponibile tuturor membrilor autorizaţi

� Baza de date furnizează un model standardizat şi precis

� Modelul poate fi folosit, cu extensiile necesare, în aplicaţii viitoare

� Control centralizat al datelor

� Partajarea bazelor de date ⇒ reducerea redundanţei şi inconsistenţei datelor

� Independenţa datelor → dezvoltarea de aplicaţii mai flexibile şi mai uşor de modificat

Page 33: Curs 01

Dezavantaje

� SGBD - scumpe, complexe şi foarte diferite de multe alte unelte software

� Introducerea SGBD necesită un efort financiar � direct - costul produsului

� indirect - resurse hardware şi software, pregătirea personalului etc.

� SGBD - furnizează, în forma standard, un set de servicii care au un anumit cost� în cazurile în care câteva dintre aceste servicii nu sunt

neapărat necesare, e dificilă extragerea serviciilor necesare la un moment dat → ineficienţă

Introducere - Avantaje şi dezavantaje SGBD

Page 34: Curs 01

Situaţii în care folosirea SGBD-urilor nu este necesară:� există un singur utilizator � există mai mulţi utilizatori care nu au nevoie de acces concurent la

date

Dezvoltarea actuală a SGBD-urilor a dus la sisteme mai eficiente şi mai fezabile, şi la arhitecturi din ce în ce mai ieftine ⇒ a crescut posibilitatea dezvoltării aplicaţiilor cu SGBD-uri

Introducere - Avantaje şi dezavantaje SGBD