Sekundärschlüssel
Für einen Sekundärschlüssel gibt es unterschiedliche Definitionen. Oft wird er als ein alternativer Suchschlüssel angesehen, der in einem Datenbanksystem neben dem Primärschlüssel als zusätzliches Suchkriterium zum Auffinden von einem oder mehreren Datensätzen verwendet werden kann. Ein Sekundärschlüssel kann wie jeder Suchschlüssel eines oder mehrere Attribute umfassen.
Im Gegensatz zu einem Primärschlüssel ist ein Sekundärschlüssel nach dieser Definition nicht unbedingt eindeutig. Er kann also mehrere Datensätze als Ergebnis einer Suche liefern.
Eine andere Definition stellt den Sekundärschlüssel einem Alternativschlüssel, also einem Schlüsselkandidaten, gleich. Ein Fremdschlüssel verweist häufig auf einen Primärschlüssel, kann aber auch auf einen Sekundärschlüssel zeigen. Das setzt voraus, dass der Sekundärschlüssel eindeutig ist. Manchmal wird dem Sekundärschlüssel nach dieser Definition zugestanden, NULL-Werte zu haben. Dann ist er strenggenommen kein Schlüsselkandidat mehr.
Fremdschlüssel als Sekundärschlüssel
Um die Suche über einen Sekundärschlüssel effizient durchzuführen, ist es sinnvoll, die Attribute des Sekundärschlüssels über einen sogenannten Sekundärindex zu indizieren. Eine besondere Rolle spielen Sekundärindizes im Zusammenhang mit Fremdschlüsseln, welche auf den Primärschlüssel einer anderen Relation oder der gleichen Relation verweisen. Zur effizienten Durchführung einer Verbundoperation, welche die zusammengehörenden Datensätze zweier Relationen auf der Basis einer solchen Primär-Fremdschlüsselbeziehung ausfindig macht, ist es hilfreich, wenn man ausgehend von den Attributwerten im Primärschlüssel die zugehörigen Verbundpartner im Fremdschlüssel über einen Sekundärindex gezielt auffinden kann. Für jeden Attributwert im Primärschlüssel werden also alle Datensätze gesucht, die im zugehörigen Fremdschlüssel die gleichen Attributwerte besitzen.
Beispiel
In einer Adressdatenbank wird nach dem Namen Müller als Suchkriterium gesucht. Es gibt zahlreiche Treffer, da der Name Müller ein häufiger Nachname ist.
Literatur
- A. Eickler, A. Kemper: Datenbanksysteme. Oldenbourg Verlag, ISBN 3-486-27392-2
Weblinks
- <templatestyles src="Webarchiv/styles.css" />{{#if:20041022072931
| {{#ifeq: 20041022072931 | *
| {{#if: Vorlesung Datenbanken der FH Lüneburg | {{#invoke:WLink|getEscapedTitle|Vorlesung Datenbanken der FH Lüneburg}} | {{#invoke:Webarchiv|getdomain|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20041022072931}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Vorlesung Datenbanken der FH Lüneburg | {{#invoke:WLink|getEscapedTitle|Vorlesung Datenbanken der FH Lüneburg}} | {{#invoke:Webarchiv|getdomain|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20041022072931}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Vorlesung Datenbanken der FH Lüneburg | {{#invoke:WLink|getEscapedTitle|Vorlesung Datenbanken der FH Lüneburg}} | {{#invoke:Webarchiv|getdomain|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Vorlesung Datenbanken der FH Lüneburg | {{#invoke:WLink|getEscapedTitle|Vorlesung Datenbanken der FH Lüneburg}} | {{#invoke:Webarchiv|getdomain|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Vorlesung Datenbanken der FH Lüneburg | {{#invoke:WLink|getEscapedTitle|Vorlesung Datenbanken der FH Lüneburg}} | {{#invoke:Webarchiv|getdomain|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Vorlesung Datenbanken der FH Lüneburg | {{#invoke:WLink|getEscapedTitle|Vorlesung Datenbanken der FH Lüneburg}} | {{#invoke:Webarchiv|getdomain|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20041022072931|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt}}
|| {{#if: || }}
}}{{#if: Vorlesung Datenbanken der FH Lüneburg
| {{#if: {{#invoke:WLink|isBracketedLink|Vorlesung Datenbanken der FH Lüneburg}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://cl1.fh-lueneburg.de:7776/db/Datenbanken.ppt }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}