Curs 4-Baze de Date(M. Acces)

of 42 /42
Baze de date -Microsoft Access. Curs 1 – SGBD-ul MICROSOFT ACCESS 1. Noţiuni introductive despre Access. Microsoft Access 2000 este un puternic şi robust sistem de gestionare a bazelor de date relaţionale pe 32 de biţi (RDBMS) pentru crearea de aplicaţii clasice sau de tip client-server pentru baze de date pentru sistemele de operare Windows 9x şi Windows NT4+ sau Windows 2000. Principalul motiv al succesului programului Access este faptul că aduce pe suprafaţa de lucru a mare parte din facilităţile sistemelor pentru baze de date relaţionale client/server, denumite şi baze de date SQL. Access 2000 (şi alte versiuni ) şi Visual Basic 6.0 au amândouă capacitatea de a folosi controale ActiveX (cunoscute şi sub vechea denumire de controale OLE) create de Microsoft, de alţi programatori de module de extensie şi de utilizatori. Access a fost proiectat în vederea creării de aplicaţii multiutilizator, în care fişierele bazelor de date sunt partajate în reţea, iar Access foloseşte un sistem de securitate complex pentru a împiedica persoanele neautorizate să citească sau să modifice bazele de date.

Embed Size (px)

Transcript of Curs 4-Baze de Date(M. Acces)

Baze de date -Microsoft Access.Curs 1 SGBD-ul MICROSOFT ACCESS 1. Noiuni introductive despre Access.Microsoft Access 2000 este un puternic i robust sistem de gestionare a bazelor de date relaionale pe 32 de bii (RDBMS) pentru crearea de aplicaii clasice sau de tip client-server pentru baze de date pentru sistemele de operare Windows 9x i Windows NT4+ sau Windows 2000. Principalul motiv al succesului programului Access este faptul c aduce pe suprafaa de lucru a mare parte din facilitile sistemelor pentru baze de date relaionale client/server, denumite i baze de date SQL. Access 2000 (i alte versiuni ) i Visual Basic 6.0 au amndou capacitatea de a folosi controale ActiveX (cunoscute i sub vechea denumire de controale OLE) create de Microsoft, de ali programatori de module de extensie i de utilizatori. Access a fost proiectat n vederea crerii de aplicaii multiutilizator, n care fiierele bazelor de date sunt partajate n reea, iar Access folosete un sistem de securitate complex pentru a mpiedica persoanele neautorizate s citeasc sau s modifice bazele de date. Sistemul de securitate folosit n Access este modelat pe baza celui din Microsoft SQL Server. Access are o structur unic pentru baze de date care poate combina toate tabelele de date nrudite i indexurile, formularele, rapoartele i codurile VBA ale acestora ntr-un singur fiier .mdb. n prezent exist o tehnic general acceptat pentru proiectarea bazelor de date(GADBDP), aceea de a folosi fiiere .mdb separate care conin obiecte de date i aplicaie; fiierul .mdb cu obiectul de aplicaie are legturi la fiierul .mdb cu tabele de date. Access 2000 folosete i un format sigur pentru fiiere, .mde, astfel c putei s distribuii aplicaiile Access fr s permitei accesul la codul-surs VBA. Access poate importa date din i poate exporta date n cele mai cunoscute formate de fiier pentru baze de date i foi de calcul tabelar, precum i ca fiiere de text. De

asemenea, Access poate ataa fiiere cu tabele FoxPro i Paradox la bazele de date i permite lucrul cu aceste fiiere n formularul lor nativ. De asemenea, putei s folosii programul Access pe staii de lucru care au rolul de clieni pentru servere de reea cu fiiere i baze de date n cadrul sistemelor client/server pentru baze de date. Ca atare, Access ndeplinete toate cerinele pentru un sistem profesional de dezvoltare pentru lucrul cu baze de date client/server. Pentru a putea fi considerat un sistem complet pentru gestionarea bazelor de date relaionale(relational database management system-RDBMS), o aplicaie trebuie s poat efectua urmtoarele patru funcii de baz distincte, fiecare avnd un mod propriu de reprezentare n ochii utilizatorului: Organizarea datelor implic crearea i manevrarea tabelelor care conin date ntrun format tabelar convenabil(cu linii i coloane), denumit modul de afiare Datasheet n Access. Legarea tabelelor i extragerea datelor implic legarea mai multor tabele prin relaii ntre date, n vederea crerii unor tabele temporare, stocarea n memoria calculatorului sau n fiiere temporare pe disc, care conin datele alese de d-voastr. Access folosete interogri pentru legarea tabelelor i alegerea datelor care trebuie

