Sunteți pe pagina 1din 46

BAZE DE DATE

Introducere în teoria bazelor de date


Concepte în organizarea datelor
• Entitate
• Atribut
• Valoare
Entitate – obiect (concret sau abstract) reprezentat prin
proprietăţile sale.
Proprietatea – exprimată prin perechea
(atribut, valoare)
O entitate are mai multe atribute.
Fiecărui atribut i se asociază o mulţime de valori.
Exemple
• “Floarea x are culoarea roşie”
– Floarea x – obiect
– Culoarea – atribut
– Roşu – valoarea atributului

• Persoana X: (Nume, Popescu); (CNP, 1600519400535);


(Data naşterii, 19.05.1960); (Profesie, economist).
Concepte (continuare)
• Atribut = câmp, caracteristică
• Este caracterizat de natura valorilor pe care
le poate lua: numerice, alfanumerice, dată
calendaristică, etc..,
• Un atribut care identifică în mod unic o
entitate se numeşte atribut cheie.
Concepte (continuare)
• Data (terminologia prelucrării automate a datelor)
– Data este definită ca un model de reprezentare a
informaţiei într-un format accesibil unui
calculator.
– Din punct de vedere logic data se defineşte prin:
• identificator (ex. “Prof”)
• atribut (ex. Profesia)
• valoare (ex. inginer, economist,…)
Structuri de date
Structurile de date sunt colecţii de date
între care s-au stabilit o serie de relaţii care
conduc la un anumit mecanism de selecţie şi
de identificare a componentelor acesteia.
Structuri de date (continuare)
În funcţie de suportul de stocare structurile de date pot fi:
– în memoria internă a calculatorului (în timpul
prelucrării datelor), definite de noţiunile: listă, coadă,
stivă;
– pe suporturi de stocare în vederea prelucrării
ulterioare, definite de: fişier şi bază de date.
• Fişierul - o colecţie de informaţii corelate (date de
prelucrat, programe, comenzi, …), omogenă din
punct de vedere al naturii datelor şi cerinţelor de
prelucrare şi memorată pe un suport de stocare.
• Baza de date - un ansamblu de date structurate,
accesibile unei comunităţi de utilizatori.
Conceptul de bază de date
• Apărut în 1969
• Ideea: existenţa unui fişier de descriere globală a datelor, prin
care se asigură independenţa programelor faţă de date.
Accesul utilizatorilor la baza de date se realizează prin acest
fişier, care conţine colecţiile de date şi legăturile dintre acestea.
• Bază de date – una sau mai multe colecţii de date,
aflate în interdependenţă, împreună cu descrierea
datelor şi a relaţiilor dintre ele.

O bază de date este creată pentru un anumit scop.


Arhitectura unei baze de date

• baza de date propriu-zisă - în care se


memorează datele;
• sistemul de gestiune a bazei de date (SGBD)
– ansamblu de programe care realizează
gestiunea şi prelucrarea complexă a datelor,
asigurând interfaţa între BD şi utilizatori.
Modele de date
• Pentru prelucrarea datelor cu ajutorul calculatorului
este necesară modelarea realităţii.
• Definirea unui model de date presupune existenţa a 3
elemente:
– Structura modelului
– Operatorii care acţionează asupra structurilor de date (citire,
memorare, modificare)
– Restricţiile pentru menţinerea corectitudinii datelor (reguli
de integritate)
Modele de date (continuare)
Structura modelului presupune:
– Definirea obiectelor utilizând elementele generice:
• Câmp – cel mai mic element al structurii care poate fi
identificat în vederea prelucrării;
• Înregistrare – ansamblu de câmpuri, elementul generic al
structurii

– Stabilirea relaţiilor (asocierilor) între obiecte.


Modele de date - clasificare
În funcţie de modul de definire a celor 3 elemente,
modelele de date se clasifică în:
 Modele ierarhice (arborescente)
 Modele reţea
 Modele relaţionale
 Modele orientate pe obiect
