Sunteți pe pagina 1din 81

nvmntul profesional i tehnic n domeniul TIC Proiect cofinanat din Fondul Social European n cadrul POS DRU 2007-2013

Beneficiar Centrul Naional de Dezvoltare a nvmntului Profesional i Tehnic


str. Spiru Haret nr. 10-12, sector 1, Bucureti-010176, tel. 021-3111162, fax. 021-3125498, vet@tvet.ro

BAZE DE DATE Material de predare

Domeniul: Informatic Calificarea: Analist programator Nivel 3 avansat

2009

AUTOR: MARIANA VIOLETA CIOBANU profesor grad didactic I

COORDONATOR:

STNIC GIOVANNA MARIA - Profesor, grad didactic I

CONSULTAN:

IOANA CRSTEA expert CNDIPT ZOICA VLDU expert CNDIPT ANGELA POPESCU expert CNDIPT DANA STROIE expert CNDIPT

Acest material a fost elaborat n cadrul proiectului nvmntul profesional i tehnic n domeniul TIC, proiect cofinanat din Fondul Social European n cadrul POS DRU 2007-2013

Cuprins
I. Introducere....................................................................................................................................5 Dup parcurgerea acestui modul elevii vor fi capabili s creeze baze de date, s manipuleze datele folosind limbajul SQL i s asigure integritatea i securitatea datelor din baze create. Acest modul reprezint un modul cheie al calificrii date fiind ultimele tendine privind dezvoltarea sistemelor informatice, precum i utilizarea lor la scara din ce n ce mai mare...........6 ........................................................................................................................................................6 II. Documente necesare pentru activitatea de predare.....................................................................7 III. Resurse.......................................................................................................................................8 Tema 1. Baze de date. Concepte fundamentale...........................................................................8 Fia suport 1.1 Baze de date. Concepte fundamentale............................................................8 Fia suport 1.2 Modelul entitate - relaie ..............................................................................13 ...................................................................................................................................................16 Tema 2. Baze de date relaionale...............................................................................................17 Fia suport 2 Baze de date relaionale. Noiuni de baz........................................................17 Tema 3. Normalizarea bazelor de date......................................................................................22 Fia suport 3.1 Dependene funcionale..............................................................................22 Fia suport 3.2 Redundana datelor i anomalii de actualizare / reactualizare...................25 Astfel se pot face actualizri de date ntr-un singur loc, dac se terge o comand datele despre client nu se pierd, iar inserarea de date se face independent.........................................................27 ...............................................................................................................................................27 Fia suport 3.3 Forme normale (1NF, 2NF, 3NF, 4NF, 5NF)............................................28 Tema 4 Proiectarea bazelor de date...........................................................................................35 Fia suport 4.1 Proiectarea conceptual a bazelor de date..................................................35 Fia suport 4.2 Proiectarea logic a bazelor de date...........................................................40 ...............................................................................................................................................41 Fia suport 4.3 Proiectarea fizic a bazelor de date............................................................42 Tema 5 Sisteme de gestiune a bazelor de date...........................................................................44 Fia suport 5 Sisteme de gestiune a bazelor de date..............................................................44 Tema 6 Elemente de algebr relaional....................................................................................51 Fia suport 6 Operaii relaionale...........................................................................................51 Tema 7 Interogarea bazelor de date. Limbajul SQL..................................................................56 Fia suport 7.1 Concepte generale.........................................................................................56 Fia suport 7.2 Interogri simple pentru manipularea datelor...............................................60 Comanda are dou forme, prima permite introducerea de nregistrri (rnduri) ntr-un tabel, cea de-a doua permite copierea mai multor rnduri dintr-unul sau mai multe tabele ntr-un alt tabel. .......................................................................................................................................................61 Sintaxa pentru prima form este:...................................................................................................61 INSERT INTO denumire_tabel [(list_coloane)]..........................................................................61 VALUES (list_valori) .................................................................................................................61 unde:...............................................................................................................................................61 Exemplu: Fie tabelul tabClase ce reine date despre clasele unei coli. Dac se dorete introducerea unei nregistrri noi se va utiliza comanda: ............................................................61 INSERT INTO tabClase (NumeClasa, Numespecializare, NumeForma, AnTerminal, IdAnStudiu)...................................................................................................................................61 VALUES ('11As','Mate-info', 'seral', '5','27').................................................................................61 3

Sintaxa pentru a doua form este:..................................................................................................61 INSERT INTO denumire_tabel [(list_coloane)]..........................................................................61 SELECT ................................................................................................................................61 unde:...............................................................................................................................................61 denumire_tabel este numele tabelului n care se va face inserarea de rnduri..............................61 Unde:..............................................................................................................................................62 denumire_tabel = tabelul din care se va face tergerea nregistrrilor..........................................62 Fia suport 7.3 Interogri complexe pentru manipularea datelor..........................................63 Operaiile corespunztoare sunt cele definite n fia suport 6 Operaii relaionale. Astfel: .........66 reuniunea a dou tabele este un tabel rezultat ce conine ntregistrrile din primul i al doilea tabel luate o singur dat, ............................................................................................................66 Dac ne intereseaz toate localitile n care fie exist un furnizor sau un client al Companiei X vom folosi una dintre variantele:...................................................................................................67 Dac ne intereseaz toate localitile n care fie exist i un furnizor i un client al Companiei X vom folosi una dintre variantele:...................................................................................................67 Dac ne intereseaz toate localitile n care fie exist un furnizor dar niciun client al Companiei X vom folosi una dintre variantele:...............................................................................................67 Fia suport 7.4 Tranzacii.......................................................................................................69 .......................................................................................................................................................71 Tema 8 Securitatea bazelor de date...........................................................................................72 Fia suport 8 Securitatea bazelor de date...............................................................................72 ...................................................................................................................................................74 Tema 9 Utilizarea bazelor de date n cadrul reelelor de calculatoare.......................................75 Fia suport 9 Baze de date distribuite. Concepte generale....................................................75 SGBDD-ul prezint toate funciile standard ale unui SGBD centralizat i are n plus servicii de comunicaie extinse, un catalog al sistemului extins, prelucrarea distribuit a interogrilor i servicii de concuren i refacere extinse. Acest fapt se datoareaz transparenelor ce carecterizeaz SGBDD:.............................................................................................................77 Avantajele bazelor de date distribuite........................................................................................77 Dezavantaje ale bazelor de date distribuite................................................................................77 V. Bibliografie...............................................................................................................................81

I. Introducere
Materialele de predare reprezint o resurs suport pentru activitatea de predare, instrumente auxiliare care includ un mesaj sau o informaie didactic. Prezentul material de predare, se adreseaz cadrelor didactice care predau n cadrul colilor postliceale, domeniul Informatic, calificarea Analist programator El a fost elaborat pentru modulul Baze de date, ce se desfoar n 102 ore, din care: Laborator tehnologic 36 ore Instruire practic 30, aceste ore se desfoar n cadrul celor 4 sptmni alocate stagiilor de pregtire practic de la sfritul anului.
Teme Tema 1 Baze de date. Concepte fundamentale Fie suport Fia suport 1.1 Baze de date. Concepte fundamentale Fia suport 1.2 Modelul entitate relaie Tema 2 Baze de date relaionale Fia suport 2 Baze de date relaionale. Noiuni fundamentale Fia suport 3.1 Dependene funcionale Fia suport 3.2 Redundana datelor. anomalii Fia suport 3.3 Forme normale Tema 4 Proiectarea bazelor de date Fia suport 4.1 Proiectarea conceptual a bazelor de date Fia suport 4.2 Proiectarea logic a bazelor de date Fia suport 4.3 proiectarea fizic a bazelor de date Tema 5 Sisteme de gestiune a Fia support 5 - Sisteme de

Competene Proiecteaz structura unei baze de date

Tema 3 Normalizarea bazelor de date

Competene

Teme bazelor de date

Fie suport gestiune a bazelor de date Fia suport relaionale 6 Operaii

Interogheaz bazele de date

Tema 6 Elemente de algebr relaional Tema 7 Interogarea bazelor de date. Limbajul SQL

Fia suport 7.1 Concepte generale Fia suport 7.2 Interogri simple pentru manipularea datelor Fia suport 7.3 Interogri complexe pentru manipularea datelor Fia 7.4 Accesul concurent la baza de date

Administreaz de date

baze

Tema 8 Securitatea bazelor de date

Fia suport 8 Securitatea bazelor de date

Tema 9 Utilizarea bazelor de date n cadrul reelelor de calculatoare

Fia suport 9 Baze de date distribuite. Concepte generale

Dup parcurgerea acestui modul elevii vor fi capabili s creeze baze de date, s manipuleze datele folosind limbajul SQL i s asigure integritatea i securitatea datelor din baze create. Acest modul reprezint un modul cheie al calificrii date fiind ultimele tendine privind dezvoltarea sistemelor informatice, precum i utilizarea lor la scara din ce n ce mai mare.

II. Documente necesare pentru activitatea de predare


Pentru predarea coninuturilor abordate n cadrul materialului de predare cadrul didactic are obligaia de a studia urmtoarele documente: Standardul de Pregtire Profesional pentru calificarea Analist programator, nivelul 3 avansat www.tvet.ro, seciunea SPP sau www.edu.ro , seciunea nvmnt preuniversitar Curriculum pentru calificarea Analist programator, nivelul 3 avansat www.tvet.ro, seciunea Curriculum sau www.edu.ro , seciunea nvmnt preuniversitar

III. Resurse
Tema 1. Baze de date. Concepte fundamentale
Fia suport 1.1 Baze de date. Concepte fundamentale
n general n literatura specific bazelor de date se opereaz cu urmtoarele concepte: Datele constau n material brut, evenimente primare, fapte, simboluri, numere, iruri de caractere, imagini, animaii etc. fr un neles de sine stttor, neintegrate ntr-un context. Ele se pot obine n urma unor experimente, sondaje pot fi colectate din diverse locuri, nedefinite sau neomogene. Informaiile se obin prin prelucrarea datelor i gsirea relaiilor dintre acestea, au un neles i sunt integrate ntr-un context. Datele organizate i prezentate ntr-un mod sistematic pentru a sublinia sensul lor devin informaii. Altfel spus, informaiile sunt date prelucrate capabile de a produce cunotine noi, se refer la obiecte , procese, fenomene, locuri, situaii etc. Informaiile trebuie s fie clare, concise. Cunotinele sunt colecii de date, informaii, adevruri i principii nvate, acumulate de-a lungul timpului. Informaiile despre un subiect reinute i nelese, folosite n luarea de decizii, i care formeaz judeci i opinii devin cunotine. Cu alte cuvinte, cunotinele apar n momentul utilizrii informaiei. Pentru obinerea informaiilor se desfoar un set de activiti cunoscute sub numele de proces informaional ce cuprinde: - Identificarea surselor de informaie i culegerea datelor - Pregtirea datelor ce presupune: codificare, clasificare, conversie, selectare - Prelucrarea datelor - Stocarea datelor n vederea utilizrii lor - Extragerea rezultatelor prelucrrii datelor/raportarea informaiilor ctre beneficiarii Totalitatea resurselor materiale, umane i financiare utilizate n cadrul unui proces informaional avnd ca scop asigurarea legturii dintre sistemul decizional i cel operaional i obinerea informaiilor poart denumirea de sistem informaional. Sistemul informaional este deci reprezentat de totalitatea metodelor, procedurilor i mijloacelor, folosite n procesul informaional i poate fi definit ca un ansamblu organizat i integrat de operaii de culegere, transmitere, prelucrare, sistematizare, analiz i pstrare, difuzare i valorificare a informaiilor. Dac n cadrul procesului informaional prelucrarea datelor se face cu ajutorul calculatorului atunci sistemul informaional se numete sistem informatic. Colecia de date reprezint un ansamblu de date care se refer la acelai fenomen, obiect sau situaie. n cadrul componentelor coleciei se pot stabili relaii care s faciliteze prelucrarea datelor i obinerea informaiilor. Structura de date reprezint o colecie de date pe care s-au stabilit anumite relaii i un mecanism de selecie i identificare a componentelor sale. Accesul la componentele structurii de date este un element foarte important n regsirea informaiei i poate fi de dou feluri:

o secvenial : presupune parcurgerea tuturor datelor situate naintea celei care urmeaz a fi prelucrat o direct : presupune existena unui mecanism care s determine direct poziia datei ce urmeaz a fi prelucrat. Structurile de date pot fi omogene sau neomogene, n funcie de tipul datelor coninute n structur. n funcie de posibilitatea de a-i modifica structura se ntlnesc structuri de date dinamice sau statice. Operaiile care pot fi executate asupra unei structuri de date sunt dependente de mediul de programare utilizat. n general asupra unei structuri de date pot fi executate operaii precum: creare, populare, consultate, actualizare, sortare, scindare, concatenare, duplicare, tergere. Baza de date reprezint un ansamblu de date integrat, ntre care exist rela ii logice i o descriere a acestor date, proiectat pentru a satisface necesit ile informa ionale ale unei organizaii. Descrierea structurii poart numele de dicionar de date sau metadate i creeaz o interdependen ntre datele propriu-zise i programe. Sisteme de gestiune a bazelor de date reprezint un pachet de programe care permite definirea, crearea, ntreinerea i accesul controlat la baza de date. Baza de date poate fi privit ca o colecie de fiiere interconectate care conin nucleul de date necesare unui sistem informatic. Astfel, poate fi considerat drept un model al unor aspecte ale realitii unei companii, modelat prin intermediul datelor. Diferitele obiecte din cadrul realitii ce prezint interes sunt denumite entiti. Pentru aceste obiecte sunt achiziionate i memorate date referitoare la diferite caracteristici ale entitii numite atribute. ntre entitile identificate se stabilesc relaii. Baza de date se constituie ca un ansamblu intercorelat de colecii de date, prin care se realizeaz reprezentarea unei realiti. O baza de date trebuie s asigure: abstractizarea datelor (baza de date fiind un model al realitii), integrarea datelor (baza de date este un ansamblu de colecii de date intercorelate, cu redundan controlat), integritatea datelor (se refer la corectitudinea datelor ncrcate i manipulate astfel nct s se respecte restriciile de integritate), securitatea datelor (limitarea accesului la baza de date), partajarea datelor (datele pot fi accesate de mai muli utilizatori, eventual n acelai timp), independena datelor (organizarea datelor s fie transparent pentru utilizatori, modificrile n baza de date s nu afecteze programele de aplicaii). Scopul utilizrii bazelor de date este acela de a furniza utilizatorilor o vedere abstact i general a datelor. Prin urmare cnd se proiecteaz o baz de date trebuie s se obin o descriere abstract i general a cerinelor informaionale ale organizaiei. Astfel noiunea de modelare va aborda concepte precum: entitate cum ar fi: Elev, Clasa, Disciplin etc. atribut ce descriu proprietile entitilor; Exemplu entitatea Elev poate avea atribute precum: Nume, Prenume, Data_nasterii, Adres etc 9

relaiile care se stabilesc ntre entiti; Exemplu ntre entitile Elev i Clasa se poate stabili o relaie prin faptul c fiecare elev este repartizat la o clas. Standardele n vigoare privind proiectarea bazelor de date i abstractizarea datelor descriu existena a trei niveluri de abstractizare a datelor ce formeaz o arhitectur pe trei niveluri cuprinznd: Nivelul extern care se refer la vederile utilizatorilor asupra bazei de date. Nivelul conceptual, vederea general a bazei de date. Acest nivel descrie ce date sunt stocate n baza de date i care sunt relaiile dintre ele. Acent nivel descrie: toate entitile, atributele i relaiile dintre ele, constrngerile asupra datelor, informaii semantice asupra datelor, informaii privind securitatea datelor. Nivelul intern, reperezentarea fizic a bazei de date pe calculator. Acest nivel descrie cum sunt stocate date n baza de date. Descrierea general a unei baze de date se numete schema bazei de date. Dat fiind arhitectura pe trei niveluri, exist trei tipuri de scheme, corespunztoare celor trei niveluri: schema extern, schema conceptual i schema intern . O baz de date are mai multe scheme externe corespunztoare tuturor vederilor utilizatorilor. Schema conceptual descrie toate articolele de date i relaiile dintre acestea, mpreun cu constrngerile de integritate, exist o singur schem conceptual. La nivelul intern schema intern reprezint o descriere a modelului intern. Sistemul de gestiune a bazelor de date permite implementarea celor trei tipuri de scheme, prin utilizarea unui limbaj de definire a datelor. Acest limbaj este ns prea inferior pentru a putea descrie necesitile unui sistem informaional al unei organizaii. Din acest motiv au fost introduse i utilizate modelele de date. Un model de date reprezint un ansamblu de concepte necesare descrierii datelor, relaiilor dintre acestea i constrngerilor. Cu alte cuvinte un model de date conine: un set de reguli care descriu modul de constituire a bazelor de date un set de operaii permise asupra datelor din bazele de date un set de reguli care garanteaz integritatea datelor Exist modele de date bazate pe obiecte, modele de date bazate pe nregistrri, modele de date fizice. Primele dou descriu datele la nivel conceptual i extern, iar ultimul model descrie datele la nivel intern. 2. Modele bazate pe obiecte: Modelul entitate relaie Modelul semantic Modelul funcional Modelul oriectat spre obiecte 3. Modele bazate pe nregistrri: Modelul de date relaional Modelul de date n reea Modelul de date ierarhic 4. Modele fizice, decriu cum sunt stocate datele pe calculator: Modelul unificator Memoria cadru 10

Din punctul de vedere al proiectrii bazelor de date sunt importante primele dou tipuri de modele, fia suport 1.3 va trata un model bazat de obiecte (modelul entitate relaie), iar Tema 2 trateaz un model bazat pe nregistrri (modelul relaional). Avantajele folosirii bazelor de date Definirea structurilor de date necesare unei aplicaii reprezint una dintre etapele cele mai importante n dezvoltarea sistemelor informatice inteligente, totodat a fost i este condiionat de: necesarul de memorie, viteza de prelucrare a datelor, precum i de efortul de proiectare i implementare a sa. n aceast etap se va ine cont de: volumul datelor, operaiile de prelucrare i actualizare, asigurarea integritii datelor, asigurarea securitii datelor, utilizarea eficient a memoriei. n primele forme de organizare a datelor pentru prelucrarea automat s-a folosit sistemul bazat pe fiiere. Prin acest mod de lucru fiecare program al aplicaiei definea i gestiona propriile date, analog unui sistemului de ndosariere manual al datelor. Acest sistem s-a dovedit ineficient prin: - separarea i izolarea datelor - dublarea datelor - dependena de date - incompatibilitatea fiierelor - interogarea fix a programelor de aplicaie Aceste limitri ale sistemului bazat pe fiiere au fost depite prin eliminarea definirii datelor n programele de aplicaie i existena controlului accesului la date i la manipularea acestora, lucru care s-a realizat prin utilizarea sistemului de baze de date i a sistemelor de gestiunea bazelor de date. Tratarea prin sisteme de baze de date permite astfel definirea datelor separat de programele de aplicaie. Declararea structurii logice a datelor se face n exteriorul aplicaiei asigurnd astfel independena programnelor fa de structura datelor. Apare acum problema existenei unei interfee ntre bazele de date i programele de aplicaie care s permit: - definirea structurii datelor - criteriile de acces la date - confidenialitatea datelor - controlul concurenei - integritatea datelor - securittea datelor Toate aceste proceduri sunt asigurate de sistemul de gestiune a bazelor de date.