stocate ntr-un tabel temporar numit obiect Recordset. Un obiect Recordset cuprinde datele care rezult din executarea interogrii; obiectele Recordset se numesc tabele virtuale pentru c ele sunt stocate n memoria calculatorului, nu n fiiere de tip baz de date. Extragerea datelor limiteaz utilizarea obiectelor Recordset la anumite grupuri de date care ndeplinesc criteriile stabilite de utilizator. Expresiile sunt folosite pentru calcularea valorilor cu datele respective(de exemplu, se poate calcula un total prin nmulirea preului unitar cu cantitatea) i pentru afiarea valorilor calculate ca i cnd ar fi un cmp n unul din tabele. Introducerea i editarea datelor nseamn crearea i implementarea unor formulare pentru afiarea, introducerea i editarea datelor ca alternativ la prezentarea tabelar. Formularele permit preluarea de la aplicaie a controlului asupra modului n care sunt afiate datele. Introducerea datelor n formulare este o operaie necesar n cazul

aplicaiilor pentru intranet i Internet. Posibilitatea de tiprire a formularelor, de exemplu a comenzilor i facturilor, este n mod sigur o caracteristic foarte util pentru utilizatori. Prezentarea datelor impune crearea de rapoarte n care s poat fi sintetizate informaiile din obiectele Recordset pe care le putei vedea, tipri i publica pe Internet sau ntr-un intranet. Capacitatea de realizare a unor rapoarte semnificative este scopul final al oricrei aplicaii pentru gestionarea bazeor de date.

Arhitectura Microsoft ACCESSO baz de date ACCESS poate fi definit ca o colecie de obiecte: tabele (table), cereri de interogare (query), formulare (form), rapoarte (report), pagini Web (pages), comenzi macro (macro) i module (module). Trebuie subliniat diferena major care exist ntre Microsoft ACCESS si alte sisteme de gestiune a bazelor de date. Astfel, n Visual FoxPro, prin baze de dale (database) se neleg doar acele fiiere n care sunt stocate datele. Tabela (Table) este un obiect definit de utilizator n care sunt stocate datele primare (expresia modelului relaional). Formularul (Form) este un obiect care permite introducerea datelor, afiarea acestora sau Interogarea (Query) este un obiect care permite vizualizarea informaiilor obinute prin Raportul (Report) este un obiect care permite formatarea i tiprirea informaiilor obinute Pagina Web de accesare a datelor (Pages) reprezint un obiect care include un fiier HTML Comanda Macro (Macro) reprezint un obiect care conine o definiie structurat a uneia controlul ntregii aplicaii. prelucrarea datelor din una sau mai multe tabele i/sau alte cereri de interogare. n urma consultrii bazei de date sub form de documente. i alte fiiere suport n vederea furnizrii accesului Ia date prin intermediul browser-elor Internet. sau mai multor aciuni pe care ACCESS le realizeaz ca rspuns la un anumit eveniment.

Modulul (Module) reprezint un obiect care conine proceduri definite de utilizator i scrise

n limbajul de programare Visual Basic.Tabel Tabel Tabel

Interogare

Formular

Raport

Pentru toate funciile de baz din Access exist cinci funcii auxiliare: Macrocomenzile sunt serii de aciuni care realizeaz automatizarea operaiilor repetitive executate n bazele de date. Pentru a crea o macrocomand n Access trebuie s alegei dintr-o list de aciuni posibile aciunile n ordinea n care vrei s fie efectuate de program. De exemplu, putei s folosii o macrocomand pentru a deschide un raport, pentru a tiprii un raport, apoi pentru a nchide raportul respectiv. n versiunile anterioare ale programului Access, macrocomenzile au constituit n special elemente pentru automatizarea operaiilor n baza de date. n Access 2000, macrocomenzile sunt folosite n special n special pentru realizarea compatibilitii cu bazele de date create n versiunile Access anterioare. Pentru bazele de date Access 2000, n vederea automatizrii aciunilor se vor folosi codurile Visual Basic for Applications(VBA). Modulele sunt funcii i proceduri scrise n limbajul de programare VBA. Funciile VBA sunt folosite pentru efectuarea calculelor mai complexe dect cele care

pot fi exprimate printr-o serie de simboluri matematice convenionale sau pentru efectuarea de calcule care impun luarea de decizii. Subprocedurile VBA sunt scrise pentru efectuarea de operaii care depesc posibilitile unor aciuni standard executate prin macrocomenzi. Pentru a executa subprocedurile VBA, trebuie s ataai subprocedura la anumite evenimente care au loc atunci cnd un formular sau un raport este obiectul avtiv. n Access 2000, putei s executai procedurile VBA i direct din modulul acestora. Securitatea este reprezentat de funcii incluse ca opiuni n meniuri i n subproceduri VBA. Cu ajutorul funciilor folosite ntr-un mediu multiutilizator putei s le permitei ale altor utilizatori s v foloseasc bazele de date. Putei s permitei accesul unor grupuri de utilizatori sau unor utilizatori individuali i putei s le limitai capacitatea de a vedea sau a modifica total sau parial tabelele din bazele de date. Funcia de tiprire v permite s tiprii practic orice vedei n ferestra programului Access. De pe bara cu instrumente putei s comandai tiprirea codurilor VBA, nu ns i a macrocomenzilor pe care le scriei. Funciile pentru publicare permit distribuirea informaiilor prin reele intranet de firm i n mediul public al Internet-ului, sub form de pagini de Web. Access 2000 folosete i pagini DAP(Data Access Pages), care v permit s creai aplicaii pentru afiarea i actualizarea datelor n pagini care folosesc limbajele DHTML(Dynamic HTML) i XML (eXtensible Markup Language). Deschiderea unei baze de date pune la dispoziia aplicaiei coninutul acesteia prin fereastra Database. Putei s deschidei numai o singur baz de date ntr-o edin obinuit de lucru n Access. Scrierea codului VBA v permite s lucrai cu tabele din mai multe baze de date deschise n Access folosind legarea(termenul folosit n Access 2000 pentru anexare) tabelelor din alte baze de date. Deschiderea unui tabel determin afiarea coninutului acestuia n modul de afiare Datasheet. Deschiderea unei interogri determin deschidere tabelelor implicate, fr ns a le afia. Access execut apoi interogarea n aceste tabele pentru a crea un obiect

