Professional Documents
Culture Documents
Concepte
Obiective
SGBD
SGBD
Distrib
Nivelul
extern
Nivelul
concept
Nivelul
logic
Nivelul
intern
Proiectarea
bd
Prezentare
Crearea
struct
Formulare
Interogări
Rapoarte
Macrouri
Interfaţa
WWW
Facilităţi
Limbajul
SQL
Creare
interog
Definire
date
Selectie
date
Manipulare
date
Interogari
imbr
Module
VBA
In/Out
Variabile
Operatori
Funct si
proc
Struct
alternat
Struct
repet
Obiecte
Access
Evenimente
Capitolul 1: Introducere
crearea unor puncte de repriză; altfel spus, salvarea din timp în timp a unor
copii coerente ale bazei de date;
gestiunea unui jurnal de tranzacţii; lista operaţiilor realizate asupra bazei de
date după ultimul punct de repriză.
SGBD-ul poate prelucra mai multe cereri, provenind de la mai multe aplicatii,
fiecare aplicatie avand propria schema logica de descriere a datelor.
Exemplu:
Normalizarea relatiilor
E. F. Codd a arătat că într-o anumită formă relaţiile posedă proprietăţi
nedorite, pe care le-a numit anomalii de actualizare:
Pentru a înlătura aceste anomalii, Codd a stabilit trei forme normale pentru
relaţii şi a introdus procesul de normalizare care se bazează pe noţiunea de
dependenţă funcţională (FD) ca relaţie între atributele unei entităţi ce are un
caracter invariant.
Nivelul intern (modelul fizic) este cel ce corespunde structurii în care sunt stocate
datele în interiorul maşinii. Sunt specificate tabelele (fişierele) care le conţin (nume,
organizare, localizare etc.), componentele fiecărui fişier (lungime, câmpuri, plasare a
acestora în cadrul fişierului), căile de acces la componentele tabelelor (indecşi, relaţii,
legături între tabele).
De exemplu, o factură poate fi accesată direct datorită unui index realizat pe numărul
acesteia, iar cantităţile facturate pot fi cunoscute creând o legătură între tabelele
'Factura_livrare' şi 'Produse_facturate', prin intermediul asocierii 'Se_facturează'.
Se vor avea în vedere cerinţele privind asigurarea protecţiei datelor, atât din punct de
vedere al conţinutului câmpurilor din tabele (verificarea şi validarea valorilor câmpurilor
la introducere, evitarea ştergerii, din greşeală sau din rea-voinţă, a datelor importante,
cu secvenţe de program special concepute), cât şi în ceea ce priveşte accesul utilizatorilor
la baza de date (stabilirea drepturilor de acces trebuie să se facă ţinând cont de rolul,
funcţia şi sarcinile fiecărui utilizator).
Stabilirea cardinalitatilor:
Corespondenta EMITE
dinspre entitatea Furnizor (1,n)
un furnizor emite cel putin o factura (cardinalitate minima 1);
un furnizor poate emite mai multe facturi (cardinalitate maxima n).
dinspre entitatea Factura (1,1)
factura este emisa de cel putin si de cel mult un furnizor (cardinalitate 1,1).
Corespondenta PRIMESTE
dinspre entitatea Magazie (1,n)
o magazie primeste cel putin o factura (cardinalitate minima 1);
o magazie poate primi mai multe facturi (cardinalitate maxima n).
dinspre entitatea Factura (1,1)
factura este trimisa la cel mult si la cel putin o magazie (cardinalitate 1,1).
Corespondenta LINIE FACTURA
dinspre entitatea Factura (1,n)
o factura contine cel putin un material (cardinalitate minima 1);
o factura poate contine mai multe materiale (cardinalitate maxima n).
dinspre entitatea Material (1,n)
un material este inclus în cel putin o factura (cardinalitate minima 1);
un material poate fi inclus în mai multe facturi (cardinalitate maxima n).
Corespondenta LINIE BON DE CONSUM
dinspre entitatea Material (0,n)
un material poate sa nu fie inclus în nici un bon de consum (cardinalitate
minima 0);
un material poate fi inclus în mai multe bonuri de consum (cardinalitate maxima
n).
Dinspre entitatea Bon de consum (1,n)
un bon de consum contine cel putin un material (cardinalitate minima 1);
un bon de consum poate contine mai multe materiale (cardinalitate maxima n).
Corespondenta DESTINAT
dinspre entitatea Bon de consum (1,1)
un bon de consum este destinat cel putin si cel mult unei magazii (cardinalitate
1,1).
dinspre entitatea Magazie (1,n)
unei magazii îi este destinat cel putin un bon de consum (cardinalitate minima
1);
unei magazii îi sunt destinate mai multe bonuri de consum (cardinalitate
maxima n).
Modelul conceptual al datelor
Modelul logic (relational) al datelor:
Sistemul de Gestiune a Bazelor de Date Microsoft ACCESS 2000 face parte din
pachetul de programe Microsoft Office şi este cea de-a cincea versiune a
produsului de la lansarea sa iniţială în anul 1992.
Principalele caracteristici ale SGBD-ului ACCESS sunt:
Tabela (Table) este un obiect definit de utilizator în care sunt stocate datele
primare (expresia modelului relaţional).
Formularul (Form) este un obiect care permite introducerea datelor, afişarea
acestora sau controlul întregii aplicaţii.
Cererea de interogare (Query) este un obiect care permite vizualizarea
informaţiilor obţinute prin prelucrarea datelor din una sau mai multe tabele
şi/sau alte cereri de interogare.
Raportul (Report) este un obiect care permite formatarea şi tipărirea
informaţiilor obţinute în urma consultării bazei de date sub formă de
documente.
Pagina Web de accesare a datelor (Pages) reprezintă un obiect care include un
fişier HTML şi alte fişiere suport în vederea furnizării accesului la date prin
intermediul browser-elor Internet.
Comanda Macro (Macro) reprezintă un obiect care conţine o definiţie
structurată a uneia sau mai multor acţiuni pe care ACCESS le realizează ca
răspuns la un anumit eveniment.
Modulul (Module) reprezintă un obiect care conţine proceduri definite de
utilizator şi scrise în limbajul de programare Visual Basic.
operatorii: =, -, *, /, \, Mod, <, >, <>, =, <=, >=, AND, OR, BETWEEN, IN, IS
NULL;
identificatorii se dau în paranteze drepte [];
funcţii şi constante.
Un formular este compus din trei parti: antetul, zona de detaliu si subsolul:
foaie de date (Datasheet view) - se poate crea într-o maniera foarte simpla si
permite modificari privind dimensiunea si ordinea coloanelor;
formular (Form view)- ofera o mare suplete de prezentare prin posibilitati
multiple de aranjare a datelor, de utilizare a culorilor, de creare de antet si
subsol de pagina si de includere a unor câmpuri de tip OLE.
expresii simple
expresii care utilizeaza functii agregate (SUM, AVG, COUNT etc.)
Interogarea bazei de date permite afişarea înregistrărilor din una sau mai
multe tabele, înregistrări care verifică anumite condiţii, care sunt grupate în
funcţie de anumite criterii sau sunt ordonate crescător sau descrescător.
Avantajele oferite de modul de interogare a bazei de date prin cereri sunt:
creată o interogare,
aceasta interogare trebuie executată.
Rezultatul executiei unei asemenea cereri este plasat într-o foaie de raspuns,
asemanator foii de date asociate unei tabele.
Crearea unei cereri de interogare (Query) se poate face în mai multe feluri:
Pentru formularea unor cereri de interogare bazate pe mai multe tabele, este
necesar ca acestea sa fie legate prin intermediul unor câmpuri. Aceste relatii
între tabele se pot stabili fie în momentul definirii structurii bazei de date
(structura tabelelor), prin comanda [Tools, Relationships] sau în timpul
formularii unei cereri de interogare prin aducerea tabelelor necesare în zona de
lucru si stabilirea legaturilor necesare. Prima modalitate genereaza relatii
permanente între tabele, care permit totodata definirea restrictiilor de
integritate referentiala, cea de-a doua genereaza relatii temporare, valabile
numai pentru cererea în cauza si care nu permit verificarea restrictiilor de
integritate referentiala.
În ambele cazuri relatiile între tabele se stabilesc prin punerea în
corespondenta a unui câmp dintr-o tabela sursa (principala) cu un alt câmp din
tabela destinatie (secundara). Cele doua câmpuri trebuie sa fie de acelasi tip si
dimensiune si pot fi chei primare sau externe.
În ambele cazuri relatiile între tabele se stabilesc prin punerea în
corespondenta a unui câmp dintr-o tabela sursa (principala) cu un alt câmp din
tabela destinatie (secundara). Cele doua câmpuri trebuie sa fie de acelasi tip si
dimensiune si pot fi chei primare sau externe.
O cerere de interogare a bazei de date pe mai multe tabele este expresia
operatiei de compunere (join) din algebra relationala. Din punct de vedere al
SGBD ACCESS, aceasta operatie este de trei feluri: echicompunere, compunere
externa si compunere reflexiva.
Prin operatia de echicompunere se extrag toate înregistrarile din tabela sursa
care au înregistrari echivalente în tabela destinatie (pentru care câmpurile de
legatura sunt identice). De exemplu daca vrem sa aflam intrarile de materiale
pentru fiecare material (cantitativ), este clar ca în cadrul tabelei Categorii se
pot gasi mai multe materiale decât în tabela Camere (anumite materiale pot
exista în cadrul bazei de date dar nu au fost achizitionate pâna în prezent). Prin
urmare va fi utilizata operatia de echicompunere.
Prin operatia de compunere externa se extrag toate înregistrarile din tabela
sursa si înregistrarile din tabela destinatie, care au valori egale în câmpurile de
legatura. Pentru înregistrarile din tabela destinatie, care nu au corespondente
în tabela sursa, se vor afisa câmpuri vide.
Cele doua cereri se rezolva prin compunere externa. Relatia dintre doua
tabele, din punct de vedere al operatiei de compunere externa, este privita în
ambele sensuri:
Prin aceste operatii s-a creat posibilitatea formularii unor cereri de interogare
inverse, asa cum sunt cele doua exemplificate mai înainte. Pentru alegerea
tipului de compunere în cadrul unei cereri de interogare:
se realizeaza dublu clic pe linia de legatura între cele doua tabele, care va afisa
fereastra Join Properties;
se alege una din optiunile: 1 - echicompunere, 2 - compunere externa stânga
sau 3 - compunere externa dreapta si apoi Ok.
Crearea unei cereri de interogare de acest tip, se face la fel ca o cerere care
comporta calcule, cu deosebirea ca trebuie specificate câmpurile care furnizeaza
liniile, coloanele si valorile din tabel.
În acest sens se procedeaza dupa cum urmeaza:
Se pot specifica mai multe câmpuri pentru a furniza numele de linii ale
tabelului si numai unul pentru a da numele coloanelor. Obligatoriu, câmpurile
care furnizeaza numele liniilor si coloanelor trebuie sa aiba în linia Total
criteriile Group by. La o cerere de interogare de acest tip pot participa una sau
mai multe tabele.
Tabelele care rezulta în urma executiei acestor cereri, în mod standard, vor
avea numele coloanelor plasate de la stânga la dreapta în ordine alfabetica.
Exista posibilitatea schimbarii acestei ordini în functie de necesitatile si
preferintele utilizatorului.
MS Access permite şi crearea unor interogări de tip acţiune:
Cererile de interogare de tip actiune se folosesc pentru:
3.5 Rapoarte
Situatiile finale pot cuprinde date provenind dintr-o tabela, sau dintr-o
interogare (atunci când sunt necesare date din mai multe tabele), caz în care se
raspunde mesajului "Choose the table or query where the object's data comes
from:" prin selectarea din lista a tabelei sau interogarii care va sta la baza
realizarii raportului. Exista si posibilitatea realizarii de rapoarte care nu au o
anumita sursa de date, dar care vor îngloba informatii utile subrapoartelor
definite pe tabele ori interogari între care nu au fost stabilite relatii.
Capitolul 4: SQL
Unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor
de date relationale îl constituie în prezent SQL (Structured Query Language).
Acesta, pronuntat cel mai adesea de catre utilizatorii lui în formula abreviata
"sequel", a devenit chiar un standard pentru o gama din ce în ce mai larga de
sisteme de gestiune a bazelor de date. Limbajul SQL permite o comunicare
complexa si rapida a utilizatorului cu bazele de date, în functie de cerintele si
restrictiile acestuia. Pe lânga manipularea si regasirea datelor, se efectueaza si
operatii complexe privind actualizarea si administrarea bazei de date.
Exista un anumit grad de standardizare a limbajului SQL, mai multe sisteme
de gestiune a bazelor de date recunoscând principalele instructiuni ale acestuia
(de exemplu: Oracle, Access, Sybase etc.). Pe plan mondial, standardul în
domeniu este considerat ANSI (American National Standards Institute) SQL
care are în vedere atât aspectele de definire, interogare, manipulare a datelor,
procesare a tranzactiilor, cât si caracteristicile complexe privind integritatea
informatiilor, cursoarele derulante sau jonctiunile externe. Multi producatori de
sisteme de gestiune a bazelor de date furnizeaza propriile extensii ale
limbajului SQL, asigurându-si astfel exclusivitatea.
Sistemul de gestiune a bazelor de date ACCESS 2000 accepta utilizarea
limbajului de interogare SQL. Existenta tehnicii grafice QBE (Query by Example-
interogare prin exemplu) permite proiectarea facila a unor interogari complexe.
Informatia definita pe grila QBE va fi automat transformata într-o instructiune
SQL. Dialectul ACCESS contine unele particularitati în raport de standardul ANSI
SQL, fiind conceput mai mult pentru crearea interogarilor de selectie.
În acest capitol tratam în detaliu doar primele trei categorii de instructiuni, si
anume cele care privesc definirea, manipularea si selectia informatiilor din
bazele de date.
Pentru a putea scrie corect o instructiune SQL în ACCESS 2000 este necesara
respectarea stricta a unor reguli de sintaxa. Amintim în continuare câteva dintre
acestea:
CREATE DATABASE,
DROP DATABASE,
CREATE TABLE,
ALTER TABLE,
DROP TABLE.
Modulele din Access 2000 sunt obiecte ale bazei de date, care permit scrierea
de rutine în limbajul Visual Basic pentru Aplicaţii (VBA):
Acestea pot fi constituite din: declaratii de variabile, tipuri de date utilizator,
proceduri si/sau functii, declaratii de funcţii API etc.
Pentru a crea un modul nou se parcurg următorii paşi:
standard (predefinite);
utilizator.
Unei variabile de tip obiect (tipul generic Object sau de tipul celorlalte obiecte
Access 2000) nu se i se poate atribui un obiect în varianta clasică
variabila=expresie sau variabila1=variabila2, ci numai împreună cu
instrucţiunea Set: Set variabilă_obiect = expresie_obiect. În urma
apelului acestei instrucţiuni, variabila_obiect va referi obiectul returnat de
expresia expresie_obiect.
5.4 Operatori
Operatorii acceptaţi de VBA sunt de trei categorii:
Private semnifică faptul că procedura poate fi apelată numai din modulul unde a
fost definită,
Public semnifică faptul că procedură poate fi apelată din orice modul;
Exit Sub permite ieşirea forţată dintr-o procedură.
O baza de date Access 2000 este formata dintr-o multime de obiecte, care pot
fi accesate din VBA. Fiecare obiect are o serie de proprietăţi şi metode ataşate.
Invocarea unei metode sau proprietati a unui obiect se face prin prefixarea
acesteia cu numele obiectului astfel:
ume_obiect.nume_metoda;
nume_obiect.nume_proprietate.
Specificarea unui obiect apartinând unei colectii se poate face conform uneia
din urmatoarele variante:
Obiectul Form refera un obiect de tip formular. Toate formularele deschise din
baza de date se regasesc în colectia Forms, fiind identificate printr-un numar,
alocat în ordinea deschiderii acestora. Primul formular deschis are numarul de
ordine zero. Pentru a afla numarul de formulare deschise la un moment dat,
trebuie citita proprietatea Count a colectiei Forms.
Metodele ale obiectului Form sunt: