O bază de date relațională organizează datele în tabele cu rânduri și coloane, fiind manipulată prin limbajul SQL. Interogările SELECT cu clauze precum WHERE, JOIN, GROUP BY și HAVING permit extragerea și agregarea datelor, iar proiectarea minimală respectă principii de normalizare (1NF, 2NF) pentru a evita redundanța.
O bază de date relațională este o colecție de date organizată sub formă de tabele (relații), fiecare tabel având rânduri (tupluri) și coloane (atribute).
Pentru a defini și manipula datele, se utilizează limbajul SQL (Structured Query Language). SQL are mai multe componente:
La nivelul liceului, accentul cade pe interogări SELECT cu clauze esențiale:
De exemplu, într-o bază pentru o școală, vom separa tabelele Student, Profesor, Materie și Nota, legate prin chei primare și chei externe.
Exemplul 1: Avem tabelele Student (id, nume, clasa) și Nota (id_student, materie, valoare). Să se afișeze numele studenților care au luat nota 10 la matematică.
Interogare: SELECT s.nume FROM Student s INNER JOIN Nota n ON s.id = n.id_student WHERE n.materie = 'matematica' AND n.valoare = 10
Explicație: INNER JOIN combină rândurile care au id-ul corespunzător; WHERE filtrează după materie și notă.
Exemplul 2: Să se afișeze numele fiecărui profesor și numărul de materii pe care le predă. Tabele: Profesor (id, nume) și Materie (id, nume, id_profesor).
Interogare: SELECT p.nume, COUNT(m.id) AS numar_materii FROM Profesor p LEFT JOIN Materie m ON p.id = m.id_profesor GROUP BY p.id, p.nume
Explicație: LEFT JOIN include și profesorii fără materii (COUNT va fi 0); GROUP BY este necesar pentru a agrega pe profesor.
Exemplul 3: Să se afișeze media notelor pentru fiecare student, dar numai pentru cei care au media peste 7. Tabele: Student (id, nume), Nota (id_student, valoare).
Interogare: SELECT s.nume, AVG(n.valoare) AS medie FROM Student s JOIN Nota n ON s.id = n.id_student GROUP BY s.id, s.nume HAVING AVG(n.valoare) > 7
Explicație: HAVING filtrează după funcția de grup (AVG), nu se poate folosi WHERE pe agregări.
Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.