11

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint i fie de lucru, fie de evaluare/autoevaluare. Activitile se pot desfura n sal de curs sau n laboratorul de informatic, dotate cu videoproiector, tabl/flipchart. Se poate lucra individual sau pe grupe, profesorul va aborda toate aspectele generale cu privire la bazele de date i va pune accent pe avantajele i dezavantajele utilizrii bazelor de date. Se vor analiza diferite sisteme informaionale din care s se identifice: entit ile rela iile care exist ntre ele, atributele entitilor. n ceea ce privete evaluarea / autoevaluarea se poate utiliza un test cu itemi de tip mperechere, completare i alegere multipl. Se poate cere elevilor s identifice elemente greit utilizate i s le corecteze. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect pentru diferite cazuri de sisteme informationale.

12

Fia suport 1.2 Modelul entitate - relaie


Modelul entitate-relaie este un model de date conceptual de nivel nalt care faciliteaz proiectarea bazelor de date. Ca model de date conceptual descrie un set de concepte care descriu baza de date i tranzaciile de regsire i actualizare asociate, scopul fiind acela de a asigura perceperea datelor de ctre utilizator i ascunderea aspectelor tehnice asociate proiectrii bazelor de date. Conceptele de baz ale acestui model sunt: tipurile de entiti, tipurile de relaii i atributele. Tipul de entitate un obiect sau un concept care este identificat ca avnd o existen independent. Un tip de entitate poate fi un obiect cu o existen fizic (real) sau un obiect cu o existen conceptual. Tipul de entitate este echivalentul relaiei din modelul relaional. Exemplu: Existen fizic: Elev, Profesor, Clasa Existen conceptual: Examinare, Inscriere, Mutare, Arhivare Fiecare tip de entitate este identificat printr-un nume i o list de proprieti. O baz de date conine mai multe tipuri de entiti. Entitatea este o instan a unui tip de entitate, care este unic determinat. Fiecare tip de entitate are un set distinct de atribute, iar fiecare entitate are propriile sale valori pentru fiecare atribut. Tipurile de entiti se mpart n tari i slabe n funcie de dependena lor fa de alte tipuri de entiti: - tip de entitate slab (copil/subordonat): existena sa depinde de alte cteva tipuri de entiti - tip de entitate tare (printe/dominant): existena sa nu depinde de alte tipuri de entiti Exemplu: ELEV SITUATIE_SCOLAR A
REPREZENTAREA SCHEMATIC A TIPURILOR DE ENTITI

DISCIPLINA

Tip de entitate slab: Situatie_Scolara, ea depinde de elev i de disciplina Tip entitate tare: elev, disciplina Entitile slabe au o reprezentare grafic (chenar dublu) diferit de cele tari (chenar simplu). Atribute Atributul reprezint o proprietate a entitii sau a relaiei. Atributul unei entiti conine valorile ce o descriu. 13

Exemplu: O entitate de tip elev poate fi descris prin: numrul elevului (IdElev), numele elevului (NumeElev), cod numeric personal (CNPElev), adres (AdresaElev). Domeniul atributului reprezint mulimea de valori pe care le poate lua un atribut. Fiecrui atribuit i este asociat o mulime de valori. De exemplu, notele unui elev pot fi de la 1 la 10, prin urmare domeniul atributului Nota este format din valorile de la 1 la 10. Pot exista atribute care au acelai domeniu. De exemplu data naterii i data nscrierii pot fi atribute care au ca domeniu data calendaristic. Atributele se pot fi: - simple (o singur valoare): CNP, Nume - compuse (valori multiple): adresa cu valoarea (strada, localitate, tara), data_nasterii (zi, luna, an) - derivate, rezultate din alt atribut, sau set de atribute: vrsta poate rezulta din data nasterii, media poate rezulta din notele elevului. Chei un atribut sau un set de atribute care identific n mod unic apariiile individuale ale unui tip de entitate. n modelul entitate-relaie se ntlnesc urmtoarele noiuni: cheie candidat, cheie primar i cheie compus. Primele dou au fost definite i la modelul relaional i au aceeai semnificaie. Cheia compus este o cheie candidat care este alctuit din mai multe atribute. Entitile se reprezint schematic astfel: - atributele sunt reprezentate prin elips etichetat cu numele acestuia - conturul elipsei este punctat dac atributul este derivat - conturul elipsei este dublat dac atributul are valori multiple - entitatea este reprezentat printr-un dreptunghi, dac tipul entitii este tare atunci acesta are o singur linie de contur, iar dac este slab are contur dublu. - atributele sunt legate de tipul de entitate printr-o linie - cheia primar este subliniat Exemplu: tipul de entitate SE X CNP ELEV NOTE DATA_N VARST A ADRES A NUM E PRENUM E

Figur 1 Reprezentarea schematic a entitii elev

Tipuri de relaii Un tip de relaie reprezint o asociere semnificativ ntre dou tipuri de entiti. Fiecare tip de relaie are un nume care descrie funcia sa. Exemplu: 14

1. entitatea clasa este asociat entitii elev prin relaia numit EsteInscris (o clasa detine elevi). 2. Entitatea profesor este asociat entitii clasa prin relaia numit Pred (Prefesorii predau la clase). Relaiile sunt reprezentate grafic printr-un romb, etichetat cu numele relaiei. Rombul are contur dublu dac relaia conecteaz o entitate slab cu una tare. Exemplu: CNP ELEV

NrDisciplin a

STUDIAZ A

AreNot e

DISCIPLINA

EsteNota ta

SITUATIE_ SCOLARA

Reprezentarea schematic a entitilor i relaiilor

Gradul unei relaii definete numrul de entiti participative ntr-o relaie. n acest sens pot exista relaii binare, ternare, cvadrupl. Cel mai des ntlnit grad al unei relaii este binar. Raportul de cardinalitate descrie numrul de relaii posibile pentru fiecare entitate participativ. Raportul de cardinalitate pentru relaii binare sunt: 1:1 (unu la unu), 1:M (unu la mai muli), N:M (muli la muli). Exemple: 1:1 Relaia Administreaz care se poate stabili ntre entitile Clase (IdClasa, NumeClas, Profil, NrElevi) i Diriginti (IdDiriginte, NumeDiriginte, Specialitate, Statut).

IdClase 1
Administrea z

IdDirigint e 1 Diriginti

Clase

Exemplu de relaie 1:1

1:M Relaia AreElevi care se poate stabili ntre entitile Elevi (IdElev, NumeElev, Data_N, Adresa) i Clase (IdClasa, IdElev, NumeClasa, Specializare) 15

IdClasa 1 AreElevi
Exemplu de relaie 1:M

IdElevi

Clase

Elevi

M:N Relaia Evalueaz care se poate stabili ntre entitile Elevi (IdElev, NumeElev, Data_N, Adresa) i Profesori (IdProfesor, Specializare) IdProfesor i Profesori
M Evalueaz Exemplu de relaie M:N
N

IdElevi

Elevi

La stabilirea relaiilor dintre entiti trebuie avute n vedere i constrngerile de participare. Acestea deetermin dac existena unei entiti depinde de faptul c aceasta este legat de alt entitate printr-o relaie. Exist dou tipuri de constrngeri de participare: totale i pariale. Participarea este total dac existena unei entiti necesit existena uneia asociate printr-o anumit relaie altfel este parial.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint i fie de lucru, fie de evaluare/autoevaluare. Activitile se pot desfura n sal de curs sau n laboratorul de informatic, dotate cu videoproiector, tabl/flipchart. Se poate lucra individual sau pe grupe, profesorul va aborda toate aspectele legate de baze de date i modelarea conceptual a bazelor de date. Se vor analiza diferite sisteme informaionale din care s se identifice: entit ile, rela iile care exist ntre ele, atributele entitilor. n ceea ce privete evaluarea / autoevaluarea se poate utiliza un test cu itemi de tip mperechere, completare i alegere multipl. Se poate cere elevilor s identifice elemente greit utilizate i s le corecteze. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect pentru diferite cazuri de sisteme informationale.

16

Tema 2. Baze de date relaionale


Fia suport 2 Baze de date relaionale. Noiuni de baz
Modelul relaional se bazeaz pe conceptul matematic de rela ie, prezentat fizic sub form de tabel. Fundamentul modelului rela ional l constituie teoria mul imilor i logica predicativ. n acest sens modelul descrie modul de efectuare a opera iilor algebrice elementare (ca, de exemplu, reuniunile i intersec iile) ntr-o manier foarte similar aceleia n care aceste operaii sunt efectuate n teoria mul imilor. Tabele reprezint analoagele mulimilor, ele fiind colec ii de elemente distincte cu proprieti comune. De exemplu, n timp ce o mul ime poate con ine numere reale, un tabel poate conine informaii despre elevi. Modelul relaional nu este orientat spre sistemul de calcul, nu include regulile, structurile i operaiile referitoare la implementarea fizic a unui sistem de baze de date. Se face astfel o separare clar ntre aspectele fizice i cele logice ale bazei de date, iar operaiile de manipulare a datelor pot fi privite ca o serie de opera ii de proiec ie, filtrare, reuniune, intersecie asupra datelor din tabele. Noiuni de baz specifice modelului relaional . Relaie tabel ce conine coloane i rnduri. Atribut o coloana a relaiei (tabelului), cu o anumit denumire. Domeniu mulimea de valori permise pentru unul sau mai multe atribute. Tuplu rndul dintr-o relaie. Grad numrul de atribute pe care le conine aceasta. Cardinalitate numrul de tupluri coninute. Schema relaiei denumirea relaiei, urmat de un set de perechi de atribute i denumiri de domenii. Null : lipsa valorii unui atribut ; este diferit de valoarea 0 sau un ir de caractere alctuit din spaii albe. n modelul relaional, relaiile sunt folosite pentru a pstra informa ii despre obiectele care vor fi reprezentate n baza de date. Astfel, o rela ie este un tabel bidimensional n care rndurile reprezint tuplul (nregistrrile / datele), iar coloanele rein atributele relaiei. Domeniul este foarte important deoarece el define te sursa de valori i limitele n ceea ce privete operaiile permise. Exemplu : Relaia elev
IdElev 1 2 3 Nume Popa Marin Ionescu Premune Marin Simona David Data_nasterii 1-0ct-1997 19-Dec-1998 2-Mai-1996 Adresa Str. Jiului, nr. 19, Buc Str. N. Iorga, nr. 10, Ilfov Str. R.Beller, nr. 25, Buc

Atribute : IdElev, Nume, Prenume, Data_nasterii, Adresa 17

Domeniu : - Pentru IdElev : submulime a numerelor naturale - Nume, Prenume, Adres : ir de caractere - Data_nasterii : dat calendaristic Gradul relaiei Elev : 5 Nr. De tupluri : 3 Cardinalitatea relaiei : 3 Proprietile relaiilor Plecnd de la teoria mulimilor putem afirma c o rela ie are urmtoarele propriet i : - Are o denumire distinct ca orice mulime. - Fiecare celul a relaiei conine exact o valoare atomic (unic), ntr-o mul ime nu se repet niciun element - Fiecare atribut are o denumire disticnt - Toate valorile unui atribut aparin aceluia i domeniu - Ordinea atributelor nu are nicio important - Fiecare tuplu este distinct, nu exist dubluri ale tuplurilor - Ordinea tuplurilor nu are nicio importan , precum nici ordinea elementelor unei mulimi nu are nicio importan Pentru identificarea unic a fiecrui tuplu dintr-o rela ie se folosesc cheile primare. Deci cheia primar este un atribut sau un set de atribute care identific n mod unic fiecare nregistrare din tabel. Supercheia : Un atribut sau un set de atribute care identific n mod unic fiecare tuplu din interioarul unei relaii. Supercheia poate con ine i atribute care nu sunt necesare pentru o identificare unic. Cheie candidat : o supercheia pentru care nicio submulime adecvat nu este o supercheie n cadrul relaiei respective. Cheia candidat con ine setul de atribute strict necesare pentru o identificare unic a fiecrui tuplu n cadrul rela iei. Cheia primar respect urmtoarele principii: este obligatorie : fiecare relaie are exact o singur cheie primar care identific n mod unic fiecare tuplu al relaiei este unic : cheia primar identific un singur rnd dintr-o rela ie (nu exist dou tupluri cu aceeai cheie primar) este simpl sau compus : o cheie primar cuprinde unul sau mai multe atribute ale tuplului este Non null-, valoare unei chei primare nu poate fi vid este stabil : o dat create valorile cheilor primare se schimb foarte rar este nereutilizabil : dac se terge un tuplu valoarea chei primare nu poate fi asociat altui tuplu minimal : cheia primar include doar acel atribut sau acele atribute necesare pentru unicitate

n teoria bazelor de date se mai ntlne te i no iunea de cheie strin sau extern. Aceasta este un atribut sau un set de atribute din cadrul unei rela ii care se potrive te cu cheia primar a altei relaii. Cheile strine stabilesc legturi ntre dou rela ii. Exemplu de relaii ntre care exist o legtur ntre cheia primar i cheia strin relaia elev i relaia clase ce au urmtoarele scheme : 18

Elev (IdElev, NumeElev, PrenumeElev, Data_NElev, AdresaElev, IdClasa) Clase (IdClasa, NumeClasa, ProfilClasa) Pentru relaia elev IdElev reprezint cheia primar deoarece identific n mod unic fiecare elev, iar IdClasa reprezint cheia strin deoarece face legtura cu rela ia clase unde IdClasa reprezint cheia primar. O baz de date poate avea orice numr de rela ii. Integritarea relaional n teoria bazelor de date exist mai multe tipuri de constrngeri. Unele dintre acestea sunt date de faptul c fiecare atribut are un domeniu, deci valorile pe care le poate primi un atribut sunt restricionate la o mul ime de valori sau pot fi restric ionate de valorile altor atribute, de lungimea lor, se pot referi la tipul atributelor etc. Utilizatorii aplica iilor informatice pot specifica constrngeri adi ionale cum ar fi : ntr-o clas nu pot exista dect 30 de elevi, iniiala tatlui din cadul numelui unui elev nu poate avea dect 3 caractere, codul numeric personal are strict 13 cifre etc. Pe lng aceste restricii mai exist dou numite reguli de integritate ce se aplic tuturor instanelor unei baze de date i anume : integritate a entitilor i integritate referenial.

Integritatea entitilor este o regul care se refer la imposibilitatea chei primare de a avea ca valoare null. Prin defini ie cheia primar identific n mod unic fiecare tuplu deci dac n coponen a cheii primare este inclus un atribut al crei con inut nu este cunoscut nu se mai respect principiul de minim pentru cheia primar. De exemplu, deoerece atributul IdElev este cheie primar a rela iei elev definit mai sus, nu se va putea insera un null ca valoare a atributului IdElev.

Integritatea referenial este o regul care se aplic cheilor strine : valoarea cheii strine trebuie s fie null sau s coincid cu o valoare a cheii primare la care face referin. Elev
IdElev 1 2 3 NumeElev Popa Marin Ionescu PrenumeElev Marin Simona David Data_NElev 1-0ct-1997 19-Dec-1998 2-Mai-1996 AdresaElev Str. Jiului, nr. 19, Buc Str. N. Iorga, nr. 10, Ilfov Str. R.Beller, nr. 25, Buc IdClasa

1 1 2

Clase
IdClasa 1 2 3 NumeClasa 9A 9B 9C ProfilClasa Matematica-Informatica Filologie Stiintele naturii

De exemplu, avnd n vedere cele dou rela ii definite mai sus elev i clase to i elevii care aparin unei clase vor avea ca valoarea a atributului IdClasa acela i numr egal cu 19

unul din relaia Clase. Primii doi elevi din rela ia elev apar in clasei 9A, iar cel de-al treilea clasei 9B. Pentru a respecta integritatea referen ial, innd cont de faptul c ntre cele dou relaii exist o legtur prin care un elev apar ine unei clase, n rela ia elev nu va exista niciun elev care s aibe ca valoare a atributului IdClasa null sau alt valoare care nu se regsete ntre valorile cheii primare IdClasa din rela ia Clase. Limbaje relaionale n afara relaiilor i proprietilor acestora modelul rela ional mai este definit i de limbajele relaionale, seturi de opera ii care se pot efectua asupra rela iilor i datelor definite n cadrul relaiilor. Limbajele relaionale sunt utilizate pentru manipularea datelor: reactualizarea sau regsirea datelor din bazele de date, dar i pentru modificarea structurii bazei de date. Limbajele utilizate de sistemele de gestiune a bazelor de date pot fi procedurale (prin intermediul crora utilizatorii comunic sistemului cum s prelucreze datele) i neprocedurale (prin care utilizatorul stabile te ce date sunt necesare a fi prelucrate). La baza limbajelor relaionale stau algebra rela ional i calculul rela ional definite de Codd n 1971. n acest sens algebra rela ional ar putea fi considerat un limbaj procedural care transmite sistemului cum s construiasc o nou rela ie din una sau mai multe relaii existente, iar calculul rela ional un limbaj neprocedural prin intermediul cruia utilizatorul poate formula defini ia unei rela ii n termeni de una sau mai multe relaii din baza de date. Din punct de vedere formal algebra rela ional i calculul relaional sunt echivalente n sensul c pentru fiecare expresie din algebr exist una n calculul relaional i invers. Algebra relaional, introdus de Codd, este o mul ime format din opt operatori unari i binari ce acioneaz asupra rela iilor genernd o alt rela ie: - operatorii tradiionali pe mulimi: reuniune, intersec ie, diferen , produsul cartezian; - operatori speciali: proiecia, selecia, uniune, mpr ire. Calculul relaional reprezint o adaptare a calculului predicatelor la domeniul bazelor de date relaionale. n acest sens o rela ie este un predicat, iar prin aplicarea operatorilor specifici calculului predicatelor (conjunc ia, disjunc ia, nega ia, cuantificatorul existenial i cel universal) unor predicate ini iale se pot ob ine alte predicate (relaii noi). Majoritatea limbajelor relaionale sunt mai puternice dect algebra rela ional i calculul relaional fapt datorat operaiilor adi ionale specifice limbajelor cum ar fi: func iile de calcul, de sumare i de ordonare. n prezent cel mai utilizat limbaj pentru interogarea bazelor de date rela ionale este SQL, limbaj bazat pe operaiile algebrei rela ionale.

