În lucru: lecțiile se refac de la capăt. Lecțiile noi ale clasei: lecțiile noi ale clasei a VII-a →

Introducere în SGBD — MS Access și LibreOffice Base

Faci cunoștință cu un SGBD real și creezi prima ta bază de date!

⚠️ Ce program vei folosi?

Această lecție demonstrează pașii folosind Microsoft Access (parte din pachetul Microsoft Office Professional/Education). Dacă nu ai Access instalat, poți folosi LibreOffice Base — gratuit, open-source, disponibil pe Windows, macOS și Linux. Interfața diferă ușor, dar conceptele (tabel, câmp, tip de date, cheie primară, vizualizare proiectare vs. date) sunt identice.

  • Microsoft Access — disponibil în Office Pro/Education (licență plătită sau școlară). Fișiere .accdb.
  • LibreOffice Base — gratuit, descărcabil de la libreoffice.org. Fișiere .odb. Echivalentele meniului: Design View = Vizualizare proiect, Datasheet View = Vizualizare foaie de date.

Notă: Bazele de date nu fac parte din programa oficială de Informatică și TIC cl. VII — acesta este conținut extra/aprofundare. Scopul este să înțelegi conceptele, nu să depinzi de un singur program comercial.

Obiectivul lecției

După această lecție vei putea:

Incearca!

Iată cum arată fereastra principală Access:

📊 Microsoft Access - BazaDeDate.accdb
Toate obiectele Access

Zona de lucru - aici vei vedea și edita tabelele

📋 Componentele principale:

  • Panoul de navigare (stânga) - Listează toate obiectele din baza de date
  • Bara de instrumente (sus) - Butoane pentru acțiuni frecvente
  • Zona de lucru (centru) - Aici editezi tabelele și datele
Atom 1

Pași pentru crearea primei baze de date în Access

1 Deschide Access și creează o bază nouă

  1. Deschide Microsoft Access
  2. Click pe "Blank database" (Bază de date goală)
  3. Alege un nume (ex: "Biblioteca.accdb")
  4. Selectează locația unde vrei să salvezi
  5. Click "Create"

2 Creează primul tabel

Access creează automat un tabel gol. Vom defini câmpurile:

  1. Click pe fila "Design View" (Vizualizare Proiectare)
  2. Salvează tabelul cu numele "Carti"
  3. Acum poți defini câmpurile

3 Definește câmpurile tabelului

Pentru un tabel de cărți, vom crea aceste câmpuri:

Nume câmp Tip de date Descriere
ID_Carte AutoNumber Cheie primară - se completează automat
Titlu Short Text Titlul cărții
Autor Short Text Numele autorului
AnPublicare Number Anul în care a fost publicată
DataImprumut Date/Time Când a fost împrumutată
EsteDisponibila Yes/No Disponibilă pentru împrumut?

4 Setează cheia primară

  1. Click pe rândul ID_Carte
  2. Click pe butonul "Primary Key" 🔑 din bara de instrumente
  3. Va apărea un simbol de cheie lângă câmp

5 Introdu date în tabel

  1. Salvează tabelul (Ctrl + S)
  2. Treci în "Datasheet View" (Vizualizare foaie de date)
  3. Începe să introduci date în celule
  4. ID-ul se completează automat!

⚠️ Sfaturi importante:

  • Salvează frecvent (Ctrl + S)
  • Nu modifica ID-ul - se generează automat
  • Respectă tipurile de date (nu pune text în câmpuri numerice)
  • Extensia fișierului este .accdb

📚 Exemplu de date introduse:

ID Titlu Autor An Disponibilă
1 Ion Liviu Rebreanu 1920 Da
2 Mara Ioan Slavici 1894 Nu
3 Enigma Otiliei G. Călinescu 1938 Da
Atom 2

Proprietăți avansate ale câmpurilor și depanarea erorilor tipice

🔬 Design View vs. Datasheet View — diferența în profunzime

Aspect Design View (Proiectare) Datasheet View (Foaie de date)
Ce faci Definești structura: câmpuri, tipuri, proprietăți Introduci, editezi și vizualizezi datele efective
Când îl folosești La crearea sau modificarea structurii tabelului La lucrul zilnic cu datele din tabel
Risc Schimbarea tipului unui câmp cu date existente poate cauza pierderi de date Nu poți schimba tipurile de date sau proprietățile câmpurilor

⚙️ Proprietăți avansate ale câmpurilor (panoul Field Properties din Design View)

Când selectezi un câmp în Design View, panoul de jos afișează proprietăți configurabile:

