+ All Categories
Home > Documents > Curs - Dorin Carstoiu

Curs - Dorin Carstoiu

Date post: 14-Jul-2015
Category:
Upload: valeriu-zdrobau
View: 830 times
Download: 32 times
Share this document with a friend

of 130

Transcript

Baze de date Prof. dr. ing. Dorin CarstoiuBaze de date Curs 1 1

Biliografie1. 2. 3. 4.

5. 6. 7. 8. 9.

A. Ullman, DataBase Design, 1972 D. Carstoiu, Tehnologia bazelor de date, Lit. UPB, 1992 D. Carstoiu, Baze de date relationale, Ed Printech, 1999 D. Carstoiu, Retele globale, Note de curs an VI SAD, Fac. Automatica si Calculatoare. F. Radulescu, Baze de date Internet, Ed. Printech, 2000 F. Radulescu, PL1, Ed. Printech, 2005 *** Oracle PL1 *** Microsoft SQL *** MySql, PHP.

Baze de date

Curs 1

2

1. Introducere1.

2. 3. 4. 5. 6.

Definitii (baza de date, mediu de baza de date, programe de baze de date si aplicatii) Structuri de date specifice in baze de date Operatii specifice in baze de date Facilitati suplimentare in medii de baze de date Clasificari medii de baze de date DataBase Management System (DBMS)

Baze de date

Curs 1

3

1. Definitii

O baza de date este o colectie persistenta de informatii structurate, organizata si construita pentru facilitarea accesului si prelucrarii eficiente. Un mediu de baze de date este constituit din totalitatea programelor ce permit definirea, manipularea, vizualizarea, stocarea si gestionarea accesului la date. Componente aplicatii baze de date Baza de date propriuzisa Programe de aplicatie Proiectarea aplicatiilor necesita respectarea secventei: proiectarea bazei de date si apoi a programelor de manipulare.4

Baze de date

Curs 1

2. Structuri de date specifice in baze de dateO baza de date este organizata ca o colectie de tabele, similare cu tabelele pastrate pe formate tiparite.Coloane (field) Cap de tabel

Structura Top

Randuri (inregistrari records)

Bottom

Orice tabela are asociat un nume fizic si un nume logic.Baze de date Curs 1 5

Structura unei tabelePrin definirea structurii unei tabele se intelege stabilirea numelui campurilor, a tipurilor de date si a formatelor asociate. Nume camp - sir de caractere, similar cu numele variabilelor in limbajele de programare, limitat ca lungime functie de mediul de baze de date Tip data, format tip generic functie de numarul de octeti necesari pentru stocare (defineste mai mult formatul de afisare nu cel de stocare) Formatul dat de String - Tip sir de caractere numarul de caracterCaracter Varchar din sir. Ex 20 Formatul definit ca (m.n) M nr. Digiti inclusiv punctul zecimal N nr. Digiti dupa punctul zecimalCurs 1 6

- Numeric generic

Integer Float Real Serial

Baze de date

-

Data calendaristica format implicit pentru reprezentare an, luna, zi. Multiple formate de afisare. Time format pentru reprezentarea momentului de timp. Multiple formate de afisare. Logical (boolean) Format implicit cu reprezentare pe un octet cu valori posibile T/F (true/false) Blob Format binar pentru dimensiuni mari (imagini). Memo Format implicit prin care in baza se patreaza un index la continutul unui fisier de tip text. Este format nestructurat si nu permite cautare dupa continut. Camp Fisier text asociat memo

Baze de date

Curs 1

7

OBS. Tipurile definite sunt tipuri generice, ele difera de la un mediu la altul. Strucura tabela: Nume_tabela (nume_camp1 tip_data [format], nume_camp2 tip_data [format], .. ) OBS. Campurile pot avea o serie de atribute suplimentare privind restrictiile de integritate (not null, primary key, forign key etc). Campurile au asociata ordine fizica/ Fiecare camp este vazut ca o variabila careia ii este atribuita valoarea corespunzatoare din inregistrarea curenta. La fiecare tabela se asociaza un indicator de inregistrare. Indicatorul de inregistrare se modifica functie de inregistrarea curenta. O baza de date este constituita dintr-o colectie de tabele intre care exista o serie de asocieri sau relatii: Ex: Mybase(tabela_1, tabela_2, ., tabela_n)

