Servere de Baze de Date

SERVERE DE BAZE DE DATE

MANUAL UNIVERSITAR

CUVÂNT ÎNAINTE

Provocările din societatea contemporană impun existența unor sisteme electronice de calcul performante în cadrul fiecărei organizații. Nevoia de decizii rapide, asistate de calculator, impune prelucrarea unor volume mari de date, constituite în baze de date. Datele unei organizații trebuie să fie disponibile în timp util și în deplină siguranță persoanelor autorizate să le acceseze. Un rol important în asigurarea acestor deziderate îl are serverul de baze de date din rețeaua organizației. Numărul serverelor și al rețelelor (subrețelelor) poate să difere de la o organizație la alta, scopul însă este același – asigurarea cerințelor informaționale ale utilizatorilor.

Lucrarea de față se dorește a fi un ghid pentru înțelegerea noțiunilor legate de rețele de calculatoare, sisteme de operare într-o rețea de calculatoare, baze de date, servere de baze de date, securitate etc. Ne vom adresa în primul rând studenților care doresc să instaleze și să exploateze baze de date Oracle și PostgreSQL. Am ales aceste două baze de date deoarece Oracle este liderul în domeniu, iar PostgreSQL este open source.

Conștienți că lucrarea poate fi îmbunătățită, mulțumim anticipat tuturor celor care vor oferi sugestii în acest sens și îi asigurăm că vor fi incluse într-o ediție viitoare mai amplă.

Adresăm mulțumiri referenților științifici și editurii care ne-au acordat girul și sprijinul în publicarea acestei ediții.

Cu deosebit respect pentru cititori,

Autorul

CUPRINS

Tema

Sisteme de operare și rețele de calculatoare

1.1. Sisteme de operare

1.1.1. Sistemul de operare – rol, funcții și structură

1.1.2. Sistemele de operare Windows

1.1.3. Sistemele de operare UNIX/Linux

1.2. Rețele de calculatoare

1.2.1. Interconectarea calculatoarelor

1.2.2. Clasificarea rețelelor

1.2.3. Topologia rețelelor

1.2.4. Tehnici și protocoale de transmisie în rețea

1.2.5. Internet

1.2.6. Intranet

Tema

Baze de date – concepte, proiectare și securitate

2.1. Baze de date și sisteme de gestiune a bazelor de date – concepte

2.2. Proiectarea, realizarea și securitatea bazelor de date

2.3. Data warehouse și Data mining

Tema

Servere de Baze de date

3.1. Alegerea serverului

3.2. Instalare și configurare server

3.2.1. Instalare Oracle pe platforme Windows

3.2.2. Instalare Oracle pe platforme Linux 1

3.2.3. Instalare PostgreSQL pe platforme Windows

3.2.4. Instalare PostgreSQL pe platforme Linux

3.3. Instalare clienți și unelte de gestiune și dezvoltare

Tema 4

Administrarea și securitatea serverului de Baze de date

4.1. Administrarea serverului și a conturilor utilizatorilor

4.2. Auditarea utilizării bazei de date

4.3. Pierderi de date. Operații de backup și restore

Bibliografie

Tema 1

Sisteme de operare și rețele de calculatoare

1.1. Sisteme de operare

1.1.1. Sistemul de operare – rol, funcții și structură

1.1.2. Sistemele de operare Windows

1.1.3. Sistemele de operare UNIX/Linux

1.2. Rețele de calculatoare

1.2.1. Interconectarea calculatoarelor

1.2.2. Clasificarea rețelelor

1.2.3. Topologia rețelelor

1.2.4. Tehnici și protocoale de transmisie în rețea

1.2.5. Internet

1.2.6. Intranet

1.1. Sisteme de operare

1.1.1. Sistemul de operare – rol, funcții și structură

Un sistem electronic de calcul este format dintr-un ansamblu de componente fizice, un ansamblu de componente logice și resurse informaționale. Componentele fizice sunt denumite în literatura de specialitate și componente hardware, deoarece proiectarea acestora este considerată ca fiind mai dificilă, în timp ce componenta logică a căpătat denumirea de componentă software, realizarea acesteia fiind considerată mai puțin dificilă.

Componentele logice pot fi împărțite în două mari categorii:

componentele logice de bază;

componentele logice de aplicații.

Componentele logice de bază sunt programe specifice absolut necesare funcționării unui sistem de calcul. În această categorie intră sistemul de operare. Fără această componentă fizică – mașinăria – nu ar putea să funcționeze.

Componentele logice de aplicații sunt programe specifice dedicate rezolvării sarcinilor specifice. Un sistem de operare nu va putea să rezolve alte sarcini, decât cele de bază, pentru care a fost proiectat. Nici nu ar avea cum să rezolve toate sarcinile care pot apărea în cadrul unei organizații. Cu atât mai mult să rezolve toate sarcinile care pot să apară în diferite organizații. Acestea sunt rezolvate de către programele dedicate. Componentele sistemului de operare sunt prezentate schematic în figura 1.1.

Figura 1.1. Componentele sistemului de calcul

Toate componentele unui sistem electronic de calcul trebuie să comunice între ele pentru a realiza sarcinile impuse și, de asemenea, să interacționeze cu utilizatorii.

Un sistem de operare este un set (ansamblu) de programe specializate care asigură legătura funcțională între părțile (unitățile) componente ale unui sistem de calcul și permite utilizatorilor să folosească eficient resursele sistemului de calcul (fizice, logice și informaționale).

În literatura de specialitate se folosește acronimul OS (Operating System) sau SO (Sistem de Operare) pentru a defini această componentă a sistemului de calcul.

Ca organizare, un sistem de operare are la bază două niveluri, nivelul fizic și nivelul logic (Figura 1.2.).

Figura 1.2. Organizarea sistemului de operare

Nivelul fizic asigură legătura cu partea de hardware printr-un sistem complex de întreruperi ce semnalizează anumite evenimente din sistem și dă controlul unor rutine de pe nivelul logic, în scopul tratării acestora și al informării utilizatorului despre cauzele care le-au generat.

Nivelul logic asigură legătura cu utilizatorul, interacționând cu acesta prin următoarele elemente:

– comenzi specifice pentru executarea anumitor subfuncții ale sistemului de operare;

– comenzi de lansare în execuție a programelor dedicate;

– introducerea de date de către utilizator în vederea prelucrării acestora;

– mesaje către utilizator care vor permite interacțiunea om-calculator.

Interacțiunea om-calculator se realizează cu ajutorul dispozitivelor periferice de intrare (tastatură, mouse sau alte dispozitive de introducere date sau comenzi) și a dispozitivelor periferice de ieșire (monitor, imprimantă sau alte dispozitive care afișează informație către utilizator).

Rolul sistemelor de operare

Sistemele de operare au un rol foarte important în exploatarea sistemelor electronice de calcul. Acest rol se realizează cu ajutorul următoarelor facilități:

– asistă utilizatorii programatori în realizarea, testarea, execuția și depanarea programelor;

– oferă utilizatorilor diferite facilități pentru rezolvarea problemelor și asistă la rezolvarea acestora;

– permite execuția programelor la un cost relativ redus prin folosirea eficientă a resurselor sistemelor de calcul;

– oferă posibilitatea execuției concurente a unor programe și a sincronizării comunicării între acestea;

– execută alocarea automată a resurselor sistemelor de calcul pentru utilizatori (cererile de resurse fiind aleatoare și concurente);

– permit accesul interactiv (conversațional) de la distanță la resursele sistemelor de calcul, folosind tehnica de multiacces;

– permit memorarea pe timp îndelungat a informațiilor, îndeosebi sub formă de fișiere de sistem.

Funcțiile sistemului de operare

Pentru a îndeplini rolul de interfață între hardware și utilizator, un sistem de operare trebuie să fie capabil de a îndeplini următoarele funcții:

1. Oferirea posibilităților de pregătire și lansare în execuție a programelor de aplicație. În acest sens, un sistem de operare trebuie să dispună de:

– editor de texte – pentru a introduce și modifica un program sursă;

– translator de limbaj care traduce instrucțiunile programului sursă într-o formă cunoscută de sistemul de calcul (formă binară), formând astfel program obiect;

– editor de legături care realizează legătura dintre diverse module obiect (sau să apeleze la module obiect din bibliotecile sistemului sau ale utilizatorului care conțin proceduri catalogate în prealabil) pentru a construi structura pe segmente impusă de sistemul de calcul, constituind astfel un program obiect executabil; odată construită structura de segmente, programul va fi lansat în execuție;

– încărcătorul – capabil să încarce programul obiect executabil în memoria internă.

2. Alocarea resurselor necesare execuției programelor. Această funcție este realizată prin:

– identificarea programelor ce se execută și a necesarului de resurse;

– alocarea memoriei interne și a dispozitivelor periferice;

– identificarea și protecția colecțiilor de date.

3. Acordarea unor facilități, prin utilitare de interes general: conversie de suporturi, sortare/interclasare etc.

4. Planificarea execuției programelor după anumite criterii, pentru utilizarea eficientă a unităților centrale de prelucrare.

5. Coordonarea execuției mai multor programe prin urmărirea modului de execuție a instrucțiunilor programelor, depistarea și tratarea erorilor, lansarea în execuție a operațiilor de intrare/ieșire și depistarea eventualelor erori.

6. Asistarea execuției programelor de către utilizator, prin comunicația sistem de calcul-utilizator, atât la nivel hardware cât și la nivel software.

7. Asigurarea posibilităților de organizare și protecție a informațiilor pe suporți magnetici.

8. Posibilitatea generării de către utilizator a unui sistem de operare pe măsura configurației și posibilităților de care dispune.

Ca structură simplificată, un sistem de operare (SO) se prezintă pe următoarele niveluri (Figura 1.3.).

Figura 1.3. Structura sistemului de operare

1. Nucleul sistemului de operare/Kernel are ca sarcină importantă gestionarea tuturor resurselor sistemului de calcul, asigurând controlul activității acestuia și a programelor utilizatorilor.

Nucleul sistemului de operare trebuie să îndeplinească un set de funcții:

încărcarea, pregătirea și lansarea în execuție a programelor utilizatorilor;

alocarea resurselor sistemului de calcul între programe care se execută simultan;

controlul programelor în execuție, sesizarea stărilor de excepție și tratarea întreruperilor;

protecția execuției programelor împotriva unor evenimente nedorite;

asigurarea și controlul comunicației dintre sistemul de calcul și utilizatori.

Nucleul sistemului de operare are, la rândul său, mai multe componente:

programul monitor;

programele de comandă și control;

programele pentru lucrul cu echipamente periferice;

programe de serviciu.

Programul monitor asigură controlul folosirii eficiente a resurselor sistemului de calcul.

Programele de comandă și control asigură automatizarea comenzilor de operare și scurtarea timpului de răspuns al sistemului.

Programele pentru lucrul cu echipamente periferice vor gestiona toate operațiile de intrare-ieșire, tratarea întreruperilor, precum și protecția fișierelor și a programelor utilizatorului.

Programele de service permit utilizatorilor folosirea eficientă a resurselor sistemului de calcul pentru rezolvarea diferitelor sarcini.

2. Programele traducătoare (translatoare de limbaj) au rolul de a transforma programele utilizatorilor, elaborate în limbaje de programare evaluate – programe sursă, în cod binar accesibil și interpretabil de către sistemul de calcul. Din această categorie fac parte:

– asambloarele și macroasambloarele;

– compilatoarele;

– interpretoarele.

3. Programele utilitare au rolul de a asista utilizatorul programator în realizarea procedurilor de prelucrare și redactare a programelor. În această categorie se includ utilitare pentru:

– dezvoltarea programelor de aplicații;

– manevrarea fișierelor;

– prelucrarea textelor;

– operații diverse.

4. Programele pentru lucru cu colecții de date au rolul de a gestiona accesul și exploatarea colecțiilor de date de către utilizator, precum și controlul și protejarea acestor colecții de date în timpul operațiilor de prelucrare.

5. Programa unor evenimente nedorite;

asigurarea și controlul comunicației dintre sistemul de calcul și utilizatori.

Nucleul sistemului de operare are, la rândul său, mai multe componente:

programul monitor;

programele de comandă și control;

programele pentru lucrul cu echipamente periferice;

programe de serviciu.

Programul monitor asigură controlul folosirii eficiente a resurselor sistemului de calcul.

Programele de comandă și control asigură automatizarea comenzilor de operare și scurtarea timpului de răspuns al sistemului.

Programele pentru lucrul cu echipamente periferice vor gestiona toate operațiile de intrare-ieșire, tratarea întreruperilor, precum și protecția fișierelor și a programelor utilizatorului.

Programele de service permit utilizatorilor folosirea eficientă a resurselor sistemului de calcul pentru rezolvarea diferitelor sarcini.

2. Programele traducătoare (translatoare de limbaj) au rolul de a transforma programele utilizatorilor, elaborate în limbaje de programare evaluate – programe sursă, în cod binar accesibil și interpretabil de către sistemul de calcul. Din această categorie fac parte:

– asambloarele și macroasambloarele;

– compilatoarele;

– interpretoarele.

3. Programele utilitare au rolul de a asista utilizatorul programator în realizarea procedurilor de prelucrare și redactare a programelor. În această categorie se includ utilitare pentru:

– dezvoltarea programelor de aplicații;

– manevrarea fișierelor;

– prelucrarea textelor;

– operații diverse.

4. Programele pentru lucru cu colecții de date au rolul de a gestiona accesul și exploatarea colecțiilor de date de către utilizator, precum și controlul și protejarea acestor colecții de date în timpul operațiilor de prelucrare.

5. Programele pentru interconectarea și comunicarea în rețea au ca scop realizarea de conexiuni externe ale sistemului de calcul cu alte calculatoare și accesul partajat al utilizatorului la resursele hardware, software și informaționale ale acestora.

6. Alte categorii de programe grupează o serie de aplicații care nu fac parte efectivă din sistemul de operare, dar care sunt incluse în pachetele de instalare deoarece ajută utilizatorul în efectuarea diferitelor sarcini. În acest mod, utilizatorul nu mai trebuie să instaleze și să apeleze la alte programe de aplicații pentru sarcinile curente.

Pentru că un sistem de operare este un set de programe specializate, rezultă că acestea trebuie să se găsească depozitate pe un suport de memorie externă. De pe acest suport se va încărca sistemul de operare atunci când se pornește sistemul de calcul. Suportul extern de memorie de pe care se poate încărca sistemul de operare se numește rezidența sistemului de operare. Suportul respectiv, de regulă disc dur sau disc optic, se va numi suport boot-abil sau disc boot-abil. Procesul de creare a rezidenței unui sistem de operare pentru o configurație de calculator electronic, se numește generarea sistemului de operare.

La punerea sub tensiune (pornirea) unui sistem de calcul în vederea utilizării, se parcurg următoarele etape:

1. Se autolansează în execuție, din memoria ROM-BIOS, un set de instrucțiuni POST. Lansarea în execuție a acestora va presupune citirea configurației sistemului de calcul din memoria CMOS (stabilită de către utilizatorul abilitat să facă aceasta), autotestarea componentelor hardware ale sistemului de calcul și sesizarea eventualelor nereguli. În funcție de erorile care pot să apară, sistemul de calcul poate să-și întrerupă procesul de testare și să aștepte intervenția utilizatorului pentru remediere. Ca exemplu, în cazul când acumulatorul de backup pentru ceasul de timp real nu mai funcționează și se pierde informația, la pornirea sistemului de calcul această situație este sesizată, se indică defectul și se așteaptă confirmarea utilizatorului pentru continuarea cu configurările implicite sau se cere ajustarea acestora. Un test foarte important efectuat în această etapă este testul memoriei interne RAM. Acest test se face prin scrierea și citirea repetată a tuturor locațiilor de memorie.

2. În funcție de configurarea secvenței de încărcare (boot-are) a sistemului de operare, aleasă de utilizator, se va încerca încărcarea acestuia de pe suportul de memorie externă (HDD, CD, flash, network etc.). Simpla copiere a fișierelor care formează sistemul de operare pe un suport de memorie externă și punerea acestuia într-un sistem de calcul nu înseamnă că startarea se va face de pe acesta. Este necesar ca suportul de memorie să conțină MBR-ul. Pe un hard-disk MBR-ul este o zonă de 512 bytes, care se găsește pe prima pistă fizică a discului. Zona respectivă este denumită CHS 0,0,1 – adică cilindrul zero (Cylinder 0), capul zero (Head 0) și sectorul 1 (Sector 1) de pe discul dur. Tot în zona de MBR se găsește și tabela de partiții a discului dur.

3. Dacă sistemul de operare se află instalat pe discul respectiv (de regulă, pe discul dur) atunci acesta se va încărca în memoria internă și va fi gata de utilizare.

Dacă suportul de memorie externă este boot-abil, dar conține o aplicație care va permite instalarea sistemului de operare pe acel sistem de calcul, atunci se poate trece la instalarea acestuia. În anumite situații, există discuri optice care permit instalarea sistemului de operare în memoria internă fără ca acesta sa fie scris pe discul dur. Acest tip de instalare se numește instalare live.

Sistemele de operare au evoluat în strânsă legătură cu evoluția hardware a sistemelor de calcul.

În funcție de structura sistemului de operare, acestea se pot clasifica în:

monolitice;

modulare;

stratificate;

exokernel;

mașină virtuală;

client-server (microkernel);

distribuite.

Sistemele monolitice se caracterizează prin faptul că kernelul este format dintr-un singur fișier, majoritatea fișierelor se află în kernel și nu are nicio ierarhizare internă. Ca exemplu, sistemul de operare Linux este un sistem monolitic. Mai vechiul sistem de operare (MS/DR) DOS era, de asemenea, un sistem de operare monolitic.

Sistemele modulare se caracterizează prin faptul că este structurat pe module cu funcționalități bine definite. Din această categorie face parte sistemul de operare Solaris. Și sistemul de operare Mac OS X are caracteristică de sistem modular.

Sistemele stratificate se caracterizează prin faptul că sunt compuse din straturi suprapuse ierarhic. Fiecare strat va fi subordonat și va oferi servicii stratului superior. Windows XP și Mac OS X sunt sisteme de operare stratificate.

Sisteme exokernel se caraterizează prin faptul că permit crearea de calculatoare virtuale, fiecare mașină virtuală beneficiind de propriile resurse și propriile sisteme de operare. Majoritatea serviciilor rulează în afara kernelului (exo) și rulează în user-mode.

Sisteme mașină virtuală sunt similare cu sistemele exokernel, cu deosebirea că pot rula sisteme de operare diferite, iar mașinile virtuale sunt copii ale mașinii pe care rulează.

Sisteme client-server (microkernel) se caracterizează prin faptul că majoritatea serviciilor rulează în user-mode, kernelul realizând comunicația și sincronizarea între procesele client și server.

Sistemele distribuite sunt similare cu sistemele client-server, cu deosebirea că sistemele server și client pot fi pe calculatoare diferite.

O caracteristică importantă a sistemelor de operare o reprezintă numărul de programe care pot să ruleze la un moment dat pe sistemul de calcul echipat cu acel sistem de operare. Sistemele de operare pot să asigure sau nu execuția în același timp a mai multor procese.

Un sistem de operare este monotasking dacă nu asigură execuția în același timp a mai multor procese și nici partajarea resurselor între procese.

În acest caz, programul care rulează la un moment dat are acces la toate resursele sistemului de calcul. Lansarea în execuție a altui program se poate face numai după ce programul precedent a fost oprit și descărcat din memorie.

Un sistem de operare este multitasking dacă permite execuția în același timp a mai multor programe și partajarea resurselor între acestea.

O altă caracteristică este reprezentată de numărul de utilizatori care pot să interacționeze la un moment dat cu sistemul de calcul pe care se află instalat sistemul de operare. Aici avem două categorii de sisteme de operare monouser și multiuser.

Sistemele de operare sunt considerate monouser dacă la un moment dat numai un singur utilizator poate interacționa cu sistemul de calcul. Dacă în același timp mai mulți utilizatori pot interacționa cu un sistem de calcul, atunci sistemul de operare instalat pe acel sistem de calcul este multiuser.

Cum sistemul de operare asigură interfața cu utilizatorul este necesar ca utilizatorul să aibă facilitatea de a manevra informația dintr-un calculator. Această cerință a fost rezolvată prin definirea noțiunilor de fișier și director sau folder.

Un fișier reprezintă o colecție de date structurate după anumite reguli, depozitate pe un suport de memorie externă și prelucrabile într-un sistem de calcul.

Un fișier se identifică prin denumire și prin extensie.

Fișierul meu de la curs.doc

Denumire fișier Extensie fișier

Extensia fișierului dictează tipul acestuia – modul de structurare interior. Pentru prelucrarea unui fișier de un anume tip este necesar un program specializat pentru acea prelucrare.

În foarte multe situații este necesar ca să grupăm la un loc fișiere de mai multe tipuri dar care au o caracteristică comună. De exemplu, lucrarea mea de licență conține fișierele Rezumat.doc, Licenta.doc, Aplicatie.xls, Simulare.mdb, Schita 1.jpg, Schita 2.jpg. Gruparea acestora „într-un loc” va fi posibilă cu ajutorul unui folder.

Un folder este un container grafic virtual care poate conține mai multe fișiere. Accepțiunea mai veche de folder poartă denumirea de director și era caracteristică sistemelor de operare fără interfață grafică.

Evoluția principalelor sisteme de operare este prezentată în figura următoare (Figura 1.4.).

Figura 1.4. Evoluția principalelor sisteme de operare

http://www.zwahlendesign.ch/en/node/58

Primele sisteme de operare permiteau utilizatorului interacțiunea cu sistemul de calcul folosind linii de comandă. După ce sistemul de operare era încărcat, apărea pe ecranul monitorului prompterul de sistem și se aștepta comanda utilizatorului.

C:\> _

Un exemplu de comanda (folosită în mai vechile sisteme de operare de tip DOS) este: C:\> COPY C:\TESTARE\ENUNT.TXT A:\TEST/V

are ca efect copierea de pe discul C:, din folderul/directorul TEST, a fișierului ENUNT.TXT, pe discul flexibil A:, în folderul/directorul TEST, cu aceeași denumire și efectuând și operația de verificare a copierii.

Interacțiunea în acest mod cu sistemul de calcul era destul de greoaie și se adresa doar persoanelor avizate și cu cunoștințe în domeniu.

Următoarea etapă în dezvoltarea sistemelor de operare a fost posibilă datorită apariției unui dispozitiv periferic – mouse-ul. Acesta a permis crearea de interfețe prietenoase pentru utilizatorul sistemului de calcul. O interfață grafică utilizator (GUI) oferă o legătură facilă între o aplicație de pe sistemul de calcul și utilizator.

Se consideră că prima interfață de tip GUI a fost dezvoltată de Xerox PARC (Xerox Palo Alto Research Center) în anul 1973. De-a lungul anilor, au fost dezvoltate mai multe astfel de interfețe pentru sistemele de operare OS/2, Macintosh, Windows Amiga, UNIX, Linux, Symbian OS, Android etc. Cele mai cunoscute sunt:

1.1.2. Sistemele de operare Windows

Sistemul de operare Windows reprezintă o continuare a tradiției firmei Microsoft de a fabrica sisteme de operare. La începutul anilor ’90, lucrul la nivel de linie de comandă reprezenta un impediment atât pentru ulilizator cât și pentru producătorul de tehnică de calcul. Dacă primul se confrunta cu greutatea în exploatare a sistemului de calcul, cel de-al doilea se vedea în situația de a nu putea vinde deoarece produsul respectiv nu avea suficientă cerere. O primă încercare a firmei Microsoft a fost făcută în anul 1992 cu interfața grafică Windows 3.1 (au existat și versiuni anterioare, dar nesemnificative). Această interfață grafică se instala peste sistemul de operare existent în sistemul de calcul. Era un fel de prelungire a acestuia, nu era un sistem de operare în adevăratul sens al cuvântului.

Interfața grafică era de forma următoare (Figura 1.5.):

Figura 1.5. Interfața grafică Windows 3.1.

Deși era o interfață grafică care lucra pe un sistem de operare monouser și monotasking, aceasta permitea rularea în același timp a mai multor aplicații în ferestrele de lucru. Modul de lucru cu ferestre de aplicații a dat și numele – Windows (fereastră). În spatele fiecărei aplicații se află o legătură realizată cu ajutorul unei pictograme – icon.

Windows 95 a fost lansat în anul 1995, ca sistem de operare de sine stătător, aceasta însemnând faptul că nu mai este nevoie de existența sistemului de operare DOS instalare și rulare. Versiunea Windows 98 a maturizat tehnologiile de care a beneficiat versiunea precedentă, făcând un pas foarte important pentru a se apropia de sistemele de operare care permiteau lucrul în rețea. Windows 95 a fost un uriaș pas făcut de către Microsoft pentru sistemul de operare propriu-zis și GUI unificat. Apare un nou buton Start și posibilitatea de a se selecta statusul (activat, dezactivat, selectate, verificate, etc.) pentru iconițe și alte elemente grafice. De asemenea, apare și bara de task-uri care indică, în partea de jos a ecranului, aplicațiile care rulează pe sistemul de calcul. Pentru că sistemul de operare trebuia mereu îmbunătățit, datorită cerințelor pieței sau datorită remedierii anumitor defecțiuni de funcționare, la fiecare astfel de sistem de operare vor apărea variante ulterioare îmbunătățite – Windows 95 OSR2, Windows 98 SE etc.

Interfața grafică a acestui sistem de operare era de forma următoare (Figura 1.6.):

Figura 1.6. Interfața grafică Windows 95

Windows NT (New Technology), lansat în anul 1992, a fost considerat ca fiind un sistem de operare revoluționar, și mai este folosit și la ora actuală datorită stabilității și performanțelor sale pentru lucrul în rețelele de calculatoare. Windows NT funcționează ca un sistem de operare de sine stătător, având următoarele caracteristici principale: modul de lucru multitasking preemtiv, care deține în permanență controlul asupra timpului de lucru și a aplicațiilor; modul de lucru multithreading, care permite executarea în paralel a mai multor procese ale aceleiași aplicații; executarea de aplicații pe 32 de biți, folosirea unei interfețe de programare a aplicațiilor pe 32 de biți; includerea ca parte integrantă a sistemului de operare a standardului Plug and Play.

Fiind folosit în aplicațiile de rețea care folosesc tehnologia client-server, Windows NT se comercializează atât ca variantă de server – Windows NT Server, cât și ca variantă de client/stație de lucru – NT Workstation.

Variantele ulterioare de sisteme de operare Windows pentru lucru în rețele de calculatoare cuprinde Windows 2000 Server, Windows Server 2003, Windows Server 2008 și Windows Server 2011.

Sistemul de operare Windows XP (Windows eXPerience) este lansat ca o revoluție în domeniu și nu ca o evoluție, după cum susținea producătorul Microsoft. Windows XP vine cu o interfață grafică complet schimbată (Microsoft face asta la schimbarea fiecărei versiuni) (Figura 1.7.)

Figura 1.7. Interfața grafică Windows XP

Această nouă versiune vine cu o serie de facilități printre care:

stabilitate ridicată în funcționare;

facilitatea de restaurare (Restore) care permite revenirea la o configurare anterioară a sistemului de operare;

facilități extinse pentru configurarea multiuser;

MSN Messenger permite comunicarea în timp real cu text, voce și video. (similar cu Netmeeting);

includerea de programe de scriere a discurilor optice;

posibilitatea de criptare pentru a se limita accesul;

o aplicație Task Manager avansată, care va afișa ce procese sunt în funcțiune și cât de multă cantitate de memorie folosesc, indiferent dacă acestea sunt pe sistemul de calcul sau pe o rețea;

posibilitatea ascunderi icon-urilor nefolosite.

Windows 7 s-a dorit să fie un înlocuitor rapid al sistemului de operare Windows Vista care nu a avut succesul de piață scontat, foarte mulți utilizatori preferând să rămână tot la sistemul de operare Windows XP.

Interfața grafică pentru Windows 7 are următoarea formă (Figura 1.8.):

Figura 1.8. Interfața grafică Windows 7

Ca principale beneficii ale acestui sistem de operare, se pot enumera:

Accesibilitate îmbunătățită. Au fost îmbunătățite caracteristicile de accesibilitate, incluzând aici recunoașterea vorbirii și facilități de zoom pentru imagini.

Centrul de Acțiune. Opțiunile de securitate din Windows Vista au fost îmbunătățite și adăugate altele noi.

Aero Peak. Această opțiune permite utilizatorului să vadă ce se află în spatele tuturor ferestrelor deschise pe desktop.

Backup and Restore. Facilitatea de backup și restore a fost simplificată pentru o mai facilă utilizare.

Bitlocker To Go. Facilitatea de criptare a discului a fost îmbunătățită și extinsă și asupra memoriilor portabile sau a discurilor externe.

Blu-Ray support. Windows 7 citește și inscripționează native discuri optice Blu-Ray.

DirectAccess. Această facilitate se adresează celor care vor să aibă acces securizat la datele din interiorul unei organizații atunci când ei se află în afara acesteia.

DirectX 11. Windows 7 include ultimele versiuni de librării multimedia DirectX.

Display improvements. Windows 7 vine cu o serie de îmbunătățiri referitoare la monitoare, cum ar fi calibrarea culorilor, suport pentru noile standarde de filme, un management îmbunătățit pentru lucrul cu mai multe monitoare etc.

Internet Explorer. Windows 7 are o versiune îmbunătățită de browser Internet – Internet Explorer 8.

Parental Controls. Funcția de control parental, care a debutat în Windows Vista este actualizată în Windows 7 pentru a asigura un control parental mai eficient pentru utilizatorii minori.

Power Config. Windows 7 include un nou utilitar de configurare a modului de alimentare a componentelor sistemului de calcul care furnizează rapoarte de identificare a problemelor, setări, aplicații, și alte lucruri care ar putea să ducă la o mai bună folosire a energicei electrice.

Sensor support. Windows 7 include facilitatea de recunoaștere și utilizare a unor dispozitive speciale, cum ar fi senzori GPS.

Start Menu (Enhanced). Varianta de Start Menu este mult îmbunătățită față de Windows Vista.

Startup Repair. Startup Repair este o puternică unealtă folosită atunci când sistemul de operare nu se mai încarcă normal, permițând aducerea acestuia la o încărcare normală.

Sticky Notes. Este o facilitate care permite crearea de note scrise, asemănătoare „bilețelelor ” care se lipesc pe birou.

Styles. În Windows 7, Microsoft combină diferite variante de configurare a sistemului de calcul, incluzând aici desktop background, culorile Aero, sunetul de sistem etc.

System Restore. Varianta nouă este mult mai eficientă decât predecesoarea sa din Windows Vista.

Tablet PC. Windows 7 oferă suport pentru tabelete PC – Tablet PC, oferind facilități extinse pentru scrierea de mână, personalizare dicționare și 13 noi limbi de lucru.

User Account Control (UAC). Această facilitate este folosită pentru a se asigura o securitate sporită a sistemului de calcul printr-un control al accesului utilizatorului la resurse.

View Available Networks. Windows 7 include o nouă listă de utilitare pentru găsirea și conectarea la rețele Wi-Fi, rețele de bandă largă mobilă, dial-up, și la conexiuni VPN.

Virtual Hard Disk support. Windows 7 permite „montarea” unui Virtual Hard Disk (VHD) ca un disc fizic în Explorer.

Windows Defender. Windows 7 permite protecția împotriva aplicațiilor malițioase. Această facilitate este integrată în Action Center. De asemenea există posibilitatea ca anumite aplicații rezidente să nu poată fi rulate la startarea sistemului de operare.

Windows Easy Transfer. Utilitarul Windows Easy Transfer a fost înbunătățit cu o nouă interfață și câteva facilități suplimentare.

Windows Gadgets. Windows Sidebar nu mai apare la Windows 7, dar aplicația Gadgets este prezentă și este integrată în desktop.

Windows Live. Windows 7 se integrează cu o mare colecție de servicii Windows Live, incluzând aici Windows Live Photos, Windows Live Profile, Windows Live People, Windows Live Spaces, Windows Live Home, Windows Live SkyDrive, Windows Live Groups, Windows Live Calendar, Windows Live Events, Windows Live Hotmail etc.

Windows Live Essentials. Această nouă aplicație este disponibilă pentru descărcare și cuprinde o serie de suite de aplicații clasice Windows, cum ar fi Windows Live Mail (email și calendar), Windows Live Photo Gallery, Windows Live Messenger (instant messaging), Windows Live Movie Maker (video editing), Windows Live Family Safety etc.

Windows Media Player. Microsoft Media Player a suferit transformări esențiale față de versiunea Vista. Cele mai importante sunt includerea de facilități suplimentare de DVD playback, o nouă variantă lightweight (restrânsă) playback, compatibilizarea cu diferite formate media (AAC și H.264), Windows Taskbar Jump List particular, PC-to-PC and media streaming, și o nouă opțiune Play To feature.

Windows Search. Windows 7 vine cu o nouă versiune de Windows Search care permite o mai bună regăsire a datelor și o afișare în mod instant a acestora, indiferent că se face căutarea local sau în rețea.

Windows Touch. Windows 7 vine cu capabilități sporite pentru Tablet PC și cu facilitatea de multi-touch. Toate componentele de interfață utilizator, incluzând Start Menu, Windows Taskbar, și Explorer, sunt ușor de folosit cu ajutorul ecranelor tactile (touch-friendly) în Windows 7.

Windows Troubleshooting. Noua versiune din Windows 7 vine cu câteva îmbunătățiri care permit rezolvarea unor probleme de hardware și software.

Windows Update. Utilitarul pentru descărcarea și instalarea actualizărilor de sistem a fost îmbunătățit în Windows 7 pentru a profita de schimbările modelului de securitate și pentru a folosi mai bine actualizări opționale și facilitățile viitoare oferite.

Wireless Device Network. Windows 7 permite folosirea propriului sistem de calcul portabil conectat la o rețea ca un punct de acces pentru alte sisteme portabile.

XPS Viewer. Aceasta este o aplicație din Windows 7 care permite vizualizarea documentelor de tip XML Paper Specification (XPS).

Sistemul de operare Windows 8 aduce ca principale beneficii pentru utilizator;

Meniul de start schimbat. Meniul de start în formatul cunoscut nu mai este prezent (Figura 1.9.).

Home screen. Elementul central al interfeței cu utilizatorul este dat de un set de icon-uri animate care poartă denumire de tile-uri care aduc informații mai multe și în timp real despre ce este în spatele acestora (Figura 1.9.). Ca exemplu, informația despre vreme care se află în spatele unui tile se va împrospăta continuu.

Figura 1.9. Interfața grafică Windows 8

http://cloud.addictivetips.com/wp-content/uploads/2011/09/Windows-8-Start-Menu.png

Metro. Ferestrele nu mai au opțiuni de maximizare, minimizare sau redimensionare. Dispar de asemenea butoanele de meniu și barele de tip scroll. O aplicație metro pentru Windows 8 ocupă tot ecranul. Controlul și meniurile apar doar dacă utilizatorul trage de mouse (sau folosește ecranul tactil) în marginile ecranului. Pe ecran pot fi deschise simultan mai multe ferestre.

Swype. Pentru că Windows 8 este conceput (și) pentru ecrane tactile (touch screen), facilitățile oferite de acest mod de lucru sunt amplu dezvoltate. Plimbarea degetului pe tastatura virtuală va permite introducerea de caractere, sau de comenzi, la fiecare schimbare de direcție a degetului.

Compatibilitate. Windows 8 este compatibil (parțial) cu mai vechile sisteme de operare de la Windows, și în special cu Windows 7. Aplicațiile clasice vor rula în paralel cu cele metro.

Charms. Conectivitatea se realizează cu ajutorul controalelor introduse în sistemul de operare. În acest mod, aplicațiile pot să comunice între ele pe canale standard, aceasta ușurând munca dezvoltatorilor care nu vor mai scrie module complicate de interconectare.

Lock screen personalizat. Această facilitate este preluată de la Windows Phone 7: pe ecranul blocat (lock) utilizatorul poate aduce ce informații dorește să aibă permanent la îndemână (Figura 1.10).

Figura 1.10. Lock scree-nul din Windows 8

http://cdn.betashuffle.com/wp-content/uploads/2011/09/windows-8-lock-screen.jpg

Tastatura virtuală. Pentru că sistemul de operare Windows 8 se poate folosi pe ecrane tactile (touch screen) este necesar să existe o tastatură virtuală (Figura 1.11.).

Figura 1.11. Tastatura virtuala din Windows 8

http://www.tech2go.in/wp-content/uploads/2011/09/Windows-8-Virtual-Keyboard.jpg

Multitasking. Multitaskingul este păstrat cu precizarea că aplicațiile metro nu se mai închid, ci rămân în mod suspendat și se autoactivează atunci când sunt din nou relansate.

Windows este un sistem de operare creat de către Microsoft, care dispune de o puternică și facilă interfață grafică în interacțiunea cu utilizatorul unui sistem de calcul.

Ca toate sistemele de calcul, și Windows a trebuit să țină pasul cu dezvoltarea microprocesoarelor și cerințele specifice utilizatorilor. Există sisteme de operare Windows pentru calculatoare echipate cu microprocesoare pe 32 de biți, și există sisteme de operare pentru calculatoare echipate cu micropocesoare pe 64 de biți.

De asemenea, există variante de sisteme de operare create pentru utilizatori fără mari pretenții (utilizatori casnici). Această categorie cuprinde în denumire specificația „Home”. Pentru pretențiile ridicate ale utilizatorilor, de regulă organizații mari, există variante specifice care au în denumire specificația „Professional” sau „Server”.

Sistemele de operare Windows, ca mod de achiziționare, fac parte din categoria sistemelor contra cost (COTS).

1.1.3. Sistemele de operare UNIX/Linux

UNIX a fost dezvoltat inițial la AT&T Bell Telephone Laboratories între anii 1969 – 1970 (pe atunci nici nu se vorbea de Microsoft sau Windows) de către Brian Kernighan and Dennis Richie pentru sistemele de calcul PDP. În anul 1973 este scrisă prima variantă în C, inițial era scris în limbaj de asamblare. Codul sursă este liber pentru dezvoltatori.

Pentru că era un sistem de operare relativ greoi, Linus Torvalds creează în anul 1991, pornind de la o variantă de UNIX (Minix), sistemul de operare Linux.

UNIX este un puternic sistem de operare multiuser și multitasking.

Linux este un sistem de operare dezvoltat din UNIX care se bazează pe software liber și open source.

Structura unui sistem de operare UNIX este prezentată în următoarea figură (Figura 1.12.).

Figura 1.12. Structura sistemului de operare UNIX

http://www.ecst.csuchico.edu/~sim/144/notes/NOTE2.htm

Alegerea sistemului de operare UNIX are o serie de avantaje, dar are și dezavantaje [22].

Ca avantaje se pot enumera:

experiență de peste 30 de ani in domeniu;

disponibil pentru orice platformă hardware;

robust și stabil în utilizare;

sigur și versatil;

scalabil.

Ca dezavantaje se pot enumera:

greu și neprietenos de utilizat;

foarte multe dialecte;

hardware-ul brevetat pentru UNIX este scump.

Dezavantajele UNIX sunt eliminate (parțial) de către Linux. De la primul nucleu creat de către Linus Thorvalds (kernel 1), s-a ajuns la varianta a treia de nucleu (kernel) în anul 2011.

De la apariția Linux și până astăzi au fost lansate mai multe distribuții (distro) de Linux.

Principalele distribuții de Linux sunt:

Alegerea uneia sau a alteia dintre distribuțiile de Linux poate fi o operație destul de dificilă pentru cineva care este nou în domeniul acestor sisteme de operare. Ubuntu, Linux Mint și PCLinuxOS sunt considerate ca fiind cele mai prietenoase pentru cei nou veniți în domeniu. Distribuțiile care dau cele mai mari bătăi de cap sunt considerate a fi Slackware Linux, Arch Linux si FreeBSD, acestea necesitând o experiență considerabilă și cunoștințe din partea utilizatorului. OpenSUSE, Fedora, Debian și Mageia pot fi considerate ca fiind poziționate între aceste două categorii. CentOS este o distribuție Red Hat și se adresează, în special, organizațiilor cu pretenții în domeniu.

Intefața pentru aceste sisteme de operare a evoluat de la varianta pentru UNIX din 1986 (Figura 1.13.) și până la variante actuale.

Figura 1.13. Interfața IRIX 3 pentru sistemul de operare UNIX

Figura 1.14. Interfața KDE pentru sistemul de operare Linux

Versiunile actuale de interfețe grafice pentru Linux (Figura 1.14.), generic numite GNOME (GNU Network Object Model Environment) sau KDE (K Desktop Environment) vin să țină pasul cu prietenoasele interfețe ale sistemului de operare Windows.

La fel ca alte sisteme de operare, Linux a trebuit să țină pasul cu dezvoltarea sistemelor de operare și cu pretențiile utilizatorului. Variantele performante de sisteme de operare Linux, pentru aplicații critice, au devenit COTS.

1.2. Rețele de calculatoare

1.2.1. Interconectarea calculatoarelor

Apariția rețelelor de calculatoare a venit ca o necesitate. Sistemele de calcul de sine stătătoare nu mai făceau față cerințelor mediului de afaceri, academic, de cercetare, militar etc. Partajarea și schimbul de informații de la un calculator la altul era imperios necesară. Progresul tehnologic și nevoia de informație au dus, în final, la apariția rețelelor de calculatoare.

O rețea de calculatoare se poate defini ca fiind o colecție de calculatoare autonome, separate, dar interconectate printr-un mediu de comunicație.

Un calculator nu va putea controla, porni sau opri alte calculatoare aflate în rețea, neexistând o relație master/slave.

Locul din rețea în care există un echipament de calcul (calculator) se numește nod de rețea. Aceasta presupune că imprimantele de rețea nu formează noduri ale rețelei [Tane04].

În destul de multe cazuri se face confuzie între o rețea de calculatoare și un sistem distribuit de calculatoare. Într-un sistem distribuit, existența mai multor calculatoare este transparentă pentru utilizatori. Utilizatorii dintr-un sistem distribuit de calculatoare nu vor cunoaște elemente de arhitectura sistemului distribuit, acesta va arăta ca un tot unitar, cu unul sau mai multe procese virtuale.

Partajarea resurselor, transferarea fișierelor de pe suporturi de memorie înspre locul unde se va face prelucrarea, stocarea acestora după prelucrare înapoi pe același suport sau pe alte suporturi, ca și orice altă funcție necesară prelucrării se vor executa automat. Utilizatorul nu va face nimic explicit referitor la resurse; totul se realizează automat de către sistemul distribuit, operațiile fiind transparente pentru utilizator.

Un sistem distribuit este format dintr-un ansamblu de programe construit pe o rețea de calculatoare.

Un utilizator al unei rețele de calculatoare, conectat la rețea printr-un nod al acesteia va trebui să efectueze, în mod explicit, anumite operații specifice. Aceasta presupune ca utilizatorul să se conecteze explicit la un anume calculator din rețea, să transfere explicit informația, să lanseze explicit comenzi sau să introducă date către calculatorul respectiv etc [LuSu06].

Interconectările între calculatoarele care formează nodurile rețelei (și implicit rețeaua) se face prin medii de transmisie formate din cabluri electrice (cablu coaxial 10 BASE 2, cablu cu perechi răsucite 10 BASE T sau cablu CATV 10 BROAD 36), cât și prin mijloace moderne: fibre optice (10 BASE F), lasere, microunde și unde radio (sateliți sau relee).

Structura generală a unui nod de rețea cuprinde următoarele elemente: conector, adaptor, interfață de comunicație și calculator (Figura 1.15.) [Tane04].

Figura 1.15. Structura unui nod de rețea

Conectorul realizează cuplarea mecanică la mediul de transmisie.

Adaptorul realizează cuplarea electrică la mediul de transmisie.

Interfața de comunicație realizează accesul la mediu printr-un protocol corespunzător (pregătește informația care se transmite, preia informația recepționată, controlează și corectează transmisia efectuând corecțiile necesare, gestionează zonele de memorie tampon folosite pentru transmisie etc). Interfața de comunicare diferă atât ca mod de lucru, cât și ca performanțe de la rețea la rețea, fiind adaptată cerințelor acesteia. De asemenea, de performanțele interfeței de comunicație depinde viteza rețelei. Aceasta variază între 10 și 100Mbps (Megabiți pe secundă). Există și interfețe de comunicație care pot depăși această viteză, dar prețurile sunt pe măsură. La rețelele la care comunicarea se face prin undă radio, viteza de lucru poate scădea drastic datorită perturbațiilor care apar până la valori de 1-2 Mbps. În orice calculator aflat într-un nod al rețelei, se va afla o placă de conectare la rețea (Network Interface Card – NIC) (Figura 1.16.).

Figura 1.16. Placă de rețea

http://www.kollewin.com/blog/ethernet-lan-card/

În portul RJ-45 se va introduce o mufă specială care face conexiunea cu rețeaua de calculatoare (Figura 1.17.).

Figura 1.17. Mufa de conexiune la rețea

Calculatorul reprezintă sistemul de calcul cuplat la rețea și care, în funcție de cerințele impuse, poate fi un sistem de calcul prin intermediul căruia se accesează resursele hardware, software și informaționale ale rețelei – terminal sau stație de lucru (work station), poate fi un sistem de calcul cu performanțe hardware superioare mult celorlalte calculatoare și dotat cu programe și informații care vor fi accesate de celelalte calculatoare din rețea – server, sau poate fi o combinație a celor enumerate.

Ca principale avantaje ale rețelelor de calculatoare vom avea [LuSu06]:

– sporirea resurselor informaționale ale unui calculator legat la rețea prin accesul la informațiile stocate de alte calculatoare din componența rețelei;

– împărțirea și folosirea mai bună a resurselor între utilizatori, ceea ce face ca programele, datele și echipamentele să fie accesibile unui număr, uneori, impresionant de persoane, inclusiv celor situate la mari distanțe, depășind astfel limitările impuse de factorul geografic;

– funcționalitatea crescută a acestor sisteme, prin împărțirea și chiar multiplicarea unor aplicații pe mai multe mașini, astfel încât, dacă din motive hardware cade o parte a sistemului, partea intactă poate continua să funcționeze, fără alterarea prea mare a performanței obținute;

– este mai ieftin de realizat o rețea cu calculatoare mici, care per global realizează aceeași productivitate cu a unui calculator mare. Prețul calculatoarelor personale din rețea este foarte mic comparativ cu prețul unui calculator mare pe care îl înlocuiesc;

– dacă pentru a crește cu puțin performanța unui calculator mare încărcat la maximum, el trebuie înlocuit cu un calculator și mai puternic, deci, evident, mai scump, pentru a crește performanța rețelei este suficient să se mai adauge câteva procesoare relativ ieftine (scalabilitate).

– administrarea ușoară a utilizatorilor – cele mai multe rețele au un manager de rețea, care gestionează utilizatorii și perifericele din rețea. În acest sens, managerul de rețea controlează cine are dreptul și cine nu are dreptul de conectare la anumite resurse informaționale din rețea, ce drepturi au diferiții utilizatori, realizează copii ale fișierelor mai importante, actualizează programele de aplicație etc.

1.2.2. Clasificarea rețelelor

Clasificarea rețelelor de calculatoare se face luând în considerare două criterii:

tehnologia de transmisie;

întinderea rețelei.

Tehnologia de transmisie

Pentru a se minimiza costurile de realizare ale unei rețele, trebuie să se ia în considerare lungimea liniilor de transmisie. Ținând cont de acest deziderat, se vor folosi atât linii de mare viteză dar scumpe, acolo unde este nevoie de o viteză mare de transmisie, cât și linii cu o viteză de transmisie redusă, acolo unde traficul nu este mare.

Tehnicile principale folosite sunt:

multiplexarea;

concentrarea.

Multiplexarea distribuie traficul de pe o linie de mare viteză în mai multe subcanale independente de viteză scăzută.

Concentrarea, inversa multiplexării, grupează dinamic traficul din mai multe linii de joasă viteză pe câteva linii de viteză mare.

Există în principal două tipuri de tehnologii de transmisie care clasifică rețelele în:

rețele punct-la-punct sau cu comutare;

rețele cu difuzare.

Rețelele punct la punct sau cu comutare se împart la rândul lor în:

rețele cu comutare de mesaje;

rețele cu comutare de pachete.

Rețelele cu comutare de mesaje sunt folosite atunci când aplicațiile se distribuie mai multor calculatoare gazdă, între acestea având loc un schimb frecvent de informații.

Rețelele cu comutare de pachete folosesc, în aceleași condiții de lucru ca și rețelele cu comutare de mesaje, un comutator de pachete. Comutatorul de pachete primește datele de la calculatorul gazdă la care este conectat, date pe care le eșantionează în mai multe pachete (segmente). Pachetele astfel obținute sunt transmise către comutatorul de pachete atașat la calculatorul destinație, care le va asambla și le va trimite calculatorului. Avantajul, în acest caz, este că pachetele au dimensiuni mici, necesitând o memorie tampon mică, iar timpul de transmisie este scăzut și în consecință, și erorile care pot apărea sunt reduse.

Rețelele punct la punct presupun existența unui canal de comunicație între două calculatoare ale subrețelei, transmisia informației făcându-se printr-unul sau mai multe noduri aflate între cele două calculatoare (sursă și destinație). Acest tip de rețele este folosit pe întinderi relativ mici (încăperi sau clădiri).

Rețelele cu întindere mai mare folosesc altă tehnologie de transmisie a informației, și anume difuzarea mesajelor. Aceste rețele au un singur canal de comunicare, dar care este accesibil tuturor calculatoarelor din rețea. Transmisia unui mesaj de către un calculator poate fi recepționată de toate calculatoarele interconectate, destinatarul mesajului fiind indicat printr-un identificator aflat chiar în mesaj. Un prim avantaj imediat este posibilitatea transmiterii unui mesaj la mai mulți utilizatori (calculatoare), prin includerea în mesaj a destinației. Există însă și dezavantaje, cum ar fi apariția coliziunilor în situația în care mai multe calculatoare transmit în același timp precum și drepturile de acces la mediu.

Întinderea rețelei

Clasificarea rețelelor, din punct de vedere al întinderii, ia în considerare distanța dintre nodurile rețelei. O posibilă clasificare a rețelelor, conform acestui criteriu, este exemplificată în tabelul următor (Tabelul 1.1.).

Tabelul 1.1.

Clasificarea rețelelor

Sunt situații în care este necesară interconectarea a două sau mai multe rețele. În acest caz, se va obține o inter-rețea. Un caz aparte de inter-rețea este reprezentat de Internet, această inter-rețea având cel mai mare număr de rețele interconectate, aria de răspândire fiind globală. Atunci când se proiectează o rețea, este bine de știut de la început care este întinderea acesteia, deoarece, în funcție de aceasta se vor alege interconectările, mediile de transmisie și tehnicile de comunicare.

Rețelele locale (LAN – Local Area Network)

Rețelele locale folosesc ca medii de transmisie cabluri electrice (cablu coaxial 10 BASE 2 (tehnologie mai veche) sau cablu cu perechi răsucite 10 BASE T ), cât și prin unde radio sau fibră de sticlă la noile tipuri.

Rețelele locale se pot împărți în următoarele categorii ținând cont de modul de implementare adoptat:

rețele de tip client-server;

rețele peer to peer.

Rețelele de tip client-server se bazează pe modelul din figura 1.18.

Figura 1.18. Rețele de tip client-server

Un server (la modul general) este un program de calculator care va furniza informații altor aplicații care pot fi găzduite de același calculator sau de alte calculatoare. Aplicațiile care primesc informațiile de la server poartă denumirea de aplicații client.

În rețelele client-server, un server este un program care primește și îndeplinește cereri de la o aplicație client locală sau de pe o stație de lucru.

Server (S) gestionează întreaga activitate a rețelei. El controlează accesul la resursele comune (fișiere, imprimante etc.) care îi sunt subordonate, evitând apariția conflictelor, asigură securitatea sistemului și realizează comunicațiile între stații. Pe Server este instalat software-ul de operare al rețelei. Acest software de operare poate încorpora și funcțiile de sistem de operare (Windows 2000, Windows NT, UNIX/Linux) sau se va instala peste și în complementaritate cu sistemul de operare existent (Novell Netware 3.X, 4.X).

Există servere dedicate, care lucrează numai pentru controlul rețelei, și servere nededicate care, simultan cu controlul rețelei, pot funcționa ca stații de lucru, dar în acest caz, performanțele rețelei pot să scadă foarte mult.

Stații de lucru (WS) sunt, de regulă, calculatoare personale obișnuite, care folosesc un sistem de operare standard (Windows sau Linux). Pe aceste stații de lucru vor lucra operatorii. Acești utilizatori pot fi de tip user – o persoană care folosește un sistem de calcul sau pot fi de tip end user – o persoană/user care rulează o aplicație program. Ambele categorii de utilizatori pot conține utilizatori novici sau utilizatori experți.

Rețelele de tip client-server au cel puțin un server (S) si cel puțin două sau mai multe stații de lucru (WS). Utilizatorul nu are acces la resursele informaționale ale serverului decât prin intermediul stațiilor de lucru (WS). În funcție de mărimea și importanța rețelei, pot exista mai multe servere cu funcții speciale, utilizatorii având acces restricționat parțial, total sau nerestricționat la acestea.

Rețele de tip „peer to peer” sunt rețele care se construiesc datorită costurilor mici pe care le implică. Principiul de lucru este asemănător cu modelul client-server, numai că pentru reducerea costurilor, nu va mai exista un calculator dedicat și scump cu rol de server. Într-o rețea de acest tip, toate calculatoarele sunt „egale” – peers. Într-o rețea peer-to-peer nu există servere dedicate și nici o organizare ierarhică a calculatoarelor.

Un server dedicat este un calculator care funcționează doar ca server, nefiind folosit drept client sau „stație de lucru“ într-o rețea „peer-to-peer” și sunt optimizate să deservească rapid cererile clienților din rețea și să asigure securitatea informațiilor aflate pe acestea.

La ora actuală serverele se pot clasifica după rolul pe care-l îndeplinesc în următoarele tipuri:

– Servere de Proxy. Serverele de Proxy fac legătura între programul client (de regulă un browser Web) și un server extern (de regulă un server de Web) pentru a filtra cererile, a crește performanțele și a partaja conexiunea.
– Servere de Mail. Serverele de Mail stochează și transferă mesajele de poștă electronică în cadrul rețelei organizației și face legătura cu rețeaua Internet.
– Servere de Web. Serverele de Web permit ca un conținut de informație care se află stocat pe un suport de memorie să fie disponibil în rețea pentru un utilizator de browser Web. Transferul de informație se va face între server și browser folosind un protocol de comunicare special (HTTP).

– Server de Fișiere. Serverul de Fișiere este reprezentat de un calculator de mare viteză într-o rețea care stochează programe și fișiere de date partajate de către utilizatori.

– Serverele de Baze de Date. Serverele de Baze de Date sunt folosite pentru stocarea și regăsirea datelor din baze de date ale unei organizații. Tot pe acest server se află si Sistemul de Gestiune al Bazelor de Date (SGBD). Un server de baze de date poate fi parte a unui server de fișiere.
– Servere de Applicații. Serverele de Aplicații, cunoscute și sub denumirea de middleware, fac legătura între serverele de baze de date și utilizatori.

– Server Real-Time Communication. Serverele

– Servere de FTP. Serverele de FTP (File Transfer Protocol – Protocol de Transfer Fișiere) asigură unul dintre cele mai vechi servicii furnizate de Internet, și anume transferul sigur și controlat de fișiere între calculatoare.
– Servere Collaboration. Serverele Collaboration, numite și servere de groupware vor permite utilizatorilor să-și creeze propriile grupuri de discuții și să lucreze în mod colaborativ și virtual, folosind Internetul sau Intranetul, pentru rezolvarea unor probleme sau pentru alte scopuri.

– Servere List. Servere List oferă o modalitate de a gestiona mai bine listele de discuții, fie că este vorba de discuții interactive deschise publice, fie pentru oferirea de anunțuri, buletine de știri sau de publicitate.

– Servere Telnet Serverele Telnet permit unui utilizator să se conecteze la un calculator gazdă și să execute diferite acțiuni ca și cum ar lucra în mod remote.

– Servere Virtual. Servere Virtual(e) sunt de fapt servere virtuale create pe serverele fizice. În centrele de date (Data Center), serverele virtuale sunt o prezență absolut necesară.

– Servere de Print. Serverele de print sunt destinate să concentreze activitatea de tipărire a documentelor pe imprimante de volum mare și să gestioneze eficient activitatea de tipărire a acestor documente.

Funcționarea improprie a unui server din rețea va avea efecte nefaste asupra utilizatorilor. Un server trebuie să fie capabil să asigure confiențialitatea, integritatea și disponibilitatea datelor. Mai mult, dacă este vorba de un server care deservește o firmă care efectuează tranzacții electronice, acesta trebuie să asigure și nerepudierea datelor.

Pentru asigurarea acestor deziderate se folosesc diferite metode și tehnici. Una dintre ele, pentru asigurarea disponibilității datelor în caz de distrugere sau alterare a acestora, o reprezintă realizarea copiilor de siguranță sau crearea de servere de backup (salvare de siguranță).

Un rol important în buna funcționare a unei rețele îl are administratorul de rețea. Acesta va trebui să se asigure de buna funcționare a rețelei, să determine eventualele nefuncționalități și, dacă este cazul, să ia măsurile specifice care se impun pentru o bună funcționare.

Rețelele metropolitane (MAN – Metropolitan Area Network)

Rețelele metropolitane reprezintă o prelungire a rețelelor de tip LAN. Ca întindere, pot ocupa până la dimensiunile unui oraș sau și mai mult, de unde și denumirea de rețele metropolitane.

Rețelele larg răspândite (WAN – Wide Area Network)

Rețelele larg răspândite au o întindere care poate să cuprindă o țară, un grup de țări sau un continent. Această rețea va include un număr de calculatoare care vor executa aplicațiile specifice utilizatorilor. În literatura de specialitate, aceste calculatoare poartă denumirea de calculatoare gazdă. Calculatoarele gazdă sunt interconectate printr-o subrețea, care are rolul de transfer al informației de la sursă la destinație. Pentru majoritatea rețelelor larg răspândite, subrețeaua are două componente: liniile de transmisie și calculatoarele de comutare. Liniile de transmisie (circuite, canale sau trunchiuri) au rolul de transport al informației între calculatoare. Calculatoarele de comutare sunt elemente specializate și sunt folosite pentru a conecta două sau mai multe linii de transmisie. În literatura de specialitate, aceste calculatoare mai sunt cunoscute și sub denumirea de rutere (router – în limba engleză). Ruterul are rolul de interconectare, va realiza conexiunea între diferite rețele și va dirija traficul de la sursă la destinație. Funcția ruter-ului este exemplificată în figura următoare (Figura 1.19.). Modul de interconectare a routerelor reprezintă tipologia rețelei și poate avea diverse forme: stea, inel, arbore etc.

Figura 1.19. Funcția ruterului în cadrul WAN.

1.2.3. Topologia rețelelor

Nodurile rețelei pot fi așezate respectând anumite caracteristici geometrice.

Topologia este o altă caracteristică a rețelei și reprezintă o modalitate de așezare geometrică o nodurilor rețelei (sau dispunerea fizică a calculatorului într-o rețea).

Se disting trei topologii de bază: magistrală, stea și inel, precum și câteva variante ale acestora, cum ar fi magistrală-stea și inel-stea.

– topologia magistrală (bus) în care mediul conectează direct oricare două calculatoare din cadrul rețelei (Figura 1.20.).

Figura 1.20. Topologia magistrală

– topologia inel (Ring) este cea care conectează echipamentele în cadrul unei bucle închise a cablului de interconectare (Figura 1.21.).

Figura 1.21. Topologia inel

– topologia stea (star) conectează echipamentele la un calculator central prin care sunt făcute toate comunicările de date (Figura 1.22.).

Figura 1.22. Topologia stea

