Capitolul 4 - Sist de Numeratie

30
Capitolul 4. SISTEME DE NUMERAŢIE. ELEMENTE DE LOGICĂ MATEMATICĂ. PROGRAMARE 4.1. SISTEME DE NUMERAŢIE Se numeşte sistem de numeraţie totalitatea regulilor de reprezentare a numerelor folosind un anumit set de simboluri grafice distincte, numit alfabetul sistemului de numeraţie, simbolurile fiind numite cifre. Sistemele de numeraţie sunt de două tipuri: - sisteme de numeraţie poziţionale; - sisteme de numeraţie nepoziţionale. Sistemele de numeraţie poziţionale sunt acele sisteme de numeraţie pentru care valoarea unei cifre din cadrul unui număr depinde de poziţia ocupată de acea cifră în cadrul numărului. Un sistem de numeraţie poziţional în baza “r” are următoarele caracteristici: - utilizează un alfabet cu r simboluri diferite între ele numite cifre, cu valori consecutive; - aceeaşi cifră aşezată în poziţii diferite ale unei secvenţe, poate avea valori diferite; - cifra 0 are cea mai mică valoare când este aşezată singură; - cifra cu valoarea cea mai mare când este aşezată singură, are valoarea cu o unitate mai mică decât baza sistemului (adică r-1). În funcţie de poziţia lor în număr, cifrele se înmulţesc cu puteri crescătoare ale bazei r, obţinându-se dezvoltarea numărului după puterile bazei: N r = a n a n-1 …a 2 a 1 a 0 = a n .r n +a n-1 .r n-1 + …+ a 2 .r 2 + a 1 .r 1 +a 0 . r 0

description

Capitolul 4 - Sist de Numeratie

Transcript of Capitolul 4 - Sist de Numeratie

  • Capitolul 4.

    SISTEME DE NUMERAIE. ELEMENTE DE LOGIC MATEMATIC. PROGRAMARE

    4.1. SISTEME DE NUMERAIE

    Se numete sistem de numeraie totalitatea regulilor de reprezentare a numerelor folosind un anumit set de simboluri grafice distincte, numit alfabetul sistemului de numeraie, simbolurile fiind numite cifre.

    Sistemele de numeraie sunt de dou tipuri: - sisteme de numeraie poziionale; - sisteme de numeraie nepoziionale. Sistemele de numeraie poziionale sunt acele sisteme de numeraie

    pentru care valoarea unei cifre din cadrul unui numr depinde de poziia ocupat de acea cifr n cadrul numrului. Un sistem de numeraie poziional n baza r are urmtoarele caracteristici:

    - utilizeaz un alfabet cu r simboluri diferite ntre ele numite cifre, cu valori consecutive;

    - aceeai cifr aezat n poziii diferite ale unei secvene, poate avea valori diferite;

    - cifra 0 are cea mai mic valoare cnd este aezat singur; - cifra cu valoarea cea mai mare cnd este aezat singur, are

    valoarea cu o unitate mai mic dect baza sistemului (adic r-1). n funcie de poziia lor n numr, cifrele se nmulesc cu puteri

    cresctoare ale bazei r, obinndu-se dezvoltarea numrului dup puterile bazei:

    Nr = anan-1a2a1a0 = an .rn +an-1 .rn-1 + + a2 .r2 + a1 .r1 +a0 . r0

  • Capitolul 4.

    Exemplu: sistemul arab zecimal de numeraie este unul poziional. De exemplu, cifra 1 are valoarea 10 (1*10) n numrul 3217 i are valoarea 1000 (1*103) n numrul 31709.

    Sistemele de numeraie nepoziionale sunt sistemele de numeraie

    pentru care valoarea unei cifre dintr-un numr nu este unic determinat de poziia cifrei n numr ci de contextul n care se afl cifra.

    Exemplu: sistemul roman de numeraie este unul nepoziional; valoarea cifrei I n numrul II este +1 iar n numrul IV este 1.

    Baza unui sistem de numeraie poziional este dat de numrul de

    elemente care formeaz alfabetul sistemului de numeraie. Se consider c alfabetul este format din cifre care sunt numere ntregi, consecutive, nenegative.

    Exemplu: sistemul de numeraie n baza 2 are alfabetul {0,1}; sistemul de numeraie n baza 10 are alfabetul {0,1,2,3,4,5,6,7,8,9}, iar n baza 16 are alfabetul {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}.

    Sistemele de numeraie poziionale folosesc acelai sistem de reguli de reprezentare a numerelor; ele difer doar prin alfabetul pe care l utilizeaz i, implicit, prin baz.

    Baza de numeraie utilizat pentru reprezentarea informaiei n calculatoarele numerice este baza 2. Argumentele care au determinat aceast alegere sunt:

    - operaiile aritmetice elementare n baza 2 pot fi asimilate cu operaiile n logic bivalent efectuate ntr-o algebr boolean; n consecin, att operaiile aritmetice ct i operaiile logice pot fi tratate unitar, prin intermediul funciilor logice din algebra boolean;

    - componentele elementare ale unui sistem de calcul utilizate pentru memorarea i manevrarea informaiilor, indiferent de natura lor (dispozitive electronice, optice, magnetice, electrice, etc.), se caracterizeaz prin dou stri stabile (circuit nchis / deschis, cmp magnetizat ntr-un sens / n sens opus, cmp opac / transparent, etc.). Acest lucru face ca funcionarea lor s poat fi exprimat prin intermediul unor funcii booleene;

    - proiectarea logic a dispozitivelor elementare ale unui calculator numeric se realizeaz prin intermediul circuitelor logice care modeleaz funciile booleene dorite.

    Sistemul de numeraie binar Sistemul de numeraie binar, cel mai simplu posibil inventat acum

    82

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    500 de ani n China i cel mai utilizat n reprezentarea codificat a numerelor n calculatoare, are urmtoarele caracteristici:

    - baza de numeraie a sistemului este 2 i conine numai dou simboluri, cifrele 0 i 1;

    - cifra cu valoarea cea mai mare este 1. Un numr scris n baza 2, poate fi dezvoltat dup puterile bazei

    astfel:

    N2 = anan-1a2a1a0 = an .2n +an-1 .2n-1 + + a2 .22 + a1 .21 +a0 . 20

    Un numr poate fi dezvoltat dup puterile lui 2, astfel: 111000102 = 1 * 27 + 1 * 26 + 1 * 25 + 1 * 21 + 0 * 20

    Sistemul de numeraie octal Utilizat n reprezentarea codificat a numerelor n calculatoare este

    i sistemul de numeraie octal ntruct l include pe cel binar. Are urmtoarele caracteristici:

    - baza de numeraie a sistemului de numeraie este 8 i conine n consecin opt cifre, de la 0 la 7;

    - cifra cu valoarea ce mai mare este 7. Un numr scris n baza 8, poate fi dezvoltat dup puterile bazei,

    astfel: N8 = anan-1a2a1a0 = an .8n +an-1 .8n-1 + + a2 .82 + a1 .81 +a0 . 80

    Un numr poate fi dezvoltat dup puterile lui 8, astfel:

    757330218 = 7 * 87 + 5 * 86 + 7 * 85 + 3 * 84 + 3 * 83 + 0 * 82 + + 2 . 81 + 1 * 80

    Sistemul de numeraie zecimal Alfabetul sistemului zecimal, cel mai cunoscut i utilizat n prezent

    este format din zece cifre : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Aceste cifre sunt prin definiie numere consecutive, astfel 7 = 6 + 1. Un numr n baza 10 poate fi scris ca o sum de puteri ale lui 10:

    1999 = 1 * 103 + 9 * 102 + 9 * 101 + 9 * 100 Sistemul de numeraie hexazecimal Utilizat cel mai mult n ultima vreme n reprezentarea codificat a

    numerelor n calculatoare este sistemul de numeraie hexazecimal ntruct le include pe cele binar i octal. Are urmtoarele caracteristici:

    83

  • Capitolul 4.

    - baza de numeraie a sistemului este 16 i conine 16 cifre, de la 0 la 9 i n plus literele consecutive A, B , C, D, E i F (echivalente la 10, 11, 12, 13, 14 i 15);

    - simbolul cu valoarea cea mai mare este F i are valoarea 15. Un numr scris n baza 16, poate fi dezvoltat dup puterile bazei,

    astfel: N16 = anan-1a2a1a0 = an .16n +an-1 .16n-1 + + a1 .161 +a0 . 160

    Un numr poate fi dezvoltat dup puterile lui 16, astfel: 7AD1106916 = 7 * 167 + A * 166 + D * 165 + 1 * 164 + 1 * 163 + + 0 * 162 + 6 * 161 + 9 * 160

    Exist algoritmi de transformare a numerelor dintr-un sistem de

    numeraie n altul. n tabelul urmtor sunt prezentate conversiile ctorva numere n sistemele zecimal, binar, octal i hexazecimal.

    Sistemul zecimal

    Sistemul binar

    Sistemul Octal

    Sistemul Hexazecimal

    0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 20 10100 24 14 30 11110 36 1E 40 101000 50 2B 50 1010010 62 32

    84

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    4.2. FUNCII LOGICE Matematicianul englez George BOOLE a reuit s fac o legtur

    ntre formulele algebrice i relaiile logice. Pornind de la principiul c o propoziie poate fi adevrat sau fals, BOOLE atribuie valoarea 1 propoziiilor adevrate i respectiv 0 propoziiilor false, elabornd algebra boolean.

    Notnd propoziiile cu a, b c, etc. se pot construi funciile logice: - Disjuncia (operaie logic tradus prin SAU) a dou propoziii,

    notat cu ; - Conjuncia (operaie logic tradus prin I) a dou propoziii, notat

    cu ; - Negaia unei propoziii notat cu . n cazul a dou propoziii a i b se pot obine tabele de adevr, pentru

    disjuncie, conjuncie i negaie aa cum rezult din tabelul urmtor.

    a b a b a b a b 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0

    Algebra boolean este utilizat n aplicaiile din automatic, teoria

    circuitelor i releelor electronice i deci la realizarea calculatoarelor. Alturi de logica boolean, au aprut mai nou logicile polivalente

    printre care logica trivalent cu valorile de adevrat, fals i posibil i logica fuzzi care admite domenii de trecere gri, fiind apropiat de logica de gndire obinuit din industrie, economie, etc.

    4.3. DATE. INFORMAII Informaiile i cunotinele au o mare importan, att pentru

    dezvoltarea personalitii umane, ct i pentru evoluia vieii i societii. Orice societate i implicit indivizii care o compun, nu pot progresa dac nu dispun de informaii. Prin intermediul informaiilor se asigur transferul cunotinelor de la o generaie la alta i se asigur accesul la cele mai avansate realizri ale omenirii.

    Data este o form de reprezentare material a informaiei. Datele

    85

  • Capitolul 4.

    reprezint suportul formal al informaiei, concretizndu-se n cifre, litere, simboluri, coduri i alte semne plasate pe supori tehnici de date.

    Datele reprezint obiectul prelucrrii pentru informatic, materia prim a acesteia i numai prin asociere cu realitatea pe care o reflect, se poate spune c ele genereaz informaii.

    Datele obinute n urma procesului de prelucrare pot avea calitatea de informaii sau pot rmne simple date dac i pierd calitatea de noutate semantic.

    n practic, de multe ori termenul de informaie este eronat utilizat pentru a desemna date, iar expresia prelucrarea informaiilor nlocuiete expresia prelucrarea datelor.

    Informaia reprezint o noiune care semnific o tire, un mesaj, un

    semnal, etc. despre evenimente, fapte, stri, obiecte, etc. n general despre forme de manifestare a realitii care ne nconjoar.

    Forma de exprimare i transmitere a informaiilor o reprezint comunicarea, informaia aprnd ca o comunicare despre un anumit aspect al realitii obiective.

    Din punct de vedere conceptual, informaia reprezint o reflectare n planul gndirii umane a legturilor de cauzalitate, privind aspecte din realitatea ce ne nconjoar.

    Din punctul de vedere al informaticii, informaia este definit ca fiind o formul scris susceptibil de a aduce o cunotin (J. Arsac).

    Informaia are deci sens de noutate pentru cel cruia i se adreseaz, indiferent de forma pe care o ia (tire, semnal, comunicare). Se poate spune deci c informaia este un mesaj, dar cu precizarea c nu orice mesaj este o informaie. Dac mesajul nu transmite nici o noutate i nu are un suport real, atunci acesta nu prezint interes pentru receptor i deci nu are caracter de informaie. Informaia primete ntotdeauna atributul domeniului pe care l reflect.

    Procesul de sesizare, nelegere i nsuire a informaiilor dintr-un anumit domeniu reprezint un proces de informare, informaiile dobndite n urma unui proces de informare, formnd cunotinele despre respectivul domeniu, mulimea acestora reprezentnd patrimoniul de cunotine.

    Cunotinele reprezint o nsumare n timp a tuturor informaiilor dobndite ntr-un anumit domeniu sau despre un anumit obiect.

    n procesul prelucrrii i utilizrii informaiilor, acestea sunt privite din trei puncte de vedere:

    - din punct de vedere sintactic, cnd se urmrete aspectul formal al

    86

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    reprezentrii acestora, n sensul c datele care se prelucreaz se supun riguros anumitor reguli de validitate;

    - din punct de vedere semantic, n care se urmrete semnificaia, nelesul informaiei ce deriv din datele prelucrate;

    - din punct de vedere pragmatic, urmrindu-se utilitatea informaiei pentru utilizatori, adic msura n care sunt satisfcute cerinele acestora.

    Dei informatica are n vedere n primul rnd aspectul formal al informaiei, n procesul prelucrrii datelor nu se poate face abstracie de nici unul din cele trei aspecte prezentate anterior. Chiar dac n procesul prelucrrii datelor se pleac de la un interes pragmatic, acesta nu se poate realiza dac nu se respect anumite reguli de sintax i semnificaie privind datele supuse prelucrrii.

    Date elementare i structurate n informatic, prin date se nelege un model de reprezentare a

    informaiei, accesibil unui anumit procesor care poate fi de exemplu: creierul uman, un program sau unitatea central (unitatea de comand + memoria intern) a calculatorului.

    Rezolvarea diverselor probleme cu ajutorul calculatorului presupune prelucrarea datelor. Datele pot fi de dou tipuri:

    date elementare; date structurate (structuri de date). Date elementare Data elementar poate fi definit din punct de vedere logic, adic la

    nivelul unui procesor uman ca un triplet de forma: D = {I, A, V},

    unde : I = identificatorul datei (nume); A = atributul datei (proprieti); V = valoarea datei. Din punct de vedere fizic, adic la nivelul reprezentrii interne (la

    nivelul calculatorului) modelul corespunztor datei este o zon de memorie situat la o adres absolut, zon n care se va memora valoarea datei.

    Valoarea datei poate fi precizat prin enumerare sau printr-o proprietate comun. Ele pot fi numere ntregi, reale, complexe, logice, iruri

    87

  • Capitolul 4.

    de caractere. Dac, pe tot parcursul prelucrrii, data i pstreaz neschimbat

    valoarea, ea se numete constant i se identific chiar prin simbolul care o definete (de exemplu, toate cifrele sistemului zecimal cu valoare constant, cum ar fi 5). Dac, pe parcursul prelucrrii, data i modific valoarea, ea se numete variabil i se identific printr-un identificator sau un nume de dat. Acest identificator este simbolul sau grupul de simboluri asociat datei pentru a-l diferenia de alte date. Identificatorul este un cuvnt stabilit de utilizator.

    ax + b = 0

    2x + 9 = 0

    variabile

    constante Atributele reprezint proprietile datei, care determin modul n

    care data va fi tratat n procesul de prelucrare. O proprietate important pentru date este tipul de dat, care definete apartenena datei la o anumit clas de date (de exemplu, mulimea numerelor reale, complexe, ntregi, logice, etc.).

    Date structurate (structuri de date) Structurile de date sau datele structurate, reprezint o mulime de

    date elementare pentru care s-a definit un mecanism de selecie n identificarea elementelor componente i asupra crora se pot efectua o serie de operaii. Principalele structuri de date sunt: tabloul, irul, lista, arborele, nregistrarea, etc. Pentru manevrarea volumelor mari de date necesare n procesul de prelucrare, acestea pot fi structurate n fiiere.

    Fiierul cuprinde un ansamblu de nregistrri care se refer la informaii de aceeai natur i este organizat pe un suport de memorie extern.

    Pe o treapt superioar se situeaz baza de date, care funcioneaz potrivit unui sistem de gestiune i interogare cu care mpreun formeaz banca de date.

    88

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    4.4. ALGORITMI

    Pentru rezolvarea unei probleme cu ajutorul calculatorului trebuie parcurse mai multe etape:

    - analiza problemei, adic formularea corect i determinarea unei metode de rezolvare a ei, stabilirea algoritmilor de calcul, reprezentarea lor grafic sub forma de schema logic (organigram);

    - programarea, adic reprezentarea schemei logice n limbajul de programare adecvat rezolvrii problemei cu ajutorul calculatorului;

    - implementarea, adic aplicarea n practic a soluiei. Algoritmii sunt de obicei alei n cadrul fazei de analiz a problemei

    ce trebuie rezolvat. Astfel dac se d problema i mijloacele de calcul de care se dispune, prin algoritm se nelege, o metod de soluionare a problemei, metod reprezentat ntr-un limbaj i/sau schem mnemonic, adecvate mijloacelor de calcul disponibile, caracterizat prin generalitate (se aplica cu minime modificri la problemele n clasa respectiv), finalitate (soluia problemei este furnizat dup un numr finit de operaii) i realizabilitatea (adic sunt folosite mijloacele de calcul disponibile). Mai pe scurt, algoritmul reprezint un set de reguli dup care o informaie iniial, devine o informaie final (rezultat) trecnd printr-un numr finit de stri intermediare.

    Figura 4.1. Etapele de rezolvare a unei probleme cu ajutorul calculatorului Prelucrarea automat a informaiei se realizeaz deci conform unui algoritm. Pentru a putea fi utilizat n scopul unei prelucrri automate a informaiei, ntr-un sistem de calcul, un algoritm trebuie s aib cteva proprieti eseniale: 89

  • Capitolul 4.

    - generalitatea, proprietate ce reprezint capacitatea algoritmului de a descrie modul de rezolvare a unui anumit tip de problem;

    - universalitatea, odat definit modul de rezolvare, algoritmul trebuie s fie aplicabil, indiferent de setul de date pe care le prelucreaz;

    - finitudinea garanteaz faptul c execuia algoritmului se ncheie, dup un numr finit de pai, indiferent de setul de date care sunt prelucrate;

    - completitudinea este proprietatea care asigur faptul c algoritmul rezolv integral problema abordat: nu exist variante ale prelucrrii netratate;

    - proprietile care definesc modalitatea de descriere a algoritmului: concizia, claritatea i rigurozitatea definirii acestuia;

    - executabilitatea este proprietatea algoritmului de a descrie prelucrrile numai prin intermediul unor operaii care pot fi executate n sistemul de calcul;

    - eficiena algoritmului msoar gradul n care executarea acestuia se realizeaz n timp minim i, n general, cu un consum ct mai redus de resurse.

    Algoritmul poate fi descris prin: - limbaj logico-matematic; - schem logic; - limbaj de programare.

    Limbajul logico-matematic Reprezint o descriere a algoritmului de rezolvare a unei probleme

    oarecare utiliznd urmtoarele elemente: - mrimile (adic datele aferente problemei); - cuvintele (de exemplu: start, stop, citete, afieaz, etc.); - operaiile (citire, afiare, atribuire, decizie); - paii (etapele de rezolvare a problemei respective). Exemplu, rezolvarea prin intermediul limbajului logico-matematic a

    ecuaiei de gradul nti. Problema se rezolv n modul urmtor: - se citete o valoare pentru variabila notat cu a (o mrime); - se verific valoarea acesteia (trebuie s fie diferit de 0, altfel se

    oprete rezolvarea problemei); - dac a trecut testul, se citete o valoare pentru variabila notat cu b; - se calculeaz valoarea lui variabilei x i se afieaz; - se reia rezolvarea problemei pentru alte valori ale lui a i b.

    90

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    P1: StartP2: Citete aP3: Dac a = 0 atunci Stop dac nu, P4P4: Citete bP5: x = - b / aP6: Afieaz xP7: Mergi la P2

    decizie

    atribuire

    salt Figura 4.2. Rezolvarea ecuaiei de gradul I, prin limbaj logico-matematic

    Schema logic Este o reprezentare grafic a algoritmului descris prin limbajul

    logico-matematic. Elementele cu care se opereaz la aceast modalitate de descriere sunt blocurile, adic diversele simboluri grafice care se ataeaz fiecrei componente (paii) a algoritmului.

    Reprezentarea grafic, pe o schem logic, a algoritmilor de calcul, a funciilor booleene, a funciilor arborescente i de cicluri, duce la o nelegere mai bun a modului de soluionare dect dac s-ar exprima n cuvinte.

    START

    Citete a

    a 0

    Figura 4.3. Schema logic pentru rezolvarea ecuaiei de gradul I

    x = - b / a

    Citete b

    Scrie x

    DA

    NU

    STOP

    91

  • Capitolul 4.

    Schema logic, aa cum s-a prezentat mai sus, este o reprezentare grafic a proceselor de rezolvare a problemei care folosete diferite figuri geometrice (paralelogram, dreptunghi, romb, cerc, etc.) avnd o anumit semnificaie, denumite blocuri, unite prin sgei i/sau conectori care arat modul n care aceste figuri se nlnuiesc i conveniile de parcurgere a schemei. Cteva tipuri de blocuri sunt: bloc de start, bloc de intrare-ieire (paralelogram), bloc de calcul sau prelucrare (dreptunghi), bloc de decizie (romb).

    Limbajul de programare O alt modalitate de descriere a algoritmului, o reprezint descrierea

    cu ajutorul limbajului de programare. Orice limbaj utilizat pentru descrierea algoritmului i a datelor aferente se numete limbaj de programare.

    Limbajul de programare este suportul comun de conversaie ntre utilizator i calculatorului. Cu ajutorul limbajului de programare se elaboreaz programele pentru rezolvarea problemelor cu ajutorul calculatorului.

    Dezvoltarea limbajelor de programare merge ns n direcia limbajelor care s foloseasc simboluri i noiuni din limbajul uzual. n funcie de ct de bine s-a adaptat modul de formulare a instruciunilor unui limbaj de programare la limbajul uzual, limbajele se pot clasifica n:

    - cod-main; - limbaje de asamblare; - limbaje avansate de programare.

    Cod-main - este neles de calculator; - are funcii elementare; - instruciunile reprezint combinaii de bii. Assembler - asambleaz; - este orientat spre main i folosete un limbaj abstract; instruciunile sunt scrise sub forma unor combinaii scurte de litere,

    ce nlocuiesc cele 8 poziii ale codului instruciunilor binare; - derularea programului se face foarte rapid, nu necesit o capacitate

    mare de memorare, dar n schimb necesit mult timp la scrierea programului;

    92

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    - fiecare procesor necesit un anumit limbaj de asamblare.

    Limbaje de programare avansate - exemple: FORTRAN, BASIC, PASCAL; - folosesc elemente ale limbii naturale (ex. lb. englez), de exemplu:

    Print, Write, Read, Input, Go To, If, Then, Else. Interpretoare i compilatoare - traduc instruciuni complexe n cod-main; - sunt adaptate pentru fiecare limbaj i fiecare procesor; - interpretorul verific corectitudinea sintaxei fiecrei comenzi i o

    execut imediat; - compilatorul deruleaz programul pentru detectarea erorilor i l

    traduce n cod-main; - programul iniial are extensia specific limbajului utilizat (*.BAS,

    *.PAS etc.), iar programul compilat i link-editat are extensia .EXE; - link-editorul se folosete pentru legarea modulelor obiect. Tendina actual este de a aduce aceste limbaje de programare, la

    nivelul limbilor vorbite. Programul reprezint totalitatea codurilor numite instruciuni dintr-

    un limbaj de programare oarecare, instruciuni ce codific operaiile din cadrul unui algoritm. Pentru rezolvarea unei probleme cu calculatorului se ntocmete algoritmul, se alege un limbaj de programare unde se regsesc pentru fiecare operaie din cadrul algoritmului ntocmit, una sau mai multe instruciuni. Totalitatea acestor instruciuni reprezint programul.

    Programul elaborat ntr-un limbaj de programare se numete program surs. Pentru ca programul surs s devin direct executabil este necesar transformarea din program surs, n program format cod main (adic program direct executabil de ctre unitatea de comand). Aceast transformare se poate face prin dou metode:

    1) Metoda interpretrii; 2) Metoda compilrii.

    Metoda interpretrii Prin intermediul acestei metode, transformarea se efectueaz prin

    intermediul unui program interpretor pentru limbajul de programare respectiv. Sub incidena acestui program interpretor, programul surs se poate ncrca n memoria intern fiind astfel transformat n format cod main.

    93

  • Capitolul 4.

    Programformat surs

    Programdirect

    executabil

    INTERPRETOR

    Figura 4.4. Metoda interpretrii Metoda prezint avantajul modului de lucru conversaional i a

    posibilitii interveniei utilizatorului n program pe ntreg parcursul execuiei acestuia, dar prezint i dezavantajul spaiului de memoria intern foarte mic la dispoziia programului surs al utilizatorului.

    ProgramINTERPRETOR

    Programul propriu-zisal utilizatorului

    (executabil)

    Memoria intern

    Figura 4.5. Execuia programului utilizatorului prin intermediul metodei interpretrii

    Un astfel de program interpretor este de exemplu GWBASIC, bazat

    pe limbajul BASIC.

    Metoda compilrii Metoda presupune parcurgerea mai multor etape: programul surs

    este supus operaiei de compilare prin intermediul unui program compilator 94

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    pentru limbajul respectiv.

    Programformat surs

    Programdirect

    executabil

    COMPILATOR

    Programobiect

    link-editarecompilare

    Figura 4.6. Metoda compilrii

    n urma operaiei de compilare rezult un program obiect, care este

    supus operaiei de link-editare (editare de legturi). La aceast operaie, programului obiect i se mai adaug diferite module rezultnd programul direct executabil n cod main. Acest program direct executabil va fi stocat ntr-un fiier cu extensie *.exe, deci, aa cum s-a spus anterior, direct executabil de ctre unitatea de comand.

    Metoda prezint avantajul c ntreg spaiul de memorie intern este la dispoziia utilizatorului, dar i dezavantajul c pentru orice intervenie (modificare) n program trebuie reluate toate etapele.

    Programul propriu-zisal utilizatorului

    (direct executabil)

    Memoria intern

    Figura 4.7. Execuia programului utilizatorului prin intermediul metodei compilrii

    95

  • Capitolul 4.

    Pentru rezolvarea unei probleme cu ajutorul calculatorului este necesar parcurgerea mai multor etape. Prima etap este cea de enunare a problemei i formularea ei matematic, adic se exprim matematic relaiile i restriciile dintre parametrii problemei. Tot acum se pun n eviden condiiile iniiale (valorile iniiale ale variabilelor care intervin pe parcurs), precum i restriciile referitoare la soluii. A doua etap const n alegerea metodei numerice, stabilindu-se de fapt algoritmul de rezolvare a problemei respective. La etapa a treia se descrie algoritmul, respectiv acesta este codificat ntr-un limbaj de programare ct mai apropiat de utilizator. n fine, etapa a patra const n stabilirea procedurilor de control care s permit verificarea unor rezultate intermediare, detectarea eventualelor erori, etc. Programul de rezolvare a unei probleme oarecare reprezint o mulime finit de instruciuni, aferente unui limbaj de programare, instruciuni ce codific operaiile prevzute n algoritmul de rezolvare a problemei respective. O instruciune reprezint o operaie de prelucrare a datelor, operaie pe care calculatorul o poate executa. Din punct de vedere logic, instruciunile sunt aranjate n cadrul programului ntr-o anumit ordine, rezultnd n acest fel o structur organizatoric a acestuia, determinat de tipul de relaii existente ntre instruciuni. O structur, dat de ordinea n care se execut instruciunile, se numete structur de control.

    4.5. STRUCTURI DE CONTROL

    n general, exist dou clasificri a structurilor de control i anume, structuri de control secveniale i structuri de control nesecveniale (alternative i repetitive).

    n mod normal, aceste dou tipuri de structuri de control sunt suficiente pentru a descrie orice program.

    96

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    Structura secvenial

    Secv. 1

    Secv. 2

    Secv. 3

    Secv. 4

    Figura 4.8. Structura de control secvenial

    n cadrul acestei structuri de control, secvenele de instruciuni se execut una dup alta, n ordinea apariiei lor n program. Respectiv, se execut secvena de instruciuni notat cu 1, apoi secvena 2 i aa mai departe pn la ultima secven. Schema logic aferent acestui tip de secven este prezentat n figura 4.8.

    Structuri de control alternative Structurile de control alternative sunt determinate ntotdeauna de o operaie de decizie, prin aceasta specificndu-se calea de urmat n continuare. Structura de control alternativ bilateral

    Secv. 1

    Secv. 2 Secv. 3

    Secv. 4

    Cond.

    Figura 4.9. Structura de control alternativ bilateral

    97

  • Capitolul 4.

    Aceast structur de control este de codificat de instruciunea IF-THEN-ELSE, a crui mod de execuie este prezentat n figura 4.9.

    Modul de execuie este urmtorul: dup execuia secvenei de instruciuni notat cu 1, se testeaz condiia (notat Cond). n funcie de evaluarea acestei condiii (adevrat = TRUE, sau fals = FALSE), se va executa una (i numai una) din secvenele 2 sau 3, dup care se va continua cu execuia secvenei de instruciuni 4.. Practic, aceast structur permite excluderea uneia din cele dou secvene de instruciuni, funcie de rezultatul evalurii condiiei.

    Structura de control alternativ cu o ramur vid Structura de control bilateral este codificat de instruciunea IF-THEN.

    Secv. 1

    Secv. 2

    Secv. 4

    Cond.

    Figura 4.10. Structura bilateral cu o ramur vid

    Execuia acestui structuri este asemntoare cu cea anterioar, cu specificare c, nu exist o soluie alternativ. Respectiv, dup evaluarea condiiei, se execut secvena de instruciuni 2 i apoi secvena de instruciuni 4 sau direct secvena de instruciuni 4 (este exclus secvena de instruciuni 2). Structura de control alternativ generalizat

    Aceast structur de control este codificat de instruciunea CASE-OF. La execuia acestei structuri, dup execuia secvenei de instruciuni

    98

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    notate cu 0, se evalueaz valoarea variabilei notate cu i. Funcie de rezultatul acestei evaluri, de valoarea pe care o are i n acel moment, se va executa una din secvenele de instruciuni notate cu Secv.1, 2, ..., n. Dup execuia uneia din secvenele specificate anterior, execuia va continua cu Secv.n+1.

    Secv. 1 Secv. 2

    Secv. n+1

    Secv. n. . .

    i

    Secv. 0

    Figura 4.11. Structura de control alternativ generalizat La fel ca i n cazurile anterioare, se va executa doar una din secvenele notate cu Secv.1 n, celelalte fiind automat excluse.

    Structuri de control repetitive Utilizarea structurilor de control repetitive este impuse de situaiile n care un anumit proces (o secven de instruciuni), trebuie repetat, n mod identic, de mai multe ori. n acest fel se evit scrierea de mai multe ori a aceluiai set de instruciuni, care ar duce la o mriri nejustificat a schemei logice, respectiv a programului aferent. Structura de control repetitiv condiionat anterior Aceasta este o structur de tipul DO-WHILE, schema logic aferent fiind prezentat n figura 4.12. Modul de execuie este urmtorul: se execut secvena de instruciuni 1, dup care se testeaz condiia. Funcie de rezultatul evalurii condiiei, se execut secvena de instruciuni 2, ciclul relundu-se sau se trece la execuia secvenei de instruciuni 3. Specific acestei structuri de control este faptul c secvena de instruciuni 2 poate s nu se execute niciodat.

    99

  • Capitolul 4.

    Secv. 1

    Secv. 2

    Secv. 3

    Cond.

    Figura 4.12. Structura de control repetitiv condiionat anterior Structura de control repetitiv condiionat posterior Este o structur de tipul DO-UNTIL. n acest caz, se execut secvena de instruciuni 1, apoi secvena de instruciuni 2, dup care se evalueaz condiia. Funcie de rezultatul evalurii, se reia execuia secvenei 2, dup care se evalueaz din nou condiia i aa mai departe sau se trece la execuia secvenei de instruciuni 3.

    Secv. 1

    Secv. 2

    Secv. 3

    Cond.

    Figura 4.13. Structura de control repetitiv condiionat posterior

    100

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    Specific acestei instruciuni este faptul c secvena de instruciuni 2 se execut cel puin o dat, spre deosebire de cazul anterior. Structura de control repetitiv cu numr prestabilit de pai Este o structur de control de tipul DO-FOR. Specific acestui tip de structur (figura 4.14.) este definirea unei variabile, numit variabil ciclu (variabil contor), valoarea acesteia indicnd numrul de repetri ale ciclului.

    v = vi

    Secv. 1

    Incrementare/decrementare

    v cu pas k

    Cond.(v fa de vf )

    Secv. 2

    Figura 4.14. Structura de control repetitiv cu numr prestabilit de pai

    Ca i mod de parcurgere a acestei structuri, n primul rnd, dup executarea secvenei de instruciuni anterioare ciclului (nereprezentat n figur), se va iniializa valoarea variabilei ciclu (notat cu v), cu o valoare iniial, notat vi. Dup acesta, se execut secvena de instruciuni 1, aceasta fiind cea repetabil. La terminarea execuiei secvenei anterioare, variabila v se incrementeaz sau se decrementeaz cu un anumit pas, notat p. S-a utilizat noiunea de decrementare, echivalent cu incrementarea valorii variabile v cu un pas negativ. Dup incrementare/decrementare, se trece la evaluarea valorii variabile v, fa de o valoare final, notat vf, aceasta reprezentnd condiia de ieire din ciclu. n cazul ndeplinirii condiiei, se reia execuia secvenei 101

  • Capitolul 4.

    de instruciuni 1, ..., n caz contrar, continundu-se execuia cu secvena 2.

    Codificarea datelor Procedeul de reprezentare a informaiei conform unui anumit format

    poart denumirea de codificare. Necesitatea utilizrii codurilor se impune pentru a asigura

    comunicaia ntre utilizator i sistemul de calcul, avnd n vedere c utilizatorului i este specific gndirea zecimal i folosirea caracterelor alfabetului, n timp ce tehnica de calcul recunoate doar sistemul binar.

    Definiie: Se numete cod un set de simboluri elementare mpreun cu o serie de reguli potrivit crora se formeaz aceste simboluri.

    Codificarea reprezint procesul de stabilire a unui cod. Dac se noteaz cu X mulimea elementelor accesibile utilizatorului i cu Y mulimea caracterelor recepionate de sistemul de calcul, atunci codificarea reprezint asocierea fiecrui element Xi din mulimea X cu un element Yi din mulimea Y. Codul este astfel o funcie bijectiv f : X Y.

    Funcia invers f-1 : Y X este procesul de decodificare. Operaia de decodificare a datelor const deci n stabilirea unei corespondene biunivoce ntre elementele sistemului informaional: documente, operaii, produse, materiale etc. i o mulime de simboluri, cifre, litere, etc. Datele de codificat constituie vocabularul de intrare; simbolurile de reprezentare formeaz limbajul de codificare; rezultatele codificrii se concretizeaz n sisteme de coduri care semnific alfabetul de ieire.

    Operaia de codificare este prezent pe mai multe nivele de tratare a informaiilor. Ea este prezent pornind de la nivelul sczut al sistemului de calcul (hardware, software de baz) pn la nivelul codificrii n ansamblul sistemului informaional (coduri de materiale, coduri de produse, codul de bare, etc.).

    Desfurarea operaiilor de codificare presupune respectarea urmtoarelor principii:

    - adoptarea acelorai norme n determinarea vocabularului de intrare; folosirea unui limbaj de codificare accesibil astfel nct interpretarea alfabetului de ieire s se fac fr dificulti;

    - respectarea biunivocitii ntre vocabularul de intrare i limbajul de codificare;

    - previziunea evoluiei codurilor, care s asigure posibilitatea actualizrii sistemelor de coduri, fr perturbaii;

    - sistemele de coduri adoptate s fie sugestive n redarea legturilor

    102

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    dintre fenomene, procese i documente; - adaptarea codificrii n vederea prelucrrii informaiilor n sistemul

    de calcul. Procesul de codificare const n parcurgerea urmtoarelor activiti: 1. Stabilirea caracteristicilor generale ale codurilor, n care se

    urmrete: - determinarea vocabularului de intrare i a caracteristicilor acestuia; - analiza structurii informaiilor din vocabularul de intrare pentru

    fixarea structurii generale a codului; - determinarea alfabetului de ieire n funcie de mrimea

    vocabularului de intrare i de structura general a codurilor; - fixarea sistemelor de coduri astfel nct acestea s asigure

    maximum de uniformitate a codificrii. 2. Clasificarea elementelor vocabularului de intrare de la general la

    particular, pn la nivel elementar, cu respectarea normelor legale, astfel: - operaiile i documentele se grupeaz dup locul i rolul lor; - materialele dup natur, proprieti, mod de gestionare, etc. 3. Precizarea tehnologiei standard de codificare la care se preteaz

    fiecare clas de elemente din vocabularul de intrare; 4. Codificarea propriu-zis, prin stabilirea corespondenei ntre

    vocabularul de intrare i alfabetul de ieire; 5. Unificarea tehnologiei i atribuirea codurilor; 6. Actualizarea codurilor, care const n adugri de coduri pentru

    elementele noi i eliminri de coduri pentru elementele care nu se mai utilizeaz.

    Procedura de codificare, la nivelul sistemului informaional, este n mare parte la alegerea utilizatorului. Cu ct coborm spre nivelul elementar de prelucrare a informaiei, cu att sistemele de codificare sunt mai rigide, ele fiind standardizate din considerente de compatibilitate n utilizarea tehnicii electronice de calcul.

    Codurile alfanumerice sunt coduri binare utilizate pentru reprezentarea caracterelor alfanumeric. Prin caractere alfanumerice nelegem:

    - literele mari i mici ale alfabetului; - cifrele de la 0 la 9; - semnele de punctuaie; - operatorii aritmetici i de relaie; - alte caractere speciale. n general, prin caractere alfanumerice se neleg toate caracterele

    103

  • Capitolul 4.

    care pot fi introduse de la tastatura unui calculator. Numrul acestor caractere este mai mare dect 64 i, din acest motiv, pentru reprezentarea binar a caracterelor alfanumerice sunt necesare cel puin 7 poziii binare. Cum numrul de caractere de codificat este limitat i relativ redus, funcia de codificare alfa-numeric se definete tabelar.

    Din marea familie a codurilor alfanumerice le prezentm pe cele mai cunoscute:

    Codul EBCDIC (Extended Binary Coded decimal Interchange Code) este un cod alfa-numeric pe 8 bii, proiectat pentru codificarea informaiilor, la calculatoarele din seria IBM 360. Codul a fost utilizat pn prin anii 70.

    Codul ASCII (American Standard Code for Information Interchange) reprezint un standard actual de codificare alfa-numeric pe 7 bii. Este un cod alfa-numeric, cu recomandare ISO (International Standard Organization) i este utilizat de multe tipuri de calculatoare i de majoritatea echipamentelor periferice care lucreaz cu aceste calculatoare.

    Codul UNICODE. Este un cod alfa-numeric pe 16 bii care i propune s defineasc un cod standard pentru simbolurile alfa-numerice utilizate n toate rile lumii: litere, semne de punctuaie, semne monetare specifice tuturor limbilor de pe planet.

    Prin dezvoltarea sistemelor de coduri pe 7 i 8 bii, aa-numitele coduri pe octet, ctre coduri pe doi octei sau coduri DBCS (Duble-Bit Code System). S-a creat o familie de coduri care se dorete a fi unificat de sistemul de codificare UNICODE. nlocuirea codului ASCII cu UNICODE ar avea avantajul unificrii sistemului de codificare a caracterelor folosite oriunde n lume.

    4.6. NOIUNI DESPRE BAZE DE DATE O colecie de date, al crui coninut poate fi partajat de mai muli utilizatori i care este protejat i gestionat pentru a-i pstra valoarea i calitatea n timp se numete baz de date. O baz de date trebuie s ndeplineasc anumite cerine i anume:

    - timpi de cutare foarte scuri la interogrile (cutrile sau selectrile) din baza de date;

    - posibiliti de filtrare (dup diferite criterii) a informaiilor vitale pentru utilizatorii bazei de date;

    104

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    - consistena informaiilor, prin introducerea de constrngeri suplimentare pentru structurile de date utilizator;

    - securitatea deplin a datelor, prin introducerea de drepturi de acces individualizate n cadrul fiecrui post de lucru;

    - posibilitatea de salvare rapid i facil a informaiilor din baze de date, astfel nct, s se poat asigura restaurarea rapid n caz de avarie;

    - robusteea bazei de date, existnd practic riscuri minimale de corupere a informaiei stocate n structurile de date utilizate;

    - asigurarea unor structuri foarte flexibile i uor adaptabile, cu posibiliti de comunicare rapid a schimbrilor ce pot interveni ntr-un anumit punct de lucru.

    Utilizarea bazelor de date atrage dup sine o sum de beneficii, de exemplu:

    - micorarea timpului de obinere a unor situaii complexe, cumulative, referitoare la ncasri, pli, venituri, cheltuieli, etc.;

    - posibilitatea delimitrii foarte precise a datelor de tipuri de activiti, servicii, departamente;

    - posibilitatea urmririi veniturilor sau cheltuielilor, pn la cel mai mic nivel din cadrul oricrei activiti;

    - posibilitatea estimrii evoluiei unor anumii factori de rentabilitate (profit), ce pot fi obinui din baza de date i pot fi prelucrai prin intermediul unor instrumente specializate;

    - raportri concrete referitoare la clieni/furnizori/parteneri; - posibilitatea de pstrare, ntr-o manier securizat a datelor de

    istoric, cu opiuni de ncrcare i descrcare n i din baza de date; - realizarea legturilor cu aplicaii din cadrul sistemul integrat i chiar

    cu sisteme de aplicaii exterioare; - posibilitatea de comunicare a anumitor date, cu condiiile asigurrii

    deplinei confidenialiti, pe Intranet sau Internet; - comunicarea anumitor date de interes general, pe baz de parol de

    acces, printr-un WEB server. O baz de date este format din date despre entiti i despre relaiile dintre acestea. Entitile, atributele acestora i totalitatea relaiilor privite independent de modul n care sunt reprezentate i memorate pe un mediu de memorare formeaz baza de date logic, iar reprezentarea pe medii de memorare a entitilor, atributelor i a relaiilor dintre ele formeaz baza de date fizic. Baza de date logic va fi memorat ntr-o baz de date fizic. Entitatea este o noiune elementar, care desemneaz un obiect real sau abstract, bine determinat ca ntindere, importan, valoare i este

    105

  • Capitolul 4.

    definit prin ceea ce se cunoate despre ea. Proprietile care definesc o entitate se numesc atribute. O colecie de entiti avnd proprieti similare formeaz o clas de entiti. De exemplu calitatea de student al unei faculti constituie o clas de entiti, iar un student anume, o entitate. Calitatea de student este definit de anumite proprieti, cum ar fi:

    - nume; - prenume; - numr matricol; - data naterii; - domiciliul; - numrul grupei, etc. toate acestea reprezentnd atributele entitii de student.

    Gestionarea datelor include toate activitile care ne asigur c, datele de o calitate superioar, sunt disponibile pentru a produce informaia i cunotinele de care este nevoie. Implementarea efectiv a gestionrii datelor se constituie ntr-un sistem de gestiune a bazelor de date (SGBD). Un sistem de gestiune a bazelor de date este, n general un software, adic un ansamblu unitar de programe (uneori i hardware) special proiectat pentru a crea, proteja i gestiona bazele de date. Un sistem de gestiune a bazelor de date trebuie s asigure urmtoarele funciuni elementare, referitoare la bazele de date:

    - definirea bazei de date; - introducerea datelor (adugarea de noi date la baza de date); - modificarea unor date existente n baza de date; - tergerea unor date; - interogarea bazei de date (extragerea unor informaii stocate n

    baza de date). Aceast tehnic de extragere a datelor, adic interogarea lor, reprezint un limbaj neprocedural pentru interogarea bazelor de date, limbaj numit SQL (Structured Query Language Limbaj Structurat de Interogare).

    Implementarea unei baze de date nseamn transformarea unui model de date logic, ntr-o structur fizic.

    Bazele de date datorit dimensiunii lor mari, nu pot fi memorate n memoria intern, ci pe un mediu secundar. Unitatea de baz pentru transfer de date ntre mediul secundar i memoria intern este nregistrarea. n memoria intern este rezervat o zon numit buffer, prin care programele utilizator efectueaz transferul de date cu dispozitivul secundar de memorare. Pentru optimizarea accesului la nregistrri, se realizeaz

    106

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    gruparea nregistrrilor n blocuri. O colecie de blocuri gestionate mpreun formeaz un fiier.

    La proiectarea bazei de date se stabilesc cte cmpuri formeaz mpreun o nregistrare.

    Sistemul de gestiune a bazei de date apeleaz facilitile sistemului de operare, pentru a realiza operaii de intrare/ieire asupra datelor. Tipul de operaii necesare este funcie de structura (modul de organizare) fiierului. Fiierele de baze de date pot avea o organizare secvenial, relativ, sau indexat.

    Fiiere secveniale pot fi parcurse doar n ordinea fizic a nregistrrilor pe suportul de memorare. Pentru a pute fi parcurse alt ordine, fiierul trebuie sortat n funcie de valorile unor cmpuri, denumite chei de sortare.

    Fiiere relative utilizeaz valoarea unui cmp din nregistrare pentru a determina locaia fizic a acesteia n fiier. Adresarea direct se face prin intermediul unor tehnici complexe.

    Fiiere indexate combin tipurile de acces suportate de celelalte dou, nregistrrile fiind accesate secvenial sau direct, prin valoarea unui cmp cheie de acces.

    Baze de date relaionale

    Au nceput s fie intens utilizate n perioada anilor 80, modelul relaional al acestora fiind dezvoltat nc de la sfritul anilor 70, de ctre matematicianul Dr. E. F. Codd, angajat al IBM, care a ncercat astfel s rezolve neajunsurile din structurile bazelor de date ale vremii.

    Conceptul de baz al modelului relaional l constituie tabelul, care stocheaz ntreaga cantitate de informaie. Elementele tabelului sunt nregistrrile (rndurile orizontale) i cmpurile (coloanele verticale). Este de remarcat faptul c modul i locul n care sunt stocate tabelele n baza de date nu are nici o importan. Fiecare tabel poate fi identificat dup un nume unic, iar acest nume unic poate fi folosit de ctre baza de date pentru a gsi tabelul stocat n fundal. Ca i simplu utilizator nu va fi necesar cunoaterea numelui tabelului pentru a-l putea folosi i nici nu va trebui s tii complexitatea relaiilor prin care datele sunt stocate pe hard disk.

    Aceasta modalitate de lucru este diferit fa de modelele ierarhice i n reea, n care utilizatorul trebuia s aib viziunea de ansamblu asupra modului n care datele erau structurate n interiorul bazei de date, atunci

    107

  • Capitolul 4.

    cnd se dorete citirea, introducerea, actualizarea sau tergerea nregistrrilor din baza de date. Deci, ntrebarea care se pune este cum vor fi regsite nregistrrile ntr-o baz de date relaional, dac utilizatorul nu are o hart, asemenea ierarhiei definit prin pointeri. n modelul de baz de date relaional operaiile de manipulare a datelor se fac pe baza valorilor datelor. Astfel, dac dorim afiarea unui rnd dintr-un tabel de exemplu, aceasta se realizeaz prin compararea valorii stocate n acea coloan cu un criteriu de cutare.

    Acest procedeu de acces face ca modelul relaional s fie mult diferit i n acelai timp mult superior fa de modelele de baze de date anterioare fiindc este mult mai simplu de neles. Acesta este probabil principalul motiv al popularitii sistemului de baze de date relaionale n ziua de astzi. Un alt avantaj al sistemului de baze de date relaional ar fi c pune la dispoziia utilizatorului instrumente deosebit de folositoare n administrarea bazei de date. Tabele pot fi nu numai instrumentele de stocare a datelor, ci i instrumente de generare a meta datelor, date referitoare la tabelele i numele cmpurilor care descriu structura bazei de date, drepturile de acces la baza de date, reguli de validare i integritate a datelor. Astfel n cadrul modelului de baze de date relaional totul poate fi stocat n tabele. Aceasta nseamn c multe sisteme relaionale pot folosi operaii n mod recursiv pentru a furniza informaii despre baza de date. Cu alte cuvinte, un utilizator poate face interogri cu privire la numele tabelelor, drepturile de acces i date, rezultatele acestor interogri fiind prezentate utilizatorului sub form de tabele.

    Acest principiu face ca administrarea bazei de date s fie la fel de simpl ca i utilizarea.

    Folosirea bazelor de date n reele de calculatoare Odat cu rspndirea reelelor de calculatoare au fost dezvoltate

    diverse tehnici de comunicaie, de partajare a datelor, de utilizare n comun a diferitelor componente soft si hard. Dar, pentru reelele mari, cu sute sau chiar mii de tranzacii, exista inconvenientul duratei mari de rspuns datorat pe de o parte vitezelor relativ mici ale liniilor de comunicaie ntre calculatoare (chiar i cablurile optice permit o viteza sczut fa de viteza de procesare a computerelor), iar pe de alt parte volumului mare de date de pe aceste linii. Modelul Client-Server este o tehnologie ce vine s rezolve o serie de probleme aprute n utilizarea reelelor de calculatoare. Sunt sisteme informatice distribuite i reprezint un model n care mai multe

    108

  • Sisteme de numeraie. Elemente de logic matematic. Programare

    programe autonome comunic ntre ele. Aprute la grania dintre dou domenii aparent opuse din punctul de

    vedere al procesrii datelor (baze de date si reele de calculatoare) bazele de date distribuite se definesc ca o colecie de baze de date logic interconectate, distribuite peste o reea de calculatoare.

    Transformarea unui sistem centralizat de baze de date ntr-un sistem distribuit const n scindarea bazei de date n seciuni corespunztoare i repartizarea acestora n nodurile reelei. Alocarea partiiilor n nodurile unei reele ine cont de prima regul a distribuirii datelor, aceea c datele se vor distribui numai din motive de vitez. Plasarea datelor se face pe staia n care producerea i utilizarea este mai frecvent astfel nct s se minimizeze transportul de date prin reeaua de calculatoare.

    Utilizatorul nu trebuie s cunoasc modul de partiionare i distribuire a datelor. El lucreaz n acelai mod ca i o baz centralizat. Singurul lucru pe care l cunoate este schema conceptual a bazei de date.

    Sistemele moderne de gestiune a bazelor de date conin elemente de prelucrare paralel. Acest concept servete la reuniunea n cadrul aceleiai exploatri a prelucrrilor de rutin (interogri puin complicate, dar numeroase) cu prelucrrile decizionale (interogri complexe ale unui volum important de date). Un SGBD trebuie s realizeze mprirea unei interogri complexe n module executate pe mai multe procesoare i s dirijeze interogrile simple ctre procesorul de care sunt legate discurile purtnd informaia necesar interogrii respective. Obiectivele urmrite vizeaz creterea performanelor SGBD, att pentru activitatea tranzacional, ct i pentru cea decizional, n exploatarea bazelor de dimensiuni mari (Terrabytes).

    Sisteme de gestiune a bazelor de date

    Pentru gestiunea coleciilor de date organizate n baze de date s-au conceput programe specializate numite Sisteme de Gestiune a Bazelor de Date (SGBD). Un SGBD asigur n principal urmtoarele funcii: - descrierea bazei de date (a datelor; a relaiilor existente ntre acestea i a regulilor care permit s se menin integritatea bazei de date); - accesarea de ctre utilizatori a bazei de date (inclusiv accesarea din alte aplicaii, cum ar fi, spre exemplu, aplicaia EXCEL, sau din programe scrise n limbaje clasice, cum ar fi, spre exemplu, limbajul

    109

  • Capitolul 4.

    COBOL); - asigurarea confidenialitii datelor (pe baza mecanismelor de acordare i verificare a drepturilor de acces la baza de date). SGBD-urile pun la dispoziia utilizatorilor limbaje distincte pentru: - descrierea bazei de date (Limbaj de Descriere a Datelor - LDD); - utilizarea (manipularea) bazelor de date (Limbaj de Manipulare a Datelor - LMD). Limbajele de manipulare (interogare) a bazelor de date pot fi: - declarative, care permit utilizatorului s declare de ce informaii are nevoie (CE?); - procedurale, care oblig utilizatorul s descrie procedura de obinere a informaiilor (CUM?). Evoluia tehnologiilor informaionale face ca n prezent majoritatea SGBD-urilor: - s fie operaionale sub Windows; - s gestioneze date tradiionale, dar i date netradiionale (video, foto, imagine, etc.); - s permit lucrul n reea de calculatoare; - s pun la dispoziia utilizatorilor att limbaje declarative, ct i limbaje procedurale.

    110

    4.1. SISTEME DE NUMERAIEDate elementareDate structurate (structuri de date)4.4. ALGORITMI

    Limbajul logico-matematicSchema logic

    Limbajul de programareMetoda interpretriiMetoda compilrii

    Pentru rezolvarea unei probleme cu ajutorul calculatorului e4.5. STRUCTURI DE CONTROLCodificarea datelor

    4.6. NOIUNI DESPRE BAZE DE DATE