(în ordinea apariţiei)
Modelarea datelor
În proiectarea bazelor de date modelarea
datelor se bazează pe două moduri de
abordare:
1. application database sau baza de date
tip aplicaţie - metoda "de jos în sus";
2. subject database sau baza de date de
tip subiect - metoda "de sus în jos".
Afişarea   Rapoarte     cu Proiectarea începe
datelor tipărite identificarea obiectelor
Utilizatori
Obiecte

Model de date  Model de date


Bazat pe necesităţile Bazat pe obiectele care au
aplicaţiei legătură cu subiectul


Schema Schema
Cuprinde obiectele în Cuprinde obiectele în
structuri logice structuri logice

 

 Aplicaţii
 
Proiectate pentru a îndeplini
cerinţele utilizatorului

Bază de date de tip aplicaţie Bază de date de tip subiect


Sistemul de Gestiune a Bazei de Date (SGBD)
Reprezintă programul software care asigură :
- definirea bazei de date,
- încărcarea datelor în baza de date,
- accesul la date (interogare, actualizare),
- întreţinerea bazei de date,
- securitatea datelor,
- reorganizarea bazei de date.
Obiectivele unui SGBD
• asigurarea independenţei datelor (modificarea structurii de
memorare sau a strategiei de acces la date să nu afecteze
aplicaţia);
• asigurarea unei redundanţe minime (datele să apară o singură
dată în bază);
• sporirea gradului de securitate a datelor (interzicerea accesului
neautorizat la date);
• asigurarea integrităţii datelor (protecţia faţă de ştergeri
nepermise, prin intermediul unor proceduri de validare);
• asigurarea proprietăţii de partajare a datelor (asigurarea
accesului mai multor utilizatori la aceleaşi date).
Baze de date relaţionale (BDR)
• O bază de date relaţională are la bază modelul
relaţional, adică este alcătuită din unul sau mai
multe obiecte organizate ierarhic, între care s-au
stabilit anumite relaţii.
Se bazează pe o singură structură de date: tabel
Un tabel conţine informaţii despre un singur subiect (clienţi, ordine
de plată...)
• Relaţiile între două tabele sunt unidirecţionale,
astfel că o tabelă devine principală, iar cealaltă
devine subordonată.
Terminologie BDR
• Tabel (table): informaţie despre un singur subiect.
• Atribut (attribut): o unitate specifică a informaţiei
despre un subiect; coloană sau câmp în tabel.
• Legătură (relationship): modul în care informaţia
dintr-un tabel este legată de informaţia din alt
tabel.
• Asociere (join): procesul de legare a tabelelor prin
datele corelate.
Funcţiile unui SRGBD
• Definirea datelor: categorii de date, tipul acestora,
legături, reguli de validare, formatare.
• Manipularea datelor: selectarea oricărui câmp de
date, filtrarea datelor, sortarea, corelarea cu alte
informaţii şi totalizarea rezultatelor, actualizare,
ştergere, copiere în alt tabel.
• Controlul datelor: definirea utilizatorilor cu drept de
citire, actualizare şi inserare date, partajarea datelor.
Crearea bazelor de date relaţionale
cu programul

MS ACCESS
De ce este necesară folosirea BD Access în
locul programelor de calcul tabelar?
• Număr mare de date (în multe fişiere sau în fişiere
prea mari); greu de urmărit legăturile; depăşirea
limitelor sistemului de calcul;
• La introducerea datelor noi nu se pot menţine
legăturile între documente;
• Greu de controlat corectitudinea introducerii
datelor şi a integrităţii acestora;
• Greu de partajat datele.
SRGBD MS Access
• Are cele 3 funcţii ale unui SRGBD pentru volume mari de
date
• Se pot defini relaţii între colecţiile de date (reprezentate
prin tabele)
• Permite partajarea şi accesul la date pentru mai mulţi
utilizatori
• Poate rula stand-alone sau client/server
• În modul client/server se pot aloca drepturi asupra
obiectelor BD şi se pot crea copii multiple ale BD master
prin replicare, urmând sincronizarea copiilor de către
utilizatori
• Poate prelua şi manevra date din programe spreadsheet,
fişiere text, baze de date dBase, Paradox, FoxPro.
SRGBD MS Access...

• Conţine un limbaj puternic de programare