20

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se pot desfura n sal de curs sau n laboratorul de informatic, dotate cu videoproiector, tabl/flipchart. Se poate lucra individual sau pe grupe. Se vor utiliza metode prin care elevii s identifice i s gseasc singuri elementele fundamentale pentru baze de date relaionale: se vor exemplifica relaii (tabele) din care elevii s identifice atributele, domeniile atributelor, cheile, cardinalitatea etc. n cazul lucrului pe grupe se vor face comparaii ntre rezultatele obinute pe grupe. n ceea ce privete evaluarea / autoevaluarea se pot utiliza teste cu itemi de tip mperechere, completare i alegere multipl, problematizare. Se poate cere elevilor s identifice elemente greit utilizate i s le corecteze. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu. Se vor da probe practice, utiliznd un SGBD, prin care elevii vor crea tabele, vor denumi atributele i domeniile acestora, vor crea chei primare pentru tabele, vor realiza legturi ntre tabele.

21

Tema 3. Normalizarea bazelor de date


Fia suport 3.1 Dependene funcionale
Unul dintre conceptele asociate normalizrii bazelor de date l reprezint dependen a funcional care descrie relaiile dintre atribute. Astfel, dac A1 i A2 sunt atribute ale unei relaii R se spune c atributul A2 este dependent funcional de A1, i se noteaz A1A2, dac fiecrei valori a atributului A1 i este asociat exact o valoare a lui A2. Atunci cnd exist o dependen funcional aceasta reprezint o constrngere ntre atribute. A1 A2

Diagram de dependen funcional

Determinantul unei dependene funcionale se refer la atributul sau grupul de atribute din partea stng a sgeii. n cazul ilustrat A1 este determinantul dependen ei funcionale. Exemplu: Fie relaia Personal cu urmtoarele atribute:

Personal IdPersoana NumePersoana PrenumePersoana 1 Pop 2 Avram 3 Ivan 4 Antim Maria Ion Felicia Maria Functie profesor maistru instructor secretar director Salariu 500 400 350 600

Putem evidenia dependena funcional IdPersoana Funcie. Se constat c PrenumePersoan IdPersoana nu poate fi o dependen func ional deoarece Prenumele unei persoane apare la mai multe persoane (idPersoana). Acela i lucru s-ar putea ntmpla i cu dependea funcie IdPersoana, pot exista mai multe persoane cu aceeai funcie. Pentru exemplul de mai sus avem i urmtoarele dependen e func ionale: 22

IdPersoana NumePersoana IdPersoana PrenumePersoana IdPersoana Salariu NumePersoana, PrenumePersoana Funcie Dac presupunem c pentru fiecare func ie este stabilit un salariu unic atunci Func ie Salariu reprezint o dependen funcional. Dependen funcional A B este total dac eliminarea oricrui atribut din A conduce la eliminarea dependenei. Dependena NumePersoana, PrenumePersoana Funcie este total deoarece eliminnd pe oricare dintre atributele din stnga nu mai avem o dependen : Pop Maria este profesor, iar Antim Maria este director; dac nlturm atributul NumePersoana vom avea: Maria i pentru profesor i pentru director. Dependen funcional A B este parial dependent dac exist cel puin un atribut n A care poate fi eliminat astfel nct dependen a s se men in. Exemplu: Fie relaiile Personal i Departament
Personal IdPersoana NumePersoana PrenumePersoana 1 Pop 2 Avram 3 Ivan 4 Popa Maria Ion Felicia Maria Functie profesor maistru instructor secretar administrator Departament IdDepartamen NumeDepartamen LocatieDepartamen InteriorDepartamen MailDepartament t t t t 1 Cancelarie 2 Magazie 3 Atelier 4 Secretariat 5 Administratie 6 Contabilitate Cladirea A1 Cladirea A2 Cladirea Atelier Cladirea A1 Cladirea C1 Cladirea C1 cancelarie@ctm.r 115 o magazie@ctm.ro 113 tehno@ctm.ro office@ctm.ro admin@ctm.ro conta@ctm.ro 114 111 112 116 Salariu Coddepartament 600 1 550 3 450 4 350 5

IdPersoana, Functie IdDepartament este o dependen funcional par ial, practic fiecare persoan identificat prin IdPersoan apar ine unui singur departament, respectiv o funcie aparine de asemenea unui singur departament. Dac eliminm fie IdPersoan sau Funcie dependena se men ine. Dependen tranzitiv Dac avem o relaie R, iar A,B,C sunt atribute lui R care respect condi iile: - A B i B C, - A nu este dependent funcional de B i C 23

atunci A C se spune c C este dependent tranzitiv de A prin intermediul lui B. Exemplu: Condisernd relaiile din Personal i Departament descrise mai sus, avem: IdPersoana CodDepartament CodDepartament MailDepartament Rezult c IdPersoana este dependent tranzitiv de MailDepartament Dependen multivaloare Considerm A, B, C, trei atribute ale relaiei R. Prin dependen multivaloare se nelege o dependen dintre atributele A, B, C, prin care pentru fiecare valoare a atributului A exist o mulime de valori a atributului B i o mulime de valori a atributului C. Pentru descrierea unei dependene multivaloare dintre atributele A, B, C se folosete notaia: A B i B C. Exemplu: Un elev studiaz mai multe discipline i pentru fiecare disciplin primete mai multe note. NumeElev IdDisciplina IdDisciplinaNota Dependen de tip uniune fr pierderi. O proprietate a operaiei de descompunere, care garanteaz c nu se genereaz rnduri false atunci cnd relaiile sunt reunite printr-o operaie de uniune natural. Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se pot desfura n sal de curs sau n laboratorul de informatic, dotate cu videoproiector, tabl/flipchart. Se poate lucra individual sau pe grupe. Se vor utiliza metode prin care elevii s identifice toate tipurile de dependene. n cazul lucrului pe grupe se vor face comparaii ntre rezultatele obinute pe grupe, se vor analiza caracteristicile dependinelor. n ceea ce privete evaluarea / autoevaluarea se pot utiliza teste cu itemi de tip mperechere, completare i alegere multipl, problematizare. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

24

Fia suport 3.2 Redundana datelor i anomalii de actualizare / reactualizare


Unul dintre scopurile principale ale proiectrii bazelor de date este acela de a grupa atributele n relaii, astfel nct s se minimizeze redundana datelor, deci s se realizeze pe ct posibil reducerea spaiului de memorare alocat bazelor de date. Fie relaia Vnzri cu urmtoarea structur: Vnzri
Data PretArti IdClie NumeCli AdresaCli TelefonCli IdComa CodArti NumeArti Cantita Comand col nt ent ent ent nda col col te a 1 Pop Marin 2 Iorgu Florin 3 Pop Marin 4 Avram Alin 5 Avram Alin Bucuresti 23344556 7 Iasi 34567889 C1 10.10.2

1 Tastatura 25
2 Mouse 12 5 4000

120 200 100 25 200

008
C2 2.12.20

08
Bucuresti 88344556 7 Ploiesti Ploiesti 45324677 34556666

C1 10.10.2 008
C3 12.12.2

3 DVD 4 Laptop

008
C3 12.12.2 1 Tastatura 25

008

Observm c n aceast relaie avem date redundante precum: - Numele Clientului, adresa sa i telefonul apar de ct ori acesta va face o comand - Codul articolului, preul, precum i denumirea sa apar la fiecare comanda Astfel pe lng aceast redundan a datelor mai pot apare i alte probleme, numite anomalii de actualizare/reactualizare. Aceste anomalii sunt clasificate astfel: anomalii de inserare, de tergere i de actualizare/modificare. Anomalii de inserare. Aceste anomalii se refer la problemele cauzate la inserarea datelor n cadrul relaiilor. Dac analizm relaia de mai sus se constat urmtoarele: pentru a insera detalii cu privire la clieni trebuie inserate i detalii cu privire la comanda lui, precum i detalii cu privire la articolul comandat dac s-ar dori inserarea unui client care nc nu a fcut o comand atunci ar trebuie ca la atributele referitoare la comand s se introduc null-uri. Anomalii de tergere. Aceste anomalii se refer la problemele cauzate la tergerea datelor din cadrul relaiilor sau din bazele de date. Dac se terge un rnd care reprezint o comand fcut de un client i acesta nu a mai fcut i alt comand (este ultima comand fcut) atunci o dat cu tergerea sa din tabel se vor pierde i datele despre acest client. n cazul exemplului dat dac se terge rndul doi unde avem informaii comanda fcut de clientul Iorgu Florin se vor pierde i informaiile referitoare la client. 25

Anomalii de modificare. Aceste anomalii se refer la problemele cauzate la modificarea datelor din cadrul relaiilor sau din bazele de date. Dac se dorete modificarea unor date care apar i n cadrul altor relaii sau tupluri este de preferat ca modificrile fcute s se realizeze ntr-un singur loc, altfel pot aprea privind corectitudinea. n cazul exemplului dat dac se dorete modificarea datelor referitoare la un client atunci acestea trebuie efectuate n toate tuplurile n care apare acel client. Astfel, pot aprea probleme la tastare, ceea ce ar duce la un rezultate incorecte. Aceste probleme ar putea fi rezolvate prin mprirea relaiei n patru relaii, fr pierderea de informaii, astfel: o relaie Client, cu detalii despre clieni, o relaie Articol, cu detalii despre articole o relaie Comanda, cu detalii despre comenzi o relaie Vnzri, cu detalii despre vnzarea realizat Client
IdClient NumeClient 1 Pop Marin 2 Iorgu Florin 3 Avram Alin AdresaClient Bucuresti Iasi Ploiesti PretArticol 25 12 5 4000 TelefonClient 233445567 34567889 34556666

Articol
CodArticol NumeArticol

1 Tastatura 2 Mouse 3 DVD 4 Laptop Comanda


IdComanda DataComanda

CodClient

C1 C2 C3 Vnzri
IdComanda IdArticol

10.10.2008 1 2.12.2008 2 12.12.2008 3 Cantitate 1 120 3 100 2 200 1 200 4 25

C1 C1 C2 C3 C3

26

Astfel se pot face actualizri de date ntr-un singur loc, dac se terge o comand datele despre client nu se pierd, iar inserarea de date se face independent.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se pot desfura n sal de curs sau n laboratorul de informatic, dotate cu videoproiector, tabl/flipchart. Se poate lucra individual sau pe grupe. Se vor utiliza metode prin care elevii s identifice toate tipurile de anomalii generate de redundana datelor. n cazul lucrului pe grupe se vor face comparaii ntre rezultatele obinute pe grupe, se vor analiza anomaliile prezente n exerciiile date. n ceea ce privete evaluarea / autoevaluarea se pot utiliza teste cu itemi de tip problematizare. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare.

27

Fia suport 3.3 Forme normale (1NF, 2NF, 3NF, 4NF, 5NF)1
n teoria bazelor de date sunt cunoscute un numr de cinci forme normale. Normalizarea unei baze de date presupune n general o serie de pa i care corespuns unei forme normale. Pe msur ce se realizeaz normalizarea rela iile devin mai restrictive fiind astfel mai puin vulnerabile la anomalii. n ceea ce privete modelul relaional este foarte important cunoa terea i utilizarea primei forme normale, celelalte de multe ori fiind op ionale. Se recomand ns normalizarea pn la forma a treia. nainte de prima rafinare a relaiilor acestea se gsesc n a a numita forma neformalizat, form ce conine unul sau mai multe grupuri repetitive.

Prima form normal se caracterizeaz prin faptul c n cadrul rela iei reprezentat printr-un tabel la intersecia fiecrei linii/fiecrui rnd cu fiecare coloan se regsete o singur celula ce conine o singur valoare. Pentru a obine o relaie n prima form normal se porne te de la informa ia brut i se caut structurarea acesteia n forma unui tabel. Astfel se ncearc s se elimine grupurile repetitive i se creeaz coloane adecvate informa iei astfel nct la intersec ia liniei cu coloana s se gseasc valori atomice. Ulterior se nominalizeaz un atribut sau un grup de atribute care s reprezinte o cheie a tabelului nenormalizat, dup care se elimin grupurile repetitive prin crearea unui nou tabel n care sunt specificate datele care se repet mpreun cu o copie a atributului/atributelor care formau cheia tabelului ini ial. Acest algorimt se reia pn cnd nu mai exist informatie care se repet. Dac nu mai sunt grupruri care se repet atunci baza de date se afl n prima form normal. Exemplu: fie relaia Elev
Elev IdEle NumeEle Prenume DataNasterii Telefon1 v v Elev 1 Popescu Ionut 19.02.1990 223345 Telefon2 Adresa Materia Informatica Nota 9

0723455667 Romania, Bucuresti, Str. Unirii, nr. 2 0723455667 Romania, Bucuresti, Str. Unirii, nr. 2 0723456789 Romania, Bucuresti, Str. Jiului, nr.34 0723456789 Romania, Bucuresti, Str. Jiului, nr.34

2 Popescu

Ionut

19.02.1990 223345

Matematic a Informatica

3 Avram

Mircea

02.04.1991 345124

4 Avram

Mircea

02.04.1991 345124

8 Matematic a

Aceast fi poate face obiectul predrii orelor alocate pentru laborator, alocate modulului. 28

Analiznd aceast relaie se constat c fiecare elev poate avea mai multe numere de telefon, prin urmare informaia se repet i deci poate fi rafinat prin mpr irea n dou tabele confom urmtorului algoritm: 1. se nlocuiesc n tabel coloanele corespunztoare atributelor compuse cu coaloane ce conin componentele elementare ale acestora 2. se plaseaz grupurile care se repet ntr-un nou tabel 3. se introduce n noul tabel cheia primar a tabelului din care am extras atributele, cheie care devine cheie strin n noul tabel. 4. Se restabilesc cheile primare ale noilor tabele
Telefon Idtelefon IdElev 1 2 3 4 Telefon 1 223345 1 0723455667 3 345124 3 0723456789
2 Popescu Ionut

elev IdEle NumeEle Prenum v v eElev


1 Popescu Ionut

Data Nasterii

Adresa

Materia Nota
9

19.02.1990 Romania, Informatica Bucuresti, Str. Unirii, nr. 2 19.02.1990 Romania, Matematica Bucuresti, Str. Unirii, nr. 2 02.04.1991 Romania, Informatica Bucuresti, Str. Jiului, nr.34 02.04.1991 Romania, Bucuresti, Str. Matematica Jiului, nr.34

3 Avram

Mircea

4 Avram

Mircea

Am obinut astfel prima form normal. Aceasta este o cerin minim a tuturor sistemelor relaionale. Relaiile aflate n prima form normal permit o referire simpl a datelor prin indicarea numelui relaiei/tabelului, a coloanei i a cheii rndului din care face parte informaia respectiv.

A doua form normal O relaie R este n a doua form normal dac: 1. Este n prima form normal: 1NF 2. Orice coloan care depinde parial de o cheie a lui R este inclus n acea cheie. Cu alte cuvinte fiecare atribut care nu este cheie primar este total dependent func ional de cheia primar. A doua form normal se aplic relaiilor cu chei compuse, adic acelor rela ii n care cheia primar este compus din dou sau mai multe atribute. Dac o rela ie are cheia primar format dintr-un singur atribut se consider c este n a doua form nornal 2NF. Dac relaia nu este n 2NF atunci pot apare anomalii la introducerea/actualizarea datelor. Exemplu: Fie relaia Elev n care pentru fiecare elev este men ipronat clasa n care elevul este nscris prin dou atribute: CodClasa i SpecializareClasa.
Elev IdEle NumeEle PrenumeEl DataNaster v v ev ii 1 Popescu Ionut Adresa Materia Informati Not CodCla SpecializareCl a sa asa 9 9A Mate-info

19.02.1990 Romania,

29

Elev IdEle NumeEle PrenumeEl DataNaster v v ev ii Adresa Materia Not CodCla SpecializareCl a sa asa

Bucuresti, ca Str. Unirii, nr. 2 2 Popescu Ionut 19.02.1990 Romania, Matemati Bucuresti, ca Str. Unirii, nr. 2 02.04.1991 Romania, Bucuresti, Str. Jiului, nr.34 02.04.1991 Romania, Bucuresti, Str. Jiului, nr.34 Informati ca 8 9A Mate-Info

3 Avram

Mircea

7 9B

Filologie

4 Avram

Mircea

8 9B Matemati ca

Filologie

Dac se va modifica Specializarea unei clase atunci vor trebui actualizate nu numr de rnduri egal cu numrul de elevi nscri i n clasa respectiv. Dac cel pu in unu nu este modificat atunci apare o anomalie la actualizarea datelor. Prin urmare Specializarea unei clase depinde de IdElev i CodClase, adic nu este total dependent de cheia primara care este IDElev. Prin urmare acest tabel va fi descompus ntr-un tabel ce memoreaz date despre elevi i unul care memoreaz date despre clase. n ambele tabele se va pstra un atribut CodClasa. Acesta este cheie primar n tabelul ce memoreaz clasele i cheie strin n cel pentru elevi. A treia form normal Dei relaiile 2NF conin mai puin redundan dect cele n forma 1NF tot mai pot apare anomalii n procesul de actualizare a datelor. O relaie se afl n a treia form normal dac se afl n prima i a doua i niciun atribut care nu este cheie primar nu este dependent tranzitiv de cheia primar. Normalizarea relaiilor care se afl n 2NF la 3NF presupune deci eliminarea dependenelor tranzitive. Un algoritm pentru rafinarea bazei de la n 3FN 1. Pentru fiecare dependen funcional A BC, unde A i B nu sunt neaprat disjjuncte, se transfer coloanele X i Y ntr-un nou tabel. 2. Se determin cheia primar a fiecrui nou tabel creat la pasul 1, aceasta fiind creat din coloanele lui X. 3. Se elimin din tabelul principal coloanele din Y. 4. Dac coloanele rezultate conin alte dependen e transitive se reia algoritmul de la pasul 1. Forma normal Boyce Codd (BCNF) 30

