LP1 Crearea Unei Baze

5
1. LABORATOR 1 CREAREA UNEI BAZE DE DATE FOLOSIND MS ACCESS (XP) 1.1. Introducere In Access XP, o baza de date este organizată sub forma unui fişier cu extensia .mdb şi poate conţine 7(şapte) feluri de obiecte astfel: Tables tabele – va conţine tabelele bazei de date (baza de date fizică) precum şi formatele generale cu care se afişează datele din tabel şi organizarea datelor în tabele (modelul conceptual) Queries interogările sau vederile din baza de date (reprezintă modelul extern al bazei de date) Forms formulare – folosite pentru introducerea datelor într- un mod interactiv şi corect Reports rapoarte – folosite pentru a tipări sau vizualiza tabele în formate Clare, sintetizate. Pages pagini – folosite pentru a crea pagini web pe care gestionează datele Macros macrouri – una dintre metodele prin care se pot scrie programe care să gestioneze datele o metodă diferite de programarea procedurală Modules module – a doua metodă de programare care gestionează datele realizată prin proceduri şi funcţii scrise în Access Basic (o metodă de programare procedurală) Aplicaţiile Access pot gestiona una sau mai multe baze de date iar metoda de programare este bazată pe evenimente (eng. event-driven) adică procedurile sau funcţiile create pot fi activate şi ca urmare a unui eveniment (clic de mouse apăsare de tastă, ieşire din zona etc.) 1.2. Crearea unei noi baze de date Pas 1. Se lansează aplicaţia MS Access prin . Spre deosebire de alte aplicaţii din suita MS Office nu se prezintă automat o bază de date nouă ci trebuie ca utilizatorul să creeze baza de date. Pentru a crea o bază de date nouă se selectează din task pain-ul New File din partea dreaptă a ferestrei aplicaţiei. Sau eventual daca se doreşte folosirea unei baze de date deja existente se selectează una dintre opţiunile Open file din task pain-ul New File. Pas 2. Se indică locul în care se va memora noua bază de date precum (implicit My Documents) şi numele (implicit db1.mdb) pe care îl va avea noua bază de date. Se recomandă ca să înlocuiţi numele implicit cu unul mai sugestiv. Obs. Se recomanda ca sa nu folosiţi spaţii în numele bazei de date deoarece prin aceasta s-ar putea să aveţi probleme dacă doriţi să exportaţi datele. Pas 3. Apăsând butonul Open se va afişa o fereastră care prezintă în partea stângă o listă cu cele 7 tipuri de obiecte Access cu ajutorul căreia în continuare vom crea tabelele din baza de date. Exerciţiu: creaţi o nouă bază de date cu numele Notare în directorul My Documents. Această bază de date o vom folosi în continuare. 1.3. Crearea unui tabel Crearea unui tabel se realizează în următorul mod. Pas 1. Selecţia obiectului Tables În urma acestei selecţii au apărut 3 opţiuni pe care le vom discuta imediat:

Transcript of LP1 Crearea Unei Baze

1. LABORATOR 1 CREAREA UNEI BAZE DE DATE FOLOSIND MS ACCESS (XP)

1.1. Introducere In Access XP, o baza de date este organizată sub forma unui fişier cu extensia .mdb şi poate conţine 7(şapte) feluri de obiecte astfel:

• Tables – tabele – va conţine tabelele bazei de date (baza de

date fizică) precum şi formatele generale cu care se afişează datele din tabel şi organizarea datelor în tabele (modelul conceptual)

• Queries – interogările sau vederile din baza de date (reprezintă modelul extern al bazei de date)

• Forms – formulare – folosite pentru introducerea datelor într-un mod interactiv şi corect

• Reports – rapoarte – folosite pentru a tipări sau vizualiza tabele în formate Clare, sintetizate.

• Pages – pagini – folosite pentru a crea pagini web pe care gestionează datele

• Macros – macrouri – una dintre metodele prin care se pot scrie programe care să gestioneze datele o metodă diferite de programarea procedurală

• Modules – module – a doua metodă de programare care gestionează datele realizată prin proceduri şi funcţii scrise în Access Basic (o metodă de programare procedurală)

