2009-04-20 17 views

risposta

16

Un campo con valori univoci è, in sostanza, una chiave. Tuttavia, una chiave viene utilizzata per identificare in modo univoco una riga in una tabella, mentre un indice viene utilizzato per ordinare o raggruppare le righe nella tabella. Una chiave non dovrebbe cambiare una volta che è stata inizialmente impostata, in quanto potrebbe essere referenziata altrove nel database. Un campo indicizzato, tuttavia, può cambiare liberamente.

4

Una chiave identifica in modo univoco una riga in una tabella. Un indice è l'ordine delle righe basato su un campo in una tabella. Una tabella può avere più indici, perché un indice può essere solo un determinato ordine di un set di campi che il sistema utilizza per cercare e quindi cerca la riga effettiva. Tecnicamente, ci può essere solo una chiave che il sistema utilizza per identificare una riga. Il più delle volte, questo è anche l'indice principale, ma non deve essere.

+0

Pensavo di poter avere più di una chiave su un tavolo. –

+0

È possibile avere solo una chiave primaria. Quella chiave primaria può consistere di più di un campo, ma c'è solo una chiave. Puoi anche avere una o più chiavi esterne definite, ma penso che possa essere al di fuori della portata della tua domanda. –

2

Unico è un vincolo obbligato per i dati, mentre un indice consente di ordinare fisicamente le righe (indice cluster) o logicamente (indice non cluster) nel database per un recupero più rapido.

+0

Per essere chiari, gli indici cluster sono ordini fisici, mentre gli indici non cluster sono logici. –

3

Le chiavi vengono utilizzate per mantenere l'integrità dei dati, gli indici vengono utilizzati per conservare le prestazioni del database. Pensa a qualunque problema tu stia cercando di risolvere e che ti guidi nella giusta direzione.

2

Una chiave deve essere l'identificatore univoco del modello di business per la riga. Una colonna indicizzata in modo univoco può essere considerata una "chiave alternativa". Generalmente i server SQL creeranno automaticamente un indice univoco per le chiavi primarie.

Vorrei anche ricordare che è possibile indicizzare colonne non univoche; indici come questi sono usati per velocizzare le interrogazioni sulle colonne indicizzate.

1

Una chiave avrà sempre un indice dietro la scena Se si crea una chiave primaria, SQL Server creerà un indice univoco cluster per sostenere che

Anche quando si crea un unico vincolo di SQL Server creerà anche un indice

E naturalmente la differenza tra un vincolo univoco e una chiave primaria è che il vincolo univoco consente almeno 1 valore NULL (1 su server sql più di uno su Oracle) È possibile avere solo 1 chiave primaria e molti (249 su server sql) vincoli univoci su una tabella

9

Una chiave identifica la riga memorizzata nel database. Un indice è una struttura simile a quella alla fine di un libro. Alla fine di un libro vedi diverse pagine con parole e dove puoi trovare quelle parole. Quelle pagine sono un indice e lo stesso vale per un database. L'indice contiene la chiave e le relative posizioni. Ti aiuta a trovare la posizione delle file. In caso di un libro l'indice ti dice su quale pagina puoi trovare la parola. L'indice del database ha la stessa funzione.

Come molti menzionano l'indice è implementato con b-trees. Tuttavia questo è solo un dettaglio di implementazione. Esistono molti modi per implementare un indice.

+2

Questa è una grande spiegazione, soprattutto perché la domanda sembra provenire più dal punto di vista di un utente di database da principiante a intermedio. –

+3

Pensa al "tasto" come al numero di pagina e all '"indice" come descritto qui ... Ottima correlazione. – GalacticCowboy

1

La chiave ha per impostazione predefinita un indice cluster in MS SQL Server.

La chiave è un valore univoco per ogni riga.

Uso dell'indice per massimizzare le prestazioni del database. È possibile creare indici in base alle proprie esigenze. ci sono diversi tipi di indici ad es.

  • indice bitmap
  • indice denso
  • indice Sparse
  • Coprendo Indice
4

Una chiave (dichiarazione) è un vincolo. Impedisce l'inserimento di righe nella tabella se mancano dati chiave o se i dati chiave duplicano una riga già presente nella tabella.

Un indice è una struttura dati che consente una rapida ricerca di una riga o di righe dati valori per le colonne (campi) utilizzati nell'indice. Gli indici possono essere utilizzati per accelerare anche altri tipi di query. Ad esempio, un join unione fa uso di indici sulle due colonne che costituiscono la condizione di join, se questi indici sono entrambi presenti. Se il tuo DBMS eseguirà un join di unione dipende da Query Optimizer, dalla dimensione delle tabelle e dalla presenza degli indici necessari.

Per confondere un po 'il problema, parte della letteratura si riferisce alle colonne utilizzate da un indice come "chiavi dell'indice". La stessa letteratura di solito si riferisce a chiavi primarie e chiavi esterne come "chiavi logiche". Quella stessa letteratura spesso si riferisce a chiavi come caratteristiche logiche di una tabella, mentre gli indici sono chiamati caratteristiche fisiche della tabella.

La maggior parte dei DBMS creerà un indice per te quando dichiari una chiave primaria. Ci sono due ragioni per questo comportamento. Il primo è che il rilevamento di duplicati senza un indice richiede molto tempo su un grande tavolo. Il secondo è che presumibilmente farai molte ricerche in base alla chiave primaria, e quelle ricerche funzioneranno molto più velocemente con un indice.

2

Una chiave è un campo o un insieme di campi che identifica in modo univoco ogni riga. Tipicamente, ci sarà una chiave che viene designata come chiave primaria, e al giorno d'oggi questo sembra essere un campo spesso di per sé privo di senso (come un numero di pagina, che è importante solo per identificare cosa c'è nella pagina).

È possibile avere una tabella con una chiave per un'altra tabella, che è chiamata chiave esterna. Ad esempio, nel database di un negozio online, potrebbe esserci una tabella per gli ordini e ogni ordine avrà un cliente associato, quindi ogni riga nella tabella degli ordini ha una chiave esterna per la tabella dei clienti.

Un indice è una struttura di dati basata su uno o più campi in una tabella, che consente un rapido accesso alla tabella in base a tali campi. L'indice può identificare singole righe (ad esempio, un indice dell'indirizzo email del cliente) o indicare gruppi (ad esempio, lo stato di esenzione fiscale dei clienti). È usato molto come l'indice di un libro, o come una directory inversa (come una rubrica ordinata per numero di telefono).

Una chiave è principalmente un modo di pensare al database (sebbene di solito è possibile dire al database delle chiavi, quindi il database può rifiutare le righe con chiavi duplicate, per esempio). Un indice è un modo per rendere il database più veloce.

Problemi correlati