Formele normale 2NF i 3NF trateaz existen a dependen elor par iale i transitive de cheia primar. Exist ns i anomalii care pot apare ca urmare a existen ei dependenelor funcionale pariale sau tranzitive pentru alte chei candidat (atribute sau grup de atribute care identific n mod unic fiecare tuplu dintr-o rela ie). Forma normal Boyce Codd trateaz dependen ele func ionale care pot exista ntre toate cheile candidat ale unei relaii i alte atribute. Dac o rela ie are o singur cheie candidat care este cheie primar atunci formele 3NF i BCNF sunt echivalente. Se spune c o relaie se afl n forma normal Boyce Codd dac i numai dac fiecare determinant este o cheie candidat. Un algoritm pentru aducerea n BCNF a unei rela ii R aflate n 3NF poate fi definit astfel: 1. Pentru fiecare dependen non-cheie AB unde A i B sunt subseturi de atribute ale lui R, se creeaz dou relaii. Una dintre ele va con ine atributele A i B, iar cealalt va fi format din toate atributele lui R din care se elimin atributul B. 2. Dac relaiile obinute conin alte dependen e non-cheie se reia pasul 1. A patra form normal Cu toate c forma normal Boyce Codd elimin toate anomaliile datorate dependenelor funcionale dependenele multivalorice pot conduce la redundaa datelor. De exemplu, dac ntr-o relaie exist atribute multi-valorice, trebuie s repetm fiecare valoare a unuia dintre atribute, mpreun cu toate atributele celuilalt, pentru a ne asigura c rndurile relaiei sunt coerente. S considerm relaia Clasa_Elevi_Profesori unde reinem pentru fiecare clas elevii i profesorii din clasa respectiv.
Clase_Elevi_Profesori IdClas NumeElev NumeProfesor 1 Popa Maria 1 Ion Ion 1 Popa Maria 1 Ion Ion Stan Marin Stan Marin Stoian Ioana Stoian Ioana

Constatm c relaia pentru clasa 1 unde sunt introdui 2 elevi lucreaz cu doi profesori. Prin urmare apare o constrngere numit dependen multivaloare deoarece aceast relaie conine dou relaii de tip m:n independente unele de altele. O relaie care se afl n BCNFA i nu conine dependene multifuncionale este n forma a patra normal. Normalizarea unei relaii de la BCNFA la 4NF presupune eliminarea dependenelor multivaloare din cadrul acesteia, prin plasarea atributului (atributelor) ntr-o nou relaie, la un loc cu determinantul (determinanii). Astfel, pentru exemplul dat vom avea dou relaii dup cum urmeaz: 31

Clase_Elevi IdClas NumeElev

1 Popa Maria 1 Ion Ion Clase_Profesori IdClas NumeProfesor 1 Stan Marin 1 Stoian Ioana

Algoritm pentru obinerea 4NF. Fie relaia R, atunci: 1. Se identific toate dependenele multivaloare X Y pentru care X i Y nu conin toate coloanele lui R i X nu conine nicio cheie a lui R. 2. Se nlocuiete relaia R cu dou relaii, prima format din coloanele {X,Y}, iar cealalt din coloanele iniiale mai puin Y. 3. Dac relaiile obinute mai conin dependene multivaloare, algoritmul se reia, altfel se termin. A cincea form normal Se ntlnete destul de rar, avnd o valoare mai mult teoretic specific faptul c o relaie nu conine nicio dependen de tip uniune. Atfel spus obinerea 5NF are ca scop eliminarea relaiilor relaiilor de tip n:m dependente spre deosebire de forma normal 4 care elimina relaiile n:m independente. S presupunem c avem urmtoarea situaie: la o clas predau mai muli profesori, iar fiecare profesor poate preda mai multe discipline. Pentru a reine aceasta situaie am putea crea relaia:
Clase_Profesori_Discipline IdClasa NumeProfesor IdDisciplin D1 D4 D2 D4 D5 D6 D2 1 Popa Maria 1 Pop Valentin 1 Ion Ion 2 Ion Ion 2 Ionescu Vasile 3 Ionescu Vasile 3 Popa Maria

Constatm c dac am crea dou relaii n care s reinem profesorii ncadrai la o clas i alta n care s reinem disciplinele specifice fiecrei clas nu putem ti cine pred aceste discipline. Altfel spus aceste dou relaii n:m sunt dependente. Se poate observa c la clasa 1 disciplina D2 o pred Ion Ion dar ar putea s-o predea i Popa Maria. Deci descompunerea acestei relaii n dou relaii conduce la pierderea de informaie. Unirea ulterioar a celor dou relaii nu va conduce la obinerea relaiei iniiale. Acesta este un exemplu de dependen de tip uniune cu pierderi. A cincea form normal - 5FN - o relaie care nu are nicio dependen de tip uniune. 32

Prin urmare pentru a elimina redundaa datelor relaia trebuie descompus n trei relaii: Clase_profesori (IdClasa, NumeProfesor) Clase_Discipline (IdClasa, IdDisciplin) Clase_Profesori (NumeProfesor, IdDisciplina)
Clase_Profesori IdClas NumeProfesor a 1 Popa Maria 1 Pop Valentin 1 Ion Ion 2 Ion Ion 2 Ionescu Vasile 3 Ionescu Vasile 3 Popa Maria Clase_Discipline IdClas a 1 D1 1 D4 1 D2 2 D4 2 D5 3 D6 3 D2 IdDisciplin Profesori_Discipline NumeProfeso IdDisciplin r Popa Maria Pop Valentin Ion Ion Ion Ion D1 D4 D2 D4

Ionescu Vasile D5 Ionescu Vasile D6 Popa Maria D2

Orice relaie poate fi descompus fr pierderi de informaie ntr-o mulime de relaii care sunt n 5FN. Se garanteaz faptul c o relaie n 5FN nu conine anomalii ce pot fi eliminate lund proieciile pe diferite submulini ale acestuia. Concluzii: Normalizarea este procesul de transformare a structurilor de date i are ca scop eliminarea redundanelor i promovarea integritii datelor. Normalizarea reprezint un element de baz al bazelor de date, n general, un set de structuri de date nu sunt considerate relaionale dect dac sunt complet normalizate. Procesul de normalizare poate fi reprezentat printr-un algoritm cu ase pai astfel: Pasul 1: eliminarea dependenelor funcionale pariale 1NF 2NF Pasul 2: eliminarea dependenelor funcionale tranzitive 2NF 3NF Pasul 3: eliminarea dependenelor funcionale pentru care determinantul nu este cheie 3NF BCNF Pasul 4: eliminarea dependenelor multivaloare care nu sunt dependene funcionale BCNF 4NF Pasul 5: eliminarea dependenelor de tip uniune 4NF 5NF Pentru simplificarea codului, creterea performanei programelor de aplicaie i al accesului la date de multe ori este folosit i procesul invers de denormalizare. Denormalizarea are loc dup ce baza de date a fost normalizat i se face prin operaiile relaionale (selecie, uniune) fiind nsoit de introducerea unor msuri suplimentare care s asigure integritatea datelor i a bazei de date.

33

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic. Se poate lucra individual sau pe grupe. Se vor utiliza metode prin care elevii s identifice i s trate ze toate formele normale. n cazul lucrului pe grupe se vor face comparaii ntre rezultatele obinute pe grupe, se vor analiza caracteristicile bazelor de date nainte i dup normalizare. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi de tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor executa efectiv normalizarea bazelor de date folosind un sistem de gestiunea bazelor de date. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

34

Tema 4 Proiectarea bazelor de date


Fia suport 4.1 Proiectarea conceptual a bazelor de date
Prin proiectarea conceptual a unei baze de date se nelege procesul de constituire a unui model al informaiilor utilizate n cadrul unui sistem informaional, al unei companii, independent de toate consideraiile de ordin fizic (sistemul de gestiune al bazelor de date, programele de aplicaie, platforma hardware utilizat). Acest proces are ca obiectiv principal identificarea tipurilor importante de entiti i relaiile care se stabilesc ntre acestea. Proiectarea conceptual reprezint primul pas n proiectarea unei baze de date, constnd n realizarea unor modele de date conceptuale pentru fiecare vedere (datele necesare unui utilizator n rezolvarea unei sarcini) a utilizatorului. Un utilizator poate fi o persoan sau un grup de persoane care utilizeaz n mod direct sistemul informatic. n acest sens vederea unui utilizator poate fi o zon funcional precum activitatea unui departament: producia, contabilitatea, personal etc. Pentru determinarea vederilor utilizatorilor se realizeaz o analiz a fluxurilor de date, procedurilor stabilite, rapoarte, formulare specifice. Pentru modelarea fiecrei vederi se vor stabili: tipurile de entiti, tipurile de relaii, atributele, cheile (candidat i primare). n cadrul etapei de proiectare conceptual a bazei de date se pot evidenia urmtorii pai: 1. Identificarea tipurilor de entiti 2. Identificarea tipurilor de relaii 3. Identificarea i asocierea atributelor cu tipurile de entiti sau relaii 4. Determinarea domeniilor atributelor 5. Determinarea atributelor cheilor candidat i primare 6. Specializarea-generalizarea tipurilor de entiti (opional) 7. Desenarea diagramei entitate-relaie 8. Validarea de ctre utilizator a modelului de date conceptual Identificarea tipurilor de entiti const n definirea principalelor obiecte care pot prezenta interes pentru utilizator, a obiectivelor utilizatorilor (conceptele de interes). Exemplu: n cadrul crerii unui sistem pentru informatizarea activitii de gestiune a elevilor i profesorilor dintr-o unitate colar putem identifica o vedere pentru crearea sistemului de clase dintr-un an colar. n acest sens trebuie creat anul colar, introducerea claselor i a elevilor. Putem grupa toate datele de identificarea ale elevilor ntr-o entitate numit Elevi, toate informaiile despre clase ntr-o entitate numit Clase, toate datele despre anii colari ntr-o entitate numit AniDeStudiu. Pe msur ce entitile sunt descoperite li se atribuie denumiri semnificative. Aceste denumiri precum i o descriere a lor sunt menionate ntr-un dicionar de date. Identificarea tipurilor de relaii. O dat identificate entitile, n urmtoarea etap se vor identifica relaiile dintre acestea. Pentru exemplul dat putem identifica: 35

AniDeStudiu are Clase Clase are Elevi Elevi dau EleviExamene Clase apartin Specializari

n aceast etap trebuie identificate toate relaiile care pot apare ntre entiti precum i cardinalitatea fiecrei relaii, care poate fi: unu-la unu (1:1), unu-la-muli (1:n), muli-lamuli (m:n). Aceste relaii se vor documenta i ele precum entitile n cadrul dicionarului de date. De asemenea se vor identifica i constrngerile de participare. Exemplu de relaii:

Exemplu de relaie 1:1

Exemplu de relaie 1:n

36

Dup ce au fost identificate entitile i relaiile dintre acestea se vor identifica i asocia atributele i domeniile acestora. Aceast etap decide ce fel de informaii memorm n entiti Ce fel de informaii trebuie s pstrm despre .....? . n cazul sistemului realizat pentru entitatea Elev au fost identificate urmtoarele atribute: NumeElev, PrenumeElev, InitialaElev, BISerie, BINr, CNP, NrMatricol, ZiNastere, LunaNastere, AnNastere, LocalitateNastere, Jud/Sector, Tara, Sex, Nationalitate, StareElev, DataInscrierii, DataTerminarii, NumeTata, NumeMama, DomiciliuElev, DomiciliuParinti, Limba1, Limba2, Categorie, Picture, Observatii. Acestea pot fi: simple, compuse sau derivate. Simple: NumeElev, PrenumeElev Compuse: DomiciliuElev, DomiciliuParinti. Derivate: ZiNastere, LunaNastere, AnNastere, Sex (ele fiind calculate din CNP). Pentru fiecare atribut identificat se nregistreaz urmtoarele informaii: - denumirea i descrierea atributului - aliasuri/sinonime cunoscute ale atributului - tipul de date i lungimea - valorile prestabilite ale atributului - acceptarea/neacceptarea de null-uri - dac atributul este compus sau nu - dac atributul este derivat sau nu i n caz afirmativ cum trebuie calculat - dac atributul are valori multiple n ceea ce privete domeniul atributelor se va specifica pentru fiecare urmtoarele: - setul de valori permise pentru fiecare atribut - dimensiunile i formatele atributelor Aceste informaii se vor nregistra n dicionarul de date. Pentru exemplul prezentat, entitatea Elevi, atributele IdElev, NumeElev, InitialaElev i PrenumeElev, n dicionarul de date sunt nregistrate urmtoarele informaii:
Columns Name IDElev AllowZeroLength: AppendOnly: Attributes: CollatingOrder: ColumnHidden: ColumnOrder: ColumnWidth: DataUpdatable: GUID: OrdinalPosition: Required: SourceField: SourceTable: NumeElev AllowZeroLength: AppendOnly: Attributes: CollatingOrder: ColumnHidden: ColumnOrder: ColumnWidth: DataUpdatable: DisplayControl: GUID: Type Long Integer Size 4

False False Fixed Size; Auto-Increment General False Default Default False {guid {0F81B463-A92D-11D7-A6EE-0060B0C2D358}} 0 False IDElev tabElevi Text 50 True False Variable Length General False Default Default False Text Box {guid {0F81B464-A92D-11D7-A6EE-0060B0C2D358}}

37

IMEMode: IMESentenceMode: OrdinalPosition: Required: SourceField: SourceTable: UnicodeCompression: InitialaElev AllowZeroLength: AppendOnly: Attributes: CollatingOrder: ColumnHidden: ColumnOrder: ColumnWidth: DataUpdatable: DisplayControl: GUID: IMEMode: IMESentenceMode: OrdinalPosition: Required: SourceField: SourceTable: UnicodeCompression: PrenumeElev AllowZeroLength: AppendOnly: Attributes: CollatingOrder: ColumnHidden: ColumnOrder: ColumnWidth: DataUpdatable: DisplayControl: GUID: IMEMode: IMESentenceMode: OrdinalPosition: Required: SourceField: SourceTable: UnicodeCompression:

0 3 1 False NumeElev tabElevi True Text True False Variable Length General False Default Default False Text Box {guid {0F81B465-A92D-11D7-A6EE-0060B0C2D358}} 0 3 2 False InitialaElev tabElevi True Text True False Variable Length General False Default 2610 False Text Box {guid {0F81B466-A92D-11D7-A6EE-0060B0C2D358}} 0 3 3 False PrenumeElev tabElevi True 50 3

Identificarea cheilor candidat are ca scop final determinarea cheii primare, cheie care identific n mod unic fiecare nregistrare a entitii. Se pot identifica mai multe chei candidat. Pentru alegerea cheii primare din setul de chei candidat identificate se va recurge la : - alegerea chieii candidat cu setul minim de atribute - alegerea cheii candidat cu probabilitatea cea mai mic de modificare a valorilor - alegerea cheii candidat cu probabilitatea cea mai mic de pierdere a unicitii - alegerea cheii candidat cu cele mai puine caractere i cel mai uor de utilizat de ctre utilizator. Cheile primare i cele alternative (dac exist) se nregistreaz n dicionarul de date. Opional, cand este adecvat se poate realiza i specializarea/generalizarea tipurilor de entiti. n aceast etap se identific entitile superclas i subclas. Reprezentarea modelului entitate relaie se poate face fie prin specializare, fie prin generalizare. n oricare dintre ele se va ncerca a se reprezenta entitile importante i relaiile dintre acestea. Desenarea diagramei se realizeaz pentru o anumit vedere a utilizatorului asupra sistemului. 38

Validarea de ctre utilizator a modelului de date conceptual este util pentru a garanta c modelul este o reprezentare a punctului de vedere al utilizatorului. Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic. Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii de caz, problematizarea, comparaii ntre diferite tipuri de sisteme informaionale pentru care se genereaz baze de date, proiectarea conceptual cu tot ce presupune ea. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi obiectivi, semiobiectivi, de tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor executa efectiv proiectarea conceptual a bazelor de date. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

39

Fia suport 4.2 Proiectarea logic a bazelor de date


Proiectarea logic a bazelor de date este procesul de constituire a unui model al informaiilor utilizate n cadrul sistemului informaional al companiei, bazat pe un anumit model de date, dar independent de sistemul de gestiune al bazelor de date, precum i de alte consideraii de ordin fizic. Principalele etape ale proiectrii logice a bazelor de date cuprind: - constituirea i validarea unui model de date logic local pentru fiecare vedere a utilizatorului - constituirea i validarea unui model de date logic global n etapa de constituire i validare a modelului logic local se va urmri obinerea unui model al tuturor vederilor utilizatorului care s fie corect i cuprinztor. Pentru asigurarea acestor obiective se vor parcurge urmtorii pai: 1. Transpunerea modelului de date conceptual local n modelul de date logic local: 2. Extragerea relaiilor 3. Validarea modelului prin normalizarea relaiilor 4. Validarea modelului conform tranzaciilor utilizatorului 5. Desenarea diagramei entitate relaie 6. Definirea constrngerilor de integritate 7. Validarea modelului mpreun cu utilizatorul Fa de cele de mai sus putem spune c activitile asociate rafinrii unui model de date conceptual pentru a obine un model de date logic includ: eliminarea relaiilor de tip n:m, eliminarea relaiilor complexe, eliminarea relaiilor recursive, eliminarea relaiilor cu atribute, eliminarea atributelor cu valori multiple, reexaminarea relaiilor de tip 1:1 i eliminarea relaiilor redundante. n ceea ce privete extragerea relaiilor se vor identifica relaiile tari i slabe, relaiile binare (1:1 i 1:n), relaii de tip superclas/subclas i se vor documenta relaiile i atributele cheilor strine. Modelul de date logic poate fi validat prin utilizarea tehnicii de normalizare i conform tranzaciilor pe care trebuie s le accespte acesta. Normalizarea este utilizat pentru a mbunti modelul, astfel nct acesta s satisfac diversele constrnderi care evit dublarea inutil a datelor. Prin normalizare se garanteaz c modelul utilizat este coerent i are o redundan minim i o stabilitate maxim. Pentru a proteja datele din cadrul unei vederi se vor considera urmatoarele tipuri de constrngeri de integritate: - datele cerute - domeniile atributelor - integritatea atributelor - integritatea referenial - constrngerile impuse de companie n etapa de constituire i validare a modelului logic global se vor efectua operaii precum: - mbinarea modelelor de date logice locale n modelul global - validarea modelului de date global 40