Proprietate Ce face Exemplu practic
Field Size Limitează lungimea câmpurilor Text (nr. caractere) sau tipul numeric (Integer, Long Integer, Double) Titlu: 255 caractere; AnPublicare: Integer (întregi, fără zecimale)
Format Controlează cum se afișează valoarea — nu schimbă datele stocate, doar prezentarea Date/Time: "dd/mm/yyyy"; Number cu Format "0" afișează fără zecimale
Default Value Valoarea pusă automat la adăugarea unei înregistrări noi EsteDisponibila: Yes (implicit cartea e disponibilă)
Required Yes = câmpul nu poate fi gol; No = câmpul poate fi vid Titlu: Required = Yes (nu poți salva o carte fără titlu)
Validation Rule Expresie logică ce restricționează valorile acceptate AnPublicare: >=1000 And <=2030
Validation Text Mesajul afișat utilizatorului când Validation Rule e încălcată "Introduceți un an între 1000 și 2030!"

🛠️ Cum setezi o regulă de validare — pas cu pas

  1. Deschide tabelul "Carti" în Design View
  2. Click pe câmpul AnPublicare
  3. În panoul de proprietăți de jos, găsește "Validation Rule"
  4. Scrie: >=1000 And <=2030
  5. La "Validation Text" scrie: Introduceți un an între 1000 și 2030!
  6. Salvează (Ctrl + S) și treci în Datasheet View
  7. Încearcă să introduci 9999 — Access va afișa mesajul de eroare configurat de tine!

⚠️ Erori tipice și cum le depanezi

Mesaj de eroare Cauza Soluție
"The value you entered isn't valid for this field" Text introdus într-un câmp Number sau Date, ori valoare care încalcă Validation Rule Verifică tipul câmpului în Design View și introdu formatul corect
"You must enter a value in the field" Câmpul are Required = Yes și ai lăsat celula goală Completează câmpul; sau în Design View setează Required = No dacă nu e obligatoriu
ID-urile sar (1, 2, 5, 9...) Normal — AutoNumber nu reutilizează ID-urile înregistrărilor șterse Nu e o eroare; important e că ID-urile sunt unice, nu că sunt consecutive
Access refuză să schimbe tipul unui câmp Conversia ar putea distruge date existente incompatibile cu noul tip Modifică structura înainte de introducerea datelor; sau recreează câmpul după ce exporți datele

Practica

Nivel Minim

Deschide Microsoft Access (sau LibreOffice Base dacă nu ai Access) și urmează pașii din lecție pentru a crea o bază de date nouă numită "PrimeaBazaDeDate" (.accdb în Access / .odb în LibreOffice Base). Creează un tabel numit "Elevi" cu câmpurile: ID_Elev (AutoNumber/Integer auto-increment, cheie primară), Nume (Short Text/VARCHAR), Prenume (Short Text/VARCHAR), Clasa (Short Text/VARCHAR). Setează cheia primară pe ID_Elev. Introdu 3 înregistrări cu date reale. Salvează și închide.

Vezi rezolvarea

Pasii, exact ca in lectie:

  1. Deschide Access (sau LibreOffice Base) si alege Blank database. Numeste fisierul PrimeaBazaDeDate (.accdb in Access / .odb in LibreOffice Base).
  2. Treci tabelul creat automat in Design View si salveaza-l cu numele Elevi.
  3. Defineste campurile: ID_Elev (AutoNumber), Nume (Short Text), Prenume (Short Text), Clasa (Short Text).
  4. Click pe randul ID_Elev, apoi pe butonul Primary Key (simbolul de cheie) - asa devine cheie primara.
  5. Salveaza (Ctrl+S), treci in Datasheet View si introdu 3 randuri, de exemplu: Popescu / Ana / 7A, Ionescu / Mihai / 7B, Marin / Elena / 7A. ID-ul se completeaza singur.
  6. Salveaza din nou si inchide baza de date.

Verificare: la ID_Elev apare simbolul de cheie; nu poti scrie manual in ID_Elev, se genereaza automat.

Nivel Standard

Creează o bază de date numită "Biblioteca" (.accdb în Access / .odb în LibreOffice Base) cu tabelul "Carti" exact ca în lecție (ID_Carte, Titlu, Autor, AnPublicare, DataImprumut, EsteDisponibila). Setează tipurile de date corect pentru fiecare câmp. Introdu minim 5 cărți reale (poți folosi cărțile din manuale). Asigură-te că: (1) ID-ul se generează automat, (2) câmpul EsteDisponibila conține Da/Nu (Yes/No în Access, Boolean în LibreOffice Base), (3) AnPublicare conține numere (nu text).

Vezi rezolvarea

