Informatik 9 - DB Primärschlüssel InformatikEasyGoing https://www.youtube.com/watch?v=g5jcHUsxAkw Transkript (automatisch erstellt) 0:00 in diesem video geht es jetzt darum wie man einzelne datensätze in einer tabelle eindeutig identifizieren können das heißt das ziel und die anforderung 0:09 an eine datenbank ist dass es in der jeweiligen tabelle keinen datensatz doppelt gibt und ich immer einen datensatz eindeutig ansprechen können 0:18 muss und dazu gibt es eben dieses konzept der primär schlüssel was im primär schlüssel ist und wie man zu einem primär schlüssel kommt für eine 0:27 tabelle das erkläre ich jetzt in diesem video ich möchte jetzt in der tabelle metropolen auf genau diesen roten 0:35 datensatz hiermit berlin zugreifen sowie finde ich genau diesen datensatz in meiner tabelle wieder könnte ich jetzt natürlich die abfrage 0:45 stellen select stern von metropolen wo er stadt ist gleich berlin land ist gleich d einwohnerzahl ist gleich usw das heißt alle angaben dieses 0:54 datensatzes her auflisten dann gehe ich sicher dass ich auf genau diesen datensatz hier zugreifen die ua klausel ist wie man sieht 1:05 ziemlich lang da stellt sich die frage geht es denn nicht auch kürze reichen nicht auch weniger als diese gesamten angaben aus 1:14 um mit sicherheit sagen zu können ich begreife auf genau diesen datensatz auf den ich zugreifen will zu und die antwort ist ja 1:24 nämlich geographischer breite und länge zusammen genommen reicht mir schon aus um diese stadt berlin mit den entsprechenden informationen eindeutig 1:37 identifizieren zu können weil eben man davon ausgehen kann dass an einem punkt also geographischer breite und länge immer nur eine stadt 1:48 liegt zwei städte liegen nicht übereinander und deswegen kann ich mir die übrigen angaben zuvor war fläche und dergleichen 1:57 sparen und einfach nur die breite und die länge erleben und genauso kann ich das jetzt natürlich für alle anderen datensätze aufmachen 2:07 das heißt ich kann jeden einzelnen datensatz allein über die angabe von geografischer 3 um geografische länge eindeutig 2:14 identifizieren und das schreibt man den fortschritt also so dass man in roten klammern eben genau diese attribute auflistet die ich brauche um den 2:26 eindeutig identifizieren zu können also geographischer breite um geografische länge gibt es noch mehrere möglichkeiten neben der geografischen breite und länge 2:37 möglichkeit wäre ja stadt und land wenn man sich die tabelle hier anguckt könnte ich wird die kombination von stadt und land auch jeden datensatz hier eindeutig 2:48 identifiziert das muss man allerdings immer noch beachten ich füge vielleicht noch nachträglich datensätzen in meine tabelle 1 2:56 beispielsweise zweimal den datensatz mit frankfurt in deutschland als zwei frankfurts in deutschland gibt nämlich einmal am main an der oder 3:06 und dann habe ich plötzlich durch die angabe von stadt ist gleich frankfurt und land ist gleich den zwei verschiedene datensätze also keine 3:15 eindeutige identifizierung mehr deswegen eignet sich die kombination eben nicht das muss ich immer noch bedenken was für die später vielleicht 3:23 noch ein dagegen stadt und vorwahl das funktioniert sehr wohl denn die stadt mit ihrem namen und ihrer eindeutigen vorwahl 3:35 das funktioniert ganz sicher könnte aber natürlich noch trotzdem das land zusätzlich dazu nehmen quasi um auf nummer sicher zu gehen 3:45 das würde genauso funktionieren wenn man jetzt einen primär schlüssel bestimmen wollen bestimmt man erstmal die schlüssel kandidaten und die schlüssel 3:56 kandidaten müssen neben dieser bedingung dass die datensätze dadurch eindeutig identifizierbar sind 4:03 doch die weitere eigenschaft erfüllen dass ich keine überflüssigen angaben mit reingenommen haben jetzt zum beispiel hier unten das land noch dazu bei der 4:13 stadt und vor bald schon reichen ist es land überflüssig und das darf bei einem schlüssel kandidaten nicht sein deswegen sind eben nur geografische 4:21 breite und länge und statt und vorwahl schlüssel kandidaten und aus diesem schlüssel kandidaten die ich jetzt wie hier 4:31 überlegt habe was natürlich auch immer ein bisschen interpretationssache ist es ist eine überlegung sache und abwägen wie wahrscheinlich ist der ein oder 4:40 andere fall wenn ich dann meinen schlüssel kandidaten eben hier so gesucht habe dann bestimme ich einfach einen von diesen schlüssel kandidaten 4:48 und sagen das ist mein primär schlüssel diese wahl ist vollkommen willkürlich und beliebig nur bei den bei der wahl der schlüssel kandidaten muss ich eben 4:57 aufpassen ich habe mich jetzt hier als primär schlüssel für die kombination aus geographischer breite und länge 5:04 entschieden und in der datenbank tabelle sieht man das dann daran dass die entsprechenden spalten hier oben mit der bezeichnung unterstrichen sind das heißt 5:16 alle spalten nahmen die unterstrichen sind gehören zusammen zu einem primär schlüssel hätte jetzt natürlich auch sein können dass noch eine spalte 5:25 unterstrichen ist und mir in ein einziges attribut ausreicht um jeden datensatz eindeutig zu enden identifizieren ist durchaus möglich 5:33 in dem fall brauchen aber zumindest diese zwei angaben von uns noch ein weiteres beispiel an zu einem online shop in der tabelle dieses online-shops 5:44 sind kundennummer artikel bestelldatum und rechnungsbetrag gespeichert ist die frage wie finde ich jetzt hier einen passenden für mehr schlüssel erst mal 5:55 suchen uns schlüssel kandidaten die kundennummer alleine die recht sicher nicht weil wir mal sehen ein und derselbe kunde kann natürlich 6:02 mehrere verschiedene bestellungen aufgeben und damit hätte man ja schon zu einer kundennummer zwei verschiedene datensätze und wahrscheinlich noch mehr 6:09 also sicher keine eindeutige identifizierung beim artikel ganz genau so ein artikel wird von vielen verschiedenen kunden gekauft damit fällt 6:21 der als einzelnes attribut fünf schüsse kandidaten schon mal raus ebenso natürlich logischerweise bestellte und rechnungsbetrag sie schaut jetzt 6:32 auswendig kundennummer und artikel zusammen nehme auch nicht sonderlich gut könnte man den fall denken das büro artikel gekauft werden und dann wird 6:44 jedes jahr ein kontingent an kugelschreiber bestellt von den gleichen kunden aber immer die gleichen artikel zu zwei verschiedenen 6:56 zeitpunkten funktioniert auch nicht das ist jetzt nämlich dass bestelldatum dazu nehmen rechnungsbetrag von wahrscheinlich vernachlässigen wir mal 7:05 von der preisstabilität ausgeben beziehungsweise die preisstabilität dürfte er für keinen einzigen artikel 7:15 gewährleistet sein damit der rechnungsbetrag wird eine rolle spielen könnte dann bestellte atomgesetz ebenso wie 7:25 wahrscheinlich ist es dass ein und derselbe kunde im gleichen artikel zweimal oder mehrfach am gleichen tag bestellt vielleicht gar nicht so 7:38 unwahrscheinlich wenn man nämlich vielleicht drei exemplare bestellen wollte und wo zwei ein warenkorb hatte und dann nochmal das dritte exemplar 7:49 zusätzlichen aufgeben musste und weil sich jetzt eben kein attribut und auch keine kombination aus mehreren attributen für einen primär schlüssel 7:59 eignet macht man folgendes man fügt einfach eine zusätzliche spalte ein in die tabelle die mir dann einen schlüssel kandidat und damit auch meine vielmehr 8:09 schlüssel liefert das ganze nennt man dann eben künstlicher schlüssel in dem fall die bestellnummer davon kann man ausgehen wiesen eindeutig für jeden 8:19 bestellvorgang wird diese immer automatisch generiert und wiederholt sich nicht und genau diese spalte mit der bestellnummer fügt man jetzt hier 8:29 ein und hat damit seinen primär schlüssel also auch das ist eine möglichkeit dass wenn es in einer tabelle mit den informationen die 8:38 wichtig sind jetzt sind keine möglichkeit gibt einen primär schlüssel festzulegen dass man einfach eine zusätzliche spaltet zu 8:45 diesem einen zweck doch anlegt und das war auch alles was es so zu schlüsse kandidaten und primär schlüssel und auch künstlichen schüssel zu wissen gibt ich 8:55 bedanke mich fürs zu können und bis zum nächsten mal