+ All Categories
Home > Documents > Rsp Uri Specialitatesrift12

Rsp Uri Specialitatesrift12

Date post: 09-Mar-2016
Category:
Upload: igor-cotos
View: 267 times
Download: 0 times
Share this document with a friend
Description:
Reaspunsuri la Teste Co si Co II Asem

of 72

Transcript

L I S T A

PROGRAMAREA CALCULATOARELOR Berzan Stefan1. Tipuri de date, operatori, conversii de date C/C++Un tip de date este precizat prin:

- o mulime finit de valori corespunztoare tipului (constantele tipului)

- o mulime de operatori prin care se prelucreaz valorile tipului

- o multime de restricii de utilizare a operatorilor.

De exemplu tipul ntreg (int) este definit prin:

- mulimea valorilor reprezentnd numere ntregi (ntre -32768 i 32767)

- mulimea operatorilor : +, -, *, /, %

- mulimea restriciilor: pentru operatorul / mpritorul nu poate fi 0, etc.

Tipurile pot fi tipuri fundamentale i tipuri derivate.

Tipurile fundamentale (predefinite) sau de baz sunt:

Tipul caracter (char)

Tipuri ntregi (int, short, long)

Tipuri reale (float, double, long double)

Tipul vid (void)

Tipurile enumerate (enum)

Tipurile caracter, ntreg, real i tipurile enumerate sunt tipuri aritmetice, deoarece valorile lor pot fi interpretate ca numere.

Tipurile caracter, ntreg i enumerrile sunt tipuri ntregi.

Tipurile derivate sunt construite pornind de la tipurile fundamentale. Tipurile derivate sunt:

tablourile

funciile

pointerii

referinele

structurile (sau nregistrrile)

uniunile (nregistrrile cu variante)

n cele ce urmeaz, vom nelege prin obiect, o zon de memorie.

Declararea unui obiect specific numai proprietile obiectului, fr a aloca memorie pentru acesta.

Definirea unui obiect specific proprietile obiectului i aloc memorie pentru obiect.

Declararea obiectelor ne permite referirea la obiecte care vor fi definite ulterior n acelai fiier sau n alte fiiere care conin pri ale programului.

Un operator este un simbol care arat ce operaii se execut asupra unor operanzi (termeni).

Un operand este o constant, o variabil, un nume de funcie sau o subexpresie a crei valoare este prelucrat direct de operator sau suport n prealabil o conversie de tip.

Operatorii, dup numrul de operanzi asupra crora se aplic pot fi: unari, binari i ternari.

n C exist 45 de operatori diferii dispui pe 15 niveluri de prioritate.

n funcie de tipul operanzilor asupra crora se aplic, operatorii pot fi: aritmetici, relaionali, binari, logici, etc.

Operatorii sunt mprii n clase de preceden (sau de prioritate). n fiecare clas de preceden este stabilit o regul de asociativitate, care indic ordinea de aplicare a operatorilor din clasa respectiv: de la stnga la dreapta sau de la dreapta la stnga.

O expresie este o combinaie de operanzi, separai ntre ei prin operatori; prin evaluarea unei expresii se obine o valoare rezultat.Tipul valorii rezultat depinde de tipul operanzilor i a operatorilor folosii.

Evaluarea unei expresii poate avea efecte laterale, manifestate prin modificarea valorii unor variabile.

Valorile pot fi convertite de la un tip la altul. Conversia poate fi implicit sau realizat n mod explicit de ctre programator (cast).2. Instruciuni C/C++Instructiuni in limbajul C

Limbajul C dispune de un set bogat de instruciuni care permit scrierea de programe structurate, programe flexibile, programe compacte. Ca o caracteristic sintactic toateinstruciunile limbajului se termin prin caracterul ;, excepie fcnd instruciunile care setermin cu acolada nchis.

INSTRUCIUNEA VID

Instruciunea vid se reduce la caracterul ;. Eanu are nici un efect. Adesea este nevoie de eala construcii n care se cereprezena unei instruciuni, dar nu este necesar s se execute nimicn punctul respectiv. Forma general: ;Sintaxa impune prezena unei instruciuni, dar logica problemei nu necesit nici o prelucrare. In acest mod se introduc unele relaxri n sintax.

INSTRUCIUNEAEXPRESIE

Instruciunea expresie se obine scriind puncti virgul dup o expresie, deci:

expresie;

Exist cazuri particulare aleinstruciunii expresie:

expresia de atribuire, care de altfel este cel mai important cazparticular al instruciunii

expresie: expresie;

Exemple:

a++;

scanf();

max=a>b ? a : b;

Instruciunea compus

Forma general:

{

declaraii

instruciune1;

instruciune2;

...

instruciune n;

}

Efect: Se execut in ordine instruciunile specificate.Observaii:

- Utilizarea instruciunilor compuse este necesar atunci cand sintaxa permite executara unei instruciuni ( if, for, do-while, while) care efectueaz mai multe operaii.

- Declaraiile care apar intr-o instruciune compus sunt locale instruciunii. Mai exact, ele sunt valabile numai in corpul instruciunii compuse, din momentul declarrii lor pan la sfaritul instruciunii.

3. Funcii n C/C++, definirea, prototip, apel, transmitere parametriFunctia clrscr() sterge ecranul. Ea nu are parametri. Functia are prototipul void clrscr(void); in fisierul .

Functia getch() citeste fara ecou un character de la intrarea standard direct in memorie, fara actionarea tastei enter. Functia nu are parametri. Functia are prototipul int getch(void); in fisierul .

Functia getche() citeste cu ecou un character de la intrarea standard. Functia are prototipul int getche(void); in fisierul .

Functia putch(e) scrie un character la iesirea standard. Ea are un singur parametru. Valoarea expresiei e determina imaginea extrasa. Functia are prototipul int putch(int c); in fisierul .

Function getchar() citeste cu ecou caractere ASCII de la intrarea standard intr-un tampon special pina la actionarea tastei Enter. La actionarea tastei Enter, ea revine cu valoarea codului caracterului current din tampon. Citirea caracterelor prin intermediul unui tampon ne da posibilitatea de a corecta erorile facute la tastare pina la apasarea tastei Enter. Functia are prototipul int getchar(void); in fisierul .

Functia putchar(e) scrie un character ASCII la iesirea standard. Ea revine cu valoarea codului caracterului extras sau cu valoarea -1, in caz de eroare. Functia are prototipul int putchar(int e); in fisierul .

Functia gets(s) citeste cu ecou de la intrarea standard un sir de caractere ASCII care se termina cu . Ea are un parametru valoarea caruia este adresa de inceput a zonei de memorie, unde se pastreaza sirul de caractere numit. Daca intilneste caracterul EOF functia revine cu valoarea 0. Functia are prototipul in fisierul .

Functia puts(s) scrie la iesirea standard un sir de caractere ASCII, care in memorie se termina cu caracterul NUL (\0). Ea are un parametru, valoarea caruia este valoarea de inceput a sirului de extras. Functia are prototipul in fisierul .

Functia printf(c, p1, p2) scrie la iesirea standard date sub controlul unor formate. Are unul sau mai multi parametri. De mentionat ca parametrii p1, p2, sunt prelucrati de la dreapta pre stinga, adica ultimul evaluat este p1. La apelul functiei printf() expresiile p1, p2 pn sunt evaluate in ordine inversa, adica de la dreapta spre stinga. Functia are prototipul in fisierul .

Functia scanf(c, p1, p2) citeste de la intrarea standard date sub controlul unor formate. Are mai multi parametric. De obicei, parametru c este un sir de caractere scris in ghilimele. Functia are prototipul in fisierul .

Functia exit(c) intrerupe executia programului. Parametrul c defineste starea programului in momentul apelului functiei. Functia are prototipul in fisierul si in fisierul .

4. Pointeri i tablouri n C/C++Un pointer este o variabila care contine adresa unei alte variabile. Pointerii sint foarte mult utilizati in C parte pentru ca uneori sint singura cale de rezolvare a unei anumite probleme, parte pentru ca folosirea lor duce la alcatuirea unui cod mai compact si mai eficient decit altul obtinut in alt mod. Tablou = succesiune de locaii de memorie recunoscute prin acelai identificator i prin poziia fiecreia n cadrul irului. Poziia este dat printr-un numr pozitiv numit index.In C, exista o relatie strinsa intre pointeri si tablouri, atit de strinsa incit pointerii si tablourile pot fi tratate simultan. Orice operatie care poate fi rezolvata prin indicierea tablourilor poate fi rezolvata si cu ajutorul pointerilor. Versiunea cu pointeri va fi in general, mai rapida. Declaratia int a[10] defineste un tablou de dimensiunea 10, care este un bloc de 10 obiecte consecutive numite a[0], a[1], ..., a[9] notatia a[i] desemneaza elementul deci pozitiile, ale tabloului, numarate de la inceputul acestuia. Daca pa este un pointer pe un interg, decalarat ca int *pa atunci asignarea pa = &a[0] face ca pa sa pointeze pe al "zero-ulea" element al tabloului a; aceasta inseamna ca pa contine adresa lui a[0]. Acum asignarea x = *pa va copia continutul lui a[0] in x. Daca pa pointeaza pe un element oarecare al lui a atunci prin definitie pa+1 pointeaza pe elemmentul urmator si in general pa-i pointeaza cu i elemente inaintea elementului pointat de pa iar pa+i pointeaza cu i elemente dupa elementul pointat de pa. Astfel, daca pa pointeaza pe a[0] *(pa + 1) refera continutul lui a[1], pa + i este adresa lui a[i] si *(pa+i) este continutul lui a[i]. Aceste remarci sint adevarate indiferent de tipul varaiabilelor din tabelul a. Definitia "adunarii unitatii la un pointer" si prin extensie, toata aritmetica pointerilor este de fapt calcularea prin lungimea in memorie a obiectului pointat. Astfel, in pa+i i este inmultit cu lungimea obiectelor pe care pointeaza pa inainte de a fi adunate la pa. Corespondenta intre indexare si aritmetica pointerilor este evident foarte strinsa. De fapt, referinta la un tablou este convertita de catre compilator intr-un pointer pe inceputul tabloului. Efectul este ca numele unui tablou este o expresie pointer. Aceasta are citeva implicatii utile. Din moment ce numele unui tablou este sinonim cu locatia elementului sau zero, asignarea pa = &a[0] poate fi scrisa si pa = a. Inca si mai surprinzator la prima vedere este faptul ca o referinta la a[i] poate fi scrisa si ca *(a+i). Evaluind pe a[i], C il converteste in *(a+i); cele doua forme sint echivalente. Aplicind operatorul & ambilor termeni ai acestei echivalente, rezulta ca &a[i] este identic cu a+i: a+i adresa elementului al i-lea in tabloul a. Reciproc: daca pa este un pointer el poate fi utilizat in expresii cu un indice pa[i] este identic cu *(pa+i). Pe scurt orice tablou si exprimare de indice pot fi scrise ca un pointer si offset si orice adresa chiar in aceeasi instructiune. Trebuie tinut seama de o diferenta ce exista intre numele tablou si un pointer. Un pointer este o variabila, astfel ca pa=a si pa++ sint operatii. Dar, un nume de tablou este o constanta, nu o variabila: constructii ca a=pa sau a++ sau p=&a sint interzise. Atunci cind se transmite un nume de tablou unei functii, ceea ce se transmite este locatia de inceput a tabloului. In cadrul functiei apelate acest fapt argument este o variabila ca oricare alta astfel incit un argument nume de tablou este un veritabil pointer, adica o variabila continind o adresa. Este posibila si transmiterea catre o functie doar a unei parti dintr-un tablou prin transmiterea unui pointer pe inceputul subtabloului. De exemplu, daca a este un tablou; f(&a[2]) si f(a + 2) ambele transmit functiei f adresa elementului a[2] deoarece &a[2] si a+2 sint expresii pointer care refera al treilea element al lui a. In cadrul lui f, declarea argumentului poate citi f(arr)int arr[]; {... }sauf(arr)int *arr; {...}Astfel, dupa cum a fost conceputa functia f faptul ca argumentul refera de fapt o parte a unui tablou mai mare nu are consecinte.5. Tipuri de date definite de utilizator n C/C++Limbajele de programare de nivel nalt ofera utilizatorului facilitati de a prelucra att datele singulare (izolate), ct si pe cele grupate. Un exemplu de grupare a datelor - de acelasi tip - l constituie tablourile. Datele predefinite si tablourile (prezentate n capitolele anterioare) nu sunt nsa suficiente. Informatia prelucrata n programe este organizata, n general n ansambluri de date, de diferite tipuri. Pentru a putea descrie aceste ansambluri (structuri) de date, limbajele de programare de nivel nalt permit programatorului sa-si defineascapropriile tipuri de date.