- verificarea n vederea dezvoltrii viitoare - desenarea diagramei entitate relaie finale - validarea modelului mpreun cu utilizatorul Pentru mbinarea modelelor de date logice locale n vederea obinerii modelului global pot avea loc revizuiri de denumire ale entitilor, atributelor, relaiilor. Se pot mbina entiti sau relaii, se pot aduga alte entiti sau relaii, au loc verificri ale cheilor primare, strine, se verific constrngerile i se reactualizeaz documentaia.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic. Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii de caz, problematizarea, comparaii ntre diferite tipuri de sisteme informaionale pentru care se genereaz baze de date, proiectarea logic cu tot ce presupune ea. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi obiectivi, semiobiectivi, de tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor executa efectiv proiectarea logic a bazelor de date. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

41

Fia suport 4.3 Proiectarea fizic a bazelor de date


Proiectarea fizic presupune realizarea unei descrieri a implementrii bazei de date ntro capacitate de stocare secundar. n cadrul acestui proces se descriu structurile de stocare i metodele de acces utilizate pentru obinerea unui acces eficient la date. Etapele proiectrii fizice a bazelor de date sunt: I. Adaptarea modelului de date logic global pentru SBGD-ul int a. Proiectarea relaiilor de baz pentru SGBD-ul int b. Proiectarea constrngerilor companiei pentru SGBD-ul int II. Proiectarea reprezentrii fizice a. Analizarea tranzaciilor b. Alegerea organizrii fiierelor c. Alegerea indexurilor secundare d. Controlarea redundanei e. Estimarea cerinelor privind spaiul de memorie III. Proiectarea mecanismelor de securitate a. Proiectarea vederilor utilizatorilor b. Proiectarea regulilor de acces IV. Monitorizarea i reglarea sistemului operaional La pasul I se vor transforma relaiile extrase din modelul logic global ntr-o form care s poat fi implementat n sistemul de gestiune a bazelor de date utilizat. n acest sens se vor verifica urmtoarele elemente: - dac sistemul accept definirea cheilor primare, strine i alternative - dac sistemul accept definirea datelor necesare (ex.: atribute not null) - dac sistemul accept definirea domeniilor identificate - dac sistemul accept definirea constrngerilor companiei - cum se creeaz relaiile de baz. Pe parcursul proiectrii fizice se utilizeaz elementele definite n dicionarul de date. n acest sens pentru fiecare relaie identificat n proiectarea logic se va defini relaia de baz cu urmtoarele elemente: denumirea relaiei, o list cu atributele simple (ntre paranteze), cheia primar, alternativ, strin (unde e cazul), constrngerile de integritate corespunztoare cheilor strine identificate. Pentru fiecare atribut se vor folosi informaii (din dicionarul de date) precum: domeniul acestuia, valoarea prestabilit (dac este cazul), dac atributul conine null-uri, dac este derivat i n caz afirmativ formula de calcul. Constrngerile companiei depind de facilitile oferite de SGBD. De asemenea aceste constrngeri pot fi realizate i n cadrul programelor care alctuiesc sistemul informatic. n cadrul proiectrii reprezentrii fizice se determin organizarea fiierelor, metodele de acces la datele din baza de date astfel nct s se asigure stocarea datelor ct mai eficient att ca spaiu ct i ca mod de acces. Pentru a asigura eficiena maxim se vor analiza urmtorii factori: transferul tranzaciilor (numrul de tranzacii ntr-un interval de timp), timpul de rspuns (timpul scurs pn la ncheierea unei tranzacii), posibilitatea mbuntirii performanelor prin introducerea de indexuri secundare i capacitatea de stocare pe disc.

42

De asemenea se va ine cont i de resursele hardware ale sistemului: memoria intern, CPU, capacitatea de stocare, reeau de calculatoare. n ceea ce privete asigurarea securitii se vor proiecta sisteme de securitate conform cerinelor companiei. n acest sens se vor proiecta vederile utilizatorilor aa cum au fost identificate n proiectarea conceptual i reguli de acces pentru utilizatorii sistemului informatic. Din punct de vedere al monitorizrii i reglrii sistemului operaional se vor analiza posibilitile de obinere a performanelor maxime i de a reflecta ct mai facil cerinele companiei. Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic. Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii de caz, problematizarea, comparaii ntre diferite tipuri de sisteme informaionale pentru care se genereaz baze de date, proiectarea fizic cu tot ce presupune ea. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi obiectivi, semiobiectivi, de tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor executa efectiv proiectarea fizic a bazelor de date. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

43

Tema 5 Sisteme de gestiune a bazelor de date


Fia suport 5 Sisteme de gestiune a bazelor de date

Sistemul de gestiune a bazelor de date const ntr-un pachet software care asigur interaciunea dintre programele de aplicaie ale utilizatorului i baza de date. Sistemele de gestiune a bazelor de date ofer utilizatorilor urmtoarele faciliti: instrumete pentru definirea bazelor de date: limbaj de descriere a datelor (DDL) instrumente pentru manipularea datelor: limbaje (procedurale i neprocedurale) pentru manipularea datelor (DML) acces controlat la date prin: sisteme de securitate, sisteme care asigur integritatea datelor, sisteme de control al concurenei, sisteme de restaurare n caz de avarie. Instrumente de vizualizare prin limbajul de descriere a datelor se pot descrie moduri de vizualizare a datelor. Astfel, utilizatorii i pot descrie propriul mod de vizualizare a datelor asigurnd astfel un anumit grad de securitate datelor, o personalizare a aspectului bazei de date i o imagine coerent a structurii bazei de date. n figura de mai jos este ilustrat un exemplu de tratare prin baze de date. Figura ilustreaz cum departamentul secretariat i contabilitate i utilizeaz programele de aplicaie proprii pentru a accesa baza de date prin intermediul sistemului de gestiune a bazelor de date.

Intrri/ieiri

Secretariat

SGBD

Baza de date

Intrri/ieiri

Contabilitate

Figura 1 - Prelucrarea datelor din bazele de date

Componentele unui SGBD innd cont c un sistem de gestiune a bazelor de date este un mecanism computerizat de meninere a evidenei unei anumite activiti, folosind sistemul de baze de date componentele acestuia sunt: 44

Hardware Software Date Proceduri Persoane

Hardware. Sistemele de baze de date sunt instalate, de regul, pe calculatoare PC standard, pn la staii multiprocesor puternice. Performanele generale de operare ale calculatorului (numrul i viteza procesoarelor, dimensiunea i viteza de operare a memoriei principale etc.) influeneaz n mod corespunztor performanele sistemului de baze de date. Elementele specifice de hardware depind i de sistemul de baze de date utilizat dar i de cerinele organizaiei. Unele sistemele de baze de date necesit un anumit tip de hardware sau de sistem de operare, n timp ce altele pot funciona pe o diversitate de elemente hardware i platforme. Dar, ceea ce intereseaz n mod deosebit n utilizarea unui calculator pentru un sistem de baze de date, este capacitatea memoriei interne, viteza procesorului i spaiul de pe disc. n cadrul unei instituii de nvmnt poate fi definit urmtoarea configuraie hardware pentru baza de date ce conine date despre elevii i profesorii din aceast instituie:

Secretar 1

Administrator

Secretariat Secretar 2

Server de baze de date

Administraie Pedagog

Secretar 3

Contabil 1 Baza de date

Catedra 1 Cancelarie

Contabilitate Contabil 2

Catedra 2

Figur 2 - Configuraia hardware pentru baza de date a unei instituii de nvmnt

Configuraia prezentat n figura 2 conine un server de date pe care se afl baza de date i programele care administreaz i controleaz accesul la baza de date i alte PC-uri aflate n diverse locaii/departamente pe care se afl aplicaiile utilizatorilor. Aceast arhitectura poart denumirea de client-server. Software. Aceast component conine programele SGBD-ului, programele aplicaiei i sistemul de operare (de pe staii sau dac este cazul dintr-o reea). Programele aplicaiei sunt scrise n limbaje de programare cum ar fi: Visual Basic,Visual C++, Java 45

etc. SGBD-uile pot avea propriile instrumente care permit dezvoltarea rapid de aplicaii. Datele memorate ntr-o baz de date sunt date persistente, adic date care rmn memorate pe suport magnetic, independent de execuia programelor de aplicaii. Datele persistente ale unei baze de date se introduc, se terg sau se actualizeaz folosind date de intrare (provenite de la tastatur, din citirea unor fiiere de date sau din recepionarea unor mesaje). Datele de intrare sunt, n general, date nepersistente; ele sunt generate de utilizatori i sunt memorate (devenind date persistente) numai dup ce au fost validate (acceptate) de ctre SGBD. Datele de ieire ale unui sistem de baze de date sunt, de asemenea, date nepersistente; ele provin din operaii de interogare a bazei de date i sunt puse la dispoziia utilizatorului (sub form de afiri, rapoarte tiprite, etc). Procedurile se refer la instruciunile i regulile ce permit proiectarea i utilizarea bazei de date. Utilizatorii unui SGBD au nevoie de proceduri cum ar fi: - descrierea unei sesiuni de lucru - pornirea, identificarea n sistem i oprirea SGBD-ului - efectuarea de copii de siguran - restaurarea bazei de date etc. Persoanele care sunt implicate n lucru cu bazele de date i SGBD-urile pot fi: adiministratorii bazei de date, proiectanii bazei de date, programatorii de aplicaii, operatorii/utilizatorii finali. Administratorul bazei de date este o persoan (sau un grup de persoane) cu nalt calificare tehnic care are ca sarcin meninerea funcionalitii bazei de date prin stabilirea drepturilor de acces ale diferitelor categorii de utilizatori, prin efectuarea operaiilor periodice de salvare a datelor (backup), prin monitorizarea performanelor sistemului i refacerea datelor atunci cnd este necesar. Proiectanii bazei de date realizeaz analiza organizaiei i identific datele, relaiile dintre acestea i constrngeri asupra acelor date care vor fi stocate n baza de date. Programatorii de aplicaii sunt cei care dezvolt aplicaiile de baze de date, folosind limbaje de programare de nivel nalt (C++, Java, Basic etc.) i biblioteci care permit ncorporarea operaiilor de acces la baza de date. Utilizatorii finali sunt acei utilizatori care acceseaz baza de date prin intermediul unui program de aplicaie care le confer drepturi limitate de acces la date pentru anumite operaii de prelucrare. Utilizatorii finali sunt persoane cu pregtire tehnic minimal, care efectueaz un volum mare de operaii asupra bazei de date, dar nu trebuie s cunoasc mai mult dect posibilitile oferite de programul pe care l utilizeaz. De exemplu, utilizatorii finali ai unei aplicaii de gestiuune a elevilor dintr-o coal (colegiu tehnic) pot fi secretarele care efectueaz un numr mare de operaii asupra datelor din sistem (introducerea elevilor, introducerea situaiilor colare, organizarea examenelor de absolvire, tiprirea diplomelor de absolvire, situaii statistice etc.), fr a fi necesar s cunoasc ntreaga structur a bazei de date. Avantajele i dezavantajele folosirii SGBD-urilor

46

Utilizarea sistemelor de gestiune a bazelor de date ofer utilizatorilor mai multe avantaje dar i o serie de dezavantaje. Printre avantajele utilizrii SGBD-urilor putem enumera: controlul redundanei datelor. Nu se poate vorbi de eliminarea total a redundanei datelor deorece ci de o diminuare i inerea sub control a multiplicrii i stocrii acelorai date fapt datorat modelrii relaiilor cnd poate fi util dublarea unor articole de date cheie. coerena datelor. Controlul redundanei atrage dup sine i coerena datelor. Dac un articol este memorat ntr-un singur loc atunci la o eventual actualizare aceasta nu va fi operat dect o singur dat, noua valoare fiind disponibil n timp real tuturor utilizatorilor bazei de date. partajarea datelor. Aceleai date pot fi utilizate de ctre operatori din diverse compartimente ale organizaiei. Se poate defini i un sistem de partajare, adic la ce date i care este autoritatea fiecrei persoane care acceseaz baza de date. integritatea crescut a datelor din baza de date. Integritatea datelor se obine prin definirea unui sistem de validare a datelor dar i la coerena acestora. Integritatea datelor este asigurat i prin: politici de acces difereniate, gestionarea tranzaciilor, refacerea datelor. De exemplu n cadrul unei aplicaii de gestiune a elevilor al unei coli, mutarea elevilor dintr-o clas inferioar ntr-o clas superioar, la finele anului colar, nu se poate face dect dac elevul a promovat (are medii peste cinci) la toate dicipinele. securitate crescut. Securitatea datelor in baza de date se realizeaz prin protecia utilizatorilor neautorizai i prin drepturile i autoritatea celor care identific n sistem. n acest sens administratorului bazei de date i revine rolul de a defini politica de securitate i acces pentru toi utilizatorii bazei de date. Aplicarea standardelor. Utilizarea SGBD-urilor permite administratorului bazei de date s definiasc anumite standarde pentru modul de stocare a datelor, fapt ce permite interschimbul de informaii ntre diferite instituii. Compactitate ridicat: volumul ocupat de sistemele de baze de date este mult mai redus dect volumul ocupat de documente scrise sau de fiiere necorelate. Vitez mare de regsire i actualizare a informaiilor . Independena datelor fa de suportul hardware utilizat . Sistemele de gestiune a bazelor de date ofer o vedere (view) extern a datelor, care nu se modific atunci cnd se schimb suportul de memorare fizic, ceea ce asigur imunitatea structurii bazei de date i a aplicaiilor la modificri ale sistemului hardware utilizat Concuren mbuntit. n multe sisteme de gestiune a bazelor de date se administreaz accesul concurent la date. Facilitile de salvare i refacere a datelor permit minimizarea pierderilor de date n cazul unor avarii sau defeciuni ale sistemelor hardware. Sistemele de gestiune a bazelor de date au i unele dezavantaje dintre care putem aminti: Complexitatea. Funcionarea unui SGBD de calitate tinde s devin extrem de complex, iar pentru ca proiectanii i administratrorii bazelor de date s profite de toate facilitile trebuie s cunoasc toate elementele de funcionalitate alte SGBD-urilor; 47

Dimensiunea. Avnd n vedere complexitatea SGBD-urilor spaiul ocupat de acestea tinde s creasc din ce n ce mai mult. Costurile. Pretul unui sistem de gestiune a bazelor de date este foarte ridicat i la acesta se adaug i costurile echipamentelor hardware. Clasificarea Sistemelor de gestiune a bazelor de date Clasificare dup modelul de date. Majoritatea sistemelor de baze de date actuale sunt realizate n modelul de date relaional sau n modelul de date obiect. Dezvoltarea continu a acestor modele a condus ctre o nou categorie de baze de date, numite obiect-relaionale, care combin caracteristicile modelului relaional cu cele ale modelului obiect. De asemenea, mai sunt nc n funciune baze de date n modele mai vechi (modelul ierarhic sau modelul reea). Clasificare dup numrul de utilizatori . Majoritatea sistemelor de baze de date sunt sisteme multiutilizator, adic permit accesul concurent (n acelai timp) a mai multor utilizatori la aceeai baz de date. Un numr redus de sisteme de baze de date sunt de tip monoutilizator, adic suport accesul doar al unui singur utilizator (la un moment dat). Clasificare dup numrul de staii pe care este stocat baza de date . Exist dou categorii de sisteme de baze de date: centralizate i distribuite. Un sistem de baze de date centralizat (Centralized Database System) este un sistem de baze de date n care datele i sistemul de gestiune sunt stocate pe o singur staie (calculator). Un sistem centralizat poate suporta unul sau mai muli utilizatori, dar, n orice situaie, datele i sistemul de gestiune rezid n ntregime pe o singur staie. Un sistem de baze de date distribuit (Distributed Database System) poate avea att datele, ct i sistemul de gestiune, distribuite n mai multe staii interconectate printr-o reea de comunicaie. Limbajele bazelor de date Pentru definirea i manipularea datelor sistemele de gestiune a bazelor de date folosesc dou limbaje i anume: unul pentru descrierea datelor i altul pentru manipularea lor.

Limbajul de definire a datelor (DDL) permite administratorului bazei de date s descrie i s denumeasc entitile cerute de sistemul informatic i relaiile care pot exista ntre acestei n funcie de cerinele aplicaiei. Astfel, schema bazei de date este specificat printr-un set de definiii exprimate n limbajul de definire a datelor. Rezultatul compilrii instruciunilor este un set de tabele stocate n fiiere speciale denumite catalog de sistem. Limbajul de manipulare a datelor asigur un set de procedee ce permit operaii de baz pentru manipularea datelor coninute n baza de date: - adaugarea de date noi n baza de date - modificri ale datelor stocate n baza de date 48

regsirea datelor coninute n baza de date tergerea de date din baza de date

Exemple de SGBD-uri Sistemul Oracle este un sistem de gestiune a bazelor de date multi-utilizator puternic, cu implementri pe toate platformele (Windows, Unix, Linux), care ofer att performane de execuie ridicate, ct i un grad nalt de protecie i securitate a datelor. n toate versiunile, Oracle ofer implementarea complet a caracteristicilor modelului relaional (conform standardului SQL2), iar ultimele versiuni (Oracle8i, Oracle9i i Oracle 10g) sunt sisteme de gestiune obiect-relaionale distribuite, implementnd extensiile obiect-orientate prevzute n standardul SQL3 i oferind posibilitatea de dezvoltare a bazelor de date distribuite. SQL Server este sistemul de gestiune a bazelor de date relaionale dezvoltat de firma Microsoft pentru sistemele de operare Windows. Au existat mai multe versiuni, versiunea actual (2008) fiind SQL Server 2005. n toate versiunile sistemul SQL Server suport complet standardul SQL2, cu implementarea performant a trsturilor avansate de stocare i prelucrare a datelor (integritate referenial, subinterogri, triggere, gestiunea tranzaciilor, etc). Microsoft Access este unul din cele mai cunoscute sisteme de gestiune a bazelor de date relaionale pe platforme de calculatoare personale. MS Access dispune de un sistem de control al bazei de date ( database engine) i o interfa grafic pentru interaciunea cu utilizatorul. Aplicaiile de baze de date n MS Access se pot dezvolta cu mult uurin datorit generatoarelor de aplicaii ( Wizards) care permit proiectarea vizual a bazelor de date i a formularelor ( forms) pentru interfeele grafice. MS Access este folosit n special pentru aplicaii personale sau pentru mici afaceri . MySQL este un sistem de gestiune a bazelor de date relaionale cu implementri pentru sistemele de operare Windows, Linux, Unix. Acest sistem este compatibil cu standardul SQL2, dar unele prevederi ale standardului sunt implementate parial. Versiunea actual este versiunea 5.0 care ofer vederi, proceduri stocate, triggere caracteristici care lipseau in versiunile precedente.

49

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se pot desfura n sal de curs sau n laboratorul de informatic, dotate cu videoproiector, tabl/flipchart. Se poate lucra individual sau pe grupe, profesorul va aborda toate aspectele legate de SGBD-uri, va pune accent pe componentele SGBD-urilor precum i pe avantajele i dezavantajele utilizrii bazelor de date. De asemenea, profesorul va exemplifica i caracteriza diverse tipuri de sisteme prezentndu-le comparativ n funcie de caracteristicile fiecruia. Dac se lucreaz pe grupe se pot da ca teme de documentare pentru elevi s descrie diferite sisteme cu avantajele i dezavantajele fiecruie, precum i utilitatea fiecruia. n continuarea acestei teme profesorul va prezenta un Sistem de gestiune a bazelor de date pentru care coala are licen de utilizare. Pentru a nu restriciona sau condiiona predarea, prezentul material nu va face prezentarea niciunui SBGD ci se rezuma doar la aspectele generale pe care trebuie sa le dein orice SGBD. n ceea ce privete evaluarea / autoevaluarea se poate utiliza un test cu itemi de tip mperechere, completare, alegere multipl precum i itemi semiobiectivi, problematizare mai ales n ceea ce privete evaluarea lucrului cu un SGBD, pentru care coala deine licen de utilizare. Se poate cere elevilor s identifice elemente greit utilizate i s le corecteze. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

50

Tema 6 Elemente de algebr relaional


Fia suport 6 Operaii relaionale
1. Selecia condiie (Relaie) operator unar care acioneaz asupra unei rela ii i definete una nou ce conine toate acele tupluri care ndeplinesc o anumit condiie. Condiia este specificat este o formul logic ce poate con ine: nume de atribute, constante, operatori logici (AND, OR, NOT), operatori de compara ie (<, >, <=, >=, =, !=). Exemplu: Fie relaia Elevi

Listai toii elevii care au anul naterii mai mare dect 1990. AnNastere>1990 (Elevi) Are ca efect afiarea relaiei:

2. Proiecia col1, col2,...coln(Relaie) acioneaz asupra unei singure rela ii i define te una nou care conine un subset vertical al ei, extrgnd valorile atributelor specificate (col1, col2,...coln) eliminnd dublurile. Exemplu: Fie relaia Clasa

Realizai o list cu toate clasele specificnd numele, specializarea i forma de nvmnt. NumeClasa, NumeSpecializare, NumeForma(Clase), are ca efect:

51

3. Produsul cartezian Relaie1 x Relaie2 definete o nou relaie care reprezint o concatenare a fiecrui tuplu din Rela ie 1 cu fiecare tuplu din Relaie 2. Produsul cartezian este o operaie binar. Exemplu: Relaie1
A X1 X2 X3 B Y1 Y2 Y3 C Z1 Z2 Z3 A X1 X1 X2 X2 X3 X3 B Y1 Y1 Y2 Y2 Y3 Y3 C Z1 Z1 Z2 Z2 Z3 Z3 D 1 2 1 2 1 2 E 1 2 1 2 1 2 D 1 2

Relaie2
E 1 2

Relaie1 x Relaie2

Fiind dou relaii elevi i clase s se listeze elevii i clasa n care ace tia sunt nscri i. Se vor specifica: numele, specializarea i forma de nv mnt, precum i numele, prenumele i iniiala elevului. NumeClasa, NumeSpecializare, NumeForma(Clase) x NumeElev, InitialaElev, PrenumeElev(Elevi), are ca efect:

Se observ c dac Relaia 1 are nu numr de i tupluri i n atribute iar Rela ia 2 are un numpr de j tupluri i m atribute atunci Rela ie1 x Rela ie2 va avea (i*j) tupluri i (n+m) atribute. 4. Reuniunea Relaie1 Relaie2. Dac relaie 1 are i tupluri, iar rela ia 2 are j tupluri atunci reuniunea lor reprezint o rela ie cu maxim i+j tupluri ob inut prin concatenarea acestora excluznd tuplurile duble. 52

Observaie: reuniunea a dou relaii presupune c acestea au aceea i numr de atribute ale cror domenii coincid. Altfel spus ele sunt compatibile la reuniune. Uneori cnd se dorete reuniunea a dou rela ii este necesar mai nti opera ia de proiecie i eliminarea dublurilor i apoi reuniunea. Exemplu: Presupunnd c n baza de date exist dou rela ii una care re ine clasele de la liceu teoretic (ClaseTeoretic) i alta care reine clasele de la liceu tehnologic (ClaseTehnologic) se poate realiza o rela ie care s con in toate clasele din liceu.

NumeClasa,
NumeForma

NumeSpecializare,

NumeForma

(ClaseTeoretic)

NumeClasa,

NumeSpecializare,

(ClaseTehnologic)

5. Diferen - Relaie1 - Relaie2 definete o relaie care se obine doar din tuplurile care sunt n prima relaie i nu sunt n a doua. Prin urmare rela iile trebuie s fie compatibile la reuniune. Exemplu: Presupunnd c n baza de date exist relaia AniStudiu care re ine anii de studiu (IXXII patru pentru liceu zi, IX-XIII cinci pentru liceu seral,I-II doi pentru coala postliceal) i relaia AniTerminali care reine pentru fiecare nivel de nv mnt anii terminali fcnd diferena dintre cele dou tabele se pot ob ine anii intermediari.

NumeAn, NivelScoala, NumeForma (AniStudiu) - NumeAn, NivelScoala, NumeForma (AniTerminali)


6. mprirea Relaie1 Relaie2. Problem: S presupunem c avem dou relaii Elevi (ce con ine date de identificare a elevilor dintr-o coal) i EvidentaLecii (ce con ine o bibliotec virtual cu lec ii de informatic, leciile sunt grupate pe capitole). Cerin: Ne intereseaz toi elevii care au accesat capitolele care au exact 3 lec ii. Mod de realizare: Pentru aceasta am putea obine o rela ie (S) cu capitolele care au exact 3 lecii i o relaie (R) cu elevii care au accesat capitole cu orice numr de lec ii. Dup care vor efectua mprirea R S i obinem ceea ce ne interesa. S presupunem c avem relaia R cu un numr de m atribute i rela ia S cu un numr de n atribute incluse n atributele lui R (m mai mare ca n). Prin operaia de mprire a lui R la S se ob ine o rela ie cu un numr de m-n tupluri la care, adugnd orice tuplu din S, se ob ine un tuplu din R. R S = R1 - R2 unde: R1 = x (R) R2 = x ((R1 x S) R) X = mulimea atributele lui R care nu exist n S. 7. Intersecia Relaie1 Relaie2 . Aceast operaie are ca rezultat ob inerea unei relaii ce conine toate tuplurile comune celor dou rela ii. Rela iilor trebuie s fie compatibile la reuniune. Relaie1 Relaie2 = Relaie1 - (Relaie1 - Relaie2) Exemplu:
Relaie1 Relaie2 Relaie1 Relaie2

53

A X1 X2 X3

B Y1 Y2 Y3

C X1 X1

D Y1 Y2

A X1

B Y1

8. Uniunea Aceast operaie permite regsirea informa iei din mai multe rela ii corelate. Compunerea este o operaie binar care are ca rezultat o nou rela ie n care fiecare tuplu este o combinaie a unui tuplu din prima rela ie cu un tuplu din a doua rela ie. Operaia de uniune este o operaie derivat ea putnd fi simulat printr-o opera ie de produs cartezian, de selecie i de proiec ie. n general se construie te un produs cartezian din care se elimin tupluri prin selec ie i atribute prin proiec ie. Uniunea are mai multe forme sub care poate fi utilizat: theta uniunea i echi uniunea uniunea/compunerea natural uniunea / compunerea extern semi-uniunea Theta uniunea R F S - dintre dou relaii R i S se definete care o rela ie care conine tuplurile ce satisfac un predicat F din produsul cartezian al rela iilor R i S. Predicatul F reprezint o condiie de forma: R.ai operator S.bi, unde operator reprezint unul dintre operatorii relaionali: <, <=, >, >=, = <>. Theta uniunea poate fi scris cu ajutorul selec iei i a produsului cartezian astfel: R F S= F(R x S). Uniunea natural R S este o operaie binar i const n uniune ntre dou rela ii R i S care au atribute comune identice. Avnd dou relaii elev (IdElev, NumeElev, CNP, IdClasa) i clase (IdClasa, NumeClas, Specializare) ce au ca atribute comune IDClasa putem crea o nou rela ie n care s rein date despre elev (Nume, CNP) i numele i specializarea clasei n care se afl elevul. Uniunea extern R S reprezint un tip de uniune n care tuplurile care nu au valori similare n coloanele comune ale relaiei S, sunt de asemenea incluse n rela ia rezultat. Acest tip de uniune este o uniune natural la care se adaug i tuplurile din S care nu au corespondent n R sau sunt completate cu valori null. Semi-uniunea R F S reprezint un tip de uniune ce define te o rela ie care con ine tupluri ale relaiei R ce particip n uniunea dintre R i S. Semiuniunea poate fi rescris astfel: R F S =A (R F S), unde A reprezint atributele lui R.

54

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea acestui coninut va face obiectul i pentru orelor alocate laboratorului tehnologic, mai ales n ceea ce privete punerea n practic a operaiilor. Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii de caz, problematizarea. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi obiectivi, semiobiectiv, de tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor executa operaiile studiate. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

55

Tema 7 Interogarea bazelor de date. Limbajul SQL


Fia suport 7.1 Concepte generale
Limbajul SQL (limbaj structurat de interogare) este un limbaj neprocedural, orientat spre transformri ce are dou componente: una care permite descrierea datelor (limbaj de descrierea a bazei de date DDL) i cealalt care permite manipularea datelor (limbaj de manipulare a datelor DML). Limbajul SQL nu conine instruciuni IF, WHILE.,DO.., FOR, REPEAT..etc.

Scopul limbajului SQL este acela de a permite utizatorului faciliti pentru: crearea bazei de date i a relaiilor dintre tabele/entitiutil gestiunoarea datelor din baza de date: inserarea, modificarea tergerea datelor din baza de date - transformri / extrageri dup criterii complexe asupra datelor din baza de date pe baza relaiilor care exist ntre tabele/entiti - portabilitate pentru diferite tipuri de SGBD-uri Structura comenzilor este simpl fiind definit de: o cuvinte cheie standard din limba englez, care reprezint partea fix a comenzii: CREATE TABLE ...., SELECT..., INSERT INTO..., UPDATE..... (aceste cuvinte nu se scriu pe mai multe rnduri) o cuvinte definite de utilizator partea flexibil a comenzii, care reprezint denumiri de tabele, cmpuri din tabele, relaii, coloane etc scrise conform unor reguli de sintax. o Cuvintele nu sunt sensibile la tipul de litere Definirea datelor Identificatorii SQL sunt utilizai pentru a identifica obiecte din baza de date precum: tabele, coloane din tabele. Denumirea dat unui identificator trebuie s respecte urmtoarele reguli: ncepe ntotdeauna cu o liter nu conine spaii libere nu poate fi mai lung de 128 de caractere n general identificatorul este sugestiv pentru obiectul pe care l reprezint

Tipuri de date SQL: se utilizeaz cinci tipuri de date: caracter, bit, numeric exact, numeric aproximativ, dat-or, interval.
Tip de date Formatul de specificare Caracter cu lungime Identificator CHAR(lungime) fix Descriere Dac irul este declarat cu lungime fix iar lungimea efectiv este mai mic dect lungimea declarat atunci n partea dreapt se vor

56

Caracter cu lungime variabil

Identificator VARCHAR(lungime)

Bit

Identificator BIT(lungime) Identificator BITVARYING (lungime) id NUMERIC(precizie, scal) id DECIMAL(precizie, scal) id INTEGER id SMALLINT

Numeric exact

Numeric aproximativ

FLOAT(precizie) REAL DOUBLE PRECISION

Dat calendaristic / or

DATE TIME(precizie_or) [WITH TIME ZONE]2 TIMESTAMP(precizie_or) [WITH TIME ZONE]

memora banck-uri. Exemplu: NumeElev CHAR(15) NumeElev = Ana se va retine sirul Ana urmat de 13 blank-uri Dac irul este declarat cu lungime variabil i dac se reine un ir mai scurt atunci se vor memora dect caracterele introduse. Exemplu: NumeElev VARCHAR(15) Dac se va introduce irul Ana se vor reine doar cele trei caractere. Tipul este folosit pentru a reine iruri de biti (0 i 1). Analog ca la tipul caracter exist i aici lungime fix (BIT) i lungime variabil (BIT VARYING). Aceste tipuri de date sunt utilizate pentru a defini numere cu o reprezentare exact. Primele dou tipuri menionate sunt utilizate pentru a stoca date de tip zecimal. Scala prestabilit este 0. Precizia este definit la implementare. INTEGER se poate prescurta i INT i este folosit pentru numere ntregi mari. SMALLINT este utilizat pentru numere ntregi mici. id numele identificatorului Exemplu: Salariu DECIMAL (7,2) Media NUMERIC (2,2) Nota SMALLINT Aceste tipuri sunt utilizate pentru a defini numerele reale care au o reprezentare fix. Precizia controleaz exactitatea mantisei. Precizia tipurilor REAL i DOUBLE PRECISION este definit la implementare. Tipul DATE este utilizat pentru a stoca date de tip calendaristic, prin utilizarea cmpurilor YEAR, MONTH, DAY. Tipul TIME este utilizat pentru stocarea orelor, prin utilizarea cmpurilor: HOUR, MINUTE, SECOND. Tipul TIMESTAMP este utilizat pentru stocarea datelor i orelor. Precizie_or - precizia pentru cmpul SECOND. Pentru tipul TIME

Cu zon orar

57

Interval

INTERVAL cmp_nc TO cmp_sf cmp_singular_data_ora

precizia prestabilit este 0 (secunde ntregi), iar pentru TIMESTAMP este 6 microsecunde. Acest tip este utilizat pentru a reprezenta perioade de timp. Exist dou clase de date de tip interval: an-lun i zi-or. cmp_nc =YEAR/ MONTH/ HOUR/ MINUTE cmp_sf = YEAR/ MONTH/ HOUR/ MINUTE / SECOND cmp_singular_data_ora = cmp_nc/SECOND

Limbajul SQL are ncorporat i un set de operatori i funcii ce pot fi utilizate n obinerea de expresii. - Operatorii aritmetici (+, -, *, /), operatori relaionali (<,><=,>=, <>), logici (AND, OR, NOT) - Funcii definite pe iruri de caractere: o CHAR_LENGTH(ir): returneaz lungimea unui ir de caractere o LOWER(ir): transform majusculele n litere mici o UPPER(ir): transform litere mari n mici o TRIM(LEADING/TRAILING/BOTH ir) elimin dintr-un ir caractere anterioare/posterioare/ambele o POSITION (ir1 IN ir2): returneaz poziia lui ir1 n cadrul lui ir 2 - Funcii definite pe tipul date DATA: o CURRENT_DATA : returneaz data curent o CURRENT_TIME:returneaz ora curent o CURRENT_TIMESTAMP: returneaz data i ora curent Comenzi pentru definirea datelor:
Comand Crearea unui tabel tergerea unui tabel Crearea unui index Eliminarea unui index Creare unei baze de date Sintax CREATE TABLE nume_tabel (nume_coloan1 tip_de date1, nume_coloan2 tip_de date2.............); DROP TABLE nume_tabel; CREATE [UNIQUE] INDEX nume_index ON nume_tabel (nume_coloan [ASC/DESC]); DROP INDEX nume_index; CREATE DATABASE denumire_baz_de_date

58

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea va face obiect i pentru ore alocate laboratorului tehnologic. Se poate lucra individual sau pe grupe. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi obiectivi i semiobiectivi. Se vor utiliza de asemenea probe practice n care elevii vor crea baze de date exersnd comenzile de definire a datelor precum i utilizarea identificatorilor, tipurilor de date operatorilor i funciilor predefinite. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

59

Fia suport 7.2 Interogri simple pentru manipularea datelor


Pentru manipularea datelor limbajul SQL pune la dispoziia utilizatorilor patru comenzi i anume: SELECT pentru efectuarea interogrilor de date din baza de date INSERT inserarea datelor ntr-un tabel UPDATE reactualizarea datelor dintr-un tabel DELETE tergere de date dintr-un tabel Comanda SELECT are forma general: SELECT [DISTINCT / ALL] */list_coloane FROM nume_tabel [WHERE condiie] [GROUP BY list_coloane] [HAVING condiie] [ORDER BY list_coloane] unde: - list_coloane, reprezint una sau mai multe coloane dintr-un table al bazei de date - nume_tabel, reprezint numele unui table din baza de date semnificaia clauzelor specificate: - SELECT specific coloanele care vor fi luate n considerare la ieire - FROM specific tabelul sau tabelele din care vor face obiectul comenzii - WHERE specific dac nregistrrile selectate (rndurile din tabele) ndeplinesc o anumit condiie - GROUP BY formeaz grupuri de rnduri cu aceeai valoare a coloanei - HAVING filtreaz grupurile supuse unei anumite condiii - ORDER BY - specific dac nregistrrile selectate sunt ordonate dup o anumit coloan Ordinea clauzelor nu poate fi schimbat. Clauzele obigatorii sunt SELECT i FROM. Prin clauzele sale comenda select are o multitudine de utilizri: Exemplu: Fie tabelul tabElevi

Dac se dorete regsirea tuturor rndurilor i a tuturor coloanelor tabelului Elevi se va utiliza: SELECT * FROM tabElevi; 60

Dac se dorete regsirea tuturor rndurilor dar doar a coloanelor NumeElev, PrenumeElevi i CNP se va utiliza: SELECT NumeElev, PrenumeElevi, CNP FROM tabElevi; Dac se dorete aflarea vrstei unui elev ca diferen dintre anul current i Anul naterii se va utiliza un camp calculate astfel: SELECT tabElevi.NumeElev, tabElevi.PrenumeElev, YEAR(date())[AnNastere] AS Varsta FROM tabElevi; Dac se dorete afiarea elevilor care au vrsta egal cu 19 ani: SELECT tabElevi.NumeElev, tabElevi.PrenumeElev, YEAR(date())[AnNastere] AS Varsta FROM tabElevi WHERE YEAR(date())-[AnNastere] = 19

