Tematică științifică · 6.5
Operații de prelucrare
Operațiile specifice bazelor de date relaționale, în Microsoft Access și în SQL: crearea tabelelor, adăugarea înregistrărilor, modificarea structurii și a datelor, crearea și modificarea constrângerilor, ștergerea tabelelor și a înregistrărilor, interogări simple și complexe.
Operațiile asupra unei baze de date relaționale se pot face în două moduri: prin interfața unui SGBD, cum este Microsoft Access, sau prin comenzi SQL. Operațiile privesc fie structura bazei de date, adică tabelele, câmpurile și constrângerile, fie datele, adică înregistrările.
| Operația | În Microsoft Access | În SQL |
|---|---|---|
| crearea unui tabel | Create → Table Design | CREATE TABLE |
| adăugarea înregistrărilor | foaia de date (Datasheet View) sau interogare Append | INSERT INTO |
| modificarea structurii unui tabel | Design View | ALTER TABLE |
| modificarea datelor | foaia de date sau interogare Update | UPDATE |
| crearea și modificarea constrângerilor | proprietățile câmpurilor și fereastra Relationships | ALTER TABLE … ADD CONSTRAINT, … DROP CONSTRAINT |
| ștergerea înregistrărilor | Delete Record sau interogare Delete | DELETE FROM |
| ștergerea unui tabel | Delete din panoul de navigare | DROP TABLE |
| interogarea datelor | Create → Query Design | SELECT |
Exemplele folosesc baza de date a bibliotecii, cu tabelele cititori, carti, autori,
carti_autori, exemplare și imprumuturi, a căror structură este dată în subcapitolul
Modelul fizic relațional. Comenzile SQL
sunt scrise pentru MySQL.
Crearea tabelelor
În Access
- Se alege Create → Table Design. Se deschide tabelul nou în vizualizarea proiect (Design View).
- Pe fiecare rând se scrie numele unui câmp (Field Name), se alege tipul lui (Data Type) și, opțional, o descriere (Description).
- Pentru câmpul selectat se completează, în partea de jos a ferestrei, proprietățile lui: dimensiunea, formatul, valoarea implicită, regula de validare.
- Se selectează câmpul sau câmpurile cheii primare și se apasă Primary Key. În dreptul lor apare o cheie.
- Tabelul se salvează cu Ctrl + S, sub numele cerut.
În SQL
CREATE TABLE nume_tabel (
nume_camp1 tip_date [constrângeri],
nume_camp2 tip_date [constrângeri],
...
[constrângeri la nivel de tabel]
);
Tabelul cititori are cheia primară cod_cititor, iar numele și prenumele sunt obligatorii.
Câmpul telefon admite NULL, deci poate lipsi.
CREATE TABLE cititori (
cod_cititor INT PRIMARY KEY,
nume VARCHAR(40) NOT NULL,
prenume VARCHAR(40) NOT NULL,
telefon VARCHAR(15)
);
Un tabel nou se poate crea și din rezultatul unei interogări. Comanda
CREATE TABLE carti_vechi AS SELECT * FROM carti WHERE an_aparitie < 2015; creează tabelul
carti_vechi, cu aceleași câmpuri ca carti, și copiază în el cărțile apărute înainte de 2015.
Tabelul nou nu preia cheia primară, cheile străine și restricțiile CHECK ale tabelului sursă.
Adăugarea înregistrărilor
În Access
Tabelul se deschide în vizualizarea foaie de date (Datasheet View). Înregistrarea nouă se scrie pe ultimul rând, marcat cu asterisc. Access salvează înregistrarea în momentul în care se trece la alt rând sau se închide tabelul. Datele se introduc întâi în tabelele părinte și apoi în tabelele copil: un împrumut nu poate fi scris înaintea cititorului și a exemplarului la care se referă.
În SQL
INSERT INTO cititori (cod_cititor, nume, prenume, telefon)
VALUES (4, 'Dobre', 'Mihai', NULL);
Comanda INSERT este prezentată pe larg în subcapitolul
Comenzi de bază SQL.
Modificarea structurii tabelelor
În Access
Tabelul se deschide în vizualizarea proiect. Se pot adăuga, șterge și redenumi câmpuri, se poate schimba tipul sau proprietățile unui câmp și se poate stabili sau elimina cheia primară.
În SQL
Structura unui tabel se modifică prin comanda ALTER TABLE:
| Comanda | Efectul |
|---|---|
ALTER TABLE cititori ADD email VARCHAR(60); | adaugă câmpul email; în înregistrările existente are valoarea NULL |
ALTER TABLE cititori DROP COLUMN email; | șterge câmpul email, împreună cu valorile lui |
ALTER TABLE cititori MODIFY telefon VARCHAR(20); | schimbă tipul sau dimensiunea câmpului telefon |
ALTER TABLE cititori RENAME COLUMN telefon TO nr_telefon; | redenumește câmpul telefon |
RENAME TABLE cititori TO membri; | redenumește tabelul |
Forma MODIFY este specifică MySQL. În alte SGBD-uri, schimbarea tipului se scrie
ALTER TABLE … ALTER COLUMN ….
Modificarea datelor
În Access
O valoare se modifică direct în foaia de date. Pentru a modifica mai multe înregistrări după aceeași regulă se folosește o interogare de actualizare:
- Se creează o interogare cu Create → Query Design și se adaugă tabelul.
- Pe fila Query Design se alege tipul Update. În grilă apare rândul Update To.
- În coloana câmpului care se modifică se scrie, pe rândul Update To, noua valoare sau expresia care o calculează, iar pe rândul Criteria condiția înregistrărilor care se modifică.
- Se apasă Run și se confirmă modificarea.
O interogare de actualizare modifică datele de fiecare dată când este executată. Executată de două ori, o creștere cu 10% se aplică de două ori.
În SQL
UPDATE imprumuturi
SET data_restituire = '2026-04-10'
WHERE cod_imprumut = 3;
Fără clauza WHERE, comanda UPDATE modifică toate înregistrările tabelului. Comanda este prezentată
pe larg în subcapitolul
Comenzi de bază SQL.
Crearea și modificarea constrângerilor
În Access
Constrângerile asupra unui câmp se stabilesc în vizualizarea proiect, prin proprietățile lui:
| Proprietatea | Constrângerea echivalentă | Efectul |
|---|---|---|
| Required = Yes | NOT NULL | câmpul trebuie completat |
| Default Value | DEFAULT | valoarea scrisă automat într-o înregistrare nouă |
| Validation Rule | CHECK | condiția pe care trebuie să o îndeplinească valoarea, de exemplu >= 1500 |
| Validation Text | — | mesajul afișat când regula de validare nu este respectată |
| Indexed = Yes (No Duplicates) | UNIQUE | valorile câmpului nu se pot repeta |
| Primary Key | PRIMARY KEY | cheia primară a tabelului |
Cheile străine se stabilesc în fereastra Relationships, deschisă din Database Tools → Relationships:
- Se adaugă în fereastră tabelele care se leagă.
- Se trage câmpul cheii primare din tabelul părinte peste câmpul cheii străine din tabelul copil. Se deschide fereastra Edit Relationships, în care Access a stabilit singur tipul relației, de exemplu One-To-Many.
- Se bifează Enforce Referential Integrity, pentru ca în câmpul cheii străine să poată fi scrise numai valori existente în tabelul părinte.
- După caz, se bifează Cascade Update Related Fields, pentru actualizarea în cascadă, și Cascade Delete Related Records, pentru ștergerea în cascadă.
- Se apasă Create. Relația apare ca o linie între tabele, cu 1 și ∞ la capete.
În SQL
Constrângerile se pot scrie în CREATE TABLE sau se pot adăuga ulterior cu ALTER TABLE. O
constrângere care primește un nume, prin cuvântul CONSTRAINT, poate fi ștearsă mai târziu după
acest nume.
| Comanda | Efectul |
|---|---|
ALTER TABLE cititori ADD CONSTRAINT uq_email UNIQUE (email); | valorile din email nu se mai pot repeta |
ALTER TABLE carti ADD CONSTRAINT chk_an CHECK (an_aparitie >= 1500); | anul apariției trebuie să fie cel puțin 1500 |
ALTER TABLE exemplare ADD CONSTRAINT fk_exemplare_carti FOREIGN KEY (isbn) REFERENCES carti(isbn); | isbn devine cheie străină spre carti |
ALTER TABLE autori ADD PRIMARY KEY (cod_autor); | cod_autor devine cheie primară |
ALTER TABLE autori MODIFY tara VARCHAR(40) NOT NULL; | tara devine obligatoriu |
ALTER TABLE exemplare ALTER observatii SET DEFAULT 'bună'; | stabilește valoarea implicită a câmpului |
ALTER TABLE carti DROP CONSTRAINT chk_an; | șterge constrângerea chk_an |
ALTER TABLE exemplare DROP FOREIGN KEY fk_exemplare_carti; | șterge cheia străină |
O constrângere nouă nu se poate adăuga dacă datele existente o încalcă: cheia străină spre carti nu
se poate adăuga cât timp în exemplare există un ISBN care nu apare în carti.
Materialul acesta se citește pe educamp.ro și nu se tipărește.
S-a încheiat minutul de citit liber.
Ce cuprinde subcapitolul
- Crearea tabelelor
- Adăugarea înregistrărilor
- Modificarea structurii tabelelor
- Modificarea datelor
- Crearea și modificarea constrângerilor
- Ștergerea înregistrărilor și a tabelelor
- Interogări simple și complexe
- Apariții la examen
Continuă lectura ca și cursant
Cel puțin un subcapitol din fiecare capitol este disponibil gratuit și integral. Pentru a citi toate celelalte subcapitole ale disciplinei, te înscrii la cursul de pregătire.
Prima săptămână este gratuită, fără plată și fără card. Dacă vrei să vezi mai întâi cum este prezentată materia, poți reveni la primul subcapitol al capitolului.
100 RON / lună, pentru o disciplină
Ce cuprinde:
- Două întâlniri de câte două ore, în fiecare lună
- Tot suportul de curs publicat până acum la disciplina aleasă
- Capitole noi în fiecare săptămână, cuprinse în luna plătită, fără costuri suplimentare
- Material organizat după structura programei de examen
- Acces de pe orice dispozitiv, folosind același cont
- Prima săptămână gratuită, fără card și fără reînnoire automată
Începe săptămâna gratuită Sunt cursant — login
Află când publicăm materiale noi
Materia este publicată treptat, capitol cu capitol. Înscrie-te pentru a primi un e-mail atunci când apare un capitol nou de informatică.
Nu am putut înregistra adresa. Verifică e-mailul și materia aleasă, apoi încearcă din nou.
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
- Programa pentru concursul de ocupare a posturilor didactice, disciplina Informatică, cap. 6 „Baze de date”
- Programa pentru examenul de definitivare în învățământ, disciplina Informatică, cap. 6 „Baze de date”
- Subiecte și bareme publicate, Titularizare, informatică, 2007, 2008