Limbajul C ofera posibilitati de definire a unor tipuri de date, cu ajutorul:

structurilor- permit gruparea unor obiecte (date) de tipuri diferite, referite printr-un nume comun;

cmpurilor de biti- membri ai unei structuri pentru care se aloca un grup de biti, n interiorul unui cuvnt de memorie;

uniunilor- permit utilizarea n comun a unei zone de memorie de catre mai multe obiecte de diferite tipuri;

declaratiilortypedef- asociaza nume tipurilor noi de date;

enumerarilor- sunt liste de identificatori cu valori constante, ntregi.

* Structuri = Structurile grupeaza date de tipuri diferite, constituind definitii ale unor noi tipuri de date. Componentele unei structuri se numescmembrii (cmpurile)structurii. La declararea unei structuri se pot preciza tipurile, identificatorii elementelor componente sinumele structurii.

Forma generala de declarare a unei structuri:

structidentificator_tip_structura lista_identificatori_variabile; n care:

structeste un cuvnt cheie (obligatoriu)

identificator_tip_structurareprezinta numele noului tip (poate lipsi)

lista_de_declaratii_membrieste o lista n care apar tipurile si identificatorii membrilor structurii

lista_identificatori_variabileeste o lista cu identificatorii variabilelor de tipul declarat.

*.Cimp de biti = Limbajul C ofera posibilitatea de prelucrare a datelor la nivel de bit. De multe ori se utilizeaza date care pot avea doar 2 valori (0 sau 1), cum ar fi datele pentru controlul unor dispozitive periferice, sau datele de valori mici. Declarnd aceste date de tipintsaushort int, n memorie se rezerva 16 biti. Alocarea unui numar att de mare de locatii de memorie nu este justificata, de aceea, limbajul C ofera posibilitatea declararii unor date pentru care sa se aloce un numar specificat de biti (alocare pe biti).

Definitie:Un sir de biti adiacenti formeaza uncmp de biti.

Cmpurile de biti se pot declara ca membri ai unei structuri, astfel:

struct identificator_tip_struct lista_identif_var_struct;

* Uniuni = Aceeasi zona de memorie poate fi utilizata pentru pastrarea unor obiecte (date) de diferite tipuri, prin declararea uniunilor. Uniunile sunt similare cu structurile, singura diferenta constnd n modul de memorare. Declararea uniunilor:unionidentificator_tip_uniune lista_identificatori_variabile;Spatiul de memorie alocat corespunde tipului membrului de dimensiune maxima. Tipul uniune foloseste aceeasi zona de memorie, care va contine informatii organizate n mai multe moduri, corespunzator tipurilor membrilor.

* Enumerari = Tipul enumerare asociaza fiecarui identificator o consatanta ntreaga. Sintaxa declaratiei:

enum identificator_tip_enumerare lista_identif_variabile;Din declaratie pot lipsi fieidentificator_tip_enumerare, fielista_identif_variabile. Pentru fiecare element al enumerarii, constanta poate fi asociata n mod explicit (ca n declaratia anterioara), fie implicit. n modul implicit nu se specifica nici o constanta, iar valoarea implicita este 0 pentru primul element, iar pentru restul elementelor, valoarea precedenta incrementata cu 1. Enumerarile se folosesc n situatiile n care variabilele pot avea un numar mic de valori ntregi, asociind un nume sugestiv pentru fiecare valoare.

6. Clase i obiecte n C/C++ ntr-un program se pot folosi att date de tipuri predefinite ct i date de tipuri definite de utilizator. Cu datele de tipuri predefinite se pot efectua un ir de operaii, care sunt i ele predefinite. Astfel, cu datele int x, y, a, b; se pot efectua operaiile predefinite pentru numere ntregi. Tipul utilizator definete

doar modul de reprezentare al datelor, dar nu i operaiile care pot fi efectuate cu aceste date. De aceea prelucrarea datelor de tipuri predefinite este mai simpl dect

prelucrarea datelor de tipuri definite de utilizator. Tipul utilizator nu stabilete nici-o legtur ntre reprezentarea datelor i operaiile asupra acestor date. Exemplu. Considerm tipul structur ce definete numerele complexe.

struct COMPLEX

{

double re;

double im;

};

Aici se definete reprezentarea numerelor complexe ca o pereche ordonat de numere double. Se pot defini variabile de acest tip: COMPLEX z, w; Aceast declaraie spune c z i w sunt compuse fiecare din 2 numere double.

Clasa este un tip abstract de date. Noiunea a aprut din necesitatea de ascundere a datelor n definii tipului abstract. Datele clasei pot fi protejate prin utilizarea modificatorilor de protecie.

Modificatori de protecie sunt public, private, protected. Pentru a aplica un aa modificator la o dat careva, se scrie numele modificatorului urmat de semnul : n faa declaraiei datei respective. De exemplu: private: int x; sau protected: int y, z; double w; Modificatorul public spune c data sau metoda respectiv nu este protejat i poate fi folosit fr restricii n tot programul. Modificatorul private permite utilizarea datei sau funciei respective doar funciilor membru ale clasei. Modificatorul protected permite utilizarea datelor doar funciilor membru

ale clasei i funciilor claselor derivate din clasa respectiv. Domeniul de aciune al unui modificator de protecie este din punctul unde a fost scris i pn la sfritul definiiei clasei sau pn la apariia altui modificator. Modificatorul private este implicit.

Aa, pentru tipul abstract complex, definit mai sus; putem declara variabile: complex z, w, *p, x[10]; Se pot declara variabile simple, pointeri, tablouri etc. Variabilele ale crui tip se definesc printr-o clas se numesc obiecte. Deci, un obiect este o variabil de tipul unei clase, de un tip

abstract de date. Despre obiecte se mai spune c ele sunt instanieri ale clasei respective. Aadar, z este o instan a clasei complex. Procesul de declaraie a variabilelor de

tipul unei clase se numete instaniere.

7. Supradefinirea operatorilor n C/C++

Functiile operator constituie un tip special de functii , care s-ar putea utiliza pentru redefinirea operatorilor de baza care apar in C. Un tip de clasa se poate defini impreuna cu un set de operatori asociati, obtinuti prin supraincarcarea operatorilor existenti. In acest fel, se efectueaza operatii specifice cu noul tip la fel de simplu ca in cazul tipurilor standard. Procedeul consta in definirea unei functii cu numele

operator < simbol >

De exemplu, se presupune definirea unei clase NrComplex, si se doreste supradefinirea operatorului de adunare, pentru adunarea a doua numere complexe. Functia operator+() trebue sa primeasca doi parametri de tipul NrComplex si sa returneze un rezultat de tip NrComplex, avand acces direct la datele membre ale clasei.

Exista 2 posibilitati de realizare: ca functie prietena a clasei NrComplex sau ca functie membra a clasei NrComplex.

Exemplu - supradefinirea operatorului + ca functie friend:

class NrComplex {

float real, imaginar;

public:

NrComplex(float r=0, float i=0);

friend NrComplex operator+(NrComplex, NrComplex); // operatorul suma definit ca

// functie prietena a clasei

};

NrComplex operator+ (NrComplex c1, NrComplex c2) {

NrComplex c;

c.real=c1.real+c2.real;

c.imaginar=c1.imaginar+c2.imaginar;

return c;

}

void main() {

NrComplex c1(1,2), c2(5,5), s;

s=c1+c2;

}

Expresia c1+c2 este interpretata de compilator ca un apel al functiei

operator+(c1,c2)

Exemplu - supradefinirea operatorului + ca functie membra:

class NrComplex {

float real, imaginar;

public:

NrComplex(float r=0, float i=0);

NrComplex operator+(NrComplex); // operatorul suma definit ca

// functie membra a clasei

};

NrComplex NrComplex::operator+ (NrComplex c2) {

NrComplex c;

c.real=real+c2.real;

c.imaginar=imaginar+c2.imaginar;

return c;

}

void main() {

NrComplex c1(1,2), c2(5,5), s;

s=c1+c2;

}

O functie membra primeste in mod implicit adresa obiectului pentru care este apelata. Functia operator+() va avea prototipul

NrComplex operator+(NrComplex);

Expresia c1+c2 este interpretata de compilator ca un apel al functiei:

c1.operator+(c2)

In acest caz, al supradefinirii operatorului + ca functie membru, datorita transferului implicit al primului operand, apare o asimetrie in definitia functiei operator+().

Mai apare si o alta restrictie impusa de functiile operator membre ale clasei: primul operand este intotdeauna de tipul clasa respectiv, deci solutia nu este adecvata daca primul operand trebuie sa fie de un alt tip.

Alte precizari privind supradefinirea operatorilor: Se pot supradefini in C++ numai operatori existenti, deci simbolul asociat functiei operator trebuie sa fie deja definit ca operator pentru tipurile standard (nu e permisa introducerea unor simboluri noi de operatori). De asemenea, nu se pot modifica pluralitatea (un operator unar nu poate fi supradefinit ca unul binar sau invers), precedenta, asociativitatea.

Functia operator trebuie sa aiba cel putin un parametru (implicit sau explicit) de tipul clasa caruia ii este asociat operatorul respectiv. Aceasta restrictie implica faptul ca supradefinirea operatorilor e posibila numai pentru tipurile clasa definite in program, pentru tipurile standard operatorii isi pastreaza definitia.

Functiile operator pot fi implementate ca si functii membre a clasei sau ca si functii prietene a clasei. In particular, pentru operatorii: = [] () -> functia operator trebuie sa fie membra a clasei.

In general, pentru un operator binar op, expresia x op y este interpretata:

x.operator op(y); // functie membru

sau

operator op(x,y); // functie friend

In general, pentru un operator unar op, expresiile x op sau op x se interpreteaza:

x.operator op(); // functie membru

sau

operator op(x); // functie friend

8. Principii OOP: incapsulare, instaniere, polimorfismProgramarea orientat obiect (programe cu noi tipuri ce integreaz att datele, ct i metodele asociate crerii, prelucrrii i distrugerii acestor date); se obin avantaje prin abstractizarea programrii (programul nu mai este o succesiune de prelucrri, ci un ansamblu de obiecte care prind via, au diverse proprieti, sunt capabile de aciuni specifice i care interacioneaz n cadrul programului); intervin tehnici noi privind instanierea, derivarea i polimorfismul tipurilor obiectuale.