Visual Basic for Application (VBA) pentru
scrierea de module şi macrocomenzi
complexe
Funcţii de bază ca SGBDR
1. Organizarea datelor (Tables)
2. Legarea tabelelor şi extragerea datelor (Query)
3. Introducerea şi editarea datelor (Forms)
4. Prezentarea datelor (Reports)
Funcţii suport SGBD
• Macrocomenzile (macro) sunt secvenţe de acţiuni care
automatizează operaţiile repetitive din baza de date.
• Modulele şi funcţiile (modules) sunt secvenţe de
program scrise în limbajul VBA.
• Securitatea (security) constă în funcţii care, într-un
mediu multiuser permite sau nu accesul la baza de date a
unor utilizatori.
• Tipărirea (print) permite tipărirea tuturor obiectelor
care se văd pe ecran în Access (cu excepţia
macrocomenzilor).
Organizarea datelor Funcţii suport

Macrocomenzi
Tabel Tabel Tabel

Interogarea Module
datelor

Securitate

Formular Raport
Tipărire
În concluzie:
O bază de date MS Access este un fişier cu extensia
“. mdb” care conţine următoarele obiecte:
• Tables (Tabele)
• Queries (Interogări)
• Forms (Formulare)
• Reports (Rapoarte)
• Macro (Comenzi macro)
• Modules (Subrutine şi funcţii)
• Pages (Pagini de acces la date).
Tabele (Tables)
 Obiecte definite de utilizator pentru stocarea datelor.
Conţin informaţii despre un singur subiect.
 Sunt similare foilor de calcul tabelar care organizează
datele pe linii şi coloane.
 MS Access îşi construieşte propriile tabele pentru
stocarea datelor sau importă structuri de date din alte
aplicaţii.
Max. 32768 de tabele din care cel mult 254 de tabele pot fi deschise
simultan.
Interogări (Queries)
 Obiecte ce permit o vizualizare personalizată a
datelor din unul sau mai multe tabele.
 Sunt cereri adresate tabelelor pentru extragerea
sau organizarea datelor după anumite criterii în
vederea afişării lor.
 Interogările sunt proiectate cu ajutorul unei
interfeţe grafice accesibile şi sunt memorate în
limbajul SQL (Structured Query Language).
Formulare (Forms)
• Obiecte proiectate pentru introducerea datelor
în tabele sau pentru afişarea personalizată a
datelor din tabele.
Sunt mai atractive în utilizare decât tabelele.
• Formularele pot conţine subformulare pentru a
afişa datele asociate şi butoane specifice
pentru a realiza anumite sarcini.
Rapoarte (Reports)
• Obiecte proiectate pentru a extrage datele din
tabele şi a le afişa în vederea tipăririi.
• Pot fi vizualizate pe ecran sau la imprimantă.
• Rapoartele complexe sunt bazate pe interogări
• Într-un raport datele pot fi organizate în diferite
moduri, se pot realiza sinteze sau prezenta sub
formă de diagramă.
Macro (Macros)
• Obiecte care reprezintă o definire structurată
a uneia sau mai multor acţiuni care definesc
un eveniment.
• Macrocomenzile sunt succesiuni de comenzi
executate de Access pentru a automatiza
anumite operaţii.
• Exemplu: deschiderea unui formular sau
tipărirea unui raport cu ajutorul unor butoane
de comandă incluse în formulare.
Module (Modules)
• Obiecte ce conţin proceduri personalizate
(subrutine sau funcţii) scrise în limbajul VBA
• Oferă posibilitatea controlării mai fine a
acţiunilor şi corectarea erorilor.
• Modulele pot proveni iniţial şi din
macrocomenzi salvate în format VBA.
Defineşte Formulare,
A
Rapoarte, Tabele

Module
Funcţii sau subrutine
Execută funcţie

Macros

Deschidere/Filtrare Imprimare/Vizualizare/
Filtrare
A
Formulare Rapoarte

Execută funcţie

Interogări

