Anda di halaman 1dari 44

Universitatea din Craiova Facultatea de Automatica , Calculatoare si Electronica Sectia : Automatica si Informatica Aplicata Grupa 10201, 10202, 10203

PROIECT
la disciplina BAZE DE DATE

Studenti : Coordonator: Co!ocaru "iorica Ilie Andreea Fieroiu Alin#$icolae opa Elena#Camelia

rofesor Stoian "iorel

CRAIOVA , 2009

CUPRINS
Cap 1 . Introducere .pag 3 1.1 Notiuni despre BD si SGBD 1.2. Datele operaionale 1.3. Independena datelor 1.4. Nivelul de organizare a datelor ntr-o baz de date 1.5. Sisteme de gestiune a bazelor de date(SGBD) Cap.2. Sistemul Jocurilor limpice de Iarna limpiada !orino 2""#...pag $ Cap.3. Sc%ema conceptuala.................................pag & 3.1.Notiuni generale 3.2.Sc ema conceptuala propriu-zisa Cap.4. Sc%ema logicapag 11 4.1. Notiuni generale 4.2.Sc ema logica propriu-zisa Cap 5. Normali'area (a'elor de date.pag 14 5.1.Notiuni generale 5.2.Normalizarea BD Cap.#. )enormali'ara (a'elor de datepag 2# #.1.Notiuni generale #.2. Denormalizarea BD Cap.$. Sistemul de gestiune *+S,-..pag 2. $.1.Notiuni generale $.2!"plicatii $.3!#abelele bazei de date #orino$%%& Cap&. Conclu'ii.pag 43 Cap.. /i(liogra0ie pag 44

Cap.1. Introducere 1.1 Notiuni despre /a'e de date si Sisteme de gestionare a (a'elor de date
' baz de date conine toate in(ormaiile necesare despre obiectele ce intervin ntr-o mulime de aplicaii) relaiile logice dintre aceste in(ormaii *i te nicile de prelucrare corespunztoare! +n bazele de date are loc o integrare a datelor) n sensul c mai multe (i*iere sunt privite n ansamblu) elimin,ndu-se in(ormaiile redundante! -ste permis accesul simultan la acelea*i date) situate n acela*i loc sau distribuite spaial) a mai multor persoane prin mai multe tipuri de interogri (B.S/0 1223) 114 D-S5I 6 1222) $)! ' baza de date (BD) reprezinta o colectie de date integrate ) anume) structurata si dotata cu o descriere a strucrurii si a realitatilor dintre date! Bit - este o unitate de masura a in(ormatiei egala cu 7- biti! ( volum - (isier) BD se masoara in biti)! 8iecare obiect in BD este caracterizat cu o totalitate de atribute) ce descopera proprietatile obiectului! 8iecare atribut din caracteristica BD in structura datei se (oloseste o singura data!!De e9emplu BD - Student! "ceasta includ studentii dintr-o institutie!8iecare student in acceasta BD este caracterizat cu proprietatile sale! 8iecare atribut descrie o proprietate) nume) prenume) data nasterii) adresa) tele(on) anul nasterii) grupa! Data in BD a primit denumirea de :#uplu: iar (iecare #uplu are structura sa!!!In orce lucru cu BD se (oloseste SGBD! 5rin mena;area datelor) se scoate in(ormatia de date! ' baz de date poate (i< integrat4 parta;at! 5rin =integrat> nelegem c baza de date poate (i g,ndit ca o uni(icare de mai multe (i*iere de date) distincte *i neredundante! 5rin =parta;area> unei baze de date se nelege c bucile individuale de date din baza de date pot (i parta;ate ntre mai muli utilizatori individuali) (iecare dintre ei put,nd avea acces la aceea*i bucat de date simultan (sisteme multiutilizator)!

1.2.

)atele opera1ionale

Datele operaionale sunt date din bazele de date) distincte de datele de intrare) ie*ire sau alte tipuri de date! ' baz de date este o colecie de date operaionale (olosite de ctre aplicaiile sistem ale unei instituii (?uzeu) Bibliotec) Intreprindere) etc!) Datele de intrare sunt in(ormaii introduse n sistem din lumea e9terioar) de obicei prin terminale! Datele de ieire se re(er la mesa;ele *i rapoartele e9trase din sistem (tiprite sau a(i*ate pe ecran)! Entitile de baz sunt elementele constitutive ale unei baze de date (e9pl! materialul ar eologic) materialul bibliogra(ic) materialul gra(ic) etc!)! +ntre aceste entiti e9ist ntotdeauna asociaii sau relaii ce le leag ntr-o baz de date comun!

Relaiile dintre entiti sunt la r,ndul lor pri ale datelor operaionale) c iar mai importante dec,t entitile asociate! ' relaie poate (i asociat la una) dou sau trei entiti) iar o entitate poate (i asociat la oric,te relaii!

1.3.

Independen1a datelor

?odul n care datele sunt organizate pe suportul secundar de stocare *i modul n care ele sunt accesate depind de cerinele aplicaiei *i de *tiina organizrii datelor *i te nicile de acces! Imunitatea aplicaiilor la modi(icrile de structur a memorrii *i a strategiei de acces se nume*te independen a datelor! #ipuri de modi(icri pe care administratorul bazei de date (DB") poate s le (ac< reprezentarea datelor numerice (c,mpul numeric poate (i memorat n (orm intern aritmetic sau ca un *ir de caractere)4 reprezentarea datelor caracter (un c,mp *ir de caractere poate (i memorat n mai multe coduri de caractere < "S/II) -B/DI/) etc!)! #erminologie< @n cmp este cea mai mic unitate de date stocat n baza de date! Baza de date conine mai multe ocurene sau instane pentru (iecare din tipurile de c,mpuri! ' nregistrare este o colecie de nume de c,mpuri asociate! ' ocuren sau instan de nregistrare const dintr-un grup de ocurene de c,mp nrudite (asociate) *i reprezint o asociere ntre ele! @n fiier este o colecie a tuturor nregistrrilor de unul sau mai multe tipuri! +ntr-o baz de date) un c,mp numeric poate avea dou uniti metrice (inc es *i centimetrii) la alegerea utilizatorului!

' baz de date poate (i privit din mai multe puncte de vedere< opiunea utilizatorului) care lucreaz cu anumit pri ale unei baze de date numite vederi4 opiunea administratorului bazei de date care integreaz toate vederile re(eritoare la baza de date ntr-un singur model numit schem conceptual) ea reprezent,nd nivelul logic al bazei de date4 c! opiunile implementatorului bazei de date (coincide uneori cu cele ale administratorului) care prive*te baza de date ca pe o colecie de (i*iere memorate pe di(erite medii e9terne (benzi *i discuri magnetice)) ele constituind nivelul fizic al bazelor de date! 5rimele dou nivele sunt descrise prin planuri ce constau n enumerarea tipurilor de entiti ce apar n baza de date) relaiile dintre aceste tipuri de entiti *i modul de trecere de la noiunile acestui nivel la nivelul imediat urmtor! +n mod curent) aceste planuri se numesc scheme externe) subscheme conceptuale sau vederi) pentru primul nivel *i scheme conceptuale pentru al doilea nivel! Descrierile la nivel (izic sunt (cute prin scheme interne sau scheme fizice! a! b!

1.4. Ni2elul de organi'are a datelor 3ntr4o (a'5 de date


Datele dintr-o baz de date pot (i structurate pe A niveluri) n (uncie de categoria de personal implicat<

nivelul conceptual (global) B e9prim viziunea administratorului bazei de date asupra datelor! "cestui nivel i corespunde structura conceptual (sc ema) a bazei de date) prin care se realizeaz o descriere a tuturor datelor) ntr-un mod independent de aplicaii) ce (ace posibil administrarea datelor! nivelul logic B e9prim viziunea programatorului de aplicaie asupra datelor! Ca acest nivel se realizeaz o descriere a datelor corespunztoare unui anumit program de aplicaie! nivelul (izic B care e9prim viziunea inginerului de sistem asupra datelor! /orespunde sc emei interne a bazei de date prin care se realizeaz o descriere a datelor pe suport (izic de memorie!

1.5.Sisteme de gestiune a (a'elor de date6S7/)8


+ntre baza de date (izic (adic datele a*a cum sunt ele memorate pe suport) *i utilizatorii sistemului e9ist un nivel de so(tDare) numit sistem de gestionare a bazelor de date (DB?S B Data Base ?anagement SEstem)) care permite< de(inirea B crearea bazei de date4 introducerea (adugarea) datelor n baza de date4 modi(icarea unor date de;a e9istente n baza de date4 stergerea datelor din baza de date4 consultarea bazei de date B interogareaFe9tragerea datelor! @n SGBD d posibilitatea utilizatorului s aib acces la date (olosind un limba; de nivel nalt) apropiat de modul obi*nuit de e9primare) pentru a obine in(ormaii) utilizatorul (c,nd abstracie de algoritmii aplicai pentru selectarea datelor implicate *i a modului de memorare a lor! SGBD-ul este deci o inter(a ntre utilizator *i sistemul de operare! 'rice SGBD conine un limbaj de descriere a datelor (CDD) care permite descrierea structurii unei baze de date) a (iecrei componente a ei) a relaiilor dintre componente) a drepturilor de acces ale utilizatorului la baza de date) a restriciilor n reprezentarea in(ormaiilor) etc! CDD-ul este utilizat at,t pentru proiectarea bazelor de date) c,t *i pentru rede(inirea lor! ' alt component a SGBD este limbajul de cereri (C/) sau limbajul de prelucrare a datelor (C5D)) ce permite operaii asupra datelor a(late n baza de date) cum ar (i< ncrcarea bazei de date4 inserarea unui nou element4 *tergerea unui element4 modi(icarea unui element4 cutarea unor elemente4 realizarea de di(erite statistici asupra datelor! tilizatorii sistemelor de gestionare a bazelor de date (DB?S) se grupeaz n trei categorii< a! programatorii de aplicaie (care scriu programele aplicaie n limba;e de programare< Co(ol) C) etc!) sau n limba;e de programare speci(ice< d/ase) 9o:Pro) etc!)4 b! end"userii sau utilizatorii (care acceseaz baza de date de la un terminal) (olosind un limba; de interogare numit =GuerE language>)4

&

c! administratorii bazelor de date DB" (care stabilesc structura iniial a bazei de date *i modul de memorare a datelor la nivel (izic) acord utilizatorilor drepturi de acces la baza de date sau pri ale ei) asigur securitatea datelor) modi(ic structura *i ntreine baza de date)! Sistemele de baze de date sau bncile de date reprezint un sistem de organizare *i prelucrare) respectiv teleprelucrare (prelucrare la distan) a in(ormaiei) constituit din urmtoarele A elemente< colecie de date a(late n interdependent descrierea datelor *i a relaiilor dintre ele un sistem de programe care asigur e9ploatarea bazei de date (actualizare) interogare) "r itectura sistemului de baza de date este (ormat din urmtoarele componente ((ig!1)< bazaFbazele de date B reprezint componenta de tip date a sistemului (coleciile de date propriu-zise) indec*ii)4 sistemul de gestiune a bazeiFbazelor de date B ansamblul de programe prin care se asigur gestionarea *i prelucrarea comple9 a datelor *i care reprezint componenta so(tDare a sistemului de baze de date (Sistem de Gestiune a Bazelor de Date B SGBD)4 alte componente B proceduri manuale sau automate) inclusiv reglementri administrative) destinate bunei (uncionri a sistemului) dicionarul bazei de date (metabaza de date) care conine in(ormaii despre date) structura acestora) elemente de descriere a semanticii) statistici) documentaii) mi;loacele ardDare utilizate) personalul implicat!

