Documente Academic
Documente Profesional
Documente Cultură
Concepte de baz
Un sistem de baze de date: este un sistem computerizat de pstrare a nregistrrilor al crui scop principal este s stocheze informaiile i s permit utilizatorului s consulte i s actualizeze aceste informaii. In domeniul bazelor de date este important s se fac o distincie clar ntre noiunile de dat i informaie: 1. Datele, materia prim a sistemelor informatice, sunt fapte culese din lumea real pe baz de observaii i msurtori 1 . Datele pot lua mai multe forme: date alfanumerice (formate din litere, cifre i caractere speciale), date de tip text (propoziii i fraze folosite n comunicarea scris), date de tip imagine (forme grafice i figuri geometrice) i date audio (vocea uman i alte sunete). In sistemele informatice datele sunt stocate n baze de date. 2. Informaia este rezultatul interpretrii datelor de ctre un anumit subiect i confer acestuia capacitatea de a lua decizii. Datele devin informaii doar n momentul n care acestea interacioneaz cu un sistem capabil s le interpreteze. Informaia are un caracter subiectiv deoarece aceeai dat poate fi interpretat diferit de ctre subieci diferii. Informaiile sunt date prelucrate i prezentate ntr-o form (context) care s aib o anumit semnificaie pentru utilizatorul final i reprezint ieirile sistemului informatic. n concluzie, putem preciza faptul c sistemele informatice prelucreaz date nu informaii.
Informaia reprezint produsul final al sistemelor informatice i, n funcie de cele patru dimensiuni, timp, coninut, forma de prezentare i locaie, aceasta trebuie s ndeplineasc urmtoarele cerine pentru a fi util: A. n funcie de elementul timp: oportunitatea: informaia trebuie s fie furnizat atunci cnd este nevoie de ea; actualitatea: informaia trebuie s fac referire la realitile prezentului atunci cnd este furnizat; frecvena: informaia trebuie s fie furnizat cu un ritm care s sprijine interesele utilizatorilor; perioada de timp la care se refer: informaia poate s conin elemente care s descrie evenimente din trecut, prezent sau viitor. B. n funcie de coninut: acurateea: informaia nu trebuie s conin erori; relevana: informaia trebuie s satisfac nevoile de informare ale utilizatorului cu privire la o anumit situaie; caracterul complet: informaia trebuie s conin toate elementele de care utilizatorul are nevoie; caracterul succint: vor fi furnizate doar acele informaii de care este nevoie ntr-o anumit situaie. performana.
1
R. Dollinger, L. Andron, Baze de date i gestiunea tranzaciilor, Editura Albastra, Cluj-Napoca, 2004, p. 12.
C. n funcie de forma de prezentare: claritatea: informaia trebuie s fie prezentat ntr-o form uor de neles; gradul de detaliere: informaia trebuie s fie furnizat n form detaliat sau sintetizat n funcie de necesiti; ordinea: informaia trebuie s fie prezentat ntr-o anumit succesiune; modul de prezentarea: informaia poate fi furnizat sub forma unei relatri (expuneri), sub form numeric, grafic, etc.; mijloace de prezentare: informaia poate fi prezentat pe suport de hrtie, pe ecran sau pe alte medii. D. n funcie de locaie: informaia trebuie s fie disponibil indiferent de locaia n care se afl utilizatorul. Aceste cerine pot fi realizate folosind Bazele de date. Un sistem de baze de date este format din patru componente principale: date, hardware, software i utilizatori.
Sistem de gestiune a bazelor de date
Programe de aplicaie
Figure 1 Schema simplificata a unui sistem de baze de date (sursa C. J. Date) 1. Componenta de date: este format din baza de date sau bazele de date ale sistemului. 2. Componentele hardware sunt formate din: mediile de stocare secundare care sunt utilizate pentru pstrarea datelor i procesoare folosite pentru prelucrarea datelor i memorii RAM, etc. 3. Componenta software este format din Sistemul de gestiune a bazelor de date, programe utilitare, editoare de rapoarte, etc. 4. Utilizatorii: exist trei clase mari de utilizatori programatorii de aplicaii, utilizatorii finali care acceseaz baza de date prin intermediul unei aplicaii, i administratorul BD.
Posibilitatea partajrii datelor: se refer la posibilitatea utilizrii n comun a datelor de ctre mai multe aplicaii precum i la posibilitatea dezvoltrii unor aplicaii noi folosind datele deja existente n baza de date. ncurajarea introducerii standardelor: administratorul bazei de date poate impune alinierea la anumite standarde, ceea ce are un rol important la transferul datelor de la o baz de date la alta. Posibilitatea aplicrii constrngerilor de securitate: administratorul bazei de date poate introduce verificri de autorizare a accesului la date. Se pot impune restricii diferite pentru fiecare tip de acces la date, pentru fiecare dat, pentru fiecare utilizator Meninerea integritii datelor: integritatea datelor reflect cerina ca bd s conin date corecte. Aceasta presupune att consistena datelor ct i plauzibilitatea lor prin introducerea unor proceduri de validare corespunztoare. Poate fi suport pentru tranzacii: tranzacia este o unitate logic care presupune mai multe operaii n baza de date, in particular, o serie de operaii de actualizare. Ex: transferul unei sume de bani din contul A in B.
Nivelul extern
Nivelul conceptual
Nivelul intern Figure 2 Cele trei niveluri ale arhitecturii [C. J. Date] Nivelul intern: poart numele de baz de date fizic i este o colecie de fiiere care conin datele fizice, la care se adaug diverse structuri auxiliare menite s asigure accesul operativ la date (de ex. Indeci, pointeri, etc). Vederea intern este descris prin intermediul schemei interne. Nivelul conceptual: este o abstractizare a unei pri din lumea real i const din descrierea structurii logice a datelor dintr-o baz de date. [Dollinger]. Fiecare baz de date are un model conceptual propriu prin care sunt numite i descrise toate unitile logice din BD, mpreun cu legturile dintre acestea. Unitile logice sunt concepte asemntoare celor cu care opereaz utilizatorii bazei de date. Ex: n descrierea unei bd a unui hotel se lucreaz cu urmtoarele concepte: client, camera, rezervri, etc.; iar pentru o bd a unei faculti: studeni, profesori, discipline, plan de nvmnt, note, etc. Modelul conceptual integreaz viziunile tuturor utilizatorilor asupra bd i specific constrngerile asupra datelor (ce poate face parte din bd, ce nu poate face parte din bd). Tot n modelul conceptual sunt specificate masuri de securitate i integritate referitoare la anumite uniti logice. Vederea conceptual conine o reprezentare abstract a ntregii baze de date iar vederea intern reprezint baza de date aa cum este stocat intern. Vederea conceptual este definit prin intermediul schemei conceptuale. Nivelul extern se refer la percepiile utilizatorilor individuali asupra BD. Majoritatea utilizatorilor nu sunt interesai de ntreaga baz de date ci doar de o parte a acesteia. Termenul tehnic folosit pentru modelul extern este acela de vedere extern. Vor exista mai multe vederi externe diferite, fiecare vedere reprezentnd o anumit poriune a bazei de date. Fiecrui utilizator sau grup de utilizatori i corespunde un model extern propriu ceea ce vede utilizatorul din BD sau modul n care vede acesta baza de date. Prin utilizarea vederilor se asigur securitatea bazelor de date prin limitarea accesului la date a anumitor categorii de utilizatori. Utilizatorii au acces doar la pari bine definite din BD, existnd posibilitatea ascunderii anumitor pari din baza de date pe care utilizatorii nu au voie sa le vad. Un utilizator poate avea diferite drepturi de acces definite n cadrul a mai multe 6
vederi. Prin unele vederi poate avea doar drept de consultare, in timp ce prin altele ar putea avea i drepturi de modificare. Prin vederi se ofer utilizatorilor o viziune individualizat i simplificata asupra bazei de date. Fiecare vedere extern este definit prin intermediul unei scheme externe. Ex: baza de date cu clienii unui hotel. Vrsta clienilor este o informaie care poate fi folosita pentru realizarea unor statistici, etc. Daca se memoreaz in baza de date vrsta clienilor atunci acest cmp trebuie sa fie actualizat zilnic, de aceea se va crea o vedere in care apare definit conceptul de vrsta calculat ca diferen dintre data curent si data naterii. ntr-o baz de date cu studeni se va defini conceptul bursier. Sistemul de gestiune a bazelor de date Sistemul de gestiune a bazelor de date (SGBD) este software-ul care trateaz toate cererile de acces la baza de date. Funciile pe care le ndeplinete un SGBD sunt urmtoarele: Definiia datelor: Sistemul SGBD trebuie sa fie capabil sa accepte definiiile datelor (schemele externe, schema conceptuala, schema intern) n forma-surs i s le transforme n forma-obiect adecvata. Descrierea datelor se realizeaz prin intermediul limbajul de descriere a datelor LDD. Manipularea datelor: sistemul SGBD trebuie sa fie capabil sa manipuleze cererile de consultare, actualizare sau tergere a datelor existente n BD sau s adauge date noi in BD. Aceast funcie poate fi realizat prin intermediul Limbajelor de manipulare a datelor. Optimizarea cererilor de acces; Asigurarea securitii i integritii datelor; Refacerea datelor i asigurarea accesului concurent la date; Trebuie s pun la dispoziie o funcie pentru dicionarul de date. Dicionarul conine date despre datele din BD, (denumite si metadate) adic definiii ale unor obiecte din sistem. SGBD trebuie s ndeplineasc toate sarcinile ntr-un mod cat mai eficient posibil. Scopul general al unui SGBD este de a furniza interfaa cu utilizatorul pentru sistemul de baze de date. Interfaa cu utilizatorul poate fi definit ca o grani a sistemului, dincolo de care totul este invizibil pentru utilizator. Evoluia SGBD Istoria SGBD poate fi rezumat n trei generaii: Sisteme ierarhice i reea; Sisteme relaionale; Sisteme avansate (orientate obiect, relaionale OO, distribuite, multimedia, etc.)
n cazul modelelor ierarhice i reea datele sunt reprezentate la nivel de articol prin legturi ierarhice sau de tip graf. Administrarea i manipularea datelor este dificil datorit dependenei fizice a datelor. A doua generaie de SGBD-uri este legat de apariia modelelor relaionale care trateaz entitile ca nite relaii. S-a conturat in dou articole publicate de E. F. Codd n 1969, 1970. Se poate defini printr-o serie de structuri de date (relaii alctuite din tupluri), operaii aplicate asupra structurilor de date (selecie, proiecie, join), i reguli de integritate care s asigure consistena datelor (chei primare, restricii refereniale.). SGBDOO au aprut ca urmare a mbinrii tehnicii limbajelor orientate obiect cu a bazelor de date.
2. Dublu clic pe pictograma de pe Desktop, asociat programului Ms. Access. 3. Start -> Run -> msaccess.exe, urmat de activarea butonului OK
4. My Computer-> C:-> Program Files-> Microsoft Office-> Office-> Msaccess.exe La rularea programului Microsoft Access, va aprea pe ecran fereastra din figura de mai jos care pune la dispoziie urmtoarele opiuni: 1. Crearea unei baze de date fr coninut; 2. Crearea unei baze de date cu ajutorul aplicaiei Database Wizard; 3. Deschiderea unei baze de date existente. Csua din partea de jos a ferestrei indic cele mai recent utilizate baze de date. Daca baza dorit nu se afla printre acestea, executnd clic pe More Files se poate naviga prin structura de directoare n cutarea fiierului dorit.
10
Fereastra de baz a aplicaiei Access are acelai aspect general folosit n celelalte aplicaii Office i conine urmtoarele elemente:
Bara de titlu (Title bar): conine numele aplicaiei cu care se lucreaz (Microsoft Access) precum i cele trei butoane "soft" descrise mai jos: o Minimize (minimizare) transform fereastra ntr-un obiect pe bara de task-uri o Restore (revenire) permite revenirea ferestrei la dimensiunea iniial o Close (nchidere) nchide fereastra (nchide folderul, respectiv aplicaia)
Bara de meniuri (Menu bar): conine urmtoarele meniuri - File (fiier), Edit (editare), View (vizualizare), Insert (inserare), Tools (instrumente), Window (fereastr) i Help (ajutor); modul de lucru a opiunilor din meniuri se nva cu ajutorul exerciiilor aplicative!
Bara (trusa) cu instrumente Database (Database Tool bar): cuprinde butoane pentru execuia rapid a unor aciuni: crearea ( date, salvarea ( ) , tiprirea ( ) i deschiderea ( ) bazelor de
), previzualizarea (
date. De asemenea, aa cum eram obinuii din aplicaiile Microsoft, avem butoane pentru lucrul cu text: Spelling face verificarea gramatical ( (taie ), Copy (copiaz ), Paste (lipete ), Undo (anulare ). Tot pe bara
Database avem butoane specifice aplicaiei care realizeaz sarcini imediate pentru 11
utilizatorii care doresc s realizeze la repezeal componentele unei aplicaii: adugarea unui nou obiect( ), crearea rapid a unui formular .nvarea folosirii instrumentelor necesit exerciii aplicative!
Fereastra Database: conine, la rndui ei, urmtoarele elemente: Bara de titlu: conine numele bazei de date deschise precum i cele trei butoane "soft": Minimize, Restore i Close; Bara de obiecte: este situat n partea stng a ferestrei i are dou butoane: Objects i Groups. Pentru a actualiza coninutul ferestrei Database, putei executa clic pe orice obiect din bara. Pentru a vedea toate tabelele din baza de date, executai clic pe butonul Objects, situat n partea de sus a barei de obiecte, apoi executai clic pe Tables; pentru a vedea toate formularele trebuie s executai clic pe Forms, i aa mai departe. Dac executai clic pe butonul Groups, Access va afia o list cu grupurile definite de utilizator.
Bara de titlu Bara meniu Bara cu instrumente Database
Bara de titlu a ferestrei Database Bara de meniu a ferestrei Database Coninutul ferestrei Database
Bara cu obiecte
Bara de stare
12
Bara de meniu a ferestrei Database are urmtoarele opiuni: Open ( Design ( New ( Delete ( ) deschide un obiect n mod de afiare curent; ) deschide un obiect n mod de afiare design; ) creeaz un nou obiect; ) terge un obiect; ) afieaz obiectele sub forma unor pictograme mari; ) afieaz obiectele sub forma unor pictograme mai mici;
) reprezint modul de afiare prestabilit, afieaz o list cu obiectele; ) listeaz pentru fiecare obiect mai multe informaii: descriere,
Details (
data la care a fost creat, data ultimei modificri i tipul obiectului. Bara de stare (Status bar): aa cum spune i numele su, ea indic starea n care ne gsim la un moment dat. De exemplu, dac deschidem un tabel n mod proiectare ( F1=Help. Aplicaii 1. S se ruleze programul Microsoft Access. 2. S se identifice elementele ferestrei de baz a aplicaiei Microsoft Access. 3. Explicai efectul tuturor opiunilor din meniurile: File, Edit, View i Window. Pentru rezolvarea acestui exerciiu v putei folosi de Help. ) n partea stng apare textul Design View. F6=Switch panes.
prin nume, tip i alte atribute ale acestora. Fiecare cmp trebuie s fie legat de destinaia tabelului din care face parte. Fiecare linie a tabelului conine o nregistrare (record) cu date corespunztoare coloanelor i reprezint o entitate complet de date. De exemplu, atunci cnd creai un tabel pentru stocarea datelor referitoare la clieni putei avea cmpuri pentru cod client, nume, prenume, adresa, cod potal, numr de telefon, data naterii etc. n acest caz, o nregistrare va consta din toate aceste informaii pentru o anumit persoan (client). O baz de date poate conine unul sau mai multe tabele independente sau legate ntre ele.
Cmpuri (fields)
Cod client 1 2 3 4 5
Adresa
Cod postal
Str. Mehedinti Nr. 61 3400 Str. Aurel Vlaicu Nr. 4 3400 Str. Sibiului Nr 45 Str. Cernei Nr.3 27 Newpoint Street 3125 3400
nregistrri (records)
GM80AN 0275/938566
Interaciunea cu datele stocate n tabele nu se face n mod direct. De regul, fiecrui tabel i sunt asociate alte obiecte (formulare, rapoarte, interogri), iar atunci cnd utilizatorul are nevoie de anumite date va apela un formular sau un raport care va gsi datele i le va afia pe ecran n forma cerut. Interogarea (QUERY) este un obiect care permite vizualizarea informaiilor obinute prin prelucrarea datelor din una sau mai multe tabele i/sau alte cereri de interogare. Este un instrument foarte util pentru analiza datelor stocate n tabele. De exemplu, putei folosi o interogare pentru a genera o list cu telefoanele anumitor clieni sau pentru a determina suma ncasat de la clieni, de asemenea, putei obine date din mai multe tabele legate ntre ele. Practic, numrul ntrebuinrilor care se pot da acestor obiecte este nelimitat: putei vizualiza nregistrrile care ndeplinesc o anumit condiie prin intermediul interogrilor de selecie (Select Query); putei modifica, aduga i chiar terge date din tabele folosind tipurile de interogri specifice acestor operaii: Update, Append i Delete Query; putei sorta nregistrrile dup cmpuri sau grupuri; putei efectua calcule pe grupuri de nregistrri; putei combina mai multe tabele sau interogri. 14
Interogarea este, n esen, o ntrebare sau o cerere stocat. Aa cum datele sunt stocate n tabele (table) i cererile sunt stocate n obiecte de tip Query. Odat creat, o interogare poate fi apelat de ori cte orie este nevoie. Formularul (FORM) este un obiect care permite introducerea datelor, afiarea acestora sau controlul ntregii aplicaii. Formularul constituie interfaa dintre utilizator i datele stocate n baza de date, de aceea va fi folosit foarte frecvent. Formularele simplific vizualizarea, introducerea i modificarea datelor. n majoritatea cazurilor va putei gndi la ele ca fiind reprezentri pe ecran ale formularelor pe hrtie, cu care suntei deja obinuii s lucrai. Modul de completare al datelor n formularul Access este asemntor cu completarea unui formular pe hrtie, numai c datele introduse pe ecran vor fi stocate in unul sau mai multe tabele i pot fi folosite ulterior la ntocmirea diferitelor situaii. Prin intermediul formularelor se pot realiza diverse operaii cum ar fi: sortarea, cutarea, actualizarea unor date dar pot fi folosite i ca parte a interfeei aplicaiei dumneavoastr. Folosind butoanele de comand putei deschide alte formulare sau rapoarte atunci cnd este nevoie. Raportul (REPORT) este un obiect care permite formatarea i tiprirea, sub form de documente, a informaiilor obinute n urma consultrii bazei de date. Cu toate c formularele reprezint un instrument excelent pentru introducerea i afiarea datelor pe ecran, rapoartele sunt principalele dispozitive de ieire in Access. Rapoartele pot fi previzualizate pe ecran, tiprite la imprimanta, vizualizate ntr-un navigator Internet (browser), etc. Sunt foarte uor de creat i sunt instrumente puternice de prezentare a datelor. Putei crea cu ajutorul acestor obiecte diverse situaii de ieire pentru aplicaia dumneavoastr, de exemplu, lista clienilor firmei pe localiti sau judee. Pagina Web de accesare a datelor (PAGES) reprezint un obiect care include un fiier HTML i alte fiiere suport n vederea furnizrii accesului la date prin intermediul browser-elor Internet. Acest obiect permite vizualizarea datelor n mediul Internet. Comanda Macro (MACRO) reprezint un obiect care conine o definiie structurat a uneia sau mai multor aciuni pe care Access le realizeaz ca rspuns la un anumit eveniment. Aceste obiecte sunt foarte utile deoarece permit automatizarea diverselor evenimente fr ca realizatorul aplicaiei s trebuiasc s cunoasc limbajul VBA (Visual Basic for Applications). Modulul (MODULE) reprezint un obiect care conine proceduri definite de utilizator i scrise n Visual Basic. Astfel, introducei ntr-un modul codul procedurii, apoi folosii obiectele eveniment (sau alte proceduri) pentru a executa procedura. Toate obiectele descrise mai sus vor fi detaliate in capitolele urmtoare. 15
16
O baz de date nou se mai poate crea i folosind meniul sistem Access, alegnd opiunea New din meniul File, urmat de introducerea numelui corespunztor bazei de date ce urmeaz a fi creat. Crearea unei baze de date folosind asistenii Database Wizard este mult mai simpl i rapid dar prezint dezavantajul de a nu fi aa de flexibil. Un vrjitor este un instrument complex (program specializat) cu ajutorul cruia se realizeaz n mod automat o 17
baz de date sau anumite obiecte (tabele, formulare, rapoarte, interogri, pagini web pentru prezentarea datelor) lund n considerare preferinele utilizatorului. Vrjitorul prezint o serie de casete de dialog pentru fiecare etapa. La fiecare pas utilizatorul trebuie s aleag o serie de opiuni din grupul de opiuni posibile pentru a trece la urmtorul pas. Database Wizard creeaz o aplicaie la cheie, genernd toate tabelele, formularele i rapoartele necesare pentru realizarea unei anumite funcii. Vrjitorul ofer posibilitatea de a alege din mai multe baze de date predefinite, destinate fie utilizrii n scop personal, fie utilizrii n cadrul unei firme. Pentru a vedea lista acestor baze de date selectai opiunea New din meniul File i apoi executai clic pe categoria Databases din fereastra de dialog New. Utilizarea Database Wizard: 1. Lansarea n execuie a instrumentului Database Wizard:
Lansai n execuie programul Access. Din fereastra de dialog (fig.1) care apare pe
ecran selectai opiunea: Access database wizards, pages and projects i executai clic pe OK. Pe ecran va aprea urmtoarea caset de dialog:
Modaliti de vizualizare
Fereastra Preview
Se selecteaz o baz de date i se execut clic pe butonul OK. 2. Cea de-a doua fereastr a vrjitorului este o fereastr de dialog File (fig.3). Vrjitorul i acord noii baze de date un nume care poate fi schimbat.
18
3. Pentru a merge mai departe se alege butonul Create, iar pentru a anula operaia se execut clic pe butonul Cancel. 4. Vrjitorul afieaz o fereastr n care descrie tipul de informaii pe care baza de date le conine. De exemplu, BD Asset Tracking include date referitoare la active, amortizare, ntreinere, angajai, departamente i vnztori. BD Contact Management conine informaii de contact i date referitoare la convorbiri. Dac executai clic pe butonul Finish vrjitorul va nchide fereastra Database Wizard i va deschide noua aplicaie; dac executai clic pe Cancel, vrjitorul va terge tot ce ai realizat pn n acest moment i se va nchide. Dac dorii s mergei mai departe, executai clic pe butonul (soft) Next.
5. Fiecare tabel din noua aplicaie conine anumite cmpuri prestabilite. Se pot aduga sau terge cmpuri prin intermediul ferestre de dialog din imagine:
Tabelele aplicaiei
6. Urmtoarea fereastr de dialog v permite s alegei stilul de afiare al ecranelor dintr-o list de valori predefinite. 19
8. Prin intermediul ferestrei de mai jos se poate schimba titlul bazei de date si se poate adaug o imagine care s apar pe rapoartele construite.
20
9. n ultima caset de dialog a vrjitorului lsai selectat opiunea Yes, Start the Database, confirmnd astfel c dorii s vedei baza de date. Cea de-a doua opiune Display Help on using Database deschide o fereastr Help. Pentru a finaliza aplicaia executai clic pe butonul Finish. Access va genera i va deschide noua baz de date. Deschiderea unei baze de date existente n cazul n care se urmrete consultarea, modificarea sau actualizarea unei baze de date creat anterior, aceasta va trebui, mai nti, s fie deschis prin intermediul opiunii Open An Existing File (din fereastra de dialog care apare pe ecran la intrarea n aplicaia Ms. Access). O baz de date mai poate fi deschis i folosind meniul sistem Access, alegnd opiunea Open din meniul File. Salvarea modificrilor unei baze de date Prin modificarea unei baze de date Access se nelege modificarea obiectelor ce o compun. Modificarea unui obiect va atrage dup sine o ntrebare din partea SGBD-ului Access dac aceasta modificare va fi sau nu salvat. n concluzie orice modificare a obiectelor se salveaz local nefiind necesar salvarea ntregii baze de date. Proiectarea tabelelor Datele sunt stocate n nregistrrile tabelelor, iar pentru a putea fi regsite uor acestea trebuie s fie bine organizate n cadrul lor. De aceea, trebuie acordat o atenie deosebit fazei de proiectare a bazei de date. Aspectele care trebuie s le urmrii atunci cnd ncepei s lucrai cu tabele sunt: mprii informaiile lungi n uniti mai mici. De exemplu, n loc s stocai numele clienilor ntr-un singur cmp, folosii dou cmpuri, unul pentru nume i altul pentru prenume avnd astfel posibilitatea s sortai sau s selectai datele separat att dup nume ct i dup prenume. Datele stocate n fiecare cmp trebuie s constituie cea mai mic unitate de informaie, ceea ce nseamn ca ele s nu mai poat fi mprite n componente mai mici. Stocarea corect a adreselor clienilor se va face n cmpuri diferite: strada i numr, ora, jude i cod potal. Evitai redundana. Nu introducei aceeai informaie n mai mult de un cmp. De exemplu, dac avei n tabel un cmp data_naterii nu mai trebuie s stocai in tabel i vrsta persoanei pentru c aceasta se poate calcula din data naterii. De asemenea, nu repetai aceleai date n mai multe tabele. 21
Folosii cmpuri de tip text pentru a stoca numere de telefon, codul numeric personal sau codul potal. Aceste numere sunt secvene arbitrare de caractere folosite pentru identificare, nu sunt valori numerice. Un numr de telefon poate s nceap cu 0 i poate s conin caractere despritoare (0745-466789) de aceea, cea mai bun form de stocare o reprezint cmpul text. Fiecare tabel trebuie s aib o cheie primar care s identice n mod unic fiecare articol (nregistrare) din tabel. Folosirea cheilor ajut la prevenirea introducerii de date duplicate. O cheie a unui tabel se aseamn cu cota care se atribuie crilor ntr-o bibliotec: aceasta este un identificator unic ce controleaz ordonarea i nregistrarea crilor, identific duplicatele i evit confuziile care pot s apar atunci cnd dou volume au acelai autor sau au acelai titlu. Toate datele trebuie s fie mutual dependente. Cu alte cuvinte, nici un cmp nu trebuie s depind de informaiile aflate n alt cmp al aceluiai tabel. De exemplu, dac un tabel de eviden a vnzrilor conine preul unitar, cantitatea vndut i ncasri, avem de a face cu un cmp dependent. Astfel, dac schimbm valoarea preului unitar, sau valoarea cantitii vndute, trebuie s actualizm i valoarea din cmpul ncasri pentru ca datele s fie consistente. Pentru a nltura dependena, cmpul ncasri trebuie eliminat din structura tabelului i trebuie nlocuit cu un control calculat sau cu o expresie de interogare. Urmrii cu atenie cmpurile goale. Dac un cmp rmne necompletat nseamn c datele nu se aplic la acea nregistrare. Toate cmpurile trebuie s aib o legtur cu cmpul cheie primar.
22
Crearea tabelelor
Access organizeaz o baz de date n felul urmtor: Fiierul de baze de date (Access Database file) este fiierul principal care cuprinde pe lng datele cuprinse n tabele i obiecte: interogri pentru analiza datelor, formulare pentru interaciunea cu datele, rapoarte pentru tiprirea rezultatelor, macro i module pentru extinderea funcionalitii aplicaiilor i pagini web. Fiierul este salvat cu extensia .mbd (ex. Agentie.mbd). Tabelul (Table) este o colecie de date specifice unui anumit subiect, stocate pe linii i coloane. n baza de date pot exista mai multe tabele. (ex.: Clieni, Comenzi). Cmpul (Field) reprezint o coloan n cadrul tabelului, i este cea mai mic unitate de date din cadrul bazei de date. (ex.: numele i prenumele clientului) Tipul de date (Datatype) este o proprietate a fiecrui cmp. O coloan poate stoca doar date de un anumit tip, de ex. cmpul data_nasterii va conine doar date calendaristice iar cmpul nume va conine doar tipul text). Valoarea reprezint valoarea introdus ntr-un cmp. De exemplu, n cmpul Nume, de tip text, se poate stoca valoarea Ionescu.
Database file
Table
Field
Datatype
Value
Fig. 6.
Crearea structurii tabelelor se refer la definirea cmpurilor (coloanelor) tabelelor i, dup cum se observ n fereastra Database ( fig. 11), acest lucru se poate face n trei moduri: 1. Utiliznd fereastra de proiectare - CREATE TABLE IN DESIGN VIEW 2. Prin introducerea datelor - CREATE TABLE BY ENTERING DATA 3. Utiliznd instrumentul Wizard - CREATE TABLE BY USING WIZARD Modul cel mai eficient de creare a tabelelor l reprezint utilizarea ferestrei de proiectare, motiv pentru care se vor prezenta mai nti pe scurt celelalte dou moduri. Crearea unei tabele utiliznd instrumentul wizard permite adugarea unor cmpuri standard ce exist deja n cadrul bibliotecilor de tabele standard. De exemplu dac se dorete realizarea unei tabele cu clieni (CUSTOMERS) utilizndu-se instrumentul wizard, se pot selecta anumite cmpuri standard pentru aceast tabel precum i relaiile pe care acestea le au cu alte tabele. Nu se recomand aceasta modalitate deoarece cmpurile din cadrul tabelelor standard au fost create pentru sistemul de lucru anglo-saxon care n unele privine nu corespunde cu sistemul romnesc. Utilizarea celui de-al doilea mod de creare a tabelelor reprezint o form rapid de a introduce datele. Ea nu poate fi aplicat eficient n cadrul realizrii de aplicaii complexe.
23
Revenind la primul mod de creare al unei tabele prin realizarea unui dublu-clic pe Create Table In Design View pe ecranul monitorului va aprea fereastra Table. n aceast fereastr se definesc numele cmpurilor FIELD NAME, tipul de date DATA TYPE i opional o descriere a cmpului respectiv DESCRIPTION.
Putei s creai un tabel i apelnd opiunea New din bara de meniu a ferestrei Database.
24
): permite introducerea de date (articole) n tabel. ): este modul de vizualizare n care se definete structura tabelului
bazei de date (modul care permite introducerea cmpurilor cu tipul de data asociat i descrierea corespunztoare). Pentru a comuta ntre modurile datasheet view i design view, se executa clic pe butonul din colul stnga-sus al ferestrei aplicaiei Microsoft Access. De exemplu dac avem un tabel Judee cu urmtoarele cmpuri: cod_jude text(2) i jude-text(30) acesta va putea fi afiat n dou moduri:
25
Caracteristicile cmpurilor Numele: Microsoft Access 2000 permite ca numele de cmp s fie format din mai multe cuvinte, de exemplu Nume client. n versiunile mai vechi de Access denumirea unui astfel de cmp ar fi putut fi scris cu simbolul underscore (_) adic Nume_client. Numele cmpului poate fi stabilit dup dorin ns se recomand alegerea unui nume scurt care s indice rolul cmpului respectiv. Tipul de date: este o caracteristic ce stabilete modul n care datele sunt nregistrate pe suportul de memorare i modul n care acestea sunt interpretate i prelucrate. De exemplu, dac avem un cmp de tip date/time vom putea introduce n acest cmp doar date calendaristice iar operaiile pe care Access le poate efectua asupra informaiilor stocate n acest cmp sunt specifice tipului de date date/time. n continuare prezentm tipurile de date disponibile pentru cmpurile Access: Tip de date Tip de date Access Descrierea tipului de date Cel mai des folosit tip de date. Un cmp de tip text poate conine pn la 255 caractere alfanumerice. Numerele care nu sunt folosite pentru calcule vor fi stocate n cmpuri de tip text (nr. telefon, cod potal, CNP, numerele de nregistrare, nr. matricol). Poate conine cantiti mari de text sau numere cel mult 64.000 caractere. Se folosesc pentru a oferi comentarii descriptive i notie. Conine mai multe subtipuri de date: Long Integer, Byte, Integer, Single Double, Replication ID. Se utilizeaz atunci cnd dorim s stocm date numerice care vor fi folosite pentru calcule matematice. Genereaz numere unice n mod automat de fiecare dat cnd se introduce un nou articol n tabel. Poate ndeplini rolul de cheie primar atunci cnd nu mai exist n tabel o alt cheie. Format special pentru uniti monetare, proiectat pentru a preveni erorile de rotunjire care ar afecta operaiile contabile. Cmpurile logice (booleene) folosesc valori logice numerice de tip ntreg 1 pentru cmpurile YES (TRUE) i 0 pentru NO (FALSE).
TEXT Alfanumerice
MEMO
NUMBER
Numerice
AUTONUMBER
CURRENCY
YES/NO
26
Descrierea tipului de date Stocheaz data calendaristic i ora ntr-un format special fix. Se folosete formatul englez de data lun/zi/an, spre deosebire de cel romnesc zi/lun/an. Include elemnte grafice realizate din puncte (bitmap), desene vectoriale, fiiere cu semnale audio i alte tipuri de date ce pot fi create de o aplicaie OLE SERVER. Este un text sau o combinaie de text cu numere stocat ca un text i folosit ca adres a unei pagini Web. Conine 3 parti: textul afiat, adresa i subadresa. Fiecare parte poate avea maxim 2048 caractere.
Obiecte mari
OBJECT OLE
Proprietile cmpurilor 1. Field size (Dimensiunea cmpului): n aceast zon se introduce numrul maxim de caractere permis pentru cmpul respectiv, n funcie de tipul de date al acestuia. Putem crea un cmp de tip text cu dimensiune fix introducnd n celula Field Size valoarea corespunztoare lungimii fixe dorite (un numr de la 1 la 255). n mod prestabilit Access creeaz un cmp de tip text care poate cuprinde 50 de caractere. Dac importm cmpuri de date cu lungime mai mare Access le va trunchia astfel se vor pierde caracterele cele mai din dreapta care depesc limita indicat. 2. Format (Formatul n care sunt afiate datele): - n Access fiecare tip de date are mai multe opiuni predefinite de afiare. De exemplu, o dat de tip dat/or poate fi afiat n mai multe forme:
3. Decimal places (Numrul de zecimale): n cadrul acestei proprieti se stabilete numrul de zecimale ce pot fi atribuite unui cmp. 4. Input Mask (Formatul de introducere): se refer la impunerea unui anumit format pentru toate datele incluse n cadrul acestui cmp. O masc de intrare este folosit ntr-un cmp pentru a formata informaia i a controla ce valori pot fi introduse. De exemplu masca >LLLL este format din dou pri: simbolul > care transform toate caracterele introduse de utilizator n majuscule i irul de caractere LLLL ce reprezint nlocuitori pentru litere 27
(A-Z, fr spaii). Utilizatorul va putea introduce n cmp exact patru litere, n caz contrar Access va afia un mesaj de eroare. Pot fi folosite pentru tipurile de date: Text, Date/Time, Number, Currency. Iat cteva exemple: pentru formatul datei: 00-00-00 pentru numr matricol: 000 pentru numere de nmatriculare: LL00LLL 0 pentru numere (0-9); 9 pentru numere sau pauze; L pentru litere (A-Z).
5. Caption (Eticheta): permite specificarea unui anumit nume atribuit cmpului, nume care va fi afiat n cadrul rapoartelor, formularelor, tabelelor. 6. Default value (Valoare automat): este valoarea atribuit automat atunci cnd utilizatorul nu introduce nici o valoare n acel cmp. 7. Validation rule (Regulile de validare): testeaz prin intermediul unui criteriu (expresie Access) valorile introduse n cmpurile bazei de date i nu las introducerea de date care nu respect acel criteriu. De exemplu, regula >0 permite doar introducerea numerelor pozitive, iar >= 10 AND <100 permite introducerea numerelor cuprinse ntre 10 i 99. 8. Validation TEXT (Text de validare): Conine textul care va aprea pe ecran n cazul n care valoarea introdus n cmp nu respect criteriul impus de regula de validare. 9. Required (Cerine): se stabilete dac prin introducerea unei nregistrri n cadrul tabelei este obligatorie i completarea respectivului cmp.
10. Indexed (Indexare): dintr-o list derulant se poate alege ntre un index care admite valori
duplicat sau unul care cere ca fiecare valoare a cmpului s fie unic.
Noiunea de cheie primara - PRIMARY KEY Cheile principale (primary keys) reprezint o component esenial a oricrei baze de date relaionale. Pentru a se ncadra n modelul relaional fiecare tabel al bazei de date trebuie s aib un identificator unic. Asigurarea unicitii se poate realiza prin desemnarea unei chei primare o coloan sau un set de coloane care identific n mod unic un rnd din tabel. O cheie primar poate fi format dintr-o singur coloan 28
cheie simpl, sau poate fi format din mai multe coloane cheie compus (multipl). ntr-un tabel pot exista mai multe coloane (sau set de coloane) ce pot conine valori unice. Aceste coloane sunt chei candidat. Din aceste chei candidat se alege o cheie primar, aceasta trebuie s conin un numr minimal de coloane i s fie stabil. De exemplu ntr-un tabel Angajati cu urmtoarele cmpuri: CNP (codul numeric personal), Nume, Prenume, Data_angajrii, Salar avem dou chei candidat - CNP i cheia compus din cmpurile Nume, Prenume. Codul numeric personal este unic pentru fiecare persoana deci el ar poate asigura unicitatea nregistrrilor. Singura problem este c angajaii strini nu au cod numeric personal. Cea de-a doua cheie ndeplinete condiia de cheie primar att timp ct nu exist n baza de date doi angajai cu acelai nume i prenume. Cnd apar dou persoane cu acelai nume i prenume, pentru a se asigura unicitatea, se poate aduga cmpul data_angajrii la cheia primar, dar atunci numrul cmpurilor din componena acesteia este prea mare. Cmpul numele nu este un cmp stabil pentru c n cazul angajatelor acesta poate fi schimbat prin cstorie de aceea nu e bine s intre n componena cheii primare. Deoarece nu am putut gsi o cheie primar natural trebuie s crem o cheie artificial, o cheie derivat. Putem aduga un cmp Cod Angajat de tip Number care s ndeplineasc rolul de cheie principal. Cheia primar are un rol deosebit de important n implementarea strategiilor de cutare i de regsire a datelor. Este folosit de SGBD pentru identificarea unic a nregistrrilor. Cmpul marcat cu PRIMARY KEY nu permite introducerea valorilor duplicat. Asupra cheii primare a SGBD -urile impun restricii :
nu sunt admise valorile nedefinite (NULL) pentru atributele unei chei primare, orice alt cheie a unei relaii poate avea valori nedefinite pentru unele din atributele sale; nici o valoare a unui atribut dintr-o cheie primar nu poate fi modificat n cadrul operaiilor de actualizare.
Stabilirea cheii primare se poate face prin dou modaliti, dup cum urmeaz: 1. se selecteaz cmpul cod_cl; 2. a) se selecteaz butonul din trusa de instrumente Database; b) se activeaz opiunea Primary Key din meniul Edit.
29
Sortarea nregistrrilor n modul de vizualizare Datasheet View putei vizualiza nregistrrile unui tabel ntr-o anumit ordine. Pentru a sorta nregistrrile se efectueaz urmtorii pai: 1. Se trece pe modul de vizualizare Datasheet View ( 2. Se selecteaz coloana dup care se face ordonarea 3. Se selecteaz opiunea Sort Ascending (sau Sort Descending) din meniul Records sau se alege butonul sau din bara de instrumente Database. )
Pentru a ilustra modul de creare a structurii unui tabel vom lua ca exemplu tabelul Infoclieni, din baza de date Clieni, care va conine informaii referitoare la clienii unei firme. Tabelul are urmtoarea structur: Cod_cl Nume Prenume Adresa Localitatea Cod_jude Cod_postal Telefon Data nasterii Numeric, ntreg Text (30) Text(30) Text (120) Text (30) Text(2) Text(10) Text(15) Dat calendaristic (Date/Time)
Se creaz baza de date Clieni astfel: 1. se pornete aplicaia Microsoft Access: Start->Programs->Microsoft Access; 2. se selecteaz opiunea Blank Access database din fereastra Microsoft Access; 3. din lista Save in se selecteaz directorul unde va fi salvat baza de date, iar n lista File Name se introduce numele Clienti dup care se activeaz butonul Create.
30
Pentru a crea un tabelul Infoclieni selectai opiunea Create table in Design view, sau selectai opiunea New ( ) din bara de meniu a aceleiai ferestre i apoi opiunea Design
view. Pe ecran va aprea o fereastr n care vei introduce numele cmpurilor, tipul acestora i o scurt descriere dup cum urmeaz: 1. Aici se introduce numele cmpului. 2. Se selecteaz tipul de date din list.
Se repet cei patru pai pentru fiecare cmp n parte. n seciunea Field Properties se pot introduce informaii legate de cmpuri, reguli de validare, valori implicite ale datelor ce vor fi introduse n tabel. Dup ce ai introdus toate categoriile trebuie s stabilii o cheie primar pentru tabelul creat. Cheia trebuie s identifice n mod unic fiecare nregistrare din tabel i s previn apariia duplicatelor, n cazul nostru cmpul care ndeplinete condiiile de cheie primar este cod_cl. Stabilirea cheii primare se poate face prin dou modaliti, dup cum urmeaz: 1. se selecteaz cmpul cod_cl; 2. se selecteaz butonul din trusa de instrumente Database sau (folosind meniul sistem Access) se activeaz opiunea Primary Key din meniul Edit.
31
1. Se selecteaz cmpul
Se salveaz tabelul, selectnd opiunea Save din meniul File, iar n fereastra care apare se introduce denumirea tabelului InfoClienti.
Pentru a aduga articolele se selecteaz Datasheet View ( fereastra care apare pe ecran se completeaz urmtoarele date:
Cod client 1 2 3 4 5 Nume Oltean Plesan Sitaru Pascu Prenume Radu Sorin Adela John Adresa Str. Mehedinti Nr. 61 Str. Sibiului Nr 45 Str. Cernei Nr.3 Str. Alverna Nr 45 Localitate Jud
Cod postal
Telefon
Data nasterii
Popescu Adriana
Str. Aurel Vlaicu Nr. 4 Cluj-Napoca CJ 23780 0264/440016 03/05/1974 Cluj-Napoca CJ 34214 0264/418788 06/09/1962 Cluj-Napoca CJ 34561 0275/938566 04/02/1976
32
APLICAII I. S se creeze o baza de date avnd numele STUDENT i s se salveze n directorul personal. Baza de date va conine un tabel InfoStudent n care se vor stoca informaiile referitoare la studeni. Structura tabelului este urmtoarea: NRMAT numrul matricol de tip text 3 caractere Nume numele studentului de tip text 20 caractere Prenume prenumele studentului tip text 20 caractere DN data naterii de tip dat calendaristic ADR adresa studentului de tip text 30 caractere SCT secia (se va introduce AM sau MH ) - text - 2 caractere BRS bursier - da sau nu (Yes/No) Media media studentului de tip numeric-zecimal 1. 2. 3. S se creeze tabela InfoStudent cu cmpurile aferente. S se stabileasc cheia primar pentru tabelul InfoStudent. Cmpul de date Media s permit introducerea unor valori mai mici sau egale cu 10.00. De asemenea, n cazul n care se introduc valori mai mari de 10.00 s se afieze urmtorul mesaj de eroare: Introducei valori mai mici dect 10!. 4. 5. 6. 7. 8. 9. Pentru cmpul de date SCT se va impune condiia ca secia sa fie numai AM sau MH. S se introduc cte 6 nregistrri, 3 studeni de la AM i 3 studeni de la MH. S se ordoneze baza de date cresctor dup cmpul Nume. S se ordoneze baza de date descresctor dup cmpul Media. S se introduc un nou student, Popescu Ion de la secia AM. S se tearg studentului de pe poziia a treia. localitatea de unde provine studentul, dup cmpul adresa ADR. 11. S se completeze cmpul introdus cu informaiile corespunztoare pentru fiecare student.
10. Modificai structura bazei de date prin adugarea unui nou cmp Loc. text (20),
33
II. S se creeze o baz de date avnd numele CADRE i s se salveze n directorul personal. Baza de date va conine un tabel InfoCadre n care se vor stoca informaiile referitoare la cadrele didactice. Structura tabelului este urmtoarea: COD - codul cadrului - de tip text - 3 caractere Nume - numele cadrului didactic - de tip text - 20 caractere Prenume - prenumele cadrului didactic - tip text - 20 caractere DN - data naterii - de tip dat calendaristic UNV - universitatea - text - 3 caractere FCT - facultatea la care pred - text - 15 caractere CTD - catedra - text - 15 caractere SPEC - specialitatea - text - 30 caractere CML - cumul de funcii de tip Yes/No NRO - numr de ore - numeric - intreg Se cere: 1. S se creeze tabelul InfoCadre cu cmpurile aferente. 2. S se stabileasc cheia primar a tabelului. 3. S nu se poat introduce n cmpul NRO valori mai mari de 50. 4. S se introduc 4 nregistrri (4 cadre didactice din catedre diferite). 5. S se sorteze tabela InfoCadre cresctor dup cmpul nume. 6. S se sorteze tabela InfoCadre descresctor dup cmpul NRO. 7. S se tearg cmpul DN i n locul lui s se introduc un nou cmp numit ADR (adresa) text (30). III. S se salveze cele dou tabele InfoCadre i InfoStudent cu alt nume. Noile nume vor fi Cadr respectiv Stud. IV. S se tearg tabele InfoCadre i InfoStudent.
34
35
Tipuri de relaii n Access 1. Relaia One to One (unu la unu) - ntre dou tabele A i B exist o relaie de tipul Oneto-One dac fiecrei nregistrri din tabelul A i corespunde o singur nregistrare n tabelul B i invers, fiecrei nregistrri din tabelul B i corespunde o singur nregistrare n tabelul A. Acest tip de relaie se folosete foarte rar. 2. Relaia One to Many (unu la mai muli) - ntr-o relaie de tipul One-to-Many, o nregistrare din tabelul A poate avea mai multe nregistrri asociate n tabelul B, iar o nregistrare din tabelul B poate avea o singur nregistrare asociat n tabelul A. Tabelul A este denumit tabel primar iar tabelul B este denumit tabel asociat. 1. Relaia Many to Many (mai muli la mai muli) ntr-o relaie de tipul Many-to-Many unei nregistrri din tabelul A i sunt asociate mai multe nregistrri n tabelul B, i unei nregistrri din tabelul B i sunt asociate mai multe nregistrri n tabelul A. Acest tip de relaie poate fi reprezentat numai cnd se definete i un al treilea tabel C, denumit tabel de jonciune. Rolul acestui tabel este spargerea relaiei Many-to-Many n dou relaii de tipul One-to-Many. Tabelul printe este tabelul care conine cheia principal iar tabelele copil sunt tabelele corelate. Pentru a implementa relaiile dintre tabele se folosesc cheile externe. Relaiile de tip one-to-one i one-to-many se implementeaz introducnd n una din tabele o cheie extern (strin), care va face legtura cu cheia primar din tabela corespunztoare. O legtur de tip many-to-many se implementeaz introducnd o tabel suplimentar care are in structura sa cheile celor doua tabele puse in legatur. Integritatea reverenial: se refer la un set de reguli care protejeaz datele prin stabilirea de restricii pentru adugarea i tergerea de nregistrri din tabelele relaionate: 1. fiecare valoare a cheii externe trebuie s se gseasc printre mulimea valorilor cheii candidat corespondente, cu alte cuvinte nu putem adaug nregistrri n tabelul copil fr ca acestea s aib corespondent n tabelul printe; 2. nu putem terge o nregistrare din tabelul printe dac exist nregistrri corespondente n tabelele copil. Alte reguli referitoare le cheia extern: 1. o cheie extern este simpl dac i numai dac cheia candidat corespondent este simpl, i este compus dac i numai dac cheia candidat corespondent este compus; 36
2. fiecare cmp component al unei chei externe trebuie s aib acelai tip de date i dimensiune cu al cmpului corespondent din cheia candidat; 3. o valoare a unei chei externe reprezint o referin ctre o nregistrare care conine aceeai valoare pentru cheia candidat corespondent. Crearea relaiilor ntre tabele (Relationships) Pentru a realiza relaii ntre tabelele Access se alege opiunea Relationships din meniul Tools.
Se selecteaz fiecare tabel pe care dorii s-l includei n relaie i se activeaz butonul Add i apoi se nchide fereastra Show Table.
Cheie primar
Cheie extern
37
O relaie ntre dou tabele se realizeaz prin operaia drag and drop de la cheia primar a tabelului principal la cheia extern a tabelului secundar. n fereastra Edit Relationships se selecteaz opiunea Enforce Referential Integrity pentru a se asigura integritatea referenial.
In Access opiunea Enforce Referential Integrity poate fi selectat numai daca se ndeplinesc condiiile: 1. Cmpul selectat din tabelul primar are atributul de cheie primar; 2. Cmpurile puse n coresponden au acelai tip de date; 3. Cele dou tabele sunt memorate n aceeai baz de date. Dac selectai opiunea Cascade Update Related Fields atunci cnd vei actualiza cheia primar din tabelul 1 (tabelul printe), Access va actualiza automat toate cheile externe corespondente din tabelul n (tabelul copil). Dac dezactivai aceast opiune, Access nu v permite s schimbai valoarea cmpului cheie principal din tabelul 1 atta timp ct exist nregistrri corespondente n tabelul n. Opiunea Cascade Delete Related Fields este similar opiunii Cascade Update Related Fields numai c afecteaz modul n care se face tergerea nregistrrilor. Cnd aceast opiune este selectat, Access va terge toate nregistrrile corelate din tabelul/tabelele copil atunci cnd tergei nregistrarea cu cheia primar corespunztoare din tabelul printe. Dac nu este selectat, Access nu va permite tergerea nregistrrii ce conine cheia primar din tabelul printe atta timp ct exist nregistrri corespondente n tabelul/tabelele copil. n cazul n care relaia a fost definit n mod corect n fereastra Relationships va aprea o linie care leag cele dou tabele dup cum se poate vedea n figura de mai jos.
38
Relaia poate fi modificat ulterior prin dublu-click asupra legturii dintre cele dou tabele. De asemenea se poate terge o relaie ntre tabele: se selecteaz linia de asociere i se apas tasta DEL. Pentru tergere se poate folosi i opiunea Delete din meniul contextual (clic dreapta pe linia de asociere). Editarea ulterioar mai poate fi fcut i alegnd opiunea Edit Relationship din meniul contextual. Dac executai clic pe butonul Join Type pe ecran va aprea urmtoarea caset de dialog:
Creeaz o asociere intern Creeaz o asociere extern la stnga Creeaz o asociere extern la dreapta
Aceast caset de dialog v permite s definii tipul de asociere produs de relaie. Asocierea (Join) determin modul n care corelaia dintre dou tabele afecteaz rezultatul unei interogri legate. Exist dou tipuri de asocieri: - Asociere intern (INNER JOIN): este tipul prestabilit de asociere n care nregistrrile provenite din dou tabele sunt combinate i adugate la rezultatele unei interogri numai cnd valorile din cmpurile asociate sunt egale. - Asociere extern (OUTER JOIN) care poate fi de dou tipuri: asociere extern la stnga (LEFT OUTER JOIN) i asociere extern la dreapta (RIGHT OUTER JOIN). - LEFT OUTER JOIN: O asociere n care toate nregistrrile provenite din membrul stng al relaiei sunt adugate la rezultatele unei interogri indiferent daca ele au sau nu nregistrri asociate.
39
RIGHT OUTER JOIN: O asociere n care toate nregistrrile provenite din membrul drept al relaiei sunt adugate la rezultatele unei interogri,chiar dac exist nregistrri care nu corespund nici unei nregistrri din tabelul primar.
Relaiile dintre tabele pot fi tiprite selectnd opiunea Print Relationships din meniul File. APLICAII 1. S se creeze un nou tabel cu numele Pli n baza de date CLIENTI. Tabelul va avea urmtoarea structur: Cod_cl Data_platii Suma_platit Data_scadenta a) S se stabileasc cheia primar. b) S se creeze o relaie de tip 1:n ntre tabelul Infoclieni i tabelul Pli. S se foreze integritatea referenial. c) S se introduc 8 articole n tabelul Pli Numeric, ntreg Data calendaristic Currency Data calendaristic
INTEROGRI (Queries)
Esena oricrui SGBD const n selecia datelor din tabele i prezentarea acestora n diferite forme prin intermediul interogrilor sau al rapoartelor. Orice firm i construiete o baz de date pe care lucreaz i elaboreaz diferite rapoarte sub diverse forme de prezentare. O baz de date este creat pentru a fi interogat. Tipuri de interogri 1. Interogri de selecie (SELECT QUERY): se folosesc pentru regsirea datelor care ndeplinesc anumite condiii, pentru gruparea nregistrrilor i pentru efectuarea unor calcule pe baza datelor selectate. 2. Interogri de tip totaluri: permit crearea grupurilor de articole precum i efectuarea de calcule cu valorile unor cmpuri din interiorul grupurilor. 3. Interogri cu parametri (PARAMETER QUERY): n acest tip de interogare valorile necesare la stabilirea criteriilor utilizate de interogare vor fi introduse de ctre utilizator. 4. Interogri de sintez (interogri de analiza ncruciata CROSSTAB QUERY): totalizeaz datele i grupeaz aceste totaluri dup dou categorii. Sunt folosite pentru analiza multidimensionala a datelor si permit obinerea unor situaii sintetice
40
asemntoare tabelelor Pivot din Excel. Gruparea si sortarea datelor se face pe rnduri si coloane iar la intersecia rndului cu coloana se pot efectua calcula diverse. 5. Interogri de aciune: au ca efect localizarea i modificarea datelor. Exist patru interogri de tip aciune: a. Interogarea MAKE TABLE: Folosind opiunea Make Table Query din meniul Query putem crea uor un tabel nou pe care sa-l populam cu date din unul sau mai multe tabele existente. Acest tabel poate fi stocat in baza de date curenta sau intr-o alta baza de date. b. Interogarea APPEND: este folosit pentru adugarea unor nregistrri ntr-un tabel existent n baza de date. c. Interogarea DELETE: terge nregistrri din una sau mai multe tabele. Prin utilizarea unei interogri delete nu putei terge doar coninutul unui cmp ci se terg nregistrri ntregi. d. Interogarea UPDATE: modific coninutul cmpurilor dintr-un tabel specificat. In general opiunea Update Query din meniul Query este folosit pentru actualizarea unui numr mare de nregistrri care se afl n unul sau mai multe tabele. Dac avei de actualizat un numr mic de nregistrri dintr-un singur tabel atunci aceste modificri se pot face direct n foaia de date. 6. Interogri SQL (SQL QUERY): necesit pentru interogarea datelor comenzi SQL. Interogrile specifice SQL sunt: UNION, PASS-THROUGH, DATA-DEFINITION, SUBQUERY. Interogrile din aceast categorie nu pot fi create folosind grila de proiectare a interogrii, fiind necesara tastarea directa, intr-o fereastra de proiectare a diferitelor instruciuni SQL. a. Union: Combin doua sau mai multe interogri clasice de tip select ntr-o singura interogare, articolele livrate de aceste interogri vor fi amestecate. Deoarece articolele unei interogri Union sunt returnate sub forma unui set de articole fiecare instruciune select din combinaie trebuie s genereze acelai numr de cmpuri. Cmpurile puse in coresponden trebuie sa aib acelai tip cu o singur excepie: pot fi puse in coresponden cmpuri de tip numeric si cmpuri de tip text. b. PassThrough: permite transmiterea instruciunilor SQL direct spre un calculator server de tip ODBC de exemplu SQL Server; cu ajutorul interogrilor de acest tip se lucreaz direct cu tabele memorate pe calculatorul server. c. Interogrile de definire a datelor (Data Definition): permit crearea tabelelor i a indecilor, modificarea structurii tabelelor, tergerea 41
tabelelor sau a indecilor prin intermediul instruciunilor SQL Create table, Create Index, Alter table, Drop Table i Drop index. 7. Cereri de interogare imbricate: Scrierea unei interogri in cadrul alteia duce la apariia unei subinterogri - setul de rezultate obinut de la o interogare va constitui argument pentru o alta. Limbajul SQL Scurt istoric Limbajul SQL (ntlnit i sub numele de SEQUEL) este limbajul de interogare al SGBD Sysem R dezvoltat n cadrul laboratorului de cercetare din San Jose al firmei IBM. In paralel firma IBM a scos pe pia produse cu baze de date relaionale, bazate pe System R dar cu un limbaj puin diferit de SEQUEL. Astfel c l-a botezat SQL, eliminnd vocalele din SEQUEL i trecnd la pronunia "es-qu-el". Expresiile din SEQUEL seamn cu propoziiile din limba englez, fiind desigur mai structurate. SEQUEL a evoluat din predecesorul su SQUARE care a constituit prima etap n dezvoltarea unui limbaj de interogare pentru System R. Conceptele de baz ale celor dou limbaje sunt n esen aceleai, deosebirea principal dintre ele fiind aceea c limbajul SQUARE are o sintax bazat n mare msur pe notaii matematice, n timp ce SQL are o sintax mai apropiat de limba englez aa cum arat i denumirea limbajului (SQL sau SEQUEL Structured English Query Language). Aceast sintax este mai adecvat programrii pe computer i totodat mai uor de asimilat de ctre utilizatori. La ora actual SQL este una din cele mai rspndite interfee pentru SGBD-urile relaionale. n afar de System R limbajul SQL este disponibil i sub alte SGBD-uri relaionale cum ar fi SQBD ORACLE (pentru sisteme mari, dar i computere personale profesionale) sau chiar dBASE (ntr-o variant simplificat ncepnd cu versiunea IV). In 1979, Corporaia Oracle introduce prima implementare a SQL n variant comercial. Din anul 1986, SQL a devenit standard ANSI (Institutul National American de Standarde) pentru limbajele de interogare ale bazelor de date relaionale. Organizaia Internaional de Standarde (ISO) a adoptat deasemenea SQL ca limbaj standard pentru RDBMS. Toate RDBMS-urile suport unele forme de SQL i toi vnztorii de astfel de sisteme s-au aliniat sau intenioneaz s se alinieze la standardele ANSI. Asta nu nseamn c nu mai apar diferene. Chiar i la produsele aceleai firme, Microsoft Access i SQL Server, pot fi semnalate diferene n implementarea limbajului. SQL este limbajul de interogare al unui sistem de gestiune al bazelor de date (SGBD. Operaia fundamental n SQL este maparea reprezentata
42
din punct de vedere sintactic printr-o construcie SELECT FROM WHERE (pe scurt construcie SELECT). Caracteristici SQL, ca i majoritatea limbajelor de programare, folosete cuvinte din limba englez. In mod special cuvintele select, insert, delete ca elemente ale setului de comenzi. SQL este un limbaj neprocedural: specific care sunt informaiile dorite, nu cum se obin acestea. Cu alte cuvinte, SQL nu cere s fie specificat metoda de acces la date. Execuia comenzilor SQL asupra nregistrrilor nu se poate face dect secvenial, asupra cte unei singure nregistrri. Setul de nregistrri fiind vzut ca set de linii ale unui tabel. SQL poate fi folosit de un ir de utilizatori, incluznd administratorul bazei de date, programatorii de aplicaii, personalul de management i multe alte tipuri de utilizatori. SQL include comenzi pentru o varietate de sarcini, incluznd: - selecia unor date; - inserarea, extragerea i tergerea rndurilor dintr-un tabel; - crearea, modificarea i tergerea obiectelor de tip baz de date; - controlul accesului la baza de date i la obiectele de tip baz de date; - verificarea - garantarea consistenei bazei de date; Instruciuni SQL Instruciuni DDL (Data Definition Language) Instruciunea CREATE CREATE DATABASE CREATE DATABASE nume_baza_de_date; Ex: CREATE DATABASE vanzari; CREATE TABLE CREATE TABLE nume_tabel (cmp1 tip_data [constrangere] , cmp2 tip_data [constrangere] , cmp3 tip_data [constrangere],.); Ex: CREATE TABLE facturi(nrfact number, dataf date, codcl number); CREATE TABLE vanzari(nr number primary key , cod_m number, data_v date not null, Loc char);
Instruciunea ALTER TABLE ALTER TABLE nume_tabel ADD nume_cmp tip_data [constrangere]; Ex: ALTER TABLE vanzari ADD jud char; 43