Baze de Date - Ingineria Sistemelor Exam Paper (PDF)
Document Details
Uploaded by NonViolentHeliotrope1422
Dorin Carstoiu
Tags
Summary
This document is a past paper covering database design and systems, introducing concepts, models, and technologies used in database design and database management systems. The document's structure provides information regarding database design, including topics such as database design, database systems, and database management systems.
Full Transcript
Baze de Date Ingineria sistemelor an III Prof. dr. ing. Dorin Carstoiu BD Introducere 1 Biliografie 1. A. Ullman, DataBase Design, 1972 2. D. Carstoiu, Tehnologia bazelor de date, Lit. UPB, 1992 3. D. Carstoiu, Baze de date relationale, Ed Printech, 1999 4...
Baze de Date Ingineria sistemelor an III Prof. dr. ing. Dorin Carstoiu BD Introducere 1 Biliografie 1. A. Ullman, DataBase Design, 1972 2. D. Carstoiu, Tehnologia bazelor de date, Lit. UPB, 1992 3. D. Carstoiu, Baze de date relationale, Ed Printech, 1999 4. F. Radulescu, Baze de date Internet, Ed. Printech, 2000 5. F. Radulescu, PL1, Ed. Printech, 2005 6. D. Carstoiu si altii, DB2, Ed. Agir 2007 7. D. Carstoiu, Baze de date, Ed Matrix ROM, 2009 8. D. Carstoiu, A. Olteanu, A. Cernian Baze de date – Indrumar de laborator, Ed Matrixrom, 2009. 9. *** BigTable, Hbase, MongoDb, Cassandra 10. *** Oracle PL1 11. *** Microsoft SQL 12. *** MySql, PHP. BD Introducere 2 Continut disciplina 1. Introducere in BD (istoric, definitii, caracterizari) 2. Sisteme de gestiune a bazelor de date (SGBD, componete, caracteristici) 3. Modelarea datelor in baze de date (model Entitate-Asociere) 4. Considerente privind stocarea si tehnici de acces la date 5. Algebra relationala, operatii in algebra relationala 6. Limbaje de definire si interogare a bazelor de date (SQL/DDL, SQL/DML) 7. Alte obiecte in baza de date 8. Actualizarea datelor in baze de date, gestiunea tranzactiilor 9. Arhitecturi de aplicatii de baze de date 10. Securitatea si integritatea datelor 11. Introducere in problematica bazelor de date distribuite BD Introducere 3 Definitii O baza de date este un anasamblu de date structurate stocate astfel incat sa faciliteze accesul unui calculator, ce asigura accesul simultan a mai multor utilizatori, capabila sa raspunda la cererile acestora in timp util (se comenteaza semnificatia fiecarei asertiuni). Un Sistem de Gestiune al Bazei de Date (SGBD) (engleza: DataBase Management System - DBMS) este format din totalitatea programelor ce permit definirea, manipularea, vizualizarea, stocarea si gestionarea interogarilor pentru accesul la date. Componentele unei 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 aplicatii ce asigura viziunea asupra bazei de date din diverse perspective. BD Introducere 4 Oricare ar fi definitia o baza de date are cateva caracteristici implicite: O baza de date reprezinta o colectie logica coerenta de date ce are cel putin un inteles. Baza de date este destinata, construita, si populata cu date dintr-un domeniu bine precizat. Ea se adreseaza inerent unui anumit grup de utilizatori ce folosesc un grup specific de aplicatii. O baza de date modeleaza citeva aspecte ale lumii reale creand ceea ce se numeste orizontul propriu, orice modificare a orizontului fiind reflectata in baza de date. O baza de date poate fi de diverse marimi si complexitati. De exemplu, lista numelor, adreselor si numerelor de telefon pastrate de o personna particulara poate avea sute de inregistrari fiecare cu o structura simpla. Pe de alta parte catalogul cartilor intr-o mare biblioteca poate contine milioane de inregistrari ce pot fi vazute in diverse organizari din punctul de vedere al ordonarii, dupa numele primului autor, dupa subiect sau dupa titlul cartii. O baza de date poate fi generata si intretinuta manual sau cu ajutorul unor programe utilitare specializate. BD Introducere 5 Tabela, obiect al bazei de date O baza de date este organizata ca o colectie de tabele, similare cu tabelele pastrate in format tiparit, dar si alte obiecte ce vor fi descrise. Camp (coloana, field) Cap de tabel Structura Top Randuri (inregistrari – records) Bottom Orice tabela are asociat un nume si nu este vazuta intotdeauna ca un fisier secvential. BD Introducere 6 Structura unei tabele Prin definirea structurii unei tabele se intelege stabilirea numelui campurilor, a tipurilor de date asociate si a formatelor asociate. Obs. Foarte importante sunt constrangerile asociate tabelelor. Nume camp - sir de caractere, similar cu numele variabilelor in limbajele de programare, limitat ca lungime si caractere permise functie de sistemul de gestiune al bazei 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) OBS. Tipurile definite sunt tipuri generice, ele difera de la un mediu la altul (char(n), varchar(n), string, integer(n), number (m.n), float, real, date etc) Strucura tabela: Nume_tabela (nume_camp1 tip_data [format], nume_camp2 tip_data [format], …….. ) BD Introducere 7 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 identica cu ordinea de definire. Fiecare camp este vazut ca o variabila careia ii este atribuita valoarea corespunzatoare din inregistrarea curenta. Fiecare tabela are asociat pentru navigare un indicator de inregistrare, care indica inregistrarea curenta. Navigarea intr-o tabela de la o inregistrare la alta are ca efect actualizarea valorii in “variabila” nume_camp O baza de date este formata dintr-o colectie de tabele intre care exista o serie de asocieri sau relatii: Ex: Mybase(nume_tabela_1, nume_tabela_2, …., nume_tabela_n) BD Introducere 8 Clasificare SGBD – criterii nestandard 1. Dupa modelul datelor Model relational (peste 90%) -bazat pe modelul entitate asociere Model ierarhizat (arbore) Model retea (graf orientat) 2. Dupa localizarea datelor Baze de date centralizate Baze de date distribuite (model SQL sau non SQL) 3. Dupa complexitatea bazei de date manipulate SGBD comerciale (pentru baze de date de volum rezonabil, fara instrumente de administrare puternice) Fox, Access, MySQL … SGBD profesionale (capabile sa manipuleze baze de date de mari dimensiuni, securitate ridicata) Oracle, Progress, DB2… 4. Dupa arhitectura aplicatiei suportate nativ: SGBD monouser (nu permite acces partajat la aceeasi resursa sau este permisa prin alte mecanisme) Medii multiuser BD Introducere 9 5. Dupa limbajul de dezvoltare a aplicatiilor: Limbaj nativ (propriu SGBD) Limbaj gazda (doar engine SGBD, aplicatii dezvoltate in alte limbaje suportate Java, C, etc). 6. Dupa limbajul de implementare cereri: Limbaje SQL (Structured Query Language) – raspandire mare; Limbaje QBE (Query By Exemple) – ex: Paradox; Limbaje 4GL – Progress 7. Dupa interfata utilizator: Interfata alfanumerica (lucru in consola); Interfata grafica (vizuala) BD Introducere 10 8. Dupa sistemul de operare al calculatoarului pe care se instaleaza: Distributie pe Windows Distributie pe Linux Distributie pe Unix Distributie pe Mac Obs: O parte a SGBD-urilor au distributie pe intreaga gama a sistemelor de operare (ex Oracle), altele numai pe un singur sistem de operare (ex: Microsoft SQL). Pot fi gasite si alte criterii de clasificare, cele prezentate urmaresc sa evidentieze o serie de caracteristici ale SGBD. BD Introducere 11 Alte notiuni Definirea bazei de date presupune specificarea structurii, tipurilor de date ce vor fi stocate in baza de date, precum si descrierea detaliata a fiecarui tip de data, inclusiv constrangeri (se refera doar la structura). Constructia bazei de date este procesul popularii si stocarii datelor insasi pe mediul controlat prin SGBD. Prin manipulare se inteleg o serie de functii ce faciliteaza implementarea cererilor pentru gasirea datelor specificate, adaugarea de noi date ce reflecta modificarea contextului, generarea de rapoarte pe baza continutului bazei de date. Obs. Se remarca faptul ca nu este imperios necesar un sistem de programe general cum este DBMS sau SGBD, el putind fi inlocuit cu alte programe specifice, caz in care se poate afirma ca a fost creat un DBMS specific cu functiuni restranse fata de cel universal. Reuniunea dintre componentele software ce asigura manipularea datelor, impreuna cu datele insasi (continutul bazei de date) formeaza ceea ce se numeste sistemul de baze de date (DataBase System), BD Introducere 12 Sistem de baze de date BD Introducere 13 Definitiile sunt stocate in catalogul sistemului (system catalog) ce contine informatii despre structura fiecarei tabele, tipul datelor si formatul de stocare pentru fiecare coloana, o serie de restrictii referitoare la valorile posibile ale datelor. Informatiile stocate in catalog mai poarta denumirea de meta-data. Catalogul este utilizat intern de DBMS si numai in mod ocazional de utilizator atunci cand solicita informatii referitoare la structura bazei de date. Ca urmare DBMS nu este destinat unui anumit program de aplicatie specific, el este universal, putand fi utilizat de o multime de programe de aplicatie. Catalogul este utilizat pentru a cunoaste structura informatiilor din baza de date specificata, precum si formatul datelor din tabelele componente. Acelasi DBMS trebuie sa lucreze la fel de bine cu orice categorie de aplicatii. De ex: baze de date pentru universitati, banci, societati comerciale, etc. BD Introducere 14 Avantaje baze de date facilitarea si grabirea standardizarii datorita cooperarii largi intre diverse departamente, colective de proiectare, utilizatori. Standardizare se refera la numele si formatul datelor, formatul de afisare, terminologia utilizata, etc. flexibilitatea consta in posibilitatea modificarii structurii bazei de date fara a fi totdeauna necesara modificarea programelor de aplicatie. reducerea timpului de dezvoltare a aplicatiilor. Analiza, proiectarea si implementarea unei noi aplicatii de baze de date cere mai putin timp decit cel aferent dezvoltarii unor programe particulare capabile sa manipuleze tabele, acesta fiind estimat intre 1/4 pina la 1/6, in principal datorita facilitatilor oferite de DBMS si a interfetei foarte prietenoase cu utilizatorul. facilitatea de reactualizare prin adaugarea sau stergerea de inregistrari, cat si prin modificarea structurii datelor existente. Daca exista o compatibilitate in ceea ce priveste conversia unui tip de data in alt tip, la modificarea structurii aceasta este facuta automat. economisirea spatiului de stocare este o consecinta a structurarii datelor prin eliminarea datelor redondante. BD Introducere 15 Scheme de baze de date Arhitectura pe niveluri Nivelul intern constituit din schema interna ce descrie structura de stocare fizica a datelor in baza de date, utilizind un model al datelor fizice. La acest nivel se descriu detaliile complete ale stocarii, precum si modul de acces la date. Nivelul conceptual sau schema conceptuala descrie structura intregii baze de date pentru o comunitate de utilizatori. Nivelul extern sau nivelul vizual (utilizator), include o colectie de scheme externe ce descriu baza de date prin prisma diferitilor utilizatori. Fiecare grup de utilizatori vede baza de date prin prisma propriilor interese. Exista tendinta la acest nivel ca pentru grupuri de utilizatori sa se ascunda acele detalii de care grupurile nu sunt interesate. BD Introducere 16 Modele de date BD Introducere 17 Independenta datelor Organizare pe trei niveluri este foarte importanta pentru ca explica conceptul de independenta a datelor, prin posibilitatea de modificare a sistemului bazei de date la orice nivel fara a avea influienta la nivelurile superioare. Independenta datelor se defineste corespunzator nivelelor conceptual si intern. Prin independenta logica se intelege capacitatea schimbarii schemei conceptuale fara a atrage dupa sine schimbari in schema externa sau in programele de aplicatii. Independenta fizica este reprezentata prin capacitatea de schimbare a schemei interne fara schimbarea schemei conceptuale sau externe. Obs: Schimbarea schemei conceptuale poate surveni ca urmare a reorganizarii fizice a unor fisiere, prin crearea de noi structuri de acces menite sa asigure accesul eficient la date. BD Introducere 18 Strucura 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, administrarea accesului. Componente: 1. Data Definition Language (DDL) 2. Storage Definition Language (SDL) 3. Data Manipulation Language (DML) 4. DataBase Administrator – Data Control Language (DBA-DCL) BD Introducere 19 1.Data Definition Language (DDL) DDL este constituit din programe specializate ce permit crearea structurii bazei de date, a structurii tabelelor si a relatiilor dintre acestea. Caracteristici: Prin DDL se genereaza entitatea baza de date si se permite modificarea structurii acesteia, specificarea constrangerilor. Tipurile 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 si chiar migrarea intre versiuni ale aceluiasi SGBD. Restrictiile impuse campurilor sunt cele care produc anomalii la migrare. Comenzile DDL nu pot fi revocate (se spune ca sunt cu AUTOCOMMIT, adica sunt transpuse automat in baza de date) BD Introducere 20 2. Storage Definition Language (SDL) Caracteristici: Componenta de regula invizibila utilizatorului Este inclusa in nucleul SGBD si asigura modalitatea de stocare a bazei pe memoria externa (exploateaza organizarea memoriei externe privind accesul la blocuri). Structura de stocare nu asociaza pentru fiecare tabela un fisier. Modalitatea de stocare este dependenta de organizarea memoriei externe, de facilitatile de acces oferite si sistemul de operare. Lucreaza in conjunctie cu DBA pentru a restrictiona accesul la date. Utilizatorii pot utiliza propriile mecanisme de stocare fara a garanta ca sunt superioare celor folosite de SGBD. La bazele de date comerciale componenta lipseste de cele mai multe ori si este suplinita de resurse ale sistemului de operare aferente stocarii de fisiere. BD Introducere 21 3. Data Manipulation Language (DML) Caracteristici: Componenta esentiala in stabilirea performantelor unui mediu de baze de date DML asigura implementarea limbajului de cereri (interogarea bazei de date). Initial, singura componenta standardizata (modele SQL, QBE, 4GL), apoi standardul s-a extins si la alte componente. Standardul poarta denumirea de standard SQL. Performantele depind de dimensiunea bazei de date Include algoritmi de optimizare a executiei cererilor, pregatit pentru interogari complexe. Are facilitati suplimentare pentru baze de date distribuite (gestiunea tranzactiilor distribuite). In baze de date centralizate tranzactiile sunt serializate BD Introducere 22 Vederi Obiecte similare in utilizare cu tabelele. Caracteristici: Destinata manipularii vederilor aferente bazei de date. Permite crearea de vederi (views) ca instrumente de facilitare a procesarilor ulterioare. Vederile sunt pastrate ca definitii (nu sunt tabele permanente) dar pot fi utilizate similar cu acestea. La apelarea unei vederi aceasta este actualizata (calculata) Pot fi formulate cereri in care sunt invocate obiecte de tip vederi similar cu invocarea obiectelor de tip tabela. Nu toate mediile de baze de date permit definirea de vederi (componenta nu este implementata). BD Introducere 23 4. DataBase Administrator (DBA) sau Data Control Language (DCL) Caracteristici: Nu se regaseste in toate SGBD. Cele fara DCL utilizeaza facilitatile sistemului de operare pe care este instalat pentru restrictionarea accesului. Se refera la accesul la volume logice, fisiere (in principal drepturi de acces la fisiere) Asigura stabilirea rolurilor si drepturilor de acces ale utilizatorilor la baza de date. Net superior fata de resursele sistemului de operare. Implementeaza concepte de securitatea datelor referitoare la acces, asigurare integritate, operatii posibile Opereaza impreuna cu alte componente SGBD. Permite implementarea unei securizari intrinseci suprapusa peste securizarea bazata pe sistemul de operare. BD Introducere 24 Schema DBMS BD Introducere 25 Caracteristici sisteme de baze de date distribuite (model SQL) Pentru a implementa un sistem de baze de date distribuite sunt necesare o serie de componente software, dintre care amintim: componentele de comunicatie DBMS-uri locale DBMS distribuit. DBMS-urile locale sunt cele care descriu si manipuleaza datele din bazele de date stocate pe statiile locale sau altfel numite si noduri de date. Acestea pot fi de acelasi tip sau tipuri diferite, formand ceea ce se numesc sisteme de baze de date omogene sau eterogene. Prin SGBD distribuit intelegem un sistem software complex care asigura gestionarea bazei de date distribuita pe mai multe noduri ale retelei de calculatoare. Un astfel de SGBD are ca sarcina accesarea datelor in urma cererilor formulate de diferitii utilizatori. El va crea si va pastra la zi dictionarul de date global, dictionar care contine informatii despre baza de date distribuita. Un SGBD distribuit urmareste atingerea unor obiective specifice gestionarii distribuite a datelor, obiective ce sunt in mare parte comune oricarui SGBD dar cu aspecte specifice datorate caracterului distribuit al datelor. BD Introducere 26 Caracteristici sisteme de baze de date distribuite (model SQL) Principalele obiective urmarite: Redundanta minima si controlata a datelor. Distribuirea datelor in retea poate genera o crestere a redundantei. Exista pericolul de pierdere a coerentei datelor si de crestere exploziva a volumului datelor. Facilitati de utilizare adecvate. Un SGBD distribuit trebuie sa asigure transparenta localizarii informatiilor pe calculatoarele din retea. Securitatea datelor. In sistemele ce comunica printr-o infrastructura problema securitatii devine mult mai importanta, atat datorita distribuirii datelor, cat si a existentei unui numar mare de utilizatori care pot accesa datele. Vorbim de securitate locala si securitate globala la nivelul bazei de date distribuite. Coerenta si integritatea datelor. Sistemele de gestiune a bazei de date locale asigura coerenta si integritatea datelor la nivelul fiecarui nod. La nivelul intregii baze de date distribuite sistemul de gestiune distribuit trebuie sa asigure integritatea datelor in special pentru operatiile de actualizare. BD Introducere 27 Caracteristici sisteme de baze de date distribuite (model SQL) Partajarea datelor. Cum unul dintre scopurile bazelor de date distribuite este cel de acces simultan a mai multor utilizatori la date este foarte importanta localizarea datelor. Sa presupunem scenariul in care un utilizator lanseaza o cerere de regasire de la o statie locala. Cererea este preluata de SGBD distribuit care cu ajutorul dictionarului global de date, localizeaza nodul unde sunt stocate datele necesare. Situatii posibile functie de partajarea datelor: cererea poate fi satisfacuta in intregime pe statia locala de unde ea a fost lansata (cerere locala); cererea poate fi satisfacuta in intregime de sistemul de gestiune local de la o alta statie decat cea de unde ea a fost lansata. In acest caz cererea este transferata de sistemul distribuit nodului care detine datele pentru prelucrare (cerere la distanta); cererea poate fi satisfacuta numai preluand date de pe mai multe statii. In acest caz cererea este descompusa de catre sistemul distribuit in cereri locale si/sau cereri la distanta si transmise nodurilor corespunzatoare (cereri compuse), dupa care informatia de raspuns este agregata. BD Introducere 28 Modelarea datelor Model entitate-asociere BD_2 1 Model entitate asociere Aceasta sectiune prezinta conceptele de baza ale modelarii datelor utilizand modelul entitate asociere (model entity-relationship ER), model conceptual de nivel inalt. Caracteristici: Modelul asigura acoperirea nivelului conceptual privind perceperea si intelegerea de catre utilizatori a structurii datelor prin modelarea entitatilor si asocierilor. Nu se ocupa in nici un fel de detaliile de stocare a datelor in memoria externa. A fost numit modelul datelor intrucit este compus dintr-un grup de concepte ce specifica structura bazei de date impreuna cu un set de operatii necesare manipularii lor. Modelul ER este o forma simpla de prezentare a structurii datelor, utilizat in procesul constructiei bazei de date, dar si in alte aplicatii in care apar entitati si relatii intre acestea. BD_2 2 Etape ale modelarii: Colectarea si analiza cerintelor, discutii proiectant beneficiar. Scop: stabilirea necesitatilor beneficiarului, a cerintelor referitoare la informatiile stocate, cat si a rezultatelor ce se doresc produse. Rezultat: set de cerinte clar formulate. Elaborarea schema conceptuala provizorie utilizand un model de nivel inalt. Schema conceptuala reprezinta o descriere concisa a datelor utilizatorului incluzand descrierea detaliata a tipurilor de date, a relatiilor si restrictiilor pe care acestea trebuie sa le indeplineasca. Caracteristici: Nu includ detalii de implementare. Rezultatele pot fi comunicate beneficiarului chiar daca nu are cunostinte de baze de date. Eliminarea eventualelor interpretari eronate a cerintelor de catre proiectant. BD_2 3 Rafinarea schemei conceptuale in urma discutiilor cu beneficiarul. Elaborare schema conceptuala finala. Constructia schemei relationale Constructia bazei de date (nivel conceptual) cu detaliile rezultate din modelul de nivel inalt. Caracteristici: Independenta de DBMS permite analiza complexitatii bazei de date si stabilirea mediului de baza de date utilizat pentru implementare. Transformarea modelului conceptual in model de implementare prin particularizarea mediului de baza de date utilizat. Constructia efectiva a bazei de date se specifica structura bazei ca model de stocare interna si sunt specificate constrangerile de integritate. BD_2 4 BD_2 5 Exemplu - model conceptual de nivel inalt Cerintele pentru constructia unei baze de date aferenta unei companii, baza de date 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 4), putand avea mai multe sedii. Un departament este implicat in mai multe proiecte, fiecare din ele are un nume, un numar de cod, si o locatie. Se pastreaza pentru fiecare angajat informatii de personal (nume, marca, cnp, etc). Fiecare angajat este afiliat la un departament, insa poate lucra la mai multe proiecte ce nu sunt neaparat coordonate de departamentul din care face parte. Trebuie pastrat numarul de ore alocate lunar pentru fiecare proiect. De asemenea, fiecare angajat poate face parte dintr-un grup ce are un lider numit si supervizor. Angajatul poate avea persoane in intretinere (important la calculul impozitului}. BD_2 6 Entitati, atribute, relatii O entitate este un obiect real sau conceptual, cu o existenta independenta. O entitate poate fi un obiect fizic, o 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 sunt: 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} BD_2 7 Clasificare: Atribut compus. Unele atribute pot fi impartite in parti mai mici cu semnificatie independenta. Un astfel de atribut se numeste si atribut compus. Un exemplu este cel al atributului adresa, ce poate fi subdivizat in atributele componente Oras, Judet, Cod postal, Strada. Atributele ce nu sunt compuse se numesc atribute atomice. Valoarea atributelor compuse se formeaza prin concatenarea valorilor atributelor atomice. Atribute de identificare – cu valoare diferita pentru fiecare entitate (utilizat la identificarea entitatii) Atribute de descriere – celelalte atribute Obs: Multe atribute au valoare unica pentru o entitate particulara si sint numite atribute cu o singura valoare. Spre exemplu virsta unei 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 sunt atribute cu mai multe valori. Atributele derivate sunt 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. BD_2 8 O baza de date este constituita in mod uzual din grupe de entitati similare caracterizate de aceleasi atribute. De ex. fiecare angajat este caracterizat de aceleasi atribute, dar fiecare membru al entitatii angajat va avea un set propriu de valori ce il caracterizeaza. Entitatile ce sunt caracterizate de aceleasi atribute se numesc entitati tip. Pentru entitatea tip ANGAJAT avand atributele Nume, Virsta, Salariu, se da mai jos, ca exemplu, doi membrii: e1(Popescu Vasile, 43, 3880) e2(Dumitriu Petre, 32, 3240) Descrierea atributelor entitatii tip este numita schema entitatii Uzual, o entitate tip contine cel putin un atribut ce are valori distincte pentru fiecare instanta individuala (atribut de identificare). Aceste atribute se mai numesc si chei candidate. Dintre ele se alege un atrtibut cheie, iar valorile sale pot fi utilizate pentru identificarea in mod unic a entitatilor componente. O cheie candidata poate fi formata si din mai multe atribute (cheie compusa) , avind proprietatea ca prin combinarea valorilor acestora se obtine un set de valori distinct. BD_2 9 Spre exemplu, identificarea unui automobil nu poate fi facuta numai prin numarul de inmatriculare, ci si prin initialele judetului, deoarece exista in judete distincte automobile cu acelasi numar. O entitate poate avea mai multe atribute cheie, fiecare dintre acestea formand ceea ce numim o cheie candidata. Astfel, pentru studentii unei universitati avem cheile candidate: cod numeric personal, serie si numar CI, numar matricol. Fiecare atribut al unei entitati tip are asociat un set de valori, numit si domeniu, ce specifica valorile posibile pe care atributul le poate lua. Ex:varsta unui angajat (16 - 70 ani), cnp (13 caractere), serie CI (2 caractere).. Matematic, atributul A al entitatii tip E poate fi definit ca o functie A : E-->P(V) Valoarea atributului A pentru entitatea e, se va nota ca A(e). Pentru un atribut simplu A(e) este o valoare cu un singur element, un atribut este null cand nu are valoare aplicabila. BD_2 10 Pentru a se distinge, atributele compuse vor fi reprezentate intre paranteze. Se poate face prima descriere a modelului conceptual COMPANIE O entitate tip DEPARTAMENT avand 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 posibile atribute 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 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). BD_2 11 Relatii tip (asocieri) O relatie tip (notata R) intre n entitati tip E1,E2,...,En este o asociere intre aceste entitati tip. O relatie instanta ri este un membru al relatiei tip si statueaza o asociere intre instante ale entitatilor tip. 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 la relatie. Daca relatia se stabileste intre elementele aceleiasi entitati se spune ca s-a stabilit o relatie recursiva. Ca exemplu, relatia SUPERVIZOR se stabileste intre angajati si supervizor, relatie in care ambele instante sunt membrii al aceleiasi entitati. Restrictia de cardinalitate este marcata de numarul relatiilor instanta la care o entitate poate sa participe. Se simbolizeaza prin (m:n). Astfel exista relatii (0:1), (0:N), (1:1), (1:N), (M;N). Restrictia de participare specifica o conditie de existenta a unei relatii. Pot exista restrictii de participare partiala sau totala. BD_2 12 Model E-R Modelul pentru BD Companie Ini Nume Ssn Numar Nume Pren Nume Loc Adresa Salariu (1.1) (4.N) ANGAJAT Lucreaza DEPARTAMENT Sex (0.n) (1.1) (0.n) Dat_n (0.n) (1.n) Manager Ore Supervisor (0.n) (1.n) Control Relatie Lucreaza_la (1.n) (1.n) (1.1) Nume INTRETINUT Nume PROIECT Relatie Dat_n Numar Sex Loc BD_2 13 Schema relationala conceptuala ANGAJAT (Nume, Ini, Pren, Ssn, Dat_Na, Adr, Sex, Salariu, Sssn, D_Nr, S_ci, Nr_ci, Marca) DEPARTAMENT(Dep_Nume, Dep_Nr, Dep_location, Dep_Manager, Dat_Inc_Manager) PROIECT(P_Nume, P_Nr, P_Loc, Dep_Nr) LUCREAZA_LA(A_Ssn, P-Nr , Ore) INTRETINUT(A_Ssn , I_Nume, Sex, Ssn_i, Data_N, Relatie) BD_2 14 Obs: 1. S-a creat cate o relatie pentru fiecare entitatre tip 2. Nu s-a decis inca ce se intampla cu atributele compuse 3. Cheile candidate sunt subliniate 4. La modelarea relatiei pentru fiecare entitate se modeleaza, daca este posibil si asocierile la care participa 5. Atentie la asocierea ANGAJAT – PROIECT 6. La rafinarea schemei conceptuale pot sa apara atribute noi (mai ales de descriere) 7. Atentie la participare si cardinalitate BD_2 15 Stocarea datelor, modalitati de acces BD_3 1 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 (memoria interna). stocarea secundara se refera 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 a BD: volum prea mare pentru a fi stocate in memoria principala; datele trebuie sa ramana dupa intreruperea sursei de alimentare, adica au caracter permanent; costul pe unitatea de informatie este mult mai mic; poate fi asigurata transportabilitatea intre mai multe masini BD_3 2 Disc magnetic (organizare) Informatia este stocata pe suprafata discului pe cercuri concentrice cu diametre distincte numite piste (track). La discurile compacte pistele de aceeasi raza formeaza un cilindru. Fiecare pista este impartita in mai multe blocuri, ce apartin unui sector. Marimea unui bloc este cuprinsa uzual intre 512 si 4096 octeti functie de sistemul de operare aferent. Separarea blocurilor se face in spatii de lungime fixa prin gap interbloc, ce contine informatii speciale de control scrise in momentul initializarii (formatarii) discului. Orice referire la informatiile stocate pe disc este o referire la un bloc. Adresa blocului este obtinuta prin combinarea indicativului suprafetei, indicativului pistei (intr-o suprafata) si indicativului blocului (in cadrul unei piste). Accesul la informatiile de pe disc se face prin citirea unui bloc si aducerea acestuia in memoria principala intr-o zona contigua numita si buffer de intrare-iesire (I/O). Cand mai multe blocuri se transfera in memoria interna, existenta mai multor buffere face ca viteza de transfer sa creasca. BD_3 3 Daca blocurile sunt contigue (alocare contigua) se consuma un timp de 15 - 60 ms pentru accesul la primul bloc, celelalte blocuri citindu-se in 1 -2 ms fiecare. Sistemul de calcul utilizat in baze de date are performante cu atit mai bune cu cat timpul de acces la informatia stocata pe disc este mai mic. Cand mai multe blocuri se transfera in memoria interna, existenta mai multor buffere face ca viteza de transfer sa creasca. In timpul citirii sau scrierii unui bloc unitatea centrala poate procesa alt bloc deja transferat in memoria interna. Prelucrarea paralela este posibila datorita existentei procesorului I/O pentru disc, ce poate lucra independent de unitatea centrala. Obs. Din aceasta scurta descriere rezulta ca performantele oricarei aplicatii de baze de date sunt afectate de accesul la memoria externa. BD_3 4 Concluzie: Este foarte important ca numarul operatiilor de I/O pentru accesul la date sa fie cat mai redus. Alocarea blocurilor Alocare contigua (blocuri de pe acelasi cilindru sau cilindrii vecini) Alocarea cu legaturi (pentru stocarea fisierelor secventiale in sisteme de operare) – FAT Alocare indexata (cu blocuri index pe diverse niveluri – structura arborescenta) metoda caracterizata de existenta unor pointeri de inlantuire a blocurilor Alocare bazata pe HASH Pointer = functie_hash(camp_hash) si indica grupul in care se gaseste inregistrarea. Utilizata atat la stocare cat si la citire BD_3 5 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 inregistrarii si a blocurilor. BD_3 6 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. Obs: 1. O tehnica uzuala este definirea unor blocuri logice formate din mai multe blocuri fizice contigue. 2. Blocurile nu sunt complet ocupate BD_3 7 Metode de cautare 1. Cautare liniara (secventiala) specifica cautarii dupa chei de acces neordonate 2. Cautare dihotomica. (cautare prin segmentare – specifica cautarii dupa chei de acces ordonate) Cautare binara. Se considera un fisier secvential cu N inregistrari, ale carui chei sint in ordine crescatoare k1 < k2