'

Cap.2.Sistemul Jocurilor limpice de Iarna limpiada !orino 2""#


#unteti o firma specializata in Dm si tocmai ati primit oferta de a lucra pentru $ederatia internationala de sport care organizeaza urmatoarea %limpiada de iarna! Hocurile 'limpice de iarna sunt organizate din I in I ani ! In cadrul acestui eveniment) se des(asoara mai multe competitii sportive! @nele sporturi au mai multe probe spre e9emplu< patina;ul) bobul! @nii sportivi pot concura la mai multe sporturi di(erite sau la mai multe discipline din cadrul aceluiasi sport! Sunt necesare clasamente cu per(ormantele sportivilor (timp) puncta; etc!)! De asemenea) se pastreaza recordurile la zi pentru (iecare proba sportive(record mondial) olimpic) continental)! Ca Hocurile 'limpice) sunt prezenti mai multi arbitri pentru (iecare proba! Se tine o evidenta a medaliilor obtinute de (iecare sportive) precum si un clasament al tarilor in (unctie de numarul si culoarea medaliei! Sportivii sunt pregatiti de unul sau de mai multi antrenori! Din delegatia (iecarei tari) (ac parte cel putin un medic si un masseur! -9ista s i delegatii care au un psi olog! Delegatiile prezente la Hocurile 'limpice sunt cazate in orasul olimpic unde sunt oteluri de mai multe categorii! In orasul olimpic) e9ista zone de agrement pentru timpul liber al sportivilor (cinema) teatru) sala de boDling) etc!)! Sportivii concureaza in locatii speci(ice(patinoare) partii de sc i) partii de sanie) bob) sJeleton) etc!) a(late in di(erite zone ale orasului organizator! De asemenea) ei au posibilitatea de a se antrena in alte locatii puse la dispozitie de catre organizatori! 'rganizatorii o(era ec ipamente de concurs(sc iuri) patine) bob) sanie) ec ipament sportive) etc!) produse de catre o (irma cunoscuta cu care acestia au contract! Ca anumite intervale) sportivii sunt supusi testului antidoping! Daca acesta este pozitiv) ei sunt descali(icati si li se retrag eventualele medalii sau este anulata recunoasterea per(ormantelor! #eleviziunile din tarile participante contribuie la transmiterea live sau inregistrata a probelor) avand la dispozitie ec ipamente speci(ice si personal specializat! Keprezentantii presei scrise sunt si ei prezenti!

Cap.3.Sc%ema conceptuala 3.1.Notiuni generale


' sc ema conceptuala este o reprezentare a ntregii in(ormatii continute n baza de date ce combina subsc emele vederilor ce privesc o anumita aplicatie ntr-un model unitar! "cest tip de sc ema trebuie sa se bazeze pe un model teoretic si sa (ie simpla) adica usor de nteles si de prelucrat! Sistemele de gestiune a bazelor de date au (ost clasi(icate n trei grupe mari) n (unctie de tipul elementelor cu care lucreaza si a structurilor obtinute< a! modelul retea B permite lucrul cu entitatii relatii binare de tipul 1<1 si 1<N) diagrama rezultata (iind un gra( oarecare4 b! modelul arborescent (ierar ic) B permite lucrul cu entitati si relatii binare de tipul 1<1 si 1<N) iar diagrama este alcatuita dintr-o multime de arbori4 c! modelul relational B n care intervin numai relatii si operatii cu aceste relatii! ?odelul conceptual al bazelor de date relationale poate (i reprezentat printr-o sc ema conceptuala sau printr-o diagrama entitate B relatie (-K) Sc ema conceptuala a unei baze de date este o descriere de (orma< NumeLentitateMNlista de atributeO! Diagrama entitate B relatie< Intre entitati se pot stabili relatii! "ceste relatii se pot reprezenta prin Diagrama entitate B relatie! Gradul si cardinalitatea unei relatii Gradul unei relatii M numarul de entitati care participa la relatia respectiva -9ista relatii binare (intre $ entitati) si relatii n-are (intre mai multe entitati) ! /ardinalitatea unei relatii binare M numarul de instante ale celor $ entitati care sunt asociate prin relatia respectiva! Kelatiile pot (i de cardinalitate< (one to one) 1-n (one to manE) n-n (manE to manE)

3.2. Sc%ema conceptuala propriu4'isa

10

Cap.4.Sc%ema logica 4.1. Notiuni generale