Baze de date

Curs 1

8

3. Operatii specifice in baze de datePentru manipularea datelor o serie de operatii sunt executate: FIND gasirea inregistrarii ce indeplineste un anumit criteriu FIND NEXT gasirea inregistrarii urmatoare READ vizualizarea inregistrarii UPDATE reactualizarea continutului unei inregistrari MODIFY modificarea structurii unei tabele APPEND adaugarea unei noi inregistrari INSERT inserarea unei noi inregistrari DELETE stergerea unei inregistrari SORT reorganizarea continutului unei tabele OBS. Pentru ca o operatie sa fie executata este nevoie ca utilizatorul sa aiba drepturi corespunzatoare

Baze de date

Curs 1

9

4. Facilitati suplimentare in medii de baze de dateO serie de caracteristici diferentiaza mediile de baze de date: BACKUP RECOVERY ROLLBACK ROLLFORWARD ARHITECTURA CLIENT/SERVER SISTEM TRANZACTIONAL1010 ACCES CONCURENT ADMINISTRARE DREPTURI ACCES

Baze de date

Curs 1

10

5. Clasificare medii de baze de date1. Dupa modelul datelor Model relational (peste 90%) -bazat pe modelul entitate asociere Model distribuit Model ierarhizat 2. Dupa cost Medii comerciale (1000$) Oracle, Progress, Informics, DB2 Atentie: Medii fara costuri - paradigma 3. Dupa arhitectura aplicatie: Medii monouser (nu acces partajat la aceeasi resursa) Medii multiuser 4. Dupa limbajul de dezvoltare aplicatii: Limbaj nativ Limbaj gazdaBaze de date Curs 1 11

5. Dupa limbajul de implementare cereri: Limbaje SQL (Structured Query Language) raspandire mare; Limbaje QBE (Query By Exemple) Paradox; Limbaje 4GL Progress 6. Dupa interfata utilizator: Interfata alfanumerica; Interfata grafica 7. Dupa platforma Platforma Windows Platforma Linux Platforma Unix

Baze de date

Curs 1

12

4. DataBase Management System (DBMS)Nucleul central al oricarui mediu de baze de date este DataBase Management System (DBMS) sau SGBD. DBMS consta dintr-o colectie de programe ce asigura definirea structurilor de date, stocarea datelor, manipularea acestora, vizualizarea, administrarea accesului. Componente: 1. Data Definition Language (DDL) 2. Storage Definition Language (SDL) 3. View Definition Language (VDL) 4. Data Manipulation Language (DML) 5. DataBase Administrator (DBA)

Baze de date

Curs 1

13

1.Data Definition Language (DDL)Programe specializate ce permit crearea structurii bazei de date, a structurii tabelelor si a relatiilor dintre acestea. Prin DDL se genereaza entitatea baza de date si se permite modificarea structurii acesteia. Tipiurile de date permise depind de mediul de implementare. La operatiile de import/export datele sunt convertite in formatul propriu pentru destinatie. De cele mai multe ori nu se garanteaza integritatea datelor la migrarea de la un mediu la altul sau chiar la versiuni ale aceluiasi mediu. Restrictiile impuse campurilor determina anomalii la migrare.

Baze de date

Curs 1

14

2. Storage Definition Language (SDL)Componenta de regula invazibila utilizatorului Este inclusa in nucleul mediului si asigura modalitatea de stocare a bazei in memoria externa. Structura de stocare nu asociaza pentru fiecare tabela un fisier. Modalitatea de stocare este dependenta de organizarea memoriei externe si de facilitatile de acces oferite. Lucreaza in conjunctie cu DBA pentru a restrictiona accesul nepermis la date. Utilizatorii pot utiliza propriile mecanisme de stocare fara a garanta ca sunt superioare celor folosite de mediu. La bazele de date comerciale componenta lipseste si este suplinita de resurse ale sistemului de operare.

Baze de date

Curs 1

15

3. View Definition Language (VDL)Destinata vizualizarii datelor stocate in baza de date. Permite crearea de tabele view prin care se faciliteaza procesarile ulterioare. Tabelele view nu sunt tabele permanente dar pot fi utilizate similar cu acestea. Pot fi realizate cereri in care sunt invocate tabele view. Nu se regaseste in toate mediile de baze de date.

Baze de date

Curs 1