Recordset tabelar. Modificrile operate asupra datelor din obiectul Recordset determin operarea modificrilor n datele din tabelele asociate cu interogarea executat, dac obiectul Recordset este actualizabil. Deschiderea unui formular sau a unui raport determin n mod automat deeschiderea tabelului sau a interogrii asociate cu acesta. Formularele i rapoartele sunt asociate, de regul, cu interogri, dar o interogare poate s fie asociat i cu un singur tabel. nchiderea unei interogri determin i nchiderea tabelelor asociate.

2. Crearea obiectelor de tip tabelTabelele constituie obiectele fundamentale ale unei baze de date ACCESS. ntr-un tabel se stocheaz att descrierea tabelei ct i nregistrrile de date. Gestiunea tabelelor (creare, modificare, vizualizare, tergere) a unei baze de date Access 2000 se poate realiza din seciunea Tables a ferestrei bazei de date (Database Window)

Crearea tabelelor.Un tabel se poate crea n mai multe moduri:

alegnd comanda Table din meniul Insert;

prin acionarea butonului de comand New din fereastra Databases (dup ce s-a selectat seciunea Tables);

Access va afia pe ecran caseta de dialog de mai jos , care propune mai multe variante de descriere a structurii unui tabel.

A. Design View este echivalent cu acionarea hyperlink-ului Create table in Design View.

Utilizatorul stabilete absolut toi parametrii necesari pentru descrierea structurii unui tabel: numele cmpurilor, tipurile de date ale acestora, reguli de validare, etc. Fereastra Access de

descriere a tabelei (figura de mai jos ) este format din dou zone: zona a n care se definesc cmpurile din structura tabelei, i zona b n Descrierea cmpurilor: Numele cmpului (Field Name); Numele unui cmp trebuie s respecte urmtoarele reguli: Poate s conin litere (majuscule sau minuscule, sau ambele tipuri), cifre i numeroase Poate s conin maximum 64 de caractere; Este interzis utilizarea caracterelor: punct (.), semnul exclamrii (!), parantezele drepte ([]). Numele cmpului nu poate s nceap cu un spaiu. caractere speciale; care sunt precizate proprietile acestora.

In formarea numelui cmpului se recomand: S nu se utilizeze caracterul spaiu; pentru mbuntirea lizibilitii numelui se poate nlocui spaiul cu caracterul de subliniere (_) sau se pot utiliza litere majuscule i minuscule n acelai nume; acesta poate s conin orice liter, cifr, spaii, etc.; caracterele interzise sunt: [],.!

Tipul de date al cmpului (Data Type); utilizatorul are la dispoziie nou tipuri de date de baz (tabelul de mai jos), pentru unele dintre ele fiind disponibile subtipuri de date. n funcie de necesiti; subtipurile se configureaz n zona de jos a ferestrei (seciunea General); Proprietile cmpului (Field Properties) Tipurile i subtipurile de date Access sunt prezentate n tabelul de mai jos: Text Este un tip de date alfanumeric, de lungime maxim 255. Implicit, Access propune dimensiunea (proprietatea Field Size) 50 pentru un cmp de tip Text. Un cmp de acest tip Memo poate s conin practic orice caracter. Este un tip de date alfanumeric (poate conine orice caracter), n lungime maxima de 65535 caractere. Utilizatorul nu poate configura o dimensiune mai mic dect aceasta.

Number (tip de date numeric)

Byte

Tip de date ntreg a crui plaj de valori admis este ntre O i 255. Spaiul ocupat de un asemenea cmp este de 1 byte. Tip de date ntreg cu plaja admis

Integer Long Integer

de

valori

ntre -32768 i +32768. Ocup 2 bytes. -

