SGBD Curs Cap 1

4
Curs SGBD Introducere O bază de date (BD) este o mulţime structurată de elemente de date şi de legături logice dintre ele ce descriu un univers real sau conceptual (o întreprindere, o organizaţie, o societate de asigurări, eveniment etc.), ce pot fi accesate simultan de mai mulţi utilizatori. În sens larg, o bază de date este o colecţie de date organizată (structurată). O bază de date are, în principal, următoarele roluri: stocare (memorare) şi organizarea datelor (structurare). Ca şi utilitate, bazele de date ne permit (1) memorarea unor cantităţi mari de date, (2) regăsirea datelor pe baza unor criterii ce căutare (ce sunt legate în mod direct de structurarea datelor), dar şi (3) prelucrarea unor volume mari de date (filtrare, ordonare, agregare). Un sistem de gestiune al unei baze de date (SGBD) este un software utilizat pentru crearea, întreţinerea si exploatarea unei baze de date şi care dă posibilitatea mai multor utilizatori să aibă acces simultan la datele care o compun. Capitolul I. Bazale organizarii datelor Tema 1. Date. Colectii de date. Structuri de date. Calculatorul este o unealtă electronică ce vă poate ajuta să prelucraţi informatia ( Procesorul prelucreaza informaţia). Informatia este păstrată pe diferite medii de memorare (HDD, CD, DVD, USB-Flash, discheta), în diferite formate (numere, text, imagine, sunet), sub formă de date. Aşadar, orice rezolvare de problemе începe prin definirea datelor, continuă cu prelucrarea lor (de exemplu atribuirea de valori) şi se termină fie cu afişarea valorii lor la ecran, fie cu stocarea lor pe un mediu de memorare (HDD, flash, discheta, etc.) în vederea prelucrarii lor ulterioare. Fiecărui tip de informaţie îi corespunde un anumit mod de stocare în mediul de memorare, adică un anumit tip de datе. Tipul datei determină atît operaţiile care se pot executa cu acele date, cît şi modul în care sunt reprezentate pe mediul de memorare. Datele sunt şiruri de biţi care sunt prelucrate de calculator. Data este o resursă la dispoziţia programatorului. Orice limbaj de programare permite folosirea mai multor tipuri de date. Indiferent de tipul de date ales, reprezentarea datei în memoria calculatorului (fie internă - în RAM, fie externă – pe HDD, CD, Flash, Discheta) se face printr-un şir de biţi. Pentru a realiza această reprezentare sunt implementaţi algoritmi de codificare care asigură corespondenţa dintre tipul de datе şi şirul de biţi atît la scrierea datelor, cît şi la citirea lor. Tipul de datе ales de către programator influenţează calitatea programului deoarece el determină dimensiunea zonei de memorie (adică cîtă memeorie va ocupa variabila respectivă în RAM). Tipuri de date existente: a) simple – sunt date independente, cărora li se alocă doar cîte o adresă de memorie în RAM (în C++ : int, float, bool, double, char) b) compuse – sunt colectii de date, sau structuri de date, cărora li se pot aloca una sau mai multe adrese in RAM (în C+ +: struct, union, siruri de caractere, pointeri, tablouri, clase). Orice obiect, proces sau fenomen din lumea reală poate fi caracterizat printr-o listă de date (atribute). Valorile atributelor din listă pot fi reprezentate fizic în calculator (lumea virtuală) sub forma unei structuri de date. Analiza datelor se poate face în două moduri : - la nivel logic – analizăm ce tip de date ar putea fi si ce valori maxime si minime ar putea avea, şi ce restrictii ar putea fi. - la nivel fizic – reprezentarea datelor în memoria internă (în RAM), Exemple în C++ : int, char, float, double. Tema 2. Baze de date. SGBD. Reprezentarea datelor în fisiere duce la apariţia unui sir de probleme: redundanţa datelor (unele date sunt memorate de mai multe ori), incomodităţi în actualizarea datelor, integritatea datelor(in cazul in care se sterge un fisier), programele depind de conţinutul fisierelor de date (in cazul în care se modifica structura datelor din fisier atunci va trebui modificat programul). Organizarea datelor în baza de date rezolvă aceste probleme. Baza de date (database) este o colecţie de fişiere şi înregistrări legate între ele. Avantajele folosirii bazelor de date în locul fisierelor de date: a) Partajarea informaţiilor – accesul tuturor utilizatorilor la date (fiecare utilizator are senzatia că este beneficiarul unic al colectiei de date), pot fi create noi programe care vor utiliza anumite colectii de date din baza de date. b) Posibilitate de a controla accesul la date pentru diferite categorii de utilizatori – ceea ce poate fi controlat de către administratorul bazei de date. c) Micşorarea redundanţei datelor – este posibil da a micşora repetarea unor date de mai multe ori în baza de date. d) Consistenţa datelor – actualizarea datelor (UPDATE). e) Integritatea datelor – in urma eliminării redundanţei datelor dispare si problema integritătii datelor, si anume că datele sunt pastrate într-un singur loc în baza de date. Pot fi adăugate proceduri pentru validarea datelor. Astfel date invalide sau eronate nu vor fi introduse in baza de date f) Securitatea datelor – posibilităţi ca doar anumiţi utilizatori sa aibă acces la anumite colectii de date. g) Controlul centralizat al datelor – posibilităţi de stabilire a unui administrator al bazei de date pentru controlul datelor. h) Transparenţa – utilizatorul poate să obţină date din baza de date fără ca să cunoască structura ei complexă. i) Dezvoltarea standardelor – permite dezvoltarea de noi standarde referitor la manipularea şi interogarea datelor.

