curs baze de date

62
08/01/ 14 1 1 Introducere in baze de date 2 Cuprins Cateva definitii; Exemple de sisteme de gestiune a bazelor de date; Ciclul de viata a unui produs informatic; Tehnici de comunicare Domeniul informatiei 3 Cateva definitii Aplicaţie (application): un sistem care oferă o mulţime de servicii pentru rezolvarea unor probleme ale utilizatorilor (ESI) Produs soft (software product): set complet de programe, proceduri de operare, documentaţia şi datele aferente, destinate a fi livrate utilizatorului (ISO 9000-3) Program (program, computer program): o mulţime de instrucţiuni, executate de un calculator şi destinate rezolvării unei anumite probleme. 4 Cateva definitii Sistem (system): reprezentarea a ceva ce este identificabil, evoluează şi acţionează asupra unui mediu, în concordanţă cu un anumit obiectiv impus de mediu (Euromethod Dictionary); o colecţie de componente organizate pentru a îndeplini o funcţie specifică sau o mulţime de funcţii specifice (IEEE Std 610.12-1990)

Upload: marian-hodorog

Post on 10-Nov-2015

242 views

Category:

Documents


1 download

DESCRIPTION

Curs baze de date

TRANSCRIPT

1 Introducere in baze de date2 Cuprins Cateva definitii; Exemple de sisteme de gestiune a bazelor de date; Ciclul de viata a unui produs informatic; Tehnici de comunicare Domeniul informatiei3 Cateva definitii Aplicaie (application): un sistem care ofer o mulime de servicii pentru rezolvarea unor probleme ale utilizatorilor (ESI) Produs soft (software product): set complet de programe, proceduri de operare, documentaia i datele aferente, destinate a fi livrate utilizatorului (ISO 9000-3) Program (program, computer program): o mulime de instruciuni, executate de un calculator i destinate rezolvrii unei anumite probleme.4 Cateva definitii Sistem (system): reprezentarea a ceva ce este identificabil, evolueaz i acioneaz asupra unui mediu, n concordan cu un anumit obiectiv impus de mediu (Euromethod Dictionary); o colecie de componente organizate pentru a ndeplini o funcie specific sau o mulime de funcii specifice (IEEE Std 610.12-1990) Sistem informaional (information system): aspect al unei organizaii care produce, folosete i distribuie informaie. El include resursele umane, tehnice i financiare ale organizaiei. Prin excelen, este un sistem uman care poate conine un subsistem informatic care automatizeaz anumite elemente ale sistemului informaional (Euromethod Concepts Manual 2 - Deliverable Model, 1994)5 Cateva definitii

Soft de aplicaie (application software): soft destinat s acopere nevoi specifice ale utilizatorului; de exemplu soft pentru evidena studenilor, salarii sau controlul proceselor (IEEE Std 610.12-1990) Baza de date:O baza de date este o lista organizata de informatii continand in mod uzual siruri de caractere, numere sau alte tipuri de informatiiO multime organizata de date.6 Cateva definitii Sistem de gestiune a bazelor de date(SGBD): componenta specifica a calculatorului gazda, care inglobeaza functii de organizare, memorare si regasire a datelor folosind formate de memorare specifice7 Exemple de SGBD-uri xBase ( Dbase, Fox Pro, Visual Fox) Access Oracle Sybase Informix Etc.8 Clase de programeClasificri ale programelor dup funcionalitate general:soft de baz i soft aplicativ dup domeniul de aplicareaplicaii de gestiune, aplicaii pentru calcule tiinifice, aplicaii de CAD/CAM (Computer Aided Design - Computer Aided Manufacturing), aplicaii multimedia, aplicaii bazate pe Internet, etc. dup tipul prelucrrilor efectuate dup tipul i intensitatea legturilor cu mediul extern9 Clase de programe (continuare)