Tip de date ntreg de dimensiuni foarte mari cu plaja de valori admis 2147483648 si +2147483648 . Ocup 4 bytes. Tip de date cu plaja de valori admis ntre -3,402823x1038 pn la 1,401298X10-45 pentru numere negative, iar pentru numere pozitive ntre 1,401298x10-45 pn la 3,402823x1038. Ocup 4 bytes i are precizie de 7 zecimale. Tip de date de dimensiuni foarte mari cu plaja de valori admis ntre -1,79769313486231x10308 pn la -4,94065645841247x10-324 pentru numere negative, iar pentru numere pozitive ntre 4,94065645841247x10-324 pana la 1,79769313486231 x10308. Ocup 8 bytes i are precizie de 15 zecimale. Tip de date GUID (Global unique identifier). Ocup 16 bytes. Sunt utile pentru cmpurile care sunt (sau fac parte dintr-o) cheie extern ale caror chei primare sunt de tipul AutoNumber, ReplicationID. Tip de date cu plaja de

Single

Double

Replication lD

Decimal

valori

admis

ntre -1028 1 i +1028-1. Ocup 12 bytes i precizie Date/Time (proprietatea Precision) maxim de 28. Memoreaz date calendaristice, inclusiv ora n formate predefinite. Datele calendaristice admise sunt ntre anul 100 i 9999. Formatele de afiare se stabilesc n Curency proprietatea Format. Ocup 8 bytes. Tip de date numeric, care opereaz cu maxim patru zecimale i maxim 15 pozitii in stinga punctului zecimal. Ocupa 8 bytes.

AutoNumber

LongInteger

Tip de date care i atribuie automat valori, la crearea unei noi nregistrri. Valorile atribuite pot fi secveniale (proprietatea New Values=Increment) sau aleatoare (proprietatea New Values=Random). Cmpurile de tip AutoNumber, nu pot fi actualizate. Ocupa 4 bytes.

ReplictionID

Tip de date care i atribuie automat valori de tip GUID. Exemplu de valoare GUID: {EODC2C27-EDE8412A-B1C4-AF69021A1365}. Ocupa 16 bytes.

Yes/No OLE Object

Tip de date logic, care poate lua doar dou valori: adevrat (valoarea -1)sau fals (valoarea 0). Ocupa 1 bit. Tip de date care poate s includ imagini, documente WORD, foi de calcul EXCEL, etc. Dimensiunea maxim este de 1 GB, cu condiia s existe acest spaiu pe disk. Nu poate fi cheie i nici nu poate fi index. ir de caractere, care poate memora o adres WEB, ce va fi utilizat sub form de hyperiink. Este format din trei pri: textul de afiat, adresa i subadresa. Dimensiunea maxim a fiecrei pri este de 2048 caractere. Cmpuri ale cror valori vor fi completate automat prin selecia dintr-o list simpl de valori (List Box) sau dintr-o list derulant de valori (Combo Box)

Hyperlynk

Lookup Wizard

Comentarii (Description), este o proprietate opional, unde utilizatorul poate introduce sub form de iruri de caractere diverse informaii cu privire la un cmp. In zona b a ferestrei (General i Lookup) se pot stabili valori pentru dou categorii de sproprieti: => proprieti pe care le au toate cmpurile; proprieti specifice anumitor cmpuri, n funcie de tipul de date. Proprieti din categoria General:

Field Size - stabilete dimensiunea maxim admis pentru tipurile de date Number, AutoNumber, Text. Pentru primele dou, valorile maxime admise sunt cele precizate n tabelul 4.1, iar pentru tipul Text o valoare ntre O i 255. Decimal Places - stabilete numrul de zecimale utilizat pentru afiarea unui numr. Valorile posibile sunt Auto (numrul este afiat cu attea zecimale cu cte a fost calculat; nu sunt afiate mai mult de 15 zecimale) sau un numr ntre O i 75. Numrul de zecimale afiat poate fi influenat i din proprietatea Format. Format - stabilete formatul de afiare al unui cmp. Aceste formate se pot defini de utilizator cu ajutorul unor secvene speciale de caractere sau pentru unele tipuri de date exist deja predefinite formate uzuale. Pe lng aceste formate predefinite se mai pot utiliza anumite combinaii speciale de caractere. Pentru cmpurile numerice formatul de afiare se mparte n patru zone separate prin caracterul ;" :

prima zon se refer la modul de afiare al numerelor pozitive; a doua zon se refer la modul de afiare al numerelor negative; a treia zon se refer la modul de afiare al numrului zero; a patra zon se refer la modul de afiare al valorii Nuli; Caracterele ce se pot utiliza ntr-un format de afiare al unui cmp numeric:

.- separatorul zecimal este punctul; , - separatorul miilor este virgula; O - sunt afiate cifre sau zero; # - sunt afiate cifre sau spaiu; $ - este afiat i caracterul $; % - numrul este nmulit cu 100 i alturi este afiat caracterul procent (%); E+, E-, e+, e- stabilete formate de afiare n format tiinific. Date/Time.

Formatele predefinite de afiare pentru cmpurile de tip Caractere care se pot utiliza ntr-un cmp de tip Date/Time: : - separator pentru timp; / - separator pentru data calendaristic; d - ziua este afiat sub form de valori de la l la 31;

dd - ziua este afiat sub form de valori de la 01 la 31;

ddd - sunt afiate numai primele trei caractere din numele unei zile; dddd - este afiat numele complet al unei zile;

