Datenbanken 7: Schlüssel Erhard Künzel für Info 9. Klasse: Datenbanken 7: Schlüssel digitale-schule-bayern.de © Erhard Künzel
Lernstoff 1 Was kann passieren, wenn man keinen Schlüssel vor sich hat? 2 Was ist ein Schlüssel in der DB-Theorie genau? 3 Beispiele für Schlüssel 4 Was zeichnet gute Schlüssel aus? 5 Schlüssel-Begriffe: Schlüssel, Kandidatenschlüssel, Primärschlüssel, künstlicher Schlüssel 6 Verwandte, aber andere Begriffe digitale-schule-bayern.de © Erhard Künzel
1 Nach dem Flug angekommen DULLes, Washington Dc. Dallas, Texas Ephien, Creative Commons (Flickr), nicht kommerziell, Namensnennung, ohne Bearbeitung Motion Blur, Creative Commons Lizenz (Flickr), Namensnennung, ohne Bearbeitung digitale-schule-bayern.de © Erhard Künzel
Wenn alle Buchstaben stimmen? Von Weilheim Nach München Hbf Das war es! Glück gehabt! Das wäre Pech, vor allem in der anderen Richtung! Von Weilheim i.OB Like … hier noch nicht groß thematisieren? http://reiseauskunft.bahn.de/bin/query.exe/d http://www.bahn.de/p/view/index.shtml digitale-schule-bayern.de © Erhard Künzel
Die kann man an den Atomen unterscheiden. 2 Definition Schlüssel Schlüssel sind Attribute (evtl. eine Kombination), mit denen man Datensätze eindeutig identifizieren kann. Da Datensätze nichts anderes außer Attributen haben, kommt auch nichts anderes in Frage. Oskay, Creative Commons Licence (Flickr), Namensnennung erforderlich Die kann man an den Atomen unterscheiden. digitale-schule-bayern.de © Erhard Künzel
3 Beispiele für Schlüssel Jugendherberge(Name, Ort, Adresse, Betten, Kategorie) Buch(Autoren, Titel, Verlag, Ort, Jahr, ISBN) Person(Fingerabdruck, Name, Vorname, Geburtsort, Geb.-tag, Wohnort) Zimmer (Trakt, Stockwerk, Nummer , Größe, Nutzung) Schüler (Vorname, Nachname, Geb-Datum, Klasse, Adresse) World – County (Code, Name, Continent, Region, SurfaceArea , IndepYear, Population, LifeExpectancy, HeadOfState) digitale-schule-bayern.de © Erhard Künzel
Schlüssel im Kontext Flug Flughafen(Kürzel, Name, Land, Ort, Adresse, Fluggastzahl) Airline(Name, Beschäftigte, Firmensitz) Flug(Startflughafen, Zielflughafen, Startzeit, Flugdauer, Flugzeug) Flugzeug( Airline, Hersteller, Typ, Name, Sitzplätze, Flugkilometer, Service) Passagier (Flug, Sitz, Name, Vorname, Ausweis, Besonderes) digitale-schule-bayern.de © Erhard Künzel
4 Gute Schlüssel? Klasse – Vorname – Name schien mir eine gute Wahl für einen Schlüssel für Schüler, aber jetzt habe ich zwei Dominik Richter in meiner 7a! Die Emailadresse fand ich als guten Schlüssel für eine Person, aber dann wurde sie geändert. Fingerabdruck fand ich als gute Idee für einen Schlüssel, aber nun muss ich jedesmal Bilder übertragen. Ich wollte einen Datensatz eingeben, aber ich hatte die ISBN noch nicht. Mist. A2 06 könnte ein guter Schlüssel für ein Zimmer sein, aber die Suche dauert ewig. MUC „München Franz Josef Strauß“ LAX „Los Angeles International“ … digitale-schule-bayern.de © Erhard Künzel
Ansprüche an gute Schlüssel Die Eindeutigkeit muss für alle möglichen Extensionen gesichert sein. Alle Attribute der Tabelle sind sicher ein Schlüssel, denn es darf keine zwei identischen Datensätze geben. Was sollte sie unterscheiden? Schlecht angelegte Datenbanken haben Probleme (Lufthansa, MUC, LAX) Kombinationen von Attributen sind möglich, aber oft unpraktisch. Mnemonics sind für den Benutzer, aber nicht für den Computer wichtig. Schlüssel sollten klein sein (Speicherplatz). Schlüssel sollten gut vergleichbar sein (Suchen, Sortieren). Schlüssel müssen bei Anlegen des Datensatzes sicher verfügbar sein. In der Praxis werden fast nur künstliche Schlüssel mit einem Zahlentyp (oder Zeichenketten?) verwendet. digitale-schule-bayern.de © Erhard Künzel
Nur Schlüsselkandidaten sind gut Flughafen(Kürzel, Name, Land, Adresse, Passagierzahlen) Alle Attribute sind sicher ein Schlüssel Das reicht schon Das reicht auch Kandidatenschlüssel (Schlüsselkandidaten) sind Schlüssel, bei denen man kein Attribut weglassen kann ohne dass sie die Schlüsseleigenschaft verlieren. Ein Primärschlüssel ist ein/der fest vorgegebene Schlüsselkandidat. Im Schema wird er unterstrichen. digitale-schule-bayern.de © Erhard Künzel
Primärschlüssel: Flug, Sitz oder Flug, Ausweis oder künstlich? 5 Schüsselkandidaten … Flughafen(Kürzel, Name, Land, Ort, Adresse, Fluggastzahl) Airline(Name, Beschäftigte, Firmensitz) Flug(Startflughafen, Zielflughafen, Startzeit, Flugdauer, Flugzeug) Flugzeug( Airline, Hersteller, Typ, Name, Sitzplätze, Flugkilometer, Service) Passagier VonFlug(Flug, Sitz, Name, Vorname, Ausweis, Besonderes) Primärschlüssel: Flug, Sitz oder Flug, Ausweis oder künstlich? Für künstliche Schlüssel findet man viele verschie- dene Definitionen. Wir nennen einen Schlüssel künstlich, wenn er keine Entsprechung außerhalb der Datenbank hat. IATA-Codes sind also nicht künstlich. digitale-schule-bayern.de © Erhard Künzel
6 Schlüssel / Index / Codieren Schlüssel hat nichts zutun mit Auf-, Absperren gegenüber Geheimhaltung (Kryptographie) Schnellen Suchen (Index), wobei es natürlich sinnvoll ist einen Primärschlüssel mit einer schnellen Suchmöglichkeit auszustatten. Schlüssel hat am ehesten was zu tun mit Zu jedem Schlüssel gibt es genau ein Schloss. digitale-schule-bayern.de © Erhard Künzel
Zusammenfassung Ein Schlüssel ist ein Attribut oder eine Kombination von Attributen, die einen Datensatz eindeutig kennzeichnen. Diese Eindeutigkeit muss für alle möglichen Extensionen gelten. Ein Schlüsselkandidat (Kandidatenschlüssel) ist ein Schlüssel, bei dem man kein Attribut weglassen kann, ohne dass die Schlüsseleigenschaft wegfällt. Ein Primärschlüssel ist ein ausgewählter Schlüssel (im Schema stellt man ihn oft unterstrichen dar). Man führt oft künstliche Schlüssel (sie existieren nur innerhalb der Datenbank) als Primärschlüssel ein. digitale-schule-bayern.de © Erhard Künzel