Transcript of SGBD Curs Cap 1

Page 1: SGBD Curs Cap 1

Curs SGBD Introducere

O bază de date (BD) este o mulţime structurată de elemente de date şi de legături logice dintre ele  ce  descriu un univers real sau conceptual (o întreprindere, o organizaţie, o societate de asigurări, eveniment etc.), ce pot fi accesate simultan de mai mulţi  utilizatori. În sens larg, o bază de date este o colecţie de date organizată (structurată). O bază de date are, în principal, următoarele roluri: stocare (memorare) şi organizarea datelor (structurare). Ca şi utilitate, bazele de date ne permit (1) memorarea unor cantităţi mari de date, (2) regăsirea datelor pe baza unor criterii ce căutare (ce sunt legate în mod direct de structurarea datelor), dar şi (3) prelucrarea unor volume mari de date (filtrare, ordonare, agregare). Un sistem de gestiune al unei baze de date (SGBD) este un software utilizat pentru crearea, întreţinerea si exploatarea  unei baze de date şi care dă posibilitatea mai multor utilizatori să aibă acces simultan la datele care o compun.

Capitolul I. Bazale organizarii datelorTema 1. Date. Colectii de date. Structuri de date. Calculatorul este o unealtă electronică ce vă poate ajuta să prelucraţi informatia ( Procesorul prelucreaza informaţia). Informatia este păstrată pe diferite medii de memorare (HDD, CD, DVD, USB-Flash, discheta), în diferite formate (numere, text, imagine, sunet), sub formă de date. Aşadar, orice rezolvare de problemе începe prin definirea datelor, continuă cu prelucrarea lor (de exemplu atribuirea de valori) şi se termină fie cu afişarea valorii lor la ecran, fie cu stocarea lor pe un mediu de memorare (HDD, flash, discheta, etc.) în vederea prelucrarii lor ulterioare. Fiecărui tip de informaţie îi corespunde un anumit mod de stocare în mediul de memorare, adică un anumit tip de datе. Tipul datei determină atît operaţiile care se pot executa cu acele date, cît şi modul în care sunt reprezentate pe mediul de memorare. Datele sunt şiruri de biţi care sunt prelucrate de calculator. Data este o resursă la dispoziţia programatorului. Orice limbaj de programare permite folosirea mai multor tipuri de date. Indiferent de tipul de date ales, reprezentarea datei în memoria calculatorului (fie internă - în RAM, fie externă – pe HDD, CD, Flash, Discheta) se face printr-un şir de biţi. Pentru a realiza această reprezentare sunt implementaţi algoritmi de codificare care asigură corespondenţa dintre tipul de datе şi şirul de biţi atît la scrierea datelor, cît şi la citirea lor. Tipul de datе ales de către programator influenţează calitatea programului deoarece el determină dimensiunea zonei de memorie (adică cîtă memeorie va ocupa variabila respectivă în RAM).Tipuri de date existente:

a) simple – sunt date independente, cărora li se alocă doar cîte o adresă de memorie în RAM (în C++ : int, float, bool, double, char)

b) compuse – sunt colectii de date, sau structuri de date, cărora li se pot aloca una sau mai multe adrese in RAM (în C++: struct, union, siruri de caractere, pointeri, tablouri, clase).

Orice obiect, proces sau fenomen din lumea reală poate fi caracterizat printr-o listă de date (atribute). Valorile atributelor din listă pot fi reprezentate fizic în calculator (lumea virtuală) sub forma unei structuri de date.Analiza datelor se poate face în două moduri :

- la nivel logic – analizăm ce tip de date ar putea fi si ce valori maxime si minime ar putea avea, şi ce restrictii ar putea fi.- la nivel fizic – reprezentarea datelor în memoria internă (în RAM), Exemple în C++ : int, char, float, double.

Tema 2. Baze de date. SGBD. Reprezentarea datelor în fisiere duce la apariţia unui sir de probleme: redundanţa datelor (unele date sunt memorate de mai multe ori), incomodităţi în actualizarea datelor, integritatea datelor(in cazul in care se sterge un fisier), programele depind de conţinutul fisierelor de date (in cazul în care se modifica structura datelor din fisier atunci va trebui modificat programul). Organizarea datelor în baza de date rezolvă aceste probleme. Baza de date (database) este o colecţie de fişiere şi înregistrări legate între ele.Avantajele folosirii bazelor de date în locul fisierelor de date:

a) Partajarea informaţiilor – accesul tuturor utilizatorilor la date (fiecare utilizator are senzatia că este beneficiarul unic al colectiei de date), pot fi create noi programe care vor utiliza anumite colectii de date din baza de date.

b) Posibilitate de a controla accesul la date pentru diferite categorii de utilizatori – ceea ce poate fi controlat de către administratorul bazei de date.c) Micşorarea redundanţei datelor – este posibil da a micşora repetarea unor date de mai multe ori în baza de date.d) Consistenţa datelor – actualizarea datelor (UPDATE).e) Integritatea datelor – in urma eliminării redundanţei datelor dispare si problema integritătii datelor, si anume că datele sunt pastrate într-un singur loc în baza de

date. Pot fi adăugate proceduri pentru validarea datelor. Astfel date invalide sau eronate nu vor fi introduse in baza de datef) Securitatea datelor – posibilităţi ca doar anumiţi utilizatori sa aibă acces la anumite colectii de date.g) Controlul centralizat al datelor – posibilităţi de stabilire a unui administrator al bazei de date pentru controlul datelor.h) Transparenţa – utilizatorul poate să obţină date din baza de date fără ca să cunoască structura ei complexă.i) Dezvoltarea standardelor – permite dezvoltarea de noi standarde referitor la manipularea şi interogarea datelor.j) Independenţa datelor – independenţa fizică ( adică orice modificare efectuată asupra structurii datelor nu afectează programul de aplicaţie şi reciproc), independenţa

logică (adică în orice moment în baza de date pot fi definite noi cîmpuri si pot fi adăugate înregistrări) Stratificarea BD: Bază de date, Sistem de gestiunea bazelor de date, Software de aplicaţii, Utilizator(SGBD) Sistemul de gestiune a bazelor de date (database management) este un software specializat pentru crearea, întreţinerea şi consultarea bazelor de date.Cele mai importante instrumente furnizate de SGBD pentru manipularea datelor sunt:

a) Căutarea uneia sau a mai multor entităţi care îndeplinesc anumite criterii,b) sortarea în diferite moduri a diferitelor entităţi din baza de date,c) generarea unor rapoarte folosind datele stocate în baza de date,d) generarea unor formulare pentru introducerea şi validarea datelor.