Tabele
Rulează interogări sau Acţiune
A deschide tabele
Date
Pagini de acces la date (DAP)
(Pages)
• Obiecte (pagini web) destinate vizualizării
obiectelor din baza de date (tabele,
interogări) în Intranet sau Internet.
• Au un rol important în publicarea
informaţiilor în Internet
• Sunt un element de bază în comerţul
electronic
Proiectarea bazelor de date
• Pentru a realiza o bază de date trebuie parcurse
următoarele etape principale:
1. Analiza sistemului pentru care se realizează baza de date.
2. Proiectarea structurii bazei de date (modelul conceptual,
relaţional, fizic al datelor).
3. Încărcarea datelor în baza de date.
• Exploatarea şi întreţinerea bazelor de date se referă atât
la actualizarea datelor cât şi la reproiectarea structurii
acestora.
Proiectarea structurii BD
1. Identificarea sarcinilor majore (funcţii care vor fi în final
reprezentate sub forma unui formular sau raport).
2. Schiţarea fluxului de sarcini (task-uri).
3. Identificarea datelor (stabilirea datelor cerute de fiecare
task şi forma în care vor fi prelucrate).
4. Organizarea datelor după subiect  tabele.
5. Proiectarea unui prototip şi a unei interfeţe utilizator.
6. Construirea aplicaţiei.
7. Testare şi eventual modificare.
Conceptele proiectării unei BD
Access
 Evitarea înregistrărilor multiple prin
normalizare.

Metoda normalizării: pornind de la


mulţimea atributelor (câmpurilor de date) şi
de la dependenţele funcţionale dintre acestea,
se elimină anomaliile de înregistrare şi
actualizare a datelor.
Teste pentru normalizarea unei BD
Regula #1: Câmpuri unice
“Fiecare câmp din tabel trebuie să reprezinte
un tip unic de informaţie”

Regula #2: Chei primare


“Fiecare tabel trebuie să aibă un identificator
unic format din unul sau mai multe câmpuri
şi denumit cheie primară (sau principală)”
Teste pentru normalizarea unei BD
Regula #3: Dependenţa funcţională
“Pentru fiecare valoare unică a cheii primare,
valorile din coloanele de date trebuie să fie
relevante şi să descrie complet subiectul
tabelului”
Se verifică două aspecte:
• Dacă fiecare câmp este dependent funcţional de cheia primară
ce defineşte tabelul (să nu apară informaţii irelevante)
• Dacă s-a inclus toată informaţia relevantă pentru acel subiect
în tabel (datele să descrie complet tabelul).
Teste pentru normalizarea unei BD
Regula #4: Independenţa câmpurilor
“Trebuie să fie posibilă orice schimbare a datelor
în orice câmp diferit de cheia primară, fără
afectarea datelor din alt câmp.”
Conceptele proiectării unei BD
Access (continuare)
 După stabilirea tabelelor legate de fiecare
subiect al BD, datele trebuie puse în legătură.
Acest lucru se realizează prin definirea
relaţiilor între tabele.

Relaţiile între două tabele se bazează pe asocierea datei din două


câmpuri comune (care au acelaşi nume în cele două tabele).
În unul dintre tabele câmpul de legătură este cheie primară, iar în
celălalt este cheie externă (străină sau secundară).
Tipuri de legături între tabele
• 1 la n (unu la mulţi)
Este cea mai comună.

• 1 la 1
Nu este uzuală, deoarece datele pot fi stocate într-
un singur tabel.
Utilizare: divizarea unui tabel cu multe câmpuri în mai
multe tabele sau izolarea unei părţi din tabel pentru
securitate sau mai buna organizare a informaţiei.
Tipuri de legături între tabele
• n la n (mulţi la mulţi)
Este posibilă numai prin definirea unui al
treilea tabel, numit tabel de joncţiune (sau
de intersecţie), a cărui cheie primară este
compusă din cele două chei primare ale
tabelelor legate.
Conceptele proiectării unei BD
Access (continuare)
Integritatea bazei de date

MS Access poate menţine automat integritatea bazei de


date
Integritatea referenţială este un sistem de reguli incluse
în program care asigură validitatea relaţiilor între
înregistrările din tabelele corelate, prevenind
ştergerea sau modificarea accidentală a datelor
corelate.