Comanda INSERT Comanda are dou forme, prima permite introducerea de nregistrri (rnduri) ntr-un tabel, cea de-a doua permite copierea mai multor rnduri dintr-unul sau mai multe tabele ntr-un alt tabel. Sintaxa pentru prima form este: INSERT INTO denumire_tabel [(list_coloane)] VALUES (list_valori) unde: - denumire_tabel este numele tabelului n care se va face inserarea de rnduri - list_coloane reprezint lista coloanelor supuse indroducerii de date - list_valori reprezint datele efectiv ce vor fi introduse n tabel n coloanele specificate Exemplu: Fie tabelul tabClase ce reine date despre clasele unei coli. Dac se dorete introducerea unei nregistrri noi se va utiliza comanda: INSERT INTO tabClase (NumeClasa, Numespecializare, NumeForma, AnTerminal, IdAnStudiu) VALUES ('11As','Mate-info', 'seral', '5','27') Sintaxa pentru a doua form este: INSERT INTO denumire_tabel [(list_coloane)] SELECT .. unde: - denumire_tabel este numele tabelului n care se va face inserarea de rnduri - list_coloane reprezint lista coloanelor supuse indroducerii de date Comanda UPDATE Permite modificarea coninutului unor nregistrri (nregistrri) existente ntr-un tabel. Sintaxa comenzii este: UPDATE denumire_tabel SET nume_coloan1 = valoare1 [,nume_coloan2 = valoare2.] [WHERE condiie] 61

Exemplu: Fie tabelul tabArieCurriculara ce retine date despre responsabilii ariilor curricular dintr-o coal. Dac se dorete modificarea sefului ariei Om si societate se va utilize comanda:

tabArieCurriculara IdArie NumeArie SefArie Popescu Ion Popa Ana IDInstitutie 1 1 1 1 Tehnologii 2 Om si societate

3 Limba si Comunicare Iorga Madalina

UPDATE tabArieCurriculara SET tabArieCurriculara.SefArie = "Stoian Ramona" WHERE (((tabArieCurriculara.[SefArie]) Like "*Popa Ana*")); n cadrul comenzii s-a utilizat operatorul Like avnd semnificaia de egalitate pe iruri de caractere, iar n cadrul irului cutat s-au folosit caractere * pentru a se elimina eventualele spaii dinaintea, respective de dup irul cutat. Comanda DELETE Permite tergerea nregistrrilor (rndurilor) dintr-un tabel. Sintaxa comenzii este: DELETE FROM denumire_tabel [WHERE condiie] Unde: - denumire_tabel = tabelul din care se va face tergerea nregistrrilor - Condiie = se pot terge toare nregistrrile sau doar unele care ndeplinesc o anumit condiie specificat n clauza WHERE Exemplu: Fiind dat tabelul din exemplul anterior tabArieCurriculara dac se dore te tergerea nregistrrii ce are ca valoare a ariei Tehnologii se va utiliza: DELETE FROM tabArieCurriculara WHERE tabArieCurriculara.NumeArie Like "*Tehnologii*" Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic. Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii de caz, problematizarea. Se vor realiza o gam foarte larg de aplica ii astfel nct s se ating toate aspectele legate de comenzile prezentate, n special comanda SELECT care permite foarte multe variaii. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi de tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor executa comenzile utiliznd un SGBD. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu. 62

Fia suport 7.3 Interogri complexe pentru manipularea datelor

Funcii de grup Conform standardului ISO limbajul SQL pune la dispoziia utilizatorilor cinci funcii de grup: COUNT() returneaz numrul de valori dintr-o coloan specificat SUM() returneaz suma valorilor dintr-o coloan specificat AVG() returneaz media aritmetic a valorilor dintr-o coloan specificat MIN() returneaz cea mai mic valoare dintr-o coloan specificat MAX() returneaz cea mai mare valoare dintr-o coloan specificat - Aceste funcii opereaz asupra unei singure coloane dintr-un tabel i returneaz o singur valoare. - Funciile SUM i AVG opereaz doar asupra coloanelor ce rein date de tip numeric. - Funcia count poate fi utilizat n formatul COUNT(*) pentru a numra toate rndurile unui tabel incluznd null-urile i duplicatele. - Cu excepia funciei COUNT (*) toate funciile elimin nti null-urile i apoi returneaz valorile specific. - Pentru eliminarea duplicatelor, execepie fac funciile MIN i MAX, se va utiliza n cadrul argumentului funciei cuvntul cheie DISTINCT. - Funciile de grup pot fi utilizate doar n lista lui SELECT sau n clauza HAVING (va fi prezentata ulterior). Exemple:. Fie tabelul:
tabAngajati IDAngajat NumeAngajat Salariu Adresa 1 Popa Marin 2 Anca Viorel 3 Marin Ionela 4 Ion Simona 5 Stan Ion 2500 3000 3500 3000 3500 Functia Bucureti Designer Bucureti Programator Bucureti Analist Bucureti Programator Bucureti Administrator DB

Dac se dorete aflarea numrului de angajai se va folosi comanda: SELECT COUNT(NumeAngajat) AS TotalAngajati FROM tabAngajati; Dac se dorete aflarea angajatului cu salariului maxim, minim i mediu se va folosi comanda: SELECT MAX(Salariu) AS Maxim, MIN(Salariu) AS Minim, AVG (Salariu) AS Mediu FROM tabAngajati; Dac se dorete aflarea sumei totale a salariilor se va folosi comanda: SELECT SUM(Salariu) AS BugetSalariu FROM tabAngajati;

63

Gruparea rezultatelor Gruparea datelor este utilizat pentru a putea obine nregistrri sumatoare similare cu totalurile/subtotalurile utilizate n cadrul rapoartelor. Pentru a obine astfel de rezultate se utilizeaz n cadrul comenzii SELECT clauza GROUP BY, ce are ca efect gruparea datelor din tabele specificate n cadrul comenzii. Coloanele utilizate n clauz se numesc coloane de grupare. Dac n cadrul comenzii SELECT se utilizeaz clauza de grupare atunci rezultatul comenzii va avea o singur valoare pe grup. Coninutul comanzii SELECT va fi restricionat la: - Denumiri de coloane - Funcii de grup - Constante - Combinaii ale celor de mai sus. 1. Toate denumirile coloanelor se vor regsi n clauza GROUP BY, excepie doar dac coloana este utilizat de o funcie de gupare. 2. Dac n comand apare i clauza WHERE (mpreun cu GROUP BY) aceasta este aplicat prima, ulterior se formeaz grupele din ceea ce a selectat condiia lui WHERE. Exemplu: Fie tabelul
tabAngajati IDAngajat NumeAngajat Salariu Adresa 1 Popa Marin 2 Anca Viorel 3 Marin Ionela 4 Ion Simona 5 Stan Ion 6 Popescu Paul 7 Ion Ionel 9 Pop Silviu 2500 3000 3500 3000 3500 2500 2500 2500 Functia Bucureti Designer Bucureti Programator Bucureti Analist Bucureti Programator Bucureti Administrator DB Bucureti Designer Bucureti Designer Bucureti Programator Bucutreti Designer

8 Marinescu Silvia 3000

Dac se dorete numrul de persoane angajate i bugetul alocat salariilor pentru fiecare tip de funcie se va folosi: SELECT count(IdAngajat) TotalSalariu FROM tabAngajati GROUP BY Functia; AS NrPersoane, Functia, sum(Salariu) as

IdAngajat, respectiv Salariu nu se vor folosi n cadrul caluzei de grupare deoarece fac obiectul unei funcii de grup. Rezultatul aplicrii comenzii este:

64

Query1 NrPersoane Functia TotalSalariu 3500 3500 10000 9000 1 Administrator DB 1 Analist 4 Designer 3 Programator

n cazul n care ne-ar interesa s obinem doar numrul de persoane i bugetul pentru funciile n care sunt mai mult de 2 angajai, atunci putem utiliza o clauz de restrngere a gruprii diferit de WHERE. Acest clauz este HAVING. Comanda se ve scrie astfel: SELECT count(IdAngajat) AS TotalSalariu FROM tabAngajati GROUP BY Functia HAVING COUNT(IdAngajat)>1; Rezultatul aplicrii:
Query1 NrPersoane Functia TotalSalariu 10000 9000 4 Designer 3 Programator

NrPersoane,

Functia,

sum(Salariu)

as

Se va face distincie ntre WHERE i HAVING:


WHERE HAVING

Restrnge rndurile asupra Restrnge grupurile asupra crora se va aplica selecia crora se va aplica selecia

Selectarea datelor din mai multe tabele Uniunea simpl (interne) permite selectarea de coloane din unul sau mai multe tabele, pentru aceasta se va folosi comanda SELECT. n cazul n care se dorete selectarea din dou sau mai multe tabele acestea vor fi corelate prin intermediul unor cmpuri (coloane) ale cror valori sunt egale. Exemplu: fiind date dou tabele unul ce reine informaii despre elevii unei coli i cellalt ce reine informaii despre clase, ne intereaseaz s obinem o list cu: numele elevului, clasa la care este nscris i profilul clasei.

65

Pentru a putea selecta date din dou tabele acestea vor fi legate printr-un cmp (n cazul dat va exista o relaie de 1 la mai muli ntre cele dou tabele)
Legtura dintre dou tabele 1-mai muli

Comanda utilizat este: SELECT tabElevi.NumeElev, tabElevi.PrenumeElev, tabClase.NumeClasa, tabClase.NumeSpecializare FROM tabClase, tabElevi WHERE tabClase.IDClasa = tabElevi.IDClasa ORDER BY NumeElev; Rezultatul este:

Clauza ORDER BY este utilizat pentru a sorta datele din tabelul rezultat. n cazul de fa datele sunt sortate dup coloana NumeElev. n cazul n care se dorete realizarea seleciei din trei tabele ntre acestea vor exista legturi, iar principiul este acelai.

Operaii complexe cu tabele: reuniunea, intersecia, diferena Operaiile corespunztoare sunt cele definite n fia suport 6 Operaii relaionale. Astfel: - reuniunea a dou tabele este un tabel rezultat ce conine ntregistrrile din primul i al doilea tabel luate o singur dat, - intesecia a dou tabele este un tabel ce conine nregistrrile comune celor dou tabele, - diferena a dou tabele este un tabel ce conine toate ntregistrrile care se afl n primul tabel i nu se afl n al doilea tabel. Pentru a putea realiza aceste operaii este necesar ca tabelele s aib aceeai structur: aceleai numr de coloane, de acelai tip cu aceeai lungime. Operatorii utilizai pentru cele trei operaii sunt: - UNION pentru reuniune - INTERSECT pentru intersecie - EXCEPT pentru diferen Formatul general al comenzilor este: Comand [ALL] [CORRESPONDING [BY coloana1, coloana 2....]] Unde: - ALL permite ca rezultatul s rein i rndurile duble 66

CORRESPONDING operaia se execut asupra coloanelor comune din ambele tabele. CORRESPONDING BY operaia este efectuat doar asupra coloanelor specificate

Exemplu: Fie dou tabele tabFurnizori i tabBeneficiari. n primul tabel se rein date despre furnizorii de echipamente ai unei companii X, iar n tabClieni se rein informaii despre beneficiarii serviciilor companiei X. Dac ne intereseaz toate localitile n care fie exist un furnizor sau un client al Companiei X vom folosi una dintre variantele: SELECT Localitate SELECT * FROM tabFurnizori FROM tabFurnizori UNION UNION CORRESPONDING BY SELECT Localitate Localitate FROM tabClienti; SELECT * FROM tabClienti; Dac ne intereseaz toate localitile n care fie exist i un furnizor i un client al Companiei X vom folosi una dintre variantele: SELECT Localitate SELECT * FROM tabFurnizori FROM tabFurnizori INTERSECT INTERSECT CORRESPONDING BY SELECT Localitate Localitate FROM tabClienti; SELECT * FROM tabClienti; Dac ne intereseaz toate localitile n care fie exist un furnizor dar niciun client al Companiei X vom folosi una dintre variantele: SELECT Localitate SELECT * FROM tabFurnizori FROM tabFurnizori EXCEPT EXCEPT CORRESPONDING BY SELECT Localitate Localitate FROM tabClienti; SELECT * FROM tabClienti;

67

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic. Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii de caz, problematizarea. Se vor realiza o gam foarte larg de aplica ii astfel nct s se ating toate aspectele legate de comenzile i operatorii prezentai. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi de tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor executa comenzile utiliznd un SGBD. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

68

Fia suport 7.4 Tranzacii

Tranzacia reprezint o aciune efectuat de ctre un singur utilizator sau de ctre un program de aplicaie prin care se acceseaz sau se modific coninutul bazei de date. Tranzacia poate fi aciunea unui program sau a unei singure comenzi (INSERT sau UPDATE) asupra bazei de date sau a unei relaii dintr-o baz de date. Exemplu de tranziii: nscrierea elevilor la examen, mutarea elevilor unei clase n arhiv sau ntr-o alt clas (la finalizarea anului colar). Orice tranzacie simpl sau complex trebuie s transforme baza de date dintr-o stare stare coerent n alt. Astfel o tranzacie poate avea dou rezultate: succes, caz n care baza de date s-a trasnformat ntr-o stare coerent i insucces caz tranzacia trebuie abandonat. Dac tranzacia nu a avut succes atunci baza de date trebuie s revin la starea iniial nceperii tranzaciei. De asemenea dac o tranzacie a avut succes aceata nu mai poate fi abandonat. Pentru a reveni la starea iniial, de dinaintea tranzaciei trebuie efectuat o alt tranzacie, tranzacie compensatoare. n cazul sistemelor de gestiune a bazelor de date cel care administreaz tranzaciile trebuie s identifice i s grupeze aciunile care fac parte dintr-o tranzacie. n acest sens limbajele de manipulare a datelor pun la dispoziia celor care administreaz tranzaciile cuvinte cheie (BEGIN TRANSACTION, COMMIT i ROLLBACK) care grupeaz aciunile identificate ca fcnd parte dintr-o tranzacie. Proprietile tranzaciilor Orice tranzacie definit trebuie s dein anumite proprieti i anume. caracterul atomic: o tranzacie reprezint o unitate indivizibil, ea poate fi executat n ntregime sau deloc coeren: o tranzacie trebuie s transforme baza de date dintr-o stare coerent n alt stare coerent izolarea: tranzaciile sunt executate independent unele de altele durabilitatea: efectele unei tranziii ncheiate cu succes sunt nregistrate n baza de date i nu trebuie pierdute din alte motive. Exemplu: S considerm c avem de realizat un sistem informatic pentru gestionarea elevilor dintr-o coal. La sfritul fiecrui an colar elevii trebuie transferai ntr-o alt clas conform noului an colar. Aceast operaie poate fi considerat a fi un exemplu de tranzacie: If adoEleviRS1.RecordCount > 0 Then adoEleviRS1.MoveFirst db.BeginTrans For i = 1 To adoEleviRS1.RecordCount prgBar.Max = adoEleviRS1.RecordCount prgBar.Min = 0 If i >= prgBar.Max Then i = prgBar.Max ElseIf i < prgBar.Min Then i = prgBar.Min End If 69

prgBar.Value = i DoEvents If lvElevi1.ListItems(i).Checked = True Then adoEleviRS1.Move adoEleviRS1.RecordCount - i, 1 cmdMutareDreaptaStanga.CommandText = "update tabElevi set IDClasa = " & adoClaseRS("IDClasa") & " where IDElev = " & adoEleviRS1("IDElev") cmdMutareDreaptaStanga.Execute End If Next i db.CommitTrans n cod de mai sus (scris n limbajul VSBasic) pentru a delimita tranzacia s-au folosit evenimentele BeginTrans i CommitTrans asociate bazei de date db.

Controlul concurenei Un alt element care ar putrea afecta n mod negativ baza de date este accesul concurent la date. Controlul concurenei este procesul prin care se administreaz operaiile simultane de prelucrare/acces la baza de date, fr ca datele s interfereze unele cu altele. Accesul concurent apare n sistemele informatice multiutilizator, cnd mai muli utilizatori acceseaz datele i cel puin unul dintre ei prelucreaz datele pot aprea interferene. n acest sens se pot pierde actualizrile fcute de un utilizator (o tranzacie efectuat de un utilizator poate fi anulat de alt utilizator), se pot pierde date din cauza dependenelor neefectuate (atunci cnd o tranzacie are acces la rezultatele intermediare ale altei tranzacii n curs care ulterior este abandonat) sau a anaizei incoerente (cnd o tranzacie citete mai multe valori din baza de date, iar o alta actualizeaz o parte din ele n timpul execuiei primei). Prin urmare este necesar a se serializa i reface tranzaciile astfel nct acestea s nu interfereze i deci s nu permit alterarea datelor. n acest sens se va face o planificare astfel nct s se permit executarea de tranzacii n paralel pentru acelea care nu afecteaz acelai segment din baza de date, iar pentru cele care afecteaz acelai segmemt s se realizeze o serializare a tranzaciilor astfel nct execuia tranzaciilor s nu interfereze. Exist dou tehnici de baz pentru controlul concurenei prin care se permite ca tranzaciile s fie executate n paralel, cu anumite constrngeri: blocarea i metodele de marcare a timpului. Blocarea atunci cnd o tranzacie acceseaz baza de date, un lact poate refuza accesul la alte tranzacii, pentru a preveni apariia unor rezultate incoerente. Dac o tranzacie are un lact de citire pentru un articol de date, nseamn c l poate citi dar nu i prelucra. Dac o tranzacie are un lact de scriere pentru un articol de date, nseamn c l poate citi i actualiza. Blocarea tranzaciilor este utilizat astfel: orice tranzacie care trebuie s acceseze un articol de date trebuie ca, mai nti s-l blocheze, cernd un lact de citire pentru a avea acces la citire sau un lact la scriere pentru a avea acces att la citire ct i la scriere. dac articolul nu este deja blocat de alt tranzacie atunci articolul va fi blocat prin utilizarea unui lact 70

dac articolul este blocat SGBD-ul stabilete dac cererea este compatibil cu tipul de lact pe care-l are deja articolul o tranzacie continu s dein un lact, pn cnd l elibereaz n mod explicit n timpul execuiei sau pn cnd este terminat. Efectele scrierii vor deveni vizibile pentru alte tranzaciinumai dup ce lactul de scriere va fi eliberat. Pentru a garanta serializarea executrii tranzaciilor se utilizeaz un protocol suplimentar pentru amplasarea operaiilor de blocare i deblocare din cadrul fiecrei tranziii. Cel mai utilizat i cunoscut protocol este 2PL. Se spune c o tranzacie urmeaz protocolul de blocare n dou faze (2PL) dac toate operaiile de blocare predec prima operaie de deblocare din cadrul tranzaciei. Astfel: Este necesar ca o tranzacie s achiziioneze un lact pentru un anumit articol, nainte de a opera asupra lui. O dat ce tranzacia a fost deblocat, nu mai poate achiziiona altele noi