16

4. Data Manipulation Language (DML)

Componenta esentiala in stabilirea performantelor unui mediu de baze de date Deternina modul de implementare a limbajului de cereri. Este singura componenta standardizata (modele SQL, QBE, 4GL) Limiteaza dimensiunea bazei de date Include algoritmi de optimizare a executiei cererilor. Are facilitati suplimentare la baze de date distribuite

Baze de date

Curs 1

17

5. DataBase Administrator (DBA)

Nu se regaseste in toate mediile de baze de date Asigura stabilirea drepturilor de acces ale utilizatorilor la baza de date Implementeaza concepte de securitatea datelor Opereaza impreuna cu STL. Asigura securizare intrinseca plus securizare bazata pe sistemul de operare.

Baze de date

Curs 1

18

Curs 2-3 Prof. dr. ing. Dorin CarstoiuBaze de date Curs 2-3 1

Cuprins1. 2. 3. 4. 5.

Modelul datelor Enttitati, atribute, relatii Modelul entitate relatie (E-R) Memorarea datelor, fisiere, organizare Metode de cautare pentru acces la date

Baze de date

Curs 2-3

2

1. Modele de date, scheme si instanteDefinitie: Se defineste modelul datelor ca un set de concepte ce poate fi utilizat in descrierea structurii datelor. Prin structura bazei de date datelor se intelege tipul datelor, legatura dintre ele, restrictiile ce trebuiesc indeplinite de date. O arhitectura de date asociata unei baze de date poate fi reprezentata pe trei niveluri, avind ca scop separarea aplicatiilor utilizatorului de baza de date fizica.Nivel extern Nivel conceptual Nivel intern Grup 1 . Grup n

Schema conceptuala Schema interna

Mediul de stocare

Baze de date

Curs 2-3

3

Nivelul intern constituit din schema interna ce descrie structura de stocare fizica a datelor in baza de date Nivelul conceptual sau schema conceptuala descrie structura intregii baze de date pentru o comunitate de utilizatori. La nivelul conceptual se face o descriere completa a bazei de date, ascunzind detaliile legate de stocarea fizica, concentrindu-se asupra descrierii entitatilor, tipurilor de date, relatiilor dintre ele, precum si a restrictiilor asociate. Nivelul extern sau nivelul vizual (utilizator), include o colectie de scheme externe ce descriu baza de date prin prisma diferitilor utilizatori. Fiecare grup utilizator descrie baza de date prin prisma propriilor interese. Exista tendinta la acest nivel ca grupuri de utilizatori sa ascunda detalii de care nu sint interesate. Si la acest nivel se pot folosi modele de implementare sau modele de nivel inalt.

Baze de date

Curs 2-3

4

Modele conceptuale de nivel inalt (extern, conceptual)Cerintele pentru constructia unei baze de date aferenta unei companii, numita COMPANIE. Compania are un numar de angajati organizati pe departamente, si urmareste realizarea unor proiecte. Compania este organizata in departamente, fiecare departament are un nume, un numar de cod, un numar de angajati (minim 6), putind avea mai multe sedii. Un departament este implicat in mai multe proiecte, fiecare din ele are un nume, un numar de cod, si o singura locatie. Se pastreaza pentru fiecare angajat numele, numarul de cod (social security number - ssn), adresa, salariul, sex, data de nastere. Orice angajat este afiliat la un departament, insa poate lucra la mai multe proiecte ce nu sunt neaparat coordonate de acelasi departament. Trebuie deci stocat si numarul de ore alocate saptaminal pentru fiecare proiect. De asemenea, fiecare angajat are un sef direct, numit si supervizor. Lista persoanelor in intretinerea fiecarui angajat este importanta intrucit este utilizata la calculul impozitului, lista contine numele, sex, data nasterii.Baze de date Curs 2-3 5

2. Entitati, atribute, relatii O entitate este un obiect real sau conceptual, cu o existenta independenta. O entitate este un obiect cu existenta fizica, persoana particulara, automobil, companie, activitate, curs universitar, etc. Orice entitate are o serie de proprietati numite si atribute ce particularizeaza entitatea respectiva. De exemplu, pentru o entitate angajat se pot enumera o serie de atribute cum sint nume, adresa, data nasterii, sex, salariu. Ex: e1={Nume=Vasile Ionescu, Adresa=Dreptatii - 211, Sector 6, Virsta = 40, Telefon=6621311} e2={ Nume=U.P.B., Sediu=Splaiul Independentei - 313, Rector=V. Constantinescu}

