Vous êtes sur la page 1sur 19

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

LABORATOR I I. EXEMPLU DE CREARE A UNEI BAZE DE DATE I A UNUI TABEL 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 FileName se introduce numele Clienti dup care se activeaz butonul Create. 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 Autonumber Nume Text (30) Prenume Text(30) Adresa Text (120) Localitatea Text (30) Cod_jude Text(2) Cod_postal Text(10) Telefon Text(15) Data nasterii Dat calendaristic (Date/Time) Pentru a crea 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:

Lector univ. dr. ing. Luminia Giurgiu

-1-

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

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 cheie primar din trusa de instrumente Database sau (folosind meniul sistem Access) se activeaz opiunea Primary Key din meniul Edit.

Lector univ. dr. ing. Luminia Giurgiu

-2-

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

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 din meniul View iar n fereastra care apare pe ecran se completeaz nregistrrile cu datele corespunztoare. II. APLICAII lucru independent a. S se creeze o baz 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 autonumber 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 MO, AP, MEF ) - text - 3 caractere BRS bursier - da sau nu (Yes/No) Media media studentului de tip numeric-zecimal 1. S se creeze tabela InfoStudent cu cmpurile aferente. 2. S se stabileasc cheia primar pentru tabelul InfoStudent. 3. 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. Pentru cmpul de date SCT se va impune condiia ca secia sa fie numai MO, AP sau MEF.
Lector univ. dr. ing. Luminia Giurgiu -3-

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

5. S se introduc cte 6 nregistrri, 3 studeni de la MO i 3 studeni de la AP. 6. S se ordoneze baza de date cresctor dup cmpul Nume. 7. S se ordoneze baza de date descresctor dup cmpul Media. 8. S se introduc un nou student, Popescu Ion de la secia MO. 9. S se tearg studentul de pe poziia a treia. 10. Modificai structura bazei de date prin adugarea unui nou cmp Loc. text (20), localitatea de unde provine studentul, dup cmpul adresa ADR. 11. S se completeze cmpul introdus cu informaiile corespunztoare pentru fiecare student. Indicaie1:

Lector univ. dr. ing. Luminia Giurgiu

-4-

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

Indicaie 2:

b. 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 autonumber 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
Lector univ. dr. ing. Luminia Giurgiu -5-

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

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). c. S se salveze cele dou tabele InfoCadre i InfoStudent cu alt nume. Noile nume vor fi Cadr respectiv Stud. d. S se tearg tabelele InfoCadre i InfoStudent. III. RELAII NTRE TABELE ntr-o baz de date relaional datele pot fi stocate n unul sau mai multe tabele. Se recomand folosirea mai multor tabele ntre care exist legturi dect proiectarea unui singur tabel cu multe cmpuri. Unul din scopurile principale ale proiectrii bazelor de date relaionale este de a grupa cmpurile n tabele astfel nct s se minimizeze redundana datelor, i prin aceasta s se reduc spaiul de stocare necesar bazei de date. Tabelele care conin date redundante pot crea probleme, denumite anomalii de reactualizare: anomali de inserare, anomalii de tergere i anomalii de modificare. Pentru a elimina aceste probleme tabelele trebuie s fie normalizate pan la cel puin a treia form normal. n cadrul unei baze de date nu este obligatoriu ca ntre toate tabelele s existe relaii. Este posibil ca n cadrul unei aplicaii s utilizm i tabele independente i/sau de lucru (tabele temporare). ntre dou tabele dintr-o baz de date exist o relaie atunci cnd unul sau mai multe cmpuri cheie dintr-un tabel se potrivesc cu unul sau mai multe cmpuri cheie din cellalt tabel. De obicei cmpurile corespondente din ambele tabele au acelai nume, tip de date i mrime. Din punct de vedere al momentului crerii acestora avem dou tipuri de relaii ntre tabelele unei baze de date Access : - relaii permanente - se stabilesc dup definirea tabelelor i sunt cerute de modelul relaional fcnd parte din structura bazei de date. Acestea se
Lector univ. dr. ing. Luminia Giurgiu -6-

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

realizeaz de obicei prin corespondenele cheie primar - cheie extern i sunt memorate n baza de date. - relaii temporare - se stabilesc ntre tabele cu ocazia definirii unor cereri de interogare, nefiind nregistrate n structura bazei de date. Avantajele utilizrii relaiilor 1. Atunci cnd creai relaii ntre tabele, Access asociaz automat cmpurile respective din tabele. Putei crea astfel formulare, rapoarte, interogri care s conin date din mai multe tabele. 2. Se pot crea subformulare i subrapoarte. 3. Un alt avantaj este posibilitatea de forare a integritii refereniale. IV. TIPURI DE RELAII N ACCESS 1. Relaia One to One (unu la unu) - fiecrei nregistrri din tabelul printe i corespunde exact o singur nregistrare din tabelul copil. Acest tip de relaie se folosete foarte rar. 2. Relaia One to Many (unu la mai muli) - fiecrei nregistrri din tabelul printe i corespunde mai mult de o nregistrare n tabelul copil. Sunt cele mai folosite. 3. Relaia Many to Many (mai muli la mai muli) fiecrei nregistrri din tabelul printe i corespunde mai mult de o nregistrare n tabelul copil iar fiecrei nregistrri din tabelul copil i poate corespunde mai mult de o nregistrare n tabelul printe. 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 implemnteaz introducnd o tabel suplimentar care are o cheie primar compus, fiecare element al cheii primare fiind o cheie extern. Integritatea referenial: 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 (nu exist copii fr prini, adic nregistrri orfane!);
Lector univ. dr. ing. Luminia Giurgiu -7-

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

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; 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.