Un program orientat spre obiecte (OO) consta dintr-un grup de obiecte care coopereaza, comunicand prin trimiteri de mesaje, pentru a indeplini un obiectiv comun. Fiecare obiect are o responsabilitate clara.

Un obiect este o constructie software care incapsuleaza (regrupeaza, protejeaza, si ofera controlul accesului) date, impreuna cu abilitatea de a utiliza sau modifica aceste data, intr-o entitate software.

Ce este incapsularea?

Incapsularea este principiul conform caruia o entitate software (in particular un obiect) trebuie sa aiba interfata complet separata de implementare. Toate datele si codul implementarii trebuie sa fie complet ascunse (hidden) in spatele interfetei.

Ideea este ca dupa crearea unei interfete (metodele publice ale unei clase), cat timp interfata ramane consistenta, aplicatia poate interactiona cu obiectele. Acest lucru ramane adevarat chiar daca rescriem in intregime codul scris intr-o metoda data.

Spunem c tipurile de date obiectuale respect principiul ncapsulrii. Astfel, programatorul ce utilizeaz un tip obiectual CONT (n banc) nu trebuie s poarte grija modului cum sunt reprezentate n memorie datele referitoare la un cont sau a algoritmului prin care se realizeaz actualizarea soldului conform operaiilor de depunere, extragere i aplicare a dobnzilor. EL va utiliza unul sau mai multe conturi (instane ale tipului CONT), accesnd proprietile i metodele din interfa, realizatorul tipului obiectual asumndu-i acele griji n momentul definirii tipului CONT.

Ce este mostenirea?

Pentru tipurile de date obiectuale class este posibil o operaie de extindere sau

specializare a comportamentului unei clase existente prin definirea unei clase noi ce

motenete datele i metodele clasei de baz, cu aceast ocazie putnd fi redefinii unii

membri existeni sau adugai unii membri noi. Operaia mai poart numele de derivare.

Clasa din care se motenetea se mai numete clas de baz sau superclas. Clasa

care motenete se numete subclas, clas derivat sau clas descendent.n contextul mecanismelor de motenire trebuie amintii modificatorii abstract i sealed

aplicai unei clase, modificatori ce oblig la i respectiv se opun procesului de derivare. Astfel, o

clas abstract trebuie obligatoriu derivat, deoarece direct din ea nu se pot obine obiecte

prin operaia de instaniere, n timp ce o clas sigilat (sealed) nu mai poate fi derivat (e un

fel de terminal n ierarhia claselor). O metod abstract este o metod pentru care nu este

definit o implementare, aceasta urmnd a fi realizat n clasele derivate din clasa curent4.

O metod sigilat nu mai poate fi redefinit n clasele derivate din clasa curent.

Ce este polomorfism?

Folosind o extensie a sensului etimologic, un obiect polimorfic este cel capabil s ia

diferite forme, s se afle n diferite stri, s aib comportamente diferite. Polimorfismul

obiectual5 (deoarece tot aspecte polimorfice mbrac i unele tehnici din programarea clasic sau tehnica suprancrcrcrii funciilor i operatorilor)se manifest n lucrul cu obiecte din clase aparinnd unei ierarhii de clase, unde, prin redefinirea unor date sau metode, se obin membri diferii avnd ns acelai nume. Astfel, n cazul unei referiri obiectuale, se pune problema stabilirii datei sau metodei referite. Comportamentul polimorfic este un element de flexibilitate care permite stabilirea contextual, n mod dinamic6, a membrului referit.

De exemplu, dac este definit clasa numit PIESA (de ah), cu metoda nestatic

muta(pozitie_initiala,pozitie_finala), atunci subclasele TURN i PION trebuie

s aib metoda muta definit n mod diferit (pentru a implementa maniera specific a

pionului de a captura o pies en passant7[ntr-o alt concepie, metoda muta poate fi implementat la nivelul clasei PIESA i redefinit la nivelul subclasei PION, pentru a particulariza acest tip de deplasare care captureaz piesa peste care trece pionul n diagonal.]). Atunci, pentru un obiect T, aparinnd claselor derivate din PIESA, referirea la metoda muta pare nedefinit. Totui mecanismele POO permit stabilirea, n momentul apelului, a clasei proxime creia i aparine obiectul T i apelarea metodei corespunztore (mutare de pion sau tur sau alt pies).

Pentru a permite acest mecanism, metodele care necesit o decizie contextual (n

momentul apelului), se decalr ca metode virtuale (cu modificatorul virtual).

O metod ne-virtual nu este polimorfic i, indiferent de clasa creia i aparine

obiectul, va fi invocat metoda din clasa de baz.BAZE DE DATE Cotelea Vitalie1. Noiunile Baz de Date, SGBD. Modelele logice de date: ierarhic, reea, relaional. Etapele de proiectare a unei baze de date. Algebra relaional. Interogri n algebra relaional.Baza de date: - la modul general, o colectie de date corelate intre ele, care se refera la un anumit aspect al realitatii si destinat unui grup de utilizatori; - intr-un mod mai precis, o colectie de date memorate pe suport electric.

O baza de date poate fi definita ca un ansamblu de date elementare sau structurate, accesibile unei comunitati de utilizatori. Mai concret, o baza de date, este un ansamblu de fisiere intercorelate, care contine nucleul de date necesare unui sistem informatic(aplicatie informatica).

O baz de date poate fi:

integrat;

partajat.

Prin integrat nelegem c baza de date poate fi gndit ca o unificare de mai multe fiiere de date, distincte i neredundante.

Prin partajarea unei baze de date se nelege c bucile individuale de date din baza de date pot fi partajate ntre mai muli utilizatori individuali, fiecare dintre ei putnd avea acces la aceeai bucat de date simultan (sisteme multiutilizator).

Hardul unui sistem de baze de date const din volumele de memorare secundare (discuri, dischete sau benzi magnetice) pe care rezid baza de date, mpreun cu aparatele, unitile de control i canalele respective.

ntre baza de date fizic (adic datele aa cum sunt ele memorate pe suport) i utilizatorii sistemului exist un nivel de software, numit sistem de gestionare a bazelor de date (DBMS Data Base Management System), care permite construirea unor baze de date, introducerea informaiilor n baza de date i dezvoltarea de aplicaii privind bazele de date.

Un DBMS d posibilitatea utilizatorului s aib acces la date folosind un limbaj de nivel nalt, apropiat de modul obinuit de exprimare, pentru a obine informaii, utilizatorul fcnd abstracie de algoritmii aplicai pentru selectarea datelor implicate i a modului de memorare a lor. DBMS-ul este deci o interfa ntre utilizator i sistemul de operare.

Un sistem de gestiune a bazelor de date constituie o interfata ntre utilizatori si BD, care permite n principal crearea, actualizarea si consultarea acesteia. n acest context putem defini SGBDul ca un instrument de asamblare, codificare, aranjare, protectie si regasire a datelor n BD.

Utilizatorii sistemelor de gestionare a bazelor de date (DBMS) se grupeaz n trei categorii:

a. programatorii de aplicaie (care scriu programele aplicaie n limbaje de programare: Cobol, C, etc.) sau n limbaje de programare specifice: dBase, FoxPro, etc.);

b. end-userii sau utilizatorii (care acceseaz baza de date de la un terminal, folosind un limbaj de interogare numit query language);

c. administratorii bazelor de date DBA (care stabilesc structura iniial a bazei de date i modul de memorare a datelor la nivel fizic, acord utilizatorilor drepturi de acces la baza de date sau pri ale ei, asigur securitatea datelor, modific structura i ntreine baza de date).

Exist trei categorii de modele de baze de date:

1. modelul relaional;

2. modelul reea;

3. modelul arborescent (ierarhic).

1. Modelul relaional

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

structura datelor prin definirea unor domenii (valori atomice) i a relaiilor n (atribute, tupluri, chei primare);

integrarea datelor prin impunerea unor restricii;

prelucrarea datelor prin operaii din algebra relaional sau calcul relaional.

Modelul relaional se bazeaz pe noiunea matematic de relaie (din teoria mulimilor) definit ca o submulime a produsului cartezian a unei liste finite de mulimi numite domenii. Elementele unei relaii se numesc tupluri (sau n-cupluri), iar numrul de domenii din produsul cartezian se numete arietatea relaiei (FOTACHE 1997, 102).

De obicei relaiile sunt reprezentate sub forma unor tabele n care fiecare rnd reprezint un tuplu i fiecare coloan reprezint valorile tuplurilor dintr-un domeniu dat al produsului cartezian.

n reprezentarea sub form de tabel a unei relaii, coloanelor i domeniilor corespunztoare lor, li se asociaz nume intitulate atribute. Mulimea numelor atributelor unei relaii se numete schem relaional.

Deci prin relaie se nelege o mulime de funcii definite pe o mulime de atribute cu valori n reuniunea unor domenii, cu restricia ca valoarea corespunztoare fiecrui atribut s se afle n domeniul asociat acelui atribut.

Se numete cheie candidat al unei relaii R coloana sau mulimea de coloane din R pentru care valorile corespunztoare din oricare dou tupluri nu coincid, deci identific tuplurile prin relaia respectiv i nu conin strict o submulime de coloane cu aceast proprietate. Pentru fiecare relaie se alege un candidat de cheie care se numete cheie primar a relaiei. Tuplurile unei relaii nu pot s conin valoarea nul n coloane ce aparin cheii primare. Eventualii candidai de chei diferii de cheia primar se numesc chei alternante. Se numete cheie strin o coloan sau o mulime de coloane a unei relaii R1 ale crei valori, dac nu sunt nule, coincid cu valori ale unei chei primare dintr-o relaie R, nu neaprat distinct de R1.

Mulimea tuturor schemelor relaionale corespunztoare unei aplicaii se numete schema bazei de date relaionale, iar coninutul curent al relaiilor, la un moment dat, se numete baz de date relaional.

n modelul relaional, entitile sunt reprezentate sub form de relaii n care schema relaional conine toate atributele entitii i fiecare tuplu al relaiei corespunde unui element al entitii.

Cele mai multe cereri ale unui utilizator privesc determinarea unor informaii cu anumite proprieti, iar rspunsul posibil este o relaie care descrie toate elementele cu aceste proprieti. Modul de prezentare al rspunsului depinde de interfaa dintre DBMS i utilizator.

2. Modelul reea

Modelul reea este cel mai apropiat de forma de reprezentare a bazelor de date sub forma diagramelor entitate-relaie. Deosebirea const n faptul c toate relaiile ce apar pot fi numai binare i de tipul 1:1 sau 1:N. Aceast restricie permite reprezentarea grafic a unei baze de date de tip reea sub forma unui graf direcionat numit reea.

ntr-o reea, nodurile corespund entitilor i relaiile sunt reprezentate prin sgei ntre noduri (de la tat la fiu) i anume sgei simple dac relaia este de tipul 1:1 i sgei duble dac relaia este de tipul 1:N.

n modelul reea, entitilor le corespund fiiere logice care au drept cmpuri atributele entitii i eventuale cmpuri de legtur pentru relaii. Fiecrui element al entitii i corespunde o nregistrare logic. Dac nregistrrile sunt identificate numai prin relaia cu alte entiti, atunci se mai adaug la nregistrarea logic nc un cmp ce cuprinde un numr de ordine care permite identificarea acestor nregistrri.