Baze de date

Curs 2-3

6

Atribut compus. Unele atribute pot fi impartite in parti mai mici cu semnificatie independenta. Un astfel de atribut este un atribut compus. Un exemplu este cel al atributului adresa, ce poate fi compus subdivizat in atributele componente Oras, Judet, Cod postal, Strada. Atributele ce nu sint compuse se numesc atribute atomice. atomice Valoarea atributelor compusee se formeaza prin concatenarea valorilor atributelor atomice. Multe atribute au valoare unica pentru o entitate particulara si sint numite atribute cu o singura valoare. Spre exemplu virsta unei valoare persoane. Exista atribute ce pot lua mai multe valori dintr-un set finit, ca de exemplu gradele didactice intr-o universitate, culoarea unui automobil, etc. Acestea sint atribute cu mai multe valori. Atributele derivate sint atributele ce se pot determina din relatiile ce exista intre ele ca de exemplu, virsta unei persoane ce se poate determina din data curenta si data de nastere.

Baze de date

Curs 2-3

7

O baza de date este constituita in mod uzual din grupe de entitati similare. Fiecare angajat este caracterizat de aceleasi atribute, dar fiecare entitate angajat va avea un set propriu de valori ce il caracterizeaza. Entitatile ce sint caracterizate de aceleasi atribute se numesc entitati tip. Pentru entitatea tip ANGAJAT avind atributele tip Nume, Virsta, Salariu, se dau mai jos ca exemplu doua entitati particulare. e1(Popescu Vasile, 43, 3880) e2(Dumitriu Petre, 32, 3240) Descrierea atributelor entitatii tip este numita schema entitatii Uzual, o entitate tip contine un atribut ce are valori distincte pentru fiecare entitate individuala. Acest atribut este numit atrtibut cheie, iar cheie valorile sale pot fi utilizate pentru identificarea in mod unic a entitatilor componente. O cheie poate fi formata si din mai multe atribute, avind proprietatea ca prin combinarea valorilor acestora se obtine un set de valori distinct.

Baze de date

Curs 2-3

8

Pentru a se distinge, atributele compuse vor fi reprezentate intre paranteze. Se poate face prima descriere a bazei de date COMPANIE O entitate tip DEPARTAMENT avind atributele Nume, Numar, Locatie (Sediu), Manager, Data de la care are aceasta functie. Entitatea tip PROIECT cu atributele Nume, Numar, Locatie, Departamentul ce coordoneaza proiectul, cu atribut cheie oricare dintre Nume sau Numar. Entitatea tip ANGAJAT cu atributele Nume, SSN, Sex, Data nasterii, Adresa, Salariu, Departament si Supervizor. Atributele Nume si Adresa pot fi atribute compuse. O entitate tip INTRETINUT cu atributele Angajat, Nume, Sex, Data de nastere, Tip relatie (referitor la relatia dintre angajat si persoana aflata in intretinere). In aceasta incercare de definire nu s-a tinut cont de faptul ca un angajat poate sa lucreze la mai multe proiecte, nu apare in acest caz indicat numarul de ore pe saptamina alocate unui anumit proiect. Poate fi avut in vedere in cadrul entitatii ANGAJAT prin atributul compus Lucreaza_la ce ar avea componentele (Proiect,Ore). O alta alternativa poate fi introducerea unui atribut compus cu mai multe valori la entitatea PROIECT, atribut ce are componentele (Angajat, Ore).Baze de date Curs 2-3 9

O relatie tip R intre n entitati tip E1,E2,...,En este o asociatie de entitati de acelasi tip. O relatie instanta ri arata de fapt ca entitatile participante in ri sint in relatii ce corespund lumii reale. De exemplu relatia LUCREAZA_PENTRU intre entitatile tip ANGAJAT si DEPARTAMENT asociaza fiecare angajat cu departamentul pentru care acesta lucreaza. Se defineste rangul sau gradul unei relatii tip ca numarul entitatilor tip participante. participante Daca relatia se stabileste intre elementele aceleiasi entitati se spune ca s-a stabilit o relatie recursiva. Ca exemplu, relatia SUPERVIZOR recursiva se stabileste intre angajati si supervizor, relatie in care ambii sint membrii aceleiasi entitati. Restrictia de cardinalitate este marcata de numarul relatiilor instanta la care o entitate poate sa participe. Se simbolizeaza prin (m:n) Restrictia de participare specifica conditia de existenta a unei relatii. Pot exista restrictii de participare partiala sau totala.