Pe ecran va aprea urmtoarea fereastr:

Se selecteaz fiecare tabel pe care dorii s-l includei n relaie i se activeaz butonul Add , apoi se nchide fereastra Show Table.

Lector univ. dr. ing. Luminia Giurgiu

-8-

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

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.

- 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
Lector univ. dr. ing. Luminia Giurgiu -9-

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

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.

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). Observaie: 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:

Lector univ. dr. ing. Luminia Giurgiu

- 10 -

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

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 i selecteaz doar acele nregistrri din cele dou tabele care au valori corespondente n cmpurile de corelare. - 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). Asocierea extern la stnga include toate nregistrrile din tabelul 1 i doar nregistrrile corespondente din tabelul n. Invers, asocierea extern la dreapta include toate nregistrrile din tabelul n i doar nregistrrile corespondente din tabelul 1. Relaiile dintre tabele pot fi tiprite selectnd opiunea Print Relationships din meniul File. V. APLICAII 1. S se creeze un nou tabel cu numele Pli n baza de date CLIENTI. Tabelul va avea urmtoarea structur: id_plata - Autonumber (cheie primar) Data_platii - Data calendaristic Suma_platit - Currency Data_scadenta - Data calendaristic Cod_cl cheie extern (cheia primar din Infoclienti) Se cere:
Lector univ. dr. ing. Luminia Giurgiu - 11 -

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

a) S se creeze o relaie de tip 1:n ntre tabelul Infoclieni i tabelul Pli. S se foreze integritatea referenial. b) S se introduc 8 articole n tabelul Pli Se va descrie n continuare modalitatea de creare a cheii externe cod_cl din tabelul Plati i apoi stabilirea relaiei one to many: - se definesc cmpurile descrise mai sus pentru crearea structurii tabelului Plati, iar atunci cnd se adaug cmpul cod_cl, alegerea tipului cmpului va consta n urmtorii pai: 1. se selecteaz din lista de la tip opiunea LookupWizard i se deschide o fereastra ca mai jos:

Lector univ. dr. ing. Luminia Giurgiu

- 12 -

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

2. n urma selectrii primei opiuni (care de fapt este implicit) se obine:

3. urmtorul pas (next) presupune:

Lector univ. dr. ing. Luminia Giurgiu

- 13 -

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

4. n urma parcurgerii tuturor pailor indicai de ctre Wizard se va obine fereastra structurii tabelului astfel:

Lector univ. dr. ing. Luminia Giurgiu

- 14 -

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

- n fereastra Relationships se va edita legtura one to many astfel:

obinndu-se n final:

Lector univ. dr. ing. Luminia Giurgiu

- 15 -

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

VI. INDICAII I REGULI DE URMAT 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 urmrite 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. 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 identifice 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
Lector univ. dr. ing. Luminia Giurgiu - 16 -

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

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.

Lector univ. dr. ing. Luminia Giurgiu

- 17 -

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

VI. LUCRU INDEPENDENT S se creeze o baz de date CURS n care s se proiecteze dou tabele astfel: - primul tabel (printe) numit Cursani cu structura: id_c Autonumber (cheie primar) nume Text 25 prenume Text 25 instituie Text 25 funcie Text 15 poza OLE web Hyperlink - al doilea tabel (copil) numit Studii cu structura: id_s Autonumber (cheie primar) denumire Text 30 data_absolv Date/Time cursant cheie extern (cheia primar din Cursani) Fiecrei nregistrri din tabelul printe Cursani i va corespunde una sau mai multe nregistrri din tabelul copil Studii, ntre cele dou tabele stabilindu-se o relaie one to many. - al treilea tabel numit Profesori cu structura: id_p Autonumber (cheie primar) nume Text 30 prenume Text 30 materie Text 10 grad_didactic Text 10 ntre tabelele Cursani i Profesori exist o legtur de tip many to many, n sensul c unui cursant (unei nregistrri) din tabelul Cursani i corespund mai muli profesori (mai multe nregistrri) din tabelul Profesori, iar unui profesor (unei nregistrri) din tabelul Profesori i corespund mai muli cursani (mai multe nregistrri) din tabelul
Lector univ. dr. ing. Luminia Giurgiu - 18 -

Academia Forelor Terestre CURS Gestiunea informatizat a bazelor de date

octombrie 2007

Cursani. Aceast relaie va fi spart n relaii one to many prin intermediul unui tabel de legtur (numit n acest exemplu Teme) care va conine dou chei externe care sunt de fapt cheile primare ale tabelelor Cursani i Profesori. - al patrulea tabel numit Teme cu structura: id_t Autonumber (cheie primar) titlu Text 30 punctaj Number cursant cheie extern (cheia primar din Cursani) profesor cheie extern (cheia primar din Profesori) Ideea relaiei many to many ntre tabelele Cursani i Profesori, sparte prin intermediul tabelului Teme este aceea c fiecare tem (fiecare nregistrare) din tabelul Teme va corespunde: unui cursant (unei nregistrri) din tabelul Cursani, adic o va rezolva un anumit cursant, i unui profesor (unei nregistrri) din tabelul Profesori, adic o va ndruma/corecta un anumit profesor.

Lector univ. dr. ing. Luminia Giurgiu

- 19 -

Vous aimerez peut-être aussi