Concepte SGBD

postat acum 2 ani de Stefanescu Mihai in categorie SQL

Ce este un SGBD?

SGBD este acronimul pentru Sistem de Gestionare a Bazelor de Date. SGBD sta la baza SQL-ului si a oricarui sistem de baze de date moderne, precum Microsoft SQL Server, IDB DB2, Orackem MySQL, Miscrosoft Access, s.a.m.d

Ce este un tabel?

Informatiile stocate intr-un SGBD sunt obiecte din interiorul bazelor de date, obiecte numite tabele. Un tabel este o colectie de informatii inrudite aranjate in coloane si randuri.

Ce trebuie sa va mintiti este faptul ca un tabel este de fapt ce-a mai simpla metoda de a stoca informatii intr-o baza de date relationala.Mai jos avem un tabel Studenti:

+----+----------+-----------+----------+
| ID | NUME     | PRENUME   | PROFIL   |
+----+----------+-----------+----------+
|  1 | Ramesh   | Ahmedabad |  MateInfo|
|  2 | Khilan   | Delhi     |  Teologie|
|  3 | kaushik  | Kota      |  Chimie  |
|  4 | Chaitali | Mumbai    |  Fizica  |
|  5 | Hardik   | Bhopal    |  MateInfo|
|  6 | Komal    | MP        |  Chimie  |
|  7 | Muffy    | Indore    |  Teologie|
+----+----------+-----------+----------+

Ce este un rand?

O inregistrare, un rand, un tuplu, toate inseamna acelasi lucru si anume un singur rand dintr-un tabel.De exemplu, avem 7 randuri in tabelul de mai sus (in cazul de mai sus 1 rand = informatiile despre 1 student).

+----+----------+-----------+----------+
|  1 | Ramesh   | Ahmedabad |  MateInfo|
+----+----------+-----------+----------+

Ce este o coloana?Coloana se refera la entitatite pe verticala dintr-un tabel.De exemplu, in tabelul de mai sus avem Coloana NUMEsi aceasta contine:

+----------+
| NUME     |
+----------+
| Ramesh   |
| Khilan   |
| kaushik  |
| Chaitali |
| Hardik   |
| Komal    |
| Muffy    |
+----------+

Valoarea NULLO valoare NULL intr-un tabel arata lipsa unei valori in acel camp al tabelului. Este foarte important sa intelegem ca valoarea NULL este diferita de 0 si este la feld e diferita si de un camp ce contine un spatiu gol.Constrangeri SQL

Ce sunt aceste constrangeri? Sunt reguli pe care le putem defini pentru a pune anumite impuneri intr-un tabel.

Aceste constrangeri pot fi create la nivel de tabela sau la nivel de coloana.

  • NOT NULL – Coloana respectiva nu poaet avea valoare NULL
  • DEFAULT – da o valoare default unei coloane atunci cand aceasta nu este specificata
  • UNIQUE – Se asigura ca toate valorile unei coloane sunt unice
  • PRIMARY Key – Identificator unic al fiecarui tuplu
  • FOREIGN Key – Identificator unic al fiecarui tuplu din alt tabel
  • CHECK – Se asigura ca toate valorile dintr-o coloana respecta o conditie
  • INDEX – folosit la crearea si afisarea datelor dintr-unt abel mai rapid

Integritatea datelor

Avem urmatoarele categorii de integritate a informatiilor dintr-o baza de date:

  • Entity Integrity: Nu exista randuri duplicate intr-un tabel.
  • Domain Integrity: Forteaza validitatea datelor restrictionand tipul, formatul, sau rangul de valori.
  • Referential integrity: Tuplurile nu pot fi sterse daca sunt folosite de alte tupluri (Foreign Key).
  • User-Defined Integrity: regula de integritate definita de utilizator.

Normalizare

Normalizarea este procesul de eficientizare a organizarii informatiilor dintr-o baza de date. Avem 2 motive principale pentru a normaliza o baza de date:

    • Eliminarea redundantei datelor.

Asigurarea dependetei datelor cu un anumit rost.

Ambele sunt importante si ambele reduc spatiul ocupatd e baza de date si asigura stocarii logice a informatiilor.

Normalizarea este reprezentata de o lista de reguli pe care trebuie sa le respectati la crearea unei structuri a unei baze de date.Regulile de normalizare sunt impartite in mai mutle Forme Normale. Mai jos am sa va pun la dispozitie 3 forme normale pentru ca doar acestea sunt necesare in majoritatea cazurilor, dar daca doriti voi puteti sa mergeti mai departe cu structura bazei voastre de date si sa ajungeti in forma normala 4 sau 5.

Forma Normala 1

Forma Normala 2

Forma Normala 3

Sunt un tanar programator din Bucuresti ce lucreaza in PHP/Mysql (MySqli/PDO), Laravel, CodeIgniter, MySQL, PostgreSQL, Wordpress, HTML5/CSS3, Sass, Photoshop si multe altele.
Google+ Community Facebook Group
Acest articol a fost mutat de pe vechea platforma.
Pentru orice eroare aparuta la mutare va rog sa ma contactati!