– topologia ierarhică (tree) este topologia în care echipamentul central este structurat pe mai multe nivele astfel încât datele pot fi translatate prin unul sau mai multe din dispozitive pentru a ajunge la destinație (Figura 1.23.).

Figură 1.23. Topologia ierarhică

– topologia plasă (mesh) este un tip de rețea ce furnizează căi alternate pentru date, deoarece fiecare nod al rețelei este conectat la mai multe alte noduri (Figura 1.24.).

Figura 1.24 Topologia plasă

Următorul tabel (Tabelul 1.2.) prezintă câteva aspecte pe baza cărora se poate alege o anumită topologie:

Tabelul 1.2.

Caracteristicile principale ale diferitelor topologii

1.2.4. Tehnici și protocoale de transmisie în rețea

Transmiterea semnalelor prin rețea se poate face în mai multe moduri. Tehnica de transmitere reprezintă modul în care semnalele sunt transmise prin rețea. Transmisia semnalelor prin mediul de transmisie se face prin următoarele metode principale:

– bandă de bază (baseband) – presupune folosirea unui semnal ce reprezintă o combinație între semnalul de date și cel de ceas;

– bandă largă (broad band) – atunci când semnalul numeric modulează o purtătoare, folosind unde electromagnetice ce împart spectrul de frecvențe disponibil în mai multe canale (se realizează o modulație în amplitudine, frecvență sau fază).

O problemă majoră, apărută încă de la apariția rețelelor locale, a fost reprezentată de omogenitatea acestora. Transmisia informației era o problemă atunci când pe diferite noduri ale rețelei aveam sisteme de operare diferite. Portabilitatea aplicațiilor era scăzută și aceasta avea efect asupra dezvoltării de aplicații optime la nivel de rețea, și implicit asupra performanțelor organizației. Trebuia făcută o traducere a informației între sisteme de operare diferite sau trebuia adoptat un standard de comunicații în domeniu.

Standardizarea la nivelul utilizatorilor a fost rezolvată parțial prin adoptarea unor modele de referință de către Organizația Internațională de Standardizare (ISO):

a) OSI/ISO (Open System Interconnection / International Standard Organization);

b) TCP/IP (Transport Control Protocol / Internet Protocol)

Complexitatea aspectelor de comunicație dintr-o rețea a condus în mod natural la adoptarea unor protocoale structurate de regulă pe mai multe nivele numite și straturi funcționale.

Protocolul (comunicația între procesele din diferite noduri ale unei rețele este bazată, aproape în exclusivitate, pe utilizarea protocoalelor) – reprezintă specificația logică și procedurală a comunicației dintre procese.

Un protocol reprezintă o înțelegere între părțile care comunică asupra desfășurării transferului de date. Protocolul este compus dintr-un set de reguli care definesc formatul și semnificația datelor, pachetelor și mesajelor schimbate între entitățile unui nivel.

Un serviciu reprezintă un set de operații pe care un anumit nivel le furnizează nivelului ierarhic.

Proiectarea unei rețele reprezintă, de regulă, un lucru destul de greu. Pentru a se reduce din complexitatea proiectării, rețelele sunt organizate sub formă de straturi sau nivele. Numărul de niveluri, denumirea, structura, funcțiile fiecărui nivel variază de la rețea la rețea. Cum nivelele sunt așezate ierarhic unul peste altul, scopul fiecărui nivel este să ofere servicii nivelului superior. Modelul de referință OSI operează cu următoarele nivele:

aplicație;

prezentare;

sesiune;

transport;

rețea;

legătură de date;

fizic.

Modelul de referință TCP/IPoperează cu următoarele nivele:

aplicație;

transport;

internet;

gazdă de rețea.

O comparație grafică a celor două modele, din punct de vedere al numărului deniveluri, este dată în figura următoare (Figura 1.25.).

Figura 1.25 Modelele OSI și TCP/IP

http://www.tcpipguide.com/free/t_TCPIPArchitectureandtheTCPIPModel-2.htm

Sistemul de operare în rețea. Selectarea sistemului de operare în rețea, se realizează de obicei din una din următoarele variante:

UNIX;

Linux (sau alte variante open source);

Windows Server 2003/2008;

NetWare.

Oranizațiile de mărime mică și mijlocie folosesc cu predilecție siteme de operare Windows Server 2003/2008 și sisteme de operare bazate pe distribuții Linux (Red Hat, CentOS etc). Majoritatea sistemelor de operare, indiferent că sunt achiziționate contr-cost sau sunt gratuite, au inclusă în denumire și specificația „Server”.

Sistemul de operare Windows Server 2003 poate fi achiziționat pentru ca sistem de operare pe 32 de biți sau pe 64 de biți. Edițiile sub care este acesta livrat, cu costurile aferente, sunt:

Standard Edition;

Web Edition;

Enterpise Edition;

DataCenter Edition.

Windows Server 2003 (Standard Edition) oferă următoarele facilități:

suport pentru mai multe procesoare, multiprocesare simetrică și multitasking;

lucrul cu Active Directory;

Microsoft Management Console (MMC);

integrare Web development și servicii;

suport pentru protocoale noi și securitate sporită;

integrare sporită cu alte sisteme de operare în rețea;

Remote Client Services integrat;

console de monitorizare și configurare performanțe;

suport pentru dispozitive noi și moderne de stocare.

Windows Server 2008 R2 (Release 2) vine suplimentar cu următoarele facilități:

unelte de menagement al consumului pentru reducerea costurilor;

Live Migration, care permite mutarea mașinilor virtuale fără ca acestea să fie oprite;

Direct Access pentru conectare remote fără a mai fi necesară existența unei rețele virtuale private (VPN);

tehnologia Hyper-V™ pentru virtualizare resurse;

securitate sporită;

automatizarea proceselor de management.

Red Hat Enterpise Linux 5 server oferă următoarele facilități:

cea mai bună securitate din domeniu a serverelor;

compatibilitate sporită cu fișierele și mediile de autentificare Windows;

interoperabilitate și securitate sporită cu mediile UNIX;

facilități sporite de actualizare software;

facilități extinse de stocare și securizare pentru dispozitive noi;

facilități de auditare și certificare;

facilități extinse de virtualizare pentru reducere costuri;

management simplificat pentru partea de virtualizare.

1.2.5. Internet

Internetul poate fi cinsiderat ca una din marile realizări ale secolului trecut. Acesta poate fi privit ca un vector al progresului în mai toate domeniile.

Etapele care au precedat apariția Internetului au fost:

1. În 1969, Ministerul Apărării al Statelor Unite a creat Agenția pentru Proiecte de Cercetare Avansate (Advanced Research Projects Agency – ARPA). Obiectivul său consta în proiectarea unei rețele de comunicații care să asigure transmiterea mesajelor, rețea ce s-a numit ARPANET.

2. În anul 1983 din motive pragmatice, rețeaua ARPANET s-a despărțit în două sisteme diferite numite ARPANET (pentru cercetare, pentru domeniul civil) și MILNET (destinată operațiilor militare). Rețelele au rămas conectate, astfel încât utilizatorii să poată schimba informații, devenind sistemul atât de cunoscut sub numele de INTERNET.

3. Anul 1986 reprezintă un moment important al evoluției rețelei Internet, când Fundația Națională pentru Știință a creat NSFNET, constituită prin conectare a câtorva supercalculatoare de mare viteză pe teritoriul Statelor Unite în scopuri științifice. Astfel, ARPANET s-a desființat, iar NSFNET a devenit principalul canal de comunicare – magistrala INTERNET.

Internetul reprezintă o rețea informatică mondială între computere conectate la diferite rețele locale.

Internetul se mai poate defini ca modalitate de comunicare între calculatoare, ca un ansamblu de moduri de comunicare și stocare a informațiilor într-o formă recuperabilă.

Internetul, într-o accepțiune mai simplă, presupune o uriașă rețea de calculatoare (unde oricine își poate conecta propriul calculator), împreună cu comunitatea de persoane care se conectează la rețea.

În anul 1985 numărul calculatoarelor conectate la Internet era de 2.000 de calculatoare, numărul de utilizatori Internet în 1991 era de 4 milioane, ajungându-se, în prezent, la un număr de peste 2.092 de milioane de utilizatori.

Cea mai rapidă dezvoltare în cadrul Rețelei Internet a constituit-o World Wide Web (denumit și WWW sau W3). Din punct de vedere tehnic, Web-ul este o parte a Internetului sau un mod de informare prin Internet.

Avantajele Internetului sunt multiple. Dacă este să enumerăm numai câteva din acestea, atunci ar fi:

Poșta electronică. Transmiterea de mesaje de poștă electronică (e-mail) a fost una din primele modalități de folosire a Internetului. Acest serviciu a evoluat de la o simplă transmitere a informației la posibilitatea de atașare de fișiere etc.

IM. Serviciul de instant messaging – mesagerie instant – permite comunicarea și transmiterea instant de mesaje scrise, comunicarea prin voce, realizarea de videoconferințe, transmiterea de fișiere etc.

Groups/groupware. Grupurile de discuții se bazează pe serviciul oferit de aplicații care acceptă conlucrarea a mai multor utilizatori care au sarcini asociate în rețele locale și de la distanță sau pentru socializare și discuții.

Accesul la informație. Folosirea serviciului de World Wide Web a făcut posibilă o mai rapidă și mai facilă informare a utilizatorului. Motoarele de căutare a informației au permis ca rezultatele căutărilor să fie rapide și de o acuratețe ridicată.

Descărcare de software. Prin intermediul Internetului se pot descărca, de la diferite surse, aplicații pentru testare, muzică, filme etc. Trebuie amintit aici că descărcarea ilegală de materiale supuse protecției dreptului de proprietate este ilegală.

Comerț on-line. Apariția și dezvoltarea Internetului a făcut posibilă și apariția comerțului electronic (e-Commerce).

Conectarea unui utilizator casnic sau a unei organizații mici sau medii la Internet se face printr-un furnizor (provider) de Internet. Acesta va furniza servicii prin conectare directă – conexiune rapidă ca viteză de transfer dar scumpă – sau prin intermediul unei conexiuni cu ajutorul unui modem sau alt dispozitiv similar – conexiune mai lentă dar mai ieftină. Conectarea folosind unul din aceste două moduri este exemplificată în figura următoare (Figura 1.26.).

Figura 1.26. Conectarea printr-un furnizor de servicii internet

Dacă se dorește o conexiune care să permită o viteză mare de transfer, atunci se poate face o conexiune directă folosind medii de transmisie de tip fibră optică sau se pot folosi unde radio – cuplarea cu ajutorul antenelor parabolice.

O problemă care nu trebuie neglijată atunci când ne conectăm la Internet, o reprezintă securitatea datelor din rețeaua locală sau de pe propriul calculator.

Conectarea unei rețele locale la Internet se va face prin folosirea unui calculator gateway – poartă – care are, ca principal rol, schimbul de pachete (rutarea) între rețeaua locală și Internet.

Accesarea unui calculator conectat la rețeaua lnternet (host sau site) se va face dacă este cunoscută „adresa” pe care acesta o are în rețea. În Internet există două modalități de identificare a unor calculatoare conectate la Internet: fie precizând direct adresa acestuia formată din 4 grupe de cifre fiecare între 0 și 255 despărțite prin puncte (exemplu „198.222.10.10”), fie precizând un nume literal al acestuia dacă avem acces la un calculator special numit DNS (Domain Name Server) care știe să traducă aceste nume în adrese Internet.

De obicei numele sunt formate la rândul lor din trei părți despărțite prin punct: nume_host.subdomeniu.domeniul. Subdomeniul va putea fi și el împărțit în mai multe domenii despărțite prin punct.

De exemplu adresa:

www.upit.ro definește serverul de web al Universității din Pitești și care se găsește în România (ro). Câteva exemple de domenii sunt:

Pentru a Accesa resursele din rețeaua Internet este necesar un browser Web pentru a explora sistemul World Wide Web, folosirea unui client/program de poștă electronice pentru a citi mesageria de poștă electronică etc.

Principalele browsere de Internet sunt (în ordine cronologică):

Netscape Navigator;

Internet Explorer;

Mozilla;

Opera;

Firefox;

Safari;

Chrome.

Printre cele mai populare programe de client de poștă electronică (e-mail) avem:

Microsoft Outlook;

Pegasus Mail;

Mozilla's Thunderbird;

Eudora;

Evolution;

Apple Inc.'s Mail.

Citirea mesageriei de poștă electronică (e-mail) de la anumiți furnizori ai acestui serviciu – ca exemplu Yahoo! – nu se poate face decât dacă este cumpărată versiunea Yahoo Mail Plus care acceptă protocolul specific clienților de poștă electronică (protocolul POP3).

O altă categorie de programe client folosite pentru accesarea resurselor Internet este reprezentată de clienții de FTP, programe folosite pentru descărcarea unor fișiere din site-urile FTP din Internet și de clienții Telnet, programe folosite pentru conectarea în mod remote a calculatorului cu alte calculatoare din Internet.

1.2.6. Intranet

Intranet-ul este o rețea a unei companii ce utilizează aplicații bazate pe protocolul TCP/IP. Aplicațiile care vor rula în rețeaua Intranet asigură partajarea informațiilor, colaborarea (mult mai multe facilități decât cele oferite de produsele groupware tradiționale), precum și accesul rapid la date ([BrIS97]). Realizarea unui Intranet presupune investiții minime, atât din punct de vedere hardware cât și software.

Intranetul reprezintă o rețea de calculatoare la nivel local (al unei companii, universități etc.), care asigură accesul și distribuția informațiilor interne exclusiv persoanelor conectate la acesta.

Construirea unui Intranet în cadrul organizației oferă atât avantaje cât și dezavantaje. Atunci când se hotărăște crearea unui Intranet în cadrul organizației trebuie ținut cont atât de avantaje cât și de dezavantaje. Trebuie făcut un riguros calcul cost – beneficii. Folosirea unui Intranet în cazul unor organizații mici s-ar putea să nu fie la fel de benefică ca în cazul unor organizații de mărime medie sau mare. În cazul organizațiilor de mărime medie sau mare, este uneori imperios necesar să existe o asemenea structură datorită avantajelor pe care le oferă, mai ales că, pentru astfel de organizații, costurile sunt suportabile.

Avantajele folosirii unui Intranet sunt:

Principalul avantaj este oferit de comunicarea care se realizează în interiorul organizației sau cu organizațiile partenere, atât pentru informare cât și pentru coordonare și reglare.

Un alt avantaj este reprezentat de posibilitatea de accesare a resurselor interne ale organizației folosind avantajele tehnologiei Web. Aceste resurse se pot accesa folosind aplicații specifice Internet (standarde CGI) pentru ca cei care au acces la acestea să se informeze despre documentații, politici, cursuri etc. care sunt disponibile și sunt actualizate.

Organizațiile pot partaja informații către angajați sau colaboratori, în funcție de nevoile fiecăruia. În același mod, angajații sau colaboratorii pot să își selecteze informația de care au nevoie.

Intranetul oferă un larg spațiu de productivitate, deoarece utilizatorul poate să găsească foarte rapid informația de care are nevoie și să o folosească în funcție de sarcinile care-i sunt atribuite. Datorită tehnologiei folosite, utilizatorul poate avea acces la orice moment de timp, atât din interiorul organizației, cât și din afară, într-un mod sigur, la informația necesară.

Folosirea unei platforme tehnologice noi va oferi oportunități firmelor care o implementează.

Dezavantajele folosirii unui Intranet sunt:

Trebuie creată și implementată o politică de securitate foarte bine definită, deoarece accesul la informație este facil atât din interiorul organizației cât și din exteriorul acesteia.

Datele organizației (totale sau parțiale) sunt stocate pe unul sau mai multe servere care deservesc Intranetul. Această modalitate de stocare poate crea atât probleme de securitate, cât și probleme de disponibilitate a informației. Cel mai simplu pentru o persoană rău-voitoare este să încerce să distrugă sau să altereze datele de pe aceste servere.

Costurile construiri unui Intranet sunt ridicate, dar sunt compensate de avantajele folosirii acestuia.

Pentru a construi un Intranet în cadrul unei organizații este nevoie în principal de următoarele componente:

O rețea de calculatoare (LAN) care să permită partajarea resurselor organizației;

Un server Web (server pe care rulează un server de Internet);

Un sistem de operare pentru rețea care suportă protocolul TCP/IP;

Programe server care să accepte cereri HTTP (HyperText Transport Protocol) formulate de browsere;

Clienți (calculatoare) care să permită transmiterea și recepționarea de pachete TCP/IP;

Programe browser pentru calculatoare.

În situații limită, pentru minimizare costuri, se poate apela la un ISP (Internet Service Provider) pentru a găzdui Intranetul organizației. În acest caz, se spune că s-a creat un Extranet.

Schematic, interacțiunea dintre Intranetul organizației și exteriorul acesteia este exemplificat în figura următoare (Figura 1.27.).

Figura 1.27. Intranetul și mediul exterior organizației

Calculatorul pe care se află fișierele ce vor fi partajate în Intranet este un server de Web. Acest server poate să nu fie conectat la Internet. În acest caz, accesul la Intranet se va face doar din interiorul organizației. În situația în care se dorește ca datele partajate în Intranet să fie disponibile și din afara rețelei organizației (din Internet), conectarea Intranetului la Internet se va face printr-un dispozitiv de filtrare a cererilor și a traficului de tip Firewall. Acest dispozitiv (hardware, software sau combinat) are rolul de a proteja Intranetul organizației împotriva unui acces neautorizat.

Selectarea serverului de Intranet se va face luând în considerare aceleași criterii ca atunci când se alege un server Web pentru Internet. Pentru reducerea costurilor, trebuie ținut cont de faptul că un server din Intranet are de rezolvat cu mult mai puține cereri decât unul Internet.

Tema 2

Baze de date – concepte, proiectare și securitate

2.1. Baze de date și sisteme de gestiune a bazelor de date – concepte

2.2. Proiectarea, realizarea și securitatea bazelor de date

2.3. Data warehouse și Data mining

2.1. Baze de date și sisteme de gestiune a bazelor de date – concepte

Pentru luarea deciziei în cadrul oricărei organizații care folosește tehnica de calcul, este necesar ca să se prelucreze informația cuantificată cu ajutorul datei. Cum nu se prelucrează o informație (deci o dată) singulară, ci un set sau masive mari de date, era necesar să existe atât modalități de organizare și stocare a datelor, cât și aplicații care să permită prelucrarea acestora.

Organizarea datelor ocupă un loc important în proiectarea sistemelor informatice.

De modul în care sunt organizate datele depinde eficiența sistemului informatic.

Organizarea datelor presupune [LuSa94]:

1. Definirea, structurarea, ordonarea și gruparea datelor în colecții de date omogene;

2. Stabilirea legăturilor (relațiilor) între date, între elementele unei colecții, între colecțiile de date;

3. Reprezentarea (stocarea) lor pe suport informațional, prelucrabil într-un sistem de calcul.

Scopul organizării datelor îl constituie regăsirea automată a datelor după diverse criterii și forme.

Obiectivele urmărite în organizarea datelor sunt:

1. Timpul de acces la datele organizate pe diferite tipuri de suporturi de date să fie minim – acces rapid la date.

2. Spațiul de memorie internă și externă ocupat de date să fie cât mai redus – acces rapid la date. Se urmărește ca pe un spațiu de memorie cât mai mic, să se introducă un volum cât mai mare de date.

3. Datele să apară o singură dată în sistem – unicitatea datelor. În anumite situații, pentru accesul rapid la date, se impune o redundanță minimă și controlată a datelor.

4. Să permită schimbarea structurii datelor și a relațiilor dintre ele, fără a modifica programele care le gestionează – flexibilitatea datelor.

Dintre definițiile multiple ale unei baze de date trebuie reținute două și anume:

O bază de date poate fi definită ca o colecție de date accesibilă pentru prelucrare unui număr de utilizatori sau procese. Aceasta este definiția mai puțin riguroasă și mai ușor de reținut.

O bază de date poate fi definită ca o colecție partajată de date, între care există relații logice, precum și o descriere a acestora, proiectată pentru a satisface necesitățile informaționale ale unei organizații.

Ca percepție pentru utilizator, o bază de date apare ca o colecție de date stocate pe memorii externe adresabile, folosite de o mulțime de utilizatori.

Baza de date astfel definită trebuie să îndeplinească următoarele condiții:

Să asigure o independență sporită a datelor față de programe și invers;

Structura bazei de date trebuie concepută astfel încât să asigure informațiile necesare și suficiente pentru cerințele de informare și decizie;

Să se asigure o redundanță minimă și controlată a datelor;

Să permită accesul rapid la informațiile stocate în baza de date

Informațiile conținute în baza de date vor putea fi accesate de o mulțime de utilizatori. Accesul necontrolat al utilizatorilor poate crea neajunsuri în funcționarea sistemului. Aceste neajunsuri pot fi de la cele mai nesemnificative și până la blocări ale accesului sau, mai grav, chiar pierderi de date uneori irecuperabile.

Schematic, funcționarea unui sistem de baze de date este exemplificată în figura 2.1.

Figura 2.1. Funcționarea schematică a unui sistem de baze de date

[prelucrare VeLu03]

O bază de date supusă operațiilor de prelucrare este organizată în câmpuri, înregistrări și fișiere (Figura 2.2.).

Figura 2.2. Organizarea unei baze de date

Un câmp reprezintă o singură informație.

O înregistrare reprezintă un set întreg de câmpuri.

Un fișier este un set întreg de înregistrări.

Bazele de date sunt extrem de variate în funcție de criteriile luate în considerare. O clasificare ar putea fi făcută ținând cont de următoarele criterii:

Scop: generalizate și specializate;

Modelul de date folosit: ierarhice, rețele, relaționale, orientate obiect;

Extinderea geografică: locale, distribuite;

Limbajele utilizate: autonome (limbaje proprii), cu limbaj gazdă, mixte.

Sistemul de bază de date [VeLu03] este un ansamblu de elemente intercondiționate, care contribuie la realizarea și exploatarea unei aplicații cu baze de date. Elementele care fac parte din acest ansamblu se referă la date, software și alte resurse auxiliare [VeLu03].

Datele sunt organizate în baze de date care vor conține [VeLu03]:

colecțiile de date propriu-zise;

dicționarul de date (care cuprinde structura de date, constrângerile de integritate, viziunile etc.);

fișierele anexe (fișiere cu parametri, fișiere de index etc.).

Software-ul necesar prelucrării datelor va conține [VeLu03]:

sistemul de gestiune al bazelor de date (SGBD-ul);

programele de aplicații dezvoltate în cadrul SGBD-ului sau în afara acestuia.

Resursele auxiliare sunt componente care contribuie la realizarea și funcționarea întregului sistem de bază de date [VeLu03]:

set de proceduri automate și manuale;

reglementări legale și administrative;

mijloace hardware utilizate;

personal implicat pe categorii de utilizatori.

Schematic, arhitectura pe niveluri a unui SBD este următoarea (Figura 2.3.).

Figura 2.3. Arhitectura pe niveluri a unui SBD

[VeLu03]

Nivelul logic reprezintă viziunea programatorului asupra datelor.

Nivelul conceptual reprezintă viziunea administratorului bazei de date asupra datelor.

Nivelul fizic reprezintă viziunea inginerului (analistului) de sistem asupra datelor.

Programatorul de aplicație, administratorul de bază de date și inginerul (analistul) de sistem vor efectua operații specifice fiecărui nivel. Programatorul va realiza programele de aplicație pentru descrierea și manipularea datelor folosind un SGBD sau o aplicație care să interacționeze cu SGBD-ul sau cu baza de date. Administratorul bazei de date va realiza structura conceptuală a bazei de date, folosind diferite instrumente și tehnici specifice. Inginerul de sistem (analistul) va realiza structura internă (fizică), dedusă din cea externă.

O bază de date care nu are asociat un Sistem de Gestiune a Bazelor de Date (SGBD), nu-și îndeplinește scopul pentru care a fost creată.

Sistemul de gestiune al bazei de date (SGBD) reprezintă software-ul propriu-zis al acesteia care asigură realizarea următoarelor activități:

Definirea structurii bazei de date;

Încărcarea datelor în baza de date;

Accesul la date (interogare, actualizare);

Întreținerea bazei de date (colectarea și refolosirea spațiilor goale, refacerea bazei de date în cazul unui incident);

Reorganizarea bazei de date;

Securitatea datelor.

Funcțiile unui Sistem de Gestiune a Bazelor de Date sunt [LuBo95]:

Funcția de descriere a datelor.

Permite definirea structurii bazei de date cu ajutorul limbajului de definire.

Definirea datelor poate fi realizată la nivel logic, conceptual și fizic.

Se descriu următoarele: multitudinea atributelor (câmpurilor) din cadrul structurii bazei de date, legăturile dintre entitățile bazei de date sau dintre atributele aceleiași entități, se definesc eventualele criterii de validare a datelor, metodele de acces la date, aspecte legate de asigurarea confidențialității datelor etc.

Funcția de manipulare a datelor.

Este cea mai complexă.

Realizează următoarele:

Crearea (încărcarea) bazei de date;

Adăugarea de noi înregistrări;

Suprimarea unor înregistrări;

Modificarea valorilor corespunzătoare unor câmpuri;

Căutarea, sortarea, și editarea parțială sau totală a unei înregistrări etc.

Funcția de utilizare. Asigură mulțimea interfețelor necesare pentru comunicarea tuturor utilizatorilor cu baza de date.

Principalele categorii de utilizatori sunt:

Utilizatori „liberi” sau convenționali – neinformaticieni;

Utilizatori programatori;

Administratorul bazei de date.

Funcția de administrare. Este o funcție complexă și este de competența administratorului bazei de date

Dezvoltarea bazelor de date și a sistemelor de gestiune a bazelor de date s-a făcut în strânsă concordanță cu dezvoltarea hardware a sistemelor de calcul, mai precis cu dezvoltarea și extinderea rețelelor de calculatoare.

Înainte de conectarea la o rețea de calculatoare, bazele de date, într-o formă primitivă și mai puțin evoluată, se aflau pe calculatoare stand-alone. Aceste baze de date sunt întâlnite în literatura de specialitate, ca baze de date locale.

Ulterior, odată cu apariția și dezvoltarea rețelelor de calculatore, bazele de date au putut să fie folosite la adevăratul lor potențial. Elementul central devine serverul sau grupuri de servere, care permiteau stocarea unui volum foarte mare de date, precum și accesarea acestora din diferitele locații ale rețelei unde se aflau stațiile de lucru deservite de diferitele categorii de utilizatori. Beneficiind de facilitățile oferite de sistemele de operare în rețea și de facilitățile noilor baze de date și sisteme de gestiune a bazelor de date, accesul utilizatorilor la datele stocate se putea face discrețional.

Apariția Internetului a făcut ca bazele de date să poată fi accesate dincolo de rețeaua locală a organizației, să poată fi accesate cu ajutorul sistemelor de calcul mobile sau cu ajutorul terminalelor de telefonie inteligente. Schematic, evoluția bazelor de date ca amploare este exemplificată în figura 2.4.

Figura 2.4. Evoluția bazelor de date ca amploare

Ca evoluție istorică, bazele de date au parcurs următoarele generații (Figura 2.5.).

Figura 2.5. Generații de baze de date

Extinderea geografică a activităților organizației, sprijinită de evoluția bazelor de date a făcut posibilă apariția bazelor de date distribuite. O bază de date distribuită este o mulțime de colecții de date memorate, conform unui model de date, în diferite locuri (noduri) ale unei rețele de calculatoare, colecții legate logic (integrate), astfel încât să constituie o bază de date unică [VeLu03].

Caracteristicile principale ale unei baze de date distribuite sunt:

Un utilizator al bazelor de date distribuite va manipula datele fără a fi nevoie să cunoască localizarea acestora în rețea. Utilizatorul va manipula datele, ca și cum ar fi locale.

În nodurile rețelei, bazele de date sunt organizate ca și bazele de date locale, peste care se adaugă cerințe specifice care să permită accesul distribuit.

Multiplicarea datelor se face ținând cont de mai multe criterii. Criteriile de performanță, fiabilitate, securitate etc. sunt primele care trebuie luate în considerare.

Modul de distribuire a datelor în nodurile rețelei poate crea atât avantaje cât și dezavantaje, pentru bazele de date distribuite (Tabelul 2.1.) [VeLu03].

Tabelul 2.1.

Tipuri de baze de date distribuite

La ora actuală, organizațiile folosesc depozite mari de date – data warehouse – pe care se aplică instrumente de inteligență artificială, care le permit extragerea de cunoștințe noi pentru asistarea deciziilor. Depozitele de date (Data warehouse) reprezintă o colecție de date proiectate pentru a asigura luarea deciziilor manageriale. Depozitele de date conțin o mare varietate de date, ce prezintă o imagine coerentă a condițiilor de afaceri ale firmei la un anumit moment. Data warehouse se referă la o combinație de mai multe baze de date diferite corespunzătoare întregii firme.

2.2. Proiectarea, realizarea și securitatea bazelor de date

De buna proiectare și securizare a bazelor de date va depinde în viitor funcționarea optimă a activităților organizației. Dacă bazele de date sunt proiectate fără a ține cont de cerințele specifice în domeniu, atunci sunt șanse mari ca activitățile organizatiei să se desfășoare cu întreruperi sau chiar să se oprească.

Pentru realizarea unei baze de date se parcurg următoarele etape [LuBo95] (Figura 2.5.):

Analiza sistemului (domeniului) economic și a cerințelor informaționale asociate.

Proiectarea structurii bazei de date (schema conceptuală, externă și internă).

Încărcarea datelor în baza de date.

Exploatarea și întreținerea bazei de date.

Figura 2.5. Activități parcurse pentru realizarea unei baze de date

Analiza sistemului economic existent și a cerințelor informaționale asociate presupune o serie de activități printre care se pot enumera [VeLu03]:

definirea caracteristicilor generale ale organizației;

identificarea activităților desfășurate;

identificarea resurselor existente (informaționale, umane, echipamente etc.);

identificarea necesităților de prelucrare.

Se efectuează o serie de analize structurale, dinamice și funcționale pentru a se evidenția modul de structurare a datelor și a legăturilor dintre ele, comportamentul elementelor sistemului la anumite schimbări, precum și a modului de satisfacere a cerințelor informaționale asigurate.