Clasificri ale programelor - tipuri majore de prelucrareprelucrare batch (pe loturi): aceeai transformare efectuato singur dat pentru un set de date de intrareprelucrare continu, on-line: transformarea datelor deintrare se execut de fiecare dat cnd se modific acesteaprelucrare distribuit: transformarea datelor implic folosirea de sisteme multiprocesor sau de reele distribuite de calculatoare, locale sau dispuse pe o arie geografic larg; este caracterizat de laten n comunicaie10 Clase de programe (continuare)Clasificri ale programelor dup tipul i intensitatea legturilor cu mediul extern aplicaii cu interfa interactiv: menu-driven applications;utilizatorul selecteaz o opiune dintr-un meniu aplicaii de simulare dinamic: simuleaz obiecte evolutive din lumea realsimularea traficului ntr-o intersecie; simulatoare de zbor aplicaii n timp real: modeleaz sisteme dominate de restricii severe de timpsupravegherea i controlul unui reactor nuclear; pilot automat programe de gestiune a tranzaciilor: memorare, actualizare i regsire de date, inclusiv acces concurent din diverse locaii fizicesistemul integrat de gestiune al unei firme (compartimente diferite, baze de date generale, acces concurent din toate compartimentele, drepturi de acces bine precizate, etc.).11 Clase de programe (continuare)Clasificri ale aplicaiilor de gestiune (Flaaten, 1989) sisteme de gestiune a tranzaciilor (transaction processing systems, TPS) sisteme informatice pentru management (management information systems) sisteme de sprijin pentru decizii (decision support systems)

sisteme de automatizare a biroului (office automation systems) sisteme departamentale (departamental systems) sisteme expert (expert systems) sisteme informatice pentru conducere (executive information systems, EIS)12 Clase de programe (continuare)Sisteme de gestiune a tranzaciilorcalcul de salarii, facturareieri - sisteme batch - operatori introducere dateazi - sisteme on-line - funcionari specializai, care trebuie s ia deciziibaza de date este actualizat continuusistem integrat de prelucrare a tranzaciilor, baz de date integrat13 Clase de programe (continuare)Sisteme informatice pentru managementbuget, contabilitateieri - sisteme batch - rapoarte voluminoasecutarea manual a informaieiazi - sisteme on-line - rapoarte la cerere, interogri personalizatesuporturi diferite pentru rapoarte: hrtie, fiier pe suport magnetic, ce se poate transmite celor interesai prin reeaua de comunicaiedatele se preiau n bun msur de la sistemele de gestiune a tranzaciilorde obicei preluarea nu se face on-line, ci la intervale prestabilite de timp14 Clase de programe (continuare)Sisteme de sprijin pentru deciziiderivate din sistemele informatice pentru managementofer analize variate ale acelorai date, fr efort de