Operaiile cele mai frecvente pentru modelul reea se mpart n dou categorii:

cutarea unor elemente ale unor entiti cu anumite proprieti sau cutarea unor informaii prin utilizarea legturilor ntre entiti;

navigarea n reeaua de date.

3. Modelul ierarhic

Modelul ierarhic (arborescent) este considerat un caz particular al modelului reea, n care diagrama asociat este o pdure (mulime de arbori) i n care toate legturile sunt pe direcia drumului, de la rdcin la nodul fiu din relaie, toate relaiile fiind de tipul 1:N.

La fel ca n cazul celorlalte dou modele, exist posibilitatea interpretrii diagramelor entitate-relaie sub forma modelului ierarhic. Pentru evitarea redundanelor n modelul ierarhic, se folosete noiunea de element virtual, care nlocuiete dublura unui element prin adresa elementului respectiv, fiecare element aprnd n baza de date real o singur dat.

Operaiile din bazele de date de tip ierarhic se traduc n procese de parcurgere a arborilor. Elementele virtuale permit legarea informaiilor din aceeai entitate sau din entiti diferite.

Implementarea la nivel logic pentru modelul ierarhic poate fi cea utilizat pentru modelul reea sau prin nregistrri de lungime variabil.

Datele sunt stocate pe mediul extern n ordinea dat de parcurgerea n preordine a arborilor, ceea ce uureaz determinarea informaiilor pentru cererile care se refer la descendenii unor noduri printr-un numr mic de accese la mediul extern.

Metodele curente de proiectare a bazelor de date sunt in general divizate in trei etape separate:* Crearea schemei conceptuale * Crearea design-ului logic al bazei de date* Crearea design-ului fizic al bazei de date1.Crearea schemei conceptuale. Aceasta este un design de nivel inalt (incluzand relatiile dinte datele intregului sistem), care descrie datele si relatiile necesare pentru executia operatiilor necesare, fiind independent de orice model de baze de dare. Designul de la acest nivel este foarte general, se realizeaza intr-o perioada scurta de timp si precizeaza modul in care gruparile de date sunt integrate in sistemul de asamblu.2.Crearea design-ului logic al bazei de date. In aceasta faza schema conceptuala este transformata in structuri specifice unui anumit sistem de gestiune a bazei de date. La acest nivel designul este rafinat, sunt definite elementele de date specifice care sunt grupate in inregistrari. In cazul modelului rational, la sfarsitul acestei etape vom avea un numar de tabele care vor permite stocarea si manupularea corecta a tuturor datelor necesare sistemului.3.Crearea design-ului fizic al bazei de date. In aceasta etapa designul logic este transformat intr-o structura fizica eficienta.

Elemente de algebr relaional

Aa cum s-a afirmat anterior, algebra relaional este unul din cele dou limbaje formale de interogare ale modelului relaional. Algebra relaional ofer mijloace puternice de a construi relaii noi din alte relaii date. Atunci cnd relaiile date sunt reprezentate de informaii memorate, relaiile construite cu mijloacele algebrei pot fi rspunsuri la fraze de interogare asupra acestor informaii.

Orice algebr permite construirea de expresii prin aplicarea unor operatori asupra unor operanzi atomici sau asupra altor expresii algebrice. Adesea, pentru a grupa operatorii i operanzii sunt folosite paranteze.

n algebra relaional, operanzii sunt:

a) variabile, care reprezint relaii;

b) constante, care sunt relaii finite.

n algebra relaional clasic toi operanzii i toate rezultatele expresiilor sunt mulimi. Vom grupa operaiile din algebra relaional tradiional (sau clasic) n patru clase:

a) operaiunile specifice teoriei mulimilor (reuniune, intersecie, diferen), dar aplicate asupra relaiilor;

b) operaiunile care ndeprteaz pri ale unei relaii (selecie, proiecie);

c) operaiunile care combin tuplurile a dou relaii (produs cartezian, jonciune)

d) operaiunea prin care sunt atribuite nume noi atributelor relaiei i/sau relaiei.

O proprietate fundamental n algebra relaional const n faptul c fiecare operator accept nstanele unei (sau a dou) relaii n calitate de argumente i ntoarce ca rezultat o alt nstan de relaie. Aceast proprietate permite folosirea compus (compunerea) operatorilor pentru a forma fraze de interogare complexe. O astfel de fraz de interogare corespunde unei expresii algebrice relaionale, care se definete recursiv ca fiind o relaie, un operator algebric unar aplicat unei singure expresii, sau ca un operator algebric binar aplicat la dou expresii.

2. Componentele unei baze de date. Arhitectura ANSI/X3/SPARC. Utilizatorii bazelor de date. Nivele de abstracie.

O baz de date este alctuit din mai multe pri componente, pe care le vom numi obiecte ale bazei de date. Unele obiecte sunt folosite totdeauna (fr ele baza de date nu poate exista), iar altele pot fi utilizateocazional. Fiecare din aceste obiecte au funcii diferite, urmrind realizarea avantajelor prezentate mai sus, sau realizarea unei interfee cat mai agreabile pentru utilizator, astfel incat s uureze pe cat posibil lucrul cu baza de date.

Tabele-Sunt utilizate pentru a asigura funcia de stocare a informaiilor omogene in cadrul bazelor de date, fiind alctuite din randuri (inregistrri) i coloane (campuri). O baz de date trebuie s conin cel puin un tabel pentru a exista. Celelalte obiecte sunt opionale. Fiecare tabel reprezint o entitate, ceea ce nseamn o persoan, un loc, un lucru sau un eveniment care trebuie s fie reprezentat n baza de date, cum ar fi un client, un cont bancar sau o tranzacie bancar. Fiecare rnd al tabelului reprezint o

apariie a entitii. Interogri-Ofer posibilitatea cutrii i regsirii rapide a informaiilor stocate in tabele, prin chestionarea bazei de date. Ele pot fi comparate cu anumite intrebri care i se pun bazei de date i ca care aceasta trebuie s rspund.

Formulare-Sunt ferestre din ecranul calculatorului, care pot fi personalizate pentru a prezenta datele coninute in tabele sau interogri sub o form uor de ineles. Ele dau i posibilitatea actualizrii datelor din tabele, in sensul c orice modificare efectuat la nivelul lor adduce dup sine modificarea informaiilor stocate in tabele.

Rapoarte-Prezint datele din tabele sau interogri intr-o form care poate fi imprimat pe suport de hartie.

Pagini web-Un tip special de pagin web, destinat afirii cu ajutorul Internetului sau Intranetului a datelor coninute intr-o baz de date.

Macrocomenzi-Permit efectuarea unor sarcini de rutin, prin automatizarea acestora intr-o singur comand, care poate fi apelat mult mai uor de fiecare date cand este necesar.

Module-Sunt utilizate pentru automatizarea unor operaii, la fel ca i macrocomenzile, ins utilizeaz un limbaj de progamare pentru aceasta, ele fiind accesibile celor care dispun de cunotine de programare.

Toate aceste obiecte prezente in cadrul unei baze de date Microsoft Access pot fi utilizate impreun; uneori chair depind unele de altele. Ins impreun pot crea o aplicaie foarte bine structurat i care poate fi utilizat chiar la nivelul unor instituii mari.

Iar in bd relationale componentele sunt: Tabele

Relaiile reprezint asocierile dintre tabelele bazelor de date relaionale. Dei fiecare tabel relaional poate exista independent, esena bazelor de date este tocmai stocarea informaiilor ntre care exist legturi. De exemplu, pe lng filmele propriu-zise, se pot stoca i informaii despre categoriile de filme folosite in magazin. n acelai timp, putei stoca i informaii despre copiile fiecrui film, inclusiv data la care a fost primit copia i formatul acesteia, cum ar DVD. Relaiile de tipul 11 (unu la unu) care presupun c unui membru din colecia A i corespunde un singur membru din colecia B.

Relaiile de tipul 1m sau m1 (unu la muli sau muli la unu); Relaiile de tipul mm (muli la muli),Restrictii O restricie este o regul specificat pentru un obiect al bazei de date (de obicei, un tabel sau o coloan), avnd rolul de a limita ntr-un mod oarecare domeniul de valori permise pentru obiectul respectiv al bazei de date Restricia NOT NULL-impiedica folosirea valorii nule; Restricia cheie primar (primary key). Definit pe coloana (coloanele) cheie primar ale

unui tabel pentru a garanta c valorile cheie primar sunt ntotdeauna unice n ntreg tabelul. Restricia de unicitate (unique). Definit pe o coloan sau un set de coloane care trebuie s conin valori unice n cadrul tabelului.(deosebirea de cheia primara ca un table poate avea m multe restrictii de unicitate , si coloanele pot contine si valori nule)

Arhitectura ANSI/X3/SPARCArhitectura intern a unui sistem de BD conform standardului ANSI/X3/SPARC(standart american propus in 1975- American National Standards Institute, Standards Planning And Requirements Committee, is an abstract design standard for aDatabase Management System(DBMS), first proposed in 1975[1].) conine trei niveluri funcionale:intern, conceptual, extern.ntr-un sistem informatic ce utilizeaz baze de date, organizarea datelor poate fi analizat din

mai multe puncte de vedere i pe diferite niveluri. De obicei, abordarea se face pe trei niveluri: intern,

conceptual i extern