Proiectarea structurii bazei de date va presupune pe lângă proiectarea schemei conceptuale externă și internă și alegerea sistemului de gestiune a bazei de date. Pentru realizarea unui server de baze de date, aceasta reprezintă o etapă foarte importantă. Alegerea sistemului de baze de date se face luând în considerare două aspecte: cerințele și performanțele.

Cerințele se referă la cerințele utilizatorului/aplicației și vor ține cont de [VeLu03]:

volumul de date estimat a fi memorat și prelucrat;

complexitatea problemelor de rezolvat;

ponderea și frecvența operațiilor de intrare-ieșire;

condiții privind protecția datelor;

operații necesare pe baza de date;

particularități ale organizației pentru care se realizează baza de date.

Performanțele tehnice ale sistemului de gestiune a bazelor de date vor ține cont de [VeLu03]:

ponderea pe piața (COTS sau OpenSource) a acestuia și tendințele de piață;

configurația de calcul minimă necesară;

modelul de date pe care-l implementează;

limbajele de programare proprii;

facilitățile oferite pentru diferitele categorii de utilizatori;

limitările care pot să apară;

optimizări realizate;

facilități tehnice.

Încărcarea datelor în baza de date este operația care presupune popularea cu înregistrări a bazei de date, în vederea exploatării acesteia. Este recomandat să se efectueze operații de testare și verificare înainte de a se încărca datele reale. De asemenea, înainte de încărcarea datelor reale, se impune golirea totală a datelor de test.

Exploatarea și întreținerea bazei de date reprezintă, practic, ultima etapă, etapă care presupune folosirea bazei de date pentru scopurile pentru care a fost proiectată. Pentru perioada de exploatare, vor fi necesare periodic operații de întreținere pentru ca baza de date să funcționeze la parametri proiectați.

Realizarea unei baze de date este o activitate foarte complexă și trebuie efectuată după o metodologie adecvată și de către specialiști cu experiență în domeniu. Cu cât activitățile și cerințele informaționale ale organizației sunt mai complexe, cu atât echipele de realizare și proiectare trebuie să dispună de cunoștințe și experiență în domeniu.

Securitatea bazelor de date

Securitatea bazelor de date presupune protejarea bazei de date împotriva amenințărilor intenționate sau neintenționate, prin utilizarea unor elemente de control bazate sau nu pe calculatoare.

În cadrul oricărei organizații trebuie protejate, cu precădere, bazele de date deoarece:

bazele de date formează marea masă a informațiilor (secrete sau nesecrete) cu care organizația lucrează;

bazele de date pot dezvălui date secrete prin prelucrarea datelor publice (nesecrete).

Securitatea bazelor de date se referă la următoarele situații care pot să apară:

Furt și fraudă;

Pierderea secretului/confidențialității;

Pierderea caracterului privat;

Pierderea integrității;

Pierderea disponibilității.

Dacă furtul și frauda sunt usor de descris, celelalte trebuiesc un pic detaliate.

Confidențialitatea sau secretizarea reprezintă interzicerea accesului neautorizat al persoanelor la informația care nu le este destinată.

Integritatea sau acuratețea presupune ca datele stocate în calculator să nu poată fi alterate sau să nu poată fi modificate, decât de persoane autorizate.

Disponibilitatea presupune ca datele stocate în calculator să poată să fie accesate de persoanele autorizate.

Pericolele la adresa bazelor de date sunt multiple. O parte importantă din acestea sunt exemplificate in tabelul 2.2.

Tabelul 2.2.

Pericole la adresa bazelor de date

Pentru a se asigura o securitate optimă a bazelor de date, trebuie aplicate o serie de măsuri. Aceste măsuri pot fi măsuri generale de securitate sau pot fi măsuri specifice bazelor de date.

Măsurile generale sunt măsuri grupate în:

fizice;

umane;

hardware;

software.

Măsurile fizice țin de asigurarea securității fizice a locațiilor organizației. Măsurile umane vor avea în vedere pregătirea și supravegherea personalului care interacționează cu bazele de date. Măsurile hardware și software iau în considerare capacitățile sistemului de calcul în asigurarea securității.

O altă împărțire grupează aceste măsuri în măsuri bazate pe calculator și măsuri care nu sunt bazate pe calculator. Măsurile de control care nu sunt bazate pe calculator includ politicile, acordurile și alte elemente de control administrative, diferite de cele care susțin elementele de control bazate pe calculator.

Securitatea bazelor de date poate fi împărțită în următoarele puncte de interes:

1. Securitatea serverului

Securitatea serverului implică limitarea accesului la datele stocate pe server.

Reprezintă cea mai importantă opțiune care trebuie luată în calcul și care trebuie planificată cu grijă.

2. Conexiunile la baza de date

Utilizarea de ODBC va trebui să fie urmată de verificarea că fiecărei conexiuni îi corespunde un user unic care va putea să acceseze datele partajate.

3. Tabela de control acces

Tabela de control a accesului este cea mai utilizată formă de securizare a bazei de date.

O utilizare adecvată a Tabelei de control acces/Table access control implică o colaborare strânsă între administratorul de sistem și dezvoltatorul bazei de date

4. Tabele de restricții

Tabelele de restricții vor cuprinde liste cu subiecții nesiguri care ar putea să deschidă sesiuni libere. Metodele folosite pentru aceasta sunt:

– Adrese IP sigure

Serverele UNIX pot fi configurate pentru a primi numai interogări de la host-uri care sunt într-o listă.

– Anularea contului de server

Posibilitatea de a se suspenda un cont, atunci când se încercă ghicirea parolei, după un număr predefinit de încercări (de regulă 3) .

– Unelte speciale

Programe speciale, cum ar fi Real Secure by ISS care vor alerta în caz de încercări de intruziune.

Cerinte minime de securitate în lucrul cu BD

Cerințele minime presupun realizarea următoarelor operații:

1. Integritatea fizică a bazelor de date;

2. Integritatea logică a bazelor de date;

3. Integritatea fiecărui element care compune baza de date;

4. Controlul accesului;

5. Identificarea utilizatorului;

6. Disponibilitatea.

Integritatea fizică a bazelor de date presupune prevenirea distrugerii fizice a întregii baze de date. În această situație este afectat fișierul de baze de date, care este pierdut (șters accidental sau voit) sau nu poate fi accesat din cauza unor defecte de fișier, survenite în urma unor actiuni malițioase sau a unor defecte hardware a dispozitivelor de stocare.

Integritatea logică a bazei de date impune ca fiecare element al bazei de date să fie protejat. Pierderile în această situație se referă la înregistrări întregi, care nu pot fi accesate, câmpuri care nu pot fi accesate sau au datele trunchiate etc.

Dintre formele de protecție, cele mai sigure și mai utilizate pentru prevenirea acestor situații, se numără operația de salvare periodică a datelor (backup).

Integritatea fiecărui element care formează baza de date este asigurată de sistemul de gestiune al bazelor de date (SGBD) în următoarele trei moduri:

– Verificarea câmpurilor;

– Controlul accesului;

– Schimbarea „log“-ului.

Integritatea fiecărui element este foarte importantă de asigurat, mai ales atunci când sistemul de calcul eșuează la o operație de modificare a datelor. Atunci pot apărea două situații:

– Numai o porțiune din câmp a fost modificată, restul rămânând nemodificat;

– La actualizarea mai multor câmpuri când erorile de actualizare sunt prezente la mai mult de un câmp.

Pentru a se preîntâmpina aceasta, modificarea/actualizarea se va face în două faze:

Faza de intenție

Faza de intenție presupune ca SGBD-ul să culeagă informațiile și resursele necesare pentru actualizare.

Nu se face nici o modificare în baza de date.

Faza de înregistrare

Faza de înregistrare se face modificând mai întâi indicatorul (flag) de scriere, după care SGBD-ul face modificările permanente. Dacă sistemul eșuează în timpul fazei a doua, baza de date va conține date incomplete, dar acest lucru poate fi remediat prin reluarea fazei a doua.

Controlul accesului se face ținând cont de restricțiile administratorului bazei de date. SGBD-ul va aplica politica de securitate a administratorului bazei de date. Controlul accesului se va face ținând cont de accesul asupra datelor, care vine din partea sistemului de operare sau din partea aplicației care lucrează cu baza de date.

Sistemul de operare lucrează cu fișiere, și nu cu înregistrări din acestea, care la o primă vedere par să nu aibă nici o legătură între ele. Din acest punct de vedere, dezvăluirea de date senzitive este mai puțin probabilă.

Spre deosebire de sistemul de operare, programul care interacționează cu înregistrările din baza de date, cu valorile de câmpuri din anumite înregistrări, poate dezvălui date senzitive.

Ținând cont de acestea se poate spune că: Este mai ușor de implementat o listă de acces pentru un număr foarte mare de fișiere, decât o listă de acces la elementele unei baze de date.

Identificarea utilizatorului va permite în orice moment să se știe cine ce face în sistem. Toate operațiile efectuate de utilizatori vor fi stocate și vor forma un istoric al accesului. Verificarea istoricului tuturor accesărilor este uneori greoaie și necesită un volum de muncă considerabil. De asemenea, pot apărea și raportări false, ca în cazul în care s-a accesat un câmp, dar valoarea acestuia nu a fost afișată.

Regulile de autentificare ale SGBD-ului rulează peste cele ale sistemului de operare.

Un principiu de bază al securității datelor spune că trebuie să fim suspicioși la orice informație primită.

Disponibilitatea va permite arbitrarea unei cereri în care doi sau mai mulți utilizatori solicită accesarea aceleiași înregistrări.

Datele care nu pot fi făcute publice poartă denumirea de date senzitive.

O dată senzitivă va fi disponibilă numai persoanelor autorizate.

Factorii care fac ca o dată să fie senzitivă sunt:

– Sunt date inerent senzitive;

– Provin dintr-o sursă senzitivă;

– Sunt declarate senzitive;

– Atribute sau înregistrări senzitive;

– Sunt senzitive în relație cu datele anterioare.

Datele inerent senzitive sunt acele date care, indiferent de organizație, nu pot fi făcute publice. Ca exemplu: salariile angajaților.

Toate datele care provin dintr-o sursă care nu poate fi publică sunt date senzitive. Ca exemplu: date militare.

În funcție de politica de securitate a organizației, anumite date pot fi declarate ca fiind senzitive. Ca exemplu: o firmă hotărăște ca datele referitoare la lucrările pentru un anume domeniu să nu fie făcute publice.

În cadrul unei tabele, anumite atribute sau înregistrări nu pot fi făcute publice. Ca exemplu: numărul de sancțiuni nu va putea fi afișat ca dată publică sau, înregistrarea cu datele personalului de conducere (deși toate celelalte înregistrări sunt publice).

Datele sunt senzitive în cazul în care printr-o relație între date se pot extrage date senzitive din date publice.

Atacatorii dispun de tehnici și cunoștințe din ce în ce mai complexe și sofisticate pentru a putea să aibă acces la date. De aceea, este necesar să se stopeze pe cât posibil, toate acțiunile care au efect asupra securității bazelor de date.

În urma unei acțiuni malițioase, un atacator va putea să intre în posesia unor date senzitive exacte, aproximative, negative sau probabile.

Afișarea de date exacte are loc atunci când, în lipsa unor mecanisme de protecție, datele afișate sunt exact cele așteptate.

În situația când s-au implementat mecanisme primitive de protecție și nu mai pot fi afișate date exacte, se pot aplica tehnici care să permită afișarea de date aproximative.

Afișarea de date negative are loc atunci când se încearcă suprascrierea datelor și apar mesaje de eroare care confirmă existența unei date senzitive.

Afișarea de date probabile are loc atunci când mecanismele de protecție sunt bine puse la punct dar, pe baza unor acțiuni complexe se poate determina existența unor date probabile.

Tehnicile de atac folosite sunt multiple, începând cu cele mai simple și terminând cu tehnici foarte complexe care necesită resurse foarte multe și sofisticate.

Observație: În cele ce urmează, ne vom referi la acțiuni asupra înregistrărilor din baza de date și nu asupra fișierelor care compun baza de date.

Principalele tehnici de atac folosite sunt:

Atacul direct;

Atacul indirect;

Atacul prin urmărire.

Atacul direct

Atacul direct este un atac evident. Acesta poate fi detectat foarte ușor prin prelucrarea interogării.

Ca exemplu (luând o tabelă cu următoarele câmpuri):

NUME – Denumire persoană

SEX – Sex

STUD – Studii (L-liceu, P-postliceale, S-superioare)

SALB – Salariu brut

SANC – Sancțiuni (0-Nu, 3-Da, multe)

COMP – Compartiment lucru (C-comercial, F-financiar, P-producție)

Câmpurile SALB și SANC sunt senzitive și nu vor fi afișate.

Datele sunt:

Tabela SALA (Salariați)

Un atac evident va avea forma:

afișează (SEX=’M’ și SANC=1)

și va avea ca rezultat:

Acesta este un atac evident și va fi tratat ca atare. Atacatorul poate să încerce să abată atenția, prin folosirea unor criterii de selecție care să deruteze. Vom avea ceva de forma:

afișează (SEX=’M’ și SANC=1) și (SEX=’M’ și SEX#’F’) și COMP=’C ’

și va avea ca rezultat:

Se observă că doar condiția (SEX=’M ’ AND SANC=1) este cea reală după care se face sortarea, celelalte fiind puse pentru derutare.

În cazul în care, din motive de securitate, se blochează anumite afișări, se va încerca folosirea altor metode.

Atacul indirect

Pe tabela SALA, cu câmpurile SALB și SANC sunt senzitive, vom încerca să deducem care sunt salariile grupate pe compartimente (COMP) și pe sexe (SEX).

Următoarele interogări:

afișează suma SALB pentru SEX=’M’ și COMP=’C ’

afișează suma SALB pentru SEX=’M’ și COMP=’F ’

afișează suma SALB pentru SEX=’M’ și COMP=’P ’

afișează suma SALB pentru SEX=’M’

afișează suma SALB pentru SEX=’F’ și COMP=’C ’

afișează suma SALB pentru SEX=’F’ și COMP=’F ’

afișează suma SALB pentru SEX=’F’ și COMP=’P ’

afișează suma SALB pentru SEX=’F’

afișează suma SALB pentru COMP=’C ’

afișează suma SALB pentru COMP=’F ’

afișează suma SALB pentru COMP=’P ’

afișează suma SALB

vor avea ca rezultate:

Analizând datele rezultate, se poate deduce faptul că la compartimentul C (Contabilitate), o persoană de sex masculin are un salariu de 6.000 de unități monetare, la compartimentul P (Proiectare), o persoană de sex masculin are un salariu de 5.500 de unități monetare, iar la compartimentul F (Financiar), o persoană de sex feminin are un salariu de 6.400 de unități monetare.

Dacă reușim să determinăm numărul de persoane de la fiecare compartiment atunci datele vor fi cu atât mai clare.

Vom aplica interogările:

afișează numărul de persoane pentru SEX=’M’ și COMP=’C ’

afișează numărul de persoane pentru SEX=’M’ și COMP=’F ’

afișează numărul de persoane pentru SEX=’M’ și COMP=’P ’

afișează numărul de persoane pentru SEX=’M’

afișează numărul de persoane pentru SEX=’F’ și COMP=’C ’

afișează numărul de persoane pentru SEX=’F’ și COMP=’F ’

afișează numărul de persoane pentru SEX=’F’ și COMP=’P ’

afișează numărul de persoane pentru SEX=’F’

afișează numărul de persoane pentru COMP=’C ’

afișează numărul de persoane pentru COMP=’F ’

afișează numărul de persoane pentru COMP=’P ’

afișează numărul de persoane

care vor avea ca rezultate:

Rezultatul afișat este de fapt cel intuit.

Aceste atacuri destul de simple nu au făcut decât să evidențieze cât de repede se pot determina anumite date senzitive din interiorul firmei, doar pe baza datelor publice. Atacul a avut succes și datorită faptului că numărul de înregistrări este redus.

În cazul tabelelor complexe, în care numărul de înregistrări este mare ne putem folosi de mai multe câmpuri pentru a extrage date senzitive. În anumite situații mai complexe, se pot folosi interogări cu ajutorul funcțiilor statistice implementate de SGBD-uri mai performante.

La acest tip de atacuri se poate răspunde cu una dintre metodele de aproximare a rezultatelor sau combinare a rezultatelor. Se poate, de asemenea, aplica și metoda de suprimare a cererilor, care se bazează pe situații când rezultatul la o cerere senzitivă este 1 (unu). Se mai folosește termenul de înregistrare dominantă atunci când o interogare afișează un singur rezultat.

Atacul prin urmărire

Acest tip de atac se aplică atunci când avem un mecanism de protecție care va suprima afișarea de înregistrări dominante.

O interogare de acest tip, refuzată, va fi împărțită în două sau mai multe interogări cu rezultate nedominante. Rezultatele obținute vor fi apoi interpretate. Dacă rezultatele nu sunt cele scontate, atunci se pot aplica interogări de o complexitate ridicată.

Ideea de bază este aceea că se aplică o interogare și se urmărește rezultatul, de aici și denumirea acestui tip de atac.

În literatura de specialitate, mai este tratat un tip de atac care poartă denumirea de inferență (inference – în limba engleză) sau deducție.

Inference/deducția – activitate unilaterală, în care un utilizator neclasificat accesează în mod legitim informații neclasificate (publice), dar pe baza cărora este capabil să deducă informații clasificate (secrete).

Se pot defini două cazuri de deducție, care apar adesea în sistemele de baze de date:

Problema agregării apare ori de câte ori un set de informații este clasificat la un nivel mai mare decât nivelurile individuale ale datelor implicate.

Exemple:

Domeniul militar. Locația individuală a navelor este neclasificată, dar informațiile în ansamblu privitoare la locația întregii flote este secretă (Figura 2.6.).

Figura 2.6. Inferența în domeniul militar

Domeniul comercial. Rapoartele totale de vânzări ale diferitelor sucursale ale firmei ar putea fi privite ca mai puțin secrete decât rapoartele globale ale companiei.

Problema asocierii datelor apare ori de câte ori două valori luate împreună sunt clasificate la un nivel mai înalt decât cel al fiecăreia dintre cele două valori (Figura 2.7.a.).

Exemplu: Lista conținând numele tuturor angajaților și lista conținând salariile sunt neclasificate, iar o listă combinată conținând numele și salariile asociate, este considerată clasificată.

Figura 2.7.a. Inferența în domeniul economic

Un alt exemplu este cel în care datele referitoare la destinația unor curse aeriene este secretă, dar consumul de combustibil pentru fiecare destinație este public (Figura 2.7.b.).

Figura 2.7.b. Inferența în domeniul economic

Un alt caz este cel în care avem un cargou aerian militar care are mai multe containere, dintre care unul este clasificat ca fiind strict secret. Cel care se ocupa de încărcare nu știe de acest container deoarece nu este afișat pe ecranul de încărcare (sau pe documentele pe care la are). O încercare de a introduce manual acel container va avea ca rezultat afișarea faptului că acel container există (Figura 2.8.).

Figura 2.8. Inferența în domeniul militar

Un exemplu mai simplu ar fi situația în care se face o căutare de forma:

afișează pentru NUME=’Popescu’

și pentru că Popescu este clasificat ca secret nu va fi afișat. Concluzia este că “Popescu” nu există în baza de date. La o încercare de introducere, mecanismele de protecție vor sesiza o suprascriere și vor afișa faptul că “Popescu” există.

În acest caz, se folosește o tehnică numită polyinstatiation. Polyinstatiation – tehnică folosită pentru prevenirea atacurilor de tip inference/deducție. Permite ca înregistrări diferite să existe în aceeași tabelă la grade diferite de clasificare (Figura 2.9.).

Figura 2.9. Polyinstatiation

Asigurarea securității unei baze de date și implicit, a unui server de baze de date, presupune o serie de acțiuni specifice. Primul pas critic îl reprezintă alegerea unui sistem de operare cu un nivel de securitate ridicat, urmat de alegerea unei baze de date/sistem de gestiune a bazelor de date care să ofere facilități sporite de securitate. Securitatea va fi împărțită între aceste două componente ale serverului.

Atribuțiile în asigurarea securității sunt (Tabelul 2.3.):

Tabelul 2.3.

Atribuții în asigurarea securității bazelor de date

O altă opțiune este reprezentată de implementarea unor mecanisme specifice, care să nu permită afișarea de date senzitive.

Pentru tipurile de atacuri mai sus enumerate, se pot aplica următoarele metode de control asupra atacurilor:

Suprimarea cererilor cu rezultate senzitive;

Aproximarea rezultatelor;

Limitarea rezultatelor unei cereri care dezvăluie date senzitive;

Combinarea rezultatelor.

Suprimarea cererilor cu rezultate senzitive

Cererile de acces la elementele bazei de date care au ca rezultat afișarea unor rezultate senzitive, sunt rejectate fără nici un răspuns. Datele senzitive nu vor fi afișate. Rezultatul unei astfel de interogări va fi corect, dar nu va fi afișat către utilizator. În cazul unei astfel de cereri, sistemul va putea să afișeze rezultate apropiate de cele reale. Acuratețea rezultatului la o interogare, care poate dezvălui date senzitive, trebuie să fie mică. Limitarea rezultatului unei cereri, care dezvăluie date senzitive se poate face în cazul în care acesta este 1 (unu).

Aproximarea rezultatelor

În cazul afișării unor rezultate senzitive, se va implementa un mecanism care să altereze rezultatele afișării. Acestea vor fi apropiate de cele reale, dar nu vor fi cele reale.

Limitarea rezultatelor unei cereri care dezvăluie date senzitive

Mecanismul de securitate va suprima afișarea rezultatelor reale dominante și în locul acestora se vor afișa valori nenumerice care vor pune în dificultate atacatorul în interpretarea rezultatelor (Figura 2.10.).

Figura 2.10. Suprimarea rezultatelor

Combinarea rezultatelor

Mecanismul de securitate va suprima afișarea rezultatelor reale dominante și în locul acestora se vor afișa combinații (sume) ale valorilor rezultate prin combinare (Figura 2.11.).

Figura 2.11. Combinarea rezultatelor

Metode de securizare a BD

Se disting trei caracteristici de bază ale securității BD:

Securitatea unui singur element poate fi diferită de securitatea altui element din aceeași înregistrare sau de valoarea aceluiași atribut. Aceasta implică implementarea securității pentru fiecare element în parte.

Sunt necesare câteva perimetre de securitate care vor reprezenta arii de acces la anumite date care uneori se pot suprapune.

Securitatea unui întreg poate fi diferită de securitatea unui element individual. Aceasta poate fi mai mare sau mai mică.

Pentru asigurarea securității, se pot aplica următoarele metode:

Partiționarea bazei de date;

Criptarea;

Blocarea integrității;

Blocarea senzitivității;

Securitatea „front-end“;

Filtru comutativ;

Vederi.

Partiționarea bazei de date

Baza de date este împărțită în baze de date separate, fiecare dintre acestea cu propriul ei nivel de securitate. Operația mai poartă numele de atomizarea bazei de date. Ca efect secundar, această operație va distruge avantajul principal al bazei de date, dar îmbunătățește precizia.

Criptarea

Dacă datele senzitive sunt criptate, un utilizator care ajunge din întâmplare în posesia unor date senzitive nu va putea să le interpreteze și să se folosească. Această criptare este însă vulnerabilă la atacuri cu text clar, sau când atacatorul substituie forma de criptare cu o alta.

Blocarea integrității

Reprezintă o cale folosită, atât pentru blocarea integrității, cât și pentru limitarea accesului la baza de date. Metoda mai poartă și denumirea de „spray paint“ deoarece fiecare element este colorat în funcție de senzitivitatea acestuia.

Culoarea este menținută cu elementul pe care-l caracterizează și nu într-o bază de date separată.

Blocarea senzitivității

Blocarea senzitivității reprezintă o combinație a două elemente:

existența unui identificator unic (numărul de înregistrare);

nivelul de securitate.

Trebuie să nu se permită aflarea a două elemente care au același nivel de securitate doar prin căutarea în porțiunea de securitate a blocării integrității. Ca rezultat al criptării, conținutul blocării, în special nivelul de securitate, este ascuns.

Securitatea „front-end“

Securitatea front-end (cunoscută și sub denumirea de gardă) este asigurată de un mecanism de tip monitor.

Secvența de interacțiuni între utilizator și mecanismul front-end este următoarea:

utilizatorul se identifică front-end;

utilizatorul transmite o cerere mecanismului front-end;

mecanismul front-end verifică autorizația utilizatorului de acces la date;

mecanismul front-end trimite o cerere către sistemul de gestiune al bazei de date (SGBD);

sistemul de gestiune al bazei de date (SGBD) efectuează o operație de acces de tip I/O;

sistemul de gestiune al bazei de date (SGBD) trimite rezultatul interogării către mecanismul front-end;

mecanismul front-end verifică validitatea datelor extrase, cu ajutorul sumelor de control și verifică dacă datele pot fi disponibile către utilizator conform nivelului de acces al utilizatorului;

mecanismul front-end va formata datele pentru utilizator;

se transmit datele către utilizator.

Filtru comutativ

Filtrul comutativ interacționează atât cu utilizatorul, cât și cu sistemul de gestiune al bazei de date (SGBD).

Filtrul comutativ va reformula cererile în felul următor:

sistemul de gestiune al bazei de date (SGBD) va efectua cât mai multe sarcini posibile, rejectând cât mai multe cereri inacceptabile, care dezvăluie date senzitive;

selectarea datelor la care utilizatorul poate să aibă acces.

Filtrul comutativ poate fi folosit atât asupra înregistrărilor, cât și asupra atributelor sau elementelor. La nivelul înregistrărilor, filtrul cere datele dorite plus suma de control criptografică; dacă acestea verifică acuratețea și accesibilitatea datelor, atunci acestea pot fi transmise către utilizator. La nivel de atribut, filtrul verifică dacă toate atributele din cererea utilizatorului sunt accesibile acestuia, și dacă da, transmite cererea către managerul bazei de date. La revenire, va șterge toate cererile la care utilizatorul nu poate să aibă acces. La nivel de element, sistemul va cere datele solicitate și suma de control criptografică. Când sunt returnate, acestea verifică apartenența la niveluri de securitate pentru fiecare element.

Vederi

Vederile reprezintă un subset al bazei de date la care utilizatorul poate avea acces.

Datele care sunt accesibile unui utilizator se obțin prin filtrarea conținutului bazei de date originale.

Utilizatorul nu este conștient de existența tuplurilor care lipsesc din vederea respectivă.

O vedere poate fi definită din mai multe tabele, pentru care utilizatorul deține privilegiul corespunzător de utilizare, dar nu și de folosire a tabelelor de bază.

Utilizarea, în acest caz a vederilor, este mai restrictivă decât simpla deținere a privilegiilor acordate utilizatorului asupra tabelelor de bază. SGBD-ul stochează definiția vederii în baza de date. Când SGBD-ul întâlnește o referire la o vedere, caută această definiție și transformă cererea respectivă într-o cerere echivalentă către tabelele care constituie sursa vederii, după care efectuează cererea.

Folosirea vederilor pentru asigurarea securității bazelor de date, mai este întâlnită în literatura de specialitate și sub denumirea de securitate discreționară și este caracteristică sistemelor bazate pe SQL.

Folosirea vederilor bazelor de date are ca efect crearea unor facilități în exploatare, dar poate aduce și dezavantaje (Tabelul 2.4.).

Tabelul 2.4.

Avantajele și dezavantajele folosirii vederilor

În cele ce urmează vom folosi comenzi SQL/ORACLE pentru exemplificări.

Crearea vederii orizontale se face în felul următor:

CREATE VIEW SORT_O AS

SELECT *

FROM SALA

WHERE SALB >6000000;

Rezultatul va fi următorul:

SORT_O

Crearea vederii verticale se face în felul următor:

CREATE VIEW SORT_V AS

SELECT NUME, SALB, COMP

FROM SALA

Rezultatul va fi următorul:

SORT_V

Se pot aplica, de asemenea, și combinații ale acestora; în acest fel se creează vederi mixte.

Vom considera următorul scenariu:

Structura personal angajat (SALA)

CNP – Cod numeric personal (identificator unic)

Structură proiecte firmă (PROI).

DENP – denumire proiect, OBIE – obiectiv, CLIE – client/beneficiar, MANA – responsabil proiect.

Tabela de legături (LEGA)

CREATE VIEW SALA_PROD AS

SELECT CNP, NUME, COMP FROM SALA

WHERE COMP = P;

Vedere SALA_PROD

CREATE VIEW COMP_ANTR AS SELECT DENP, OBIE, COMP FROM PROI, LEGA, SALA WHERE SALA.CNP = LEGA.CNP AND LEGA.DENP = PROI.DNP;

Acordarea si revocarea accesului permite utilizatorilor să ofere în mod selectiv si dinamic privilegii altor utilizatori, și să le revoce de la aceștia la nevoie. În SQL, comanda GRANT este responsabilă cu acordarea de permisiuni, iar REVOKE este responsabilă cu revocarea permisiunilor acordate. În multe cazuri se folosește și expresia privilegii în loc de permisiuni.

GRANT privileges

[ON relation]

TO users

[WITH GRANT OPTION]

Se presupune că administratorul bazelor de date i-a permis lui Popescu să interogheze relația de baza SALA, pentru angajații din compartimentul F, după cum urmează:

GRANT SELECT

ON SALA

TO Popescu

WHERE COMP = 'F';

Acum să presupunem că Popescu va executa următoarea secvență de interogare:

SELECT NUME, SALB, SANC, COMP

FROM SALA;

În absența controlului de acces, această interogare va returna informațiile din întreaga relație SALA. Datorită permisiunilor definite mai sus însă, SGBD-ul va modifica automat această interogare astfel:

SELECT NUME, SALB, SANC, COMP

FROM SALA

WHERE COMP = 'F';

Acest lucru va limita accesul lui Popescu la acea porțiune din relația SALA, pentru care i s-a permis accesul.

Alte exemple de folosire a comenzii GRANT:

GRANT SELECT ON SALA TO POPESCU;

Permite lui Popescu să execute interogări SELECT în relația SALA

GRANT SELECT, UPDATE(SALB) ON SALA TO POPESCU;

Suplimentar, permite lui Popescu să modifice salariul angajaților existenți în relația SALA

GRANT INSERT, DELETE ON SALA TO POPESCU, GEORGESCU, IONESCU;

Permite lui Popescu, Georgescu și Ionescu să adauge linii noi (angajați noi) și să șteargă liniile existente.

GRANT SELECT ON SALA TO POPESCU WITH GRANT OPTION;

Permite lui Popescu să execute interogări SELECT în relația SALA și mai departe să acorde privilegii altor utilizatori.

GRANT DBA TO IONESCU WITH GRANT OPTION;

Oferă privilegiul DBA lui Ionescu, cea ce îi va permite să se comporte ca administrator al bazelor de date și îi conferă o serie întreagă de alte privilegii. Nu se specifică niciun alt atribut, deoarece privilegiul DBA conferă implicit autoritate asupra întregului sistem. În acest caz, Ionescu va putea oferi acest privilegiu și altor utilizatori.

Revocarea în SQL este realizată prin comanda REVOKE, cu următoarea sintaxă:

REVOKE privileges

[ON relation]

FROM users

Exemple:

POPESCU: GRANT SELECT ON SALA TO TOMA;

POPESCU: REVOKE SELECT ON SALA FROM TOMA;

POPESCU acordă un privilegiu lui Toma și apoi i-l revocă.

POPESCU: GRANT SELECT ON SALA TO TOM;

HARRY: GRANT SELECT ON SALA TO TOM;

POPESCU: REVOKE SELECT ON SALA FROM TOMA;

POPESCU revocă dreptul de selecție acordat lui Toma. Totuși, Toma va putea să dețină privlegiul SELECT acordat de către Stan.

POPESCU: GRANT SELECT ON SALA TO IONESCU WITH GRANT OPTION;

IONESCU: GRANT SELECT ON SALA TO TOMA;

POPESCU: REVOKE SELECT ON SALA FROM IONESCU;

Aceasta revocă privilegiul de SELECT acordat de Popescu lui Ionescu, și de asemenea, în mod indirect, revocă privilegiul acordat de Ionescu lui Toma. Această acțiune se numește revocare în cascadă.

POPESCU: GRANT SELECT ON SALA TO IONESCU WITH GRANT OPTION;

STAN: GRANT SELECT ON SALA TO IONESCU WITH GRANT OPTION;

IONESCU: GRANT SELECT ON SALA TO TOM;

POPESCU: REVOKE SELECT ON SALA FROM IONESCU;

Se revocă privilegiile lui Popescu. Totuși, Ionescu și Toma continuă să dețină privilegiul datorită acordării de către Stan.

POPESCU: GRANT SELECT ON SALA TO IONESCU WITH GRANT OPTION;

IONESCU: GRANT SELECT ON SALA TO TOMA;

STAN: GRANT SELECT ON SALA TO IONESCU WITH GRANT OPTION;

POPESCU: REVOKE SELECT ON SALA FROM IONESCU;

Se revocă dreptul lui POPESCU. Deoarece Ionescu a primit mai târziu privilegiul de la Stan, va continua să dețină dreptul de SELECT. Privilegiul este însă revocat lui Toma, deoarece permisiunea acordată de Ionescu lui Toma a apărut înainte de cea a lui Stan către Ionescu.

POPESCU: GRANT UPDATE(SALARY, DEPT) ON SALA TO IONESCU;

POPESCU: REVOKE UPDATE ON SALA FROM IONESCU;

Se revocă lui Ionescu privilegiul UPDTE, atât pentru coloana SALB cât și COMP. Nu este posibilă revocarea pentru doar una dintre aceste două coloane.

Arhitecturi pentru asigurarea securității BD

La ora actuală, există două abordări majore pentru asigurarea securității bazelor de date.

Acestea au în vedere încrederea care poate fi acordată celor două elemente care vor interacționa cu bazele de date, și anume: sistemul de gestiune al bazelor de date (SGBD) și sistemul de operare (SO).

Ținând cont de acestea, vom avea următoarele arhitecturi:

arhitectură cu subiecți siguri;

arhitectură cu subiecți nesiguri, cunoscută în literatura de specialitate ca arhitectura Woods Hole.

Arhitectura cu subiecți siguri pornește de la presupunerea că atât SGBD-ul, cât și SO, care vor interacționa cu bazele de date sunt sigure (de încredere). Această abordare se întâlnește la majoritatea SGBD-urilor (Sybase, Informix, Ingres, Oracle, DEC, Rubix) [45] (Figura 2.12.).

Figura 2.12. Arhitectura cu subiecți siguri

Arhitectura cu subiecți nesiguri pornește de la presupunerea că SO este sigur, dar SGBD-ul este nesigur.

Această arhitectură este implementată în trei variante:

arhitectură cu blocarea integrității [45] (Figura 2.13.);

arhitectură integrată [45] (Figura 2.14.);

arhitectură replicată/distribuită [45] (Figura 2.15.).

Figura 2.13. Arhitectură cu blocarea integrității

Figura 2.14. Arhitectură integrată

Figura 2.15. Arhitectură replicată/distribuită

Alte măsuri de control pentru asigurarea securității BD

În această categorie se includ elementele de control care nu sunt bazate pe calculator.

Se includ aici politicile, acordurile și alte elemente de control administrative, diferite de cele care susțin elementele de control bazate pe calculator.

Din această categorie fac parte:

Politica de securitate și planul pentru situații de urgență;

Controlul personalului;

Amplasarea echipamentului în condiții de siguranță;

Acordurile Escrow;

Acordurile de întreținere;

Controlul fizic al accesului.

Politica de securitate definește, pe larg, modul în care firma va menține un sistem sigur.

Planul pentru situații de urgență definește modul în care firma va continua să funcționeze în orice situație excepțională.

Politica de securitate se referă la:

Domeniul de afaceri avut în vedere;

Responsabilitățile și obligațiile angajaților;

Acțiunile disciplinare care vor rezulta din încălcarea politicii;

Procedurile care trebuie urmate.

Planul pentru situații de urgență trebuie să cuprindă:

Care este personalul cheie și cum poate fi acesta contactat;

Cine decide că are loc o situație excepțională și cum se hotărăște aceasta;

Cerințele tehnice privind transferarea operațiilor în altă parte:

Localizarea alternanței (a locului de plasare a serverului);

Echipamentul suplimentar necesar;

Necesitate linii de comunicație.

Cerințe operaționale, în ce privește personalul, privind transferul operațiilor în altă parte;

Contactare furnizori pentru echipamente sau servicii necesare;

Existența unei asigurări.

2.3. Data warehouse și Data mining

Data warehouse

Depozitele de date, cunoscute în literatura de specialitate ca Data warehouse, au fost dezvoltate în perioada anilor 80 și se doreau să vină în ajutorul managementului organizației.

Data warehouse este colecție de date proiectate pentru a asigura luarea deciziilor manageriale.

Aceste colecții de date conțin o mare varietate de date, ce prezintă o imagine coerentă a condițiilor de afaceri ale firmei la un anumit moment. Data warehouse se referă la o combinație de mai multe baze de date diferite, corespunzătoare întregii firme.

Un sistem de genul data warehouse este folosit pentru a monitoriza activitatea unei organizații prin generarea de rapoarte în formate standard, pentru analizarea unor aspecte legate de activitatea organizației; pe baza acestei analize se iau decizii de coordonare.

Premizele apariției și dezvoltării depozitelor de date au fost date de condițiile economice și de progresul tehnologic din acea perioadă.

Tendințele economice constau în:

Globalizarea comerțului;

Ascuțirea dramatică a concurenței;

Scurtarea spectaculoasă a ciclului de viață al produselor datorită dinamicii tehnologice;

Impunerea de cerințe calitative extrem de ridicate.

Progresul tehnologic în perioada respectivă și ulterioară a constat în:

Creșterea puterii de calcul;

Scăderea prețurilor.

Sistemele informatice existente la nivelul fiecărei organizații, posibilitatea ca datele să poată fi accesate de oriunde, nevoia acută de informație, putere de calcul mare, capacitate de stocare mare și ieftină, precum și instrumente software accesibile, au făcut ca depozitele de date să devină o opțiune normală pentru organizație. Viața a dovedit că existența unor depozite de date în cadrul unei organizații poate face deosebirea între prosperitate sau faliment.

Caracteristici warehouse:

Nu este orientat pe operațiile și tranzacțiile zilnice. Se concentrează pe date folosite la analiză și pe baza cărora se iau decizii.

Operația de bază este adăugarea datelor. Datele nu se șterg și nu se suprascriu. Se menține un istoric al datelor.

Sistemul este integrat. Datele sunt culese din diferite locuri (sistemele operaționale, baze de date, fișiere etc.), sunt transformate prin aducerea la formatul de reprezentare din data warehouse și centralizate în sistem.

Costurile pentru realizarea unui depozit de date pot fi uneori prohibitive. Un depozit de date este alcătuit din baze de date, conținând între 1 și peste 10 Terabyte, această valoare fiind aproximativă. Există astfel și depozite de date conținând zeci de Terabyte. În funcție de activitățile firmei, un depozit de date se poate dubla ca volum în 12-18 luni. Crearea unui depozit de date poate să impună costuri care pot atinge milioane de dolari. Costurile se împart în (Figura 2.16.):

costuri hardware;

costuri software;

costuri cu serviciile profesionale.

Figura 2.16. Costuri ale unui depozit de date

Ca structură, un depozit de date este construit pe mai multe niveluri (Figura 2.17.), fiecare cu propriul său rol.

Figura 2.17. Structura unui depozit de date

http://datawarehouse4u.info/

Nivelul surselor de date

Nivelul surselor de date se referă la orice informație, de regulă în format electronic, care trebuie culeasă și stocată în data warehouse.

Surse:

baze de date mainframe (DB2, IBMS, VSAM, ISAM, Ababas etc.);

baze de date client-server (Oracle, Informix);

baze de date mici, de pe calculatoare personale (MS Access);

spreadshit-uri, alte tipuri de fișiere.

Nivelul transformării datelor

Nivelul transformării datelor se ocupă cu aducerea la o formă standard a datelor culese la Nivelul surselor de date.

Transformarea datelor constă în aducerea acestora la formatul intern al data warehouse-ului.

Pentru transformare se pot scrie aplicații speciale sau se pot folosi unelte de tip ETL (Extract, Transform and Load).

Transformarea datelor poate presupune și operații de “curățare” a datelor (corectitudine, consistență, totaluri, subtotaluri etc.).

Nivelul Data Warehouse

Nivelul Data Warehouse este cel care se ocupă efectiv de stocarea datelor.

Pentru stocare se folosesc baze de date relaționale.

Datele sunt reținute pe perioade determinate de timp.

Nivelul raportărilor

Nivelul raportărilor este cel care face analize și generează rapoarte pentru monitorizarea activității organizației.

Generarea rapoartelor se poate face cu ajutorul uneltelor specifice:

Business Intelligence Tools: aplicații software care simplifică procesul de generare a rapoartelor din data warehouse.

Executive Information Systems: aplicații software construite pentru a genera rapoarte complexe pentru nivelul de top management al organizației.

Enterprise Information Systems: similar cu Executive Information Systems, doar că este mult simplificat pentru departamentele organizației.

OLAP (On Line Analytical Processing) permite reprezentări multidimensionale (cuburi, hipercuburi) precum și analize rapide și interactive cu ajutorul operațiilor de tip roll.up, drill.down, slice, dice etc. Data Mining, KDD-Knowledge Discovery in Databases, care utilizează tehnici de analiză statistică, recunoaștere de “forme” pentru a descoperi corelații, reguli, cunoștințe etc.

Nivelul metadatelor

Nivelul metadatelor cuprinde informații de administrare ale data warehouse-ului (data ultimei actualizări, numărul de utilizatori conectați etc.).

Nivelul operațiunilor

Nivelul operațiunilor are ca principal scop încărcarea datelor în data warehouse dar și manipularea și extragerea datelor.

Al doilea scop îl reprezintă managementul utilizatorilor, securitatea, capacitatea dar și alte funcții de administrare.

Data mart

Data mart reprezintă un subset al data warehouse pentru utilizarea unui singur departament (Figura 2.18.).

Din punct de vedere al implementărilor, data mart-urile pot fi:

Dependent Data Marts – baze de date fizice, găzduite pe același hardware ca data warehouse-ul, sau în alte locații, și care preiau date din data warehouse-ul de bază.

Logical Data Marts – sunt vederi/wiev-uri ale data warehouse-ului.

Figura 2.18. Data mart-uri

Data warehouse – tipuri și caracteristici

În literatura de specialitate, sunt enumerate trei tipuri de depozite de date: analitice, pentru standardizare și raportare și pentru omogenizare și consolidare date.

Analitice

Sunt foarte complexe și necesită foarte multă atenție de la proiectare până la implementare. Se adresează în special analiștilor.

Pentru standardizare și raportare

Cele mai întâlnite tipuri (80%). Apărute cu mult înaintea apariției depozitelor de date.

Pentru omogenizare și consolidare date

Combină mai multe surse de informații cu scopul de a încadra informația.

Arhitectura standard a unui depozit de date este următoarea (Figura 2.19.):

Figura 2.19. Arhitectura standard a unui depozit de date/Data warehouse

http://swiki.net/reliable-business-intelligence-datawarehouse-datamart-and-datamining.html

Din arhitectura standard, în funcție de datele care se supun prelucrărilor și de modul de afișare a rezultatelor, se întâlnesc două noi arhitecturi: arhitectura cu zonă de așteptare (Figura 2.20.) și arhitectura cu zonă de așteptare și data mart (Figura 2.21.).

Figura 2.20. Arhitectura cu zonă de așteptare

http://docs.oracle.com/cd/B10501_01/server.920/a96520/concept.htm

Figura 2.21. Arhitectura cu zonă de așteptare și data mart-uri

http://docs.oracle.com/cd/B10501_01/server.920/a96520/concept.htm

Într-un depozit de date/Data warehouse, datele importante despre organizație sunt stocate într-un singur punct, aceasta presupunând riscuri sporite pentru organizație. Un atacator își va concentra eforturile într-un singur punct, pe depozitul de date, de unde va putea, în caz de reușită, să extragă toate datele de care are nevoie, fără să-și disperseze eforturile pentru diferite noduri din rețea.

Data mining

Prin Data mining se înțelege procesul de extragere a cunoștințelor din bazele/depozitele de date, cunoștințe necunoscute anterior, valide și în același timp, operaționale.

Prin cunoștințe necunoscute se înțelege ceva nou, surprinzător și neanticipat. Aceste cunoștințe extrase trebuie să fie și valide, adică trebuie să poată fi transpuse și aplicate în realitate. De asemenea, cunoștințele trebuie să fie operaționale, adică să poată fi obținute într-un timp scurt.

Procesul de extragere de cunoștințe se face cu precădere folosind ca materie primă bazele și depozitele de date, dar pot fi folosite și alte tipuri de date care vor fi supuse unor operații de transformare specifice.

Data mining mai poate fi privit și ca:

Proces de analiză a datelor pentru a identifica modele ori relații.

Analiză de date pentru descoperirea de relații sau date care nu sunt afișate evident.

O clasă de aplicații de baze de date care caută modele ascunse în grupuri de date, care vor fi folosite pentru predicții.

Data mining implică în destul de multe cazuri analiza de date stocate în data warehouse.

Data mining se diferențiază de alte prelucrări informatice realizate în scopul analizei datelor, cum ar fi interogarea datelor, elaborarea de rapoarte, prelucrările de tip OLAP etc.

Procesele de extragere a cunoștințelor din baze de date sau depozite de date vor presupune anlizarea unui volum mare de date, uneori imens (ca în cazul depozitelor de date), un efort de timp ridicat, precum și o putere de calcul pe măsură. Efortul de timp poate fi redus printr-o putere de calcul ridicată, dar aceasta poate să ducă la costuri suplimentare.

Procesele de extragere vor presupune parcurgerea mai multor etape și folosirea de algoritmi specifici cum ar fi (Figura 2.22.):

clustering;

regresie;

asocierea;

clasificarea;

serii de timp.

Figura 2.22. Etapele prelucrării în data mining

http://www.dwreview.com/Data_mining/DM_models.html

Toate acestea au drept scop extragerea acelor date necunoscute, valide și operaționale care să poată fi folosite de către decident în luarea deciziilor.

Data mining se aplică, cu precădere, pentru procesele economice ale unei organizații, analiză de riscuri, cercetare, medicină, fraude electronice, terorism etc.

Tema 3

Servere de Baze de date

3.1. Alegerea serverului

3.2. Instalare și configurare server

3.3. Instalare clienți și unelte de dezvoltare

3.1. Alegerea serverului

Alegerea unui server pentru nevoile unei organizații reprezintă o activitate complexă care implică un anume nivel de pregătire în domeniu. Dacă pentru o firmă mică necesitatea achiziționării unui server nu se justifică, pentru organizațiile medii și mari este imperios necesar acest lucru. Efectuarea sarcinilor specifice într-o organizație modernă presupune atât existența calculatorului, conectarea acestuia la rețeaua internă, cât și accesarea datelor dintr-unul sau mai multe servere din rețea. Un server într-o rețea va face să scadă efortul angajaților, să crească productivitatea și organizația să crească și să se adapteze mai ușor la noi cerințe.

Un server (definit în capitolul 1) este un program de calculator care va furniza informații altor aplicații care pot fi găzduite de același calculator sau de alte calculatoare. Cum un program de acest tip rulează pe o mașină (microprocesor), în cele ce urmează ne vom referi la server ca un ansamblu de hardware și software care este conectat la rețea, rulează aplicații de tip server și gestionează resursele de rețea pentru utilizatori și care satisface cerințele de informație ale unei organizații.

În funcție de specificul și mărimea organizației, aceasta are de ales între următoarele tipuri de servere: servere de proxy, servere de mail, servere de web, server de fișiere, servere de baze de date, servere de applicații, servere real-time communication, servere de FTP, servere collaboration, servere list, servere telnet, servere virtual, servere de print.

Pentru alegerea unui server este important de parcurs următoarele etape:

Stabilirea rolului serverului;

Alegerea software;

Alegerea hardware;

Redundanța și securitatea.

1. Stabilirea rolului serverului

Pentru stabilirea rolului unui server într-o rețea de calculatoare, trebuie să avem bine definite cerințele informaționale pe care acesta trebuie să le rezolve. Aceste cerințe trebuie formalizate și analizate în detaliu pentru ca alegerea făcută să satisfacă pe cât posibil toate cerințele.

Folosirea serverelor într-o rețea de calculatoare prezintă o serie de avantaje:

Datorită puterii de calcul sporite, un server va putea rula mai rapid aplicațiile specifice față de o stație de lucru. Un server dispune de mai multe procesoare (cu mai multe nuclee), de o cantitate mare de memorie RAM, de dispozitive de stocare performante și de un sistem de gestiune eficientă a proceselor care face ca încărcarea pe procesoare și memorie să fie optimă, toate acestea ducând la o rulare mai rapidă a aplicațiilor.

Gestionarea utilizatorilor este simplificată și eficientizată deoarece aceasta se face dintr-un singur loc, de la server. În acest mod, se pot asigura facilități și restricții pentru utilizatori și procese.

Datorită stocării fișierelor într-un spațiu comun, se vor putea regăsi rapid fișierele utilizatorilor.

Posibilitatea partajării, cu ajutorul serverelor, a resurselor rețelei între diferitele categorii de utilizatori. Se pot partaja echipamente (imprimante, scannere etc.), aplicații și date.

Serverele pot crea spații virtuale de lucru pentru angajați. La aceste spații de lucru se poate da acces discrețional pentru angajații din interiorul organizației sau se poate da acces colaboratorilor din afara acesteia.

Mobilitate crescută cu ajutorul dispozitivelor mobile și a serviciilor de web remote. Utilizatorul va putea să acceseze datele din servere folosind un sistem portabil de calcul sau un telefon inteligent.

Securitatea este ușor de gestionat, deoarece aceasta se stabilește la nivelul serverului și este aplicată apoi pentru toți utilizatorii care au acces la server.

Salvările de siguranță pentru datele de pe server sunt automatizate; în acest mod, operațiile pot fi planificate și executate conform graficului stabilit prin politica de securitate. În caz de nevoie, copiile de siguranță se vor folosi pentru restaurarea datelor de pe servere.

Înaintea achiziției propriu-zise a „mașinii de calcul”, trebuie stabilite rolurile pe care aceasta le va avea în cadrul organizației. Apoi, în funcție și de bugetul alocat, se va alege varianta optimă. Prin rol, în acest caz, se va înțelege tipul de server care trebuie să funcționeze în cadrul organizației.

Pentru reducerea costurilor cu tipărirea documentelor, organizația va opta, în mod sigur, pentru un sever de tipărire. Cu ajutorul acestuia, se va ști cine și ce a tipărit la imprimantele gestionate de server și se va permite accesul discrețional la facilitățile de tipărire.

Un server de fișiere va concentra programe și fișiere de date partajate de către utilizatori într-un singur loc, făcând gestionarea acestora mai eficientă.

Un server de poștă electronică (e-mail), precum și un server de web vor fi absolut necesare dacă organizația dorește să-și gestioneze singură serviciile de poștă electronică și paginile web.

În cazul în care organizația lucrează cu baze de date, este necesară existența unui server de baze de date care să permită exploatarea într-un mod profesional a acestora.

În cazul nostru, ne vom opri la rolul de server de baze de date. Serverele de baze de date sunt folosite pentru stocarea și regăsirea datelor din baze de date ale unei organizații (Capitolul 1.).

Serverul de baze de date este unul din cele mai importante elemente ale unei afaceri moderne din zilele noastre. Fără un server de baze de date, nici nu pot fi imaginate anumite afaceri.

2. Alegerea software

Atunci când alegem software-ul necesar pentru a rula conform cerințelor pe sisteme hardware, vom avea de ales două componente software care să lucreze împreună, într-un mod eficient:

Software-ul pentru baza de date;

Sistemul de operare.

a) Software-ul pentru baza de date

Atunci când trebuie ales software-ul pentru baze de date, trebuie să ne punem întrebarea: Ce există pe piață pentru nevoile mele și pentru banii pe care îi am ?

Cele mai cunoscute baze de date existente pe piață sunt: SQL Server (Microsoft), IBM DB2, MySQL, ORACLE și PostgreSQL (Figura 3.1.).

Figura 3.1. Baze de date (sigla)

Toate aceste baze de date vin cu foarte multe facilități, cum ar fi: opțiuni de stocare avansate, unelte pentru managementul datelor, facilități de replicare, instrumente pentru backup etc.

SQL Server, IBM DB2 și ORACLE se încadrează în categoria COTS, din punct de vedere al modului de achiziție, în timp ce MySQL și PostgreSQL sunt Open source.

În cele ce urmează, ne vom referi la cele mai utilizate – MySQL, ORACLE și PostgreSQL.

Pentru o analiză comparativă a facilităților oferite de acestea, vom lua în considerare următoarele criterii [25]:

Caracteristici elementare (tipuri de date de bază, caracteristici ale limbajului SQL, constrângeri de integritate declarative, abstracții de programare, generarea automată de identificatori, suportul de caractere specifice țărilor).

Tranzacții și accesul mai multor utilizatori (tranzacții, constrângeri, accesul simultan al mai multor utilizatori).

Programare în baza de date (proceduri și declanșatori stocați).

Elemente de administrarea bazelor de date (controlul accesului, copii de siguranță, migrarea datelor).

Portabilitate si scalabilitate (sisteme hardware și software suportate, scalabilitate).

Performanță și probleme VLDB (Bază de Date Foarte Mare) (optimizarea interogărilor, structuri suport pentru optimizarea interogărilor, suport pentru procesarea analitică, alocarea de spațiu, limitarea mărimii datelor, implementări cunoscute ale VLDB).

Baze de date distribuite (accesul la multiple baze de date, suport pentru sistemele eterogene).

Tipuri speciale de date (obiecte mari în baza de date, extensii post-relaționale, suport pentru tipurile speciale de date).

Dezvoltare aplicații și interfețe (SQL încorporat, interfețe standard, interfețe adiționale, interoperabilitate cu Web Technology, XML, CASE).

Fiabilitate (recuperare date în caz de pierdere a acestora sau de eșec în diferite operații).

Probleme comerciale (suport tehnic disponibil, poziția pe piață).

Caracteristici elementare

Tipuri standard de date, caracteristici de limbaj SQL, constrângerilor de integritate definite declarativ în SQL (de exemplu, în instrucțiunea CREATE TABLE) și executate de către SGBD, structuri virtuale de programare, generare automată identificatori și secvențe (mijloace de generare a unor identificatori unici – secvențele sunt obiecte generatoare de serii de numere unice), suportul de caractere specific țărilor (CODE PAGES).

Tranzacții și accesul mai multor utilizatori

Tranzacții, constrângeri și accesul simultan al mai multor utilizatori

Programare în baza de date

Proceduri și declanșatoare stocate

Elemente de administrare a bazelor de date

Controlul accesului, copii de siguranță și migrarea datelor

Portabilitate si scalabilitate

Sisteme hardware și software suportate, scalabilitate.

Performanță și probleme VLDB

Optimizarea interogărilor (pentru structuri de date standard și speciale), suport OLAP (On Line Analytical Processing) pentru interogări, alocări ale spațiului pe disc și limitări în manevrarea datelor.

Baze de date distribuite

Accesul la mai multe baze de date într-o sesiune, replicarea, actualizarea în două faze, suport pentru baze de date eterogene.

Tipuri speciale de date

Binary Large Object (BLOB), Character Large Objects, tipuri speciale de date și posibilitatea de creare de tipuri noi.

Dezvoltare aplicații și interfețe

Înglobare SQL, interfețe ODBC (Open DataBase Connectivity) și JDBC (Java DataBase Connectivity), interfețe PHP și nestandard, interoperabilitate cu tehnologia web, suport CASE (Computer Aided Software Engineering).

Fiabilitate

Recuperare automată de date, în caz de căderi ale bazei de date.

Probleme comerciale

Prețul pentru versiunea standard, prețul pentru instalări clienți, suport tehnic de la producător (disponibilitate, calitate suport și preț), poziția pe piață (cota de piață ocupată și segmentul specific ocupat).

Făcând un rezumat al celor expuse anterior, vom avea următoarea situație:

După cum se poate constata, Oracle obține calificativele maxime la toate criteriile, mai puțin cel legat de prețul de comercializare. O organizație mare, la care toate facilitățile oferite trebuie să fie la un nivel ridicat, va avea ca primă opțiune SGBD-ul Oracle. Pentru organizațiile la care nu toate facilitățile oferite sunt necesare sau acestea nu trebuie să fie de un nivel ridicat, se poate opta pentru PostgreSQL sau MySQL. O organizație mică, cu o mică rețea internă și câteva baze de date, va opta pentru o implementare care să îi reducă foarte mult costurile de achiziție și apoi costurile de exploatare. Evident că o primă opțiune va fi să aleagă un SGBD din categoria open-source, pentru care prețul de achiziție este, în general, zero.

Există și versiunea de Oracle open-source – Oracle Expres Edition. Oracle Expres Edition (Oracle XE – eXpress Edition) are aproape toate facilitățile oferite de Oracle standard, însă are o serie de limitări. Limitările sunt următoarele:

folosește un singur procesor dintr-un sistem de calcul;

poate utiliza până la 1GB de memorie RAM;

manevrează baze de date până la 11GB pentru versiunea 11g, 4GB pentru versiunile anterioare;

doar o singură instanță poate rula pe un calculator.

Pe lângă aceste limitări, mai avem și faptul că următoarele caracteristici de bază nu sunt acceptate:

partiționare obiecte;

internal Java virtual machine (JVM).

În plus față de versiunea standard, Oracle XE vine cu aplicații Oracle APX (Oracle Application Express) și facilități PHP.

a) Sistemul de operare

Un server trebuie să aibă capabilități suplimentare față de o stație de lucru, care să-i permită o funcționare continuă și optimă. Printre acestea se pot enumera:

capacitatea de a se înlocui, adăuga sau elimina diverse componente hardware specifice, fără a se opri și porni serverul (hot plug/unplug);

capacitatea de a se efectua actualizări și depanări software fără a se opri/porni serverul (hot fix);

facilități extinse de rețea;

capacități de management resurse hardware și software – balansare încărcare microprocesoare, memorie și dispozitive de stocare;

existența de sisteme redundante care să asigure o siguranță crescută a datelor;

existența unor mecanisme de backup on-line pentru date (atât pentru sistemul de operare cât și pentru datele de lucru);

capabilități avansate de securitate.

Capabilitățile mai sus enumerate sunt asigurate de componenta hardware și de către sistemul de operare. Ambele trebuie să aibă aceste capabilități, pentru ca acestea să se realizeze. Degeaba componenta hardware are capacitați redundante, dacă acestea nu sunt „văzute” de către sistemul de operare.

Alegerea sistemului de operare pentru serverul de baze de date, se va face luând în considerare următoarele criterii:

prețul de achiziție;

costuri pentru suportul tehnic;

stabilitate în funcționare;

actualizări de securitate.

Sistemele de operare care pot fi instalate pe servere, în funcție de tipul de server, pot fi achiziționate contra cost (COTS) sau sunt gratuite pentru anumite sisteme de operare open-source.

Cele mai cunoscute sisteme de operare contra cost pentru servere sunt cele furnizate de Microsoft. Microsoft Windows Server 2008 Standard (cu 5 clienți – Client Access Licenses (CAL)) costă 999 USD. Versiunea Windows Server 2008 Enterprise costă 3.999 USD (cu 25 de CAL-uri). Versiunea Windows Server 2008 Data Center costă 2.999 USD/procesor [27], un preț care poate să fie destul de mare pentru un sistem de operare de tip Data Center care rulează pe un sistem cu 4 sau opt procesoare.