programareprezentare tabelar sau grafic a datelorefectueaz corelaii i analize de tendineconin instrumente de modelare pentrudecizii tactice (datele se preiau din sistemele informatice pentru management)decizii strategice (datele se preiau din sistemele informatice pentru conducere15 Clase de programe (continuare)Sisteme de automatizare a birouluiiniial: instrumente de prelucrare a documentelor,materializare a metafora desktop-ului (biroului de lucru)pe sistemele cu interfa grafic moderneconin conin instrumente de comunicare ntre posturile de lucruajut la estomparea diferenei dintre prelucrarea tranzaciilor (efectuat de funcionari) i prelucrrile specifice muncii de secretariat.includ:procesoare de texteprocesoare de tabeleinstrumente de comunicare, mesagerie, pot electronicinstrumente de navigare n Internet.16 Clase de programe (continuare)Sisteme departamentalede regul o mixtur ntre sisteme de prelucrare a tranzaciilor, sisteme de sprijin pentru decizii i sisteme de automatizare a birouluidomeniul de aciune: un singur departament al unei organizaii (sau o filial a acesteia aflat la distan fa de sediul central)sunt conectate la sistemele organizaiei, ns au i funciuni specificede obicei cnd departamentul are cerine de prelucrare i

memorare a datelor care nu sunt incluse n sistemul informaional al organizaiei, nefiind specifice acesteia n ansamblul su.tendina modern: integrarea sistemelor departamentale n intranetul organizaieiexemplu: sistemul laboratorului unui spital.17 Clase de programe (continuare)Sisteme expert(de obicei) sisteme bazate pe reguli care ajut utilizatorii nespecialiti s efectueze activiti (s obin expertiz) n domenii n care n-au pregtirea necesar.tehnologia folosit: inteligena artificialscopul: rspndirea cunotinelor deinute de un numr mic de experischem de reprezentare a cunotinelorbaz de cunotine dotat cu un motor de inferencunotinele se reprezint prin fapte, reguli, aseriuni.domenii predilecte de aplicare:medicina,configurarea hard a calculatoarelor,analiza compuilor chimici, etc.18 Clase de programe (continuare)Sisteme informatice pentru conduceredestinate conducerii executive a organizaiei (vrfului piramidei ierarhice).ofer acces conductorilor labaze de date externe organizaiei (despre ramura industrial respectiv, competiie, preuri, inovaii tehnice)baze de date interne organizaiei (la nivel de informaie de sintez).informaia este prezentat ntr-o manier sintetictablou de bordtabele

grafice19 Ciclul de via a unui programCiclu de vianatereapare ideea (necesitatea) realizrii programului i se aprob dezvoltarea luicreteredezvoltareamaturitateinstalareaexploatarea curentntreinereabtrnee (vrsta a III-a)exploatare cu problememoartescoaterea din exploatare20 Ciclul de via a unui program (cont.)Fazele ciclului de viadefiniia (munca de echipa - informatician si client)ncepe cnd este formulat problema de rezolvatpune accentul pe CE face programulCE informaie se prelucreazCE funcii sau performane trebuie s aib sistemulCE interfee cu alte sistemeCE restricii de proiectare existCE criterii de validare sunt necesaredezvoltarea ( sarcina programatorul)pune accentul pe CUM trebuie fcut programultestarea (munca de echipa - informatician si client)exploatarea (client - asistat de informatician)ntreinere21 Ciclul de via a unui program (cont.)

Paii fazei de definiie analiza de sistem (ingineria de sistem)stabilete rolul pe care-l joac programul n ansamblul sistemului informaional al organizaiei. planificarea proiectuluianaliza riscurilor, estimarea costurilor i alocarea resurselor necesare pentru dezvoltare, definirea sarcinilor de lucru i a orarului de derulare al proiectului. analiza cerinelordefinirea detaliat a informaei care se prelucreaz, specificarea clar a funciilor pe care trebuie s le execute programul i precizarea restriciilor impuse asupra acestuia.22 Modelul cascad

23 Modelul V

24 Prototipizarea

25 Prototipizarea (cont)Avantajeimplicarea utilizatorului n aproape toate activitileo mai bun comunicare ntre analist i utilizatorscopul crerii prototipului este completarea analizei cerinelorexistena mediilor vizuale sprijin prototipizarease pot realiza prototipuri complet funcionale i eficienteDezavantajeutilizatorul percepe prototipul ca fiind produsul finalrealizarea prototipului se face cu anumite compromisuri de implementare (mediu de implementare, algoritmi, simplificarea funcionalitii)etapa (6) pleac de multe ori de la zero26 Dezvoltarea iterativ i incremental (modelul spiral,Boehm)

27 Dezvoltarea iterativ i incremental (modelul spiral, Boehm)Avantajeabordare evoluionistajut la nelegerea riscurilor i la identificarea modalitilor de inere sub control a acestoraprototipizarea este folosit ca mecanism de reducere a riscurilorciclul clasic de via este ncorporat ntr-un cadru iterativ, care reflect mai bine lumea realDezavantajeanaliza riscurilor este activitatea criticatenie acordat riscurilor tehnice n toate etapele proiectuluidac un risc major nu este descoperit28 AnalizaEtape (sarcini) (1) recunoaterea problemei (2) evaluarea i sinteza (3) modelarea (4) specificarea (5) revizuirea29 Tehnici de comunicareProcesul de comunicarepri:clientul - are o problem care trebuie rezolvat prin folosirea calculatoruluianalistul - ncearc s nceap rezolvarea cererii clientuluiscopcolectarea de informaii despre sistemul existent i despre ceea ce se dorete a se pune n locul lui

Tehnici de comunicare(1) interviul(2) modelul propus de Weinberg(3) tehnica FAST(4) alte tehnici de comunicare i colectare de informaii30 Tehnici de comunicare (cont)(1) interviulncercare sistematic de a colecta informaie de la o persoanpai - derulare(i) pregtireafamiliarizare cu domeniul problemei, organizaiei, proiectului(ii) planificarea i orarullist de ntrebri, persoane, data, ora, locul(iii) nceputul i terminareaprima (ultima) impresie conteaz, atmosfer relaxatprezentare (nceput), rezumat (sfrit)(iv) desfurarea propriu-zis a interviului(v) (eventuale) interviuri ulterioare pentru clarificri31 Tehnici de comunicare (cont)(2) modelul propus de Gause-Weinberg - structurarea ntrebrilor pe care analistul le pune clientului n trei grupuriprimul grup de ntrebri: fr legtur cu contextul problemei de rezolvatscopuri:nelegerea n mare a problemei, oamenilor, naturii dorite a soluieiobinerea justificrii continurii colaborrii cu clientulsunt axate pe client, obiectivele generale i beneficiile pe care le poate aduce soluia:(i) ce este n spatele acestei comenzi pentru noul program?

(ii) cine va folosi programul?(iii) care va fi beneficiul economic al unei soluii bune?(iv) exista alternative de rezolvare a problemei?al doilea grup de ntrebriscopurio mai bun nelegere a problemei de ctre analistpermit clientului s formuleze percepiile sale asupra soluieiexemple(i) cum ai caracteriza o buna ieire?(ii) ce dificulti ar ntmpina (ar produce) o asemenea soluie?(iii) poi s-mi arai mediul n care ar fi folosit soluia?(iv) exist anumite aspecte particulare privind performanele sau restriciile care ar putea afecta modul de abordare a rezolvrii?al treilea grup - metantrebri se refer la beneficiile ntlnirii client-analist:(i) suntei persoana potrivit sa rspundei la aceste ntrebri?(ii) rspunsurile dumneavoastr sunt oficiale?(iii) ntrebrile mele au fost pertinente fa de dificultile care le avei?(iv) am pus prea multe ntrebri?(v) mai avei pe cineva aici care mi-ar putea da informaie suplimentar?(vi) mai e cineva de cine ar trebui s v ntreb?32 Tehnici de comunicare (cont)(3) tehnica FAST - Facilitated Application SpecificationTechniques, Zahniser, 1990 abordare n echip a colectrii cerinelor, din care fac parte analiti i clieni ce vor lucra mpreun la(1) identificarea problemelor de rezolvat(2) propunerea elementelor soluiei

(3) negocierea diverselor alternative de rezolvare(4) specificarea unui set preliminar de cerine. ntlnirea FASTse desfoar pe teren neutruregulile de pregtire i de participare sunt stabilite n prealabil i sunt aduse la cunotina tuturor participaniloratmosfer degajat, constructivelemente(i) o agenda de desfurare(ii) un moderator (facilitator) poate fi client, dezvoltator sau cineva neutru(iii) un mecanism de definire (foi de lucru, cartele, table, etc).scenariu tipic - momente importante:(a) ntlnirile iniiale,(b) pregtirea ntlnirii i(c) desfurarea propriu-zis a acesteia.33 Tehnici de comunicare (cont)(4) alte tehnici de comunicare i colectare de informaii chestionarelefolosite mpreun cu interviurile (nainte de planificarea acestora) sau independent, fr a se recurge la interviurisunt utile atunci cnd intervievatul este prea departese combin de obicei cu discuii prin telefon i cu schimb de scrisori (mesaje) observaia directare ca obiect sistemul existent, punnd accentul pefuncionarea acestuia,rolurile ndeplinite de diveri actori n sistem,punctele bune i rele ale saleare avantajul contactului direct cu realitatea tehnica eantionriise folosete cnd numrul de oameni care trebuie intervievai (chestionai, observai) este prea mare

se selecteaz un eantion, folosind metodele consacrate din statistictrebuie acordat atenie reprezentativitii eantionului34 Domeniul informaieiDomeniul informaiei - puncte de vedere(a) fluxul informaional(b) coninutul informaiei(c) structura informaieiFluxul informaional caracterizeazcirculaia informaiei n sistemmaniera n care se modific datelecontrolul la fiecare mutare a lor n sistem:35 Domeniul informaieiConinutul informaieise refer la semantica informaiei, grupnd-o n tipuri de entitieste definit de datele individuale i elementele de control care formeaz mpreun un element mai mare (complex) de informaie - entitate sau tip de entitate36 Domeniul informaiei (cont)Structura informaieidefinete organizarea intern a elementelor de date(atribute) i de control dintr-un tip de entitatestructura ilustreaz(i) legturile unui entati cu alte entitati,(ii) cte structuri diferite exist (toat informaia este coninut ntr-o singur structur sau exist structuri distincte?Termenul de structur a datelor (structur de date) este folosit la proiectare i implementare.

1 Proiectarea logica a datelor2 Cuprins Modelul entitate relatie, Modelarea conceptuala a datelor; Modele logice de date; Caracteristicile unui model de date corect3 Pai n modelarea datelor Modelarea datelor - puncte de vedere(a) aria de cuprindere a modeluluimodel de date al organizaieimodel de date al unei arii de activitate a organizaieimodel de date al unei aplicaii(b) nivelul de abstractizare a modeluluimodel conceptual de date: folosete numai elemente din domeniul problemeimodel logic de date: folosete i elemente din domeniul soluieimodel fizic de date4 Pai n modelarea datelorModelarea datelor - puncte de vedere(c) etapa din ciclul de dezvoltare n care se elaboreazmodelulingineria de sistem- modele conceptualemodelul de date al organizaieimodelul de date al ariei de activitateanaliz - modele conceptualemodelul de date al contextului aplicaieimodelul conceptual de date al aplicaieiproiectarelogic - modelul logic de date al aplicaiei

fizic - modelul fizic de date al aplicaiei5 Tipuri de modele Dupa modul de organizaremodelul entitate - relatiemodelul orientat obiect6 Modelul entitate-relaie Construcii folosite (concepte, termeni) entitate: persoane, locuri, obiecte, evenimente, concepte din mediul utilizatorului pentru care organizaia dorete s dein dateatribut:proprietate sau caracteristic a unui tip de entitate care prezint interestoate instantele unui tip de entitate E au aceleai atributevalorile unui atribut difer de la o instan a lui E la alta relatie Se reprezint grafic prin diagrama entitate-relaie7 Atribute Clasificarea atributelor unui tip de entitateatribut cheie: identific o instan a entitiiatribut non-cheie Tipuri de atribute cheiecheie candidat: identific unic o instan a entitiicheie primar: cheia candidat ca identificator pentru tipul de entitatecheie surogat: atribut artificial pe post de cheie primar Stabilirea cheii primare CP a unei entiti E(i) cheia candidat a lui E care nu-i modific valoarea pe toat durata de via a oricrei instane(ii) pentru orice instan a lui E, atributele lui CP au valori valide i non-nule(iii) dac CP are prea multe atribute, se nlocuiete cu o cheie surogat

8 Relaie Gradul unei relaiinumrul de tipuri de entiti care particip n relaieclasificarea relaiilor dup gradul lor:unare sau recursive (de gradul 1)binare (de gradul 2)ternare (de gradul 3) Cardinalitatea unei relaiide la entitatea A la entitatea B: numrul de instane ale entitii B asociate unei instane a entitii Ade la entitatea B la entitatea A: numrul de instane ale entitii A asociate unei instane a entitii B9 Model conceptual de date Identificarea i definirea elementelor din domeniul problemei pentru care trebuie memorate date Identificarea i definirea relaiilor dintre acestea10 Modelarea conceptual a datelor folosind modelul E-R(1) modelarea entitilor i relaiilorentitate printeentitate dependent (slab)(2) modelarea atributelor cu valori multiplese transform n entiti noi(3) modelarea datelor dependente de timpatribute ce se modific n timp11 Modelarea logica a datelorAre ca scop producerea unui model adecvat pentru implementare, bazat pe modelul conceptual, insa: mai detaliat mai precis mai bine structurat fara entitati redundante

ad-hocfiecare aplicaie are propriul su model de date ierarhicsuccesul sistemului soft pentru misiunile APOLLO (IBM + NASA)structura arborescenta reeageneralizare a modelului ierarhicCODASYL - standard neacceptat relaionalalgebra relaiilorSQL - nivel nalt, neprocedural orientat pe obiecteanii 90aplicaii specifice CAD, GIS13 Modelul relaionalCaracteristicireprezint datele n tabele (relaii) bidimensionale corespunde entitii din modelul E-Rcoloane - atributelinii - instanecelule - intersecii de linii i coloanedefinetestructura datelor - modul de organizare a datelor n tabeleoperaiile de manipulare a datelor - ce operaii se folosesc pentru aintegritatea datelor - precizeaz regulile specifice aplicaiei care ntrein consistena datelor, la operaiile de manipulare

14 Modelul relaional (cont). Proprietile relaiilor(1) atomicitatea celulelor: atributul aferent coloaneinu poate avea mai multe valorinu poate fi grup repetitiv (valoarea sa nu se descompune)(2) omogenitatea coloaneloro coloan corespunde unui atribut(3) unicitatea liniilornu exist dou linii identiceeste asigurat de un subset de coloane, care formeazcheia primartoate coloanele ce formeaz cheia primar trebuie saib valori valide(4) ordinea nedefinit a coloanelorfiecare coloan este identificat prin numele su, nu prin poziia din relaie(5) ordinea nedefinit a liniilorfiecare linie este identificat prin cheia primar, nu prin poziia sa n tabel15 Relaii bine structurate i slab structurateDefiniii informalerelaie bine structuratconine o cantitate minim de redundaninserarea, modificarea i tergerea de linii n/din relaie se fac fr erori i fr a produce inconsistenrelaie slab structuratnu este bine structurat16 Relaii bine structurate i slab structurateDefiniiiinconsisten a unei relaii: linii diferite ce corespund aceluiai student au valori diferite pentru atributele cu valoare unic

operaie de actualizare a unei relaii: inserarea unei linii noi, modificarea unei linii existente i tergerea unei linii existenteanomalie: eroare i/sau inconsisten produs prin operaiile de actualizare a unei relaii17 Tipuri de anomalii de inserareregul de inserare: toate coloanele care formeaz cheia primar trebuie completate de tergereregul de tergere: tergerea unei linii dintr-o relaie nu trebuie s produc pierdere colateral de informaie de modificareregul de conservare a consistenei: atributele ce depind de o parte a cheii primare (subcheie) trebuie s aib aceeai valoare n toate liniile cu subcheia respectiv18 Ciclul de via al bazelor de date relaionale

1 Proiectarea fizica a datelor2 Proiectarea fizica a datelorObiectivimplementarea bazelor de date sub forma unei mulimi de nregistrri, fiiere, indeci i alte structuri de date care:asigure cerinele de performan dorites conserve integritatea BDs asigure securitatea i recuperabilitatea informaieiElementele cunoscute (datele de intrare) sunt:(a) structura logic a datelorexprimat prin modelul logic de date(b) cerinele de prelucrare ale utilizatorilor(c) caracteristicile hard i soft ale mediului3Cerinele de prelucrare ale utilizatoriloridentificate la analiza cerinelorse refer la(i) dimensiunea i frecvena de utilizare a BD(ii) timpi de rspuns(iii) securitate(iv) salvri(v) recuperare din situaii de eroare(vi) arhivareCaracteristicile hard i soft ale mediului n care se face implementareamaina fizicsistemul de operareSGBD-ul alessoftul de comunicaie4 Componentele proiectului fizic de BD

(1) analiza volumului i utilizrii datelor(2) strategia de distribuire a datelor(3) organizarea fiierelor(4) indexarea(5) constrngerile de integritate5 Analiza volumului i utilizrii datelorScop: estimareadimensiunii (volumului) datelorsabloanelor de utilizare a bazei de dateEstimrile de volum servesc laselectarea perifericelor de stocareestimarea costurilor de stocareabloanele de utilizare servesc lastabilirea organizrii fiierelor i a metodelor de accesplanificarea folosirii indecilorplanificarea strategiei de distribuire a datelor6 Analiza volumului i utilizrii datelor (cont)Analiza volumuluiEstimrile de volum se obin prin consultarea utilizatorilorAnaliza utilizrii datelorSarcini:(a) identificarea tranzaciilor i prelucrrilor majore asupra bazelor de date(b) elaborarea hrii tranzaciei i a formularului de ncrcare pentru fiecare tranzaciePaiidentificarea tranzaciilorpentru fiecare tranzacie i proces se determinmodalitile de accesare a BDfrecvena de utilizare a tranzaciei/procesuluise elaboreaz formularul de analiz a tranzaciei

7 Strategia de distribuire a datelorStrategii de distribuire a datelordup strategia de distribuirecentralizatpartiionatreplicathibridclient-serverBD memorat pe mai multe calculatoareBD distribuit: BD logic este distribuit fizic pe mai multe calculatoare, conectate n reeaBD descentralizat: BD logic este distribuit fizic pe mai multe calculatoare neconectate ntre eleStrategia centralizatBD pe un singur calculatoravantajesimplificarea implementriidezavantajedate inaccesibile utilizatorilor aflai la distancosturi de comunicare mariaplicaiile client nu funcioneaz cnd BD nu este operaional8 Strategia de distribuire a datelor(cont)Strategia partiionatBD este mprit n partiii disjuncte numite fragmentefiecare fragment este memorat ntr-o locaie (calculator)avantajedatele sunt mai aproape de utilizatorii localicriteriul de partiionaredezavantaje

costuri de comunicare mari pentru datele din alt locaieStrategia cu replicareo copie complet a BD (numit replic) este memorat n fiecare locaie (calculator)avantajeminimizarea timpului de accesaredezavantajeproblema sincronizrii repliciloro actualizare dintr-o locaie trebuie operat n toate replicile)9 Strategia de distribuire a datelor(cont)Strategia hibridcombinaie ntre strategia partiionat i cea cu replicareBD este mprit mfragmente critice: se memoreaz n mai multe locaiifragmente non-critice: se memoreaz ntr-o singurlocaieavantajeproblema sincronizrii are complexitate mai micdezavantajesincronizarea fragmentelor criticeStrategia client-serverreea de calculatoare: mainiserverede fiiere (BD): servicii de accesare a datelorde aplicaii: logica aplicaieiclieni: prezentarea datelor, interaciunea cu utilizatorulavantajemaini specializatesepararea funcionalitiintreinere uoardezavantaje

comunicarea ntre maini - costurincrcarea mainilor10 Organizarea fiierelorDefinitie: Tehnic de aranjare fizic a nregistrrilor unui fiier aflat n memoria externOrganizarea secvenialnregistrrile din fiier se memoreaz n ordinea valorii cheii primareOrganizarea indexatnregistrrile din fiier se memoreaz secvenial sau nesecvenialfiecare nregistrare are o poziie bine determinat n fiier,sistemul de gestiune a fiierelor dispune de o instruciune de poziionare,la deschiderea fiierului f se creeaz un index care permite localizarea unei nregistrri dup valoarea cheii primareindexul este o tabel sau o alt structur de date care este folosit pentru determinarea locaiei (nregistrrii) unei linii din fiier (tabela de nregistrri) care satisface anumite condiii11 Organizare indexat secvenial indexat (index-sequential)nregistrrile sunt memorate n fiier secvenial, n ordinea valorii cheii primareindexul se numete index simplu sau index bloc nesecvenial indexat (index-nonsequential)fiierul se mai numete fiier master (master file)nregistrrile din fiierul master nu sunt memorate n ordinea valorii cheii primareindexul se numete index inversat i este o tabel ordonat de perechi de forma (val_cheie, recn), criteriul de ordonare fiind val_cheie selectiv (selective, random)

adresa fiecrei nregistrri din fiierul master se determin pe baza unui algoritm de dispersare (hashing), care folosete o funcie de dispersare (hashing function)funcia de dispersare convertete valoarea cheii la o poziie de nregistrare din fiierul master12 Index Indexare dup cheia primartabela T va conine valori distincte pentru fiecare val_cheie Indexare dup atributele non-cheietabela T conine perechi de forma (valoare_atribut, recn)tabela T este ordonat dup valoare_atribut Organizarea tabelei de indexstructur liniar i ordonat dup val_cheie:list liniarordonat, tablou ordonatstructur arborescent, B-arbore13 Criterii folosite la analiza i stabilirea modului de organizare a unui fiier(i) accesul rapid n regsirea informaiei din fiier (ii) puterea sporit de prelucrare a tranzaciilor (iii) folosirea eficient a suportului(iv) protecia la incidente sau pierderi de date(v) minimizarea nevoii de reorganizare(vi) adaptarea la creterea volumului fiierului(vii) protecia datelor din fiier fa de accesul neautorizat14 Cazurile in care se recomanda creerea unui fisier index Este cheie primara, cheie straina sau cheie surogat Coloana respectiva este utilizata frecvent in interogari Coloana contine un interval mare de valori Coloana contine un numar mare de valori nule

15 Reguli in definirea unui tabel Numele tabelei si numele coloanelor trebuie sa inceapa cu litera si sa aiba lungimea maxima de 30 Numele poate contine numai A-Z, a-z, 0-9,_. Numele tabelului trebuie sa fie unui in cadrul bazei de date pe care o creati Numele nu poate fi un cuvant rezervat Nu se face deosebire intre literele mici si mari16 Componentele unui table

17 Tipuri de date intr-o baza de date Numeric - pentru numere cu virgula fixa si mobila Caracter - pentru siruri de caracter de lungime fixa minim 1 maxim 255 caractere intr-un sir Logic ( Boolean )- are valoarea True sau False Date - se foloseste pentru memorarea datelor caracteristice Time ( DateTime) - se foloseste pentru stocarea datelor de formatul timp respectiv format combinat data timp Blob (Memo)- se foloseste pentru stocarea sirurilor de caractere de lungime variabila, posibil mai mari de 255 sau pentru stocarea de imagini18 Limbajul SQLA fost produs de catre ANSI in 1986 ca limbaj standard de manipulare a datelor.Din 1987 nici un SGBD relational nu poate fi comercializat fara o interfata SQL1992 revizuirea limbajului SQL de catre ANSISGBD-urile actuale inglobeaza limbajul SQL(92), acesta fiind imbogatit cu functii da catre unii producatori19 Crearea unui tabelCREATE TABLE numele tabelului[( nume_coloana tip de data (lungime), nume_coloana tip de data (lungime)

..nume_coloana tip de data (lungime))]20 Crearea unui tabel indexCREATEA INDEX numeindex ONnume_tabela ( coloana[, coloana])1 Operatii asupra bazelor de date cu ajutorul limbajul SQL2 Algebra relationala!A fost introdusa de Codd ( anii 70) ca o multime de operatii formale actionand asupra unor relatii si producand ca rezultat alte relatii.!Operatori algebrei relationale:SELECTUNIONPROJECTINTERSECDIVISIONJOIN3 Limbajul SQL!A fost produs de catre ANSI in 1986 ca limbaj standard de manipulare a datelor.!Din 1987 nici un SGBD relational nu poate fi comercializat fara o interfata SQL!1992 revizuirea limbajului SQL de catre ANSI!SGBD-urile actuale inglobeaza limbajul SQL(92), acesta fiind imbogatit cu functii da catre unii producatori4 Crearea unui tabelCREATE TABLE numele_tabelului[( nume_camp tip_de_data (lungime), nume_ camp tip_de_data (lungime),..nume_ camp tip_de_data (lungime)]5 Crearea unui tabel index CREATEA INDEX numeindex ON nume_tabela ( camp[, camp])6 Manipularea unei baze de date

!INSERT!UPDATE!DELETE7 Inserarea unei inregistrari intr-o tabelaINSERT INTO numetabela [(numecamp[,numecamp])]VALUES (valoare[, valoare])Inserarea unei multimi de inregistrari dintr-o tabela in alta INSERT INTO numetabela [(numecamp[,numecamp])] SELECT [(numecamp[,numecamp])] FROM numetabela8 Modificarea unei inregistrari dintr-o tabela sau a unei multimi de inregistrariUPDATE numetabelaSET numecamp= valoare[,numecamp = valoare][WHERE conditie]Se modifica doar valorile aferente atributelor numecamp din inregistrarile care indeplinesc clauza WHERE9 Stergerea unei inregistrari dintr-o tabela sau a unei multimi de inregistrariDELETE FROM numetabela[WHERE conditie]Se sterge doar inregistrarile care indeplinesc clauza WHERE10 Interogarea unei tabeleSELECT [DISTINCT] {*|[numecamp, [numecamp]}FROM numetabela[, numetabela][WHERE conditie] [GROUP BY numecamp] [ORDER BY numecamp]11 Interogare simplaSELECT [DISTINCT] {*|[numecamp, [numecamp]}

FROM numetabelaSELECT - identifica campurile de selectie FROM - identifica tabela (sau tabelele) DISTINCT - elimina duplicatele12 Selectie conform unei conditiiSELECT [DISTINCT] {*|[numecamp, [numecamp]}FROM numetabela [WHERE conditie] [ORDER BY numecamp]Conditia - este o expresie booleana care poate avea urmatorii operanzi: ,=,, AND, OR, NOT, INORDER BY- specifica ordinea tabelului rezultat13 Functii SQL1 !Tipul caracterLOWERUPPERINITCAPCONCAT ( || )SUBSTRINSTRLPAD2 !NumericeROUNDTRUNCMOD!Pentru tipul dataSYSDATEADD_MONTHNEXT_DAYLAST_DAY

14 Interogarea mai multor tabele!EquijoinWHERE tabel1.camp=tabel2.campTabelul rezultat va contine inregistrari din ambele pentru care atributele de join au valori egale!OuterjoinWHERE tabel1.camp(+)=tabel2.camp sauWHERE tabel1.camp=tabel2.camp(+)Tabelul rezultat va contine inregistrari din tabela anexata cu operatorul (+), care nu apar in urma unei operatii equijoin15 Interogarea mai multor tabele(cont)!Self joinSe foloseste in cazul in care avem nevoie de join al unei tabele cu ea insasi.!NonjoinFiecare inregistrare dintr-un tabel cu fiecare inregistrare din celalalt tabel ( produs cartezian)16 Functii de grup!AVG!COUNT!MAX!MIN!SUM

17 SELECT imbricatSELECT [DISTINCT] {*|[numecamp, [numecamp]}FROM numetabelaWHERE expresie operator( SELECT [DISTINCT] {*|[numecamp, [numecamp]}FROM numetabela)18 SELECT imbricat(cont)Obs:! O subinterogarea trebuie inclusa intre paranteze! Selectul imbricat este obligatoriu operand de dreapta in conditia WHERE! nu se poate folosi clauza ORDER BY intr-un select imbricat! Exista subinterogari simple ( cu o singura inregistrare rezultata) sau subinterogari. Operatorii posibili sunt:simple: =,, multiple: ANY, IN, ALL=ANY IN