n cadrul utilizrii metodei de blocare pot apare impasuri atunci cnd dou sau mai multe tranzacii ateapt eliberarea lactelor deinute de ctre articole. Metodele de marcare a timpului pentru controlul concurenei elimin apariia unor posibile impasuri. n acest sens SGBD-ul poate crea un identificator unic care indic timpul relativ de ncepere a unei tranzacii. Acest identificator numit marc de timp poate fi utilizat pentru ordonarea tranziiilor astfel nct cele cu marc de timp mai mic s aib prioritate n eventualitatea unui conflict. Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic. Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii de caz, problematizarea. Se vor realiza o gam foarte larg de aplica ii prin care s se poat exemplifica diverse secvene ca fiind tranzacii i necesitatea tratrii lor din acest punt de vedere. De asemnea, se va exemplifica pe diferite exemple i accesul concurent la datele din baze de date, precum i tratarea erorilor ce pot apara ca urmare a accesului concurent. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi de tip problematizare. Se vor utiliza de asemenea probe practice n care elevii vor executa comenzile utiliznd un SGBD. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

71

Tema 8 Securitatea bazelor de date


Fia suport 8 Securitatea bazelor de date

Securitatea datelor reprezint unul dintre cele mai importante aspecte n lucrul cu bazele de date. Baza de date reprezint o resurs colectiv esenial care trebuie protejat att de ameninrile intenionate ct i de cele neintenionate. Referitor la securitatea bazelor de date trebuie avute n vedere urmtoarele aspecte: asigurarea n caz de furt-fraud: acestea nu afecteaz neaprat datele, dar pot provoca neplceri organizaiei pierderea confidenialitii datelor (se refer la pierderea unor secrete de importan major) i/sau a caracterului privat (necesitatea de a proteja date referitoare la anumite persoane) pierderea integritii bazei de date: apariia unor date care nu sunt valabile sau sunt greite i care ar putea afecta modul de operare cu sistemul informatic. pierderea disponibilitii bazei de date se refer la imposibilitatea de a accesa datele sau sistemul informatic. Asigurarea securitii datelor are drept scop minimizarea pierderilor cauzate de ctre evenimente care pot fi anicipate, ntr-o manier eficient care privete att costul ct i modalitatea de a nu constrnge execesiv utilizatorul sistemului informatic sau al bazei de date. Posibile pericole care pot afecta unul dintre cele patru aspectele prezentate mai sus pot fi: utilizarea bazei de date de ctre persoane neautorizate / furtul de date sau programe corectarea sau copierea neautorizat a datelor alterarea programelor politici sau proceduri necorespunztoare intrarea ilegal a unui hacker eecul mecanismelor de securitate alterarea datelor datorit unei ntreruperi de curent deteriorarea fizic a echipamentelor, ruperea/deterioraea cablurilor / furtul de echipamente hardware interferen elecronic/radiaii virui Pentru asigurarea securitii i coerenei datelor trebuie identificate tipuri de posibile pericole i iniiate planuri i msuri adecvate. Aceste msuri pot fi de natur administrativ sau fizic i cuprind: autorizarea n sistemul informatic, vederilor utilizatorilor sistemului informatic/bazei de date, copiile de siguran i refacerea bazei de date cu ajutorul lor, asigurarea integritii bazei de date, criptarea datelor, procedurile asociate bazei de date. Autorizarea presupune acordarea unui drept sau a unui privilegiu utilizatorului sistemului informatic / bazei de date. Autorizarea fiecrui utilizator n cadrul unui sistem se poate face crend un sistem de autentificare n sistem pe baz de parol creia i se asociaz i nite privilegii pe care utilizatorul le are asupra sistemului. De exemplu 72

utilizatorilor li se pot crea privilegii care s le permit s acceseze anumite obiecte din baza de date. Un alt mecanism care asigur securitatea bazelor de date este vederea. Prin intermediul vederilor se creaz o relaie dinamic, care nu exist n baza de date, utiliznd date din mai multe relaii. Ea este rezultatul unei cereri a utilizatorului care deinea anumite privilegii i confer securitate datelor prin faptul c permite ascunderea unor poriuni din baza de date fa de anumii utilizatori care nu dein aceleai privilegii. O msur de siguran n caz de avarie de energie, deteriorarea echipamentelor sau programelor este copia de siguran. Prin posibilitatea crerii unei copii de siguran i a unui fiier jurnal (ce conine toate modificrile efectuate asupra bazei de date) pe un mediu de stocare off-line se permite oricnd refacerea datelor dup orice defeciune. Meninerea integritii bazei de date are drept rezultat garantarea faptului c datele se menin valabile i permite astfel obinerea de rezultate corecte. n situaia n care baza de date conine date foarte importante o posibilitate de precauie fa de posibile pericole este i criptarea datelor. Prin criptare se obine o codificare a datelor printr-un algoritm special prin care datele nu pot fi cititte dect dac se cunoate cheia de decriptare. Criptarea datelor se folosete n special atunci cnd datele trebuie transmise prin canale de comunicaie (reea local, Internet). Pe lng aceste metode care asigura securitatea datelor i bazelor de date se mai utilizeaz i proceduri asociate utilizate mpreun cu mecanismele prezentate. Un exemplu de procedur asociat ar putea fi crearea unui sistem propriu de parole (numr de caractere, condiii de crearea a parolelor, termene de schimare a parolelor, criptarea fiierelor care conin parole etc.) pentru autentificarea n sistem. De asemenea se poate crea o procedur cu privire la creare copiilor de siguran a bazelor de date: perioada de timp la care se creaz o copie (zilnic, la un numr de zile, sptmnal etc.), paii implicai n crearea copiei, personalul responsabil pentru crearea copiei etc. Un exemplu de procedutr asociat poate fi i refacerea bazei de date dintro copie de siguran. Pe lng mecanismele bazate pe calculator companiile i definesc i politici/acorduri administrative privind asigurarea securitii bazelor de date: planuri de securitate i situaii excepionale, controlul personalului, amplasarea echipamentelor n condiii de siguran acorduri de ntreinere, control regulat al echipamentelor, instalarea programelor antivirus i actualizarea acestora, identificarea i contracararea posibilelor riscuri etc. Pentru asigurarea securitii atunci cnd se lucreaz n reea i sunt necesare trasmisii de date utiliznd Internetu-ul se mai pot utiliza i: servere reprezentant, semnturi digitale, algoritmi de rezumare a mesajelor i semnturilor digitale, certificate digitale, protocoale de securitate (Secure HTTP).

73

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Predarea va face obiectul orelor alocate pentru laborator tehnologic. Se recomand a se lucra pe grupe. Ca tipuri de activiti se recomand studii de caz, problematizarea, comparaii ntre diferite tipuri de sisteme informaionale n ceea ce privete sistemele de securitate. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi obiectivi i semiobiectivi. Se vor utiliza de asemenea probe practice n care elevii vor executa efectiv diferite tipuri de sisteme de securitate, n special proceduri asociate, autorizarea n cadrul sistemelor/bazelor de date, vor utiliza facilitile SGBD-urilor privind securitatea. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

74

Tema 9 Utilizarea bazelor de date n cadrul reelelor de calculatoare


Fia suport 9 Baze de date distribuite. Concepte generale
Bazele de date distribuite reprezint o colecie de date partajat, mpreun cu descrierea sa, distribuit fizic ntr-o reea de calculatoare. Sistemul de gestiune a bazelor de date distribuite (SGBDD) este un pachet de programe ce permite gestionarea transparent a bazei de date distribuite i permite accesul utilizatorilor la baza de date. SGBDD este format dintr-o singur baz de date logic, fragmentat, fiecare fragment fiind stocat pe unul sau mai multe calculatoare. Calculatoarele formeaz o reea, iar pe fiecare calculator este instalat un SGBD separat de cel de reea. Fiecare calculator este capabil s prelucreze independent anumite cereri ale utilizatorilor dar poate prelucra i date stocate pe alt calculator din reea.
PC site 1

PC site 2

BD

Ree a de PC

PC site 3

BD

PC site 4

Sistem de gestiune a bazelor de date distribuite

Prelucrare distribuit o baz de date centralizat care poate fi accesat printr-o reea de calculatoare.
PC Site1

Reea de PC

PC Site3

DB

PC Site2

Prelucrare distribuit

75

Administrarea intern a bazelor de date distribuite este pretenioas i n general dificil, deoarece trebuie asigurat c: Distribuia este transparent (invizibil i nederanjant) utilizatorii trebuie s poat s interacioneze cu sistemul ca i cnd ar fi vorba un sistem nedistribuit; Tranzaciile trebuie s aib i ele o structur transparent (invizibil i nederanjant). Fiecare tranzacie n parte trebuie desigur s menin integritatea bazei de date, n ciuda multitudinii de partiii. Pentru aceasta ele se divizeaz de obicei n subtranzacii, fiecare din acestea prelucrnd doar o singur partiie. Utilizatorii acceseaz baza de date distribuit prin: Aplicaii locale (aplicaii care nu necesit date de pe alte situri), sau Aplicaii globale (aplicaii care au nevoie de date de pe alte situri). Astfel un SGBDD trebui s dein urmtoarele caracteristici: - conine o colecie de date partajate corelate logic - datele sunt divizate n fragmente ce pot fi reproduse - fragmentele sunt stocate pe mai multe calculatoare n reea - datele de pe fiecare PC sunt gestionate printr-un SGBD care trateaz autonom aplicaiile locale i poate participa la o aplicaie global. Din aceste caracteristici reiese caracterul transparent al SGBDD prin care utilizatorul practic nu resimte fragmentarea datelor pe mai multe calculatoare. Transparena datelor fa de utilizator permite ca sistemul distribuit s apar ca un sistem centralizat. Funcionarea unui SGBDD Un server de baze de date este software-ul care administreaz baza de date; un client de baze de date este o aplicaie care cere servicii de la server, de exemplu transmite date la, sau cere date de la baza de date. De obicei pentru un server i baza de date corespunztoare exist concomitent mai muli clieni. Fiecare calculator din reeaua de calculatoare a bazei de date distribuite se numete un nod. Un nod al sistemului unei baze de date distribuite se poate comporta drept server, drept client, sau chiar drept ambele, n funcie de situaie. Un tip important de baze de date distribuite sunt bazele de date distribuite relaionale, conduse de un Relational Data Base Management System (RDBMS) . n cadrul acestor baze de date o relaie poate fi mprit ntr-un numr de sub-relaii, denumite fragmente. Fragmentele pot fi: Fragmente orizontale - subseturi de tuple (rnduri) dintr-o relaie (tabel). Fragmente verticale - subseturi de atribute (coloane) dintr-o relaie (tabel). Fragmente mixte - un fragment care este fragmentat att orizontal, ct i vertical. Fragmentele sunt alocate unuia sau mai multor site-uri. Ele pot fi reproduse pentru a obine disponibilitate i performane mbuntite. Pentru reproducerea fragmentelor se folosesc trei reguli de corectitudine: - Caracterul complet: dac o instan a unei relaii R este descompus n fragmente R1, R2,...Rn, atunci fiecare articol de date care poate fi regsit n relaia R trebuie s apar n cel puin un fragment. - Reconstrucie: Trebuie s fie posibil s se defineasc o operaie relaional care va reconstrui relaia R din fragmente. Aceat regul garanteaz dependenele funcionale. 76

Caracterul disjunct: dac un articol de date apare ntr-un fragment atunci nu trebuie s mai apar i n alt fragment, excepie face fragmentarea vertical (atributele cheii primare trebuie s fie repetate pentru a permite reconstrucia).

Exist patru strategii de alocare referitoare la amplasarea datelor: Centralizat o singur baz de date centralizat Partiionat fragmentele sunt atribuite unui site Reproducerea complet copierea complet a bazei de date pstrate n cadrul fiecrui site Reproducerea selectiv combinaie ntre primele trei. SGBDD-ul prezint toate funciile standard ale unui SGBD centralizat i are n plus servicii de comunicaie extinse, un catalog al sistemului extins, prelucrarea distribuit a interogrilor i servicii de concuren i refacere extinse. Acest fapt se datoareaz transparenelor ce carecterizeaz SGBDD: - Transparen la distribuie din care rezult centralizarea - Transparena tranzaciilor care menine coerena bazei de date globale - Transparena performanelor prin care sisteul este capabil s trateze eficient interogrile care se refer la datele din mai multe sit-uti - Transparena sistemului care permite existena de SGBD-uri diferite . Avantajele bazelor de date distribuite Pot reflecta structura organizaional a companiei partiiile pot fi plasate direct n seciile de care aparin. Autonomie local fiecare secie i poate controla mai ndeaproape propriile ei date. Disponibilitate mbuntit o greeal ntr-o baz de date distribuit va afecta de cele mai multe ori o singur partiie, i nu toat baza de date. Celelalte partiii rmn disponibile pentru prelucrare. Performan mbuntit datele pot fi amplasate lng situl cu cererea cea mai mare, iar partiiile nsele sunt paralelizate, permind astfel ca solicitarea bazei de date s se echilibreze dinamic ntre serverele disponibile (o solicitare intens ntr-o partiie a bazei de date distribuite nu va afecta alte partiii). Economie cost mai puin s se creeze o reea de computere mai mici, dar cu puterea total a unui singur computer mare. Modularitate subsistemele unei baze de date distribuite pot fi modificate, adugate sau deconectate dinamic, fr s se afecteze ali clieni sau partiii. Dezavantaje ale bazelor de date distribuite Complexitatea trebuie depus munc suplimentar de ctre administratorii bazelor de date pentru se a asigura c natura distribuit a sistemului este transparent (invizibil pentru utilizator). Munc suplimentar trebuie de asemenea depus i pentru a ntreine multiple sisteme disparate. Proiectarea unei baze de date distribuite trebuie s in cont i de natura ei disconect de exemplu, operaia join (reunirea a dou tabele ale unui RDBMS) devine deosebit de laborioas cnd trebuie efectuat pe baza mai multor partiii disparate. Profitabilitatea redus complexitatea mai mare i infrastructurile mai ample duc la costuri suplimentare pentru realizare i implementare. Securitatea toate partiiile bazei de date trebuiesc securizate, dar deoarece acestea nu sunt centralizate, trebuiesc securizate i toate siturile involvate, la 77

orice distane s-ar afla ele. Drept urmare, i infrastructura trebuie securizat (de ex. prin codificarea tuturor transmisiilor ntre siturile reelei). Dificultatea de a menine integritatea dac baza de date este conceput greit, atunci asigurarea integritii poate suprasolicita i chiar bloca reeaua dintre noduri.

Sugestii metodologice

Pentru predarea acestui coninut se pot utiliza, ca materiale suport prezentri PowerPoint, fie de lucru, fie de evaluare/autoevaluare. Activitile se recomand a se desfura n laboratorul de informatic, dotat cu videoproiector, tabl/flipchart. Se poate lucra individual sau pe grupe. Ca tipuri de activiti se recomand studii de caz, problematizarea, comparaii ntre diferite tipuri de sisteme informaionale pentru care se genereaz baze de date distribuite. n ceea ce privete evaluarea / autoevaluarea se vor utiliza teste cu itemi obiectivi. Se va face evaluare i transmitere de feedback pe parcursul activitilor de predare nvare. Se pot da i teme integratoare de tip proiect, eseu.

78

IV.

Fia rezumat
Profesor ______________________
Competena 1 A1 zz.ll.aaaa3 A2 AX A1 Competena 2 A2 A3 A1 Competena 3 A2 A3 Observaii

Clasa ________________
Nume i prenume elev

Nr. Crt. 1 2 3 4 ... Y

zz.ll.aaaa reprezint data la care elevul a demonstrat c a dobndit cunotinele, abilitile i atitudinile vizate prin activitatea respectiv

Competene care trebuie dobndite Aceast fi de nregistrare este fcut pentru a evalua, n mod separat, evoluia legat de diferite competene. Acest lucru nseamn specificarea competenelor tehnice generale i competenelor pentru abiliti cheie, care trebuie dezvoltate i evaluate. Profesorul poate utiliza fiele de lucru prezentate n auxiliar i/sau poate elabora alte lucrri n conformitate cu criteriile de performan ale competenei vizate i de specializarea clasei. Activiti efectuate i comentarii Aici ar trebui s se poat nregistra tipurile de activiti efectuate de elev, materialele utilizate i orice alte comentarii suplimentare care ar putea fi relevante pentru planificare sau feed-back. Prioriti pentru dezvoltare Partea inferioar a fiei este conceput pentru a meniona activitile pe care elevul trebuie s le efectueze n perioada urmtoare ca parte a viitoarelor module. Aceste informaii ar trebui s permit profesorilor implicai s pregteasc elevul pentru ceea ce va urma. Competenele care urmeaz s fie dobndite n aceast csu, profesorii trebuie s nscrie competenele care urmeaz a fi dobndite. Acest lucru poate implica continuarea lucrului pentru aceleai competene sau identificarea altora care trebuie avute in vedere. Resurse necesare Aici se pot nscrie orice fel de resurse speciale solicitate:manuale tehnice, reete, seturi de instruciuni i orice fel de fie de lucru care ar putea reprezenta o surs de informare suplimentar pentru un elev care nu a dobndit competenele cerute. Not: acest format de fi este un instrument detaliat de nregistrare a progresului elevilor. Pentru fiecare elev se pot realiza mai multe astfel de fie pe durata derulrii modulului, aceasta permind evaluarea precis a evoluiei elevului, n acelai timp furniznd informaii relevante pentru analiz.

V. Bibliografie
1. Connollz,Thomas. Begg, Caroly. Strachan, Anne (2001). Baze de date Bucureti: Editura Teora 2. Ipate, Florentin, Eugen. Popescu, Monica (2000). Dezvoltarea aplicaiilor de baze de date n ORACLE 8 i FORMS 6 Bucureti: Editura All 3. Henderson, Ken. (2002). Transact SQL Bucureti: Editura Teora 4. http://ro.wikipedia.org, 15.06.2009 5. http://www.oracle.com/index.html, 15.06.2009 6. http://www.microsoft.com/romania/Servere/SQL/default.mspx , 10.06.2009 7. http://www.microsoft.com/sqlserver/2008/en/us/default.aspx , 10.06.2009 8. http://office.microsoft.com/ro-ro/access/default.aspx, 1.06.2009