2010-06-21 9 views
13

Che differenza tra la chiave Super e Candidate in ERDB?Tasto Superkey vs. Candidato

Grazie.

+4

La chiave super-candidata e la chiave candidata sono termini del modello di database relazionale. Cosa significa "ERDB"? Forse ti stai riferendo al modello Entity Relationship (ER) che è un insieme di convenzioni per disegnare immagini sui dati. Il modello ER è qualcosa di diverso dal modello relazionale. – sqlvogel

risposta

12

chiave candidata è una superchiave minimo

+5

+1, in più sarebbe bene definire "minimo" qui poiché non è intuitivo. Per esempio nella tabella (a, b, c), con (a) essere univoci e anche (b, c) essere univoci, entrambi (a) e (b, c) dovrebbero essere chiavi candidate. – orip

+1

Minimo, nel senso che se viene rimosso un attributo dalla chiave candidata, la riga non può più essere identificata in modo univoco. – libjup

4
  • chiave candidata = minima per una chiave per identificare una fila
  • Super key = almeno largo quanto un candidato chiave

Per me, una chiave eccellente generalmente introduce ambiguità su una chiave candidata

+0

Una chiave candidata è una superkey minima. Quindi un superkey non è strettamente "più ampio" perché anche una chiave candidata è una super-chiave. – sqlvogel

+0

@david: non è un "superkey minimo" un ossimoro? – gbn

+0

"In genere introducono ambiguità" - cosa intendi? Ad esempio, in questa risposta (http://stackoverflow.com/questions/3938736/enforce-constraints-between-tables/3940708#3940708) la tabella EmployeeDepartments ha una chiave candidata '(employee_ID)' e una superkey '(employee_department_name, employee_id) '. Entrambi sono necessari per l'integrità dei dati, dov'è l'ambiguità? – onedaywhen

22

Una superchiave è un insieme di colonne identiche in modo univoco fa una fila. Una chiave Candidata sarebbe un set MINIMAL di colonne che identifica in modo univoco una riga. Quindi essenzialmente un Superkey è una chiave Candidate con colonne extra inutili.

+0

"un Superkey è un tasto Candidato con colonne extra inutili" - - le colonne aggiuntive potrebbero essere effettivamente necessarie per fare riferimento alla tabella e garantire l'integrità dei dati ad es '(ID_dipendente)' è univoco ma una chiave su '(ID_dipendente, dipartimento_name)' può essere richiesta per alcune tabelle che limitano i dipendenti in base al loro dipartimento. – onedaywhen

2

teniamolo semplice

tasto Super - Un set di chiavi che definisce univocamente un row .Così di tutti gli attributi se anche qualsiasi singolo è unique allora tutti i sottoinsiemi hanno tale attributo univoco cade sotto superkey.

Candidato chiave - Un superkey da cui nessun ulteriore sottoinsieme può essere derivata in grado di identificare il rows uniquely, oppure possiamo semplicemente dire che è il minimal superkey.