www.wikidata.de-de.nina.az
Dieser Artikel beschreibt den Begriff Schlussel wie er in der Datenbanktheorie verwendet wird Der Begriff Schlussel als Suchkriterium zur Suche in Datenmengen wird in Sekundarschlussel erlautert Ein Schlussel dient in einer relationalen Datenbank dazu die Tupel Datensatze Zeilen einer Relation Tabelle eindeutig zu identifizieren sie zu nummern Ein Schlussel ist dann eine Gruppe von Spalten oder eine einzelne die so ausgewahlt wird dass jede Tabellenzeile uber die Werte dieser Spaltengruppe eine einmalige und damit eindeutige Wertekombination hat Inhaltsverzeichnis 1 Einfuhrung 1 1 Formale Definition 1 2 Beispiele 2 Schlusselkandidat 3 Primarschlussel und Alternativschlussel 4 Sekundarschlussel 5 Stellvertretender Schlussel 6 Fremdschlussel 6 1 Definition 6 2 Fremdschlussel und Beziehungstypen 7 Anderweitige Begriffsverwendungen 8 Siehe auch 9 LiteraturEinfuhrung BearbeitenIn der Theorie der relationalen Datenbanken sind pro Entitatstyp pro Tabelle ein oder mehrere Schlusselkandidaten Spaltenkombinationen die als Schlussel moglich waren erforderlich welche definitionsgemass jeweils eindeutig sein mussen Von diesen Schlusselkandidaten wird einer als Primarschlussel ausgewahlt und bei der Umsetzung der Entitat als Datenbanktabelle als solcher implementiert Abweichend von dieser Konvention gibt es auch Datenbanksysteme die Tabellendefinitionen erlauben ohne dass ein Primarschlussel definiert wird Solche Tabellen erlauben damit auch doppelte Datensatze und sind damit definitionsgemass keine relationalen Entitaten nbsp Superschlussel Schlusselkandidaten aus diesen wird der Primarschlussel gewahltIn Relationalen Datenbanken unterscheidet man die Schlusselbegriffe Superschlussel gelegentlich auch Oberschlussel genannt Menge von Attributen Spalten in einer Relation Tabelle die die Tupel Zeilen in dieser Relation eindeutig identifizieren also bei paarweise ausgewahlten Tupeln immer unterschiedliche Werte enthalten man sagt auch eindeutig sind Ein trivialer Superschlussel ware zum Beispiel die Menge aller Attribute einer Relation gemeinsam Trivial deswegen weil eine Relation eine Menge von Tupeln ist Die Elemente von Mengen mussen eindeutig sein also darf es in einer Relation keine zwei gleichen Tupel geben Das bedeutet ein Superschlussel kann auch unnotige Spalten beinhalten die fur die Schlussel Eigenschaft gar nicht notwendig sind Schlusselkandidat auch Kandidatenschlussel oder Alternativschlussel genannt Eine minimale Teilmenge der Attribute Spalten eines Superschlussels welche die Identifizierung der Tupel ermoglicht Schlusselkandidaten Superschlussel Minimal Bei einem Schlusselkandidat kann keine Spalte mehr weggelassen werden er wurde dann nicht mehr eindeutig identifizieren Primarschlussel Der ausgewahlte Schlusselkandidat der fur die Abbildung der Relationen verwendet wird fur die Tabelle tatsachlich verwendet wird Die Werte dieses Schlussels werden in anderen referenzierenden Tabellen als Fremdschlussel verwendet Wenn sich eine andere Tabelle auf die hiesige bezieht wird dort der Primarschlussel verwendet um auf einen Datensatz der hiesigen Tabelle zu zeigen Formale Definition Bearbeiten Es sei ein bestimmtes Relationenschema R das Tabellen Gerust d h alle Spalten gegeben Eine Teilmenge S der Attribute der Spalten des Schemas R heisst Schlussel wenn gilt Eindeutigkeit R darf keine zwei verschiedene Tupel enthalten bei denen die Werte von S gleich sind Anzustreben ist dass keine mogliche Auspragung von R zwei verschiedene Tupel enthalten kann bei denen die Werte von S gleich sind Keine fachlich legale mogliche Befullung der Tabelle darf dazu fuhren dass zwei fachlich verschiedene Zeilen zum selben Schlusselwert fuhren Definiertheit Manche Datenbanksysteme erlauben Null Werte sofern dadurch die Eindeutigkeit nicht verletzt wird Anzustreben ist dass alle Eintrage der Tabelle die Attribute aus S tatsachlich definieren keiner der Eintrage soll NULL sein Minimalitat Damit ein Schlussel auch Schlusselkandidat ist darf keine echte Teilmenge von S bereits die Bedingung der Eindeutigkeit erfullen Beispiele Bearbeiten Literatur a ISBN Autor Buchtitel 0001 Hans V 0002 Lutz W 0003 Peter W 0004 Peter X 0005 Ralf Y Kunde b Name Geburtstag Wohnort Heinz Hoffmann 01 08 1966 Norden BBS Alf Appel 08 11 1957 Momlingen Sebastian Sonnenschein 04 08 1979 Hamburg Klaus Kleber 15 04 1970 Frankfurt Barbara Bachmann 17 10 1940 Kirchheim IstChefVon c direkter Vorgesetzter ID Mitarbeiter ID 002 104030 512115 519234 993234 670 a Hier ist der Schlussel ein einzelnes Attribut Die ISBN eignet sich dafur sehr gut denn keine zwei Bucher haben dieselbe ISBN Bucher konnen allerdings sehr wohl den gleichen Titel haben oder vom selben Autor stammen Anm Die ISBN International Standard Book Number wird hier nur symbolisch als Laufnummer dargestellt eine ISBN ist in Wirklichkeit komplizierter aufgebaut b Hier wird eine Kombination zweier Attribute als Schlussel verwendet Der Entwickler der Datenbank geht davon aus dass es keine Kunden gibt die denselben Namen tragen und am selben Tag Geburtstag haben Falls es in diesem Beispiel doch Kunden geben sollte die denselben Namen tragen und am selben Tag Geburtstag haben dann kann der hier ausgewahlte Teil der Attribute nicht als Schlussel verwendet werden c Hier kommen nur alle Attribute der Relation als Schlussel in Frage Anhand der Personalnummer wird dargestellt welcher Angestellte einer Firma Vorgesetzter welches anderen Angestellten ist Anm In den Datensatzen dieser Relation kommen ausschliesslich linkseindeutige Tupel vor 1 n weil aus fachlich inhaltlichen Grunden fur gewohnlich Mitarbeiter nur einen direkten Vorgesetzten haben Grundsatzlich konnen selbstverstandlich Tupel von Relationen die Beziehungstypen sind alle moglichen n m Zuordnungen enthalten Schlusselkandidat BearbeitenEin Schlusselkandidat englisch candidate key ist eine minimale Menge von Attributen die die Tupel Datensatze einer Relation eindeutig identifiziert Die formale Definition lautet Ist R A displaystyle R A nbsp eine Relation uber der Menge von Attributen A A 1 A n displaystyle A A 1 A n nbsp so gilt a A displaystyle alpha subseteq A nbsp ist genau dann ein Schlusselkandidat von R wenn gilt a A displaystyle alpha dot rightarrow A nbsp Hierbei wird der Begriff der vollen funktionalen Abhangigkeit dargestellt durch a A displaystyle alpha dot rightarrow A nbsp verwendet Hier ist A von a displaystyle alpha nbsp voll funktional abhangig was bedeutet Haben zwei Tupel in den Schlusselattributen a displaystyle alpha nbsp dieselben Werte so haben sie auch in allen ubrigen Attributen A dieselben Werte Und Entfernt man ein Attribut aus a displaystyle alpha nbsp so gilt Eigenschaft 1 nicht mehr Im Gegensatz zum Superschlussel werden hier also nur noch diejenigen Attributmengen betrachtet die nicht mehr verkleinert werden konnen ohne ihre Schlusseleigenschaft zu verlieren man sagt auch sie seien minimal identifizierend Fur die Beispielrelationen der Einleitung ergeben sich folgende Schlusselkandidaten a ISBN Autor Buchtitel b Name Geburtstag c Vorgesetzter Untergebener Aus der Liste der Superschlussel wurden also gerade diejenigen ausgewahlt die minimal sind Gelegentlich wird auch die Bezeichnung Kandidatenschlussel verwendet was eine wortliche Ubersetzung des englischen Fachbegriffs candidate key ist Primarschlussel und Alternativschlussel BearbeitenUm die Tupel Zeilen in einer Relation Tabelle eindeutig identifizieren zu konnen wird fur die Relation ein Primarschlussel angegeben einer der Schlusselkandidaten Der Primarschlussel wird ublicherweise so ausgewahlt dass er moglichst klein ist das heisst moglichst wenige Attribute umfasst bzw einen moglichst simplen Datentyp hat Er sollte zeitlich stabil sein seine Werte sollten sich also wahrend des gesamten Lebenszyklus der betroffenen Tabellen nicht andern da dies auch Anderungen an den zugehorigen Fremdschlusselwerten mit sich zoge was durch sogenannte Kaskadierung zwar prinzipiell moglich aber oft aufwendig ist Daruber hinaus muss der ausgewahlte Primarschlussel tatsachlich die eindeutige Identifizierbarkeit der realen Objekte erlauben die durch die Tupel der Relation reprasentiert werden Wahlt man beispielsweise die Kombination Name Geburtstag als Primarschlussel aus so legt man damit auch fest dass es keine zwei gleichnamigen Personen geben darf die am gleichen Tag Geburtstag haben Eindeutigkeit uniqueness Durch die Einfuhrung von Surrogatschlusseln kunstliche Schlussel z B eine Laufnummer wird dieses Problem in jedem Fall vermieden Fur die Beispielrelationen aus der Einleitung bieten sich die folgenden Primarschlussel an sind Schlusselkandidaten a ISBN b Name Geburtstag c Vorgesetzter Untergebener Unter der Voraussetzung dass keine Surrogatschlussel eingefuhrt werden sollen ist die Entscheidung bei den Beispielen b und c hinfallig denn es gibt jeweils nur einen Schlusselkandidaten folglich muss dieser auch als Primarschlussel verwendet werden In Beispiel a entscheidet man sich fur ISBN als Primarschlussel weil dies der kleinste Schlussel ist er hat im Gegensatz zu Autor Buchtitel nur ein Attribut zudem wird dadurch die Realitat genau wiedergegeben Besteht ein Primarschlussel aus mehreren Attributen spricht man auch von einem kombinierten auch zusammengesetzten Primarschlussel oder einem Verbundschlussel Durch die Auswahl des Primarschlussels werden alle anderen Schlusselkandidaten der Relation automatisch zu Alternativschlusseln In unseren Beispielrelationen waren dies a Autor Buchtitel b keine c keineAlternativschlussel haben den Zweck dass in der Tabelle Eindeutigkeit bei allen Schlusselkandidaten durchgesetzt wird nicht nur beim Primarschlussel Dadurch sind Alternativschlussel prinzipiell geeignet in einer anderen Relation als Fremdschlussel verwendet zu werden Sekundarschlussel BearbeitenSekundarschlussel sind Attributgruppen die haufig zur Beschreibung einzelner und mehrerer Tupel benutzt werden Suchbegriff So kann etwa die Postleitzahl in einer Adresstabelle als Sekundarschlussel infrage kommen In der Datenbank konnen Sekundarschlussel durch Sekundarindizes umgangssprachlich einfach nur Indizes implementiert werden Ein Sekundarindex ist eine optionale zusatzliche Suchstruktur einer Datenbank die Tupel schneller auffindbar macht indem das Durchsuchen des gesamten Datenbestandes vermieden wird genau so wie der Index eines Buches durch den Begriffe gezielt aufgefunden werden konnen Sekundarschlussel mussen nicht notwendigerweise eindeutig sein lediglich die sogenannten Alternativschlussel die automatisch auch Sekundarschlussel sind sind eindeutig Aber auch Fremdschlussel ebenfalls nicht zwingend eindeutig sind Sekundarschlussel weil sie dazu dienen Datensatze zu beschreiben ordnen gruppieren etc Stellvertretender Schlussel Bearbeiten Hauptartikel Surrogatschlussel Es ist moglich dass alle Schlusselkandidaten einer Relation aus mehreren Attributen bestehen oder dass alle Schlusselkandidaten die tatsachlichen Verhaltnisse nur unzureichend widerspiegeln Von unseren Beispielen ist b ein solcher Fall Will man in der Tabelle Kunde eine Person identifizieren muss man stets Name und Geburtstag gleichzeitig angeben Es ist daher oft wunschenswert ein zusatzliches Attribut einzufuhren das als Primarschlussel dient Man nennt dies einen stellvertretenden Schlussel englisch surrogate key Fur Beispiel b wurde sich eine geschaftseigene Identifikationsnummer wie Kundennummer oder eine fortlaufende Nummer anbieten Fremdschlussel Bearbeiten nbsp Ein Primarschlussel einer Relation kann Fremdschlussel einer anderen werdenEin Fremdschlussel ist ein Attribut oder eine Attributkombination einer Relation welches auf einen Primarschlussel bzw Schlusselkandidaten einer anderen oder der gleichen Relation verweist Er dient als Verweis zwischen zwei Relationen d h er zeigt an welche Tupel der Relationen inhaltlich miteinander in Verbindung stehen Beispiele fur Fremdschlussel sind die beiden Attribute Vorgesetzter und Untergebener aus der Beispielrelation c der Einleitung Hier wird jeweils die Personalnummer eines Angestellten angegeben Doch mit einer solchen Nummer lasst sich im Alltag eher wenig anfangen viel wichtiger sind Name Abteilung Beschaftigung und ahnliche Informationen Deshalb wird hier hochstwahrscheinlich eine weitere Relation existieren die Attribute wie Personalnummer Name Abteilung Beschaftigung enthalt Diese Relation wird ebenso hochstwahrscheinlich den Primarschlussel Personalnummer besitzen es bietet sich also an Personalnummer als Fremdschlussel zu benutzen Definition Bearbeiten Seien R S Relationen und die Attributmenge a der Primarschlussel von R Wenn eine kompatible Attributmenge b aus S ein Fremdschlussel bzgl a sein soll so mussen die Werte von b Teilmenge der Werte des Primarschlussels a in R sein vgl referentielle Integritat Eine Attributmenge ist dann kompatibel zu einer anderen wenn die Wertebereiche der beteiligten Attribute gleich sind also dom a dom b Fremdschlussel und Beziehungstypen Bearbeiten In der Datenbankwelt unterscheidet man verschiedene Arten von Beziehungen zwischen zwei Relationen R und S Der Begriff Relation ist fur das bessere Verstandnis mit der Tabelle gleichzusetzen Im Falle relationaler Datenbanken werden die folgenden Beziehungsarten unterschieden 1 1 Beziehung einem jeden Datensatz aus R ist maximal 1 Datensatz aus S zugeordnet einem jeden Datensatz aus S ist maximal 1 Datensatz aus R zugeordnet 1 n Beziehung einem jeden Datensatz aus R ist sind kein Datensatz ein Datensatz oder mehrere Datensatze aus S zugeordnet einem jeden Datensatz aus S ist maximal 1 Datensatz aus R zugeordnet n m Beziehung einem jeden Datensatz aus R kann konnen ein Datensatz oder mehrere Datensatze aus S zugeordnet sein einem jeden Datensatz aus S kann konnen mehrere Datensatze aus R zugeordnet sein Die Falle 1 und 2 werden implementiert indem S den Primarschlussel aus R als Fremdschlussel enthalt Im Falle der 1 1 Beziehung wird dies auch der Primarschlussel Fur die n m Beziehung braucht man wie in Beispiel c oben eine eigene Relation die die Primarschlussel beider Relationen als Fremdschlussel erhalt Beide Attributmengen zusammen sind der Primarschlussel dieser Verknupfungsrelation Hinweis Die eigentlichen sogenannten Kardinalitaten dieser drei Beziehungstypen sind 1 1 0 1 0 1 1 n 0 1 0 und n m 0 0 Das Zeichen steht fur beliebig viele Anderweitige Begriffsverwendungen BearbeitenFolgende Begriffe sind keine Schlussel im Sinne der relationalen Datenbanken Suchschlussel Ein Attribut oder eine Attributkombination einer Relation die als Suchkriterium dient Ein Suchschlussel muss nicht notwendigerweise auch ein identifizierender Schlussel sein Es konnen sich also auch mehrere Datensatze uber den gleichen Schlusselwert qualifizieren Schlussel konnen auch nach der Kategorie ihrer Herleitung als naturliche oder kunstliche Schlussel unterschieden werden sprechender Schlussel auch naturlicher Schlussel genannt Ein Schlusselkandidat der im Tupel auf naturliche Weise vorhanden ist Ein solcher Schlussel besitzt also auch in der realen Welt eine Bedeutung wie z B Fahrgestellnummer bei polizeilich zugelassenen Kfz Bei sprechenden Schlussel ist zu beachten dass die Schlusseldomane zerbrechen kann falls die Felddomane nicht mit Bedacht gewahlt wird So konnen etwa funfstellige Kfz Nummern aufgrund des Wachstums in den Neufahrzeugzulassungen irgendwann mal zu klein sein was eine entsprechende Reorganisation der Schlusselbezeichnungen erfordert Wenn versucht wird im Schlussel auch sprechende Gruppenzuordnungen zu codieren sind Schlusselbruche sehr wahrscheinlich da die Nummernbereiche nicht fortlaufend verwendet werden Daruber hinaus verletzt eine solche Praxis auch das Normalisierungsgebot deshalb sollte eine Gruppenzuordnung uber ein Attributfeld oder gar eine N M Zuordnungstabelle vorgenommen werden Oft sind naturliche Schlussel sinnvoll um beispielsweise die Datensatze in der Chronologie ihrer Entstehung zu sortieren oder werden vom Auftraggeber zwingend verlangt Beispielsweise folgen die Kontennummern den Vorgaben des Kontenrahmens Bei der Auslegung der Schlusseldomane sind Kriterien wie geplante Kardinalitat Lesbarkeit und Handhabung durch die Anwender genugend zu berucksichtigen stellvertretender Schlussel Surrogatschlussel Ein kunstlich erzeugtes im Tupel zuvor gar nicht vorkommendes Attribut das die Tupel der Relation identifiziert das haufig als Primarschlussel herangezogen wird Triviales Beispiel Fortlaufende Belegnummer Surrogatschlussel werden etwa in der OLAP Technologie angewendet wo sehr breite zusammengesetzte Schlussel auf einen kompakteren kunstlichen Surrogatekey umgeschlusselt werden In heterogenen Anwendungssystemen wird der Surrogatekey fur eine bestimmte Entitat vom hierzu gekennzeichneten fuhrenden System vergeben Werden Datensatze uber Schnittstelle an Zweitsysteme durchgereicht so mussen neben dem Schlusselattribut welches beispielsweise in einer Bewegungstabelle verwendet wird allenfalls auch die zugehorige Entitat mit den Stammdaten ans Zweitsystem ubergeben werden Siehe auch BearbeitenIntegritatsbedingungLiteratur BearbeitenAndreas Heuer Gunter Saake Datenbanken Konzepte und Sprachen MITP Verlag ISBN 3 8266 0619 1 A Eickler A Kemper Datenbanksysteme Oldenbourg Verlag ISBN 3 486 27392 2 Abgerufen von https de wikipedia org w index php title Schlussel Datenbank amp oldid 238633981