Nivelul intern(fizic) constituit din schema intern ce descrie structura de stocare fizic a datelor n BD, utiliznd un model al datelor fizice. La acest nivel se descriu detaliile complete ale stocrii i modul de acces la date. Acestadescriemodul n care datelesunt stocatenbaza de dateipehardware-ul computerului.Structura datelor este descris foarte detaliat, fiind accesibil numai specialitilor (ingineri de

sistem, programatori n limbaje de asamblare sau alte limbaje apropiate de main"). Cele dou pri

principale ale bazei la acest nivel sunt:

1. un set de programe care interacioneaz cu sistemul de operare pentru mbuntirea

managementului bazei de date;

2. fiierele stocate n memoria extern a calculatorului.

La acest nivel, structura bazei de date se concretizeaz n schema intern.

Nivelul conceptual (global) sau schema conceptual, descrie structura ntregii BD pt o cumunitate de utilizatori. La nivel conceptual se face o descriere complet a BD ascunzndu-se detaliile legate de stocarea fizic i detaliind descrierea entitilor, tipurilor de date, relaiile dintre ele i restriciile asociate si modul in care sunt inter-conexe.La acest nivel, structura bazei de date se concretizeaz n schema conceptual.

Nivelul extern sau nivelul vizual (utilizator), include o colecie de scheme externe ce descriu BD prin prisma diferiilor utilizatori.Acesta exclude date irelevante , precum si date pe care utilizatorul nu este autorizat sa le acceseze. Astfel, structura bazei de date se prezint sub diferite machete, referite uneori i ca subscheme, scheme externe sau imagini (view-uri), n funcie de nevoile fiecrui utilizator sau grup de

utilizatori. Obiectivularhitecturiicu trei niveleeste dea separaopiniautilizatorilor(e)dinbaza de datede lamodul n careacesta estereprezentatfizic.Acest lucru estede dorit, deoarece:Aceasta permitepersonalizatindependent deopiniileutilizatorilor:Fiecareutilizatortrebuie s aib posibilitateade aaccesaaceleai date,dar care au oviziune diferitpersonalizatdedate.Acestea ar trebui sfie independente:modificri launpunct de vedere nuar trebui s afectezealtele.Eaascundedetaliilefizicede stocarede lautilizatori:Utilizatorii nuar trebui sse ocupecu detaliifizicede stocarede baze de date.Acesteaar trebui sli se permit slucrezecudatele n sine,frpreocupare pentrumodul n caresunt stocate fizic.Administratorul bazei de datear trebui s fien msurde a schimbastructurilede baze de date, fr a afectaopiniileutilizatorilor:Din cnd nrationalisationsde timpsau alte modificrin structurade dateaunei organizaiiva finecesar.Structuraintern abazei de datenar trebui s fieafectat deschimbrila aspectelefizice alestocare:Deexemplu,o trecerela unnou disc.Administratorul bazei de datear trebui s fiecapabil de a schimbastructura conceptualsauglobal abazei de date, fr a afectautilizatorii:Acest lucruar trebui s fieposibil,pstrnd n acelai timpopiniileutilizatorilorindividualidorite.

Utilizatorii BD i rolurile lor.

neinformaticieni beneficiarii informaiei, nu tre s cunoasc structura BD, nu tre s programeze aplicaii, ci doar s le foloseasc prin intermediul unei interfee suficient de prietenoase.

informaticieni creaz structura BD i realizeaz procedurile complexe de exploatare a BD;

administratorul BD utilizator special, cu rol hotrtor n funcionarea optim a ntregului sistem..

Nivele de abstractieNivelul fizic de abstracie n BD. Abstractizare procesul de identificare a caracteristicilor distinctive a unei clase sau obiect fr a fi nevoie de a procesa toate informaiile referitoare la clas sau obiect. Fisiere:

-secventiale-sortate in ordinea cresterii cheii primare.Avem acces la instructiunea n daca am trecut prin instructiunea n-1.

-indexat secventiale-index este fisierul auxiliar anexat la cel de baza.Indexsii se construiesc pentru fiecare cheie secundara.Faciliteaza accesul.

-B-arbori-daca sint numai pointeri si nu date atunci se numesc B+-arbori

-tabele de dispersie(hash-table)fisiere cu acces direct.

Nivelul logic de abstracie n BD.

Modele de date:

-ierarhic

- Nod artificial

-retea programarea devine complicata

-relational(propus de Codd 1970) Modelul relaional prezint datele sub forma familiarelor tabele bidimensionale, similar cu o foaie de calcul tabelar Excel. Spre deosebire de o foaie de calcul tabelar, nu este obligatoriu ca datele s fie stocate ntr-o form tabelar, iar modelul permite i combinarea tabelelor (crearea uniunilor (joining), n terminologia relaional) pentru formarea vizualizrilor, care sunt prezentate tot ca tabele bidimensionale. Flexibilitatea extraordinar a bazelor de date relaionale este dat de posibilitatea de a folosi tabelele independent sau n combinaii, fr nici o ierarhie sau secven predefinit n care trebuie s se fac accesul la dateNivelul conceptual de abstracie n BD.

Schema conceptual - reprezentare a tuturor informatiilor continute de BD ntr-o form abstract. Ea reprezint o viziune, o vedere a datelor aa cum sunt ele n realitate, fr a tine cont de modul n care vede datele fiecare utilizator. Nivelul conceptual reprezint o vedere general a BD. Acest nivel descrie ce date sunt stocate n BD i relatiile dintre acestea. Pentru o BD exist o singur schem conceptual

La acest nivel se construieste schema conceptuala a BD.

Modele de date:

-entitatea asocierii.Elemente:entitati si asocieri intre entitati.Atribute(nume,prenume).UML-limbaj universal de modelare.

-retele semantice-model ce se foloseste in baze de cunostinte.

Nivelul de abstracie a viziunilor utilizatorilor n BD.

O vedere extern poate fi considerat ca fiind din punctul de vedere al utilizatorului individual continutul bd, adic ceea ce vede el din baza de date. Acest nivel descrie acea parte a bazei de date care este relevant pentru fiecare utilizator schema extern fiind format din multimea de sub-schemelor externe.3.Modelul relaional de date. Structura modelului. Constrngeri de integritate.

Modelul relational a fost primulexemplu de model de date formal propus de E. COdd in 1970 la centrul de cercetare din San Jose (California)in cadrul firmei IBM.Prin model datele sunt reprezentate si manipulate in mod abstract.M.deasemenea propune tehnici ce ajuta administratorul de a detecta si corecta posibilele probleme de corectare ce pot aparea o data cu pregatirea datelor pentru implementare intrun SGBD concret. Orice model de date conform sugestiei lui cod ,trebuie sa se bazeze pe 3 componente: structurile de date, constringerile de integritate si operatorii de manipulare a datelor.Structurile de date- sunt definite de un limbaj de definire a datelor (data definition language). Modul in care datele efectiv sunt stocate in baza. Elementele principale ale structurii relationale sunt relatiile,tuplurile,atributele,domeniile.

Manipularea datelor. Modul in care obtinem informatiile din bazele de date(ce presupune o serie de operatori aplicabili unei sau mai multor relatii)Relatiilor pot fi manipulate utilizind un limbaj de manipulare a datelor(data manipulation language). In modelul relational, liombajul foloseste operatorii relationali bazati pe conceptul algebrei relationale.

Constringerile de integritate. Prin integritatea datelor se subintelege ca datele ramin stabile in siguranta si corecte. Integritatea in modelul relational este mentinuta de constringeri interne care nu sunt cunoscute utilizatorului.

odelul relaional al datelor se poate defini printro serie de structuri de date (relaii alctuite din tupluri), operaii aplicate asupra structurilor de date (selecie, proiecie, jonciune etc.) i reguli deintegritate care s asigure consistena datelor (chei primare, restricii refereniale s.a.).La modul simplist, o baz dedate relaional (BDR)poate fi definit ca un ansamblu de relaii(tabele); fiecare tabel (sau tabel), alctuit din linii (tupluri), are un nume unic i este stocat pe suport extern (de obicei disc). La intersec

ia unei linii cu o coloan segsete o valoare atomic (elementar). O relaie conine informaii omogene legate de anumite entiti, procese, fenomene:CRI, STUDENI, LOCALITI, PERSONAL, FACTURI etc.

COnstringerile de integritate numite si restrictii(reguli) ce definesc cerintele pe care trebuie sa le satisfaca datele din bza de date pt a putea fi considerate corecte,coerente in raport cu lumea reala pe kare o reflecta.

Constringerile sunt princip mod de integrare a semanticii datelor in cadrul modelului relational.

Daca integritatea bazei de date nu este asigurata, adica nu sunt respectate constringerile de integritate,se spune ca baza de date este incosistenta.

Exista 5 tipuri de constringeri de integritate: Not null,unique, primary key,foreign key, check.Not null-specifica faptul ca un cimp nu poate avea valori necunoscute,nule

Unique-asigura ca valorile duplicate nu vor fi intorduse pt cimpurile specificate,insa pot avea valori nule.

Cheie primara-un cimp sau o multime de cimpuri care identifica inregistrarile unui tabel,si cimpul este cheie primara si nu poate contine valori duplicate. 1 tabel -1 singura cheie primara , celelalte sint secundare folosite pt facilitarea accesului la bd.

Cheie externa-un cimp sau o multime de cimpuri ce corespund cheii primare a altui tabelCheck-limiteaza valorile care pot fi luate de un cimp sau mai multe.In cazul actualizarii bazei de date, sistemul testeaza constringerea booleana care urmeaza dupa cuvintul Check.Daca constringerea redata de expresia logica ia valoarea adevar, actualizarea este acceptata.ex: se poate defini o constringere a domeniului de valori ale cimpului Salariu,stabilind salariu functionarilor intre valorile 136 si 10000. Salariu>=136,00 and Salariu = AVG(Salariu);

Tipuri de interogari cu subinterogariO subinterogare este o instructiune SELECT imbricat ntr-o instructiune SELECT, SELECT...INTO, INSERT...INTO, DELETE sau UPDATE, sau ntr-o alt subinterogare.

Utilizati predicatele ANY si SOME, care sunt sinonime, pentru a regsi nregistrri din interogarea principal, care satisfac comparatia cu orice nregistrri regsite n subinterogare. Urmtorul exemplu returneaz toate produsele al cror pret unitar este mai mare dect cel al oricrui produs vndut cu reducere de cel putin 25 de procente: SELECT * FROM Produse WHERE PretUnitar > ANY (SELECT PreUnitar FROM DetaliiComand WHERE Reducere >= .25);8.Componenta DML a limbajului SQL. Operaiile de actualizare a bazei de date.

Logic, comenzile limbajului SQL sunt mprite n trei componente:- limbajul de definire a datelor (Data Definition Language)- DDL;- limbajul de manipulare a datelor (Data Manipulation Language)- DML;- limbajul de control al datelor (Data Control Language)-DCL.Primul pentru crearea structurii de baz de date, al doilea, dup ce structura exist, pentru a aduga date n tabele i pentru a le manipula. A treia component ofer posibilitatea de a proteja (securiza) dateleLimbajul de manipulare a datelor (DML)estepartea de baza a SQL. Cnd doritisaadaugati, sa modificati sau sa stergeti date dintr-o baza de date, executati o comanda DML.

Comenzile de manipulare a datelor (DML): INSERT, UPDATE, DELETE i SELECT, utilizate pentru a introduce noi rnduri, pentru a schimba (actualiza) rndurile existente, pentru a terge rndurile nedorite din baza de date respectiv, i, n fine, SELECT - comanda cea mai utilizat, folosit pentru a cuta, a selecta nregistrri din tabel sau dintr-o combinaie de tabele ale bazei de date.

Operatii de actualizare a bd

Regulile de actualizare a bd fac parte din cele 3 componente ale modelului relational de date().Examinam cele 3 operatii de actualizare a datelor inserare datelor, stergerea datelor, modificarea datelor.

Sintaxa comenzii INSERT INSERT INTO tabel [(coloana[,coloana..])]

Values (valoare [,valoare..]);

Comenzii STerge Delete [FROM] tabel

[where conditie];

SQL> DELETe FROM departament

where

dname=developmentComanda actualizare prin UPDATE

UPDATE tabel

SET coloana = valoare[,coloana=valoare]

[WHEREconditie];

Ex: SQL>UPDATE EMP

SET deptno=20

WHERE epno=7768

9.Definirea drepturilor i permiselor de acces la baza de date n limbajul SQL. Construirea viziunilor.

Inainte de stabilirea drepturilor si permiselor asupra viziunilor sau altor obiecte ale unei bd pt un utilizator anumit,este necesar ca acest utilizator sa fie in lista de acces asupra serverului sau bd respective.Pt stabilirea permiselor se executa urmatorii pasi:In object explorer se extinde dosarul Views( in meniul de context se face un click pe optiunea Properties apare o fereastra cunoskuta , in partea stinga se alede optiunea Permission,-> pt adaugarea unui utilizator sau rol se apasa butonu search Va aparea o fereastra de dialog Select Users or role se apasa pe Browse si se alge rolul sau utilizatorul care va avea acces la viziunea data,apoi se confirma prin apasarea butonului Ok. Vor aparea utilizatorii care au acces la baza de date si prin User s of roles pot fi editate permisiunile de acces la bd prin comenzile limbajului de control a datelor.

Limbajul de control a datelor permite definirea i modificarea drepturilor asupra bazelor de date. Comenzile utilizate sunt:- GRANT pentru acordarea unor drepturi altor utilizatori asupra bazei de date;- REVOKE pentru anularea anumitor drepturi ale utilizatorilor. Construirea viziunilor

Sintaxa:

Create View [nume_schema.] nume_viziune [{coloana [,...n]}]

[with [,...n]]

As instructiune_select

[with check option] [;]

Create view exemplu2 As select producator,tip

From produse where Tip=PC

With Check Option;

instructiunea with check option presupune ca doar liniile care au Tip=PCpot fi inserate,actualizate sau sterse.Adic nici o instructiune DML nu poate sa utilizeze viziunea decit daca criteriul din clauza Where este satisfacut.

O viziune (VIEW) este un table virtual al carui continut este definit de o interogare.O V. poate fi create din unul sau mai multe tabele ale BD.

Viziunile sunt folosite pentru a concentra,simplifica si personalize fiecare patrundere a utilizatorului in BD.Ele pot fi folosite si ca mecanisme de securitate permitind utilizatorului sa acceseze date prin intermediului viziunilor,fara a acorda utilizatorilor permisiuni sa acceseze tabelele de baza direct.Viziunile pot fi deasemenea folosite atunci cind sunt copiate date din SQL server si pentru partajarea datelor.2 tipuri de creare a viziunilor:

Folosind instructiunea Create view a limbajului transact_sql

Folosind VEW Designer al componentei SQ server management studio.

Principii de creare a viziunilor:

O V. poate fi create numai in baza de data in uz.Totusi tabelele si viziunile ce se refera la o viziune noua pot exista in alte baze de date sau cjiar pe alte servere

Pot fi construite viziuni asupra altor viziuni sau procedure ce se refera la viziuni.Asupra V. nu pot fi construiti indecsi sau definiti indecsi full-text.

10.Declanatoarele n SQL. Gestionarea accesului concurenial la date. Prelucrarea tranzaciilorDeclansatoarele sunt o clasa speciala de proceduri stocate (este o multime de instructiuni care realizeaza o anumita operatie,cu alte cuvinte este un program in SQL) asociate unui tabel,definite pt a fi lansate in executie la initierea unui eveniment si sunt un inst6rument puternic pt implementarea aplicatiilor de bd. SQL server ofera 3 tipuri de declansatoare DML,DDL,LogonDML sunt lansate in bd cind are loc un eveniment al limbajului de manipulare a datelor folosind instruciunile INSERT, UPdate,DELET care actualizeaza datele unui tabel sau viziuni, creaza mecanisme de validare care implica cautari in m multe tabele,testeaza erorile si le trateaza.

DDL se utilizeaza pt controlul evenimentelor la nivel de bd sau la nivel de server, se utilizeaza cind se cere orice modificare a schemei bd, cind se cere inregistrarea modificarilor sau evenimentelor care au avut loc in bd. Nu sunt lansate ca raspuns la instructiunile de tipul UPDATE,INSERT,DELETE, in schimb sunt lansate de varietatea de instructiuni de definire a datelor care incep cu CREATE ,ALTER, DROP.LoGON sunt proceduri stocate care se lanseaza ca raspuns la un eveniment LOGON. Acest eveniment apare atunci cind este stabilita o sesiune utilizator cu o instanta SQL Server. Declansatoarele LOGON se lanseaza dupa ce faza de autentificare a logarii este in final, dar inainte de stabilirea sesiunii utilizatorului.Declansatoarele Logon nu se lanseaza daca autentificarea esueaza.

Ex: se prezinta un declansator DML care genereaza un mesaj de informare. IN acest declansator se specifica faptul ca pt tabelul furnizor la includerea unei inregistrati noi,va fi generat un mesaj: o noua inregistrare a fost inclusa cu succes. Cu acest scop dupa clauza AS se scrie comanda PRINT si mesajul respectiv.Use calculatore;

Go

If Object_Id (inregistrare_noua, TR) is not null

Drop trigger inregistrare_noua;

Go

Create trigger inregistrare_nou On furnizor

After INSERT

AS PRINT O noua inregistrare a fost inclusa cu succes;

Go

GO Independent de structura instructiunilor care se utilizeaza de acum inainte intotdeauna cind va fi utilizata instructiunea INSERT asupra tabelului furnizor va fi afisat mesajul o noua inregistrare a fost inclusa cu succes

TELEINFORMATICA Bolun Ion1. Reele de transport date.Def: structura topologica- totalitatea nodurilor si legaturilor intre acestea. Exista diverse struct.topologice folosite in retele de transfer date din care pot fi evidentiate 5 topologii majore, fiecare din acestea este extremala dupa un anumit criteriu:1.Stea-nod centru la care sunt conectate toate celelate noduri;cea mai simpla, dar si cea m.putin fiabila; la caderea nod central, reteaua se desfiinteaza complet, devenind isolate toate nodurile.2.Arbore-asigura cea mai mica lugime sumara a canalelor, deci este cea mai ieftina, dar este putin fiabila; la caderea unui nod, reteaua se divizeaza in m.multe fragmente.3.Inel-prevede 2 leg.si doar 2 pt fiecare nod; asigura cea m.mica lung sumara a canalelor la respectarea conditiei privind existenta a cel putin 2 cai independente intre orisice pereche de noduri(indep. Daca acestea nu contin elemente commune,noduri, canale, cu exceptia nodurilor sursa si destinatar).4.Completa-presupune leg directe intre toate perchile de noduri, este cea mai fiabila dar sic ea mai scumpa, se foloseste uneori pt retele magistrale de nivel superior.5.Plasa-prevede cel putin 2 leg pt fiecare nod; cea mai folosita topologie pt retele magistrale.in ultimii ani retele magistrale bioptica se construiesc conform topologiei multiinel, intrun inel pina la 10noduri.

Comutarea, multiplexarea si concentrarea circuitelor- procedee de reducere a costurilor cu canalele de comunicatie. Comutarea: n noduri; daca nu folosim comutator:N1=n(n-1)/2 canale, M=0; daca instalam un comutator: N2=n, M=1.

Multiplexarea: separarea m.multor canale de comunicatie in cadrul unei linii.separarea poate fi in frecventa-FDM sau in timp-TDM.

Multipl. In timp-prevede oferirea intregii latimi de banda a liniei fiecaruia din canale dar pe rind.Realizarea acestui lucru folosind un comutator.

Ex: Cablu coaxial: F=100MHz-latimea de banda, tb de separta canale vocale: F0=3400-300Hz=3100Hz; banda de protectie: Fpr=900Hz. =>pt un canal vocal: F1=4000Hz.

N=100*106/4*103=25*103-25000 canale intrun cablu coaxial.

Multiplexarea fibrei optice 40Gbps, canale-64Kbps=> N=40Gbps/64Kbps=0.6*106.

Concentrarea canalelor.

Retele cu comutarea de canale.folosesc in calitate de noduri de comunicatie comutatoarele de canale.pt a efectua transmisia de date intre statiile A si B mai intii intre acestea se formeaza un canal via nodurile de comunicatie.Acest canal este unul temporar pe durata transmisiei de date, ulterior el este desfiintat, eliberind resursele respective. Avantaje: simplitate; posibilitatea transmisiei de traffic izocron(cu viteza const. in timp).Dezavantaje: 1.la folosirea unor noduri de com. Neelectronice se cere timp semnificativ pt stabilirea conexiunii;2. in cazul unor canale analogice calitatea joasa a acestora;3. incarcarea joasa a canalelor pina la 10-20%;4. aceleasi viteze de transmisie pe intreg traseu.

Ex. De retele cu comutare de canale:reteaua telefonica traditionala, reteaua ISDN.

Retele cu comutare de mesaje. Folosesc in calitate de noduri de comunicatie comutatoarele de mesaje, pt a transmite un msg de la A la B mai intii msg se transmite la nodul adiacent.acest nod receptioneaza msg, il inscrie in memorie, determina canalul de iesire, il inregistreaza in firul de asteptare catre acest canal si cind ii vine rindul il transmite mai departe.in acelasi mod msg este transmis de la nod la nod pina ajunge la destinatar. Avantaje: 1.incarcarea inalta a canalelor, pina la 80-90% si m.mult;2. pot fi viteze diferite in diferite canale punct-la-punct; 3.nu se cere timp pt stabilirea conexiunii A-B. Dezavantaje: 1.de regula nu este posibil dialogul; 2. se cere memorie la noduri pt pastrarea temporara a msg de transit; 3.se introduce inf.suplimentara(de serviciu) in fiecare msg-creste traficul de date.

Retele cu comutare de pachete. Folosesc in calitate de noduri de com.comutatoarele de pachete. Pt a transmite un msg de la A la B mai intii msg este impartit in segmente, la fiecare adauginduse antet si sfirsit si se obtine un pachet.fiecare pachet se transmite prin retea la fel ca transmiterea unui msg printro retea cu comutare de msg. Exista 2 realizari ale comutarii de pachete: 1.metoda DATA GRAMA-prevede determinarea canalelor de iesire la noduri independent de alte pachete ale aceluiasi msg. Se poate intimpla ca pachete diferite sa urmeze prin retea cai diferite astfel pachetele pot sosi la destinatar intro alta ordine, de aceea fiecare pachet contine informatie de ordine in msg.la destinatar din pachete aparte se inlatura inf de serviciu si se asambleaza msg.metoda este operative, flexibila darn u prea sigura.2.Metoda cu circuite virtuale- prevede transmiterea tuturor pachetelor aceluiasi msg pe unul si acelasi traseu, denumit circuit virtual.Metoda este mai sigura, dar mai putin flexibila.

Reele cu difuzare de pachete se caracterizeaz prin folosirea unui singur canal de Transfer date. Toate staiile se conecteaz la acest canal. Deoarece este un singur canal n reea n fiecare moment de timp se transmite un singur semnal, astfel transmite o singur statie, iar toate celelalte pot doar receptiona aceste date.

Prima reea de difuzare o reea real- Aloha, construit n 1971 de ctre Universitatea din Gonolulul.

Principala problem cost n determinarea creia din staii ce doresc s transmit date de oferit resursele unicului canal. Problema se rezolv de ctre metoda de acces la mediu. Metoda data a fost propusa tot de Aloha , si aceasta metod a fost la baza metodei CSMA/CD propusa n 1973 pe reele locale Ethernet. Majoritatea tehnologiilor pentru reele locale sunt cu difuzare de pachete.

Clasificarea retelelor de calculatoare:

a) dupa destinatie:

-retele corporative (de firma, corporatie)

-retele publice( prestarea serviciilor altor organizatii, persoane)

b)dupa aria de cuprindere:

-retele de arie larga(WAN)-arie de acoperire nelimitata.

-retele regionale (RAN)-aria unei regiuni, zone~100km

-retele metropolitane (MAN)-aria unui oras~50km

-retele locale (LAN)citiva km

-retele personale(PAN)citiva zeci de metri.

-retele de corp (BAN)citiva metri.

c)dupa tehnologia de operare:

-TCP/IP

-X.25

-Frame Relay

-ISDN, ATM,MPLS

2. Reele locale de calculatoare.Se numete local reeaua ce cuprinde aria unei cldiri sau a ctorva cldiri

nvecinate, asemenea reele se deosebesc nu doar prin aria de cuprindere, ci ndeosebi prin tehnologiile de reea folosite. Asemenea sunt mult mai simple comparativ cu cele pentru reele de arie larg.

Prima reea local a fost ETHERNET, construit n 1973 de ctre fima XEROX n statul Aloalta(SUA) propus de Robert ...

Reeaua folosete ca mediu de transmisie cablul coaxial gros ETHERNET. ntr-o reea pot fi pna la 100 de staii. Viteza de transmisie 2,94 Mbs. Metoda de acces la mediu CSMA/CD(acces multiplu cu controluri purttoare i detecia coleziunii = CARIER SENSE MULTIPLE ACCESS WITH COLOSION DETECTION). Ulterior au fost propuse i multe alte tehnologii de reele locale de exemplu: ARCNET (firma DataPoint Corp) 1977, TOKEN RING -1985, astzi deosebesc 4 generaii de reele locale:

I Generaie(1973) de reele se caracterizeaz prin viteze de transmisie de pn la 10-20 Mbps.

Ca mediu de transmisie se folosesc firele torsadate, cablul coaxial, i mai rar firele optice.

Topologiile folosite : magistral, stea, arbore i inel.

Reprezentani: ETHERNET, ARCNET, TOKEN RING.

Tehnica de access la mediu folosit este CSMA/CD, jeton/inel, jeton/magistral.

II Generaie(1988) cu FDDI. Particulariti:

Viteza de transmisie: 100 mbps.

Mediu de transmisie: fire torsadate, fibr optic mai rar cablul coaxial.

Metode de access la mediu sunt extinse cu metoda containere/inel : SLOTTED RING.

Topologiile se completeaz cu topologia dublu inel.Reprezentani: FDDI, CDDI, FastEthernet, DQDB, 100VGAnyLan.

III Generaie(1996) - GigabitEthernet se caracterizeaz prin:

Viteza de transmisie de la fute de Mbps pn la 4 Gbps.

Mediu de transmisie: fibra optic, firele torsadate, cablul coaxial.

Reprezentani: FFOL, LATM, Gigabit Token Ring, Gigabit Fiber Chanel.

IV Generaie (2002) cu 10 GigabitEthernet.

Viteza de transmisie 10-40 Gbps.

Mediu de transmisie: fibra optic, fire torsadate, cablu coaxial.

Se preconizeaz pentru 2010 a V Generaie - 100 GigabitEthernet la Institutul IEEE.

n prezent tehnologia Ethernet sau i alte tehnologii LAN conforme standardului IEEE 802.3 opereaz la viteze de peste 10 Mbit/s. Aceasta este rata de transfer teoretic maxim. IEEE are ns proiecte de dezvoltare a standardelor de 40 i chiar 100 Gbit/s.

Primele retele Fast Ethernet, cunoscute si ca 100Base-T sau 100Base-X, au fost create in 1993. Ele sunt o dezvoltare a specificatiei 10base-T Ethernet si asigura o viteza de transfer date de 100 Mbps, iar daca se implimenteaza si tehnologia Full Duplex Ethernet 200 Mbps. Tehnologia 100Base-T poate fi usor implimentata in mediul Ethernet existent. Retelele pivot 100base-T pot fi utiizate pentru integrarea si dezvoltarea retelelor Ethernet din prima generatie.Sistemul de cablare 100Base-t poate fi realizat pe baza de cablu torsadat neecranat UTP de Categoria 3,4 sau 5, cablu ecranat STP sau cablu optic (100Base FX).In statiile retelei pot fi instalate pachete de interfata autoadaptabile 10/100 Mbps, ce permit operarea cu viteza de 100 Mbps sau 10 mbps, la alegere, folosind cablajul existent. Acest lucru, precum si posibilitatea comutatoarelor 100Base-t de a opera la viteze de 10 si 100 Mbps, faciliteaza esential integrarea in retelele 100Base-T a mijloacelor de retea 10Base-t, trecerea de la 10Base-T la 100Base-T.Medoda de acces este CSMA/CD(acces multiplu pina la 4canale).La FastEthernet pot fi cel mult 2 concentratoare,exista 2 categorii:universale(pot avea porturi de orce tip)si specializate(pot avea doar porturitsau porturiTX,FX.

Retelele Gigabit Ethernet se bazeaza pe o tehnologie Ethernet avansata, elaborata incepind cu anul 1996 pentru viteze de transfer date de 1 Gbps. Standardele respective sunt finisate in 1998, desi in 1997-1998 sunt implementate mai multe retele si diverse echipamente, inclusiv integrind retele locale de ganeratia 1 si 2.Standartele prevad urmatoarele specificatii:-1000Base T pentru cablu torsadat de categoria5,unde lungimea max a unui segment este de 100m;-1000Base-CX pentru cablu coaxial,unde lungimea max a unui segment este de 25m;-1000Base-SX,1000Base-LX pentru cablu optic cu lungime de unda scurta si lungime de unda lunga,unde lungimea max a unui segment este de 316m.In afara de aceasta in retelele GigaEthernet se mai pot folosi doar un repetor astfel la folosirea repetorului se poate obtine o retea cu segmente mixte.Agregarea legaturilor folosind un concentrator putem lega pina la 4conexiuni;folosirea metodei dublex-se folosesc p/u stocarea de date:SAN;in retelele metropolitane(se cer pina la zeci de km).

FDDI-construita in98.Lungimea sumara maxima e/e de 200km la nr.max de statii in retea-500{19,79}.Tehnologia FDDI originala denumita si FDDI-I e/e orintata la transmisia de date prin mediul de transport in mod pachet:transmisia unei secvente de pachete cu limitarea duratei de transmisie in timpul unei sesiuni,determ.de capturarea si apoi detinerea jetonului.Acesta tehnologie nu este adecvata pentru aplicatii multimedia,video si chiar audio,care cer asigurarea transmiterii unui traffic izocron-mentinera unei rate de transfer de date continue si constante intre nodurile respective ale retelei pe durata transmiterii intregului mesaj.Retele FDDI nu sau afirmat prea rapid pe piata din cauza costurilor ridicate.in primul rind al mediului de fibra optica.FDDI II este o extensia a FDD-I ea mentine serviciul de comutare pachete,gestionat prin tehnicajeton de controlal FDD-I,si ofera un serviciu de comutare circuite de 100Mbps.Capacitatea max a unui circuit comutat pote fi 6,144Mbps,iar nr.max de circuite comutate a cite 6,144Mbs este6

Tehnologia 10GigaEthernet este o dezvoltare a GigabitEthernet la viteza de operare 10Gbps,acesta prevede operarea in regimul dublex si deacea nu necesita folosirea protocolului de acces la mediu CSMA/CD.specificatii:10000Base T;10000Base F;10000Base CX4.Fibre optice are7 semniramificari,cablu coaxial,fire torsadate doar 1 specificatie,metoda de acces CSMA/CD,tehnologia poate fi utilzata si in retelele de arie larga in functie de specificatie,cel mai mare cablu de fir 40km,tehnologia e/e compatibila cu celelalte 3 tehnologii Ethernet,GigaEtherne..pot fi pina la 4 canale.Se foloseste pe larg in retelele SAN.Retelele 10GigaEthernet sunt de la 1 septembrie 2008 relativ scumpe

Retele locale TokenRing prima retea lansata e/e in 1996,topologia este inel fizic,metoda de acces la mediul jeton,mediul de transmisie fire torsadate,STPType1,1A,numarul max de statii 256,in cadrul placii de retea functioneaza retele electronice care realizeaa ocolirea statiei deconectate .Echipamente speciale num.MAU MSAU.La TokenRing initial a fost implimentat metoda pe jeton,cu viteza de lukru de 4Mbps de institutul IEEE 802.5.Specificatii;pentru Ethernet-802.3,p/uFastEthenet-802.34,GigaEthernet-802.37,10GigaEthernet-802.3ae.Ulterior IBM a implimentat metoda jeton pe inel cu eliberare rapida viteza-10Mbps nu e/e standartizata de IEEE.In generatia 2 Tokenring nu are dezvoltare.In 2001 e/e aprobata standartizarea p/u GigabitTokenRing ambele tehnologii functioneaza eficient in sisteme de calcul IBM.(SNA,AIX,MUS)-in generatia 4 nu are dezvoltare.x Ethernet relizata de compania Xerox 1973.Specificatii:10Base-5(cablu coaxial,lungime max 500m);10Base-2(coaxial,lung.max 185);10Base-T(cablu cu fire torsadate,lungime max100m);10Base-F(cablu optic).

Topologia (structura) unei reele rezult din modul de conectare a elementelor reelei ntre ele. Ea determin i traseul concret pe care circul informaia n reea "de la A la B". Principalele tipuri de topologii pentru reelele LAN sunt:topologia Bus (nseamn magistral) - are o fiabilitate sporit i o vitez mare de transmisie;topologia Ring (inel) - permite ca toate staiile conectate s aib drepturi i funciuni egale;topologia Star (stea) - ofer o vitez mare de comunicaie, fiind destinat aplicaiilor n timp real.Reelele mai mari prezint o topologie format dintr-o combinaie a acestor trei tipuri.

3. Asigurarea veridicitii transportului de date n reele.Canalele de comunicatie functioneaza intr-un anumit mediu si sunt influentate de acesta. Influenta mediului modifica caracteristicile semnalelor de date transmise prin canal. In acest caz devine mai dificila valorificarea parametrilor initiali ai semnalelor la destinatie. Asemenea influente se numesc perturbatii.

In functie de modul de influenta asupra semnalului, perturbatiile se divizeaza in additive si multiplicative, iar dupa forma in armonice, in impulsuri si de fluctuatie. Perturbatii additive prezinta procese stohastice, care se suprapun semnalului ce se transmite. Exista perturbatii additive concentrate dupa frecventa (armonice), concentrate in timp (in impulsuri) si de fluctuatie.

Perturbatii multiplicative se prezinta in forma de modificari stohastice ale caracteristicilor canalului de comunicatie. Cauza ale perturbatiilor pot fi: descarcari electrice, statii emise radio, linii de tensiune inalta, contacte necalitative in echipamente, intreruperi de scurta durata in linii, zgomot de incalzire, influenta reciproca a canalelor in liniile de comunicatii etc.

Transmisia de date fara erori in intervalul stabilit de timp este numita veridicitate. Deseori veridicitatea transmisiei este joasa si se cere aplicarea unor masuri speciale de asigurare a veridicitatii necesare a transmisiei de date. Exista 2 categorii de metode de imbunatatire a veridicitatii transmisiei:

Imbunatatirea indicilor calitativi ai canalului de comunicatie, in baza inlaturarii cauzelor aparitiei erorilor sau a includerii in componenta canalului a unor echipamente suplimentare, care ar diminua influenta perturbatiilor

Introducerea de redundanta in mesajul transmis

La metode din prima categorie se refera metodele de receptie cu protectie la erori a elementelor unitare, bazate pe alegerea nivelului semnalului, a raportului semnal/zgomot, a latimii de banda a canalului, pe statica erorilor in canal s.a.

Metode din categoria a doua se bazeaza pe detectarea si corectarea erorilor prin introducerea artificiala de redundanta in mesajul de transmis.

4. Modelele arhitecturale de reea OSI ISO i TCP/IP.Modelul de referinta OSI (ISO) PENTRU RETELELE MARIIn incercarea de standardizare a protocoalelor de comunicatie, ISO a fost propus de catre Organizatia Inter-nationala pentru Standardizare un model de retea, structurat pe sapte niveluri ierarhice model cunoscut sub numele de modelul de referinta ISO pentru interconectarea sistemelor deschise sau, mai pe scurt, modelul de referinta OSI (ISO) . Prin sisteme deschise [Open System (OS)] se inteleg sisteme care fac publice conceptul si toate detaliile lor de implementare, permitand atasarea de noi entitati care ii respecta regulile (deci extinderea sa cu usurinta) dar si participarea specialistilor la perfectionarea sa.

Numarul de 7 niveluri pentru modelul de referinta OSI (ISO) a fost stabilit (prin negocieri al caror rezultat nu a intrunit o adeziune generala) avand in vedere urmatoarele considerente:

un numar prea mic de niveluri implica necesitatea gruparii unui numar excesiv de functii (servicii) intr-un acelasi nivel, rolul fiecarui nivel ne mai fiind astfel clar definit;

un numar prea mare de niveluri obliga la existenta unui numar mare de interfete intre ele, complicand excesiv circulatia informatiei utile in retea.

Modelul de referinta OSI conceput pentru WAN nu reprezinta un adevarat model de arhitectura de retea, caci el nu descrie exact serviciile si protocoalele ce trebuie utilizate la fiecare nivel, ci doar sarcinile pe care ar trebui sa le indeplineasca fiecare din ele; este drept ca CCITT a emis recomandari iar ISO a elaborat standarde internationale pentru protocoalele si serviciile de la toate nivelurile, dar ele nu fac parte din modelul propriu-zis. In cele ce urmeaza, prezentam succint rolul fiecarui nivel ierarhic al modelului de referinta OSI (ISO).

Nivelul fizic [physical layer] reprezinta interfata calculatorului sau terminalului cu canalul fizic / mediul de transmisie. Are sarcina de a transmite siruri de biti, convertindu-le in semnale care sa poata fi transmise eficient pe canalul fizic dintre doua IMP - in cadrul WAN - sau intre doua statii - in cadrul LAN.. Problemele ce trebuie rezolvate la acest nivel sunt de natura electrica, mecanica, procedurala si functionala. I Nivelul fizic (1) controleaza transmisia efectiva pe un anume mediu fizic in cadrul WAN pe fiecare tronson [hop] (legatura directa intre doua noduri) al unei cai.

Nivelul legaturii de date: Sarcina principala a nivelului legaturii de date [data link layer] este de a transforma un mijloc primar de transmitere a sirurilor de biti (adica ceea ce ofera legatura fizica controlata de nivelul ierarhic 1 al retelei) intr-un veritabil canal virtual de transmitere a informatiilor, fiabil si fara erori, pus la dispozitia nivelului 3 pentru fiecare tronson de pe o cale de comunicatie dintre doi utilizatori in cazul WAN facand ca o conexiune de nivel 3 sa fie insensibila fata de mediul si modul fizic de transmisie. In acest scop, la nivelul legaturii de date se indeplinesc urmatoarele functii: Stabileste adresele fizice (hard) ale dispozitivelor - calculatoare, terminale sau IMP - din retea; Fragmenteaza informatia primita de la nivelul 3 in unitati de informatie numite cadre / blocuri (de ordinul sutelor de octeti / baiti), pe care le transmite secvential. Solutioneaza problema alterarii sau chiar distrugerii cadrelor (din cauza perturbatiilor la care este supus canalul fizic).

Nivelul legaturii de date are misiunea transmiterea fara erori pe fiecare tronson al unui traseu, in cazul WAN a cadrelor, indiferent de mediul de transmisie utilizat.

Nivelul de retea [network layer] numit si nivelul subretelei de comunicatie controleaza operatiile din subretea, creand, mentinand cat este necesar si apoi intrerupand o conexiune virtuala pentru nivelul 4 intre utilizatorii finali.

Nivelul de retea (3) raspunde, in principal, de alegerea traseelor mesajelor intre utilizatorii finali si modificarea acestora fie in sensul asigurarii unor cai optime, fie pentru rezolvarea unor situatii anormale in sub-retea.

Nivelul de transport este primul dintre nivelurile de tip sursa-destinatie (OD) (spre diferenta de primele trei, la care protocoalele se desfasurau doar intre doua IMP de la capetele unui tronson de linie fizica dintr-o WAN) si cel care separa nivelurile orientate pe aplicatii (nivelurile 5, 6 si 7) - menite sa asigure livrarea corecta a datelor intre calculatoarele interlocutoare - de cele destinate operarii subretelei (nivelurile 1, 2 si 3) - responsabile cu vehicularea mesajelor prin retea (si care pot suferi modificari de implementare fara a influenta nivelurile superioare). In esenta, nivelul 4 preia informatia de la nivelul 5, o descompune, daca e necesar, in unitati mai mici (TPDU), si o trece nivelului 3, asigurand sosirea ei in forma corecta la destinatar.

Nivelul de sesiune reprezinta (daca ignoram nivelul 6 , care executa mai degraba anumite transformari ale informatiei) adevarata interfata a utilizatorului cu reteaua: cu acest nivel negociaza utilizatorul (un proces, uneori o persoana) pentru stabilirea unei conexiuni cu un (proces sau o persoana de la un) alt calculator, conexiune ce permite nu numai un transport de date (ca la nivelul 4), ci si furnizarea unor servicii deosebite, utile pentru anumite aplicatii (ca, de exemplu, conectarea/atasarea de la distanta, prin intermediul retelei, a unui utilizator la un calculator lucrand multiprogramat sau transferul unui fisier intre doua calculatoare).Deci acest nivel are rolul de a stabili o sesiune intre utilizatorioperatie numita uneori si stabilirea unei legaturi si de a administra (prin serviciile oferite) dialogul intre entitatile pereche de la nivelul 6.

Nivelul 5 determinaa cine este interlocutorul si stabileste comunicatia intre aplicatii, coordonand si sincronizand dialogul.

Nivelul de prezentare: Spre diferenta de primele cinci niveluri, care aveau sarcina de a transfera corect si fiabil unitati de informatie dintr-un loc in altul al retelei, nivelul de prezentare [presentation layer] se ocupa de semantica si sintaxa informatiilor transmise, facand conversiile de coduri de reprezentare a datelor numerice, sirurilor de caractere si comenzilor, precum si conversiile de formate ale fisierelor de la reprezentarea utilizata intr-un calculator la cea standardizata pentru retea si, in final, la cea utilizata in calculatorul interlocutor (reprezentare ce poate fi diferita de cea din primul calculator) oferind astfel coerenta informatiilor pe care programele de aplicatii le schimba intre ele sau la care se refera in cursul dialogului lor si, totodata, o independenta a utilizatorilor fata de caracteristicile eterogene ale echipamentelor.

Nivelul de aplicatie [application layer] ofera utilizatorilor (mai exact, programelor de aplicatii ale acestora) posibilitatea de acces la retea, cu toate seviciile pe carea aceasta i le poate furniza. Aici se face selectia serviciilor in functie de necesarul de comunicatie al aplicatiilor si se hotaraste multimea mesajelor permise, ca si actiunea intreprinsa la receptionarea fiecaruia din ele.

Standardele de servicii si protocoale ,elaborate de ISO pentru nivelul 7 al modelului de referinta OSI sunt numeroase si se inscriu in doua categorii:

A) Standarde utilizate in diferite aplicatii,