Sc ema logica descrie datele stocate sub aspectul modelului de date utilizat de SGBD! 5entru realizarea sc emei logice a unei baze de date se porne*te de la sc ema conceptual (modelul entitate B legtur) urmrindu-se conversia entitilor *i a legturilor n tabele relaionale! Kegulile de conversie ale entitilor) legturilor *i atributelor sunt urmtoarele< !rans0ormarea entit51ilor Regul5 general5 < entitile se trans(orm n tabele! Subcazuri< a) -ntitile independente devin tabele independente) adic tabele a cror c eie primar nu conine c ei strine! b) -ntitile dependente devin tabele dependente (tabele detaliu) adic tabele a cror c eie primar conine c eia strin ce (ace re(erinta la c eia primara a entitatii de care depinde entitatea in cauza! c) Subentitatile devin subtabele) adica tabele a caror c eie primara este c eia straina pentru tabelul superentitate! "vanta;ele supertabelelor< simpli(icarea programelor de manipulare a datelor! Dezavanta;ele supertabelelor< probleme de integritate) apar valori de Null! "vanta;ele subtabelelor < mai stabile) mai (le9ibile) ocupa spatiu mai mic) contin mai putine valori de Null! Dezavanta;ele subtabelelor< se ingreuneaza manipularea datelor! !rans0ormarea relatiilor 6legaturilor8

Regula generala< Kelatiile (legaturile) se convertesc in c ei straine! Con2entie < plasamentul c eii straine este simbolizat printr-o sageata! "tunci cand c eia straina este inclusa in c eia primara) var(ul sagetii este plin ( ) si este gol in caz contrar ( )! Ca'uri < a) Kelatiile 1 <1 devin c ei straine! / eia straina este plasata in tabelul cu linii mai putine! -9!< a$) S'# 1(%) esteLcasatorit 1(%) S'#I- - c eia straina va (i plasata in tabelul cu linii mai putine b) Kelatiile ?<1 devin c ei straine plasate in tabelul care se a(la in partea de =multi> a relatiei! Ca'uri< b1) ?(%) 1

/ eia straina nu poate avea valoarea Null) iar in cazul entitatilor dependente ea va (ace parte c iar din c eia primara a tabelului detaliu!

11

B$)

?(%)

1(%)

8ig! A!17

/ eia straina poate avea valoarea Null si nu poate (ace parte din c eia primara! c) ' relatie ? <? se trans(orma in $ relatii ? <1! In acest caz se construieste un tabel special numit tabel asociativ care are $ c ei straine care (ac re(erinta la c eile primare ale celor $ tabele a(late in relatia ? <?! / eia sa primara este (ormata din cele $ c ei straine plus (eventual) alte atribute suplimentare! d) ' relaie de tip A se trans(orma intr-un numar de relatii de tip $) egal cu numrul de tabele asociate! "ceste relatii (legaturi) se stabilesc intre un tabel asociativ si tabelele asociate! #abelul asociativ are cate o c eie straina pentru (iecare tabel asociat) iar c eia sa primara este (ormata din toate aceste c ei straine plus (eventual) alte atribute suplimentare! !rans0ormarea atri(utelor Regula generala; "tributele se convertesc in coloane ale tabelelor provenite din entitati sau c iar in tabele! Ca'uri; a) "tributele simple ale unei entitati devin coloane in tabelul provenit din acea entitate! b) #oate componentele unui atribut compus devin coloane! c) "tributele repetitive (multivaloare) ale unei entitati devin tabele dependente ce contin (iecare o c eie straina (care (ace re(erinta la c eia primara a entitatii) si atributul multivaloare! d) B "tributele simple ale unei relatii 1 <1 sau ? <1 devin coloane ale tabelului care contine c eia straina! - 8iecare componenta a unui atribut compus al unei relatii 1<1 sau ?<1 se va converti in mai multe coloane in tabelul care contine c eia straina! e) B "tributele simple ale unei relatii ? <? vor deveni coloane ale tabelului asociativ! 8iecare componenta a unui atribut compus al unei relatii ?<? va deveni o coloana in tabelul asociativ creat! () B "tributele repetitive (multivaloare) ale unei relatii 1 <1 sau 1 <? devin tabele dependente de tabelul care contine c eia straina! - "tributele repetitive ale unei relatii ? <? devin tabele dependente de tabelul asociativ corespunzator relatiei! / eia primara a acestor tabele dependente va (i (ormata din c eia straina respectiva plus una sau mai multe coloane suplimentare!

12

4.2.Sc%ema logica propriu4'isa

13

Cap 5.Normali'area (a'elor de date 5.1.Notiuni generale


