Migliore risposta
Una chiave primaria è una vincolo speciale su una colonna o un insieme di colonne. Un vincolo di chiave primaria garantisce che le colonne così designate non abbiano valori NULL e che ogni valore sia univoco. Fisicamente, una chiave primaria viene implementata dal sistema di database utilizzando un indice univoco e tutte le colonne nella chiave primaria devono essere state dichiarate NOT NULL. Una tabella può avere una sola chiave primaria, ma può essere composta (costituita da più di una colonna).
Una chiave surrogata è qualsiasi colonna o insieme di colonne che può essere dichiarato come chiave primaria invece di “real” o naturale chiave . A volte possono esserci diverse chiavi naturali che possono essere dichiarate come chiave primaria, e queste sono tutte chiamate chiavi candidate . Quindi un surrogato è una chiave candidata. Una tabella potrebbe effettivamente avere più di una chiave surrogata, sebbene ciò sarebbe insolito. Il tipo più comune di chiave surrogata è un numero intero incrementale, come una colonna auto\_increment in MySQL o una sequenza in Oracle o una colonna Identity in SQL Server.
Vantaggi dellutilizzo di chiavi surrogate
Come accennato, una chiave surrogata sacrifica parte del contesto originale dei dati. Tuttavia, può essere estremamente utile per scopi analitici per i seguenti motivi:
- Le chiavi surrogate sono uniche. Perché le chiavi surrogate sono generato dal sistema, è impossibile per il sistema creare e memorizzare un valore duplicato.
- Le chiavi surrogate applicano regole uniformi a tutti i record. Il valore della chiave surrogata è il risultato di un programma che crea il valore generato dal sistema. Qualsiasi chiave creata come risultato di un programma applicherà regole uniformi per ogni record.
- Le chiavi surrogate resistono alla prova del tempo. Perché surrogate le chiavi mancano di contesto o significato aziendale, non sarà necessario modificare la chiave in futuro.
- Le chiavi surrogate consentono valori illimitati. Le chiavi sequenziali, timestamp e casuali non hanno limiti pratici a combinazioni univoche.
Risposta
La maggior parte dei database oggi sono realmente sistemi di gestione di database (DBMS). Questi sono costituiti da due componenti:
- il database corretto , che memorizza i dati, insieme ai metadati, come relazioni, vincoli , ecc …
- linterfaccia utente, dove lo sviluppatore e / o lamministratore del database immette i comandi SQL.
La maggior parte dei database viene fornita con unutilità della riga di comando per linterfacciamento con il database. Ad esempio, MySQL fornisce una semplice shell SQL con funzionalità di modifica della riga di input. Supporta luso interattivo e non interattivo. Se utilizzati in modo interattivo, i risultati della query vengono presentati in un formato di tabella ASCII. Quando viene utilizzato in modo non interattivo (ad esempio, come filtro), il risultato viene presentato in formato separato da tabulazioni. Il formato di output può essere modificato utilizzando le opzioni del comando.
Per richiamare la shell MySQL dal prompt del tuo interprete dei comandi, devi inserire qualcosa di simile al seguente:
shell> mysql --user=user\_name --password db\_name
Enter password: your\_password
Una volta effettuato laccesso al tuo database, puoi eseguire comandi, come una query SELECT , contro:
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 |
+---------+--------+-------+
Puoi anche inserire le tue istruzioni SQL in un file e quindi dì a mysql di leggere il suo input da quel file. Per fare ciò, dovresti creare un file di testo che contiene le istruzioni che desideri eseguire. Quindi, invoca mysql come mostrato di seguito:
shell> mysql db\_name
Alcuni fornitori di database offrono anche client e utilità GUI, oltre a un comando- client di linea. In linea con MySQL, il suo client GUI è MySQL Workbench. Disponibile su Windows, Linux e Mac OS X, MySQL Workbench è rivolto ad architetti di database, sviluppatori e DBA. Fornisce modellazione dei dati, sviluppo SQL e strumenti di amministrazione completi per la configurazione del server, lamministrazione degli utenti, il backup e molto altro ancora.
Altri strumenti
Oltre agli strumenti offerti dagli stessi fornitori di database, ci sono molte altre offerte open source e commerciali disponibili per tutti i popolari tipi di database e servizi cloud. In termini di differenze, sia i prodotti gratuiti che quelli commerciali sono adatti al loro scopo.Quale sceglierai di solito sarà più una funzione del tipo di lavoro che svolgi piuttosto che dellusabilità.
Avendo lavorato un po sia con prodotti open source che commerciali, ho scoperto che gravitavo progressivamente verso il secondo, poiché lefficienza del lavoro è diventata più importante per il mio lavoro di consulente IT. La mia opinione personale è che i prodotti commerciali possono renderti più produttivo poiché semplificano le attività comuni per aumentare lefficienza.
Di conseguenza, ho utilizzato Navicat Premium sviluppo di database e client di amministrazione da diversi anni. Sebbene Navicat crei client per tutti i database più diffusi, Navicat Premium è lunico strumento che ho utilizzato in grado di connettersi simultaneamente a database MySQL, MariaDB, MongoDB, SQL Server, Oracle, PostgreSQL e SQLite da una singola applicazione. È anche completamente compatibile con database cloud come Amazon RDS, Amazon Aurora, Amazon Redshift, Microsoft Azure, Oracle Cloud e Google Cloud.
Ecco uno screenshot della schermata principale di Windows:
Tutti i prodotti Navicat sono disponibili per Linux e macOS oltre che per Windows.
In particolare, leditor di query mi aiuta a scrivere le mie query più rapidamente includendo levidenziazione della sintassi, frammenti di codice riutilizzabili e personalizzabili, nonché suggerimenti automatici, illustrati di seguito:
Ha anche un generatore di query, che è di grande vantaggio per gli utenti meno esperti. Ti consente di creare e modificare query visivamente praticamente senza alcuna conoscenza di SQL!
Spero che questo aiuti!
Cordiali saluti,
Adam