w - ziua este afiat ca valoare din sptmn, de la l la 7; ww - este afiat numrul sptmnii n an, de la l la 53; m - este afiat numrul lunii din an, de la l la 12; mm - este afiat numrul lunii din an de la 01 la 12; mmm - sunt afiate numai primele trei caractere din numele unei luni; mmmm - este afiat numele complet al lunii; y - numrul zilei din an; yy - sunt afiate ultimele dou caractere din an de la 01 la 99; yyy anul este afiat complet de la 100 la 9999; q - data este afiat ca numrul trimestrului din an, de la l la 4; h - ora este afiat prin numere de la O la 23; hh - ora este afiat prin numere de la 00 la 23; n - minutele sunt afiate prin numere de la O la 59; nn - minutele sunt afiate prin numere de la 00 la 59; s - secundele sunt afiate prin numere de la O la 59; ss - secundele sunt afiate prin numere de la 00 la 59; AM/PM sau am/pm sau A/P sau a/p - este afiat AM, am, A sau a pentru primele 12 ore ale zilei i PM, pm, P sau p pentru ultimele 12 ore din zi; Exemple: "Data: "dd/mm/yy" sptmna: "ww afieaz Data: 01/06/01 sptmna: 22 dddd/mmmm/yyyy afieaz vineri/iunie/2001 ORA:"hh:nn:ssAM/PM afieaz ORA:12:00:OOAM Pe lng aceste formate predefinite, utilizatorul i poate crea propriile formate pentru cmpurile logice ntr-o structur format din trei zone separate prin caracterul ;" :-

In prima zon, se poate stabili un text care nu are influen asupra coninutului cmpului; A doua zon este utilizat pentru a stabili un text afiat n cazul n care valoarea memorat este adevrat (True); A treia zon este utilizat pentru textul afiat n cazul n care valoarea memorat este false.

-

In cazul cmpurilor de tip logic, efectul formatelor definite de utilizator se poate observa numai dac se utilizeaz controale de tip caset de text (Text Box). n cazul cmpurilor de tip Text sau Memo, nu exist formate predefinite de afiare, ns prin intermediul unor caractere, utilizatorul i poate stabili propriile formate. Aceste formate se stabilesc sub forma a dou zone: -

Prima zon se utilizeaz pentru a stabili formatul propriu-zis de afiare al coninutului cmpului; A doua zon, pentru stabilirea formatului de afiare n cazul valorilor vide sau Nuli.

Caractere ce se pot utiliza pentru stabilirea formatelor de afiare pentru cmpurile de tip Text sau Memo: @ - este obligatorie introducerea unui caracter sau spaiu; & - nu este obligatorie introducerea unui caracter; > - transform toate caracterele n majuscule, indiferent de modul de tastare; < - transform toate caracterele n minuscule, indiferent de modul de tastare; Exemple: - caracterele introduse sunt convertite n majuscule; ., - separatorul pentru zecimale, pentru mii; : ; - / separatori pentru date calendaristice i pentru timp; password - afieaz caracterul asterisc (*) n momentul introducerii de date; \ - afieaz un caracter n ablon fr a determina memorarea acestuia n coninutul cmpului. Exemplu: \O\R\A\:00:00:00 va afia i cuvntul ORA: fr a fi memorat. De remarcat c Access transform automat secvena \O\R\A\: n "ORA:". Exemplu de alte abloane: "(040)-"00\-00000## este un posibil ablon pentru introducerea unui numr de telefon din Romnia; la introducere va afia: (040)-_-____. Prin utilizarea caracterului O, nu se permit prefixe dect din dou cifre, i numere de telefon de minim 5 cifre, iar prin utilizarea caracterului # sunt permise numere din 6 i 7 cifre. >AAAA100 and =Date() - data introdus trebuie s fie mai mare sau egal cu data sistemului. Year([data factura])=Year(Date()) - anul din cmpul data factura trebuie s fie n

momentul introducerii, acelai cu cel din data sistemului. Validation Text - definete un mesaj de atenionare care va fi afiat n momentul n care regula de validare definit n proprietatea Validation Rule este nclcat. Required - poate lua valoarea Yes sau No, corespunztoare valorilor logice adevrat (True) sau fals (False) i stabilete dac valoarea unui cmp este obligatoriu (Yes) de introdus sau nu (No). Pentru cmpurile de tip Text, Memo, Hyperlink este bine s se utilizeze aceast proprietate n strns legtur cu proprietatea Allow Zero Length. Allow Zero Length - stabilete dac este permis introducerea unui ir de lungime zero (Yes) sau nu (No) ntr-un cmp de tip Text, Memo sau Hyperlink. Variantele de memorare n condiiile utilizrii proprietilor Required i Allow Zero Length sunt prezentate n tabelul 4.2. Tabel 4.2. Tabel 4.2. Valoarea din proprietatea Allow zero length Valoarea din proprietatea Required Enter No No Bara spatiu Sir de lungime 0 Null Null Nu este permis Actiunea utilizatorului Valoarea memorata

Valoarea din proprietatea Alow zero length No

Valoarea din proprietatea Required Yes

Actiuneanea utilizatorului Enter Bara de spaiu ir de lungime 0 Enter Bara de spatiu ir de lungime 0 Enter Bara de spaiu ir de lungime 0 Enter Bara de spaiu ir de lungime 0

Valoarea Memorata

Null Null Nu este permis Null Null ir de lungime 0 Nu este permis Nu este permis Nu este permis Nu este permis ir de lungime 0 ir de lungime 0

Yes No Yes

No Yes No

Indexed - stabilete un cmp drept index. Valori posibile: No - neindexat Yes (Duplicates OK) - index; sunt permise valori duplicate pe cmpul index; Yes (No Duplicates) - index; nu sunt permise valori duplicate pe acest cmp. Definirea cheii primare i a indecilor Orice tabel trebuie s posede o cheie primar (Primary Key), adic un cmp sau un grup de cmpuri care identific n mod unic fiecare nregistrare. Dac utilizatorul nu stabilete o cheie primar, Access stabilete una n mod implicit crend un cmp de tip AutoNumber care va conine un numr unic pentru fiecare nregistrare. Dei Access creeaz n mod implicit o cheie primar, urmtoarele raiuni recomand utilizatorului s defineasc o cheie primar: de entitate. cheia primar este un index. indecii realizeaz o clasificare a datelor dup unul sau mai multe cmpuri ceea ce la fiecare adugare a unei noi nregistrri, Access nu autorizeaz nregistrri duble Microsoft Access afieaz datele n ordinea cheii primare.

are drept consecin creterea vitezei de realizare a interogrilor. pentru cmpul cheie primar. Crearea unei chei primare unice este denumit n lumea bazelor de date asigurarea integritii

n afar de indeci pe un singur cmp se pot defini i indeci multipli, care funcioneaz pe mai multe cmpuri simultan. Acetia se pot defini/modifica numai n fereastra Indexes. n aceeai fereastr se pot gestiona i indecii pe un singur cmp. Fereastra cu indecii unei tabele (Indexes) se activeaz din meniul View, opiunea Indexes. Pentru definirea unui index (sau pentru o cheie primar) format din mai multe cmpuri, se scrie numele indexului in coloana Index Name, iar n coloana Field Name se aleg cmpurile care formeaz indexul sau cheia primar. Coloana Sort Order indic modul de ordonare al datelor n index, n cazul indecilor ce includ mai multe cmpuri, valoarea proprietii Indexed, pentru fiecare cmp n parte este No. Proprietile din fereastra Indexes: Primary - valoarea Yes indic faptul c indexul este cheie primar; Unique - valoarea Yes indic faptul c indexul va avea valori unice, nefiind permise Ignore Nulls - valoarea Yes indic faptul c sunt permise valorile Nuli ntr-un index; pentru

duplicatele; pentru o cheie primar, aceast proprietate are obligatoriu valoarea Yes. o cheie primar, aceast proprietate are obligatoriu valoarea No. Exemplu: ntr-un tabel care va memora, facturi, ce are drept cheie

primar un cmp generic ID de tip AutoNumber, se stabilete un index numit Factura, care este format din cmpurile Serie Factura i Numr Factura. Proprietatea Unique va avea valoarea Yes

pentru acesta deoarece seria mpreun cu numrul unei facturi sunt unice la nivel naional. Un alt index se definete pe cmpul Data Factura, care nu trebuie sa aib valori unice. Pe lng modalitatea descris anterior, cheia primar a unui tabel se mai poate defini astfel: Dac este vorba de o cheie format dintr-un singur cmp, se poziioneaz din bara de instrumente Table Design;

cursorul n cmpul respectiv i se acioneaz butonul:

Pentru chei primare formate din mai multe cmpuri, se selecteaz cmpurile din bordura

ferestrei de proiectare i se acioneaz butonul menionat anterior. NOT: O cheie extern nu se definete explicit nicieri n Access sub noiunea de cheie extern, ea fiind stabilit prin definirea relaiilor dintre tabele. Pentru creterea performanelor se recomand definirea de indeci pentru fiecare cheie extern.

B. Datasheet View este echivalent cu acionarea hyperlink-ului Create table by enteringdata. n aceast variant, Access propune o fereastr de introducere date sub forma unui tabel cu nume de cmpuri generice Fieldl, Field2....FieldlO. Inserarea de noi cmpuri pe lng cele zece propuse implicit, se realizeaz din meniul Insert-Column. Schimbarea numelor implicite ale coloanelor se realizeaz din meniul Format-Rename Column funcie de datele introduse n celule, la salvarea tabelului, Access stabilete ce tip de

date va aloca fiecrui cmp. Dac, de exemplu, coloana unui cmp conine celule cu numere i o celul cu un ir de caractere, Access, va alege pentru acel cmp tipul de dale Text. Dac o coloan conine numai numere, Access va alege un tip de date numeric, care s satisfac toate valorile existente n celulele cmpului. B. Table Wizard este echivalent cu acionarea hyperlink-ului Create table by using wizard. Alegerea acestei variante are ca efect activarea unei ferestre n care se propun diverse modele de tabele cu o mare varietate de cmpuri, toate denumirile fiind n limba englez. Pentru un utilizator care dorete crearea unor tabele n limba romn, dei acest instrument wizard prin