Tema 3. Arhitectura sistemelor de gestiune a bazelor de date Un sistem de gestiune a bazelor de date (SGBD) este compus din module, fiecare având în cadrul sistemului sarcini specifice. Anumite funcţii pentru sistemul de baze de date sunt asigurate de nucleul   său şi de nucleul sistemului de operare. Cele mai multe SGBD asigură un minim de funcţii de bază cu ajutorul cărora sunt dezvoltate alte funcţii. Astfel la conceperea unei baze de date trebuie să se ţină seama de interfeţele dintre diverse module. Schema alăturată schiţează structura unui SGBD.În continuare se prezintă pe scurt funcţiile fiecărui modul din structura SGBD.- Gestionarul bazei de date realizează interfaţa dintre programele de aplicaţii sau de consultare şi datele fizice ale bazei de date .- Gestionarul de fişiere specifică alocările de memorie pe disc şi  structurile   de memorare care servesc la reprezentarea informaţiilor pe disc.- Procesorul de consultare traduce instrucţiunile limbajului de consultare în instrucţiuni înţelese de gestionarul bazei de date. Transpune interogările utilizatorului într-o forma echivalentă optimizată, în vederea determinării celor mai bune strategii de căutare.- Definirea schemelor bazei de date (schemei conceptuale) şi a legăturilor dintre ele se efectuează de administratorul BD, cu ajutorul unui limbaj de definire a datelor (LDD) prevăzut cu un compilator ce permite crearea dicţionarului de date. LDD =din Engleză DDL(Data Definition Language) - se referă la crearea, modificarea si stergerea unei baze de date, tabel sau index. Structura de date este o mulţime de elemente de date, de legături care există între ele şi de operaţii efectuate cu ele. - Precompilatorul LMD (limbaj pentru manipularea  datelor (sau DML - Data Manipulation Language))  generează coduri obiect ale programelor realizate cu ajutorul LMD. LMD  permite ca programatorii de aplicaţii şi neinformaticienii să manipuleze date puse în evidenţă de scheme de orice nivel. Dicţionarul de date este dat de o mulţime de scheme şi de  legături dintre schemele asociate ale bazei de date, de descrierile semnificaţiilor datelor şi a restricţiilor pe care acestea trebuie să le satisfacă. Dicţionarul de date poate fi el însuşi implementat ca o bază de date. El constituie atunci o metabază, adică o bază care descrie o altă bază. Utilizatorul este o persoană, care de la un terminal are acces la baza de date folosindu-se de o mulţime de programe de aplicaţii sau de comenzile unui limbaj de consultare.

Page 2: SGBD Curs Cap 1

Accesul la baza de date se realizează fie pornind de la un program de aplicaţii redactat într-un limbaj (C, Java ,Pascal, PHP, C#, VFP, etc.) care acceptă primitive (secvenţe de instrucţiuni de program) ce permit accesul la baza de date, fie de la un terminal utilizând un limbaj specific LMD. Pe de altă parte dacă LMD de nivel înalt este utilizat într-o manieră interactivă atunci  acesta se numeşte limbaj de interogare ( LI), sau din engleză: Query Language (QL). Administratorul BD răspunde pe lângă activitatea de definire a schemei BD, de creare şi manipulare. Pentru aceasta administratorul BD dispune de un software specializat şi are următoarele sarcini:- concepe schema bazei de date ( o descriere prin intermediul LDD).  Schema trebuie să fie independentă de  structura de memorare (stocarea fizică) şi de limbajul în care se descriu aplicaţiile. El odată cu schema asociază şi  restricţiile de integritate şi ce garantează consistenţa datelor ce sunt înregistrate în BD;- decide tehnicile de acces şi  de implementare fizică;- stabileşte legăturile SGBD-utilizator prin descrierea subschemelor care sunt  derivate din   schema BD. Subschema  permite definirea autorizaţiilor de acces;- defineşte strategiile de reluare în caz de incident;- realizează în consecinţă modificarea structurii BD. SGBD trebuie să permită utilizatorului să genereze versiuni de BD performante ţinând cont de înmulţirea utilizatorilor. El dispune de un software care îi restituie descrierea schemei BD ce este înregistrată în dicţionarul BD.

Tema 4. Baze de date relaţionale. SGBDR.Cele mai răspîndite modele de organizare a bazelor de date sunt următoarele:

1. ierarhice - câmpurile şi înregistrările sunt structurate arborescent prin noduri (nod părinte, nod copil). În cazul BD ierarhice apar următoarele probleme: dacă se şterge un nod părinte atunci se şterg toate nodurile copil subordonate, un nod copil poate fi adăugat doar dacă a fost adăugat nodul părinte, între nodurile copil nu pot fi stabilite relaţii.

2. reţea (network database) - structurare ierarhizată, doar ca aici e posibil ca un nod copil sa poată avea mai multe noduri părinte

3. relaţionale (relational database) - cel mai flexibil model de organizare a datelor, în care nu există o cale de acces ierarhizată la oanumită dată. Baza de date este formată din mai multe tabele, fiecare dintre ele fiind formate din linii şi coloane.

Baza de date relaţională este formată dintr-unul sau mai multe tabele bidimensionale între care se pot stabili legături. Tabelul permite gruparea unor date înrudite şi poate fi privit ca o colectie de cîmpuri. Pentru fiecare cîmp sunt descrise datele care vor fi memorate în el. Descrierea se face prin tipul datelor, dimensiunea lor şi alte proprietăţi. Ele definesc implicit domeniul de definiţie al datelor memorate în cîmp. Dacă domeniul datelor este inclus implicit în domeniul de definiţie, se pot defini condiţii de validare a datelor care să controleze corectitudinea datelor introduse sau modificate. Tabelul este un fisier structurat de date (cu extensia .dbf în Visual Fox Pro 9,0 ), care conţine următoarele elemente: nume tabel, coloane (cîmpuri, sau li se mai spune şi atribute) cu numele coloanei şi tipul de dată corespunzător, rînduri cu înregistrări care se mai numesc tupluri de date care contine cîte o valoare pentru fiecare coloana în parte, în dependenţă de tipul de date al coloanei(integer, varchar, ...). Schema generală a unei baze de date este formată din ansamblul tabelelor şi al legăturilor dintre ele. Construirea bazei de date se desfăşoară în două etape: construirea tabelelor (definirea cîmpurilor şi proprietăţilor lor pentru fiecare tabelă în parte) şi stabilirea relaţiilor între tabele (chei primare si secundare). Legătura dintre tabele se realizează prin mecanismul de propagare a cheilor. Cheie primara:Una sau mai multe coloane ale caror valori identifica in mod unic toate liniile unui tabel. Într-un tabel trebuie să existe o singură cheie primară. Cheia secundară este formată dintr-unul sau mai multe cîmpuri dintr-un tabel, care sunt folosite ca o cheie primară în alt tabel, valorile cîmpurilor din cheie fiind identice în ambele tabele. Se mai numeşte şi cheie străină. Într-un tabel pot exista mai multe chei secundare. Pentru ca să fie asigurată legătura dintre două tabele trebuie sa fie respectată conditia de integritate referenţială, care impune ca mulţimea valorilor unei chei secundare să fie inclusă în mulţimea valorilor cheii primare din care s-a propagat.Operaţiile de adăugare, ştergere, modificare pot afecta integritatea referenţială:

Relaţiile între tabele.Relaţia este o legătură dintre un cîmp sau o combinaţie de cîmpuri dintr-un tabel (cheia primară) şi cîmpurile corespunzătoare dintr-un alt tabel (cheia secundară).Tipuri de relaţii:

SGBDR (SGBD Relaţional) este caracterizat prin prin faptul că gestionează cu baze de date relationale. Exemple SGBDR: Access, FoxPro (de la firma Microsoft), Oracle (de la firma Oracle Corporation) - este cel mai utilizat. Funcţiile SGBDR: (a) memorarea, actualizarea (adăugarea, ştergerea şi modificarea) şi regăsirea datelor din BD; (b)crearea şi întreţinerea dicţionarului de date;(c)asigurarea accesului rapid la datele din colecţia de date;(c)backup – crearea unei copii de siguranţă a BD;(d)asigurarea securităţii datelor; (e)asigurarea accesului simultan al utilizatorilor la o înregistrare din BD;asigurarea integrităţii datelor(se pot introduce în BD numai date valide, iar operaţiile de actualizare nu distrug relaţiile dintre tabele). Pentru asigurarea securităţii bazei de date SGBDR pune la dispoziţie următoarele metode: parolă la nivelul întregii baze de date, drepturi specifice acordate utilizatorilor sau grupurilor de utilizatori, criptarea datelor(împiedică vizualizarea datelor).Elementele SGBDR: dicţionarul de date(descrie structura datelor folosite în BD, adică structura tabelelor, relaţiilor şi tabele virtuale), DDL(Data Definition Language =Limbajul de definire a datelor, reflectă conţinutul dicţionarului de date), DML (Data Manipulation Language = Limbajul de manipulare a datelor), QL (Query Language = Limbajul de interogare).