Aplicaţiile Access pot gestiona una sau mai multe baze de date iar metoda de programare este bazată pe evenimente (eng. event-driven) adică procedurile sau funcţiile create pot fi activate şi ca urmare a unui eveniment (clic de mouse apăsare de tastă, ieşire din zona etc.)

1.2. Crearea unei noi baze de date

Pas 1. Se lansează aplicaţia MS Access prin

. Spre deosebire de alte aplicaţii din suita MS Office nu se prezintă automat o bază de date nouă ci trebuie ca utilizatorul să creeze baza de date. Pentru a crea o bază de date nouă se selectează

din task pain-ul New File din partea dreaptă a ferestrei aplicaţiei.

Sau eventual daca se doreşte folosirea unei baze de date deja existente se selectează una dintre opţiunile Open file din task pain-ul New File. Pas 2. Se indică locul în care se va memora noua bază de date precum (implicit My Documents) şi numele (implicit db1.mdb) pe care îl va avea noua bază de date. Se recomandă ca să înlocuiţi numele implicit cu unul mai sugestiv.

Obs. Se recomanda ca sa nu folosiţi spaţii în numele bazei de date deoarece prin aceasta s-ar putea să aveţi probleme dacă doriţi să exportaţi datele. Pas 3. Apăsând butonul Open se va afişa o fereastră care prezintă în partea stângă o listă cu cele 7 tipuri de obiecte Access cu ajutorul căreia în continuare vom crea tabelele din baza de date. Exerciţiu: creaţi o nouă bază de date cu numele Notare în directorul My Documents. Această bază de date o vom folosi în continuare.

1.3. Crearea unui tabel Crearea unui tabel se realizează în următorul mod.

Pas 1. Selecţia obiectului Tables În urma acestei selecţii au apărut 3 opţiuni pe care le vom discuta imediat:

Le voi explica pe rând:

• este metoda cel mai des folosită pentru a crea tabele ale bazei de date şi totodată metoda prin care utilizatorul are un control deplin asupra tabelului care se creează. Această metodă o voi prezenta pe larg într-un subcapitol separat

• foloseşte un vrăjitor pentru a crea un tabel, alegând tabelul dint-o listă de tabele deja existente, Problema este că acele tabele preformatate sunt organizate să conţină date specifice standardelor americane şi nu prea se potrivesc cu cele româneşti. Oricum este o metodă bună din punct de vedere didactic dar nu o vom folosi prea des.

• este o metodă nerecomandată de a introduce date în tabel. De fapt se creează un tabel care are toate câmpurile (coloanele) de tip text(50), iar introducerea datelor se realizează la fel ca în Excel cu deosebirea că nu se face interpretarea ca tip a datelor.

1.4. Crearea unui tabel folosind

butonul Această opţiune permite crearea manuală a unui tabel. Selectarea aceste opţiuni se realizează prin dublu clic (sau clic + Enter) iar efectul este afişarea ferestrei:

Această fereastră se foloseşte atât pentru crearea unei structuri de tabel cât şi pentru modificarea structurii unui tabel deja existent. Structural fereastra este împărţită în două, partea superioară va conţine informaţii generale despre câmpurile din tabel (nume, tip de data şi eventuale observaţii) iar partea inferioară va conţine informaţii suplimentare organizate sub forma unor constrângeri (tag-ul General) sau stil de afişare (tag-ul Lookup) toate acestea pentru câmpul curent selectat (adică cel în faţa căruia este simbolul ►). • Numele câmpului (eng. Field name) – poate avea o lungime

de pana la 64 caractere, inclusiv spatiile. La fel, nu se recomand folosirea spaţiilor pentru a denumi câmpuri deoarece exportând datele în alte SGBD-uri mai puţin permisive pot apărea erori.

• Tipul datei (eng Data Type) – este un combo box care prezintă o listă posibilă de câmpuri astfel: o Text – reprezintă un câmp ce va memora caractere

(maxim 255) o Memo - reprezintă un câmp text ceva putea conţine

maximum 65535 caractere

o Number – reprezintă un câmp numeric si se pot stoca numai cifre. Pentru detalii vă rog să analizaţi tabelul de mai jos.

o Date/Time – reprezintă un câmp ce va memora date calendaristice şi/sau momente ale zilei.

o Currency – reprezintă un câmp ce va stoca valori numerice de tip "moneda" folosite pentru calcule financiare. Precizia calculelor este de 15 cifre zecimale in partea stângă a virgulei (partea întreagă) şi de 4 cifre zecimale in partea dreapta a virgulei (zecimale).

o AutoNumber – reprezintă un câmp ce va fi folosit pentru stocarea unor numere unice, generate automat de către SGBD deci nu trebuie introdus de către utilizator. Scopul acestui tip de câmp este acela de a crea chei primare automate. Nu este indicată modificarea valorii datelor deja introduse.

o Yes/No – reprezintă un câmp logic care memorează valori de tip adevărat sau fals, da sau nu, pornit oprit etc.

o OLE Object – reprezintă un câmp care poate stoca obiecte OLE (tip Excel, imagini, aplicaţii) de dimensiuni foarte mari (până la 1GB). Aceste valori se folosesc pentru a prelucra date speciale în formate speciale ca de exemplu poze, sunete alte documente etc.

o Hyperlink – reprezintă un câmp care va stoca o informaţie de tip text care va fi interpretată ca o legătură (eng. link) către resurse de pe Internet. Pot fi introduse date de tip text si cifre.

o Lookup wizard – nu este de fapt un tip de câmp ci un mod de a crea un mod special de a vedea datele din câmpul curent. Practic se lansează un vrăjitor care vă va ajuta sa creaţi un câmp care sa culeagă datele dintr-un alt tabel sau dintr-o listă de valori pe care le veţi introduce voi. Efectul este acela că se va completa cu informaţii tag-ul Lookup.

• Descriere câmpului (eng. Description) este opţionala. Aici puteţi descrie pe scurt ceea ce face sau memorează câmpul respectiv. Acest lucru vă poate fi de folos în viitor sau pentru alt utilizator care doreşte modificarea câmpului respectiv.

În continuare voi prezenta tabelul care descrie tag-ul General. Opţiuni ale tag-ului General (pentru informaţii suplimentare consultaţi help-ul aplicaţiei Access)

Dimensiune Câmp (eng. Field Size) – indică mărimea câmpului respectiv astfel: • la Text: [0, 255] caractere • la Number şi AutoNumber:

o Byte: întregi în intervalul [0,255] o Decimal: numere intre [-1028 -1,1028 -1] o Integer: întregi în intervalul [-32.768, 32.768] o Long Integer: întregi în intervalul [-2.147.483.648,

2.147.483.648] o Single: numere raţionane în intervalul [-

3,402823*1038, -1,401298*10-45] pentru valori negative respectiv [1,401298*10-45, 3,402823*1038] pentru valori pozitive cu 7 cifre precizie zecimală

o Double: numere raţionane în intervalul [1.79769313486231*10308, -4.94065645841247*10-

324] pentru valori negative respectiv [1.79769313486231-10308, 4.94065645841247*10-

324] pentru valori pozitive cu 15 cifre precizie zecimală

o Replication ID: identificator global unic (vezi help-ul de la Access XP pentru mai multe informaţii).

Format – are rolul de a indica formatul implicit în care vor fi afişate datele pe ecran sau tipărite la imprimanta. Aceste

format se vor aplica fie pentru întreaga informaţie introdusă fie pentru fiecare simbol în parte. Există formate aplicabile oricărui tip de date astfel: • spaţiu - afişează spatiile tip caractere text. • ”ABC” - afişează datele dintre ghilimele ca text • ! - forţează alinierea datelor la stânga. • * - umple spatiile cu caracterul de după * • \ - afişează caracterul de după caracterul \ • [culoare] - afişează datele formatate in culoarea

specificata intre paranteze. Culorile disponibile sunt: Black, Blue, Green, Cyan, Red, Magenta, Yellow, White.

Pentru date de tip Text sau Memo sunt următoarele formate specifice: • @ - indică un caracter sau spaţiu (obligatoriu de introdus) • & - indică un caracter sau spaţiu dar care nu este

obligatoriu de introdus • < - forţează toate caractere să fie afişate ca minuscule • > - forţează ca toate caracterele să fie afişate ca majuscule • orice alt caracter va apărea ca atare în text Exemple: formatul @+@=@ va afişa pentru 123 textul 1+2=3 şi pentru abc se va afişa a+b=c Pentru date de tip Number sau Currency există formate predefinite selectabile prin combo box-ul Format şi anume: Currency, Euro, Fixed, Standard, Percent, Scientific dar se pot crea şi formate specifice de introducere a numerelor prin introducerea a până la 4 secţiuni separate prin ; fiecare cu un alt format. Pentru informaţii suplimentare consultaţi help-ul aplicaţiei Access. Pentru Date/Time de asemenea se pot folosi formate predefinite accesibile prin combo box dar se pot crea si formate proprii. Pentru Yes/No se pot folosi formate predefinite accesibile prin combo box dar se pot crea si formate proprii. Masca de introducere (eng. Input Mask) - se foloseşte pentru datele de tip text şi uşurează procesul de introducere a datelor prin controlarea datelor introduse la nivel de caracter.

Caracter Descriere

0 Cifră ([0, 9], obligatoriu; plus (+) şi minus (-) nu sunt permise).

9 Cifră sau spaţiu (nu e obligatoriu; plus (+) şi minus (-) nu sunt permise).

# Cifră sau spaţiu (opţional; poziţii goale convertite la spaţii, plus şi minus permise).

L Literă ([A, Z] sau [a, z]); obligatoriu. ? Literă ([A, Z] sau [a, z]); opţional. A Literă sau Cifră; obligatoriu. a Literă sau Cifră ; opţional. & Orice caracter sau spaţiu; obligatoriu. C Orice caracter sau spaţiu; opţional. . , : ; - / indicator zecimal, separator de mii, dată şi

timp. (caracterul folosit depinde de specificaţiile regionale din Microsoft Windows Control Panel.)

< Conversie la minuscule. > Conversie la majuscule. ! Afişare de la dreapta la stânga în loc de

stânga la dreapta. Se poate introduce oriunde în mască.

Caption - se foloseşte pentru a schimba denumirea cu care se afişează capului coloanei. Poate conţine pana la 2048 caractere. Valoare implicită (eng. Default Value) - se foloseşte dacă se doreşte introducerea unei valori implicite la crearea unei noi înregistrări. Regulă de validare (eng. Validation Rule) – stabileşte o constrângere la introducerea datelor adică indică o expresie condiţională care trebuie să fie adevărată pentru ca data să poată fi corect introdusă. Expresia poate fi construită prin manual sau prin intermediul la Expression Builder. Lungimea maxima a regulii de validare este de 2048 caractere. Exemple:

<10 and >1 Mai mic ca zece si mai mare ca 1 <#1/1/2000# O data înainte de anul 2000. >=#1/1/2000# and <#1/1/2001#

Data trebuie sa fie in anul 2000.

Like "K???" Valoarea sa fie ca şi K urmat de 3 caractere

Text de validare (eng. Validation Text) – valoarea introdusă se foloseşte ca text la afişarea mesajelor de eroare dacă utilizatorul nu introduce valori corecte (conform regulii de validare explicată mai sus) Necesar (eng. Required) se poate alege daca este obligatorie sau nu introducerea unor date câmpul corespunzător. Se poate dimensiune zero (eng. Allow Zero Length) – se poate sau nu ca un câmp să aibă dimensiune 0. Indexat (eng. Indexed) – indică faptul că acest câmp va fi sau nu indexat (indexarea va creşte viteza de regăsire a datelor in sistem dacă vom folosi ca şi criteriu de căutare câmpul respectiv). Există 3 selecţii posibile din combo box: No – fără indexare Yes (Duplicates OK) – da cu posibilitate de duplicare a datelor Yes (No Duplicates) – da dar fără posibilitatea de duplicare Compensare pentru Unicode (eng. Unicode

Compression) – permite (dacă selectaţi yes) compensarea pentru caracterele Unicode scrise. Un caracter Unicode poate fi scris pe 2 octeţi prin aceasta putând introduce caractere care nu sunt specifice limbii engleze.

1.5. Stabilirea unei chei primare. Cheia primară reprezintă acel câmp (sau acele câmpuri) care vor reprezenta prin valorile introduse tabelul în legătură cu alte tabele. Practic cheia primară se creează astfel. Pas 1. se selectează câmpul sau câmpurile ce vor conţine cheia primară Pas 2. din meniul Edit se selectează opţiunea Primary Key. În mod automat pentru cheia primară Access va crea un index fără posibilitate de repetare deoarece o cheie primară nu poate avea mai multe valori identice în tabelul de date.

