THOMAS STUDER Relationale Datenbanken Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL eXamen.press eXamen.pressisteineReihe,dieTheorieundPraxisausallenBereichenderInformatik fürdieHochschulausbildungvermittelt. Thomas Studer Relationale Datenbanken Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL ThomasStuder UniversitätBern Bern,Schweiz ISSN1614-5216 eXamen.press ISBN978-3-662-46570-7 ISBN978-3-662-46571-4 (eBook) DOI10.1007/978-3-662-46571-4 DieDeutscheNationalbibliothekverzeichnetdiesePublikationinderDeutschenNationalbibliografie;detaillierte bibliografischeDatensindimInternetüberhttp://dnb.d-nb.deabrufbar. SpringerVieweg ©Springer-VerlagBerlinHeidelberg2016 DasWerkeinschließlichallerseinerTeileisturheberrechtlichgeschützt.JedeVerwertung,dienichtausdrücklich vomUrheberrechtsgesetzzugelassenist,bedarfdervorherigenZustimmungdesVerlags.Dasgiltinsbesondere fürVervielfältigungen,Bearbeitungen,Übersetzungen,MikroverfilmungenunddieEinspeicherungundVerar- beitunginelektronischenSystemen. DieWiedergabevonGebrauchsnamen,Handelsnamen,Warenbezeichnungenusw.indiesemWerkberechtigt auchohnebesondereKennzeichnungnichtzuderAnnahme,dasssolcheNamenimSinnederWarenzeichen- undMarkenschutz-Gesetzgebungalsfreizubetrachtenwärenunddahervonjedermannbenutztwerdendürften. DerVerlag,dieAutorenunddieHerausgebergehendavonaus,dassdieAngabenundInformationenindiesem WerkzumZeitpunktderVeröffentlichungvollständigundkorrektsind.WederderVerlagnochdieAutorenoder dieHerausgeberübernehmen,ausdrücklichoderimplizit,GewährfürdenInhaltdesWerkes,etwaigeFehleroder Äußerungen. GedrucktaufsäurefreiemundchlorfreigebleichtemPapier Springer-Verlag GmbH Berlin Heidelberg ist Teil der Fachverlagsgruppe Springer Science+Business Media (www.springer.com) Vorwort DieautomatischeInformationsverarbeitungentwickeltesichindenletztenJahrzehntenzu einemimmerwichtigerenAspektunsererGesellschaft.InvielenBereichendestäglichen LebensspielendieSpeicherungundderZugriffaufriesigeDatenmengeneinewesentliche Rolle.SomitbenötigenwirverlässlicheTechnologien,umdieVerarbeitungdieserDaten effizientundsicherzugewährleisten. DasrelationaleModellbeschreibteinenklassischenAnsatz,umstrukturierteDatenzu verwaltenunddabeiKonsistenzundTransaktionssicherheitzugarantieren.DiesesModell wurdeinrelationalenDatenbanksystemenvielfachundäusserterfolgreichimplementiert. Ein entsprechend wichtiges Thema sind relationale Datenbanken in der Informatik- ausbildung. Dieses Buch richtet sind an Studierende der Informatik oder Wirtschaftsin- formatik an Universitäten und Fachhochschulen, sowie an Software-Entwickler, die mit relationalenDatenbankenarbeiten.EseignetsichzumSelbststudiumoderalsBegleitskript fürKurseundVorlesungen. IndiesemBuchstudierenwirrelationaleDatenbankenausSichtdesAnwendungsent- wicklersundBenutzers.WirgehenimDetailauffolgendeThemenein: 1. Datenbanktheorie, 2. DesignvonDatenbanken, 3. DatenbankspracheSQL, 4. Abfrageoptimierung, 5. Transaktionsverarbeitung. Im theoretischen Teil geben wir eine präzise mathematische Beschreibung des rela- tionalen Modells an und führen die relationale Algebra als formale Abfragesprache ein. Ausserdemstudierenwir,wieeingegebenesDatenbankschemaindiedritteNormalform und in die Boyce-Codd Normalform zerlegt werden kann. Meistens verzichten wir aber darauf,dieangegebenenEigenschaftenzubeweisen.DafürenthältdasBucheineVielzahl vonausführlichenBeispielen,welchedietheoretischenBegriffepraxisnahillustrieren. Der praktische Teil bietet eine Einführung in SQL als Query-Sprache aber auch als Sprache zur Datendefinition und -manipulation. Weiter zeigen wir an konkreten Beispielen,waseingutesDatenbankdesignausmacht.EbensobehandelnwirdieThemen v vi Vorwort AbfrageoptimierungundTransaktionsverarbeitung.FürallepraktischenAspektebeziehen wirunsaufdieopen-sourceDatenbankPostgreSQL,wobeiwirauchaktuelleEntwicklun- gen,wiebeispielsweiseSerializableSnapshotIsolation,behandeln.PostgreSQLundeine ausführlicheDokumentiondazusindverfügbarunter www.postgresql.org ZudiesemBuchgibtesaucheineReihevonBegleitmaterialien,welcheunter db-buch.inf.unibe.ch öffentlichzugänglichsind. Danksagung Dieses Buch wäre nicht möglich gewesen ohne die Hilfe einer Vielzahl von Personen. ZuerstmöchteichmichbeiGerhardJägerbedanken.SeinVorlesungsskriptDatenbanken warmeineInspirationzudiesemBuch. Ein grosses Dankeschön geht an Karin Abegglen, Dominik Feller, Anna Kaeser und Johannes Werner. Sie haben eine frühe Version dieses Buches sorgfältig gelesen und vieleFehlerundUnstimmigkeitenkorrigiert.IchmöchtemichauchbeidenStudentinnen und Studenten meiner Datenbank-Vorlesung des Frühlingssemesters 2015 bedanken. Insbesondere Eveline Lehmann, Laurent Schwander, Mathias Stocker und Antonio Tuor habenmichaufverschiedeneFehleraufmerksamgemachtundThemenangeregt,dieich nunimBuchbehandle.UndnocheinMercianJasminfürdenSchlusssatz. Dank auch an alle Mitarbeiterinnen und Mitarbeiter des Springer Verlags, welche die Produktion dieses Buches ermöglicht haben. Speziell erwähnen möchte ich dabei HermannEngesser,DorotheaGlaunsingerundLisaNienhaus. Bern,Schweiz ThomasStuder August2015 Inhaltsverzeichnis 1 Mengenlehre ....................................................................... 1 1.1 ObjekteundMengen........................................................ 1 1.2 OperationenaufMengen.................................................... 5 1.3 Relationen ................................................................... 6 WeiterführendeLiteratur ........................................................... 8 2 DasRelationenmodell............................................................. 9 2.1 StrukturrelationalerDatenbanken.......................................... 9 2.2 Schlüssel..................................................................... 12 2.3 Integritätsbedingungen...................................................... 16 WeiterführendeLiteratur ........................................................... 21 3 DiagrammeundModellierung................................................... 23 3.1 Diagrammefürm:1-Beziehungen.......................................... 24 3.2 Diagrammefürm:n-Beziehungen.......................................... 26 3.3 Diagrammefür1:1-Beziehungen........................................... 30 3.4 ModellierungkomplexerSysteme.......................................... 35 WeiterführendeLiteratur ........................................................... 40 4 DierelationaleAlgebra ........................................................... 41 4.1 Basisrelationen .............................................................. 41 4.2 Grundoperationen ........................................................... 42 4.3 WeitereOperationen ........................................................ 52 4.4 RelationaleAlgebraalsQuerySprache.................................... 62 4.5 GruppierungundAggregation.............................................. 63 WeiterführendeLiteratur ........................................................... 68 5 SQLAbfragen ..................................................................... 69 5.1 SQLganzkurz............................................................... 69 5.2 EinfacheAbfragen .......................................................... 71 vii viii Inhaltsverzeichnis 5.3 Subqueries................................................................... 83 5.4 Joins.......................................................................... 85 5.5 AggregationundGruppierung.............................................. 87 5.6 RangAbfragenundWindowFunktionen.................................. 93 5.7 WITHKlauselnundRekursion ............................................. 99 WeiterführendeLiteratur ........................................................... 100 6 SQLzurDatendefinitionundDatenmanipulation............................. 101 6.1 Datenmanipulation.......................................................... 101 6.2 ErstellenvonTabellen....................................................... 105 6.3 DefaultWerte................................................................ 106 6.4 Constraints................................................................... 108 6.5 Kaskadierung................................................................ 109 6.6 ÄndernvonTabellen........................................................ 115 6.7 Views......................................................................... 117 WeiterführendeLiteratur ........................................................... 120 7 Abfrageoptimierung............................................................... 121 7.1 Indizes ....................................................................... 121 7.2 LogischeOptimierung ...................................................... 126 7.3 PhysischeOptimierung ..................................................... 132 WeiterführendeLiteratur ........................................................... 139 8 Mehrbenutzerbetrieb ............................................................. 141 8.1 Transaktionen................................................................ 141 8.2 PhantomeundInkonsistenzen.............................................. 146 8.3 MultiversionConcurrencyControlArchitektur............................ 149 8.4 ImplementierungderIsolationsgrade ...................................... 152 WeiterführendeLiteratur ........................................................... 159 9 Normalformen ..................................................................... 161 9.1 Anomalien................................................................... 161 9.2 FunktionaleAbhängigkeiten................................................ 163 9.3 ZerlegungvonRelationenschemata ........................................ 167 9.4 1NFbisBCNF............................................................... 173 WeiterführendeLiteratur ........................................................... 184 10 BerechnungvonNormalformen ................................................. 185 10.1 Armstrong-Kalkül........................................................... 185 10.2 Hüllenberechnungen ........................................................ 188 10.3 MinimaleÜberdeckungen .................................................. 190 Inhaltsverzeichnis ix 10.4 ZerlegungeninBCNFund3NF............................................ 194 WeiterführendeLiteratur ........................................................... 199 Sachverzeichnis.......................................................................... 201
Description: