![]() |
|
|
|
Cheia primarăCheia primară este constituită dintr-un câmp sau mai multe câmpuri și trebuie să îndeplinească simultan condițiile:
Cheia primară asigură accesul foarte rapid la înregistrarea de cheie dată. Înregistrările unui tabel se rețin în ordinea introducerii lor. Când un câmp este declarat cheie primară, se construiește un tabel auxiliar, invizibil pentru utilizator, în care pentru fiecare valoare din câmpul cheie primară se reține poziția rândului care are acea cheie. În acel tabel, cheile sunt în ordine crescătoare. Pentru a găsi o cheie, se folosește căutarea binară care are complexitatea O(log(n)). Căutarea clasică se efectuează în O(n). Pentru a preciza că o anumită coloană este cheie primară se folosește, atunci când se descrie coloana, specificatorul PRIMARY KEY. Dacă cheia primară este alcătuită din mai multe câmpuri, după descrierea coloanelor, se utilizează specificatorul PRIMARY KEY sub forma: PRIMARY KEY (nume_coloană1, nume_coloană2, ...) Cheia unică (UNIQUE KEY) poate fi pusă doar pe coloane separate. Coloana cu specificatorul UNIQUE KEY trebuie să conțină numai valori distincte. Dacă în coloana respectivă se va încerca o inserare cu o valoare care există deja, se va semnala eroare. Nu poate fi cheie unică o coloană de tip TEXT (tip de lungime variabilă). Cheia primară poate fi multiplă, spre deosebire de constrângerea UNIQUE, care poate fi pusă doar pe coloane separate. Pentru a înțelege diferența, vom lua următorul exemplu. Cartea de Identitate este unic determinată de Serie și Număr. Tabela folosind cheia primară compusă, Serie și Număr definește combinații unice de valori, precum mai jos :
Deoarece constrângerea UNIQUE se referă la coloane separate și nu la combinații de coloane precum cheile primare permit, în cazul în care am fi definit coloanele de mai sus folosind clauza UNIQUE, am fi obținut o eroare la inserarea datelor:
|
|
Copyright © 2016 Kalytheo