162
CUPRINS 1. INFORMAŢIA. TEORIA INFORMAŢIEI. INFORMATICA MEDICALĂ. ..................... 3 1.1. Noţiuni introductive .................................................................................................... 2 1.2. Concepte matematice ale teoriei informaţiei................................................................ 4 1.3. Conceptul de informaţie .............................................................................................. 6 1.4. Transmiterea informaţiei ............................................................................................. 8 2. DATE SI CUNOSTINTE MEDICALE. FISIERE DE DATE. BAZE DE DATE MEDICALE. SISTEME DE GESTIUNE A BAZELOR DE DATE (SGBD) ...................... 10 2.1. Date si cunostinte medicale ....................................................................................... 10 2.2. Fişiere de date .......................................................................................................... 12 2.3. Baze de date .............................................................................................................. 13 2.4. Tipuri de baze de date ............................................................................................... 16 2.4.1. Baze de date relaţionale ...................................................................................... 16 2.4.2. Baze de date ierarhice ......................................................................................... 17 2.4.3. Baze de date în reţea ........................................................................................... 18 2.4.4. Baze de date orientate pe obiect .......................................................................... 19 2.5. Sisteme de gestiune a bazelor de date (SGBD) .......................................................... 20 3. NOŢIUNI DESPRE LIMBAJUL SQL ............................................................................ 23 3.1. Generalităţi ............................................................................................................... 23 3.1.1.Modelul relaţional de baze de date....................................................................... 24 3.1.2. Comenzi SQL ...................................................................................................... 25 3.2. Comenzi de selecţie ................................................................................................... 26 3.2.1. Alegerea tipurilor de date. .................................................................................. 27 3.2.2. Comanda SELECT .............................................................................................. 28 3.2.3. Comanda UNION................................................................................................ 35 3.3. Comenzi de execuţie (de manipulare a datelor DML) ................................................ 36 3.3.1. Comanda INSERT ............................................................................................... 36 3.3.2.Comanda UPDATE .............................................................................................. 36 3.3.3 Comanda DELETE .............................................................................................. 37 3.4. Comenzi speciale (data definition language DDL) .................................................... 38 3.4.1.Comanda CREATE TABLE, INDEX, VIEW .......................................................... 38 3.4.2. Comanda ALTER TABLE .................................................................................... 40 3.4.3. Comanda DROP ................................................................................................. 41 3.4.4. Comanda TRUNCATE ........................................................................................ 41 3.4.5. Comanda RENAME ............................................................................................ 42 3.5. Comenzi ale limbajului de control al tranzacţiilor (TCL) .......................................... 42 3.5.1. BD tranzacţionale ............................................................................................... 43 3.5.2. Controlul tranzacţiilor ........................................................................................ 43 3.6. Comenzi ale limbajului de control al datelor (DCL) .................................................. 46 3.6.1. Securitate ............................................................................................................ 46 3.6.2. Drepturi (Privilegii) ............................................................................................ 47 4. SISTEMUL DE GESTIUNE AL BAZELOR DE DATE “FOXPRO” ............................. 50 4.1. Noţiuni introductive .................................................................................................. 50 4.1.1. Ce reprezintă FoxPro? ........................................................................................ 50 4.1.2. Cum se lansează în execuţie FoxPro? ................................................................. 50 4.1.3. Cum pot folosi sistemul FoxPro? ......................................................................... 51 4.1.4. Câteva elemente de limbaj FoxPro ...................................................................... 52 4.2. Crearea structurii tabelelor de date .......................................................................... 53 4.2.1. Comanda CREATE ............................................................................................. 53

Curs Farma anul I Informatica

Embed Size (px)

DESCRIPTION

Curs Farma anul I Informatica

