Die sleutelverskil tussen vreemde sleutel en primêre sleutel is dat vreemde sleutel 'n kolom of 'n stel kolomme is wat verwys na 'n primêre sleutel of 'n kandidaatsleutel van 'n ander tabel terwyl primêre sleutel 'n kolom of 'n stel kolomme is wat gebruik kan word om 'n ry in 'n tabel uniek te identifiseer.
'n Kolom of 'n stel kolomme wat gebruik kan word om 'n ry of 'n stel rye in 'n databasis te identifiseer of toegang te verkry, word 'n sleutel genoem. 'n Primêre sleutel in 'n relasionele databasis is 'n kombinasie van kolomme in 'n tabel wat 'n ry van die tabel uniek identifiseer. Vreemde sleutel in 'n relasionele databasis is 'n veld in 'n tabel wat ooreenstem met die primêre sleutel van 'n ander tabel. Die vreemde sleutel word gebruik om kruisverwysingstabelle te gebruik.
Wat is vreemde sleutel?
Vreemde sleutel is 'n verwysingsbeperking tussen twee tabelle. Dit identifiseer 'n kolom of 'n stel kolomme in een tabel, genoem die verwysingstabel wat verwys na 'n stel kolomme in 'n ander tabel, genoem die verwysde tabel. Die vreemde sleutel of die kolomme in die verwysingstabel moet die primêre sleutel of 'n kandidaatsleutel ('n sleutel wat as die primêre sleutel gebruik kan word) in die verwysde tabel wees. Boonop laat vreemde sleutels data oor verskeie tabelle koppel. Daarom kan die vreemde sleutel nie waardes bevat wat nie verskyn in die tabel waarna dit verwys nie. Dan help die verwysing wat deur die vreemde sleutel verskaf word om inligting in verskeie tabelle te koppel en dit sal noodsaaklik word met genormaliseerde databasisse. Veelvuldige rye in die verwysingstabel kan na 'n enkele ry in die verwysingstabel verwys.
Figuur 01: Buitelandse sleutelkartering
In ANSI SQL-standaard definieer die FOREIGN KEY-beperking vreemde sleutels. Verder is dit moontlik om die vreemde sleutels te definieer wanneer die tabel self geskep word. 'n Tabel kan veelvuldige vreemde sleutels hê, en hulle kan na verskillende tabelle verwys.
Wat is Primêre sleutel?
Primêre sleutel is 'n kolom of 'n kombinasie van kolomme wat 'n ry in 'n tabel van 'n relasionele databasis uniek definieer. 'n Tabel kan hoogstens een primêre sleutel hê. Primêre sleutel dwing die implisiete NIE NULL-beperking af nie. Daarom kan 'n kolom met primêre sleutel nie NULL-waardes in hê nie. Primêre sleutel kan 'n normale kenmerk in die tabel wees wat gewaarborg is om uniek te wees, soos 'n sosiale sekerheidsnommer, of dit kan 'n unieke waarde wees wat deur die databasisbestuurstelsel gegenereer word, soos 'n Globally Unique Identifier (GUID) in Microsoft SQL Server.
Figuur 02: Primêre sleutel
Verder definieer die PRIMÊRE SLEUTEL-beperking in ANSI SQL Standard primêre sleutels. Dit is ook moontlik om 'n primêre sleutel te definieer wanneer die tabel geskep word. Daarbenewens laat SQL toe dat primêre sleutel uit een of meer kolomme bestaan, en elke kolom wat by die primêre sleutel ingesluit is, word implisiet gedefinieer as NIE NULL nie. Maar sommige databasisbestuurstelsels vereis om die primêre sleutelkolomme uitdruklik NIE NULL te maak nie.
Wat is die verskil tussen vreemde sleutel en primêre sleutel?
Vreemde sleutel teenoor primêre sleutel |
|
Vreemde sleutel is 'n kolom of groep kolomme in 'n relasionele databasistabel wat 'n assosiasie tussen data in twee tabelle verskaf. | Primêre sleutel is 'n spesiale relasionele databasistabelkolom of 'n kombinasie van veelvuldige kolomme wat dit moontlik maak om alle tabelrekords uniek te identifiseer. |
NULL | |
Vreemde sleutel aanvaar NULL-waarde. | Primêre sleutelwaarde kan nie NULL wees nie. |
Aantal sleutels | |
Tabel kan veelvuldige vreemde sleutels hê. | Tabel kan net een primêre sleutel hê. |
Duplisering | |
Tuples kan 'n duplikaatwaarde vir 'n vreemde sleutel-kenmerk hê. | Twee tupels in 'n verhouding kan nie duplikaatwaardes vir 'n primêre sleutelkenmerk hê nie. |
Opsomming – Buitelandse sleutel vs primêre sleutel
Die verskil tussen vreemde sleutel en primêre sleutel is dat vreemde sleutel 'n kolom of 'n stel kolomme is wat verwys na 'n primêre sleutel of 'n kandidaatsleutel van 'n ander tabel terwyl primêre sleutel 'n kolom of 'n stel kolomme is wat kan gebruik word om 'n ry in 'n tabel uniek te identifiseer.