Observaţie: Dacă nu indicăm o cheie primară la crearea unui tabel, la terminarea operaţiei de creare se verifică acest lucru şi suntem atenţionaţi că nu avem cheie primară. Dacă dorim, Access creează automat un câmp cheie primară de tip AutoNumber. Exerciţii: 1. Creaţi un tabel numit Studenţi în care să introduceţi următoarele câmpuri Numele câmpului: Nume Tipul datei: Text Dimensiune Câmp: 20 Format: se vor afişa doar litere mari (majuscule) Masca de introducere: - Caption: Numele studentului Valoare implicită: - Regulă de validare: - Text de validare: - Necesar: da Indexat: Da cu posibilitatea de repetare Numele câmpului: Prenume Tipul datei: Text Dimensiune Câmp: 20 Format: se vor afişa doar litere mari (majuscule) Masca de introducere: - Caption: Prenumele studentului Valoare implicită: - Regulă de validare: - Text de validare: - Necesar: da Indexat: Da cu posibilitatea de repetare Numele câmpului: Adresa Tipul datei: Text Dimensiune Câmp: 40 Format: - Masca de introducere: - Caption: - Valoare implicită: - Regulă de validare: - Text de validare: - Necesar: da Indexat: Nu Numele câmpului: Matricola Tipul datei: Number Dimensiune Câmp: Long Integer Format: - Masca de introducere: - Caption: - Valoare implicită: - Regulă de validare: - Text de validare: - Necesar: da Indexat: Da fără posibilitate de repetare (cheie primară) Numele câmpului: CNP Tipul datei: Text Dimensiune Câmp: 13 Format: - Masca de introducere: doar cifre Caption: Cod numeric personal Valoare implicită: - Regulă de validare: prima cifra 0 sau 1 sau 5 sau 6

Text de validare: CNP incorect Necesar: da Indexat: Da fără posibilitate de repetare (cheie candidat) Numele câmpului: Sex Tipul datei: Text Dimensiune Câmp: 1 Format: se afisează doar majuscule Masca de introducere: doar litere Caption: - Valoare implicită: F (statisctic sunt mai multe femei decât bărbaţi) Regulă de validare: Doar literele F sau M Text de validare: Doar literele F sau M Necesar: da Indexat: Nu Numele câmpului: BuletinSerie Tipul datei: Text Dimensiune Câmp: 2 Format: se afişează doar majuscule Masca de introducere: doar litere Caption: BI Valoare implicită: SM Regulă de validare: - Text de validare: - Necesar: da Indexat: Nu Numele câmpului: BuletinNumăr Tipul datei: Number Dimensiune Câmp: Long Integer Format: - Masca de introducere: - Caption: Număr Valoare implicită: - Regulă de validare: - Text de validare: - Necesar: da Indexat: Nu Numele câmpului: DataNasterii Tipul datei: Date/Time Dimensiune Câmp: - Format: Short Date Masca de introducere: - Caption: Data nasterii Valoare implicită: - Regulă de validare: - Text de validare: - Necesar: da Indexat: Da cu posibilitatea de repetare Stabiliţi cheia primară la câmpul Matricola. Salvaţi tabelul cu numele Studenti.

1.6. Introducerea de date în tabelul de date creat anterior

Pornim de la tabelul introdus la exerciţiul anterior: Selectând obiectul Tables fereastra Access arată astfel:

Pentru a introduce date în tabelul Studenti fie Dublu clic pe textul Studenti fie selectăm tabelul (un clic) si apoi un clic pe Butonul Open ca în exemplul de mai jos:

fie clic de dreapta pe Studenti şi apoi selectaţi Open:

efectul este afişarea unui tabel:

Analizând acest tabel observăm că introducerea datelor se va realiza respectând toate restricţiile care le-am introdus la crearea bazei de date. Pentru a uşura introducerea datelor linia unde se vor adăuga date este indicată prin simbolul ►iar în partea de jos (lângă cuvântul Record) apar diferite butoane sau zone de introducere care permit accesul rapid la date în cazul în care volumul de date este mare. Temă de casă: Creaţi un tabel nou numit Note (în baza de date deja creată) în care să introduceţi câmpurile Student, Materie, Profesor, Dată, Notă. Tabelul nu va avea cheie primară.