Una chiave primaria è una logica concept - è l'identificatore univoco per una riga in una tabella. In quanto tale, ha un sacco di attributi:potrebbe non essere nullo e deve essere unico. Ovviamente, poiché è probabile che cerchi molto i record in base al loro identificatore univoco, sarebbe utile avere un indice sulla chiave primaria.
Un indice cluster è un fisico concetto:è un indice che influisce sull'ordine in cui i record vengono archiviati sul disco. Ciò lo rende un indice molto veloce durante l'accesso ai dati, sebbene possa rallentare le scritture se la chiave primaria non è un numero sequenziale.
Sì, puoi avere una chiave primaria senza un indice cluster e, a volte, potresti volerlo (ad esempio quando la tua chiave primaria è una combinazione di chiavi esterne su una tabella di unione e non vuoi incorrere nell'overhead di rimescolamento del disco durante la scrittura).
Sì, puoi creare un indice cluster su colonne che non sono una chiave primaria.