Sistemele de operare pentru care nu există costuri de achiziție sunt din categoria Linux. Există și versiuni de sisteme de operare Linux pentru care există costuri de achiziționare, acestea intrând în categoria COTS. Distribuția de Linux Red Hat este parțial gratuită. Ultimele variante, Red Hat Enterprise, sunt contra cost. Prețurile de vânzare includ și suportul tehnic standard pentru un an și au valori cuprinse între 799 USD pentru Red Hat Enterprise Linux Server (2 sockets with 1 virtual guest) și 2.398 USD pentru Red Hat Enterprise Linux Server (4 sockets with 4 virtual guest). Versiunea Red Hat Enterprise Linux Server (4 sockets with unlimited virtual guest) poate costa 3.998 USD pentru varianta cu suport tehnic standard de un an și valori care ajung la 6.498 USD pentru suport tehnic special [28].

SUSE Linux Enterprise Server poate fi achiziționat la prețuri începând de la 349/799 USD (cu suport tehnic de bază/standard de un an) pentru o configurație fizică cu două socket-uri, și poate ajunge la prețuri de până la 31.000 USD pentru mașini virtuale cu 4 socket-uri și suport premium pe cinci ani [29].

Distribuția de sistem de operare Linux de la Novell are aproximativ aceleași caracteristici de preț, dar oferă facilități de rețea sporite. Să nu uităm faptul că Novell are o îndelungă experiență în software-ul pentru rețele (încă de la sistemele de operare de tip DOS).

Una din ultimele intrări pe piața producătorilor de sisteme de operare este, chiar producătorul de SGBD-uri, Oracle. Acesta produce sistemul de operare Oracle Enterprise Linux, care este de asemenea, contra cost.

După cum se poate lesne observa, toate sistemele de operare care se adresează organizațiilor mari sunt contra cost.

Cu toate acestea, există pe piață foarte multe sisteme de operare Linux care au facilități suficiente ca să echipeze unul sau mai multe servere dintr-o organizație mică sau mijlocie.

Un caz special este reprezentat de distribuția Linux CentOS. CentOS este de fapt o distribuție Red Hat gratuită, care oferă aproximativ aceleași facilități ca și Red Hat Enterprise Linux. Datorită acestui fapt, foarte multe servere sunt dotate cu acest sistem de operare.

Costurile pentru suportul tehnic, cum am amintit anterior, pot să difere în funcție de perioada de timp pe care este asigurat suportul, de modul de asigurare etc. În general, acest suport tehnic costă destul de mult dar este necesar atunci când apar probleme tehnice. În lipsa cunoștințelor necesare depanării și a suportului tehnic, perioada de inactivitate a serverului (down time) poate fi foarte mare și mai ales, poate fi critică pentru afaceri și buna funcționare a unei organizații. Variantele de sisteme de operare gratis nu beneficiază de suport tehnic, acesta trebuind să fie achiziționat separat.

Când vine vorba de stabilitate în funcționare, toată lumea este de acord că sistemele de operare Linux sunt mai stabile ca sistemele de operare Windows. Sistemele de operare Windows au nevoie de update-uri și fix-uri sau hot fix-uri atât pentru anumite dispozitive de sistem cât și pentru partea de securitate. Pe de altă parte, comunitatea Windows dispune de foarte multă documentație și suport tehnic (chiar dacă se asigură contra cost) care uneori este esențial.

Foarte multe probleme legate de compatibilități, drivere și actualizări vor dispărea dacă se face achiziționarea laolaltă a sistemului de operare și a hardware-ului. Firma IBM livrează, de exemplu, atât serverul cât și sistemul de operare și SGBD-ul (ce-i drept, acesta este DB2, mai puțin răspândit). În acest caz, furnizorul va livra cele două sau trei componente testate împreună – serverul, sistemul de operare și SGBD-ul).

3. Alegerea hardware

La prima vedere, alegerea hardware-ului poate părea o operație simplă. Trebuie să alegem mașina pe care se va instala sistemul de operare și pe care va rula baza de date. O primă problemă va apărea atunci când alegem forma fizică a serverului. Avem de ales între varianta tower și varianta blade (Figura 3.2.).

Figura 3.2. Server tower și blade

Pentru o organizație mică, care nu are nevoie de mai multe servere, cea mai bună alegere este un sistem tower. Acesta nu necesită echipamente auxiliare pentru instalare și funcționare, putând fi pus într-o incintă specială cu alte echipamente (rack). Mai are avantajul că este un echipament comun și poate fi ușor accesibil pentru intervenții hardware asupra lui.

Pentru o organizație mare, care are nevoie de mai multe servere, este nevoie de un dispozitiv special (asemănător unui dulap) în care se vor monta servere de tip blade (lame). În dispozitivul special, se pot monta mai multe lame (blade-uri) care vor fi alimentate de la una sau mai multe surse de alimentare care alimentează și celelalte blade-uri precum și alte componente. Blade-urile pot fi interconectate între ele, pot dispune de un management centralizat al resurselor și pot să-și preia sarcinile pentru a optimiza costurile de prelucrare. Costul pentru un sistem dotat cu blade-uri este mai mic față de cazul când s-ar achiziționa echipamente tower pentru fiecare server necesar într-o organizație mare.

O altă problemă este reprezentată de configurația hardware necesară pentru funcționarea optimă a serverului de baze de date.

Pentru o firmă mică, un server dotat cu unul sau două microprocesoare cu patru nuclee este suficient. Pentru o firmă mare, aceste valori trebuie dublate sau chiar mai mult. Sistemele blade au, de regulă, cel puțin patru procesoare, fiecare cu câte patru nuclee.

Cantitatea de memorie RAM ar trebui să fie de cel puțin 16/32GB pentru sistemele tower și de peste 16GB pentru blade-uri.

Pentru suporturile de stocare, vom avea de rezolvat două probleme:

performanța suportului;

siguranța datelor.

Suporturile de stocare, discurile dure, trebuie să aibă o capacitate de stocare care să permită stocarea optimă a datelor din baza de date, să aibă un timp de acces foarte mic și o rată de transfer foarte mare. Un disc dur cu o rată de transfer de 6Gb/s (la 15.000 RPM), cu un timp de acces de 3-4 ms reprezintă o alegere bună pentru un server blade. Pentru un sistem tower, aceste valori pot fi mai reduse datorită costurilor.

Siguranța datelor stocate pe suporturile de memorie va depinde, într-o primă măsură, de calitatea suporturilor folosite și ulterior, de modul de aranjare al acestora, folosind diferite tehnologii, pentru a se asigura redundanța datelor.

4. Redundanță și securitate

Pentru siguranța datelor, discurile dure pot fi montate în matrice RAID. În funcție de cerințe, se pot realiza mai multe tipuri de astfel de matrice RAID (Figura 3.2.).

Figura 3.3. Tipuri de matrice RAID

http://www.cluboc.net/reviews/hard_drives/raid_project1/index.asp

RAID 0 (stripping) este o configurație de două discuri dure pentru care scrierea datelor se face pe două discuri separate. Datele care urmează să fie scrise pe disc sunt împărțite în mai multe blocuri și scrise pe cele două discuri. Un bloc de date se regăsește doar pe un singur disc. Avantajul oferit este dat de creșterea performanțelor de scriere/citire de pe matricea RAID. Timpul de scriere/citire este redus la jumătate. Dezavantajul major este acela că în cazul defectării unui disc, datele sunt pierdute.

RAID 1 (mirroring) este o configurație de două discuri dure, de regulă, identice din punct de vedere al capacității de strocare și al caracteristicilor interne (număr de platane, număr de sectoare etc.) pentru care scrierea se face identic pe cele două discuri. Ce este scris pe un disc se regăsește (în oglindă) și pe celălalt disc. Avantajul major este acela al siguranței datelor. Dacă unul din discuri se strică, atunci datele pot fi regăsite și recuperate de pe celălalt disc.

RAID 0+1 (RAID 10) reprezintă o combinație de două discuri puse în matrice RAID 0 care sunt apoi puse într-o matrice RAID 1. În acest mod, se asigură sporirea performanțelor de scriere citire (RAID 0) și se asigură și siguranța datelor prin punerea într-o matrice RAID 1.

O combinație mult mai complexă și cu performanțe mult superioare este dată de RAID 5 (Block And Parity Striping) unde, similar cu RAID 0, informația este împărțită în blocuri și scrisă pe trei discuri, urmând ca pe al patrulea să se scrie informația de control (suma paritate) pentru aceste blocuri. Informația următoare este similar partiționată și inscripționată, numai că informația de control nu se va mai scrie pe același disc ca în cazul informației anterior scrise. Avantajele acestei matrice sunt date de performanțele ridicate în operațiile de scriere/citire de pe discuri și de siguranța datelor. În cazul defectării unui disc, datele se vor reface automat, folosind informația de control (suma de paritate).

Toate serverele au tehnologia RAID încorporată. Beneficiind în plus și de facilități de hot unplug/plug (înlocuirea în funcționare – „la cald” – a discurilor dure), posibilitatea de a se pierde datele este extrem de redusă.

Pentru serverele care deservesc procese critice, trebuiesc alese facilități de tip hot-swappable RAID pentru discurile dure, hot-swappable memory, hot-swappable power supplies pentru sursele de alimentare cu tensiune etc.

Principalii distribuitori de servere de pe piață (și care asigură și un suport tehnic consistent, evident contra cost) sunt: IBM, Hewlett Packard (HP), Dell, Sun Microsystems, Fujitsu-Siemens etc. Serverele pot fi comandate cu o anumită configurație standard sau se pot solicita configurații după cerințele beneficiarului. Se poate solicita ca serverul să fie furnizat cu sistemul de operare instalat, precum și cu aplicațiile solicitate. Pentru zonele critice, este de preferat ca:

serverul să fie achiziționat de la unul din furnizorii consacrați;

instalarea sistemului de operare să se facă de către specialiști autorizați de către producător;

instalarea aplicațiilor necesare (serverul de baze de date, în cazul nostru) să se facă de către specialiști autorizați de către producătorul de echipament (server) sau de către furnizorul de SGBD;

instalarea și configurarea de echipamente suplimentare sau software specializat pentru asigurarea securității;

asigurarea unui mediu optim de bună funcționare a serverului (incintă protejată la accesul fizic, surse alternative de energie, climatizare, filtre de praf etc.).

3.2. Instalare și configurare server

În cele ce urmează, vom trata instalarea și configurarea unui server de baze de date. Se va insista pe instalarea și configurarea unui server de baze de date cu un SGBD Oracle, deoarece firma producătoare este unul din liderii mondiali în producția de software. În paralel, se va prezenta și instalarea și configurarea unui server de baze de date cu un SGBD PostgreSQL, datorită faptului că PostgreSQL câștigă din ce în ce mai mult teren, acesta fiind gratis pentru achiziționare. Ambele instalări se vor face atât pe servere dotate cu sisteme de operare Windows cât și pe cele dotate cu sisteme de operare Linux.

3.2.1. Instalare Oracle pe platforme Windows

Înainte de instalare, se va verifica dacă sunt asigurate cerințele hardware minime pentru a se putea face instalarea. Aceste cerințe se găsesc fie în documentațiile care însoțesc software-ul achiziționat (COTS), fie pe site-ul producătorului (atât pentru varianta COTS cât și pentru varianta gratis).

Pentru SGBD-ul Oracle, aceste cerințe sunt următoarele:

Microprocesor: Intel EM64T sau AMD64

Memorie RAM: 1 GB minim

Memorie virtuală: dublul memoriei RAM

Spațiu liber pe disc: 5 GB

Memorie video: 256 MB

Sisteme de operare Windows: Windows Server 2003 ( x64 editions), Windows Server 2003 R2 (x64 editions), Windows XP Professional x64 Edition, Windows Vista x64 (Business, Enterprise, Ultimate editions), Windows 7 x64, Windows Server 2008.

Protocoale de rețea suportate: TCP/IP, TCP/IP SSL (TCP/IP securizat), Named Pipes.

Browsere suportate: Internet Explorer (cel putin versiunea 7), Mozilla Firefox (cel puțin versiunea 1.0.4), Netscape (cel puțin versiunea 7.2).

În funcție de sistemul de operare Windows ales și de actualizările acestuia, este posibil să se ceară instalarea unor pachete de programe suplimentare. De regulă, acestea sunt instalări sau actualizări Java.

Spațiul necesar pe disc depinde de varianta de SGBD care se alege și de opțiunile de instalare suplimentare. Spațiul temporar necesar operației de instalare este de 125 MB. Folderul C:\ProgramFiles\Oracle va avea nevoie de 2 MB, Oracle Home de peste 3,1 GB, iar spațiul pentru date va fi de peste 2 GB. Însumând toate aceste valori, vom ajunge la un minim de 5 GB.

Pentru a determina dacă aceste cerințe sunt îndeplinite pe un sistem de calcul pe care se află instalat Windows Server 2003, se va proceda după cum urmează:

Pentru a determina tipul de microprocesor:

Start Run cmd [Enter]

set [Enter]

datele se găsesc la linia PROCESSOR_IDENTIFIER și pot fi de forma:

PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 23 Strepping 6, GeniuneIntel

sau se poate proceda după cum urmează:

Start Run regedit [Enter]

se localizează subkey

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\Environment

se localizează Data în panoul din dreapta

datele se găsesc la linia PROCESSOR_IDENTIFIER.

Pentru a determina memoria RAM:

Start Control Panel General

Pentru a determina memoria virtuală:

Start Control Panel System Advanced Performance Settings Advanced

Pentru a determina spațiul liber pe disc:

My Computer (de pe Desktop) Selectez discul pe care se va instala click mouse dreapta Properties Se afișează spațiul ocupat și spațiul liber de pe disc.

Dacă cerințele minime necesare pentru instalarea SGBD-ului Oracle sunt îndeplinite, se trece în continuare la instalarea acestuia. Exemplificările au fost făcute pe SGBD-ul Oracle – Oracle 10g database. Pentru a se putea face instalarea, utilizatorul trebuie să aibă drepturi de administrator.

Pașii care se vor parcurge pentru instalare sunt următorii:

1. De pe suportul optic pe care se află pachetul de instalare Oracle 10g se va selecta și se va lansa în execuție fișierul setup.exe. Acesta va permite rularea aplicației Oracle Universal Installer, prin intermediul căreia se va desfășura întregul proces de instalare (Figura 3.4.).

Figura 3.4. Fișierul de instalare Oracle pentru Windows

2. Lansarea în execuție este marcată de apariția unei ferestre MS-DOS care va verifica anumite cerințe specificate în fișierul oraparam.ini (Figura 3.5.).

Figura 3.5. Startarea Oracle Universal Installer

3. Dacă aceste cerințe sunt trecute, se va solicita administratorului metoda de instalare: Basic sau Advanced. Pentru metoda Basic se vor solicita (Figura 3.6.):

locația unde se va face instalarea pe disc;

tipul de instalare: Enterprise, Standard sau Personal;

instalarea și numele unei baze de date de start;

parola pentru conturile SYS, SYSTEM, SYSMAN și DBSNMP.

Figura 3.6.a. Selectarea metodei de instalare Oracle

Figura 3.6.b. Personalizarea instalării Oracle

4. Installer-ul va verifica dacă sistemul de calcul îndeplinește cerințele minime impuse de opțiunile alese la instalare (Figura 3.7.).

Figura 3.7. Verificarea cerințelor minime impuse pentru instalare

5. În anumite situații, în timpul instalării, pot să apară mesaje de avertizare care vor aștepta intervenția din partea utilizatorului pentru alegerea unei opțiuni. Un caz este acela când se verifică de către Installer conectarea serverului la o rețea; serverul este neconectat deoarece nu este încă activ sau nu are configurate opțiunile de rețea, această situație fiind văzută ca o excepție. Se alege opțiunea pentru continuarea instalării, urmând ca avertizările să fie rezolvate ulterior (Figura 3.8.).

Figura 3.8. Mesaj de avertizare după verificarea cerințelor minime

6. Înaintea instalării pe disc, se va afișa un sumar al opțiunilor alese pentru instalare (Figura 3.9.).

Figura 3.9. Afișarea sumară a opțiunilor și pachetelor de instalare

7. Instalarea în sine este marcată de afișarea unei bare de progres, precum și a aplicațiilor care se instalează (Figura 3.10.).

Figura 3.10. Procesul de instalare Oracle Database

8. În timpul instalării, se va lansa Configuration Assistants care va configura și va lansa componentele anterior selectate (Figura 3.11.).

Figura 3.11. Asistentul de configurare

9. Se crează baza de date, se crează și se lansează instanța Oracle (Figura 3.12.).

Figura 3.12. Crearea bazei de date și startarea instanței Oracle

10. După crearea bazei de date, se vor putea gestiona parolele utilizatorilor (Figura 3.13.).

Figura 3.13. Configurarea bazei de date

11. Se vor putea debloca anumite conturi care sunt implicit blocate și se vor putea crea parole pentru aceste conturi (Figura 3.14.).

Figura 3.14. Gestionarea parolelor

12. Terminarea instalării este marcată de afișarea unui mesaj specific de atenționare, dar și de o serie de informații suplimentare referitoare la configurații și localizarea anumitor fișiere (Figura 3.15.).

Figura 3.15. Mesajul de terminare a instalării Oracle Database Server

13. Selectarea opțiunii de ieșire din programul de instalare va permite lansarea în execuție a interfeței de management Oracle – Oracle Enterprise Manager. La introducerea numelui de utilizator system și a parolei aferente, se vor afișa informații referitoare la licențiere (Figura 3.16.).

Figura 3.16. Oracle Enterprise manager – interfața de log-are

14. Selectarea opțiunii “I agree” va putea debloca anumite conturi care sunt implicit blocate și se vor putea crea parole pentru aceste conturi (Figura 3.17.).

Figura 3.17. Date referitoare la licențiere

15. În final, va fi afișată consola Database Control (Figura 3.18.).

Figura 3.18. Consola Database Control

Acum SGBD-ul Oracle este instalat pe un sistem de operare cu puternice facilități de rețea – Windows Server 2003.

Urmează operații post-instalare. Acestea vor consta în crearea de user-i, crearea de grupuri, asocierea de drepturi pentru user-i și grupuri, aplicarea politicii de securitate a organizației etc.

După ce toate aceste operații sunt efectuate, serverul de baze de date este gata pentru a fi utilizat în cadrul organizației, evident, după ce va fi încărcat cu date.

3.2.2. Instalare Oracle pe platforme Linux

Ca și la instalarea pe sisteme de operare Windows, și aici se va verifica dacă sunt asigurate cerințele hardware minime pentru a se putea face instalarea. Instalarea este ceva mai dificilă, fiind necesare cunoștințe specifice pentru Linux și tastarea multor linii de comenzi.

Pentru SGBD-ul Oracle, aceste cerințe sunt următoarele:

Microprocesor: Intel EM64T sau AMD64

Memorie RAM: 1 GB minim

Memorie virtuală: dublul memoriei RAM

Spațiu liber pe disc: 5 GB

Memorie video: 256 MB

Sisteme de operare Linux: Red Hat Enterprise Linux 4, Red Hat Enterprise Linux 5, Oracle Linux 4, Oracle Linux 5, Asianux 2 SP2, CentOS 4/5/6, SUSE Linux Enterprise Server 10. Pentru aceste distribuții, Linux trebuie să fie cel puțin Kernel 2.6.X.

Protocoale de rețea suportate: TCP/IP, TCP/IP SSL (TCP/IP securizat), Named Pipes.

Browsere suportate: Internet Explorer (cel putin versiunea 6), Mozilla Firefox (cel puțin versiunea 1.7), Netscape (cel puțin versiunea 7.2).

Pentru a determina dacă aceste cerințe sunt îndeplinite pe un sistem de calcul pe care se află instalat Linux Server, se va proceda după cum urmează:

Trebuie să fim logat ca root.

Pentru a determina tipul de microprocesor:

root# cat /proc/cpuinfo

sau

uname -m

care va afișa informații de forma:

processor : 0

vendor_id : GenuineIntel

cpu family : 6

model : 15

model name : Intel(R) Xeon(R) CPU E5310 @ 1.60GHz

stepping : 7

cpu MHz : 1600.057

cache size : 4096 KB

Pentru a determina memoria RAM și memoria swap și share:

root# grep MemTotal /proc/meminfo

afișează memoria RAM fizică

root# grep SwapTotal /proc/meminfo

afișează memoria swap

root# free

afișează memoria RAM și swap disponibilă

root# df -k /dev/shm/

afișează memoria share disponibilă

Pentru a determina spațiul liber pe disc:

root# df -k

afișează spațiul disponibil pe disc

root# df -k /tmp

afișează spațiul disponibil în directorul /tmp. Spațiul disponibil în directorul /tmp trebuie să fie de cel puțin 200 MB.

Cerințele hardware sunt, în mare parte, similare cu cele de pe platformele Windows, deosebirile fiind la modul de organizare a discului sub sistemele de operare Linux și a modului de folosire a memoriei RAM.

Pe lângă cerințele mai sus enumerate este necesar, în funcție de distribuția de Linux și de kernell, să se instaleze și o serie de pachete de programe numite packages. Ca exemplu, pentru distribuțiile de Linux Red Hat, CentOS, Oracle și Asianux, este nevoie să se instaleze următoarele package-uri:

binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

compat-libstdc++-33-3.2.3 (32 bit)

elfutils-libelf-0.125

elfutils-libelf-devel-0.125

gcc-4.1.1

gcc-c++-4.1.1

glibc-2.5-12

glibc-2.5-12 (32 bit)

glibc-common-2.5

glibc-devel-2.5

glibc-devel-2.5-12 (32 bit)

libaio-0.3.106

libaio-0.3.106 (32 bit)

libaio-devel-0.3.106

libgcc-4.1.1

libgcc-4.1.1 (32 bit)

libstdc++-4.1.1

libstdc++-4.1.1 (32 bit)

libstdc++-devel 4.1.1

make-3.81

numactl-devel-0.9.8.x86_64

sysstat-7.0.0

Dacă aceste cerințe au fost îndeplinite, se trece mai departe la etapele următoare. Acestea sunt:

crearea utilizatorilor și a grupurilor;

configurarea parametrilor pentru kernel;

crearea directoarelor specifice;

configurarea modului de lucru pentru utilizatori.

Trebuiesc create următoarele grupuri și utilizatori locali ai sistemului de operare Linux: Oracle Inventory group (oinstall), OSDBA group (dba) și Oracle software (oracle).

Configurarea parametrilor pentru kernel presupune ajustarea anumitor parametri ai nucleului sistemului de operare Linux la valorile minime impuse de specificațiile Oracle pentru instalare.

Directoarele specifice care trebuiesc create sunt cele standard pentru instalarea Oracle (Oracle base directory) și cele opționale (Data file directory). Oracle base directory și Data file directory trebuie să aibă cel puțin 3 GB și respectiv 4 GB spațiu disponibil pe disc. Pentru acestea, se vor specifica proprietarii, grupurile și drepturile de acces pentru acestea.

Configurarea modului de lucru pentru utilizatori va presupune, în primul rând, configurarea anumitor parametri pentru utilizatorul Oracle deoarece acesta va lansa aplicația de instalare Oracle Universal Installer. Schimbarea utilizatorilor, din root în oracle, se va face cu comanda:

root# su – oracle

Lansarea aplicației Oracle Universal Installer se poate face din consola cu comanda:

oracle$ <cale> runInstaller

sau folosind interfața grafică Linux cu ajutorul căreia se localizează suportul de memorie externă pe care se află aplicația de instalare, se localizează directorul care conține fișierul run Installer și se lansează în execuție acesta.

Instalarea SGBD-ului Oracle sub sistemul de operare Linux, decurge în continuare similar cu instalarea sub Windows.

3.2.3. Instalare PostgreSQL pe platforme Windows

Similar cu instalarea SGBD-ului Oracle, se va verifica dacă sunt asigurate cerințele hardware minime pentru a se putea face instalarea. Pe site-ul producătorului – http://www.postgresql.org/ – sunt specificate cerințele minime pentru instalarea pe platforme Windows și Linux. Tot acolo se specifică și că sistemele moderne de sisteme de calcul suportă instalarea SGBD-ului PostgreSQL.

Cerințele minime pentru instalare sunt următoarele:

Microprocesor: Intel EM64T sau AMD64

Memorie RAM: 2 GB (minim 256 MB)

Memorie virtuală: dublul memoriei RAM

Spațiu liber pe disc: 100 MB

Memorie video: 256 MB

Sisteme de operare Windows: Windows Server 2003 ( x64 editions), Windows Server 2003 R2 (x64 editions), Windows XP Professional x64 Edition, Windows Vista x64 (Business, Enterprise, Ultimate editions), Windows 7 x64, Windows Server 2008.

Nu sunt suportate următoarele versiuni [36]:

Windows XP Embedded

Windows 2000

Windows NT 4

Windows NT 3.5.x

Windows 95/98/ME/3.x

Windows CE

Windows Mobile

Software-ul pentru instalare, pentru toate versiunile de sisteme de operare compatibile, se gășește pe siste-ul producătorului – http://www.postgresql.org/, http://www.postgresql.org/download/, http://www.enterprisedb.com/products-services-training/pgdownload#windows – sau și pe alte site-uri (deoarece este un produs free).

Pachetul (kit-ul) de instalare pentru sistemul de operare Windows (64 bits) are aproximativ 50 MB pentru PostgreSQL 9.

Pașii care se vor parcurge pentru instalare sunt următorii:

1. De pe suportul optic pe care se află pachetul de instalare sau de pe orice altă locație unde se află acesta, se va lansa în execuție fișierul postgresql-9.0.11-1-windows-x64.exe sau similar. Această operație va avea ca efect rularea aplicației de instalare pentru platforme de calcul dotate cu sisteme de operare Windows (Figura 3.19.).

Figura 3.19. Lansarea aplicației de instalare PostgreSQL

2. Se va afișa fereastra de întâmpinare pentru dialogul cu utilizatorul (Figura 3.20.).

Figura 3.20. Interfața de instalare

3. Se solicită locația de pe disc unde se va instala PostgreSQL. Această locație este creată automat de către aplicația de instalare (Figura 3.21.).

Figura 3.21. Alegerea locației unde se face instalarea PostgreSQL

4. Se solicită locația de pe disc unde se vor stoca datele pentru PostgreSQL. Această locație este creată automat de către aplicația de instalare (Figura 3.22.).

Figura 3.22. Alegerea locației unde se vor instala datele

5. Pentru administratorul PostgreSQL și pentru utilizatorul postgres, se va introduce parola. Dacă utilizatorul postgres este deja creat sub Windows, atunci se va introduce parola pentru acesta. Dacă acesta nu este creat, atunci se va crea automat (Figura 3.23.).

Figura 3.23. Introducerea parolei de administrator

6. SGBD-ul PostgreSQL comunică implicit prin portul 5432. La acest pas se poate modifica portul prin care se face comunicarea și care este supravegheat de către SGBD (Figura 3.24.).

Figura 3.24. Alegerea portului de comunicare

7. Se va solicita introducerea locației de țară și a limbii folosite pentru a se putea instala seturile de caractere specifice țării și limbii alese (Figura 3.25.).

Figura 3.25. Alegerea țării și a limbii

8. Se va activa procesul de scriere a datelor pe disc. Se afișează o bară de progres care va indica estimativ cât a fost instalat și cât mai este din SDBD (Figura 3.26.).

Figura 3.26. Bara de progres în timpul instalării

9. Se instalează suplimentar database cluster (Figura 3.27.).

Figura 3.27. Instalare database cluster

10. Finalizarea procesului de instalare a elementelor de bază ale SGBD-ului PostgreSQL este marcată de afișarea mesajului prin care se poate selecta sau nu aplicația Stack Builder. Aceasta va permite descărcarea de pe site-ul producătorului și instalarea automată de unelte suplimentare de administrare, drivere și aplicații (Figura 3.28.).

Figura 3.28. Sfârșit proces de instalare standard

11. Alegerile posibile sunt pentru <remote server> și PostgreSQL cu opțiuni avansate de utilizare (Figura 3.29.).

Figura 3.29. Alegerea opțiunilor adiționale

12. Aplicațiile de instalare pentru PostgreSQL cu opțiuni avansate de utilizare sunt multiple. Obligatoriu de ales este Databse Server pentru a se instala serverul de baze de date. Alte aplicații care se pot instala sunt din zona uneltelor de dezvoltare și administrare, a aplicațiilor spațiale (GIS), a aplicațiilor și uneltelor de dezvoltare Web (Figura 3.30.).

Figura 3.30.a. Aplicații suplimentare care se pot instala

Figura 3.30.b. Aplicații suplimentare care se pot instala – detaliu

13. Stack Bilder va descărca toate aplicațiile selectate necesare instalării alese (Figura 3.31.).

Figura 3.31. Descărcarea și pregătirea pentru instalare

14. Actualizarea (upgrade-ul) este făcută cu avertizarea de rigoare că o parte din datele existente și aplicațiile vor fi suprascrise (Figura 3.32.).

Figura 3.32. Avertizare pentru existenta unei instalări anterioare

15. Finalul operației de instalare și particularizare (customize) este marcat de afișarea standard prin care se cere repornirea sistemului. Cum operația de instalare a fost făcută și cu particularizare, se va selecta opțiunea “No”, urmând ca restartarea să se facă ulterior (Figura 3.33.).

Figura 3.33. Mesaj de terminare a instalării

16. Încheierea efectivă a operației de instalare și particularizare a SGBD-ului PostgreSQL cu aplicațiile suplimentare, este marcată de afișarea mesajului de finalizare, precum și de informațiile că anumite date au fost păstrate pentru instalări și actualizări ulterioare (Figura 3.34.).

Figura 3.34. Instalare completă

Instalarea serverului PostgreSQL pe o platformă Windows va fi marcată de crearea grupului PostgreSQL 9.0. Pentru cazul ales, s-au creat următoarele subgrupuri: Application Stack Builder, pgAdmin III, Reload Configuration, SQL Shell (psql) și Documentation. În funcție de opțiunile de instalare alese, se vor afișa și alte seturi de subgrupuri (Figura 3.35.).

Figura 3.35. Aplicații instalate

Din acest moment serverul poate fi folosit însă, nu înainte de a se face de către administrator configurările pentru utilizatori și aplicarea politicilor de securitate asupra acestora și a grupurilor create.