definiie se dorete a fi de mare ajutor, alegerea sa este total neinspirat. Probabil dac variantele Microsoft Office localizate vor conine i Access n limba romn, atunci acest nstrument se va dovedi de un real folos pentru utilizatorii romni. C. Import Table, permite importul tabelei dintr-o alt aplicaie Access, Oracle, Excel, etc. D. Link table, permite includere prin ataare (legare) dintr-o alt baz de date.

Proprieti ale unui tabel Pentru a vizualiza fereastra cu proprieti a unui tabel se activeaz opiunea. Properties din meniul View, sau se acioneaz butonul Design. Validation Rule - are aceeai semnificaie ca proprietatea cu acelai nume ataat cmpurilor, numai c opereaz la nivel de tabel, n momentul n care se ncearc salvarea unei nregistrri (n momentul n care se ncearc introducerea unei nregistrri noi, la trecerea de la o nregistrare la alta, sau la salvarea explicit a acesteia), dac nu se verific aceast regul de validare, nu se va putea salva nregistrarea. Fa de aceeai proprietate la nivel de cmp, la nivel de tabel, se pot referi mai multe cmpuri ale tabelului n expresia care definete proprietatea. Exemplu de regul de validare pentru un tabel care are n componen ntre altele urmtoarele cmpuri: SimbolCont, Soldinitialdebitor, SoldinitialCreditor. Regula impune ca un cont s nu aib simultan soldul iniial debitor sau creditor n acelai timp. (Not IsNull([soldinitialdebitor]) Imp [soldinitialcreditor]=0) Or (Not lsNull([soldinitialcreditor]) Imp [soldinitialdebitor]=0) Validation Text - afieaz un mesaj n momentul n care regula de validare definit la nivel de tabel, este testat i nu se verific. Filter - stabilete un criteriu n funcie de care vor fi selectate nregistrrile n fereastra de introducere date. Pentru a activa/dezactiva filtrul trebuie acionat butonul Apply Filter sau din meniul Records, opiunea Apply Filter/Sort respectiv Remove Filter/Sort. Exemplu: [Data factura]>#l/l/2001# va afia toate facturile de dup data 1/1/2001. din bara de instrumente Table

Order By - stabilete ordinea de afiare a nregistrrilor, n momentul introducerii datelor. Numele cmpurilor trebuie precizate ntre []. Exemplu: [Serie factura],[Numr factura].

Salvarea tabelelorTabelele Access se pot salva n mai multe moduri: din meniul File se alege opiunea Save; se execut clic pe butonul Save de pe bara cu instrumente de lucru; se execut evenimentul clic pe butonul de nchidere a ferestrei de descriere a tabelei din meniul de control se alege opiunea Glose,

Indiferent de modul de salvare, Access afieaz caseta de dialog Save As care solicit furnizarea unui nume pentru tabel. Utilizatorul introduce numele tabelei n caseta de text Table Name i apoi execut clic pe butonul OK. Numele tabelelor pot avea pn la 64 de caractere i trebuie s respecte conveniile Access descrise pentru formarea numelor de cmpuri.

1. Definirea relaiilor dintre tabele in Access.Pentru a avea acces simultan la datele din mai multe tabele ale aceleiai baze de date este necesar s se defineasc relaiile standard dintre aceste tabele. Relaiile ntre tabele se definesc pe baza valorilor unui cmp dintr-o tabel utilizat drept cheie primar i valorilor aceluiai cmp dintr-o alt tabel, unde este utilizat drept cheie extern. Access impune existena aceluiai tip de date pentru cmpurile care particip la o relaie, n cazul cmpului de tip Number proprietatea Field Size a celor dou cmpuri trebuie s fie identic. Relaia dintre cmpurile de tip Text trebuie, n principiu, s foloseasc cmpuri de aceeai lungime. Se recomand ca stabilirea relaiilor ntre tabele s se fac nainte de nregistrarea datelor. n S.G.B.D. Access exist urmtoarele posibiliti de realizare a relaiilor dintre tabele: Relaia 1-1 (one-to-one sau unu la unu) este cea mai simpl relaie ntre dou tabele, n aceast relaie, unei valori a cmpului cheie principal dintr-o tabel i corespunde o singur valoare din cmpul folosit drept cheie extern din cealalt tabel. Altfel spus, unei nregistrri din tabela aflat n partea stng a relaiei i corespunde o singur nregistrare din tabela aflat n partea dreapt a relaiei. Tabelele aflate ntr-o relaie one-to-one se pot combina ntr-o singur tabel, n care apar toate cmpurile celor dou tabele. Relaia 1-n (one-to-many sau unul la mai muli) constituie tipul cel mai rspndit de relaii. Conform acestei relaii unei nregistrri din tabela aflat n partea stng a relaiei i

