Tematică științifică · 6.1
Concepte de bază
Baza de date și sistemul de gestiune a bazelor de date: definiții, avantajele față de fișierele independente, funcțiile unui SGBD, limbajul SQL, etapele proiectării și crearea unei baze de date în Access și în MySQL.
Datele despre activitatea unei biblioteci, a unei școli sau a unei firme se pot păstra în fișiere separate, câte unul pentru fiecare categorie de informații. Pe măsură ce datele cresc și sunt folosite de mai multe persoane, organizarea în fișiere independente devine greu de întreținut. Baza de date și sistemul de gestiune a bazelor de date au apărut ca răspuns la aceste dificultăți.
Fișiere independente și baze de date
Într-o bibliotecă, datele despre cărți, despre cititori și despre împrumuturi se pot ține în trei fișiere. Fișierul împrumuturilor repetă, pentru fiecare împrumut, numele și adresa cititorului și titlul cărții. Organizarea aceasta are următoarele neajunsuri:
- redundanța datelor — aceeași informație se memorează în mai multe locuri, deci ocupă spațiu suplimentar;
- inconsistența datelor — dacă un cititor își schimbă adresa, modificarea trebuie făcută în toate fișierele în care apare adresa; o singură omisiune lasă în evidență două adrese diferite pentru aceeași persoană;
- dificultatea obținerii informațiilor combinate — o întrebare de felul „ce cărți ale unui autor sunt împrumutate de cititori din aceeași localitate” cere prelucrarea simultană a mai multor fișiere, printr-un program scris special;
- formatele diferite — fișiere create cu programe diferite pot avea formate incompatibile, care trebuie convertite înainte de prelucrare.
Într-o bază de date, fiecare informație se memorează o singură dată, iar legăturile dintre date fac parte din baza de date. Adresa cititorului stă numai în datele despre cititori, iar un împrumut păstrează doar codul cititorului și codul cărții.
Nu respectă formele normale
ÎMPRUMUT
| Nr. | Cititor | Adresa | Titlu |
|---|---|---|---|
| 1 | Popescu Ana | Str. Morii 10 | Ion |
| 2 | Ionescu Dan | Str. Teilor 4 | Baltagul |
| 3 | Popescu Ana | Str. Morii 10 | Enigma Otiliei |
| 4 | Ionescu Dan | Str. Teilor 4 | Ion |
| 5 | Popescu Ana | Str. Florilor 3 | Baltagul |
Respectă formele normale
CITITOR
| Cod | Nume | Adresa |
|---|---|---|
| 1 | Popescu Ana | Str. Florilor 3 |
| 2 | Ionescu Dan | Str. Teilor 4 |
CARTE
| Cod | Titlu |
|---|---|
| 1 | Ion |
| 2 | Baltagul |
| 3 | Enigma Otiliei |
ÎMPRUMUT
| Nr. | Cod cititor | Cod carte |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 1 |
| 5 | 1 | 2 |
În tabelul din stânga, numele și adresa cititorului se repetă la fiecare împrumut al lui, iar titlul cărții la fiecare împrumut al ei. Popescu Ana și-a schimbat adresa, dar modificarea s-a făcut numai la împrumutul 5, deci în tabel apar pentru ea două adrese diferite. În tabelele din dreapta, adresa se modifică într-un singur loc, în CITITOR. Normalizarea este prezentată în subcapitolul Modelul conceptual.
Baza de date
O bază de date reunește date legate între ele, memorate după o structură stabilită dinainte, astfel încât să poată fi regăsite, actualizate și consultate eficient. Pe lângă datele propriu-zise, baza de date conține și descrierea lor: tipul datelor, structura lor și relațiile dintre ele.
Descrierea datelor și a legăturilor dintre ele formează schema bazei de date. Schema unei baze de date pentru o bibliotecă precizează, de exemplu, că există cărți, cititori și împrumuturi, ce date se păstrează despre fiecare și că un împrumut se referă la o singură carte și la un singur cititor.
Față de păstrarea datelor în fișiere independente, o bază de date aduce următoarele avantaje:
- redundanță redusă — datele comune mai multor aplicații se memorează o singură dată;
- consistența datelor — o modificare se face într-un singur loc și este văzută de toate aplicațiile care folosesc datele;
- integritatea datelor — datele introduse pot fi verificate prin reguli care resping valorile nepermise;
- acces rapid la informații — datele se regăsesc prin interogări, fără programe scrise pentru fiecare întrebare;
- securitatea datelor — fiecare utilizator primește drepturi de acces potrivite rolului său;
- independența datelor — modul de memorare fizică a datelor se poate schimba fără ca aplicațiile care le folosesc să fie modificate.
Sistemul de gestiune a bazelor de date
Baza de date conține datele, iar sistemul de gestiune a bazelor de date este programul prin care aceste date se definesc, se actualizează și se consultă.
Un sistem de gestiune a bazelor de date (SGBD) este un produs software prin care se creează baze de date, se introduc și se modifică datele, se regăsesc informațiile și se controlează cine are acces la ele. Utilizatorii nu lucrează direct cu fișierele bazei de date: orice cerere de acces la date trece prin SGBD.
Funcțiile unui SGBD
| Funcția | În ce constă |
|---|---|
| definirea datelor | descrierea structurii bazei de date: tabelele, câmpurile, tipurile de date, relațiile |
| actualizarea datelor | adăugarea, modificarea și ștergerea înregistrărilor |
| interogarea datelor | regăsirea datelor care îndeplinesc anumite condiții, sortarea lor, calculele și totalizările |
| asigurarea integrității | verificarea regulilor impuse datelor, numite restricții de integritate |
| confidențialitatea și securitatea | verificarea drepturilor de acces ale fiecărui utilizator |
| accesul concurent | tratarea situațiilor în care mai mulți utilizatori lucrează simultan cu aceleași date |
| întreținerea bazei de date | crearea copiilor de siguranță și refacerea bazei de date după un incident |
Componentele unui SGBD
Un SGBD cuprinde:
- dicționarul de date, care păstrează descrierea structurii bazei de date;
- limbajul de interogare, prin care se creează structura bazei de date, se introduc, se modifică și se regăsesc datele; limbajul folosit de cele mai multe SGBD-uri este SQL;
- programele pentru administrare, prin care se realizează copiile de siguranță, refacerea bazei de date și controlul drepturilor de acces.
Exemple de SGBD-uri: Microsoft Access, MySQL, Oracle Database, Microsoft SQL Server, PostgreSQL. Access păstrează întreaga bază de date într-un singur fișier. MySQL, Oracle și SQL Server funcționează în arhitectura client-server: baza de date se află pe un server, iar utilizatorii se conectează la el prin rețea.
Limbajul SQL
SQL (Structured Query Language) este limbajul standard pentru lucrul cu bazele de date relaționale. El este standardizat de ANSI și este implementat, cu mici diferențe, de SGBD-urile relaționale.
Cu SQL se poate descrie structura bazei de date, de exemplu cu CREATE TABLE, și se pot prelucra
datele, cu SELECT, INSERT, UPDATE și DELETE. Operațiile asupra structurii sunt prezentate
în subcapitolul
Operații de prelucrare, iar
cele patru comenzi pentru date în subcapitolul
Comenzi de bază SQL.
Sistemul de baze de date
Un sistem de baze de date reunește baza de date propriu-zisă, SGBD-ul, aplicațiile care folosesc baza de date și persoanele care lucrează cu ea. Aceste persoane au roluri diferite:
- administratorul bazei de date stabilește structura inițială, acordă drepturile de acces, asigură securitatea datelor și realizează copiile de siguranță;
- proiectanții și programatorii realizează modelul bazei de date și aplicațiile care o folosesc: formulare, rapoarte, interogări;
- utilizatorii finali introduc și consultă datele prin aplicațiile puse la dispoziție.
Etapele proiectării unei baze de date
- Analiza cerințelor. Se studiază activitatea pentru care se face baza de date: ce date se memorează, cine le folosește și ce informații trebuie obținute din ele.
- Modelul conceptual. Datele se organizează în entități, cu atribute și identificatori unici, iar legăturile dintre ele se descriu prin relații. Rezultatul este diagrama entități-relații, adusă apoi în formele normale. Etapa este prezentată în subcapitolul Modelul conceptual.
- Modelul fizic. Entitățile devin tabele, atributele devin câmpuri cu tipuri de date, iar relațiile se realizează prin chei primare și chei străine. Etapa este prezentată în subcapitolul Modelul fizic relațional.
- Implementarea. Tabelele se creează într-un SGBD, cu cheile și restricțiile lor, și se realizează interogările, formularele și rapoartele.
- Exploatarea și întreținerea. Baza de date se completează cu înregistrări, se actualizează, se consultă și se păstrează prin copii de siguranță.
Crearea unei baze de date
În Microsoft Access
Baza de date Access este un singur fișier, cu extensia .accdb, care conține tabelele,
interogările, formularele și rapoartele.
- Se pornește Access și se alege Blank database.
- În caseta File Name se scrie numele bazei de date, iar cu butonul de răsfoire se alege folderul în care se salvează.
- Se apasă Create. Access creează fișierul și deschide un tabel nou,
Table1, în vizualizarea foaie de date.
Toate obiectele create după aceea, inclusiv interogările, se salvează în interiorul fișierului
.accdb.
În MySQL
Pe un server MySQL se pot afla mai multe baze de date. Comenzile următoare le creează, le selectează și le șterg:
| Comanda | Efectul |
|---|---|
CREATE DATABASE biblioteca; | creează baza de date biblioteca; dacă există deja una cu acest nume, comanda produce eroare |
SHOW DATABASES; | afișează lista bazelor de date de pe server |
USE biblioteca; | stabilește baza de date cu care se lucrează în continuare |
DROP DATABASE biblioteca; | șterge baza de date, împreună cu toate tabelele și datele ei |
CREATE DATABASE biblioteca;
USE biblioteca;
SHOW TABLES;
SHOW TABLES afișează tabelele bazei de date curente. Imediat după creare, lista este goală.
Apariții la examen
Titularizare 2008, varianta 5, Subiectul al II-lea, cerința 1, 16 puncte:
Prezentați bazele de date după următorul plan de idei:
- definire, modele conceptuale, enumerarea operațiilor specifice; (6p)
- un exemplu de proiectare a unei baze de date relaționale cu aplicabilitate practică, formată din 3-4 tabele (obiectivele urmărite, structura fiecărei tabele, reprezentarea relațiilor dintre tabele). (10p)
| Ce se punctează | Punctajul |
|---|---|
| definirea noțiunii de bază de date | 1 p |
| modelele conceptuale: ierarhic, rețea, relațional | 1 p |
| denumirile a minimum 4 operații specifice: creare, sortare/indexare, căutare, vizualizare, interogare, ștergere, adăugare, modificare | 4 p |
| formularea obiectivelor de gestiune | 2 p |
| structura a minimum 3 tabele: câmpuri, tipuri, dimensiuni, cheia primară, eventual restricții și indecși | 2 × 3 p |
| minimum două relații între tabele | 1 p |
| reprezentarea relațiilor | 1 p |
Definiția bazei de date se află în acest subcapitol, modelele conceptuale în Clasificarea bazelor de date, operațiile specifice în Operații de prelucrare, iar structura tabelelor și relațiile în Modelul fizic relațional.
La proba practică de la Titularizare, al doilea subiect al biletului este o aplicație de baze de date, notată cu 2 puncte din 10, în care se verifică lucrul într-un sistem de gestiune a bazelor de date dintre cele prevăzute în programele școlare de liceu. Modelele rezolvate sunt la Proba practică: baze de date.
La metodică, operarea cu baze de date a apărut ca secvență din programa școlară de TIC la Titularizare 2015, varianta 3, Subiectul al III-lea (proiectarea unei baze de date, crearea unei tabele, definirea cheii primare, adăugarea, modificarea și ștergerea înregistrărilor), și la Definitivat 2016, varianta 3, Subiectul al II-lea (definirea structurii unei baze de date, modificarea structurii unei tabele).
Materialul acesta se citește pe educamp.ro și nu se tipărește.
Surse
- Gremalschi, A., Corlat, S., Braicov, A., „Informatică. Manual pentru clasa a 12-a”, Editura Știința, Chișinău, 2015
- Huțanu, V. T., Popescu, C., „Manual de informatică pentru clasa a XII-a”, Editura L&S Info-mat, București, 2007
- Oprescu, D., Bejan Ienulescu, L., „Tehnologia informației și a comunicațiilor. Sisteme de gestiune a bazelor de date. Manual pentru clasa a XI-a”, Editura Niculescu, București, 2006
- Programa pentru examenul de definitivare în învățământ, disciplina Informatică, cap. 6 „Baze de date”
- Programa pentru concursul de ocupare a posturilor didactice, disciplina Informatică, cap. 6 „Baze de date”