3.2.4. Instalare PostgreSQL pe platforme Linux

PostgreSQL este disponibil implicit pentru instalare pe mai toate distribuțiile de Linux. Aceasta înseamnă că se găsește și poate fi solicitat să fie instalat odată cu instalarea sistemului de operare Linux.

Instalarea serverului PostgreSQL se face în două etape – instalarea aplicației și configurarea (post-instalarea).

Instalarea PostgreSQL poate fi făcută în următoarele moduri:

Inclusă în distribuția Linux;

Yum Repository;

Direct RPM download.

La instalarea sistemului de operare Linux, se va putea alege prin opțiunile de configurare puse la dispoziția utilizatorului și instalarea PostgreSQL. Dacă această opțiune nu a fost aleasă, atunci se va putea instala PostgreSQL ulterior. Din terminalul Linux, cu drepturi de root se va introduce următoarea linie de comandă:

yum install postgresql-server

Această comandă va instala PostgreSQL-ul care se află în pachetul de instalare Linux. Versiunea de PostgreSQL depinde de distribuția de Linux și de versiunea acestuia. Ca exemplu, pentru Red Hat (RHEL)/CentOS/SL 5 implicit se instalează PostgreSQL 8.1, Red Hat (RHEL)/CentOS/SL 6 – PostgreSQL 8.4, Fedora 16, 17 – PostgreSQL 9.1.

Instalarea particularizată (custom) va permite alegerea pachetelor care se vor instala. Printre acestea se pot enumera:

postgresql – librării client;

postgresql-server – core database server;

postgresql-contrib – module suplimentare;

postgresql-devel – librării pentru dezvoltarea (limbaje C);

pgadmin3 – interfața pentru administrare grafică pgAdmin III.

Dacă se dorește instalarea librăriilor client, a serverului de baze de date și a modulelor suplimentare, atunci se va introduce următoarea comandă:

yum install postgresql postgresql-server postgresql-contrib

Instalarea folosind Yum Repository se va face atunci când varianta de PostgreSQL cu care vine sistemul de operare Linux nu este cea dorită. În acest caz, prima operație care trebuie făcută este de a descărca (download) de pe site-ul producătorului varianta de PostgreSQL dorită. Această operație se va putea face cu ajutorul unei comenzi de forma:

rpm -i http://yum.postgresql.org/9.1/redhat/rhel-6-x86_64/pgdg-redhat91-9.1-5.noarch.rpm

După descărcarea pachetelor se va trece la instalare cu ajutorul comenzii yum:

yum install postgresql91-server postgresql91-contrib
service postgresql-9.1 initdb
chkconfig postgresql-9.1 on

Versiunea de postgreSQL instalată va fi 9.1., după cum se poate constata din linia de comandă introdusă.

Dacă nu se dorește niciunul din modurile de instalare mai sus amintite, atunci se poate opta pentru descărcarea și scrierea pe un suport de memorie a pachetului de instalare, urmând ca de acolo să se facă o instalare ulterioară. Descărcarea pachetelor RPM se va putea face de la următoarea locație: http://yum.postgresql.org/rpmchart.php

Post-instalarea sau configurarea serverului se va face în următoarele etape:

inițializarea bazei de date (clusterul).

service postgresql initdb

sau

/etc/init.d/postgresql initdb

editarea fișierului postgresql.conf și configurarea listener-ului pentru a supraveghea orice adresă și a portului de comunicație 5432.

nano -w /var/lib/pgsql/data/postgresql.conf

și se introduce/modifică

listen_addresses = '*'

port = 5432

editarea fișierului pg_hba.conf și configurarea opțiunilor de rețea.

host all all 192.168.0.10/24 – ca exemplu

editarea fișierului iptables și deschiderea portului 5432 pentru Firewall.

nano -w /etc/sysconfig/iptables

și se va introduce următoarea linie înainte de COMMIT :

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5432 -j ACCEPT

startarea serverului PostgreSQL.

service postgresql start sau /etc/init.d/postgresql start

Acum serverul de baze de date PostgresSQL este instalat și poate fi folosit.

3.3. Instalare clienți și unelte de gestiune și dezvoltare

Instalare client Oracle

Pentru instalarea clienților Oracle, cu ajutorul cărora ne vom conecta de la o stație de lucru la baza de date Oracle, se va verifica dacă sunt îndeplinite cerințele minime necesare pentru instalare. Pentru a se putea face instalarea, utilizatorul trebuie să aibă drepturi de administrator pentru stația de lucru respectivă.

Pașii care se vor parcurge pentru instalare sunt următorii:

1. De pe suportul optic pe care se află pachetul de instalare Oracle 10g se va selecta și se va lansa în execuție fișierul setup.exe. Acesta va permite rularea aplicației Oracle Universal Installer, prin intermediul căreia se va desfășua întregul proces de instalare (Figura 3.36).

Figura 3.36. Startarea Oracle Universal Installer

2. Se va afișa fereastra de dialog cu utilizatorul. Dacă se dorește dezinstalarea unei instalări anterioare se poate selecta butonul „Deinstall Products”. Se poate să se vizualizeze componentelor care se vor instala, prin selectarea butonului „Installed Products” (Figura 3.37.).

Figura 3.37. Fereastra de dialog cu utilizatorul

3. Se alege tipul de instalare – Client, Administrator, Runtime sau Custom (Figura 3.38.). Instalarea Client va permite doar instalarea cu opțiuni de acces la server pentru client. Nu se permit alte operații. Instalarea Administrator va permite suplimentar și instalarea consolei de management, a uneltelor de administrare, a serviciilor de rețea, precum și o serie de utilitare. Instalarea Runtime va permite suplimentar față de instalarea Client și a uneltelor pentru dezvoltare de aplicații și servicii de rețea. Instalarea Custom va permite o particularizare a instalării, prin selectarea componentelor care se vor instala.

Figura 3.38. Selectarea tipului de instalare

4. Se va selecta limba în care se va instala și rula aplicația (Figura 3.39.).

Figura 3.39. Selectarea limbii pentru instalare

5. Se va solicita locația unde se face instalarea și denumirea pentru client (Figura 3.40.).

Figura 3.40. Specificarea detaliilor de instalare

6. Installer-ul va verifica dacă sistemul de calcul îndeplinește cerințele minime impuse de opțiunile alese la instalare (Figura 3.41.).

Figura 3.41. Verificarea cerințelor minime impuse pentru instalare

7. Înaintea instalării pe disc, se va afișa un sumar al opțiunilor alese pentru instalare (Figura 3.42.).

Figura 3.42. Afișarea sumară a opțiunilor și pachetelor de instalare

8. Instalarea în sine este marcată de afișarea unei bare de progres, precum și a aplicațiilor care se instalează (Figura 3.43.).

Figura 3.43. Procesul de instalare Oracle Client

9. În timpul instalării, se va lansa Configuration Assistants care va configura și va lansa componentele anterior selectate (Figura 3.44.).

Figura 3.44. Asistentul de configurare

10. Se va lansa utilitarul pentru configurarea opțiunilor de rețea – Oracle Net Configuration Assistant (Figura 3.45.). Acesta va permite selectarea unei configurații tipice de rețea, prin bifarea în căsuța Perform typical configuration.

Figura 3.45. Utilitarul pentru configurarea opțiunilor de rețea

11. Pentru conectarea la un serviciu, utilizatorul va folosi un identificator de conectare. Conectorul de identificare poate să fie un descriptor sau un simplu nume. Local Naming – Denumire locală este cea mai potrivită pentru rețele simple, distribuite cu un număr mic de servicii care se modifică frecvent (Figura 3.46.).

Figura 3.46. Alegerea identificatorului de conectare

12. Se va introduce numele serviciului (Figura 3.47.). De regulă, numele serviciului, este denumirea globală a bazei de date. În cazul de față denumirea aleasă este Firma.

Figura 3.47. Introducerea numelui serviciului

13. Se selectează protocolul de comunicare în rețea (Figura 3.48.).

Figura 3.48. Selectarea protocolului de comunicare

14. Se solicită introducerea numelui serverului sau a adresei IP a acestuia, precum și a portului de comunicare (Figura 3.49.). Portul standard de comunicare Oracle este 1521.

Figura 3.49. Introducerea Host name și a portului de comunicare

15. Dacă serverul de baze de date și stația de lucru pe care se află instalat clientul sunt conectate la rețea se poate testa conexiunea (Figura 3.50.).

Figura 3.50. Posibilitatea de testare a conexiunii

16. În final Utilitarul pentru configurarea opțiunilor de rețea va solicita introducerea unui nume pentru acest serviciu de rețea (Figura 3.51.).

Figura 3.51. Introducerea numelui pentru serviciul de rețea

17. Dacă se dorește configurarea altui serviciu de rețea se poate face acest lucru (Figura 3.52.).

Figura 3.52. Selectarea/deselectarea configurării unui alt serviciu

18. Configuratorul de rețea afișează mesajul de configurare completă a serviciilor de rețea (Figura 3.53.).

Figura 3.53. Încheierea configurării serviciilor de rețea

19. Se afișează mesajul de terminare a configurării pentru metoda de conectare – Naming Methods (Figura 3.54.).

Figura 3.54. Încheiere configurare Naming Methods

20. Se afișează mesajul de terminare a configurărilor de rețea (Figura 3.55.).

Figura 3.55. Încheiere Net Configuration

21. Finalizarea procesului de instalare este marcată de mesajul „End of Installation” (Figura 3.56.).

Figura 3.56. Finalizarea procesului de instalare

22. Selectarea butonului Exit, din fereastra de mai sus, pentru terminarea procesului de instalare este marcată de afișarea unui mesaj specific (Figura 3.57.).

Figura 3.57. Părăsirea aplicației de instalare client Oracle

23. Finalizarea procesului de instalare a clientului Oracle (instalare cu facilități de Administrator) va crea un grup Windows cu denumirea Oracle – OraClient10g_home1, cu subgrupurile: Application Development, Configuration and Migration Tools, Enterprise Management Tools, Integrated Management Tools, Oracle Inatallation Products și Enterpise Manager Console (Figura 3.58.).

Figura 3.58. Aplicații Oracle Client instalate

O aplicație foarte folosită de către utilizatori pentru „log-area” la o bază de date Oracle consola SQL Plus (Figura 3.59.).

Figura 3.59. Consola de „log-are” SQL Plus

Instalare unelte de gestiune și dezvoltare

Pe lângă facilitățile oferite de aplicațiile suplimentare instalate odată cu serverul de baze de date, se mai pot instala și o serie de unelte suplimentare de gestiune și dezvoltare.

Oracle SQL Developer este un mediu de dezvoltare integrat gratuit care simplifică dezvoltarea și gestionarea bazei de date Oracle. SQL Developer permite dezvoltarea de aplicații folosind limbajul PL/SQL, posibilitatea de a scrie și rula interogări (queries) și scripturi, folosirea consolei DBA pentru gestionarea bazei de date, soluții moderne de modelare, precum și o platformă pentru importul și exportul bazelor de date [40].

Oracle SQL Developer poate fi descărcat de pe site-ul Oracle, la locația http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

SQL Developer prezintă avantajul că nu trebuie instalat în sistem. Rularea fișierului sqldeveloper.exe (sau similar) va avea ca efect “instalarea” aplicației în memoria internă, de unde se va face rularea. Interfața cu utilizatorul va permite realizarea de multiple conexiuni la bazele de date, precum și operații specifice cu acestea (Figura 3.60.).

Figura 3.60. Interfața SQL Developer și realizarea unei noi conexiuni

Pentru realizarea unei conexiuni trebuie specificați parametrii acesteia (Figura 3.61.).

Figura 3.61. Introducerea parametrilor pentru o conexiune nouă

Dacă a fost realizată conexiunea, atunci utilizatorul este conectat la baza de date de pe server și va putea să efectueze operații specifice pentru gestionarea și dezvoltare.

Oracle SQL Developer nu permite decât conexiuni la baze de date Oracle. Spre deosebire de acesta, Navicat (Premium, versiunea 10) va putea să realizeze conexiuni la servere de baze de date MySQL, PostgreSQL, Oracle, SQLite și SQL Server (Figura 3.62.).

Figura 3.62. Interfața Navicat – realizarea unei conexiuni Oracle

Un administrator al unei baze de date Oracle are la dispoziție prin prin cele două aplicații de gestiune și dezvoltare a bazelor de date, Oracle SQL Developer și Navicat, două instrumente foarte puternice pentru a putea sa-și îndeplinească sarcinile de administrator. Aceste instrumente pot fi folosite și de celelalte categorii de personal care interacționează cu baza de date. Excepția este făcută de un utilizator – end user – rolul acestuia fiind doar acela de a folosi o aplicație specifică pentru a putea să-și îndeplinească sarcinile de serviciu.

Pe lângă intrumentele specifice de administrare a bazelor de date Oracle și PostgreSQL, SQL Plus, Oracle SQL Developer și Navicat Premium nu trebuie să lipsească de pe stația de lucru a personalului însărcinat cu administrarea, securitatea, gestiunea rețelei, dezvoltarea de aplicații și administrarea aplicațiilor (Figura 3.63.).

Figura 3.62. Aplicații pentru baze de date Oracle și PostgreSQL

Tema 4

Administrarea și securitatea serverului de Baze de date

4.1. Administrarea serverului și a conturilor utilizatorilor

4.2. Auditarea utilizării bazei de date

4.3. Pierderi de date. Operații de backup și restore

4.1. Administrarea serverului și a conturilor utilizatorilor

Administrarea serverului

Orice bază de date cuprinde o serie de utilizatori care vor interacționa cu aceasta. Tipurile de utilizatori și sarcinile acestora depind în mare măsură de dimensiunea organizației. În majoritatea cazurilor se pot distinge următoarele categorii de utilizatori [FoSt03]:

Database Administrators (DBA);

Security Officers;

Network Administrators;

Application Developers;

Application Administrators;

Database Users.

Fiecare bază de date necesită cel puțin un Administrator al bazei de date/ database administrator (DBA). Această sarcină este îndeplinită de un grup de administratori care își împart responsabilitățile.

Responsabilitățile de bază ale Administratorului Bazei de date includ următoarele sarcini [FoSt03]:

Instalarea și upgrad-area serverului Oracle și a uneltelor/tools de aplicații;

Alocarea capacităților de stocare curente și a celor viitoare necesare pentru sistemul de baze de date;

Crearea structurii primare de stocare a bazei de date (tablepsaces) după ce Application developers a definit aplicația;

Crearea obiectelor primare (tables, views, indexes) odată ce Application developers a definit aplicația;

Modificarea structurii bazei de date, dacă este necesar, pentru specificații date de Application developers;

Înregistrarea utilizatorilor/users și mentenanța securității sistemului;

Asigurarea compatibilităților cu Oracle license agreement;

Controlul și monitorizarea accesului utilizatorilor/users la baza de date;

Monitorizarea și optimizarea performanțelor bazei de date;

Planificarea operațiilor de backup și recovery pentru informațiile din baza de date;

Mentenanța arhivelor de date de pe casete;

Backing up and restoring the database/Salvarea și restaurarea bazei de date;

Contactarea distribuitorului SGBD pentru suport și asistență tehnică.

Database Administrators

Administratorul bazei de date – Database Administrator – are următoarele sarcini prioritare în designul, implementarea și mentenanța bazei de date [FoSt03]:

Evaluarea hardware-ului serverului de baze de date;

Instalarea software-ul;

Planificarea bazei de date;

Crearea și deschiderea bazei de date;

Backup-ul bazei de date;

Înregistrarea utilizatorilor;

Implementarea design-ului bazei de date;

Backup-ul bazei de date funcționale;

Optimizarea/Tunarea performanțelor bazei de date.

Security Officers

Sarcinile de bază ale personalului însărcinat cu asigurarea securității – Security Officer – sunt reprezentate de totalitatea măsurilor necesare pentru asigurarea unei funcționări în condiții de deplină siguranță a serverului de baze de date. Sarcinile cuprind: înregistrarea utilizatorilor, controlul și monitorizarea accesului utilizatorilor la baza de date, și menținerea securității.

Network Administrators

Administratorul de rețea – Network Administrators – are ca sarcină principală asigurarea unei bune funcționări a rețelei în care se află instalat serverul de baze de date.

Application Developers

Dezvoltatorul de aplicații – Application Developers – are ca principală sarcină design-ul și implementarea aplicațiilor de baze de date. Sarcinile sunt următoarele:

Application Administrators

Administratorul de aplicație – Application Administrators – se ocupă cu administrarea unei anumite aplicații de baze de date.

Database Users

Utilizatorii bazei de date – Database users – au ca sarcini de bază introducerea, modificarea sau ștergerea de date din bazele de date. Aceste sarcini vor fi efectuate prin intermediul unor aplicații specifice sau prin intermediul unor utilitare. Pe lângă aceste sarcini, dacă acest lucru este specificat, se mai pot face și operații de raportare, tipărire etc. Aceste operații se pot efectua dacă utilizatorului ii este permisă operația.

Numărul de persoane care interacționează cu baza de date depinde de mărimea organizației. Evident că utilizatorii bazei de date formează marea masă a utilizatorilor. Numărul acestora poate varia de la valori de zeci, pentru aplicații locale, și poate ajunge la valori de mii sau superioare pentru aplicații complexe care folosesc conexiuni Internet.

Administrarea conturilor utilizatorilor

Administrarea conturilor utilizatorilor pentru o bază de date este o operație absolut necesară și trebuie efectuată cu foarte mare responsabilitate. Deși pare o sarcină relativ ușoară, aceasta se complică atunci când se va dori implementarea. Problemele apar datorita faptului că unele organizații nu au formalizată o politică de securitate în care să se specifice categoriile de utilizatori și drepturile de acces ale acestora.

În cele ce urmează, pentru administrarea conturilor utilizatorilor, vom face referire la bazele de date Oracle.

Pentru a putea accesa datele dintr-o bază de date Oracle trebuie utilizat un cont utilizator care are asociate anumite drepturi (privilegii) cu privire la acțiunile sale față de serverul Oracle sau față de obiectele stocate în baza de date. În mod implicit printr-un cont utilizator devin accesibile toate obiectele din schema asociată. O schemă reprezintă o colecție de obiecte formată din tabelele, view-urile, cluster-ele, procedurile stocate, package-urile etc, deținute de un anumit utilizator. Această schemă este asociată la crearea contului respectiv, de aceea numele ei și numele utilizatorului vor fi utilizate ca fiind echivalente.

Crearea utilizatorilor

Pentru crearea utilizatorilor se pot folosi mai multe metode. Cea mai utilizată este introducerea de comenzi SQL.

Sintaxa este următoarea:

CREATE USER user

IDENTIFIED { BY password | EXTERNALY }

[DEFAULT TABLESPACE tablespace]

[TEMPORARY TABLESPACE tablespace]

[QUOTA {INTEGER [k | M] | UNLIMITED} ON TABLESPACE

[QUOTA {INTEGER [k | M] | UNLIMITED } ON TABLESPACE] … ]

[PASSWORD EXPIRE]

[ACCOUNT {LOCK | UNLOCK}]

[PROFILE {profile | DEFAULT}]

DEFAULT TABLESPACE precizează tablespace-ul în care se vor crea implicit obiectele din schema asociată TEMPORARY TABLESPACE indică tablespaceul în care se vor găsi segmentele temporare utilizate pentru operații de sortare.

QUOTA acordă spațiu limitat sau nu (UNLIMITED) în anumite tablespaceuri din baza de date. Utilizatorul va putea crea astfel explicit obiecte în oricare tablespace unde îi este alocată o „cotă” de spațiu.

PASSWORD EXPIRE obligă utilizatorul să-și schimbe parola la următoarea conectare. Conturile sunt implicit neblocate, dar se poate opta și pentru blocarea lor – clauza LOCK.

PROFILE precizează o structură de control a resurselor sistemului. Se recomandă ca în clauza TEMPORARY TABLESPACE să se precizeze un tablespace de tip temporar. Dacă este precizat însă un tablespace permanent, în timp se va produce o fragmentare excesivă a acestuia datorită deselor creări și distrugeri ale segmentelor temporare.

Conturile utilizatorilor pot fi autentificate și în afara bazei de date, direct prin sistemul de operare, folosind comanda CREATE USER … IDENTIFIED EXTERNALLY pentru crearea lor.

Exemplu:

CREATE USER MASTER IDENTIFIED BY PAROLA

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP

QUOTA UNLIMITED ON USERS;

sau (cu autentificare externă)

CREATE USER MASTER IDENTIFIED BY EXTERNALY

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP

QUOTA UNLIMITED ON USERS;

O altă modalitate este reprezentată de folosirea utilitarelor proprii ale SDBD-urilor sau a uneltelor de gestiune și dezvoltare – SQL Developer sau Navicat.

Blocarea, deblocarea conturilor sau schimbarea parolelor sunt operații care se pot face folosind comanda ALTER USER:

ALTER USER user

[ IDENTIFIED { BY password | EXTERNALY } ]

[ PASSWORD EXPIRE ]

[ ACCOUNT {LOCK | UNLOCK} ]

Există situații în care este necesară schimbarea cotelor sau chiar a tablespace-urilor specificate pentru utilizatori, de ex. dacă spațiul ocupat de tabelele unui utilizator a ajuns la o dimensiune prea mare și este necesară restricționarea alocării spațiului, sau dacă baza de date este reorganizată iar obiectele utilizatorilor sunt mutate în alte tablesapce-uri [FoSt03].

ALTER USER user

[ DEFAULT TABLESPACE tablespace ]

[ TEMPORARY TABLESPACE tablespace ]

[ QUOTA {INTEGER [K | M] | UNLIMITED} ON TABLESPACE

[ QUOTA {INTEGER [K | M] | UNLIMITED } ON TABLESPACE] … ]

Ștergerea sau îndepărtarea din baza de date a unui cont utilizator se face prin comanda DROP USER. Dacă schema asociată conține obiecte, această comandă trebuie însoțită de clauza CASCADE:

DROP USER user [ CASCADE ];

Informații despre conturile utilizatorilor se găsesc în view-urile DBA_USERS și DBA_TS_QUOTAS (Figura 4.1.):

Figura 4.1. Informații despre conturile utilizatorilor

Controlul utilizării resurselor prin profiluri

Un profil reprezintă un set de restricții privind resursele sistemului:

timp CPU;

număr de operații I/E;

timp de inactivitate;

spațiu de memorie internă;

număr de sesiuni concurente.

la care se adaugă un alt set de restricții privind gestiunea parolelor:

număr de încercări de conectare;

durată de viață a parolelor;

complexitatea lor;

condiții de blocare a conturilor.

Automat serverul Oracle creează un profil DEFAULT care este asignat implicit acelor conturi cărora nu le este specificat la creare nici un alt profil.

Restricțiile privind resursele sistemului sunt de două categorii:

la nivelul sesiunii;

la nivelul unui apel.

Restricțiile la nivelul sesiunii sunt verificate la fiecare nouă conectare, de exemplu numărul de sesiuni concurente SESSIONS_PER_USER, iar dacă sunt încălcate serverul deconectează sau anulează sesiunea. Restricțiile la nivel de apel sunt verificate la executarea fiecărei fraze SQL, și, dacă sunt încălcate, sunt efectuate următoarele operații: procesarea respectivului apel SQL este întreruptă și anulată, rezultatele tuturor celorlalte comenzi SQL rulate anterior rămânând intacte.

Crearea unui profil se face prin comanda:

CREATE PROFILE profile_name LIMIT limit(s) range

Exemplu:

CREATE PROFILE PROFIL_MASTER LIMIT

SESSIONS_PER_USER UNLIMITED

CPU_PER_SESSION UNLIMITED

CONNECT_TIME 45

LOGICAL_READS_PER_SESSION DEFAULT LOGICAL_READS_PER_CALL 1000 ;

CREATE PROFILE PROFIL_MASTER_NOU LIMIT

FAILED_LOGIN_ATTEMPTS 5

PASSWORD_LIFE_TIME 60

PASSWORD_REUSE_TIME 60

PASSWORD_REUSE_MAX UNLIMITED

PASSWORD_VERIFY_FUNCTION verify_function

PASSWORD_LOCK_TIME 1/24 PASSWORD_GRACE_TIME 10;

Unde

limit =

SESSIONS_PER_USER

CPU_PER_SESSION

CPU_PER_CALL

CONNECT_TIME

IDLE_TIME

LOGICAL_READS_PER_SESSION LOGICAL_READS_PER_CALL

COMPOSITE_LIMIT

PRIVATE_SGA

range = UNLIMITED | DEFAULT | integer

pw_limit =

PASSWORD_LIFE_TIME

PASSWORD_GRACE_TIME

PASSWORD_REUSE_TIME

PASSWORD_REUSE_MAX

FAILED_LOGIN_ATTEMPTS

PASSWORD_LOCK_TIME

range = UNLIMITED | DEFAULT | expression

Asignarea unui profil unui cont utilizator se poate face direct la crearea acestuia prin clauza PROFILE a comenzii CREATE USER, sau ulterior prin comanda ALTER USER:

CREATE USER MASTER IDENTIFIED BY PAROLA

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP

QUOTA UNLIMITED ON USERS

PROFILE PROFIL_MASTER;

ALTER USER user PROFILE profil;

ALTER USER MASTER PROFILE PROFIL_MASTER_NOU;

Modificarea unui profil se face prin comanda ATER PROFILE:

ALTER PROFILE profile_name LIMIT limit(s) range

ALTER PROFILE profile_name LIMIT pw_limit(s) range

Informații despre restricțiile privitoare la resurse administrate prin profile se găsesc în view-ul DBA_PROFILES (Figura 4.2.):

Figura 4.2. Informații despre restricții

Administrarea privilegiilor și rolurilor

Drepturile sau privilegiile acordate utilizatorilor într-o bază de date Oracle se împart în două categorii:

privilegii SYSTEM – permit utilizatorilor să efectueze anumite acțiuni în baza de date, printre care crearea, distrugerea sau modificarea tabelelor, view-urilor, segmentelor rollback sau procedurilor stocate;

privilegii OBIECT – permit utilizatorilor să execute anumite acțiuni asupra unor anumite obiecte cum ar fi o tabelă, un view, o procedură, o funcție sau un package.

Privilegiile SYSTEM

Privilegiile SYSTEM (Tabelul 4.1.) se pot clasifica în:

– privilegii privind operații care vizează întregul sistem, cum ar fi CREATE SESSION sau CREATE TABLESPACE;

– privilegii privind operații care vizează obiectele din propria schemă cum ar fi CREATE TABLE;

– privilegii privind operații care vizează obiecte din oricare schemă, de exemplu CREATE ANY TABLE.

Tabelul 4.1.

Privilegii SYSTEM

Acordarea privilegiile SYSTEM se face folosind comanda GRANT:

GRANT {system_privilege | role}

[,{system_privilege | role}] …

TO {user | role | PUBLIC}

[{user | role | PUBLIC}, ] …

[WITH ADMIN OPTION]

Privilegiile pot fi acordate direct utilizatorilor sau prin intermediul rolurilor. Acordarea unui privilegiu tuturor utilizatorilor se realizează folosind clauza PUBLIC. Un utilizator poate acorda mai departe un privilegiu dacă i-a fost acordat folosindu-se clauza WITH ADMIN OPTION sau dacă are privilegiul GRANT ANY ROLE.

Revocarea privilegiilor sistem acordate se realizează prin comanda REVOKE:

REVOKE {system_privilege | role}

[,{system_privilege | role}] …

FROM {user | role | PUBLIC}

[{user | role | PUBLIC}, ] …

Această comandă va revoca doar privilegiile acordate direct printr-o comandă GRANT. Revocarea privilegiilor sistem nu are un efect cascadă asupra privilegiilor acordate de către un utilizator care beneficiase de clauza ADMIN OPTION.

Informații despre privilegiile system pot fi obținute din view-ul DBA_SYS_PRIVS (GRANTEE, PRIVILEGE, ADMIN OPTION) pentru cele la nivelul întregii baze de date, sau din SESSION_PRIVS (PRIVILEGE) doar pentru cele active în sesiunea curentă (Figura 4.3.).

Figura 4.3. Informații despre privilegiile SYSTEM

Privilegiile OBIECT

Fiecare privilegiu OBIECT care este acordat autorizează beneficiarul acestuia să execute anumite operații referitoare la obiectul în cauză (Tabelul 4.2.).

Tabelul 4.2.

Privilegii OBIECT

Acordarea unui privilegiu obiect se realizează prin comanda GRANT de forma:

GRANT {object_priv [(column_list)]

[,object_priv [(column_list)] ] … | ALL [PRIVILEGES]}

ON [schema.]object

TO {user | role | PUBLIC}

[{user | role | PUBLIC}, ] …

[WITH GRANT OPTION]

La acordarea privilegiilor INSERT, REFERENCES sau UPDATE se pot indica explicit prin column_list doar anumite coloane dintr-o tabelă sau un view, asigurându-se astfel un nivel de granularitate mai fin în ceea ce privește politica de securitate.

Pentru ca un utilizator să poată acorda un privilegiu obiect, obiectul respectiv trebuie să se găsească în propria schemă sau să-i fi fost acordat cu clauza GRANT OPTION.

Implicit, pentru obiectele din schema proprie, un utilizator deține toate privilegiile asupra acestora.

Informații despre privilegiile obiect pot fi obținute din view-ul DBA_SYS_PRIVS și DBA_COL_PRIVS (PRIVILEGE) (Figura 4.4.).

Figura 4.4. Informații despre privilegii OBIECT

Revocarea unui privilegiu obiect se face prin comanda REVOKE:

REVOKE {object_priv [,object_priv ] … | ALL [PRIVILEGES]}

ON [schema.]object

FROM {user | role | PUBLIC}

[{user | role | PUBLIC}, ] …

[CASCADE CONSTRAINT]

Prin clauza CASCADE CONSTRAINT se renunță la orice restricție referențială specificată explicit de către cel care execută comanda REVOKE folosind privilegiile REFERENCES sau ALL.

Spre deosebire de privilegiile sistem, revocarea unui privilegiu acordat cu ADMIN OPTION unui utilizator inițial va produce și revocarea în cascadă a privilegiului revocat la nivelul tuturor utilizatorilor care l-au primit de la respectivul utilizator inițial.

