La ce folosește cheia surogat în SQL?

Cel mai bun răspuns

O cheie primară este o constrângere specială pe o coloană sau un set de coloane. O constrângere de cheie primară asigură faptul că coloana (coloanele) astfel desemnate nu au valori NULL și că fiecare valoare este unică. Din punct de vedere fizic, o cheie primară este implementată de sistemul de baze de date utilizând un index unic, iar toate coloanele din cheia primară trebuie să fi fost declarate NU NULL. Un tabel poate avea o singură cheie principală, dar poate fi compusă (constă din mai multe coloane).

O cheie surogat este orice coloană sau set de coloane care pot fi declarate ca cheie primară în loc de un „real” sau natural cheie . Uneori pot exista mai multe chei naturale care ar putea fi declarate ca cheie primară și toate acestea sunt numite chei candidate . Deci, un surogat este o cheie candidată. Un tabel ar putea avea de fapt mai mult de o cheie surogat, deși acest lucru ar fi neobișnuit. Cel mai frecvent tip de cheie surogat este un număr întreg, cum ar fi o coloană auto\_increment în MySQL sau o secvență în Oracle sau o coloană de identitate în SQL Server.

Avantajele utilizării cheilor surogate

După cum sa menționat, o cheie surogat sacrifică o parte din contextul original al datelor. Cu toate acestea, poate fi extrem de util în scopuri analitice din următoarele motive:

  • Cheile surogate sunt unice. Deoarece cheile surogate sunt generat de sistem, este imposibil ca sistemul să creeze și să stocheze o valoare duplicat.
  • Cheile surogate aplică reguli uniforme tuturor înregistrărilor. Valoarea cheie surogat este rezultatul unui program, care creează valoarea generată de sistem. Orice cheie creată ca rezultat al unui program va aplica reguli uniforme pentru fiecare înregistrare.
  • Tastele surogate rezistă testului timpului. Deoarece surogatul tastele nu au niciun context sau semnificație comercială, nu va mai fi nevoie să schimbați cheia în viitor.
  • Cheile surogate permit valori nelimitate. Cheile secvențiale, timestamp și aleatorii nu au limite practice pentru combinații unice.

Răspuns

Majoritatea bazelor de date din prezent sunt într-adevăr sisteme de gestionare a bazelor de date (SGBD). Acestea constau din două componente:

  1. baza de date adecvată , care stochează datele, împreună cu metadatele, cum ar fi relațiile, constrângerile , etc …
  2. interfața cu utilizatorul, unde dezvoltatorul și / sau administratorul bazei de date introduce comenzi SQL.

Majoritatea bazelor de date sunt livrate cu un utilitar de linie de comandă pentru interfață cu baza de date. De exemplu, MySQL oferă un shell SQL simplu cu capacități de editare a liniilor de intrare. Suportă utilizarea interactivă și neinteractivă. Atunci când sunt utilizate interactiv, rezultatele interogării sunt prezentate într-un format ASCII-tabel. Atunci când este utilizat noninteractiv (de exemplu, ca filtru), rezultatul este prezentat în format separat de tab-uri. Formatul de ieșire poate fi schimbat folosind opțiuni de comandă.

Pentru a invoca shell-ul MySQL de la solicitarea interpretului dvs. de comandă, ați introduce ceva de genul următor:

shell> mysql --user=user\_name --password db\_name

Enter password: your\_password

Odată conectat la baza de date, puteți executa comenzi, cum ar fi o interogare SELECT , împotriva acestuia:

shell>SELECT * FROM shop ORDER BY article;

+---------+--------+-------+

| article | dealer | price |

+---------+--------+-------+

| 1 | A | 3.45 |

| 1 | B | 3.99 |

| 2 | A | 10.99 |

| 3 | B | 1.45 |

| 3 | C | 1.69 |

| 3 | D | 1.25 |

| 4 | D | 19.95 |

+---------+--------+-------+

De asemenea, puteți pune instrucțiunile SQL într-un fișier și apoi spuneți mysql să citească intrarea sa din acel fișier. Pentru a face acest lucru, veți crea un fișier text care conține instrucțiunile pe care doriți să le executați. Apoi, invocați mysql așa cum se arată aici:

shell> mysql db\_name

Unii furnizori de baze de date oferă, de asemenea, clienți GUI și utilități, pe lângă o comandă- client de linie. Ținând cont de MySQL, clientul său GUI este MySQL Workbench. Disponibil pe Windows, Linux și Mac OS X, MySQL Workbench se adresează arhitecților de baze de date, dezvoltatorilor și DBA-urilor. Oferă modelare de date, dezvoltare SQL și instrumente complete de administrare pentru configurarea serverului, administrarea utilizatorilor, backup și multe altele.

Alte instrumente

Pe lângă instrumentele oferite chiar de furnizorii de baze de date, există multe alte oferte open source și comerciale disponibile pentru toți cei populari tipuri de baze de date și servicii cloud. În ceea ce privește diferențele, atât produsele gratuite, cât și cele comerciale se potrivesc bine scopului lor.Cu care mergeți va fi de obicei mai mult o funcție a tipului de muncă pe care o faceți decât o utilizare mai bună.

După ce am lucrat destul de mult atât cu produse open source, cât și cu produse comerciale, am constatat că am gravitat progresiv către din urmă, pe măsură ce eficiența muncii a devenit mai importantă pentru munca mea de consultant IT. Opinia mea personală este că produsele comerciale vă pot face mai productivi, deoarece simplifică sarcinile comune pentru a crește eficiența.

Prin urmare, am folosit Navicat Premium dezvoltarea bazei de date și clientul de administrare de câțiva ani. Deși Navicat creează clienți pentru toate bazele de date populare, Navicat Premium este singurul instrument pe care l-am folosit care se poate conecta simultan la baze de date MySQL, MariaDB, MongoDB, SQL Server, Oracle, PostgreSQL și SQLite dintr-o singură aplicație. De asemenea, este complet compatibil cu baze de date cloud precum Amazon RDS, Amazon Aurora, Amazon Redshift, Microsoft Azure, Oracle Cloud și Google Cloud.

Iată o captură de ecran a ecranului principal din Windows:

Toate produsele Navicat sunt disponibile pentru Linux și macOS, precum și pentru Windows.

În special, Editorul de interogări mă ajută să scriu interogările mele mai rapide, incluzând evidențierea sintaxei, fragmente de cod reutilizabile și personalizabile, precum și sugestia automată, prezentate mai jos:

Are chiar și un constructor de interogări, care este de mare beneficiu pentru utilizatorii mai puțin experimentați. Vă permite să creați și să editați interogări vizual practic fără cunoștințe de SQL!

Sper că vă va ajuta!

Salutări,

Adam

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *