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:
- Să cunoști interfața unui SGBD (exemplificat prin MS Access; alternativă gratuită: LibreOffice Base)
- Să creezi o bază de date nouă și să definești structura unui tabel
- Să setezi tipuri de date corecte și cheia primară
- Să introduci primele date și să distingi Design View de Datasheet View
- (Avansat) Să configurezi proprietăți avansate ale câmpurilor și să depanezi erori tipice
Incearca!
Iată cum arată fereastra principală 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
Pași pentru crearea primei baze de date în Access
1 Deschide Access și creează o bază nouă
- Deschide Microsoft Access
- Click pe "Blank database" (Bază de date goală)
- Alege un nume (ex: "Biblioteca.accdb")
- Selectează locația unde vrei să salvezi
- Click "Create"
2 Creează primul tabel
Access creează automat un tabel gol. Vom defini câmpurile:
- Click pe fila "Design View" (Vizualizare Proiectare)
- Salvează tabelul cu numele "Carti"
- 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ă
- Click pe rândul ID_Carte
- Click pe butonul "Primary Key" 🔑 din bara de instrumente
- Va apărea un simbol de cheie lângă câmp
5 Introdu date în tabel
- Salvează tabelul (Ctrl + S)
- Treci în "Datasheet View" (Vizualizare foaie de date)
- Începe să introduci date în celule
- 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 |
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
- Deschide tabelul "Carti" în Design View
- Click pe câmpul AnPublicare
- În panoul de proprietăți de jos, găsește "Validation Rule"
- Scrie:
>=1000 And <=2030 - La "Validation Text" scrie:
Introduceți un an între 1000 și 2030! - Salvează (Ctrl + S) și treci în Datasheet View
- Î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:
- Deschide Access (sau LibreOffice Base) si alege Blank database. Numeste fisierul PrimeaBazaDeDate (
.accdbin Access /.odbin LibreOffice Base). - Treci tabelul creat automat in Design View si salveaza-l cu numele Elevi.
- Defineste campurile:
ID_Elev(AutoNumber),Nume(Short Text),Prenume(Short Text),Clasa(Short Text). - Click pe randul
ID_Elev, apoi pe butonul Primary Key (simbolul de cheie) - asa devine cheie primara. - 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.
- 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):
- Blank database, numeste fisierul Biblioteca (
.accdb/.odb). - Design View, salveaza tabelul cu numele Carti.
- 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). - 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.
- 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.
- In Access: Blank database Scoala, apoi construieste fiecare tabel in Design View, cu Primary Key pe ID_Elev si pe ID_Nota.
- 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.