vineri, 12 mai 2017

12.05.2017

Unitatea de invatare: Sistemul de gestiune a bazelor de date relationale-Access
Suport de curs <<1 2 3 4 >>



Interogari MICROSOFT ACCSESS

Noţiuni generale

vineri, 5 mai 2017

05.05.2017

Unitatea de invatare: Sistemul de gestiune a bazelor de date relationale-Access
Suport de curs <<1 2 3 4 >>
Competente specifice:
Aplicarea operaţiilor elementare şi a conceptelor de bază ale aplicaţiei  Access
Operarea  cu baze de date
Baza de date. Creare
Tabele. Relatii
Proprietăţi câmp
Tipuri de date

ACTIVITATE DE PREDARE CUNOSTINTE
S1: Urmariti explicatiile si demostratia profesorului.
Descarcati suportul de curs 1.
Retineti si notati notiunile predate Tabele. Relatii

Crearea relatiilor 

Fiecare tabel dintr-o baza de date trebuie sa stocheze valori bine definite din viata reala. 
Pentru entitati diferite din viata reala trebuie sa creem tabele diferite. 
De ex.: 
  • Tabela Angajati stocheaza decat informatii specifice angajatilor 
  • Tabela COPII_ANGAJATI stocheaza decat informatii specifice copiilor de angajati. 

Totusi, pentru a se pastra legatura din viata reala dintre entitati (un angajat poate avea mai multi copii, etc), trebuie sa relationam tabelele dintr-o baza de date. 
Intr-o baza de date putem avea mai multe tabele. 
Am convenit deja ca un tabel se refera practic la o singura entitate din viata reala. In cazul in care avem mai multe tabele, se impune ca aceste tabele sa fie relationate, asa cum entitatile din viata reala sunt relationate. 
Acest concept legat de relationare sta la baza teoriei relationale, care, daca vreti, este inima notiuni unei baze de date. 
Deosebirea esentiala dintre o baza de date Access si un alt software (Excel, Word) este tocmai aceea ca obiectele, entitatile, tabelele din interiorul bazei de date sunt relationate. 
Sa presupunem ca mai avem o tabela unde tinem datele despre copiii angajatilor. Din ribbon-ul Create cream un nou tabel (Table). 
Mergem in modul de vizualizare Design View, pentru a realiza structura tabelului. In acest moment introducem numele noului tabel: COPII. Apasam OK. 
Structura tabelului va fi urmatoarea:
ID_COPIL, de tip AutoNumber;
Prenume, de tip Text;
 • DataN, de tip Date/Time.
Salvam modificarile si mergem in modul Datasheet View. Introduceti o serie de date.
Felul in care introducem o data calendaristica este conform cu Regional Settings din sistemul de operare.
Trebuie sa mergem in Control Panel > Regional and Language Options si sa vedem ce Language avem setat. Microsoft Access este dependent de sistemul de operare privind aceste setari de format al datei.
Acum avem doua tabele: ANGAJATI si COPII. Asa cum in viata reala exista o legatura intre angajati si copiii lor, asa si in Access trebuie sa avem acea relationare intre cele doua tabele, intre cele doua entitati separate.
 Ramane in continuare sa stabilim cum relationam tabelele, adica cum stabilim pentru fiecare angajat ce copil are.
Fiecare tabel dintr-o baza de date trebuie sa stocheze valori bine definite din viata reala. Pentru entitati diferite din viata reala trebuie sa creem tabele diferite.

De ex.: cele doua tabele:

  • ANGAJATI (stocheaza informatii despre angajati) si 
  • COPII (stocheaza informatii despre copii angajatilor). 

Observam ca deocamdata cele doua tabele sunt complet independente si nu exista nimic comun acestora.
In cazul acesta avem de-a face cu o relatie clasica, ce se numeste ‘1 la n’, sau ‘one to many’.
Trebuie sa avem doua tabele, unul de tip Parent (ANGAJATI) si unul de tip Child (COPII).
Intr-o relatie ‘1 la n’, unei linii din tabela Parent ii pot corespunde mai multe linii din tabela Child. Pentru a rezolva aceasta relatie, in tabela Child (COPII) trebuie sa introducem o noua coloana care sa stocheze ID-ul corespunzator parintelui.
 In tabela COPII mergeti in modul Design View.
Adaugam o noua coloana imediat dupa coloana ID_COPIL: facem click dreapta pe linia Prenume si alegem Insert rows.
  1. Introducem numele ID_Parinte si ca tip alegem acelasi ca si Primary Key-ul din ANGAJATI – ID_CLIENT (Number).
  2. Salvam si revenim in modul Datasheet View.
  3. Pentru a stabili exact relatia, adica pentru a specifica factul ca datele din coloana ID_CLIENT din ANGAJATI este replicata in ID_Parinte din COPII, mergem in Database Tools > Relationships. 
  4. Selectam ambele tabele si apasam Add, apoi Close. Cele doua tabele nu sunt inca relationate. 
  5. Tragem (Drag&Drop) coloana ID_CLIENT din ANGAJATI peste coloana ID_Parinte din COPII. 
  6. In fereastra deschisa bifam checkbox-ul Enforce Referential Integrity. Apasam Create. 

Deschidem tabelea COPII. Coloana ID_Parinte stocehaza ID-ul corezpunzator parintelui. De exemplu, daca in prima linie scriem 1, stabilim ca parintele lui Gigel este Ionescu, care are ID_CLIENT 1 in tabela de ANGAJATI
Tot in coloana ID_Parinte introducem 1 si pentru linia 3 (Mirela).

Aceasta inseamna ca parintele Ionescu are doi copii: Mirela si Gigel. Introducem 3 in coloana ID_Parinte din randul 2 (Vasilescu are un singur copil, Anuta).

Mergem in tabela ANGAJATI (Parent). Access ne permite sa vizualizam in mod direct (atata timp cat am stabilit relatia descrisa mai sus), pentru fiecare linie din tabela parent, care sunt liniile corespondente din tabela child. Interogarile sunt date extrase din baza de date. Este una dintre cele mai importante operatii dintr-o baza de date.

APLICATIE  PRACTICA
 1. Aprofundati notiunile predate parcurgand informatiile din manual pag.107-113.
2. Realizati punctul a) din aplicatia personala.

Prelungire data 10 mai 2017