Normalizarea este procesul de trans(ormare a datelor si are ca scop eliminarea redundantelor si promovarea integritii datelor! Normalizarea este un pilon de baza al bazelor de date relaionale! Normalizarea datelor este impartita in sase etape) numite (orme normale< 18Ng$8N elimina dependentele (uncionale pariale (ata de c ei4 $8N gA8N elimina dependentele (uncionale tranzitive (ata de c ei4 A8N gB/N8 elimina dependentele (uncionale pentru care determinantul nu este c eie4 B/N8 gI8N elimina toate dependentele multivaloare care nu sunt si dependente (uncionale4 I8N gP8N elimina toate Hoin-dependentele care nu sunt implicate de o c eie! 18Ng$8N elimina dependentele (uncionale pariale (ata de c ei4 $8N gA8N elimina dependentele (uncionale tranzitive (ata de c ei4 A8N gB/N8 elimina dependentele (uncionale pentru care determinantul nu este c eie4 B/N8 gI8N elimina toate dependentele multivaloare care nu sunt si dependente (uncionale4 I8N gP8N elimina toate Hoin-dependintele care nu sunt implicate de o c eie! Normalizarea utilizeaz ca metod descompunerea (top-doDn) unei tabele n dou sau mai multe tabele) pstr,nd in(ormaii (atribute) de legtur! 9 R*< N R*<-< 1 9N1. ' tabel este n 8N1 dac toate atributele ei conin valori elementare (nedecompozabile)) adic (iecare tuplu nu trebuie s aib date la nivel de grup sau repetitiv! Structurile de tip arborescent *i reea se trans(orm n tabele cu atribute elementare! 8iecare structur repetitiv genereaz (prin descompunere) o nou tabel) iar atributele la nivel de grup se nltur) rm,n,nd doar cele elementare! "lgoritmul 18N Se nlocuiesc in tabel datele corespunztoare atributelor compuse cu coloane ce conin componentele elementare ale acestora!

1%

1! Se plaseaz grupurile de atribute repetitive) (iecare in cate un nou tabel $! Se introduce in (iecare tabel nou creat la pasul $ c eia primara a tabelului din care a (ost e9tras atributul respectiv care devine c eie strina in noul tabel! A! Se stabile*te c eia primara a (iecrui nou tabel creat la pasul $! "ceasta va (i compusa din c eia strina introdusa la pasul A plus una sau mai multe coloane adiionale! 9 R*< N R*<-< 2 9N2. ' tabel este n 8N$ dac *i numai dac este n 8N1 orice atribut neprim este complet dependent (uncional de orice c ei candidat a relaiei ' tabel n 8N$ prezint nc o serie de anomalii de actualizare) datorit eventualelor dependene tranzitive! -liminarea dependenelor incomplete se (ace prin descompunerea tabelei iniiale n dou tabele) ambele conin,nd atributul intermediar (B)! " doua condiie din de(iniia $8N poate (i e9primata in mod general ast(el< (iecare atribut al relaiei depinde (uncional de c eia relaiei ) in integralitatea ei! ' relaie in 18N care are drept c ei numai c ei simple este o relaie in $ 8N! "lgoritmul de trans(ormare a unei relaii ec ivalente a(late in $8N este urmtorul< 1+ 5rin (iecare coloana Q care depinde (uncional parial de o c eie R) RgQ) si care nu este inclusa in R) se determina R1R un subset al lui R) ast(el incat dependenta R1 gQ este totala si se creeaz in nou tabel K1(R1)Q)) adic un tabel (ormat numai din determinantul (R1) si determinantul (Q) acestei dependente! $! Daca in tabelul K e9ista mai multe dependente totale ca mai sus cu acela*i determinant) atunci pentru acestea se creeaz un singur tabel (ormat din determinant B luat o singura data si din determinanii dependentelor considerate! Se elimina din tabelul iniial K toate coloanele) 9) care (ormeaz determinantul dependentei considerate! Se determina c eia primara a (iecrui tabel nou creat) K1! "ceasta va (i R1) determinantul dependentei considerate! Daca noile tabele create conin alte dependente pariale) atunci se merge la pasul 1) alt(el algoritmul se termina!

1&

"lgoritmul se repeta pentru toate relaiile nou create) pana c,nd toate acestea vor a;unge in a doua (orma normala! 9 R*< N R*<-< 3 9N3. ' tabel este n 8NA dac *i numai dac este n 8N$ (iecare atribut neprim depinde n mod netranzitiv de c eia tabelei! +ntr-o tabel #) (ie ")B)/ trei atribute cu " c eie! Dac B depinde de " (" , B) *i / depinde de B (B , /) atunci / depinde de " n mod tranzitiv! -liminarea dependenelor tranzitive se (ace prin descompunerea tabelei iniiale n dou tabele) ambele conin,nd atributul intermediar (B)! ' tabel n 8NA prezint nc o serie de anomalii de actualizare) datorate eventualelor dependene multivaloare! <lgoritmul 39N In relaia iniiala se determina toate dependentele (uncionale si se selecteaz cele care au ca sursa atribute neprime4 daca e9ista ast(el de dependente atunci sc ema relaiei se descompune in doua subsc eme) con(orm algoritmului de la pasul $! 5entru (iecare dependenta (uncionala identi(icata la pasul 1 se de(ine*te o descompunere a sc emei relaiei iniiale in doua subsc eme) ast(el< 5rima subsc ema va avea drept c eie primara sursa dependentei (uncionale selectate " doua subsc ema se obine din vec ea sc ema ) prin nlturarea atributelor incluse in prima subsc ema) mai puin atributele care alctuiesc c eia primara in prima subsc ema! Daca tabelele celelalte conin alte dependente non-c eie) atunci se merge la pasul 1) alt(el algoritmul se termina! 9 R*< N R*<-< 4 9N4! ' tabel este n 8NI dac *i numai dac este n 8NA *i nu conine dou sau mai multe dependene multivaloare! +ntr-o tabel #) (ie ")B)/ trei atribute! +n tabela # se menine dependena multivaloare " dac *i numai dac mulimea valorilor lui B ce corespunde unei perec i de date (")/)) depinde numai de o valoare a lui " *i este independent de valorile lui /! 9 R*< N R*<-< 5 9N5. ' tabel este n 8NP dac *i numai dac este n 8NI *i (iecare dependen ;onciune este generat printr-un candidat c eie al tabelei! +n tabela # (")B)/) se menine dependena ;onciune ("B) "/) dac *i numai dac # menine dependena multivaloare " --SS B sau /!

1'

Dependena multivaloare este caz particular al dependenei ;onciune! Dependena (uncional este caz particular al dependenei multivaloare!

5.2. Normali'area (a'ei de date


Deoarece tabelul tvpresa prezenta redundant e in date am normalizat aceast tabel!"st(el am obtin tabelul transmisie alaturi de tabelul ramas tvpresa 1! transmisie numetv 5roSieben -@K'S5'K# -@K'S5'K# $ Sport!ro transmisiune CITCITINK-GIS#K"#" INK-GIS#K"#"

tvpresa 1 IdLtv 1I 1A 1$ 11 1% 2 NumeLtv Sport!Ko 5rosport Digisport -urosport$ -urosport 5roSieben NumeLrepr Nae Cazarescu 'vidiu Sabau "le9andri Ipsilanti 'vidiu Naum G eorg ita Ionut Cars Uolgerson specializare Sunetist /omentator reporter Sunetist Keporter Keporter #ipLemisiune INK-GIS#K"KINK-GIS#K"KCITINK-GIS#K"KCITCIT-

"nalog am procedat si pentru tabelul sporturi obtinand tabelul nsport alaturi de tabelul ramas sporturi1!

nsport

1(

ids 1 $ A I P & 3 7 2 1% 11 1$ 1A 1I 1P

numesport Biatlon Bob /ombinatia Nordica /urling Uoc ei pe G eata 5atina; "rtistic 5atina; S ort-#racJ 5atina; Titeza Sanie Sarituri cu Sc iurile Sc i "crobatic Sc i "lpin Sc i 8ond SJeleton SnoDboard

sporturi1

ids 1

arena Caura Biat lon SJi /omple9

subprobe $% Jm individual masculine 1P Jm individual (eminine

1)

1% Jm sprint masculine 3!P Jm sprint (eminine $ Bols oE Ice Dome -c ipa; dublu -c ipa; patru A S aEba "rena Gundersen individual -c ipa CU Sprint 3!P Jm Sprint CU I P & "dler "rena SJating /enter 8is t 'lEmpic Stadium Iceberg SJating 5alace 5rogram scurt perec i 5erec i liber Dans compulsorE Dans original Dans liber 3 'lEmpic village 1P%% m masculin P%% m (eminin A%%% m sta(eta (eminin 7 Kosa R utor -9treme 5arJ P%%% m masculin P%% m masculin P%% m (eminin 5ursuit pe ec ipe 2 KusSJi GorJi Humping /enter Individual masculin Individual (eminin Dublu 1% Kosa R utor -9treme 5arJ NU individual

1*

CU individual -c ipa CU 11 Kosa R utor -9treme 5arJ ?ogul (eminin ?ogul masculin "erial (eminin "erial masculin 1$ 8is t 'lEmpic Stadium /oborare masculine /ombinatie masculin Slalom combinat masculin

1A

KusSJi GorJi Humping /enter

1P Jm pursuit (eminin A% Jm pursuit masculin Sprint ec ipa (eminin Sprint ec ipa masculin 1% Jm classic (eminin

1I 1P

Soci "rena Bols oE Ice Dome Ual(pipe masculin Ualpipe (eminin 5SG masculin 5SG (eminin

20

"celasi algoritm am aplicat si pentru tabelul sportivi obtinand tabelul nsportivi cu determinantul id)alaturi de tabelul ramas sportivi1! nsportivi id I$1 $A1 AI1 P$1 273 IPA 2A7 P$& &IA A2I 7I% A2P 1A2 A$A 71% 1AI 231 221 2PP 7AA 1II A$$ $2% nume "ioanei Ionescu Dinescu Uerbet Igerberg 'dolberg ?atteus #omas Cogan # eodore 5iere Cane Ioan Kubens Sven # omas Hansvelt Svetlana / ip er Cuca ?anor ?ateus Ratalin prenume ?arius ?arian Iulian Gere ard ?ateus Rlaus Ca m H on H onnE Samuel -9uperE Koger ?arcu-5avel Ueinz Ivanovici ?orgens ten #ommasen -vora G eorge Ko9ana HimmE Han Rristo

21

P&$ P2A 31I 33P IAI $P& P1$

Igor ?aria 5avlcenco ?ec eres Galiceanu ?i ailovici 5rus ot

Uassenberg Kaul Ianas 'tillo ?i ai 5etrov Dadanov

sportivi1 id I1 $ $A 1 AI 1 P$ 1 27 3 IP A 2A tara Komania antrenor Tulpe "le9andru George Grosu Ion ?atei arenaan t proba nrau r % nra g % nrbr z % activitati 8ilm)UoJeE)SJi

Bols oE Biatlon Ice Dome Iceberg SJating 5alace Iceberg SJating 5alace 5alatul Soci /ombinati a Nordica Sanie

Komania

#etru)?uzeu

Komania

8otbal)SJi)#eatru

Germani a Germani a Germani a 'landa

B;orn Ueinric B;orn Ueinric Ig ensen Cot ar /revensen

5atina; "rtistic

% 1

1 I

% %

?uzeu)#eatru)5atin a; "rtistic 5atina;)SJi

Bols oE 5atina; Ice S ortDome #racJ Iceberg SJating 5alace 5atina; "rtistic

8ilm)#ir)Sc i Nautic

Bols oE Sarituri cu

5escuit)#eatru)

22

7 P$ & ?area Britanie

'sling Dunn 5 ilips

Ice Dome Kosa R utor 5lateau 'lEmpi c Tillage Iceberg SJating 5alace Kosa R utor 5lateau 'lEmpi c Tillage Iceberg SJating 5alace Kosa R utor 5lateau 'lEmpi c Tillage Kosa R utor 5lateau 'lEmpi c Tillage Kosa R utor 5lateau 'lEmpi c

Sc iurile /ombinati a Nordica 1 1 A

?uzeu 5atina;)SJi

&I A A2 I

S!@!"!

GreE 8o9

Sarituri cu Sc iurile Sanie

#eatru

S!@!"!

H on Smit

?uzeu

7I % A2 P

8ranta

5iere / amin Dunn 5 ilips

Biatlon

?uzee)SJi) 5arasutism SJi)/alatorii

?area Britanie

Biatlon

1A 2

Komania

George Grosu

Biatlon

/alatorii) 5irote nist

A$ A

-lvetia

'scar de #rausenbur g

/ombinati a Nordica

SJi)Hocuri de noroc

23

Tillage 71 % 1A I 23 1 22 1 2P P 7A A 1I I A$ $ $2 % Kusia 5iotr Tiga Iceberg SJating 5alace S aEba "rena Soci "rena Iceberg SJating 5alace Iceberg SJating 5alace 5Soci "rena KusSJi GorJi KusSJi GorJi Kosa R utor 5lateau 'lEmpi c Tillage Iceberg SJating 5alace S aEba "rena /ombinati a Nordica /ombinati a Nordica 5atina; "rtistic 5atina; "rtistic 5atina; "rtistic 5atina; "rtistic 5atina; S ort#racJ 5atina; S ort#racJ 5atina; S ort#racJ % 1 % 8otbal)SJi

-lvetia

'scar de #rausenbur g "dvensen 5iotr Tiga

SJi)Inot)8itness

"ustria Kusia

1 1

1 %

% %

/alatorii)?uzee) Sport /ititul)/alatoriile

Komania

George Grosu Ion ?atei H on Smit

5escuitul)Ka(ting

Komania S!@!"!

% A

1 1

% 1

?oda)/alatorii) 5escuitul /urse de cai)Hocuri de noroc)/alatorii -scaladatul)8otbal

Germani a Komania

Ig ensen Cot ar Ion ?atei

5escuitul)8otbal)SJi

P& $ P2 A

"ustria

?iroslav Berger Diego Kodriguez

5atina; S ort#racJ Sanie

SJi)5atina;)Hocuri de noroc /alatorii)?uzeu)