Rolurile

Rolurile reprezintă seturi de privilegii grupate după criterii specifice care pot fi acordate printr-o singură operațiune unuia sau mai multor utilizatori. Printre caracteristicile acestora se numără [FoSt03]:

sunt acordate sau revocate prin aceeași comandă ca și în cazul privilegiilor sistem;

pot fi acordate direct unui utilizator sau unui alt rol;

pot fi constituite atât din privilegii sistem cât și din privilegii obiect;

sunt activate la nivelul fiecărui utilizator;

la activare pot cere autentificarea printr-o parolă.

Printre avantajele utilizării rolurilor putem aminti [FoSt03]:

reducerea operațiilor repetate de acordare a privilegiilor – prin operațiunea de acordare a unui singur rol se acordă implicit toate privilegiile aferente acestuia într-un singur pas;

gestiunea dinamică a “portofoliului” de privilegii – odată cu modificarea unui rol, se modifică automat și imediat politica de securitate la nivelul tuturor utilizatorilor care dețin respectivul rol;

activarea selectivă a privilegiilor – rolurile nu trebuie să fie active permanent, ele sunt acordate utilizatorilor care au nevoie de ele, dar pot fi activate numai când aceștia desfășoară anumite activități care reclamă o politică de securitate sau drepturi specifice, precizate prin respectivele roluri;

politica de securitate stabilită prin roluri poate fi transferată la nivelul sistemului de operare, de ex. în cazul NT/2000/XP există posibilitatea delegării acestor roluri la nivelul unor grupuri de utilizatori definiți la nivelul sistemului de operare;

prin utilizarea rolurilor se reduce volumul de informație din dicționarul de date cu privire la acordarea privilegiilor individuale.

Crearea rolurilor se realizează prin următoarea comandă:

CREATE ROLE role

[NOT IDENTIFIED | IDENTIFIED {BY password | EXTERNALLY}]

Dacă la activarea respectivului rol este cerută autentificarea, aceasta poate fi făcută prin parolă BY password sau de către un serviciu de autentificare extern, de ex. la nivelul sistemului de operare.

După crearea rolului, urmează specificarea privilegiilor ce vor fi acordate prin intermediul acestuia folosind o comandă GRANT cum este cea folosită în cazul privilegiilor sistem.

Acordarea rolurilor către utilizatori se face printr-o comandă GRANT:

GRANT role, [role] …

TO {user | role | public} [,{user | role | public}] …

[WITH ADMIN OPTION]

Un utilizator poate avea mai multe roluri acordate, toate putând fi automat activate în momentul conectării la serverul Oracle. Dacă se dorește însă ca numai unul dintre ele să fie activat implicit (default), limitându-se astfel numărul rolurilor disponibile automat la conectarea în baza de date, se folosește comanda:

ALTER USER user DEFAULT ROLE

{role [, role] … | ALL [EXCEPT {role [, role] …}] | NONE }

ALL semnifică că toate rolurile vor fi activate la conectare, iar prin NONE se precizează că nici un rol nu va fi făcut disponibil.

Activarea explicită a rolurilor într-o sesiune deschisă cu serverul Oracle se poate face prin comanda SET ROLE sau prin package-ul DBMS_SESSION.SET_ROLE:

SET ROLE {role [IDENTIFIED BY password]

[,role [IDENTIFIED BY password]] …

ALL [EXCEPT {role [, role] …}] | NONE }

O comandă SET ROLE dezactivează toate celelalte roluri acordate respectivului utilizator.

Pentru revocarea unui rol acordat unui utilizator se folosește aceeași comandă REVOKE ca și în cazul privilegiilor sistem.

REVOKE role [,role] …

FROM {user | role | PUBLIC}

[{user | role | PUBLIC}, ] …

Renunțarea definitivă la un rol se face prin comanda DROP ROLE. Această operațiune produce și retragerea sau revocarea acestuia de la nivelul tuturor utilizator sau altor roluri cărora le-a fost acordat.

Exemplu:

1. Creare user

CREATE USER MASTERAT IDENTIFIED BY PAROLA

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP

QUOTA UNLIMITED ON USERS;

2. Creare roluri

CREATE ROLE ROLE_MASTER;

3. Grant to roluri

GRANT CREATE session, CREATE table, CREATE view

CREATE preocedure, CREATE synonym,

ALTER table, ALTER view, ALTER procedure, ALTER synonym,

DROP table, DROP view, DROP procedure, DROP synonym,

TO ROLE_MASTER;

4. Grant roluri to user

GRANT ROLE_MASTER TO MASTERAT;

4.2. Auditarea utilizării bazei de date

Auditarea bazei de date reprezintă acțiunea de monitorizare a activităților executate de către diverși utilizatori astfel încât să se poată efectua investigații referitoare la modul de folosire a bazei de date de către aceștia.

Auditarea bazei de date se poate face la următoarele niveluri:

instrucțiune;

privilegiu;

obiect.

Auditarea bazei de date se va face ținând cont de următoarele reguli:

Scopul auditării

Volumul de date auditat.

Ca strategie de auditare:

Inițial de auditează cât mai multe evenimente și informații, ulterior se va proceda la restrângerea ariei de căutare, procedând la o analiză detaliată pe anumite zone;

Se va proteja fișierul de audit împotriva utilizatorilor neautorizați.

Procesul de auditare se va activa sau dezactiva configurând AUDIT_TRAIL cu valorile NONE, DB sau OS.

NONE – nu se scriu informații de audit.

DB – Informațiile referitoare la audit se scriu într-un fișier de audit cuprins în tabela AUD$ a utilizatorului SYS. (SYS.AUD$).

OS – Informațiile de audit se scriu într-un fișier de audit aflat intr-un director al sistemului de operare (indicat de AUDIT_FILE_DEST). Ca elemente obligatorii de auditare, indiferent dacă auditarea bazei de date este activă sau nu, se vor memora în fișierul de audit al sistemului de operare informații de audit referitoare la:

Pornirea instanței Oracle;

Oprirea instanței Oracle;

Conectările la baza de date cu privilegii de administrator.

Pentru a se putea face auditarea bazei de date este absolut necesar ca în fișierul init.ora să fie configurat parametrul AUDIT_TRIAL pe valoarea YES:

AUDIT_TRIAL=YES

Tabela SYS.AUD$ va conține informații despre auditare.

Pentru a se lansa procesul de auditare a bazei de date trebuie să fim logați ca SYS și să se lanseze următoarea comandă:

SQL>@ C:\Oracle\product\10.2.0\db_1\RDBMS\ADMIN\cataudit.sql;

Aceasta va avea ca efect colectarea informațiilor referitoare la:

numele de logare ca utilizator de sistem;

numele de utilizator al bazei de date;

identificatorul sesiunii;

identificatorul terminalului/stației de lucru;

numele obiectului accesat;

operația executată sau încercată să fie executată;

codul de terminare a unei operații;

data și ora când s-a făcut înregistrarea.

Vizualizarea rezultatelor auditului se va face prin consultarea vederilor:

DBA_AUDIT_EXISTS USER_AUDIT_OBJECT

DBA_AUDIT_OBJECT USER_AUDIT_SESSION

DBA_AUDIT_SESSION USER_AUDIT_STATEMENT

DBA_AUDIT_STATEMENT

USER_AUDIT_TRAIL

DBA_AUDIT_TRAIL DBA_OBJ_AUDIT_OPTS USER_OBJ_AUDIT_OPTS QUEUE_PRIVILEGES

DBA_PRIV_AUDIT_OPTS

Cum volumul de date stocat în aceste vederi este mare, datele care ne interesează sunt următoarele:

USERNAME – Identificatorul utilizatorului Oracle;

TERMINAL – Terminalul/stația de lucru de la care a fost făcută conexiunea;

TIMESTAMP – Când a avut loc acțiunea;

OBJECT_OWNER – Proprietarul obiectului asupra căruia a fost acțiunea;

OBJECT_NAME – Numele obiectului asupra căruia care a fost acțiunea;

ACTION_NAME – Acțiunea care a avut loc asupra obiectului (INSERT, UPDATE, DELETE, SELECT, EXECUTE).

Ca exemple vom avea:

Vizualizare opțiuni de auditare:

SELECT * FROM SYS.DBA_STMT_AUDIT_OPTS;

Vizualizarea opțiunilor de auditare pentru privilegii de system:

SELECT * FROM SYS.DBA_PRIV_AUDIT_OPTS;

SELECT * FROM SYS.DBA_OBJ_AUDIT_OPTS WHERE OWNER=’USER1’ AND OBJECT_NAME LIKE ‘TAB%’;

Vizualizarea înregistrărilor de auditare asumate

SELECT * FROM ALL_DEF_AUDIT_OPTS;

Vizualizarea înregistrărilor de audit

SELECT * FROM SYS.DBA_AUDIT_OBJECT;

Oprirea procesului de auditare se face cu comanda:

SQL>@ C:\Oracle\product\10.2.0\db_1\RDBMS\ADMIN\catnoaudit.sql;

Setările de auditare – comanda SQL AUDIT – au două forme:

Pentru auditarea instrucțiunilor SQL și a privilegiilor de sistem.

AUDIT ALL|ALL PRIVILEGES|sql_statement|system_priv [options]

Opțiunile pot fi:

BY user

BY proxy [ON BEHALF OF ANY|user]

BY ACCESS|SESSION [WHENEVER [NOT] SUCCESSFUL]

sql_statement = CLUSTER, CONTEXT, DATABASE LINK, DIMENSION, DIRECTORY, INDEX, PROCEDURE, PROFILE, PUBLIC SYNONYM, ROLE, ROLLBACK SEGMENT, SEQUENCE, SESSION, SYNONYM, SYSTEM AUDIT, SYSTEM GRANT, TABLE, TABLESPACE, TRIGGER,

TYPE, USER, VIEW.

Pentru auditarea operațiilor efectuate cu obiectele bazei de date.

AUDIT action on schema.object BY ACCESS|SESSION [WHENEVER [NOT] SUCCESSFUL]

AUDIT action on DEFAULT BY ACCESS|SESSION [WHENEVER [NOT] SUCCESSFUL]

AUDIT action on DIRECTORY dir_name BY ACCESS|SESSION [WHENEVER [NOT] SUCCESSFUL]

Unde actions reprezintă una din următoarele opțiuni:

ALTER, AUDIT, COMMENT, DELETE, EXECUTE, GRANT,

INDEX, INSERT, LOCK, RENAME, SELECT, UPDATE.

Sintaxa comenzii AUDIT

AUDIT { sql_statement_clause | schema_object_clause }

[ BY { SESSION | ACCESS } ]

[ WHENEVER [ NOT ] SUCCESSFUL ];

Operațiile de auditare pot fi activate și dezactivate la 3 niveluri:

Nivel de instrucțiune:

AUDIT table BY ACCESS;

activare auditare

NOAUDIT table;

dezactivare auditare

Nivel de privilegiu

AUDIT create table BY ACCESS WHNENEVER SUCCESSFUL;

activare auditare

NOAUDIT create table;

dezactivare auditare

Nivel de obiect

AUDIT select, insert, update ON user.table BY ACCESS WHENEVER SUCCESSFUL;

activare auditare

NOAUDIT select, insert, update ON user.table;

dezactivare auditare

4.3. Pierderi de date. Operații de backup și restore

Pierderea datelor organizației poate căpăta diferite aspecte, în funcție de ce înseamnă, de fapt, această pierdere. Pierderea unor date datorită unui furt de informație trebuie tratată altfel decât pierderea datelor de pe un suport de memorie care s-a defectat. În primul caz, pierd atât disponibilitatea datelor cât și secretul acestora. În al doilea caz, se pierde doar disponibilitatea datelor. Cu cât repun mai repede datele, cu atât activitatea normală se poate relua și pierderile sunt reduse.

Datele dintr-un server de baze de date trebuie să fie considerate ca fiind date critice. Pe lângă evenimentele care țin de domeniul criminalității informatice, pierderea datelor dintr-un server de baze de date poate avea și cauze tehnice interne.

Evenimentele din această categorie pot duce la următoarele situații nedorite:

„Căderea” instanței bazei de date;

Pierderea fișierelor de control;

Pierderea unui grup sau membru (fișier) redo log (sau a tuturor grupurilor);

Pierderea unor fișiere de date (inclusiv fișierul care conține dicționarul de date).

Căderea instanței bazei de date are ca principale cauze: un scurtcircuit care face indisponibil serverul, probleme hardware ale microprocesorului, căderi bruște ale sistemului de operare sau eșecul și terminarea anormală a unuia dintre procesele background (DBWR, LGWR, PMON, SMON).

Pierderea fișierelor de control are cauze multiple, lipsa copiilor specifice prin parametrul de inițializare CONTROL_FILES.

Pierderea fișierelor redo log are cauze complexe. Remedierea nu poate fi făcută prin folosirea de copii de siguranță. Se folosesc operații complexe de creare de redo log valide.

Cea mai gravă situație este reprezentată de pierderea fișierelor de date. Cauzele sunt multiple. Existența copiilor de siguranță este esențială în acest caz.

Soluțiile SGBD-urilor moderne pentru a se preîntâmpina astfel de cazuri sunt reprezentate de utilitare speciale pentru efectuarea operațiilor de salvare și restaurare a datelor.

Aceste utilitare dispun de opțiuni de efectuare a copiilor de siguranță logice și fizice.

Copii de siguranță logice.

Presupune salvarea datelor din baza de date (total sau parțial) prin intermediul utilitarelor de import-export.

Copii de siguranță fizice.

Presupune salvarea cu ajutorul sistemului de operare sau cu ajutorul unor utilitare speciale (RMAN) a fișierelor care formează baza de date. Opțiunile pentru salvare sunt:

– online – baza de date este pornită și operațională;

– offline – baza de date este oprită.

Motivele pentru care datele trebuiesc salvate în copii de siguranță sunt exemplificate în tabelul 4.3.

Tabelul 4.3.

Nevoia de copii de siguranță

Prima opțiune, pentru a se preîntâmpina astfel de evenimente, este să efectuăm copii de siguranță. În cele ce urmează, vom trata modul în care se fac aceste salvări de siguranță.

Operația principală prin care se asigură salvarea datelor poartă denumirea tehnică de backup. Data backup este un proces de transferare a datelor de pe calculatoarele organizației pe un suport de stocare special.

Operația inversă, de restaurare a datelor atunci când este nevoie, poartă denumirea tehnică de restore. Data restore este un proces de restaurare a datelor pe calculatoarele organizației, de pe una sau mai multe copii de siguranță.

Atât operația de backup cât și operația de restore au nevoie de o arhivă. Backup va crea arhiva, iar restore o va folosi (dacă este cazul). Arhiva reprezintă o copie de siguranță pe termen lung și care este depozitată (de regulă) în afara organizației. Depozitarea se face în afara organizației, pentru ca în cazul unui dezastru natural local, datele să fie în siguranță.

Periodicitatea salvării datelor va depinde de tipul acestora și va fi implementată prin politica de securitate a organizației. Fișierele critice și fișierele de date vor trebui salvate zilnic și săptămânal, în timp ce fișierele necritice (software actualizat, drivere actualizate etc) vor putea fi salvate cu o frecvență mai rară (săptămânal) (Tabelul 4.4.)

Tabelul 4.4.

Modalități de salvare a datelor

Operația de backup poate fi efectuată în mai multe moduri, în funcție de datele care vor fi salvate.

Backup din ziua zero – Este copia sistemului în forma lui originală, imediat după ce a fost instalat, înainte ca utilizatorii să înceapă să-l folosească. Acest backup trebuie să conțină orice program și fișier din sistem.

Backup complet – Reprezintă copia tuturor fișierelor din sistem – fișiere sistem, fișierele software și fișierele de date.

Backup parțial

Backup (parțial) incremental – Cuprinde fișiere adăugate sau modificate după ultima operație de backup complet sau parțial.

Backup (parțial) diferențial – Cuprinde fișiere adăugate sau modificate după ultima operație de backup complet.

Avantajele și dezavantajele acestor tipuri de backup sunt exemplificate în tabelul 4.5.

Tabelul 4.5.

Tipuri de backup – avantaje și dezavantaje

Suporturile pe care se fac operațiile de salvare sunt de tip casete de date (Figura 4.5.).

Figura 4.5. Caseta/cartridge pentru salvare date/backup

http://www.oddmix.com/comp/cac_qic80_dc2120.html

A fost ales acest tip de suport – bandă magnetică – datorită fiabilității crescute. Capacitățile de stocare au valori de ordinul a sutelor de MB dar există și casete care au capacități de 4 TB (IBM 3592). Datorită construcției casetei, timpul de scriere este foarte ridicat deși viteza de scriere poate ajunge și la 250 MB/s (IBM 3592). O astfel de casetă are lungimea benzii de scriere de 1.000 de metri. Media de scriere este de până la 40 GB/ora. Din această cauză, operația de backup trebuie planificată cu grijă. Eficientizarea operațiilor de backup poate fi făcută printr-o schemă de rotire a casatelor pe care se face salvarea, astfel încât să satisfacă cerințele organizației.

Cele mai cunoscute scheme de rotire a casetelor, pentru organizațiile de mărime mică și medie, sunt:

Șase casete;

Bunic – Tată – Fiu (Grandfather – Father – Son (GFS));

Turnul din Hanoi.

Schema de rotire cu șase casete (Figura 4.6.) va presupune existența a șase casete notate după primele patru zile ale săptămânii – Luni, Marți, Miercuri, Joi – plus două casete notate Vineri1 și Vineri2. Se face backup incremental sau diferențial în zilele de Luni, Marți, Miercuri și Joi. Vineri se va face un backup total pe una din casetele de vineri (în ordine – de exmplu Vineri1). Caseta Vineri 1 se arhivează. Săptămâna următoare se procedează în același mod, folosind casetele Luni, Marți, Miercuri și Joi pentru un backup incremental sau diferențial, iar la final de săptămână se va face un backup total pe caseta următoare de Vineri (Vineri2) care se va arhiva. Casetele de la sfârșit de săptămână (Vineri1 și Vineri2) vor conține, practic, toate datele de până în acea zi (inclusiv). Aceste două casete sunt singurele care vor fi arhivate.

Figura 4.6. Schema de rotire cu șase casete

Schema de rotire Bunic – Tată – Fiu (Grandfather – Father – Son (GFS)) (Figura 4.7.) dispune de un număr de 20 de casete (4 casete „Fiu” pentru zilele de Luni, Marți, Miercuri și Joi, 4 casete „Tată” pentru săptămânile din lună – Săptămâna 1, Săptămâna 2, Săptămâna 3 și Săptămâna 4 și 12 casete „Bunic” pentru lunile anului – Ianuarie, Februarie, Martie, Aprilie, Mai, Iunie, Iulie, August, Septembrie, Octombrie, Noiembrie și Decembrie). Salvările se vor face în cursul săptămânii pe casetele notate Luni, Marți, Miercuri și Joi. Backup-ul este incremental sau diferențial. La sfârșit de săptămână se face un backup total pe una din casetele notate cu Săptămâna 1 Săptămâna 4. Backup-ul complet din ultima săptămână din lună se va face pe o casetă destinată lunii care se încheie. Casetele care se arhivează sunt cele corespunzătoare lunilor anului.

Figura 4.7. Schema de rotire Bunic – Tată – Fiu (Grandfather – Father – Son)

Schema de rotire Turnul din Hanoi (Figura 4.8.a.) folosește un număr inițial de 5 casete numerotate A, B, C, D și E care vor fi folosite în modul următor: caseta A din două în două utilizări de backup, caseta B din patru în patru, caseta C din opt în opt și caseta D din șaisprezece în șaisprezece.

Figura 4.8.a. Schema de rotire Turnul din Hanoi – modul de folosire casete

Schema funcționează după modul de utilizare de mai sus, cu efectuarea unui backup complet la fiecare casetă. Atunci când se ajunge la caseta notată cu E, aceasta se va extrage și se va arhiva (Figura 4.8.b.).

Figura 4.8.b. Schema de rotire Turnul din Hanoi – modul de rotire casete

Avantajele folosirii acestor scheme de rotire a casetelor sunt date în tabelul următor (Tabelul 4.6.).

Tabelul 4.6.

Tipuri de backup – avantaje și dezavantaje

Anumite organizații folosesc soluții moderne de salvare a datelor.

O prima opțiune este reprezentată de Network Attached Storage (NAS). Network Attached Storage este un ansamblu hardware și software construit pentru a stoca și partaja fișiere către servere, aplicații și utilizatori (Figura 4.9.).

Figura 4.9. Network Attached Storage

Network Attached Storage va permite stocarea NFS (Network File System) pentru clienții UNIX, CIFS (Common Internet File System) pentru client Microsoft Windows și HTTP (HyperText Transfer Protocol) pentru acces Web.

O altă opțiune este reprezentată de Storage Area Network (SAN) (Figura 4.10.). Storage Area Network reprezintă o rețea dedicata a dispozitivelor de stocare și a serverelor care le accesează. SAN-urile sunt create pe baza tehnologiei Fibre Channel (FC). Datele stocate în SAN sunt accesate la nivel de bloc de date.

Figura 4.10. Storage Area Network

Storage Area Network suportă disk mirroring, backup și restore, arhivarea și restaurarea de date, migrarea datelor între dispozitive, precum și schimbul de date între serverele din rețea.

Bibliografie

1. [Burt05] E. Burtescu, Securitatea datelor firmei, Editura Independența Economică, Pitești, 2005.

2. [Fota05] M. Fotache, Proiectarea bazelor de date. Normalizare si postnormalizare. Implementari SQL si Oracle, Editura Polirom, București, 2005.

3. [FoSt03] M. Fotache, C. Strîmbei, L. Crețu. Oracle 9i2 – ghidul dezvoltării de aplicații profesionale, Ed. Polirom, 2003.

4. [HsSt95] S.B. Hsiao, R. Stemp, Computer Security, course, CS 4601, Naval Postgraduate School, Monterey, California, 1995.

5. [LuRa00] I. Lungu, C. Răduț, M. Lăzărică, E. Burtescu, Informatică aplicată în economie, Editura Independența Economică, Pitești, 2000.

6. [LuSa03] I. Lungu, Gh. Sabău, M. Velicanu, M. Muntean, Sisteme informatice, Editura Economică, București, 2003.

7. [LuSu06] I. Lungu, T. Surcel, C. Răduț, E. Burtescu, Informatică economică, Editura Independența Economică, Pitești, 2006.

8. [LuBo95] I. Lungu, C. Bodea, G. Bădescu, C. Ionița, Baze de date – organizare, proiectare și implementare, Editura ALL, București, 1995.

9. [LuSa94], I. Lungu, Gh. Sabău, C. Bodea, Tr. Surcel, Sisteme informatice pentru conducere, Editura Siaj, București, 1994.

10. [Tane04] A. S. Tanenbaum, Rețele de calculatoare, Ediția a IV-a, Editura Byblos, 2004.

11. [VeLu03] M. Velicanu, I. Lungu, M. Muntean, S. Ionescu, Sisteme de baze de date. Teorie și practică, Editura Petrion, București, 2003.

12. http://www.lib.ugal.ro/cursuri/Sisteme_Operare/curs/

13. http://roseblum1000.electronist.net/curs.pdf

14. http://www.webdesignerdepot.com/2009/03/operating-system-interface-design-between-1981-2009/

15. http://www.operating-system.org/

16. http://windows.microsoft.com/en-US/windows/history

17. http://www.go4it.ro/software/dosare-3998600/windows-8-8021739/

18. http://www.windowsfaralimite.ro/stiri/windows-32-bit-versus-64-bit/

19. http://www.tech2go.in/wp-content/uploads/2011

20. http://cdn.betashuffle.com/wp-content/uploads/2011

21. http://cloud.addictivetips.com/wp-content/uploads/2011

22. http://www.ecst.csuchico.edu/~sim/144/notes/NOTE2.htm

23. http://distrowatch.com/dwres.php?resource=major

24. http://laptoping.com/wp-content/mac_osx_leopard.jpg

25. http://dcdbappl1.cern.ch:8080/dcdb/index.html

26. http://searchdatacenter.techtarget.com/tip/Choosing-the-best-server-OS-Linux-vs-Windows-comparisons

27. http://www.pcworld.com/article/139588/article.html

28. https://www.redhat.com/wapps/store/catalog.html

29. https://www.suse.com/products/server/how-to-buy/

30. http://www.techradar.com/news/world-of-tech/roundup/how-to-choose-the-right-server-for-your-business-1092468

31. http://www.oracle.com/pls/db111/portal.portal_db?selected=11

32. http://docs.oracle.com/cd/B28359_01/install.111/b32006.pdf

33. http://docs.oracle.com/cd/B28359_01/install.111/b32305.pdf

34. http://support.microsoft.com/kb/888731

35. http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/10g/r2/prod/ install/wininst/wininst_otn.htm

36. http://wiki.postgresql.org/wiki/Running_%26_Installing_PostgreSQL_ On_Native_Windows

37. http://www.if-not-true-then-false.com/2010/howto-install-postgresql-8-4-database-server-on-centos-fedora-red-hat/

38. http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/

39. http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/ statements_611a.htm#2065932

40. http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html

41. http://docs.oracle.com/cd/B10501_01/server.920/a96521/audit.htm

42. http://www.tcpipguide.com/free/t_TCPIPArchitectureandtheTCPIPModel-2.htm

43. http://www.louisville.edu/infosec/CIS483/Lectures/SecurityArchitecture.ppt

44. http://datawarehouse4u.info/

45. http://www.cse.hcmut.edu.vn/~ttqnguyet/ISSecurityForMIS_2011/slide09_ DBSecurityDesign.pdf

Bibliografie

1. [Burt05] E. Burtescu, Securitatea datelor firmei, Editura Independența Economică, Pitești, 2005.

2. [Fota05] M. Fotache, Proiectarea bazelor de date. Normalizare si postnormalizare. Implementari SQL si Oracle, Editura Polirom, București, 2005.

3. [FoSt03] M. Fotache, C. Strîmbei, L. Crețu. Oracle 9i2 – ghidul dezvoltării de aplicații profesionale, Ed. Polirom, 2003.

4. [HsSt95] S.B. Hsiao, R. Stemp, Computer Security, course, CS 4601, Naval Postgraduate School, Monterey, California, 1995.

5. [LuRa00] I. Lungu, C. Răduț, M. Lăzărică, E. Burtescu, Informatică aplicată în economie, Editura Independența Economică, Pitești, 2000.

6. [LuSa03] I. Lungu, Gh. Sabău, M. Velicanu, M. Muntean, Sisteme informatice, Editura Economică, București, 2003.

7. [LuSu06] I. Lungu, T. Surcel, C. Răduț, E. Burtescu, Informatică economică, Editura Independența Economică, Pitești, 2006.

8. [LuBo95] I. Lungu, C. Bodea, G. Bădescu, C. Ionița, Baze de date – organizare, proiectare și implementare, Editura ALL, București, 1995.

9. [LuSa94], I. Lungu, Gh. Sabău, C. Bodea, Tr. Surcel, Sisteme informatice pentru conducere, Editura Siaj, București, 1994.

10. [Tane04] A. S. Tanenbaum, Rețele de calculatoare, Ediția a IV-a, Editura Byblos, 2004.

11. [VeLu03] M. Velicanu, I. Lungu, M. Muntean, S. Ionescu, Sisteme de baze de date. Teorie și practică, Editura Petrion, București, 2003.

12. http://www.lib.ugal.ro/cursuri/Sisteme_Operare/curs/

13. http://roseblum1000.electronist.net/curs.pdf

14. http://www.webdesignerdepot.com/2009/03/operating-system-interface-design-between-1981-2009/

15. http://www.operating-system.org/

16. http://windows.microsoft.com/en-US/windows/history

17. http://www.go4it.ro/software/dosare-3998600/windows-8-8021739/

18. http://www.windowsfaralimite.ro/stiri/windows-32-bit-versus-64-bit/

19. http://www.tech2go.in/wp-content/uploads/2011

20. http://cdn.betashuffle.com/wp-content/uploads/2011

21. http://cloud.addictivetips.com/wp-content/uploads/2011

22. http://www.ecst.csuchico.edu/~sim/144/notes/NOTE2.htm

23. http://distrowatch.com/dwres.php?resource=major

24. http://laptoping.com/wp-content/mac_osx_leopard.jpg

25. http://dcdbappl1.cern.ch:8080/dcdb/index.html

26. http://searchdatacenter.techtarget.com/tip/Choosing-the-best-server-OS-Linux-vs-Windows-comparisons

27. http://www.pcworld.com/article/139588/article.html

28. https://www.redhat.com/wapps/store/catalog.html

29. https://www.suse.com/products/server/how-to-buy/

30. http://www.techradar.com/news/world-of-tech/roundup/how-to-choose-the-right-server-for-your-business-1092468

31. http://www.oracle.com/pls/db111/portal.portal_db?selected=11

32. http://docs.oracle.com/cd/B28359_01/install.111/b32006.pdf

33. http://docs.oracle.com/cd/B28359_01/install.111/b32305.pdf

34. http://support.microsoft.com/kb/888731

35. http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/10g/r2/prod/ install/wininst/wininst_otn.htm

36. http://wiki.postgresql.org/wiki/Running_%26_Installing_PostgreSQL_ On_Native_Windows

37. http://www.if-not-true-then-false.com/2010/howto-install-postgresql-8-4-database-server-on-centos-fedora-red-hat/

38. http://www.thegeekstuff.com/2009/04/linux-postgresql-install-and-configure-from-source/

39. http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/ statements_611a.htm#2065932

40. http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html

41. http://docs.oracle.com/cd/B10501_01/server.920/a96521/audit.htm

42. http://www.tcpipguide.com/free/t_TCPIPArchitectureandtheTCPIPModel-2.htm

43. http://www.louisville.edu/infosec/CIS483/Lectures/SecurityArchitecture.ppt

44. http://datawarehouse4u.info/

45. http://www.cse.hcmut.edu.vn/~ttqnguyet/ISSecurityForMIS_2011/slide09_ DBSecurityDesign.pdf

Similar Posts