corespund dou sau mai multe nregistrri din tabela aflat n partea dreapt a relaiei. Asocierea se bazeaz pe un cmp cheie principal unic ntr-o tabel i un cmp cheie extern din cealalt tabel care admite valori duplicate. Relaia n-1 (many-to-one sau mai muli la unul) este opus relaiei 1-n. Pentru a crea relaia many-to-one este suficient s se inverseze relaia one-to-many. De aceea, se spune c relaia many-to-one este reflexiv, adic relaia many-to-om este reflexia relaiei corespondente one-to-many. Dac se selecteaz o nregistrare din tabela din partea many a relaiei se poate afla nregistrarea care corespunde cheii sale externe din tabela din partea one a relaiei. Relaiile n-1 nu sunt bazate pe cmpuri cheie primar din nici una dintre cele dou tabele. Relaia m-n (many-to-many sau muli la mai muli) nu poate fi exprimat ca o simpl relaie ntre dou tabele. Relaia many-to-many se poate exprima prin intermediul unei a treia tabele care are relaii one-to-many i many-to-one cu cele dou tabele. Pe lng stabilirea relaiilor ntre tabelele unei baze de date, Access permite i specificarea unor reguli care foreaz integritatea datelor. Aceste reguli se numesc restricii de integritate referenial; ele permit s se conserve intacte relaiile ntre tabele ntr-un sistem de gestiune a unei baze de date relaionale. Integritatea referenial funcioneaz dup cmpul cheie. Acest sistem verific n mod continuu cmpul cheie, primar i strin, la fiecare operaie de adugare, tergere sau modificare a unei nregistrri. Dac o schimbare a unei chei afecteaz legtura ntre tabele, sistemul avertizeaz c se violeaz regulile de integritate referenial. Atunci cnd dou tabele sunt legate printr-o relaie, o tabel se numete printe i cealalt se numete copil. Acest sistem este cunoscut sub numele de relaie printe-copil. Integritatea referenial garanteaz c nu vor exista nregistrri orfane, adic,nregistrare copil fr o nregistrare printe. Capacitatea de a asigura n mod automat integritatea referenial este o caracteristic important a programului Access. Definirea legturilor dintre tabele se realizeaz din meniul Tools-Relationships, acesta activnd un panou de editare vizual a acestora.

Pentru a putea defini o legtur ntre dou tabele, trebuie s existe compatibilitate ntre tipul de date al cheu primare i cel al cheii externe corespunztoare. Dup plasarea tuturor tabelelor n panoul de editare, definirea propriu-zis a unei relaii se realizeaz prin drag-anddrop (selectare i glisare) dinspre cheia primar a unei tabele spre o cheia extern corespunztoare sau invers. Dup realizarea acestei operaii finalizarea definirii unei legturi se realizeaz n fereastra din figura urmtoare unde este prezentat definirea unei relaii ntre tabelul Operaii (cheie primarCodOperatie) i tabelul OperatiiEfectuate (cheie extern CodOperatie).

Crearea legaturilor

Dac o cheie este format din mai multe cmpuri, acestea se editeaz corespunztor n panoul Edil Relationship (Figura de mai sus ). Opiunile din fereastra Edit Relationships au urmtoarea semnificaie: Enforce Referenial Integrity - definete o restricie de integritate referenial. Nu se permite actualizarea valorii unei chei externe, dac aceast valoare nu exist deja n tabelul unde aceasta este cheie primar. Cascade Update Related Fields - actualizarea valorii unei chei primare dintr-un tabel se Cascade Delete Related Fields - tergerea valorii unei chei primare, are ca efect i tergerea In caseta Relationship Type sunt prezentate tipurile de legturi care pot exista ntre dou tabele: One to One- 1-1; One to Many - l -n Dac n aceast caset este afiat mesajul Indeterminate, nseamn c tipul de relaie nu poate fi definit, cea mai probabil eroare fiind incompatibilitatea ntre tipul de date al cheii primare i cel al cheii externe, sau inexistena unei chei primare n relaia respectiv. Butonul de comand Join Type permite i definirea unor tipuri de relaii particulare ntre tabele, aa cum se observ din figura 4.10. propag i n nregistrrile din tabelele unde aceasta este cheie extern. nregistrrilor din tabelele unde aceasta este cheie extern.

Figura 4. 10 Variantele 2 i 3 permit utilizarea implicit n interogri a join-urilor externe de tip LEFT i RIGHT, care presupun ntr-o interogare luarea n considerare a tuturor nregistrrilor dintr-un tabel, indiferent dac au sau nu nregistrri corespondente dup cmpul (cmpurile) de legtur n celalalt tabel, n exemplul de legtur prezentat n Figura 4. 10, este posibil o interogare ntre cele dou tabele, n care vor fi luate n considerare toate nregistrrile din tabelul Operaii, indiferent dac au sau nu corespondent n tabelul OperatiiEfectuate. Exemple:

Promovabilitatea studentilor.

Policlinica