B) Standarde specifice anumitor tipuri de aplicatii.

Nivelul 7 permite accesul utilizatorilor la retea si selecteaza serviciile de comunicatie pentru aplicatiile care sunt destinate a rula in retea.

* Observatie: Desi, dupa cum am mentionat, notiunea de arhitectura a retelelor de calculatoare nu face referiri la modul de implementare a ei, este cazul sa mentionam urmatoarele:

Nivelurile 5, 6 si 7 sunt implementate in calculatoarele din WAN , adeseori in cadrul sistemului de operare al retelei [network operating system (NOS)].

Nivelul 4 este implementat adeseori printr-o parte a NOS ce se numeste statie de transport [transport station].

Nivelul 3 este implementat, de regula, in calculatoare si in IMP, printr-un program de interfatare ce asigura functionarea hardului [driver].

Nivelul 2 este implementat prin soft si partial prin hard. Nivelul 1 este implementat doar prin hard.

2 - Modelul TCP/IP pentru arhitectura inter-retelelor de calculatoare

Principiile si ideile ce stau la baza tehnologiei internet au rezultat din cercetarile Agentiei pentru Proiecte de Cercetare Avansate - Advanced Research Projects Agency (ARPA). Aceasta tehnologie include un set de standarde ce precizeaza detaliile privind modul in care calculatoarele comunica, precum si un set de conventii pentru interconectarea retelelor si dirijarea traficului. Numita oficial suita de protocoale internet TCP/IP [TCP/IP Internet Protocol Suite] - dupa numele celor doua principale standarde ale sale -, aceasta tehnologie poate fi utilizata pentru a comunica in orice multime de retele interconectate. Astfel, unele intreprinderi utilizeaza TCP-IP pentru a interconecta toate retelele din intreprindere, chiar daca nici una din ele nu are conexiune cu vreo retea exterioara; alte grupuri utilizeaza TCP/IP pentru comunicatia intre utilizatori aflati la distante geografice foarte mari.

Tehnologia TCP/IP formeaza baza pentru o internet la scara globala ce conecteaza universitati, intreprinderi industriale si comerciale, institutii guvernamentale, locuinte personale, etc. Printre cei care au participat la fondarea si utilizarea unei inter-retele globale bazate pe protocoalele TCP/IP - inter-retea desemnata prin termenul de Internet *) - se numara National Science Foundation (NSF), Department of Energy (DOE), Department of Defense (DOD), Health and Human Services Agency (HHS) si National Aeronautics and Space Administration (NASA) - toate din S.U.A. Aceasta inter-retea globala mai este cunoscuta si sub denumirile de ARPA/NSF Internet, TCP/IP Internet sau Internet globala. Ea a demonstrat viabilitatea tehnologiei TCP/IP si faptul ca aceasta permite interconectarea de retele de calculatoare bazate pe tehnologii eterogene.

Structura unei internet, vazuta ca mai multe retele fizice interconectate prin intermediul unor rutere, creaza o imagine inselatoare a conceptului de internet, intrucat atentia cea mai mare trebuie indreptata catre interfata pe care o internet o ofera utilizatorilor si nu catre tehnologia de interconectare. Un utilizator considera o internet drept o unica retea virtuala ce interconecteaza toate calculatoarele si prin care este posibila comunicatia; structura aferenta este mascata, dar mei ales irelevanta. Intr-un anumit sens, o internet este o abstractizare a retelelor fizice, intrucat, la niuvelul ei cel mai de jos, ea furnizeaza aceleasi functiuni ca o retea fizica: accepta pachete si le trimite. Nivelurile superioare ale software-ului de internet sunt cele ce contribuie cel mai mult la functionalitatea bogata perceputa de utilizatori.

Ca si modelul de referinta OSI-ISO, modelul arhitectural (conceptual) al software-ului unei internet bazate pe protocoalele TCP/IP este organizat pe niveluri ierarhice.

Dar acest model nu a provenit de la vreun organism de standardizare, ci a rezultat din cercetarile care au condus la suita (stiva) de protocoale TCP/IP.

In linii mari, suita de protocoale TCP/IP este organizata pe 5 niveluri conceptuale construite peste un nivel hardware.5. Tehnologii de reea de arie larg.Primele reele de calculatoare construite au fost reelele de arie larg. De regul reelele de arie larg sunt cu comunicaii comutate, utiliznd


Recommended