Baze de date

Curs 2-3

10

3. Model E-RModelul pentru BD CompanieIni Pren Salariu ANGAJAT Sex Dat_n (0.n) (1.n) (0.n) Relatie (1.n) Nume INTRETINUT Relatie Sex Dat_n Loc Nume (0.n) (1.1) Manager Ore Supervisor (1.n) Lucreaza_la (1.n) (1.1) Control (0.n) Nume Ssn Nume Adresa (1.1) Lucreaza (4.N) DEPARTAMENT Numar Nume Loc

PROIECT Numar

Baze de date

Curs 2-3

11

4. MEMORAREA DATELOR, FISIERE, ORGANIZARE Mediul de stocare poate fi impartit in doua categorii: stocarea primara priveste acel mediu asupra caruia se poate opera direct de catre unitatea centrala. stocarea secundara se efera la toate mediile externe de memorare, cum sunt discul magnetic, banda magnetica, disc optic, caracterizate de capacitate mare, cost redus, dar cu un timp de acces mult mai mare decit memoria interna. Justificarea stocarii externe: volumul prea mare pentru a fi stocate in memoria principala; datele ramin dupa intreruperea sursei de alimentare, adica au caracter permanent; costul pe unitatea de informatie este mult mai mic; asigura transportabilitatea intre mai multe masini

Baze de date

Curs 2-3

12

Informatia este stocata pe suprafata discului pe cercuri concentrice cu diametre distincte numite piste (track). La discurile compactate pistele de aceeasi raza formeaza un cilindru. cilindru Fiecare pista este impartita in mai multe blocuri, ce apartin unui blocuri sector. Marimea unui bloc este cuprinsa uzual intre 512 si 4096 sector octeti functie de sistemul de operare aferent. Separarea blocurilor se face prin spatii de lungime fixa numite gap interbloc, ce contine interbloc informatii speciale de control scrise in momentul initializarii discului. Orice referire la informatiile stocate pe disc este o referire la un bloc. Adresa blocului este obtinuta prin combinarea numarului suprafetei, numarului pistei (intr-o suprafata) si numarului blocului (in cadrul unei piste). Accesul la informatiile de pe disc se face prin citirea unui bloc si aducerea acestuia in memoria principala intr-un spatiu continuu numit buffer. buffer Cind mai multe blocuri se transfera in memoria interna, existenta mai multor buffere face ca viteza de transfer sa creasca.

Baze de date

Curs 2-3

13

Inregistrari cu lungime fixa

Inregistrari cu lungime variabila

In general, un bloc contine mai multe inregistrari, dar pot exista inregistrari ce incep intr-un bloc si se termina in alt bloc, functie de dimensiunea tipica a inregistrarii.

Baze de date

Curs 2-3

14

Daca se noteaza numarul de octeti ai unui bloc cu B, si cu R numarul de octeti ai unei inregistrari (valabil doar pentru inregistrarile de lungime fixa), numarul inregistrarilor ce pot fi stocate intr-un bloc va fi dat de realtia: bfr = [B/R] in care, bfr - reprezinta numarul de inregistrari pe bloc (blocking factor rate) [x] - reprezinta functia parte intreaga. In general R nu divide pe B, deci, daca nu sint inregistrari ce trec dintr-un bloc in altul, in fiecare bloc folosit ramine un spatiu neocupat de B-(bfr*R) octeti. Alocarea blocurilor Alocarea contigua sau consecutiva a blocurilor Alocarea cu legaturi este metoda caracterizata de existenta unor pointeri de inlantuire a blocurilor. Alocarea indexata utilizeaza unul sau mai multe blocuri index ce contin pointeri la blocurile cu inregistrarile de date.

Baze de date

Curs 2-3

15

5. Metode de cautare1. 2.

Cautare liniara (secventiala) Cautare binara. Se considera un fisier secvential cu N inregistrari, ale carui chei sint in ordine crescatoare k1 < k2


Recommended