Urmeaza exact tabelul din lectie (Atom 1):

  1. Blank database, numeste fisierul Biblioteca (.accdb/.odb).
  2. Design View, salveaza tabelul cu numele Carti.
  3. Defineste campurile: ID_Carte = AutoNumber (cheie primara - click pe rand + butonul Primary Key), Titlu = Short Text, Autor = Short Text, AnPublicare = Number, DataImprumut = Date/Time, EsteDisponibila = Yes/No (Boolean in LibreOffice Base).
  4. Salveaza (Ctrl+S), treci in Datasheet View si introdu minim 5 carti reale, de exemplu: Ion (Liviu Rebreanu, 1920, Da), Mara (Ioan Slavici, 1894, Nu), Enigma Otiliei (G. Calinescu, 1938, Da), plus inca doua la alegere.

Verificare cerintelor: (1) ID_Carte se numeroteaza singur, nu-l scrii tu; (2) EsteDisponibila apare ca o caseta Da/Nu, nu text liber; (3) daca incerci sa scrii litere in AnPublicare, campul Number nu le accepta - asta confirma tipul corect.

Nivel Performanta

Creează o bază de date numită "Scoala" (.accdb în Access / .odb în LibreOffice Base) cu două tabele: (1) "Elevi": ID_Elev (AutoNumber, PK), Nume, Prenume, DataNasterii, Clasa — introdu 5 elevi; (2) "Note": ID_Nota (AutoNumber, PK), Materie (Short Text), Nota (Number), DataNotei (Date/Time) — introdu 8 note pentru elevii creați. Explorează cele două vizualizări: Design View / Vizualizare proiect (structura) și Datasheet View / Vizualizare foaie de date (datele). Scrie în caiet diferența dintre ele și când folosești fiecare.

Vezi rezolvarea

Aici nu primesti baza gata facuta - o proiectezi si o construiesti singur, dupa regula de aur din lectie: intai pe hartie, apoi in Access.

  1. Pe hartie: deseneaza doua tabele separate, Elevi (ID_Elev AutoNumber PK, Nume, Prenume, DataNasterii, Clasa) si Note (ID_Nota AutoNumber PK, Materie Short Text, Nota Number, DataNotei Date/Time), cu tipul de date scris langa fiecare camp.
  2. In Access: Blank database Scoala, apoi construieste fiecare tabel in Design View, cu Primary Key pe ID_Elev si pe ID_Nota.
  3. Introdu 5 elevi in Datasheet View, apoi 8 note.

Capcana: lectia NU a predat cum se leaga doua tabele intre ele (relatii/foreign key, fereastra Relationships) - e un pas mai avansat, neatins aici. Deci nu poti face ca Access sa "stie" singur carui elev ii apartine o nota; cel mult adaugi in tabelul Note un camp text suplimentar (ex: NumeElev), ca sa recunosti manual cui apartine fiecare nota.

Pentru diferenta ceruta: Design View = editezi structura (campuri, tipuri, proprietati), risc daca schimbi tipul unui camp cu date deja introduse; Datasheet View = editezi datele efective, nu poti schimba tipurile de-acolo. Foloseste Design View la construirea tabelului, Datasheet View la introducerea si verificarea zilnica a notelor.

Se evalueaza: ambele tabele au cheie primara AutoNumber corecta, tipurile de date corespund coloanei (mai ales Nota = Number, DataNotei = Date/Time), sunt introduse efectiv 5+8 inregistrari, iar explicatia din caiet foloseste exemple concrete din tabelele tale, nu doar definitia din lectie.

Recapitulare

Ce am invatat:

  • MS Access salvează bazele de date în fișiere cu extensia .accdb.
  • Interfața Access are: Panoul de navigare (stânga), Bara de instrumente (sus), Zona de lucru (centru).
  • Pașii pentru crearea unui tabel: Blank database → Design View → definire câmpuri cu tipuri → setare cheie primară → salvare → Datasheet View pentru date.
  • Design View = definești structura (câmpuri și tipuri); Datasheet View = introduci datele.
  • AutoNumber ca cheie primară generează automat ID-uri unice crescătoare (1, 2, 3...) fără intervenție manuală.
  • Salvează frecvent cu Ctrl+S și nu modifica niciodată câmpul ID generat automat.

Vrei mai mult?

Dupa ce ai creat tabelul "Carti" in Access, deschide fila "Create" din bara de sus si click pe "Query Design". Adauga tabelul Carti si construieste o interogare simpla care sa arate doar cartile publicate dupa anul 2010. Ruleaz-o si vezi rezultatul - asta se numeste o interogare (query).

  • De gandit: De ce Access te obliga sa treci prin Design View inainte sa introduci date in Datasheet View? Ce probleme ar aparea daca ai putea schimba tipul de date al unui camp DUPA ce ai introdus deja 500 de inregistrari cu valori diferite?
  • Deschidere: In spatele oricarei interogari din Access sta un limbaj numit SQL (Structured Query Language), folosit de aproape toate bazele de date din lume, de la aplicatii mici pana la Google si Facebook. Daca vei continua spre liceu sau facultate pe zona de calculatoare, SQL e printre primele lucruri pe care le vei invata.