Citation preview

  • CUPRINS

    1. INFORMAIA. TEORIA INFORMAIEI. INFORMATICA MEDICAL. ..................... 3 1.1. Noiuni introductive .................................................................................................... 2 1.2. Concepte matematice ale teoriei informaiei ................................................................ 4 1.3. Conceptul de informaie .............................................................................................. 6 1.4. Transmiterea informaiei ............................................................................................. 8

    2. DATE SI CUNOSTINTE MEDICALE. FISIERE DE DATE. BAZE DE DATE

    MEDICALE. SISTEME DE GESTIUNE A BAZELOR DE DATE (SGBD) ...................... 10

    2.1. Date si cunostinte medicale ....................................................................................... 10

    2.2. Fiiere de date .......................................................................................................... 12 2.3. Baze de date .............................................................................................................. 13

    2.4. Tipuri de baze de date ............................................................................................... 16

    2.4.1. Baze de date relaionale ...................................................................................... 16 2.4.2. Baze de date ierarhice ......................................................................................... 17

    2.4.3. Baze de date n reea ........................................................................................... 18 2.4.4. Baze de date orientate pe obiect .......................................................................... 19

    2.5. Sisteme de gestiune a bazelor de date (SGBD) .......................................................... 20

    3. NOIUNI DESPRE LIMBAJUL SQL ............................................................................ 23 3.1. Generaliti ............................................................................................................... 23

    3.1.1.Modelul relaional de baze de date ....................................................................... 24 3.1.2. Comenzi SQL ...................................................................................................... 25

    3.2. Comenzi de selecie ................................................................................................... 26 3.2.1. Alegerea tipurilor de date. .................................................................................. 27

    3.2.2. Comanda SELECT .............................................................................................. 28

    3.2.3. Comanda UNION ................................................................................................ 35

    3.3. Comenzi de execuie (de manipulare a datelor DML) ................................................ 36 3.3.1. Comanda INSERT ............................................................................................... 36

    3.3.2.Comanda UPDATE .............................................................................................. 36

    3.3.3 Comanda DELETE .............................................................................................. 37

    3.4. Comenzi speciale (data definition language DDL) .................................................... 38

    3.4.1.Comanda CREATE TABLE, INDEX, VIEW .......................................................... 38

    3.4.2. Comanda ALTER TABLE .................................................................................... 40

    3.4.3. Comanda DROP ................................................................................................. 41

    3.4.4. Comanda TRUNCATE ........................................................................................ 41

    3.4.5. Comanda RENAME ............................................................................................ 42

    3.5. Comenzi ale limbajului de control al tranzaciilor (TCL) .......................................... 42 3.5.1. BD tranzacionale ............................................................................................... 43 3.5.2. Controlul tranzaciilor ........................................................................................ 43

    3.6. Comenzi ale limbajului de control al datelor (DCL) .................................................. 46

    3.6.1. Securitate ............................................................................................................ 46

    3.6.2. Drepturi (Privilegii) ............................................................................................ 47

    4. SISTEMUL DE GESTIUNE AL BAZELOR DE DATE FOXPRO ............................. 50 4.1. Noiuni introductive .................................................................................................. 50

    4.1.1. Ce reprezint FoxPro? ........................................................................................ 50 4.1.2. Cum se lanseaz n execuie FoxPro? ................................................................. 50 4.1.3. Cum pot folosi sistemul FoxPro? ......................................................................... 51

    4.1.4. Cteva elemente de limbaj FoxPro ...................................................................... 52

    4.2. Crearea structurii tabelelor de date .......................................................................... 53

    4.2.1. Comanda CREATE ............................................................................................. 53

  • 4.2.2. Utilizarea ferestrei NEW ..................................................................................... 55

    4.3. Actualizarea structurii i nregistrrii tabelelor de date ............................................ 56 4.3.1. Cum se deschide i nchide o tabel? .................................................................. 56 4.3.2. Cum se realizeaz modificarea structurii logice a unei tabele? ........................... 58 4.3.3. Cum actualizm nregistrrile unui fiier? .......................................................... 58

    4.4. Sortarea i indexarea tabelelor ................................................................................. 61 4.5. Regsirea i vizualizarea datelor............................................................................... 63

    4.5.1. Cutarea datelor ntr-un fiier ............................................................................ 63 4.5.2. Vizualizarea nregistrrilor unui fiier de date .................................................... 64

    4.6. Proiectarea i generarea rapoartelor ........................................................................ 66 5. DECIZIA MEDICAL ASISTAT DE CALCULATOR............................................... 70

    5.1. Introducere ............................................................................................................... 70

    5.2. Clasificarea metodelor de diagnostic ........................................................................ 71

    5.3. METODE LOGICE ................................................................................................... 72

    5.3.1. Baza de cunotine ............................................................................................... 72 5.3.2. Tabele de adevr ................................................................................................. 73

    5.3.3. Arbori de decizie ................................................................................................. 73

    5.3.4. Prezentarea rezultatelor ..................................................................................... 73

    5.3.5. Dezavantajele metodelor logice........................................................................... 74

    5.4. Metode statistice. Regula lui Bayes ........................................................................... 74

    5.4.1. Aspecte statistice n rationamentul medical ......................................................... 74

    5.4.2. Regula lui Bayes ................................................................................................. 75

    5.5. SISTEME EXPERT ................................................................................................... 78

    5.5.1. Structura unui sistem expert ................................................................................ 78

    5.5.2. Descrierea conexiunilor ...................................................................................... 80

    5.5.3. Caracteristicile principale ale sistemelor expert.................................................. 81

    5.5.4. Sisteme expert medicale ...................................................................................... 84

    5.6. Estimarea calitii clasificrii ................................................................................... 84 5.7. Alegerea investigaiilor ............................................................................................. 87 5.8. Optimizarea tratamentului ........................................................................................ 87

    6. NOIUNI DE FARMACOCINETIC I FARMACODINAMIE................................... 89 6.1. Generaliti despre farmacocinetic. ......................................................................... 89

    6.1.1. Modele mono i bicompartimentate ..................................................................... 90 6.1.2. Reacii derivate ale organismului la medicamente. .............................................. 92 6.1.3.Biodisponibilitatea medicamentelor. .................................................................... 93

    6.2. Generaliti despre farmacodinamie. ........................................................................ 93 6.2.1. Interaciunea medicament-receptor. ...................................................................... 96 6.2.2. Teorii privind aciunea medicamentelor .............................................................. 97 6.2.3. Relaii de tip doz-rspuns. ............................................................................... 100 6.2.4. Agoniti, antagoniti. ........................................................................................ 102 6.2.5. Metode de determinare ale parametrilor caracteristici curbelor doza-efect ....... 103

    7. MODELAREA I SIMULAREA PROCESELOR BIOLOGICE................................... 108 7.1. Noiuni generale...................................................................................................... 108

    7.1.1. Definiii ............................................................................................................. 108 7.1.2. Aplicaii ............................................................................................................ 109 7.1.3. Clasificri ale modelelor ................................................................................... 110 7.1.4. Principii generale de construcie a unui model .................................................. 113

    7.2. Modelarea proceselor biochimice ........................................................................... 113

    7.3. Modele stochastice .................................................................................................. 114

  • 7.3.1. Posibilitati de utilizare a metodelor de simulare in studiul interactiunii ligand-

    receptor cu ajutorul calculatoarelor ........................................................................... 114

    7.3.2. Principiul simularii interactiunii medicament-receptor . ................................... 115

    7.3.3. Prezentarea programului PHARMA-DYN : ....................................................... 115

    7.3.4. Analiza Datelor n Farmacocinetic i Farmacodinamie cu Programul TopFit . 117 7.3.5. Concluzii ........................................................................................................... 126

    8. STUDIILE QSAR (Quantitative Structure-Activity Relationships) ................................ 127

    8.1. Noiuni generale, opinii, contribuii ...................................................................... 127 8.2. Programe de calculator utilizate in studiile QSAR ................................................ 129

    9. SISTEME INFORMATICE DE FARMACIE.................................................................. 132

    9.1.Introducere................................................................................................................ 132

    9.2.Infiintarea farmaciilor ............................................................................................. 133

    9.3.Organizarea si functionarea farmaciei..................................................................... 133

    9.4. Farmacia de spital .................................................................................................. 134

    9.5. Standardizare si protectia datelor .......................................................................... 135

    9.5.1. Nomenclatoare ................................................................................................... 136

    9.5.2. Protecia bazelor de date .................................................................................... 137 9.6. Exemple de sisteme informatice de farmacie ........................................................ 139

    10. GESTIUNEA CANTITATIV-VALORIC A STOCURILOR N FARMACII ......... 145 10.1. Introducere in gestiunea cantitativ-valorica a stocurilor din farmacii................ 145

    10.2. Sistemul informatic de gestiune cantitativ-valoric ............................................ 146 10.2.1. Modulul Vnzare .............................................................................................. 146

    10.2.2. Modulul Gestiune ............................................................................................. 151

  • 2

    1. INFORMAIA. TEORIA INFORMAIEI. INFORMATICA MEDICAL.

    1.1. Noiuni introductive

    Sub "presiunea cercetrii tiinifice" Realitatea se obiectiveaz, fragmentndu-se la

    nesfrit n timp ce sub "presiunea tririi " Realitatea se manifest subiectiv, la nivel

    fenomenologic. Principala problem care se pune azi este tocmai aceast tunelare a barierei

    constituit de nsui conflictul indus de cele dou atitudini legate nemijlocit de actul

    cunoaterii: contemplare (atitudine pasiv, fr o intenionalitate evideniat, cu urme

    specifice n trire ce nu pot fi n principial comunicate prin limbaj) i cercetare, investigare

    (atitudine activ, cu intenionalitate, cu scopul de a gsi ceva definit, principial comunicabil).

    Iar aceast extrem de sofisticat ncercare a spiritului uman se desfaoar azi n cadrul

    unor discipline legate de tiina Cogniiei, Teoria general a Informaiei, Ortofizica,

    Psihologie, Cuantic. In toate cazurile obiectul central este rediscutarea i reformularea

    conceptului de INFORMAIE i CAMP INFORMAIONAL. i poate i mai important

    pentru omenire este o consecin a acestor studii: proprietile "mentale" ale materiei

    anorganice sau organice i duetul MINTE - MATERIE.

    Conceptul de Informaie a fost delimitat la studiul naturii n triada Materie- Energie-

    Informaie. n ciuda utilizrii aproape abuzive a cuvntului informaie putem afirma c

    semnificaia sa nu este pe deplin stabilizat. Numrul mare de sensuri n care acest cuvnt

    este folosit sugereaz c ne aflm nc n plin proces de structurare semantic a unei noiuni

    relativ noi, nscute n cibernetica de la nceputul acestui secol, i care evoc termeni utilizai

    nc din antichitate. De la informaia n sens de tire si pan la informaie n sensul de a pune

    n form de organizare i structurare, semnificaia dat la un moment cuvantului informaie

    poate fi dedus doar din context.

    Definirea unei noiuni se poate face fie pe cale axiomatic i formalizare matematic,

    fie printr-o abordare sistemic n care studiul conexiunilor cauzale dintre sisteme i

    subsisteme este n msur s contureze din aproape n aproape noua noiune. Prima metod

    este util pragmatic i poate precede demersul destinat "ptrunderii nelesurilor" din spatele

    cuvintelor.

    Astfel, n dezvoltarea tiinelor au aprut tot mai frecvent noiuni i elemente de

    algebr boolean ncat s-a ajuns la interferena unor domenii foarte diferite luand fiin

    ramurile de studiu i cercetare interdisciplinare, printre care se numr i INFORMATICA

    MEDICALA. Fundamentarea teoretic a unor sisteme tehnice a permis analogii cu sisteme

  • 3

    existente la fiinele vii deoarece schema abstract a sistemului este aceeai. Pe baza acestor

    considerente s-a dezvoltat cibernetica, ce a luat natere n 1948, prin cele 2 lucrri

    fundamentale Cibernetica sau tiina comenzii i comunicrii la fiine vii i maini de

    N.Wiener i Teoria matematic a comunicaiei de Cl.Shannon.

    Definiii

    Pentru a sublinia rolul central al informaiei, Kolmogorov definete cibernetica drept

    tiina modurilor de recepie, pstrare, transformare i utilizare a informaiei de ctre maini,

    organisme vii i reuniuni ale lor.

    Informatica medical e o tiin interdisciplinar ce se ocup cu studiul aplicaiilor

    calculatoarelor n practica i n cercetarea medical i cu studiul generrii, achiziiei, stocrii,

    transmiterii, proteciei, prelucrrii i utilizrii informaiei medicale. Dintre aplicaiile

    calculatoarelor n domeniul farmaceutic ar fi:

    - evidena datelor cu specific farmaceutic i farmacologic

    - prelucrarea statistic a datelor

    - organizarea activitii farmaciilor n sistemul informatic de spital

    - aplicarea aparatului matematic n studiile de cercetare din farmacocinetic i

    farmacodinamie

    - documentarea asistat de calculator utilizarea reelei Internet cu faciliti de

    studiere a jurnalelor i publicaiilor din domeniul farmaceutic

    - modelarea i simularea unor procese biochimice ce duc la individualizarea

    tratamentului

    Calculatorul electronic reprezint o main care accept o serie de instruciuni, sub

    forma unui program pe care le poate interpreta i executa n scopul acceptrii i prelucrrii

    unor date, fie pentru a obine un plus de informaie, fie pentru controlul altor maini sau

    procese.

    Principalele metode utilizate n cibernetic sunt:

    - abstractizarea (neglijarea naturii sistemului i a aspectelor energetice) ce mparte

    sistemul n uniti structurale legate ntre ele ntr-o schem de circulaie a

    informaiei (black-box) i uniti funcionale (module) ce cuprind una sau mai

    multe uniti structurale, cu funcie bine definit n cadrul schemei.

    - modelarea care cuprinde descrierea unor relaii ntre uniti sub form matematic

    sau logic, sau fizic.

    - simularea prin care se studiaz comportarea posibil a unui sistem cu structur

    dat i model acceptat, ntr-un scenariu de condiii impuse.

  • 4

    1.2. Concepte matematice ale teoriei informaiei

    Teoria de baza n acesta direcie a fost structurat de Claude Shannon i pornete

    intuitiv de la faptul c, pentru a dobandi informaie trebuie s se ntmple ceva-un proces

    fizic, un anume eveniment,etc. Cantitatea de informaie pe care o dobndim n urma faptului

    c a avut loc un eveniment este cu att mai mare cu ct probabilitatea ca acel eveniment s

    aib loc este mai mica. Altfel spus, dac totul este cunoscut dinainte nu mai dobndim nici o

    informaie, iar msura asociat informaiei transmise de producerea unui eveniment este cu

    att mai mare, cu ct evenimentul n cauz este mai neateptat. Astfel, pentru a putea defini i

    msura informaia se folosesc elemente din teoria probabilitilor.

    a). Variabile

    Sunt mrimi supuse operaiunii de msurare, fie direct, fie prin intermediul altor

    variabile i pot fi:

    - deterministe corespund unor mrimi fizice cu valori bine definite, iar prin

    msurri repetate vom obine aceleai valori (ex. greutatea unui obiect)

    - aleatoare (stochastice, statistice) mrimi ale cror valori se modific prin

    repetri ale msurrii, chiar dac condiiile de desfurare ale msurtorilor rman

    aceleai (ex. la aruncarea zarului putem obine una din cele ase fee).

    b). Experimentul reprezint evoluia unui sistem ctre o stare final i poate fi considerat ca

    echivalent al unei operaii de msurare.

    c). Evenimentul este rezultatul unui experiment, sau starea final n care ajunge sistemul

    (rezultatul msurrii).

    De exemplu, dac la efectuarea unui experiment avem un numr total k de evenimente, ele

    pot fi notate (xi), i=1,k sau ( x1 x2 . . . xk ).

    d). Frecvena absolut ni a evenimentului i, arat de cate ori apare evenimentul i la repetarea

    de N ori a experimentului (ex. aruncarea zarului).

    e). Frecvena relativ ni/N a evenimentului i raporteaz frecvena absolut a ev. i la numrul

    de repetri a experimentului.

    Se observ uor c :

  • 5

    n1 + n2 +... + nk =

    k

    i

    ni1

    = N

    f). Probabilitate - Dac repetm experimentul de un numr foarte mare de ori, N, vom

    observa c raportul care definete frecvena relativ tinde ctre o valoare bine definit, numit

    probabilitate a evenimentului i i notat:

    pi = lim N

    ni

    N

    Probabilitile au proprietile:

    -

    k

    i

    pi1

    = 1, adic, ntotdeauna se ntampl unul din cele k evenimente

    - pi [0,1]

    De exemplu, la aruncarea zarului, sunt posibile 6 evenimente, corespunztoare celor ase fee

    ce pot aprea, fiecare cu probabilitatea 1/6.

    g). Cmp de evenimente rezultatele brute ale experimentelor se pun sub forma:

    x1 x2 ... xk

    n1 n2 ... nk

    h). Cmp de probabiliti rezultatele prelucrate prin calcularea pentru fiecare eveniment a

    probabilitii aparitiei sale:

    x1 x2 ... xk

    p1 p2 ... pk

    Se definesc urmtoarele tipuri particulare de evenimente:

    - eveniment sigur evenimentul i pentru care pi=1

    - evenimentul imposibil - evenimentul i pentru care pi=0

    - evenimente echiprobabile evenimentele i i j pentru care pi=pj, i,j = 1,k

  • 6

    1.3. Conceptul de informaie

    Informaia (dup Shannon) este o noiune cu grad mare de generalitate i nu poate

    avea o definiie clasic ci una generat de principala proprietate a ei: INLATURAREA UNEI

    NEDETERMINRI incertitudini (de exemplu, la aruncarea zarului avem o nedeterminare

    privind care din cele 6 fee va aprea, nainte de a efectua experimentul de aruncare a

    zarului).

    Informaia nu este nici materie, nici energie, dar nu poate exista n afara materiei

    (fiind o nsuire a materiei) iar producerea, transmiterea i prelucrarea ei nu se poate realiza

    fr consum de energie.

    Informaia exist atata timp cat exist un receptor capabil s-o neleag, valoarea

    informaiei fiind diferit pentru diferii receptori.

    Pentru a evalua cantitatea de informaie Claude Shannon (1948) a propus o relaie prin

    care consider c informaia primit cand se realizeaz un eveniment este cu atat mai mare cu

    cat probabilitatea evenimentului este mai mic, iar dac evenimentul era aproape sigur,

    informaia primit era aproape nul. Relaia de invers proporionalitate se poate exprima prin

    formula:

    Ii = log2 pi

    1 = - log2 pi

    Unitatea de msur pentru informaie este BIT-ul (Binary digIT), adic, cantitatea de

    informaie primit prin nlturarea unei nedeterminri de (de exemplu, la aruncare cu banul

    cderea unei fee produce o informaie de I = log21/(1/2) = log2 2 = 1 bit.

    Dac experimentul se repet de N ori i campul de evenimente cuprinde k posibiliti,

    se poate defini o cantitate medie de informaie:

    Im = (n1I1+n2I2+...+nkIk) / N, Ij e informaia ev. j i nj e numrul de realizri a ev. j

    Dac N Im = -

    k

    i

    pipi1

    log notat cu H i numit de Shannon entropie informaional i

    reprezint o msur a cantitii medii de informaie generat de un eveniment (simbol) ntr-un

    ir de evenimente (mesaj).

    Entropia informaional devine maxim cand toate evenimentele sunt echiprobabile.

    Dac pi=1/k atunci

  • 7

    Imax = -

    k

    i kk1

    1log

    1 = log2 k

    Ca un exemplu, din materia vie, dac considerm un polipeptid format dintr-o succesiune de

    100 amino acizi, informaia medie per amino acid este Imax = log2 20 = 4.5 bii/aminoacid, iar

    informaia maxim coninut de protein e N.Imax = 100.4.5 = 450 bii.

    Informaia (dup Sahleanu) se definete pornind de la observaia c n natur anumite

    interaciuni nu pot fi tratate printr-o legtur cauzal clasic, bazat pe o lege de conservare.

    Este mai aproape de o viziune neliniar a naturii, pentru care sensibilitatea la condiiile

    iniiale i fenomenele de autoorganizare pot duce la discontinuiti de tip tranziii de faz.

    Informaia este astfel nlocuit cu legatura de tip informaional ce afecteaza evoluia unui

    sistem prin alte mecanisme: declanatoare i amplificatoare de exemplu, i care devin

    elemente colaterale n definirea i nelegerea termenului de informaie. Sensul legaturii de tip

    informaional poate fi surprins n contextul teoriei generale a sistemelor ierarhizate, n care

    stabilitatea ntregului se realizeaza prin cooperarea formativ i informativ a ansamblului de

    subsisteme ce au o anumita structur, organizare, sensibilitate. Informabilitatea e

    proprietatea unui subsistem (captor) de a reaciona la o variaie energetic - rezonana.

    Conceptele specifice ce coopereaza pentru a da adevarata semnifictie legaturii de tip

    informaional, extrase din lucrarea lui V. Sahleanu, Eseu de biologie informationala, 1973,

    sunt:

    - semnalul - purtator de semnificatie ce face legatura dintre "lumea energiei" i "lumea

    informaiei"

    - semnul - rezultat al unei convenii ce capt semnificaie n baza unor procese educaionale

    - codificare - decodificare - informaia este un invariant (virtual) ce se gsete n spatele

    varietii de codificare, ea este codat i decodat specific de mai multe ori, n funcie de

    suport i mediu de propagare. Ea poate sa se "altereze" (adiie de zgomot) sau s se distrug.

    - redundana - exces informaional (prezent pentru a conserva informaia fa de zgomote

    sau distorsiuni inerente la codare/decondare).

    - traducerea - recodificarea n alt limbaj (n sensul lui Sahleanu, transformatorul convertete

    o energie n alta n timp ce traductorul poate declana un proces retina, de exemplu, este

    considerat traductor ntr-un sistem ce poate fi declanat de un stimul vizual)

    n termeni matematici, dac avem o succesiune de evenimente, ce formeaz un mesaj,

    probabilitatea de apariie a unui eveniment e complet independent de evenimentul anterior,

    n cazul cand entropia informaional e maxim. In realitate deseori putem prevedea un

  • 8

    eveniment pe baza evenimentelor anterioare i astfel informaia adus de evenimentul n

    cauz este foarte redus sau chiar nul. S-a definit diferena dintre entropia maxim i

    entropia informaional ca fiind redondana absolut a unui mesaj iar raportul R = (Imax-

    I)/Imax reprezint redondana absolut. n practic, existena redondanei e foarte util pentru

    transmiterea informaiei, deoarece sensul unui mesaj nu se pierde chiar dac unele

    evenimente din mesaj nu sunt recepionate corect, datorit unor perturbaii ce pot apare n

    procesul de transmitere.

    1.4. Transmiterea informaiei

    Informaia are sens numai dac exist un receptor capabil s-o neleag, dar n general

    receptorul se afl la o anumit distan fa de locul unde se produce informaia. Apare astfel

    noiunea de sistem de comunicaie. Cel mai simplu are doar 3 blocuri funcionale: sursa,

    receptorul i canalul de comunicaie dintre ele. Informaia transmis, numit mesaj, are ca

    suport material o mrime fizic ce variaz n timp, numit semnal.

    Schema unui sistem de comunicaie arat n felul urmtor:

    figura 1.1

    Canalul de transmisie se caracterizeaz prin:

    - viteza de transmisie msurat n bauds (bit/secund) ce determin capacitatea de

    transmitere a canalului

    - fiabilitatea transmiterii (n timpul transmiterii semnalul e perturbat de diverse

    zgomote ce pot distorsiona semnalul)

    - traductori ce codific/decodific semnalul pentru c alfabetul canalului de

    transmisie difer de cel al sursei i/sau receptorului.

    Un exemplu din sistemul biologic este transmiterea informaiei genetice, proces ce se

    realizeaz prin intermediul macromoleculelor de ADN. In cursul replicrii cromozomiale

    factorii externi ca agitaia termic, radiaiile cosmice, etc. reprezint zgomote ce pot provoca

  • 9

    uneori perturbaii caracterizate prin includerea unei baze false n lanul ADN, iar rezultatul

    acestor perturbaii l reprezint mutaiile genetice.

  • 10

    2. DATE SI CUNOSTINTE MEDICALE. FISIERE DE DATE. BAZE DE DATE

    MEDICALE. SISTEME DE GESTIUNE A BAZELOR DE DATE (SGBD)

    2.1. Date si cunostinte medicale

    Informaia medical are un rol esenial n practica medical i farmaceutic i

    constituie baza tuturor activitilor de acest gen, de la diagnosticarea i aplicarea unei terapii

    pn la cercetarea n aceste domenii.

    Att n activitile de rutin ct i n cele de tip decizional medicul i farmacistul are

    nevoie de informaii care s-i permit cunoaterea i analizarea strii prezente, ct i

    anticiparea i urmrirea efectelor deciziilor sale.

    Activitatea uman, n cele mai diverse forme ale sale, a fost ntotdeauna caracterizat

    prin entiti faptice exprimate fie sub forma de valori numerice, fie ca observaii sau percepii

    ale fiinelor umane. Aceste entiti faptice independente i neevaluate se numesc DATE.

    n urma unor procese de transformare a datelor se obin INFORMAIILE care reprezinta

    interpretarea datelor n raport cu anumite situaii particulare sau cu inelegerea de ctre

    mintea uman n general. Pe baza unor raionamente i experimentri se obin noi

    CUNOTINE. Schematic, ceea ce am relatat mai sus se traseaz n figura 2.1.

    figura 2.1

    Fazele transformrii datelor sunt:

    1. culegerea - nregistrarea datelor

    2. pregtirea datelor - codificare, conversie, sortare, selectare

    3. prelucrarea lor - matematic sau logic

    4. memorarea lor - stocarea pe suport extern n vederea refolosirii

    5. comunicarea, raportarea - transferul rezultatelor (informaiilor) spre utilizatori.

    Tehnologia informaiei se constituie din cicluri autogeneratoare. Producerea

    informaiilor susine anumite aciuni umane cu finalitate practic, crendu-se totodat un fond

  • 11

    informaional, utilizabil pentru generarea de noi informaii i cunotine, reiterndu-se astfel

    un nou ciclu.

    n activitatea medical, relaia pacient-medic-farmacist st n centrul reprezentrii

    ciclului elementar (figura 2.2.)

    figura 2.2.

    Explozia informaional caracteristic perioadei curente impune renunarea la vechile

    practici de culegere, prelucrare, arhivare a informaiilor i insuirea unora noi bazate pe

    echipamente electronice de calcul. Organizarea datelor dintr-un sistem ntr-o colecie unic

    de date, perfect corelate i inute la zi, la care numai utilizatorii autorizai s aibe acces i care

    s permit rspunsuri rapide la diversele interogri, este o prim activitate strict necesar.

    Mai trebuiesc fixate bine termenele de raportare, forma acestora, traseele de urmat pentru

    fiecare informaie sau dat care intr n sistem, validrile i punctele de filtrare, de control,

    suportul cel mai economic de arhivare, etc.

    Problema organizrii datelor trebuie s se caracterizeze prin faptul c orice informaie

    ce se necesit reinut va fi definit i culeas o singur dat , va fi pregtit, memorat i

    actualizat ntr-un singur loc, astfel nct, la momentul cnd ea este necesar diverselor

    prelucrri, s fie aceeai ca form, valoare i denumire. Aceast caracteristic a datelor a

    condus la cristalizarea unor forme de organizare a coleciilor de date, denumite baze de

    date. Ea este o colecie de date referitoare la un domeniu particular, dar suficient de vast

    pentru a face obiectul unor tranzacii ntre numeroii i variaii si utilizatori, unii introducnd

    date, alii extrgndu-le, ansamblul funcionnd ca o banc.

  • 12

    2.2. Fiiere de date

    Dac ne-am propune s inem evidena pacienilor folosind un calculator, vom nscrie

    datele care erau coninute n fia de eviden clasic (pe hrtie) n nregistrri coninute n

    fiiere de date, aa cum ne propun figura 2.3 i figura 2.4.

    Figura 2.3.

    Figura 2.4.

    DEFINIIE

    Fiier (file) reprezint o colecie de date organizat dup o anumit structur.

    Cu ceea ce tim pn acum, ne putem imagina fiierul de date ca fiind un dosar cu

    nregistrri (fie de eviden, n accepiunea clasic). Observai c fiecrui pacient i va

    corespunde o nregistrare (o fi de eviden) - record. Fiecare nregistrare este format din

    cmpuri (rubricile ce trebuiau completate la o fi clasic) - fields. Fiecare cmp are un

    nume i o dimensiune (exist rubrici mai ncptoare, ca cele pentru nume, diagnostic i

    unele mai nguste, ca cele pentru sex sau greutate).

    Datele concrete care se introduc la un moment dat ntr-un anume cmp le vom numi

    articole - items (ca de exemplu, POPESCU pentru nume, sau M pentru sex, etc.).

  • 13

    2.3. Baze de date

    CH.W. Bachman e considerat ca inventator al conceptului de BD i afirm ca lumea

    bazelor de date s-a nscut odata cu nregistrarea datelor pe band magnetic (anii 50). ntre

    timp s-au succedat multe generaii de BD, de la cele ierarhice la cele relaionale, distribuite,

    orientate pe prelucrarea de obiecte, baze de date multimedia, etc.

    Activitile pentru care se organizeaz bnci de date aparin tuturor sferelor de

    activitate: de la BD bibliografice i de documentare statistice, la evidene financiar-contabile

    i bancare, la diagnosticare, informare medical, rezervare locuri n staiuni turistice din

    ntreaga lume prin ghiee dotate cu terminale i legate ntr-o reea de teletransmisie,

    nvmnt, transporturi, etc. Gestiunea documentelor multimedia (n care de exemplu, pe

    lng informaiile despre o persoan s avem i o fotografie, amprent, un mic discurs,

    melodia preferat), dispersarea datelor teritorial cuplate cu acces rapid i n regim de

    confidenialitate, deschid noi i noi perspective de utilizare.

    Definiie

    Baza de date (database) este o colecie structurat de date ce conine att datele, ct

    i mijloacele de a stabili i a menine relaii ntre date; aceste relaii trebuie s

    reflecte relaiile dintre entitile reale descrise de date (obiecte fizice, evenimente,

    concepte abstracte).

    PACIENT

    FOAIE

    OBSERVAIE

    UNITATE MEDICAL

    Figura 2.5.

  • 14

    Deci, o baz de date este mai mult dect o colecie de fiiere, pentru c include, pe

    lng acestea, descrierea relaiilor dintre nregistrri, descriere apelat i utilizat pe toat

    durata prelucrrii informaiilor.

    Se contureaz acum tot mai clar ideea c o baz de date pe calculator nu va fi o

    structur rigid (ca o carte de telefon, sau un mers al trenurilor). Ea ne ofer o structur

    flexibil prin faptul c putem cuta datele dup diverse criterii i le putem chiar modifica

    ordinea. S dm un exemplu, folosind baza de date reprezentat de catalogul cu fie dintr-o

    bibliotec, care are un anumit format fix. Deoarece fiecare carte este afiat prin titlul ei sau

    prin autor, pentru a gsi o anumit carte din acel catalog, trebuie s cunoatem titlul sau

    autorul. Dac nu ne putem aminti cu suficient precizie nici una din aceste informaii,

    rezultatul va fi o cutare ntortocheat prin toate fiele catalogului. Dac acest catalog ar fi

    fost o baz de date pe calculator, am fi putut cuta nu numai dup nume sau autor, dar i

    dup diverse cuvinte-cheie, dup data publicrii, sau dup frnturile de informaie despre

    autor pe care ni le amintim.

    nseamn c un lucru foarte important este STRUCTURA UNEI BAZE DE DATE:

    Element de

    structura

    Denumire in

    englez

    Explicaie

    nregistare record similarul unei fie clasice (de carte, de pacient, etc.)

    cmp field similarul unei rubrici din fia clasic (numele i

    prenumele, sex, data nasterii, etc.)

    articol item coninutul concret al unui cmp, respectiv al unei

    rubrici (POPESCU ALEXANDRU atunci cnd

    reprezint coninutul cmpului numele i

    prenumele)

    Remarcai, v rog, diferena esenial dintre cmp i articol!

    Fiecare cmp se va caracteriza prin cateva proprieti:

    Proprietate cmp Exemplu

    nume camp Nume, Data nasterii, Sex, etc.

  • 15

    tip camp numeric(intreg, real), caracter, logic, data calendaristica, etc.

    dimensiune camp 50 caractere, numar real cu 3 cifre la partea intreaga si 2 cifre la cea

    zecimala, etc.

    Toate aceste elemente de structur trebuiesc definite la crearea bazei de date.

    Credem c devine tot mai evident faptul ca putem vedea bazele de date ca nite

    tabele pe care le definim atunci cnd precizm structura i le umplem apoi cu datele

    propriu-zise (cu articole sau items concrete) (figura 2.6.)

    Nr. reg. Nume Sex Data_nast. Ocupatie Diagnostic Greutatea

    Ionescu Adrian M ....... ......... .........

    Figura 2.6.

    Remarcai c, odat definit structura, nu ne intereseaz chestiuni legate de organizarea

    fizic a datelor n fiierele care compun baza de date. De asta se vor ocupa programe speciale.

    Noi vom face referire la date prin numele cmpurilor i astfel programele scrise pentru

    consultarea i administrarea bazelor de date vor fi independente de configuraia fizic.

    Validarea datelor la introducerea lor n baza de date o putem vedea pe mai multe

    nivele. Exist o validare primar, care se face implicit prin modul n care a fost precizat

    structura: nu se va putea introduce caractere alfabetice ntr-un cmp numeric, aa cum, dac

    introducem cifre ntr-un cmp de tip caracter, ele nu vor avea nici un fel de semnificaie

    valoric (nu se vor putea face operaii matematice cu ele). Pe al doilea nivel de validare

    exist posibilitatea precizrii unor anumite valori sau intervale de valori pe care le pot lua

    articolele din cmpuri: M i F pentru cmpul sex, valori pozitive i mai mici dect 2.5

    pentru cmpul nalime, etc. Poate exist i un al treilea nivel de validare, n care se pot lua n

  • 16

    considerare criterii mai complexe, care s in cont de eventualele relaii ntre cmpuri i

    nregistrri.

    La culegerea datelor trebuie neaprat s fie deja stabilit structura fiierelor i

    criteriile de validare, care trebuie s in seama de alctuirea fiei de eviden clasic (cu ct

    discrepanele de organizare sunt mai substaniale, cu att mai mari vor fi ansele de eroare la

    introducerea datelor).

    Pentru compactarea datelor din fiiere se pot folosi codificri.

    Este util ca atunci cnd v propunei s creai o baz de date n care nu dvs. vei

    nregistra datele, s avei n vedere i instruirea personalului care va face aceast introducere.

    2.4. Tipuri de baze de date

    Putem clasifica bazele de date astfel:

    a) Dup distribuia datelor:

    a1) BD locale - toate fiierele care compun baza de date se gsesc pe un

    acelai sistem de calcul

    a2) BD distribuite - fiierele care compun baza de date sunt distribuite pe mai

    multe sisteme de calcul

    b) Dup structur:

    b1) BD relaionale

    b2) BD ierarhice

    b3) BD n reea

    b4) BD orientate pe obiect

    2.4.1. Baze de date relaionale

    Acestea sunt cele mai utilizate baze de date, pentru ca sunt uor de neles i de

    manevrat. Structura lor logic este de tip tablou cu relaii ntre linii i coloane. Ne imaginm

    c baza de date din figura 2.7. conine informaii privind pacieni purttori ai unei maladii

    ereditare, motiv pentru care s-au luat n observaie i descendenii acestora.

  • 17

    Figura 2.7.

    Cutarea n baza de date se face prin comparaie ntre criteriile de cutare i datele

    propriu-zise, valoarea de adevarat/fals, obinut ca rezultat, conducnd la crearea unor

    nregistrri virtuale, care formeaz apoi tabele virtuale.

    Aceste criterii de cautare se stabilesc de ctre utilizator, iar modificrile n relaiile

    logice dintre cmpurile i nregistrrile bazei de date se definesc i se modific cu un efort

    minim. Bazele de date relaionale sunt foarte flexibile i uor expandabile.

    2.4.2. Baze de date ierarhice

    Diagramele unor asemenea baze de date sunt arborescente, adic fiecare element este

    subordonat unui singur element de pe nivelul precedent al bazei de date i numai unuia.

    Dependena unui segment de alte segmente de date de nivel superior se exprim printr-un

    punctator (adres), ceea ce conduce la o economie considerabil de spaiu i se simplific

    regsirea informaiilor de baz.

    Figura 2.8 (baza de date propriu-zisa) i figura 2.9 (arborii legturilor dintre

    segmente) ilustreaz legturile dintre spital i foile de observaie ntr-o reprezentare ierarhic.

    Prin aceast organizare eficient i la obiect, timpul de prelucrare se scurteaz

    substanial. Pentru volume mari de date i prelucrri intense, avantajele oferite sunt ns

    determinante.

  • 18

    Nr. foaie Nr.arhiv Data foaie Secia Spitalul

    1245 23 03.05.92 ATI Judettean

    3476 567 05.09.93 Chirurgie Municipal

    7654 223 02.02.94 Cardiologie Judetean

    2376 432 11.11.95 Chirurgie Municipal

    7823 11 03.01.96 Cardiologie Judetean

    Figura 2.8

    Figura 2.9.

    2.4.3. Baze de date n reea

    Bazele de date n reea sunt asemntoare cu cele ierarhice, doar c un copil

    (FOAIA DE OBSERVAIE n exemplul de mai sus) poate avea mai mult dect un singur

    "parinte" (SPITALUL - n acelasi exemplu) figura 2.10.

    Figura 2.10.

    Baze de date multimedia

    Conceptul tradiional de multimedia se refer la capacitatea noilor suporturi de stocare

    a informaiei de natur divers: sunet, imagine, text. Codificarea numeric care reunete

    reprezentarea acestor date simplific manevrarea lor pe echipamente i dispozitive legate de

  • 19

    calculatoare utilizate local sau n reea. Reprezentarea sunetelor i imaginilor n culori, a

    secvenelor animate, sonorizate,

    solicit capaciti mari de memorie. Aplicaiile i documentele multimedia se gsesc pe

    suporturi CD-ROM, CD-PHOTO sau alte tipuri de CD. Gestiunea documentelor multimedia,

    avnd n vedere att stocarea ct i actualizarea, se soluioneaz prin bazele de date

    multimedia (BDMM). Cteva exemple de aplicaii sunt: Fetch, Image Base-Mac, Media

    Rext-Windows, Taurus-Windows.

    2.4.4. Baze de date orientate pe obiect

    Termenul programare orientata pe obiecte (OOP) apare n diferite domenii ca:

    limbaje de programare, baze de date, baze de cunotine, inteligen artificial. Scopul acestor

    BD e de a separa reprezentarea i administrarea datelor de programele utilizator (care

    prelucreaza aceste date) i de a permite o utilizare consistent a datelor de ctre mai multe

    programe utilizator, astfel nct programele s devin independente de reprezentarea intern a

    datelor.

    Obiectele structurate complex pot fi depuse integral n baza de date. Ele nu trebuiesc

    descompuse n pri unitare plane, pentru a fi recompuse ulterior de programul utilizator, ele

    formeaza clase i subclase iar proprietile lor sunt de motenire i agregare.

  • 20

    2.5. Sisteme de gestiune a bazelor de date (SGBD)

    DEFINIIE

    Sistem de Gestiune a Bazelor de Date - SGBD (DBMS - DataBase Management

    System) reprezint un set de unelte soft corelate ce au ca scop construcia

    unei baze de date i apoi accesul la aceasta; deasemena, ele controleaz

    securitatea i integritatea datelor.

    Aceste unelte soft incorporeaza suplimentar si:

    limbaje specializate pentru descrierea i manipularea datelor

    (eventual) un sistem de dicionare de date

    Un SGBD are 3 functii de baza:

    functia de descriere

    functia de manipulare

    functia de utilizare

    FUNCTIA DE DESCRIERE

    Functia de descriere permite descrierea structurii datelor si a relatiilor dintre acestea.

    Totodata, se definesc si conditiile de acces la informatiile continute in baza de date.

    Descrierea structurii se realizeaza cu ajutorul unui limbaj de descriere a datelor (LDD)

    propriu fiecarui sistem de gestiune.

    FUNCTIA DE MANIPULARE

    Functia de manipulare permite efectuarea urmatoarelor operatii: crearea, inserarea,

    suprimarea sau actualizarea unor inregistrari definite de utilizator; faciliteaza cautarea,

    sortarea si editarea totala sau partiala a unor inregistrari corespunzatoare rezultatului unei

    intrebari formulate in acest limbaj.

    Limbajele de manipulare a bazelor de date (LMD) pot fi grupate in 2 mari categorii:

    limbaje autonome - sunt de sine statatoare, in cadrul lor comenzile de

    manipulare reprezinta chiar functii referitaore la utilizarea datelor.

    limbaje care au nevoie de limbaj gazda - ofera doar facilitatile de

    structurare si cautare, celelalte operatii legate de manevrarea fisierelor si

  • 21

    de prelucrare a datelor fiind realizate cu ajutorul unor limbaje de nivel inalt

    universale (COBOL, FORTRAN, etc.).

    FUNCTIA DE UTILIZARE

    Functia de utilizare permite comunicarea intre utilizator si baza de date (sub aspectul

    asigurarii acelor mijloace si servicii care il avantajeaza cel mai mult pe utilizator).

    Din punct de vedere al functiei de utilizare, utilizatorii pot fi de mai multe categorii:

    utilizatori liberi sau conversationali, care au la dispozitie limbaje de interogare

    ntr-o forma foarte apropiata de vorbirea curenta si formeaza grupa utilizatorilor

    asa-zisi nespecialisti. Acestia folosesc, de regul, display-ul, ntrebarile sunt pre-

    stabilite, nu cunosc nici structura nici modul de lucru cu baza de date si se rezuma

    la apelarea unor proceduri sau programe corespunzatoare anumitor aplicatii.

    utilizatorii parametrici fac uz, de regul, de limbajele de manipulare (n special

    pentru interogare) utilizand proceduri prestabilite. Ei au cunostinte de programare

    si cunosc atat structura bazei de date cat si problemele sistemului de operare, ceea

    ce le permite sa obtina avantaje maxime, n comparatie cu prelucrarea fisierelor

    clasice.

    administratorul bazei de date este un utilizator special, care raspunde de toate

    activitatile si operatiile referitoare la baza de date pe care o gestioneaza, inclusiv

    performantele acesteia. El defineste obiectivele sistemului, ajuta la definirea

    cerintelor utilizatorilor, defineste structura virtuala si mparte drepturile de acces

    ale utilizatorilor, stabileste procedurile de validare a datelor, elaboreaza conceptia

    de protectie a datelor si evalueaza performantele sistemului. Administratorul ras-

    punde de alegerea si implementarea SGBD-ului, asigura incarcarea bazei de date,

    defineste strategia de lucru si distribuie documentatia tuturor utilizatorilor.

    Dintre cele mai utilizate SGBD-uri, amintim:

    FoxPro

    Access

    Oracle

    Modelul relational de reprezentare si regasire a datelor. Caracteristicile SGBD-urilor

    relationale

  • 22

    Exist 4 familii mari de limbaje relaionale:

    a) limbaje bazate pe algebra relaional - utilizeaz o serie de operatori algebrici

    relaionali (permutare, proiecie, restricie, selecie, mparire, reuniune, intersecie, diferen,

    concatenare etc.)

    Limbajul algebric relaional este un limbaj procedural complet, dar dificil pentru

    necunoscatori. El se bazeaz pe utilizarea unui ansamblu de operatori cu ajutorul crora se

    acioneaz asupra uneia sau mai multor relaii din cadrul unei baze de date relaionale, drept

    rezultat obtinndu-se o nou relaie.

    b) limbaje ce utilizeaz o serie de simboluri relaionale - cu ajutorul lor se definesc

    calcule relaionale: exist, i, oricare, nu, = egal, diferit, mai mare, mai mic, .

    punct

    c) limbaje orientate pe transformri - constituie o clas de limbaje neprocedurale

    care, cu ajutorul relaiilor transform datele de intrare n ieirea dorit de utilizator. Aceste

    limbaje (SEQUEL, SQL ) produc structuri uor de neles i de manipulat n termeni practici:

    ce trebuie obinut, pornind de la ce este cunoscut (descriu doar modul n care datele sunt

    organizate i pot fi regsite).

    SEQUEL - Structured English QUEry Language

    SQL - Structured Query Language

    Caracteristici:

    limbaj gazd

    d) limbaje relaionale de tip grafic - modul de lucru: utilizatorul completeaza o serie

    de raspunsuri, pe un exemplu, prin care sistemul "ghiceste" ce trebuie facut si genereaza

    instructiuni corespunzatoare ale limbajului.

    QBE (Query - by - Example) al firmei IBM

    RQBE (Relational Query By Example) - Foxpro

    PARADOX al firmei Borland

  • 23

    3. NOIUNI DESPRE LIMBAJUL SQL

    3.1. Generaliti

    Limbajul SQL (Structured Query Language-Limbaj de interogare structurat) specializat

    n gestionarea bazelor de date a fost implementat n toate bazele de date moderne ca soluie la

    creterea performanelor i eficienei n programarea BD. Limbajul SQL este neprocedural i

    specific ce informaii doreti s obii, nu modul de-a le obine. Comenzile SQL sunt foarte

    apropiate de limbajul natural din limba englez pentru a fi uor de reinut i utilizat.

    Bazele de date ce lucreaz cu SQL conin un interpretor SQL care analizeaz sintactic

    toate comenzile date, le traduce n aciuni specifice bazei de date i le lanseaz n execuie.

    Sistemele de prelucrare a datelor presupun stocarea, prelucrarea i regsirea informaiilor,

    toate acestea fiind realizate cu ajutorul componentelor SQL. Structura sistemului SQL Server,

    spre exemplu, conine:

    - baze de date stocate n fiiere fizice, cu extensia .MDF

    - tabele ce reprezint mulimi de informaii nrudite i sunt stocate n cadrul unei BD (n

    sistemele mai vechi de baze de date, la o tabel corespunde un fiier din BD).

    - Coloanele tabelei sunt elemente individuale de informaie i sunt denumite cmpuri

    - Liniile tabelei reprezint de fapt nregistrrile tabelei.

    In cadrul modelului relaional implementat n Microsoft SQL Server liniile unei tabele

    a bazei de date nu sunt n mod normal ordonate, excepie fcnd cazul n care a fost creat un

    index grupat pentru tabela respectiv. Dup crearea unui index grupat pentru o tabel, liniile

    sunt pstrate n ordine cresctoare, dup una sau mai multe coloane folosite la crearea

    indexului. Modelul relaional original impunea ca fiecare linie s fie identificat unic de cel

    puin o coloan a tabelei, numit cheie unic. SQL Server nu impune asigurarea unicitaii

    liniilor din tabele dar dac se dorete se poate impune prin aplicarea unor restrngeri asupra

    tabelelor. In modelul relaional al bazelor de date, coloana sau mulimea de coloane care

    identific n mod unic liniile dintr-o tabel se numete cheie. O cheie care identific n mod

    unic liniile unei tabele se numete cheie primar (PRIMARY KEY), iar dac ntr-o alt

    tabel se afl o coloan care reprezint o cheie primar n prima tabel, coloana din cealalt

    tabel se numete cheie strain (FOREIGN KEY pentru ca face referire la o alt tabel i e

    folosit doar pentru a permite legtura ntre liniile tabelelor). Orice coloan dintr-un tabel

    poate fi stabilit drept cheie primar atta timp ct respect condiiile:

    - dou linii nu pot avea aceeai valoare a cheii primare

  • 24

    - fiecare linie trebuie s aiba o valoare a cheii primare (coloana nu poate admite valori

    nule, de tip NULL)

    - coloana care conine valorile cheilor primare nu poate fi niciodat modificat sau

    tears

    - valorile cheilor primare nu pot fi niciodat refolosite (dac o linie e tears din tabel,

    cheia ei primar nu poate fi atribuit altor linii).

    3.1.1.Modelul relaional de baze de date

    Bazele de date relaionale reprezint colecii de relaii sau de tabele bidimensionale

    (ca n figura 3.1).

    Un model relaional de baze de date cuprinde trei componente principale:

    - structura datelor realizat prin definirea unor domenii i a relaiilor ntre ele

    - integritatea datelor realizat prin impunerea unor restricii

    - prelucrarea datelor cu ajutorul operaiilor din algebra relaionala sau calculul relaional.

    Modelul relaional se bazeaz pe noiunea matematic de relaie, aa cum este definit

    n teoria mulimilor, ca o submulime a produsului cartezian a unor mulimi finite numite

    domenii.

    Algebra relaional const ntr-o colecie de operatori ce au ca operanzi relaii.

    Rezultatul aplicrii unui operator la una sau doua relaii este tot o relaie. Operanzii algebrei

    relaionale sunt fie relaii constante, fie variabile ce reprezint relaii ntre un numr dat de

    domenii. Cererile din algebra relaionala pot fi exprimate prin cinci operaii asupra relaiilor

    de baz ca: reuniunea notat cu , diferena notat cu, produsul cartezian notat ,

    proiecia , i seleia sau restricia. Operatorii pot fi cei de comparare , , , sau cei logici

    (si), (sau), (non).

    In continuare sunt prezentate sintaxele i explicaiile pentru cele mai importante comenzi

    SQL, mprite pe trei tipuri de categorii de comenzi: de selecie, execuie i speciale.

  • 25

    Baza de date

    Codf denmed data intrarii

    101Aspirin 11-2003

    101Ospamox 12-2003

    101Amoxi 12-2003

    405 Ospen 10-2003

    GRATUITE

    Codf den adresa nr.ang

    101 FARM Victoriei 23

    706 BOSCU Bredic. 7 405 VLAD Libertatii 3

    909 EMSSI Lipovei 10

    FARMACII

    Codf nume prenume funct

    101 ALBU IOAN farm 405 VLAD ANDREI lab.

    706 BACU DAN info.

    905 MARIN ILIE farm

    FARMACISTI

    figura 3.1

    3.1.2. Comenzi SQL

    Comenzile SQL nu sunt case-sensitive, se pot scrie pe mai multe rnduri, cu condiia de

    a nu scinda cuvinte cheie, clauzele se scriu de obicei pe linii separate. Se pot folosi oricte

    spaii i indentri dorim. Cuvintele cheie se scriu n general cu majuscule, toate celelalte

    cuvinte (nume de tabel, coloane, etc.) se scriu cu liter mic. Rndurile se numeroteaz

    automat i se ncarc ntr-un buffer, iar fiecare comand se termin cu o semicoloan ;

    (figura 3.2)

    Comanda SQL Explicaie

    SELECT Interogarea BD

    INSERT

    UPDATE

    DELETE

    Limbaj de manipulare a datelor

    Data manipulation language (DML)

    CREATE

    ALTER

    DROP

    RENAME

    TRUNCATE

    Limbaj de definire a datelor

    Data definition language (DDL)

    COMMIT

    ROLLBACK

    SAVEPOINT

    Limbaj de control al tranzaciilor

    Transaction control language (TCL)

  • 26

    GRANT

    REVOKE

    Limbaj de control al datelor

    Data control language (DCL)

    Figura 3.2

    3.2. Comenzi de selecie

    Comenzile de selecie nu sunt executate direct de ctre baza de date. Dup cum i spune

    i denumirea, comenzile de selecie vor realiza selectarea mai multor nregistrri dintr-o baz

    de date, dup unul sau mai multe criterii (de exemplu, dorim s aflm informaii referitoare la

    farmaciile din judeul Timi care elibereaz reete gratuite). In acest scop se definete o

    colecie de nregistrri n cadrul bazei de date, ca un tabel, numit recordset.

    Se dau ca exemplu urmtoarele tabele:

    FARMACII

    Denumire cmp Tip cmp Dimensiune cmp

    CODF (codul farmaciei) Intreg 5

    DEN (denumirea farmaciei) Text 20

    ADRESA Text 30

    TEL (numarul de telefon) Intreg 6

    NrAng (numarul personalului) Intreg 2

    FARMACISTI

    Denumire camp Tip camp Dimensiune camp

    CODF (codul farmaciei) Intreg 5

    NUME (numele angajatului) Text 20

    PREN (prenumele angajatului) Text 20

    SEX (masculin/feminin) Caracter 1

    FUNCTIE (functia angajatului) Caracter 10

    SALAR (venitul lunar) Currency 10

    TEL (numarul de telefon) Intreg 6

  • 27

    GRATUITE

    Denumire camp Tip camp Dimensiune camp

    CODF (codul farmaciei) Intreg 5

    CodMed (codul medicamentului) Intreg 7

    MED(denumirea medicamentului) Text 20

    Data_Intr (data intrarii) Date 8

    BUC (nr. Bucati) Intreg 3

    Din cte se observ, toate cele trei tabele (fiiere) au primul cmp comun, tocmai

    pentru a putea realiza legtura dintre ele n vederea obinerii unor informaii suplimentare

    care se gsesc ntr-un tabel i fac referire la o nregistrare dintr-un alt tabel (de exemplu,

    dorim s gsim denumirile i numerele de telefon ale farmaciilor care distribuie gratuit

    Ospamox).

    Inainte de a da sintaxele celor doua comenzi, SELECT i UNION, sunt descrise cteva

    din tipurile de date cu care lucreaz SQL.

    3.2.1. Alegerea tipurilor de date.

    Tipul de date este primul atribut ce se definete pentru un cmp (coloan a tabelei) i el

    determin tipul informaiilor ce se stocheaz n coloana respectiv. Specificarea lui se face

    printr-un cuvnt cheie (cu sau fr parametri). Astfel putem avea urmtoarele tipuri (cele mai

    utilizate figura 3.3):

    Tip de date Explicaie

    INT sau INTEGER Numere intregi cu sau fara semn

    REAL Numere zecimale (si negative) cu precizie de 7 cifre

    NUMERIC Permite stocarea exacta a numerelor cu precizie data

    CHAR Simboluri, caractere

    DATETIME Combinatii de data si ora

    BIT Tip logic, permite introducerea unei singure valori: 0 sau 1

    TEXT Volume mari de date tip caracter

  • 28

    IMAGE Imagini, fotografii

    Figura 3.3

    La acestea se mai adaug tipurile de date definite de utilizator.

    3.2.2. Comanda SELECT

    Aceast comand poate fi considerat ca un filtru (figura 3.4) aplicat tabelelor dintr-o

    baz de date fiindc cu ajutorul ei BD este restrns pn la coloanele i liniile care vor fi

    rezultate dup interogare.

    figura 3.4

    Sintaxa minimal este:

    SELECT FROM

    [WHERE ]

    [GROUP BY ]

    [HAVING ]

    [ORDER BY ]

    enumer numele tabelelor de date asupra crora facem interogarea

    specific tipurile de seleie, cele standard fiind ALL (implicite), pentru a selecta

    toate nregistrrile care ndeplinesc criteriul de selecie, iar DISTINCT, pentru a omite

    nregistrrile duplicate relativ la cmpurile din (separate prin virgul).

    Pentru a selecta toate cmpurile dintr-un tabel se poate introduce caracterul *.

    In figura 3.5 este reprezentat schematic rezultatul aplicrii unei comenzi SELECT.

  • 29

    figura 3.5

    Exemple:

    SELECT * FROM farmacii;

    SELECT ALL codf,codmed,data_intr FROM gratuite;

    SELECT DISTINCT salar FROM farmacisti;

    SELECT farmacii.codf, den, adresa, nume, prenume, functie, salar FROM farmacii,

    farmacisti;

    Se observ c s-a specificat tabela din care s se extrag cmpul codf, iar ntre

    denumirea tabelei i a cmpului s-a pus punct . Rezultatul va fi o colecie de nregistrri

    format din combinarea tuturor nregistrrilor din tabelul farmacii cu cele din tabelul

    farmacisti. Pentru a obine un rezultat corect trebuie s dm legatur dintre cele dou

    tabele, prin cmpul comun codf, legtura realizat prin opiunea WHERE

    .

    stabilete condiia (condiiile)pe care trebuiesc s le ndeplineasc liniile

    (nregistrrile) tabelei pentru a fi incluse n mulimea rezultat, condiii ce se refer att la

    legturile dintre tabele ct i la coloanele tabelelor. Aceste criterii pot fi de legatur i de

    condiie.

    a). criteriile de legatur se scriu sub forma:

    camp1 operator _comparare camp2

    SQL> SELECT med

    FROM gratuite;

    CCoommaannddaa SSQQLL

    BBDD

    med ____________ Ospen Ospamox Oxacilina

    RReezzuullttaatt

  • 30

    Operatorii de comparare pot fi:

    Simbol Semnificatie

    = Egal

    != Diferit

    Diferit

    < Mai mic

    > Mai mare

    = Mai mare sau egal

    LIKE Egal cu un sablon

    Criteriile de legatur se pot conecta prin operatorii logici: AND, NOT, OR, grupai n

    paranteze rotunde.

    Operator Semnificaie

    AND Returneaz TRUE dac ambele condiii sunt adevrate

    OR Returneaz TRUE dac oricare din condiii este adevrat

    NOT Returneaz TRUE dac condiia este fals

    Precedena operatorilor:

    - operatorii de comparaie i speciali

    - NOT

    - AND

    - OR

    b). criteriile de condiie se aplic asupra unei coloane sub forma:

    camp operator_comparare expresie

    Operatorii de comparare sunt cei din tabelul anterior, la care se adaug cei doi operatori

    BETWEEN (rezultatul va fi cuprins ntre dou valori date i desprite de AND) i IN

    (rezultatul se va gsi ntr-o list de valori enumerate, ntre paranteze rotunde).

  • 31

    Exemple:

    SELECT farmacii.codf, farmacii.den, farmacii.adresa, farmacisti.nume, farmacisti.prenume,

    farmacisti.salar FROM Farmacii, Farmacisti WHERE (farmacii.codf = farmacisti.codf) AND

    (farmacisti.salar>=5000000);

    SELECT codmed, den, data_intr, buc FROM gratuite WHERE (den LIKE Ospamox OR

    den LIKE Paduden) AND buc BETWEEN 200 AND 1000;

    3.2.2.1. Alias (sinonime)

    Sinonimele sunt utile dac numele unei tabele sau cmpuri sunt prea lungi sau dac n

    tabele diferite exist cmpuri cu acelai nume.

    Redenumirea (definirea aliasului) se face cu clauza AS, astfel:

    expresie AS sinonim

    Observatie:

    Sinonimele devin obligatorii dac n lista de cmpuri avem expresii sau apelm funcii!

    Exemple:

    SELECT SUM(buc) AS sum, COUNT (gratuite.codmed) AS cm FROM gratuite WHERE

    (den LIKE Ospamox);

    SELECT farmacii.*, f1.nume + + f1.prenume AS farm FROM farmacii, farmacisti AS f1

    WHERE (farmacii.codf = f1.codf) AND (f1.salar

  • 32

    ordinea validarii expresiilor e de la 1 la n, iar clauza ASC e implicita.

    Exemple:

    SELECT nume, prenume, salar FROM farmacisti ORDER BY salar DESC, nume;

    SELECT f.den, f.adresa, f1.nume + f1.prenume AS pers FROM farmacii AS f, farmacisti

    AS f1 WHERE (f.codf = f1.codf) AND (f1.functie LIKE rezident) ORDER BY f1.salar,

    pers;

    3.2.2.3. Gruparea inregistrrilor

    Pentru a aplica funciile SQL unor mulimi de nregistrri trebuie mai nti s le grupm

    cu ajutorul clauzei:

    GROUP BY

    Aceast clauz poate combina ntr-o singur nregistrare toate nregistrrile cu o

    aceeai valoare pentru cmpul (coloana) de grupare iar recordsetul rezultat are un numr de

    linii egal cu numrul distinct de valori ale coloanei respective. Clauza poate fi combinat cu

    clauza:

    HAVING

    Observatie:

    Aceast clauz este asemntoare clauzei WHERE pentru c stabilete criteriile de

    legtur ntre tabele i criteriile de ndeplinire a condiiei pentru nregistrri. Clauza WHERE

    filtreaz nainte ca datele s fie grupate, iar clauza HAVING filtreaza dup ce datele sunt

    grupate. Diferena este important: liniile eliminate de o clauza WHERE nu vor fi incluse n

    grup. Aceasta poate schimba valorile calculate, ceea ce poate afecta grupurile ce sunt filtrate,

    bazndu-se pe utilizarea valorilor respective n clauza HAVING.

    GROUP BY se deosebete de ORDER BY, care, dei ordoneaz la rndul su liniile

    (nregistrrile) nu elimin valorile care se repet. In SELECT cu clauza GROUP BY acestea

    pot fi eliminate prin aplicarea funciilor din tabelul urmtor:

  • 33

    Funcie Operaie efectuat

    AVG Media aritmetica

    SUM Suma elementelor

    MIN Valoarea minima

    MAX Valoarea maxima

    COUNT Numara elementele

    Observaie:

    E indicat s se foloseasc clauza HAVING numai n asociere cu clauza GROUP BY!

    E bine s nu se foloseasc doar clauza GROUP BY pentru sortarea datelor, ci s se

    specifice mpreun cu ORDER BY.

    Exemple:

    SELECT nume, SUM(salar) AS totsal, AVG(salar) AS medsal FROM farmacisti GROUP

    BY nume;

    SELECT codf, COUNT(codmed) AS nrmed FROM gratuite GROUP BY codf;

    SELECT f.codf, f.den, f.adresa, g.codmed, g.den, SUM(g.buc) AS nrbuc FROM farmacii AS

    f, gratuite AS g GROUP BY f.codf, g.codf, g.codmed, g.den HAVING f.codf=g.codf AND

    g.buc>100;

    3.2.2.4.Clauze de legtur

    Alte modaliti de selecie din mai multe tabele sunt oferite de clauza JOIN cu cele

    trei forme : INNER JOIN, LEFT JOIN, RIGHT JOIN, astfel:

    FROM tabel1 [INNER|LEFT|RIGHT] JOIN tabel2 ON tabel1.camp1

    operator_comparare tabel2.camp2

    INNER JOIN adaug nregistrrile care satisfac exact criteriul de comparare dintre cmpuri.

    LEFT/RIGHT JOIN numite i OUTER JOIN include toate nregistrrile din tabel1 din partea

    stnga/dreapta a expresiei de legatur, chiar dac nu satisface criteriul de comparare. Pentru

  • 34

    nregistrrile care nu respect criteriul de comparare valorile cmpurilor aparinnd tabelului

    tabel2 se completeaz cu valori nule (NULL).

    Observaie:

    Intr-o comand de selecie prin clauza JOIN cmpurile de tip memo sau obiecte OLE

    genereaz erori!

    Legtura prin INNER JOIN se poate face prin sintaxele urmtoare:

    SELECT FROM tabel1 INNER JOIN tabel2 ON tabel1.camp1

    operator_comparare tabel2.camp1 [AND ON tabel1.camp2 operator_comparare

    tabel2.camp2 OR ON tabel1.camp3 operator_comparare tabel2.camp3]

    SELECT FROM tabel1 INNER JOIN (tabel2 INNER JOIN [(]tabel3

    [INNER JOIN [)] tabeln [INNER JOIN)] ON tabel3.camp3 operator_comparare

    tabeln.campn)] ON tabel2.camp2 operator_comparare tabel3.camp3) ON tabel1.camp1

    operator_comparare tabel2.camp2

    Exemple:

    SELECT nume, prenume, functie, farmacii.den, gratuite.codmed, gratuite.med FROM

    farmacisti INNER JOIN (farmacii INNER JOIN gratuite ON farmacii.codf=gratuite.codf)

    ON farmacisti.codf=farmacii.codf WHERE gratuite.data_intr=2004 ORDER BY nume;

    3.2.2.5. Clauza INTO

    Se utilizeaz pentru a scrie rezultatul unei selecii ntr-un nou tabel cu structura

    definit de . Astfel sintaxa comenzii SELECT devine:

    SELECT INTO tabel_nou FROM

    [WHERE ]

    [ORDER BY ]

  • 35

    3.2.3. Comanda UNION

    Permite crearea unui recordset care poate fi folosit pentru a consulta date din mai multe

    tabele selectate sau poate unifica datele din mai multe tabele cu acelai numr de cmpuri sau

    cu aceeai structur.

    Sintaxa este:

    selectie_1 UNION [ALL] selectie_2UNION [ALL] selectie_n

    TABLE tabel_1 UNION [ALL] TABLE tabel_2 UNION [ALL] TABLE tabel_n

    Cmpurile specificate n selectie_1 vor constitui denumirea cmpurilor rezultat.

    Cmpurile din celelalte selecii trebuie s corespund numeric cu cmpurile din prima

    selecie, tipurile putnd fi distincte. Dac este folosit clauza ALL se vor selecta toate

    nregistrrile, inclusiv dublurile. Fiecare dintre selecii pot avea clauzele ORDER BY,

    GROUP BY, HAVING, WHERE. Clauza ORDER BY poate referi doar denumiri de cmpuri

    din prima selecie, ordinea de selecie specificat n ultima selecie devine prioritar, ea

    anulnd toate celelalte clauze de ordonare.

    Cea de-a doua form a comenzii UNION unific ntr-un recordset mai multe tabele cu

    acelai numr de cmpuri sau cu aceeai structur.

    Exemple:

    SELECT codf, den, adresa FROM farmacii WHERE codf=101 UNION SELECT codmed,

    denmed, data_intr FROM gratuite WHERE codf=101;

    SELECT den FROM farmacii UNION SELECT AVERAGE(salar) FROM farmacisti

    WHERE codf=101 AND functie LIKE laborant;

    Observaii:

    Operatorul UNION e bine de folosit n cazul subseleciilor (utilizarea comenzilor

    SELECT n alt comand SELECT), cnd exist condiii de filtrare mai complexe, sau dac

    datele se regsesc n mai multe tabele.

    UNION nltur liniile duplicate din setul de rezultate al interogrii (se comport ca i

    condiiile multiple ale clauzei WHERE).

    UNION ALL realizeaz ceea ce nu poate face mai multe clauze WHERE.

  • 36

    3.3. Comenzi de execuie (de manipulare a datelor DML)

    Comenzile DML se efectueaz de ctre bazele de date iar n final se obine ca rezultat

    un cod care specific succesul sau eecul execuiei.

    3.3.1. Comanda INSERT

    Cu ajutorul comenzii INSERT se adaug cte o nregistrare ntr-un tabel. Sintaxa

    simplificat a acestei comenzi este:

    INSERT [INTO] tabel (camp_1,camp_2, , camp_n) VALUES (valoare_1,valoare_2, ,

    valoare_n)

    Exemple:

    INSERT INTO gratuite VALUES (101,1002, aspirina Bayer, 11/11/2003, 500);

    INSERT INTO farmacisti (codf, nume, functie, salar) VALUES (101, Popescu, farmacist,

    4500000);

    Observaii:

    Pot aprea erori atunci cnd:

    - numele tabelului sau al cmpurilor nu sunt corecte

    - se dorete introducerea duplicatelor la chei unice

    - numrul de cmpuri nu coincide cu numrul de valori

    - valoarea de adugat nu are tipul cmpului

    - valoarea expresiei de adugat este nul pentru cmpuri care nu pot lua valori nule

    3.3.2.Comanda UPDATE

    Aceast comand permite modificarea unui set de nregistrri i are sintaxa:

    UPDATE tabel SET camp_1=expresie_1, camp_2=expresie_2,,camp_n=expresie_n

    WHERE criteriu_selectie

  • 37

    In tabel se nlocuiesc cmpurile date cu expresiile respective, dup criteriul de selecie dat de

    clauza WHERE.

    Exemple:

    UPDATE farmacisti SET salar=salar*0.6 WHERE salar BETWEEN 3500000 AND

    5000000;

    UPDATE gratuite SET buc=buc+100 WHERE codmed=1002;

    Observaii:

    Pot aprea erori n cazul c:

    - numele tabelului sau al cmpurilor nu sunt corecte

    - prin modificare se obine duplicare la chei unice

    - evaluarea unei expresii nu are tipul cmpului

    - expresia evaluat este nul pentru cmpuri care nu pot lua valori nule

    - se folosesc n expresii cmpuri utilizate n clauza SET

    3.3.3 Comanda DELETE

    Se terg nregistrrile unui tabel n totalitate (cnd lipsete clauza WHERE) sau cele

    care satisfac condiia din clauza WHERE. Sintaxa este:

    DELETE FROM tabel WHERE criteriu_selectie

    Exemple:

    DELETE FROM farmacisti WHERE codf=102 AND salar

  • 38

    3.4. Comenzi speciale (data definition language DDL)

    Comanda Descriere

    CREATE TABLE Creaz un tabel

    ALTER TABLE Modific structura unui tabel

    DROP TABLE terge un tabel (ca structur i coninut)

    TRUNCATE terge toate rndurile unei tabele i elibereaz spaiul alocat acesteia

    RENAME Modific numele unui obiect al BD: tabel, vedere, index, secven

    sau sinonim

    COMMENT Adaug comentarii la tabele sau vederi

    Figura 3.6

    Comenzile DDL se folosesc pentru crearea, modificarea i tergerea tabelelor i a indecsilor.

    3.4.1.Comanda CREATE TABLE, INDEX, VIEW

    Aceste comenzi creaz un nou tabel, un index dup o cheie primar, sau o vedere, iar

    sintaxele lor sunt:

    CREATE TABLE nume_tabel (nume_camp tip_camp [(lungime)] [index] [NOT NULL]

    [CONSTRAINT multi_index]

    CREATE [UNIQUE] INDEX nume_index ON tabel (lista_campuri_index) [WITH

    {PRIMARY | DISALLOW NULL | IGNORE NULL}]

    CREATE VIEW nume_vedere AS SELECT coloane, FROM tabele,

    [WHERE][GROUP BY][HAVING]

    Observaie:

    Se pot crea chei de indexare i cu prima comand dac folosim clauza

    CONSTRAINT.

    Clauza CONSTRAINT definete valorile pe care le putem da unor cmpuri, cum ar fi:

    valori unice (UNIQUE), valori nenule (NOT NULL), valori pentru construirea cheilor

  • 39

    primare (PRIMARY KEY), pentru chei externe (FOREIGN KEY) i a referinelor la alte

    tabele (REFERENCES). Constrngerile se precizeaz la nivel de cmp (n momentul definirii

    lui) i multicmp (dup definirea tuturor cmpurilor). O constrngere unicmp are forma:

    CONSTRAINT nume {PRIMARY KEY | UNIQUE | NOT NULL | REFERENCES

    tabel_extern [(camp_extern_1, camp_extern_2...)]}

    3.4.1.1. Ce sunt vederile?

    Vederile sunt tabele virtuale. Spre deosebire de tabelele care conin date, vederile

    conin pur i simplu interogri care regsesc dinamic datele atunci cnd sunt folosite. Sunt

    foarte utile din mai multe considerente, cum ar fi:

    - refolosirea instruciunilor SQL

    - simplificarea operaiunilor SQL complexe (dup scrierea unei interogri, aceasta

    poate fi refolosit cu uurin, fr a fi nevoie s cunoatem detaliile interogrii n

    sine)

    - afiarea unor pri dintr-un tabel i nu a tabelului integral

    - securitatea datelor, pentru ca utilizatorii pot primi acces la subseturi specifice ale

    tabelelor i nu la tabele integrale

    - se pot returna date formatate i reprezentate n mod diferit de tabelele care stau la

    baza lor

    - dupa ce au fost create pot fi folosite in acelasi mod ca tabelele.

    Observaie:

    E bine ca vederile s fie create pentru un domeniu extins de date i s nu fie legate de

    date cu valori specificate, pentru a o refolosi cu usurin.

    Exemple:

    CREATE TABLE farmacii (codf INTEGER(5) NOT NULL CONSTRAINT ccodf

    PRIMARY KEY, den CHAR(20) NOT NULL, adresa CHAR(30), nr_ang INTEGER(2),

    nr_tel INTEGER(6);

  • 40

    CREATE INDEX cod_farm ON farmacii (codf);

    CREATE INDEX datin ON gratuite (data_intr DESC) WITH IGNORE NULL;

    Observaii:

    Clauza UNIQUE de la CREATE INDEX se folosete pentru acele cmpuri care

    conin valori unice dar nu fac parte din cheia primara a tabelului.

    Clauza WITH poate defini chei primare PRIMARY KEY, poate inhiba posibilitatea

    de a introduce valoarea null n cmpul index DISALLOW NULL, poate crea indexul

    doar pe baza valorilor nenule IGNORE NULL.

    Cnd se foloseste clauza PRIMARY KEY e inutil scrierea clauzei UNIQUE.

    3.4.2. Comanda ALTER TABLE

    Dinamica aplicaiilor de baze de date poate impune modificri ale tabelelor i

    indecsilor deja existeni. Modificrile constau n adaugarea i tergerea unor cmpuri i

    indecsi, tergerea unor tabele. Comanda ALTER TABLE permite :

    - Adugarea unei coloane

    - Modificarea unei coloane existente

    - Definirea unei valori implicite pentru o coloan existent

    Sintaxa ei este:

    ALTER TABLE tabel

    ADD camp1 tip (lungime) [NOT NULL][CONSTRAINT unicamp] [,camp n tip ]);

    MODIFY camp1 tip (lungime) [NOT NULL][ CONSTRAINT unicamp] [,camp n tip]);

    Exemple:

    ALTER TABLE gratuite ADD valabilitate INTEGER(1);

    ALTER TABLE farmacii ADD CONSTRAINT codf NOT NULL;

  • 41

    ALTER TABLE farmacisti ADD CONSTRAINT farmacist PRIMARY KEY

    (nume,prenume);

    3.4.3. Comanda DROP

    Se folosete pentru a terge un tabel, un index sau o coloan dintr-un tabel (n cadrul

    comenzii ALTER TABLE). Sintaxa este:

    DROP TABLE nume_tabel

    DROP INDEX nume_index ON tabel

    ALTER TABLE tabel DROP COLUMN camp

    ALTER TABLE tabel DROP CONSTRAINT nume_index

    Exemple:

    DROP TABLE gratuite;

    DROP INDEX farmacist ON farmacisti;

    ALTER TABLE farmacii DROP COLUMN nr_tel;

    3.4.4. Comanda TRUNCATE

    Permite tergerea tuturor rndurilor dintr-o tabel i eliberarea spaiului de stocare

    folosit de acea tabel.

    TRUNCATE TABLE nume;

    Observatie:

    tergerea datelor este ireversibil. Comanda reprezint o alternativ a comenzii

    DELETE.

  • 42

    3.4.5. Comanda RENAME

    Comanda RENAME permite schimbarea numelui unui obiect al BD: tabel, vedere,

    secven, index sau sinonim.

    Sintaxa este urmatoarea:

    RENAME nume_nou TO nume;

    Observatie:

    Doar proprietarul obiectului are dreptul de a-l redenumi.

    3.5. Comenzi ale limbajului de control al tranzaciilor (TCL)

    Modelul de calcul client/server numit i multi-nivel, reprezint un tip de model

    distribuit pentru stocarea, accesarea i prelucrarea datelor. Intr-un sistem de prelucrare

    distribuit, mai multe calculatoare efectueaz mpreun o mulime de operaii. Un sistem

    multi-nivel folosete cel puin dou calculatoare, dintre care unul este aproape ntotdeauna un

    calculator personal.

    Atunci cnd se conecteaz PC-uri i servere, setul de prelucrri trebuie mprit ntre

    server i sistemul client. Acestea efectueaz prelucrri n funcie de capacitatea fiecruia,

    rezultatul fiind o form de cooperare care sporete eficiena i viteza ntregii operri. Modelul

    multi-nivel presupune de asemenea o mprire inegal a activitii. Aceasta provine din

    capacitile diferite de prelucrare ale serverului i clientului. Serverul fiind mai puternic (ca

    vitez i capacitate de stocare) transfer datele mai repede, stocheaz volume mari de date i

    efectueaz prelucrri mai laborioase dect sistemul client. Acest model a devenit cu

    repeziciune baza de dezvoltare a aplicaiilor pentru internet, pentru c se optimizeaz

    prelucrrile n acea parte a tranzaciei unde este cel mai potrivit, fie c e vorba de afiarea

    informaiilor ctre utilizatorul final sau sortarea datelor care trebuie furnizate pentru afiare.

    Prin utilizarea tehnologiei multi-nivel pe Internet, multe aplicaii de larg utilizare ajung

    online. Sistemele PC mai puin puternice sunt folosite drept clieni, deoarece lor le revine o

    parte mai mic din ntreg efortul de calcul bazat n principal pe server i pe componentele

    asociate acestuia, optimizate pentru prelucrri masive de date.

  • 43

    3.5.1. BD tranzacionale

    Rezolv accesul concurenial la date, asigur consistena datelor si grupeaza logic

    unele operaii nrudite.

    Prelucrarea de tranzacii se folosete pentru a menine integritatea bazelor de date i

    pentru a ne asigura c seturile de operaii SQL sunt executate fie complet, fie deloc pentru ca

    baza de date s nu conin niciodat rezultatele unor operaii pariale. Dac nu intervine nici o

    eroare pe parcursul prelucrrii bazei de date (de exemplu: lipsa spaiului pe disc, restricii de

    securitate, blocri ale tabelelor, cdere a sistemului) atunci ntregul set de instruciuni este

    nscris n tabelele bazei de date, iar dac apar erori, atunci se poate derula n mod automat o

    revenire (anulare) care restaureaz baza de date la o stare cunoscut i sigur.

    Termenii care apar atunci cnd lucrm cu tranzacii sunt urmtorii:

    Noiune Explicaie

    Transaction Set (bloc) de instructiuni SQL

    Rollback Revenire; procesul anularii instructiunilor SQL specificate

    Commit Determin comiterea unei tranzacii si permite scrierea

    instructiunilor SQL nesalvate

    Savepoint Marcaj intr-un set tranzactie la care se poate termina o

    revenire (spre deosebire de revenirea unei intregi tranzactii)

    Figura 3.7.

    Observaii:

    Tranzacia ncepe odat cu executarea primei comenzi SQL, e folosit pentru a

    gestiona instruciunile INSERT, UPDATE i DELETE. Nu se pot aplica reveniri asupra

    instruciunilor SELECT, CREATE sau DROP. Acestea pot fi folosite ntr-un bloc de

    tranzacii, dar dac se efectueaz o revenire, ele nu vor fi anulate. Tranzacia se termin prin

    intervenia unuia din evenimentele:

    - comanda COMMIT sau ROLLBACK

    - comanda DDL sau DCL (comitere automat)

    - diferite erori, ieirea sau blocarea sistemului.

    3.5.2. Controlul tranzaciilor

    Gestionarea tranzaciilor implic divizarea instruciunilor SQL n blocuri logice i

    indicarea explicit a cazurilor cnd datele trebuiesc supuse unor reveniri sau nu.

  • 44

    Sintaxa folosit la implementarea prelucrrii de tranzacii difer ntre SGBD-uri, de

    exemplu, n SQL Server tranzacia ncepe cu instruciunea BEGIN TRANSACTION i se

    sfrete cu COMMIT [TRANSACTION], iar ntre cele dou instruciuni orice instruciune

    trebuie executat fie complet, fie deloc.

    Comanda ROLLBACK se utilizeaz pentru revenirea (anularea) instruciunilor SQL. Sintaxa

    ei este:

    ROLLBACK [TO nume_punct salvare]

    ROLLBACK [TRANSACTION]

    Exemplu:

    DELETE FROM gratuite;

    ROLLBACK;

    Instruciunea ROLLBACK anuleaz tergerea.

    Instruciunea COMMIT [TRANSACTION] se folosete pentru a impune sistemului s nscrie

    explicit o tranzacie.

    Tranzaciile mai complicate pot necesita nscrieri sau reveniri pariale. In acest caz e

    util folosirea punctelor de salvare, adic introducerea n blocul SQL al tranzaciilor a unor

    marcaje, ca mai apoi s se indice punctul la care sa revin execuia instruciunilor.

    In SQL Server faptul acesta se scrie cu ajutorul comenzilor:

    SAVE TRANSACTION nume

    ROLLBACK TRANSACTION nume

    SAVE creeaza un punct de salvare al tranzactiei cu denumirea nume, iar ROLLBACK

    Permite revenirea pn la punctul de salvare nume creat.

  • 45

    Exemplu de tranzacie n SQL Server:

    BEGIN TRANSACTION

    INSERT INTO gratuite VALUES (101,1002,aspirina,11/11/2003, 500);

    SAVE TRANSACTION inceput;

    INSERT INTO farmacisti ((codf, nume, functie, salar) VALUES (101, Popescu,

    farmacist, 4500000)

    IF @@ ERROR 0 ROLLBACK TRANSACTION inceput;

    INSERT INTO farmacii (codf, den, adresa, tel, nrang) VALUES (2005,FARMAX, centru,

    494902, 13);

    IF @@ ERROR 0 ROLLBACK TRANSACTION inceput;

    COMMIT TRANSACTION;

    Dac apare vreo eroare sau eueaz vreo comand INSERT de fiecare dat se revine la

    punctul inceput, daca nu, se ruleaz instruciunea COMMIT pentru a salva datele.

    Observaii:

    - se recomand crearea mai multor puncte de salvare pentru a avea mai mult

    flexibilitate n gestionarea revenirilor

    - jurnalul de tranzacii conine dou tipuri de informaii: una reprezint o form de

    verificare n cadrul aplicaiei prin care se asigur ca o operaie anume se

    efectueaz n totalitate i alta privete imaginea coninutului bazei de date nainte

    i dup efectuarea operaiilor (de exemplu, la actualizarea unei linii, n jurnal se

    nregistreaz coninutul nainte i coninutul dup actualizare).

    In ORACLE se procedeaz cu ajutorul comenzilor:

    SAVEPOINT nume

    ROLLBACK TO nume

    Exemplu de rulare:

    SQL> UPDATE

  • 46

    SQL> SAVEPOINT marker;

    Savepoint created.

    SQL> INSERT

    SQL> ROLLBACK TO marker;

    Rollback complete.

    Observaii:

    Garanteaz n permanen o vedere consistent asupra datelor.

    Modificrile efectuate de un utilizator nu vin n conflict cu modificrile altui

    utilizator.

    Asigur ca pentru acelai set de date:

    cititorul nu ateapt dup scriitor

    scriitorul nu ateapt dup cititor.

    3.6. Comenzi ale limbajului de control al datelor (DCL)

    3.6.1. Securitate

    In cadrul unei organizaii nu exist nimic mai valoros dect datele ei, iar acestea

    trebuie ntotdeauna protejate mpotriva eventualilor infractori sau curioi. Desigur, n acelai

    timp datele trebuie s fie accesibile utilizatorilor, astfel ca majoritatea SGBD-urilor le ofer

    administratorilor mecanisme prin intermediul crora s asigure sau s limiteze accesul la

    date.

    Baza oricrui sistem de securitate este autorizarea i autentificarea utilizatorului;

    acesta este procesul prin care utilizatorul este identificat i prin care i se permite s efectueze

    operaia solicitat. In acest scop, unele SGBD-uri sunt integrate cu securitatea sistemului de

    operare, altele au propriile lor liste cu utilizatori i parole, iar altele se integreaz cu servicii

    de securitate extern.

    Dintre operaiile crora li se asigur n mod uzual securitatea sunt:

    accesul la caracteristicile de gestionare a BD (crearea tabelelor, modificarea

    sau tergerea tabelelor existente, etc)

    accesul la BD sau tabele specifice

    tipul de acces (numai pentru citire, accesul la coloane specifice, etc)

  • 47

    accesul la tabele numai prin intermediul vederilor sau al procedurilor stocate

    crearea de niveluri multiple de securitate, permitnd astfel grade diverse de

    acces i control bazate pe identificarea la deschiderea sesiunii de lucru

    limitarea capacitii de gestionare a conturilor de utilizatori.

    Securitatea este gestionat prin intermediul instruciunilor GRANT i REVOKE, dei cele

    mai multe SGBD-uri asigur utilitare pentru administrare interactiv ce folosesc intern aceste

    dou instruciuni.

    3.6.2. Drepturi (Privilegii)

    Un drept reprezint permisiunea de accesare a unui obiect, de exempu o tabel din

    cadru unei BD. Drepturie se acord unui utilizator sau unui rol pentru a permite utilizatorilor

    sau membrilor rolului s efectueze operaii ca: extragerea datelor, inserarea de noi linii sau

    modificarea datelor. Drepturile se acord implicit posesorului sau creatorului unui obiect.

    Acesta poate s acorde drepturi altor utilizatori sau grupuri, dup cum gsete de cuviin.

    - posesorul unei BD (DBO) are drepturi depline asupra tuturor obiectelor din BD pe

    care o posed.

    - administratorul de sistem (SA) are drepturi depline asupra tuturor obiectelor din toate

    BD aflate pe server.

    SQL Server pune la dispoziie comenzile GRANT i REVOKE ce permit acordarea i

    retragerea de drepturi unui utilizator.

    3.6.2.1. Privilegii sistem

    Administratorul BD are cele mai mari privilegii sistem:

    Crearea de noi utilizatori

    nlturarea unor utilizatori

    tergerea tabelelor

    Crearea unor copii de siguran a tabelelor

    Comanda Utilizare

    CREATE

    USER

    Permite DBA s creeze un utilizator

    GRANT Permite unui utilizator s acorde altor utilizatori drepturi

    de acces la obiectele sale

  • 48

    CREATE

    ROLE

    Permite DBA s creeze colecii de drepturi

    ALTER USER Permite utilizatorilor s i modifice parola de acces

    REVOKE Elimin drepturile unui utilizator asupra unui obiect al

    BD

    Figura 3.8

    In versiunile anterioare de SQL Server, un utilizator putea s fac parte dintr-un

    singur grup de utilizatori (cu anumite drepturi). Acest lucru fiind vzut ca o limitare,

    versiunea 7 a pachetului de programe, a eliminat grupurile i a introdus noiunea de roluri

    astfel realizndu-se un pas major n ceea ce privete capacitatea de administrare, un utilizator

    deinnd orict de multe roluri.

    Sintaxele corespunztoare comenzilor din tabelul de mai sus sunt:

    GRANT privilegiu1 [, privilegiu2...] TO user1 [, user2...];

    GRANT create table, create view TO nume_manager;

    GRANT nume_manager TO nume1[,nume2,nume_n];

    CREATE ROLE nume_manager;

    REVOKE lista_drepturi ON nume_obiect FROM lista_nume

    Exemplu:

    GRANT create table, create sequence, create view TO ionescu;

    Grant succeeded.

    3.6.2.2. Privilegiile utili