Spania

2%

5escuit 31 I 33 P IA I $P & P1 $ Kusia @ngaria Gbri /ercenco Is tvan 'tonetz George Grosu "le9ander /ec /roatia Dalucenco ?auser KusSJi GorJi Iceberg SJating 5alace S aEba "rena Iceberg SJating 5alace KusSJi GorJi Sanie Sanie % % A % % % 5atina;)SJi)Hocuri de noroc /alatorii)?uzee)SJi nautic -scaladari)SJi SJi)5escuit)Hocuri de noroc /alatorii)"ltele

Komania @craina

Sarituri cu sc iurile Sarituri cu sc iurile Sarituri cu sc iurile

% %

% %

1 %

Cap.#.)enormali'area (a'elor de date #.1.Notiuni generale


@na din primele de(initii ale denormalizarii a (ost (ormulata de /andace 8leming *i Barbara von Ualle< procesul prin care) dupa de(inirea unei structuri de date stabile) deplin normalizate) se introduc selectiv date redundante pentru (acilitarea unor cerinte speci(ice legate de per(ormanta! Kobert ?uller de(inea denormalizarea ca procesul combinarii de tabele sau obiecte pentru a cre*te viteza de acces) de obicei prin evitarea ;onctiunilor! /eva mai analitic) #obE #eoreE de(inea denormalizarea ca un proces alcatuit din urmatoarele activitati< V selectarea proceselor dominante) pe baza (recventei) volumului) prioritatii4 V de(inirea unor e9tensii ale tabelelor e9istente (atribute sau c iar tabele noi) care sa amelioreze per(ormantele de interogare a bazei4 V evaluarea costului total al interogarii) stocarii *i actualizarii4 V evaluarea e(ectelor colaterale) cum ar (i riscul pierderii integritatii datelor! 5robabil cel mai des invocat motiv pentru denormalizare este timpul necesar e(ectuarii ;onctiunilor ntre tabelele (ragmentate rezultate n urma normalizarii! Daca numarul tabelelor este mare) numarul de rapoarteFin(ormatii solicitate de utilizatori este uria* *i

2&

presupune ;onctionari numeroase) utilizatorii sunt numero*i) iar cerintele de viteza sunt vitale) tentatia este de a introduce atribute redundante sau de a duplica atribute n tabele di(erite) ast(el nc,t numarul ;onctiunilor necesare obtinerii in(ormatiilor (recvente sa (ie c,t mai mic cu putinta! 5rin urmare) uneori) deviatiile de la o buna normalizare par logice *i practice! / is Date sintetizeaza (oarte bine argumentul n trei parti al denormalizatorilor< 1! Normalizarea deplina nseamna multe relatii separate logic! $! ?ai multe relatii logic separate nseamna mai multe (i*iere de stocare separate (izic! A! ?ai multe (i*iere de stocare separate (izic nseamna un mai mare volum de operatii de intrareFie*ire) deci consum de resurse! -9ista c,teva simptome care trebuie sa atraga atentia asupra sc emelor susceptibile de denormalizare< i! rapoarte *i interogari critice e9trag in(ormatiile prin interogarea simultana a multor tabele4 ii! e9ista grupuri repetitive care sunt nu procesate at,t individual) c,t la nivel de set (grup)4 iii! interogarileFrapoarte reclama calcule aplicabile multor atribute a(late n tabele di(erite4 iv! utilizatori di(eriti acceseaza simultan acela*i tabel sau grup de tabele dupa criterii di(erite4 v! c eile primare ale unor tabele sunt prea mari *i consuma timp la ;onctionari4 vi! e9ista di(erente ma;ore) din punct de vedere statistic) ntre gradul de (olosire n interogari a unor atribute (ata de altele! /riteriile care sa prezinte n detaliu cum anume trebuie (acuta denormalizarea sunt structurate in trei linii directoare< I! identi(icarea aplicatiilor-program care contin un numar e9cesiv de ;onctiuni) desemn,nd drept e9cesive cazurile n care o tabela virtuala) tabel-obiect necesita mai mult de trei ;onctiuni4 II! reducerea numarului de c ei straine) care ar atrage descongestionarea indec*ilor ce trebuie gestionati la actualizarile tabelelor4 reducerea c eilor straine se traduce) de (apt) prin reducerea numarului de tabele din baza4 III! meninerea mecanismului de integritate pentru evitarea anomaliilor datelor din baza! /ele trei linii directoare nu su(era doar de generalitate) ci c iar sunt discutabile) n sine) ntruc,t aplicarea lor trebuie raportata permanent la situatia e(ectiva Wdin teren>! Denormalizarea are un cost) tradus) de cele mai multe ori) n pierderea (le9ibilitatii) diminuarea scalabilitatii) per(ormante mai slabe ale aplicatieiFbazei de date sau c iar amenintari la adresa integritatii datelor! 5lus) e(ortul necesitat de mecanismele laborioase de pastrare a corectitudinii in(ormatiilor paralele) redudandante! /ategorii de operatii legate de denormalizare -9ista o larga tipologie a operatiunilor ce pot (i subsumate denormalizarii! DicJ Koot identi(ica *apte te nici utilizabile n denormalizare< 1!Date duplicate (copiii integrale sau partiale ale unor atribute sau grupuri de atribute)! $!Date derivateFcalculate! A!/ ei surogate! I!Supra-normalizare - partitionareFsegmentare pe vertical< ruperea unei relatii n doua sau mai multe! P!5artitionareFsegmentare pe orizontal< linii di(erite dintr-o relaie sunt stocate n tabele di(erite! &!Honctiuni stocate B ;onctionarea a doua sau mai multe tabele *i stocarea rezultatului ntr-o tabela de-sine-statatoare! 3!Grupuri de date repetitive (date de tip vector)! ?odalitati de denormalizare aplicabile (iecarei (orme normale$$< 1N8) $N8) AN8 cu c,teva sugestii pentru (ormele normale Wmai nalte>! ?ullins recomanda (olosirea) n cadrul

2'

denormalizarii) a urmatoarelor arti(icii< V tabele pre-;onctionate4 V tabele-raport) construite n (unctie de rapoartele critice ale aplicatiei4 V tabele-oglinda) mai ales n mediile cu acces simultan al unui mare numar de utilizatori4 V tabele partitionate) n (unctie de grupurile de utilizatori4 V tabele combinate) pentru consolidarea legaturilor unu la mai multi ntr-o singura tabela4 V date copiate (duplicate)4 V grupuri repetitive4 V date derivate4 V tabele de marire a vitezei) recomandabile mai ales n cazul ierar iilor!

#.2. )enormali'area (a'ei de date


5entru a a(la in(ormatiilor complete despre sportivii prezenti in tabela clasamentLpuncte am otarat sa denormalizez aceast tabel !"st(el in urma denormalizarii tabelului alaturi de tabelul sportivi am obtinut tabelul in(ormatii!"cest process este ec ivalent interogarii de ;onctiune Hoin Ce(t dintre tabelul clasamentLpuncte si tabelul sportivi!"st(el creste per(ormanta per(ormanta si simpli(ica programul de simpli(icare a datelor!

ids

pu nct e A

proba

tara

nume

prenu me

antrenor

arenaa nra nt ur Kosa R uto r 5latea u 'lEm pic Tillag e %

nra rg %

nrb rz %

activitati

$P&

Sarituri @cra cu ina Sc iuril e

?i ail ovici

5etrov "le9and er /ec

SJi)5escuit) Hocuri de noroc

IAI

&

Sarituri Kom cu ania Sc iuril e 5atina; "rtistic Sarituri

Galice anu

?i ai

George Grosu

KusSJ % i GorJi A

-scaladari) SJi

IPA

Ger 'dolb mani erg a /roa

Rlaus

Ig ensen S aEb Cot ar a "rena Bols

8ilm)#ir) SJi Nautic /alatorii)

P1$

1%

5rus o Dadan Dalunce

2(

cu tia Sc iuril e P$1 7 5atina; "rtistic

ov

nco ?auser B;orn Ueinric

oE Ice Dome KusSJ % i GorJi KusSJ % i GorJi Bols oE Ice Dome Bols oE Ice Dome % 1 %

"ltele

Ger Uerber mani t a Cogan

Gere ard

?uzeu)#eatru ) 5atina; "rtistic #eatru

&IA

Sarituri S!@! cu "! Sc iuril e 5atina; "rtistic Kom ania

H onn E

GreE 8o9

7AA

Cuca

Ko9an Ion a ?atei /revens en 'slig

?oda)/alator ii) 5escuitul 5escuit)#eatr u) ?uzeu

2A7

1%

Sarituri 'lan cu da Sc iuril e 5atina; "rtistic 5atina; "rtistic Kom ania Kusi a

?atteu Ca m s

2PP

1%

/ ip er Svetla na

G eor ge -vora

George Grosu 5iotr Tiga

KusSJ % i GorJi Bols oE Ice Dome 1

5escuitul) Ka(ting /ititul) /alatoriile

221

Cap.$. Sistemul de gestiune *+S,$.1.Notiuni generale


?ESXC este un server SXC pentru baze de date (oarte robust) rapid) multi-utilizator) multi-t read! @na dinte cele mai bune caracteristici ale ?ESXC este ca suporta un sistem de privilegii (dreptul de a (ace o anumita actiune asupra unui obiect) pentru utilizatori (oarte so(isticat! /and vei crea un utilizator) ii vei da acces la un set de privilegii pentru a speci(ica ce anume poate sa (aca si ce nu poate sa (aca un utilizator! @n utilizator ar trebui sa aiba cel mai mic nivel de privilegii necesar pentru a-si indeplini sarcina! Crearea ta(elelor /K-"#- #"BC-

2)

CREATE TABLE nume_tabel (nume_coloana tip_data [DEFAULT expresie] !" [#CTFREE $ntre%] [#CTU&ED $ntre%] [TABLE&#ACE spa'iu tabel] [&T(RA)E parametrii_de_stocare]

o D-8"@C# B desemneaz o valoare implicita pentru coloana) o #"BC-S5"/- B speci(ica spaiul tabel in care va (i stocat tabelul 5/#8K--F5/#@S-D B speci(ica gradul de utilizare al blocurilor /rearea tabelelor e urmata de numele tabelei si poia de nume si tipul de date al campurilor din baza de date! Yvarc arY inseamna caractere de lungime variabile! Numarul din paranteza este lungimea ma9ima de caractere admise!Ynot nullY speci(ica ca nu avem voie sa avem valori nule pe acel camp in inregistrari! YintY inseamna numar inreg) iar YunsignedY numar pozitiv! YautoLincrementY speci(ica pentru ?ESXC sa atribuie o valoare automat la o noua adaugare de inregistrare cu o valoare mai mare cu 1 decat cea mai mare valoare din acel camp (necesar pentru un camp ID)! YprimarE JeEY speci(ica (aptul ca acel camp va (i inde9at ((iecare valoare va (i unicat)! !ipuri de campuri /ele trei tipuri de baza pentru campuri sunt< numeric) data si timp si sir de caractere(string)! /and alegi un anumit tip sau subtip) poti speci(ica si lungimea ma9ima admisa (?) ma9im $PP)! !ipurile de date numerice 5entru numerele in virgula (lotanta ((loat)) poti speci(ica cu D numarul de ci(re dupa puctul zecimal! 5entru numerele intregi poti sa speci(ici daca vor (i doar pozitive cu YunsignedY! !ipuri de date intregi #ip Interval (BEtes) Descriere #INZIN#[(?)\ -1$3!!1$7 1 8oarte mic integers or %!!$PP S?"CCIN#[(?)\ -A$3&7!!A$3&3 $ Intregi mici or %!!&PPAP ?-DI@?IN#[(?)\ -7A77&%7!! A ?arime medie 7A77&%3 or %!!1&333$1P IN#[(?)\ -$A1!!$A1-1 I Intregi normali or %!!$A$-1 IN#-G-K[(?)\ Sinonim cu IN# BIGIN#[(?)\ -$&A!!$&A-1 7 Intregi mari or %!!$&I-1 !ipuri de date 0lotante #ip Interval (BEtes) Descriere 8C'"#(precision) depinde 5recizie simpla sau precizie dubla 8C'"#[(?)D)\ ]1!13PI2IAP1--A7 I 5recizie simpla ]A!I%$7$AI&&-^A7 D'@BC-[(?)D)\ ]1!323&2A1AI7&$A1P3- 7 5recizie dubla ^A%7 ]$!$$P%3A7P7P%3$%1I-A%7 D'@BC5K-/ISI'N[(?)D)\ la (el K-"C[(?)D)\ la (el D-/I?"C[(?[)D\)\ variaza ?^$ 8loat stocat ca c ar! N@?-KI/[(?)D)\ la (el Sinonim cu D-/I?"C! !ipurile pentru data si timp #ip Interval Descriere

2*

D"#- 1%%%-%1-%1 ' data(ZZZZ-??-DD)! 2222-1$-A1 #I?-7A7<P2<P2 @n time(UU<??<SS)! 7A7<P2<P2 D"#-#I?- 1%%%-%1-%1 Data si timp(ZZZZ-??-DDUU<??<SS)! %%<%%<%% 2222-1$-A1 $A<P2<P2 #I?-S#"?5 123%-%1-%1 @n timestamp) (olosit in tranzactii! [(?)\ %%<%%<%% Z-"K[($_I)\ 3%B&2 @n an in (ormat cu $ sau I ci(re Zou can speci(E $ or I digit (ormat! 12%1B$1PP !I*=S!<*P4uri #Epe Speci(ied DisplaE #I?-S#"?5 ZZZZ??DDUU??SS #I?-S#"?5(1I) ZZZZ??DDUU??SS #I?-S#"?5(1$) ZZ??DDUU??SS #I?-S#"?5(1%) ZZ??DDUU?? #I?-S#"?5(7) ZZZZ??DD #I?-S#"?5(&) ZZ??DD #I?-S#"?5(I) ZZ?? #I?-S#"?5($) ZZ !ipuri pentru siruri de caractere Se impart in trei grupuri< siruri normale< /U"K ((i9ed lengt c aracter) si T"K/U"K (variable lengt c aracter)) siruri #-Q# si BC'B pentru siruri lungiFdate binare si sirurile S-# si -N@? (valori prede(inte)! !ipuri pentru siruri de caractere regulare #ip Interval [N"#I'N"C\ 1 to $PP /U"K(?) [BIN"KZ\ [N"#I'N"C\ 1 to $PP T"K/U"K(?) [BIN"KZ\ !ipuri !=>! si /- / Cungime ma9ima #ip (/aractere) #INZBC'B $7-1 ($PP) #INZ#-Q# $7-1 BC'B $1&-1 (&P!PAP) #-Q# $1&-1 ?-DI@?BC'B $$I-1 (1&!333!$1P) ?-DI@?#-Q# $$I-1 C'NGBC'B $A$-1

30

(I!$2I!2&3!$2P) C'NG#-Q# $A$-1 !ipuri S=! si =NU* #ip Nr! valori in set Descriere -N@?(`valoare1a) &PPAP ' singura valoare din lista sau N@CC `valoare$a)!!!) S-#(`valoare1a) &I @n set dintre valorile din lista! `valoare$a)!!!) -9emplu< create table Ltabela1 (id int autoLincrement primarE JeE)ansDer enum (`daa) `nua) de(ault `nua)4 !ipul de camp NU-5entru a (ace o valoare dintr-un camp N@CC) nu include acel camp in declaratia INS-K#! /ampurile au ca valoare implicita N@CC daca nu speci(ici YN'# N@CCY! 5entru compararea valorilor cu N@CC se (olosesc YIS N@CCY sau YIS N'# N@CCY! )escrierea ta(lelelor 5ermite a(isarea detaliilor despre campurile tabelei! Inserarea inregistrarilor in ta(ele /omanda SXC INS-K# inseareaza in(ormatii in tabele! INS-K# IN#' tabel[(coloana1) coloana$) b)\ T"C@-S (valoare1) valoare$) b) <ctuali'area datelor din ta(ele Se (ace cu comanda SXC @5D"#-! @5D"#- numeLtabela S-# numeLcamp1 M val1)numeLcamp$ M val$)numeLcampA M valA !!! [cU-K- conditii\4 =:tragerea in0ormatiilor dorite din ta(ela In(ormatiile dorite sunt e9trase din tabela (preocesul de interogare) cu comanda S-C-/#
SELECT nume_campuri from nume_tabela [WHERE ...conditii];

5entru a a(isa intreaga tabela) in loc sa speci(icam toate campurile vom (olosi simbolul YdY< /omparatiile ?ESXC sunt case insensitive ceea ca inseamna ca :;o n:) :Ho n: sau :HoUn: ar merge in e9emplul de mai sus! peratori de comparatie 'perator Nume -9emplu M eGalitate customerid M A S mai mare amountS&%!%% e mai mic amounte&%!%% SM mai mic sau egal amountSM&%!%% eM mai mic sau egal amounteM&%!%% fM sau di(erit GuantitE fM % eS IS N'# valoare nenula N@CC IS N@CC valoare nula B-#c--N interval de valori amount betDeen % and &%!%% IN inclus intr-un set prede(init citE in (=/arlton>) =?oe>) N'# IN neinclus intr-un set prede(init citE not in (=/arlton>)=?oe>) CIRcautare pattern name liJe (=8red g>) N'# CIR- cautare pattern

31

K-G-Q5 e9presie regular name rege9p /onditiile SXC pot contine si operatorii logici< "ND) 'K si N'#! Sortarea datelor Inregistrarile e9trase anterior au (ost a(isate in ordinea in care erau stocate in tabela! 5entru a le sorta (olosim clauza 'KD-K BZ a comenzii S-C-/#! -Q< Sortarea ascendenta a inregistrarilor in (unctie de impozit pe salariu< ?EsGlS S-C-/# nume) salariud%!A7 8K'? pro(esor 'KD-K BZ salariud%!A74 N@?S"C"KI@d%!A7 ---------------------------------T'IN-" IP& S#"N-S/@ IP& I'N-S/@ P3% "CB@ 7A& ?"KIN 2P% Inregistrarile sunt sortate in mod implicit in ordinea ascendenta (optiunea "S/)) a(isarea in ordinea ascendenta (acandu-se prin utilizarea optiunii D-S/! 'bservati ca in momentul sortarii valoarea Null este considerata cea mai mare) deci daca sortarea este ascendenta este trecuta pe ultima pozitie si daca este descendenta este trecuta pe prima pozitie! De e9emplu< ?EsGlS S-C-/# grad) prima 8K'? pro(essor 'KD-K BZ grad) prima D-S/4 GK"D 5KI?" ---------------------------"SIS# "SIS# &%% /'N8 1P% C-/# $P%% 5K'8 5K'8 AP%% 8orma generala a clauzei CI?I# este< S-C-/# (!!!) (rom tabela CI?I# nrLrandLincepere) nrLinregLe9trase4 8olosirea clauzei )IS!INC! permite listarea doar a valorilor distincte din baza de date pentru (iecare camp in parte! 9unctii agregat ?IN()< Taloare minima ?"Q()< Taloare ma9ima S@?()< Suma valorilor "TG()< ?edia aritmetica /'@N#()< Numarul inregistrarilor e9trase )enumirea campurilor in S=-=C! ?ESXC permite sa denumesti campurile e9trase cu termeni mai descriptivi pentru datele e9trase! Clau'a 7R UP /? permite gruparea in(ormatiilor similare! Deci) pentru a lista toate (unctiile unice din tabela< ?EsGlS S-C-/# grad) ?"Q(salariu) 8K'? pro(essor cU-K- prima IS N'# N@CC GK'@5 BZ grad4

32

GK"D ?"Q (S"C"KI@) --------------------------"SIS# 1$%% /'N8 $7%% C-/# $$%% 5K'8 A%%% Clau'a @<AIN7 permite speci0icare unei conditii pentru gruparea inregistrarilor ?EsGlS S-C-/# grad) "TG(salariu )8K'? pro(esor GK'@5 BZ grad U"TING "TG(salariu)S$%%%4 GK"D "TG(S"C"KI@) --------------------------/'N8 $7%% C-/# $$%% 5K'8 $3P% Extra%erea inre%istrarilor din mai multe tabele (*(+,-uri" De multe ori) ca sa raspunzi la o intrebare trebui sa e9tragi date din mai multe tabele! De e9emplu) pentru a a(la ce clienti au (acut comenzi luna asta trebuie sa (olosesti tabela clienti si tabela comenzi! 5entru acest lucru in SXC trebuie realizata o relatie intre tabele (J IN) pe baza unor in(ormatii comune (un camp de ID)! !ipuri de Boin4uri in *+S,5rodus cartezian) 8ull Hoin) /ross ;oin #oate combinatiile tuturor liniilor din tabela! Se speci(ica prin virgula si (ara clauza cU-K-! Inner ;oin! 5oate (i speci(icat prin virgula intre numele tabelelor sau prin (olosirea cU-K- sau cu cuvintele c eie INN-K H'IN! -Gui-;oin 8oloseste o conditie cu YMY pentru a (ace corespondente intre inregistrari! Ce(t ;oin Incearca sa gasesca corespondente intre tabele si cand nu gaseste) umple inregistrarile (ara perec e cu N@CC! Stergerea inregistrarilor din ta(ela D-C-#- 8K'? table [cU-K- condition\ [CI?I# number\ Stergerea ta(elelor Se (olose*te comanda DK'5 #"BC-< Crearea indecsilor Se poate (ace cu comanda IND-Q sau speci(icand la crearea unui tabel un camp ca 5KI?"KZ R-Z!
index nume_index (nume_coloana_indexata)

create table mELtable ( idLcol int unsigned autoLincrement primarE JeE) anot erLcol te9t )4 Indecsii pot cuprinde si mai multe campuri< create table mEtable( idLcol int unsigned not null) anot erLcol c ar($%%) not null) inde9 dualLcolLinde9(idLcol) anot erLcol) )4

33

*odi0icarea ta(elelor dupa creare "C#-K #"BC- nume modi(icare [) modi(icare !!!\ Posi(ile modi0icari cu <-!=R !</-= Sinta9a Descriere "DD [/'C@?N\ columnLdescription "dauga o coloana [8IKS# _ "8#-K column \ "DD [/'C@?N\ (columnLdescription) "dauga o descriere de coloana "DD IND-Q [inde9\ (column)!!!) "dauga un inde9 "DD 5KI?"KZ R-Z (column)!!!) #rans(orma campul in 5R "DD @NIX@- [inde9\ (column)!!!) "dauga un inde9 pt! unicate "C#-K [/'C@?N\ column NS-# D-8"@C# "daugaFsterge valorile implicite value _ DK'5 D-8"@C#O /U"NG- [/'C@?N\ column neDLcolumn ?odi(icari pentru coloaneLdescription ?'DI8Z [/'C@?N\ columnLdescription DK'5 [/'C@?N\ column Sterge un camp DK'5 5KI?"KZ R-Z Sterge 5R DK'5 IND-Q inde9 Sterge inde9ul K-N"?-["S\ neDLtableLname Kedenumeste o tabela Sinta9e "C#-K< (Kedenumire tabela<)alter table nume_vechi rename nume_nou (?odi(icare camp<)alter table m _table add column m _column te!t not null (Stergere camp)<alter table nume_tabela drop column nume_camp Indecsi< alter table mELtable add inde9 inde9Lname (columnLname1) columnLname$) !!!) alter table mELtable add uniGue inde9Lname(columnLname) alter table mELtable add primarE JeE(mELcolumn) alter table tableLname drop inde9 inde9Lname alter tableLname test1% drop primarE JeE

$.2.<plicatii
C444IN!=R 7<RI444D 1. !arile Participante ordonate dupa nr de cod. --S Select hideh)htarah (rom tariparticipante order bE 14

2. Nr de Bucatori ai 0iecarei tari

3%

--S Select hideh)htarah)hnrsportivih (rom tariparticipante order bE 14 3. <ntrenoriiE*ediciiE*aseuriiEPsi%ologii 0iecarei tari --S S-C-/# hideh)htarah)hantrenorh)hmedich)hmasseurh)hpsi ologh (rom tariparticipante4 4. !arile care auFnu au psi%ologi --S S-C-/# hideh)htarah)hpsi ologh (rom tariparticipante D ere psi olog fM :("BS-N#):4 --S S-C-/# hideh)htarah)hpsi ologh (rom tariparticipante D ere psi olog M :("BS-N#):4 5. !arile care auFnu au maseuri --S S-C-/# hideh)htarah)hmasseurh (rom tariparticipante D ere masseur M :("BS-N#):4 --S S-C-/# hideh)htarah)hmasseurh (rom tariparticipante D ere masseur fM :("BS-N#):4 #. Sporturile la care participa sporti2ii --S select ids ) numesport ) subprobe (rom sporturi 'KD-K BZ hsporturih!hidsh "S/ $. <renele disponi(ile de antrenament pentru sporti2i --S select ids)numesport)arena (rom sporturi 4 &. Sporti2ii 0iecarei ec%ipe participante ordonati in mod al0a(etic tara nume prenume --S S-C-/# id)nume)prenume)tara (rom sportivi order bE I)$)A 4

.. <ntrenorii 0iecarui Bucator participant ordonati in mod al0a(etic dupa tara nume prenume --S S-C-/# id)nume)prenume)tara)antrenor (rom sportivi order bE I)$)A4 1". Clasamentul pe medalii --S S-C-/# d 8K'? clmedalii 'KD-K BZ total D-S/4 11. !arile cu un numar minim de & medalii de aurF(ron'Fargint

3&

--S S-C-/# idc)tara)aur (rom clmedalii D ere (aurSM7) order bE aur desc --S S-C-/# idc)tara)argint (rom clmedalii D ere (argintSM7) order bE argint desc --S S-C-/# idc)tara)bronz (rom clmedalii D ere (bronzSM7) order bE bronz desc 12. !ari descali0icata pentru dopaB --S S-C-/# idc)tara)dopa; (rom clmedalii D ere dopa; liJe :Descali(icat:4 13. Sporti2ii cu cele mai multe medalii de aurFagF(r' --S S-C-/# id)nume)prenume)tara)nraur (rom sportivi D ere nraurS$ order bE I)$)A --S S-C-/# id)nume)prenume)tara)nrag (rom sportivi D ere nragS$ order bE I)$)A --S S-C-/# id)nume)prenume)tara)nrbrz (rom sportivi D ere nrbrzS$ order bE I)$)A 14. Clasament Puncte anumita pro(a 6 PatinaB <rtisticGSarituri cu Sc%iurile 8 --S S-C-/# DIS#IN/# idLs)nume)prenume)tara)clasamentLpuncte!proba)puncte (rom sportivi)clasamentLpuncte D ere ( sportivi!idMclasamentLpuncte!idLs and clasamentLpuncte!proba liJe :5atina; "rtistic: )order bE puncte desc --S S-C-/# DIS#IN/# idLs)nume)prenume)tara)clasamentLpuncte!proba)puncte (rom sportivi)clasamentLpuncte D ere ( sportivi!idMclasamentLpuncte!idLs and clasamentLpuncte!proba liJe :Sarituri cu sc iurile: )order bE puncte desc

15. Clasament !imp anumita pro(a 6 /iatlonG --S S-C-/# DIS#IN/# idLs)nume)prenume)tara)probaLs)timp (rom sportivi)clasamentLtimp D ere ( sportivi!idMclasamentLtimp!idLs and probaLs liJe :Biatlon: )order bE timp4 --S S-C-/# DIS#IN/# idLs)nume)prenume)tara)probaLs)timp (rom sportivi)clasamentLtimp D ere ( sportivi!idMclasamentLtimp!idLs and probaLs liJe :/ombinatia Nordica: )order bE timp4 --S S-C-/# DIS#IN/# idLs)nume)prenume)tara)probaLs)timp (rom sportivi)clasamentLtimp D ere ( sportivi!idMclasamentLtimp!idLs and probaLs liJe :Sanie: )order bE timp4 1#. Recorduri

3'

--S S-C-/# idLr)nume)prenume)tara)probaLr)timp)tipLrec (rom sportivi)recorduri)clasamentLtimp D ere ( sportivi!idMrecorduri!idLr and tipLrec liJe :/ontinental: )4 --S S-C-/# idLr)nume)prenume)tara)probaLr)timp)tipLrec (rom sportivi)recorduri)clasamentLtimp D ere ( sportivi!idMrecorduri!idLr and tipLrec liJe :?ondial: )4 --S S-C-/# idLr)nume)prenume)tara)probaLr)timp)tipLrec (rom sportivi)recorduri)clasamentLtimp D ere ( sportivi!idMrecorduri!idLr and tipLrec liJe :'limpic: )4 1$. !2 4 Presa 6!R<NS*ISIUNI 444 -IA= 444 INR=7IS!R<!< 8 --S Select idt)numetv)transmisiune (rom tvpresa D ere transmisiune liJe :INK-GIS#K"#": group bE numetv --S Select idt)numetv)transmisiune (rom tvpresa D ere transmisiune liJe :CIT-: group bE numetv 1&. !2 4 Presa 6 R=P R!=RI 8 --S select idt)numetv)numerep (rom tvpresa D ere specilaizare liJe :cameraman: 4

$.3. !a(elele (a'ei de date !orino2""# ClasamentHpuncte

3(

ClasamentHtimp

recorduri

sporti2i

3)

t2presa

tariparticipante

3*

clmedalii

%0

%1

Sporturi

%2

Cap.&.Conclu'ii Proiectul contine date despre;


1! $! A! I! P! &! 3! 7! #arile participante la ;ocurile olimpice Hucatorii (iecarei tari in parte Sta((-ul ec ipelor ( antrenor)medic)masseur) Sporturile la care participa competitorii "renele unde vor avea loc competitiile /lasamentul pe medalii al tarilor /lasamentul pe timpFpuncte al sportivilor Kecorduri mondialeFolimpiceFcontinentale

/a'a de date contine ;


7 tabele - date re(eritoare la ;ucatori ) antrenori ) medici ) numar medalii de aurFargintFbronz ) ec ipe descali(icate Date de intrare - in(ormatii despre ;ucatori ) sporturile la care participa ) antrenorii lor ) arenele de antrenament si participare) Date de iesire - in(ormatii re(eritoare la clasament)recorduri ) puncta; !

5roiect situat intre mediu si di(icil datorita volumului mare de date ce trebuia cules 4 Nu oricine poate realiza o ast(el de baza de date 4

%3

Cap.../i(liogra0ie
1+

ttp<FF;alobean!itim-c;!roF/ursuriFDDD!mE-sGl!go!roF

$! 5eterson H! :Baze de date pentru ncepatori:) -d! "ll) $%%A


3+ %+

ttp<FFbd(r!cs!pub!roF /! Ivan) note de curs B (tp<FF(tp!utclu;!roFpubFusersFcivan

P! B,sc '!) 5opescu C!) Sisteme de operare) Citogra(ia @niversitii Bucure*ti) 1273 &! 5opescu I!!) Baze de date relaionale) -d! @niversitii Bucure*ti) 1227 3! Dollinger K!) :Baze de Date:) @niversitatea #e nica /lu;-Napoca) 122I

%%