ebook img

Datenbanken und SQL: Eine praxisorientierte Einführung mit Anwendungen in Oracle, SQL Server und MySQL PDF

362 Pages·2017·7.47 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Datenbanken und SQL: Eine praxisorientierte Einführung mit Anwendungen in Oracle, SQL Server und MySQL

Informatik & Praxis Edwin Schicker Datenbanken und SQL Eine praxisorientierte Einführung mit Anwendungen in Oracle, SQL Server und MySQL 5. Auflage Informatik & Praxis Reihenherausgeber HelmutEirund HerbertKopp AxelViereck Die Reihe Informatik & Praxis wird herausgegeben von Prof. Dr. Helmut Eirund, Prof. Dr.HerbertKoppundProf.Dr.AxelViereck. Anwendungsorientiertes Informatik-Wissen ist heute in vielen Arbeitszusammenhängen nötig, um in konkreten Problemstellungen Lösungsansätze erarbeiten und umsetzen zu können. In den Ausbildungsgängen an Universitäten und vor allem an Fachhochschu- len wurdedieser Entwicklung durch eine Integrationvon Informatik-Inhaltenin sozial-, wirtschafts- undingenieurwissenschaftlicheStudiengängeunddurchBildungneuerStu- diengänge – z.B. Wirtschaftsinformatik, Ingenieurinformatik oder Medieninformatik – Rechnunggetragen.DieBändederReihewendensichinsbesondereandieStudierenden indiesenStudiengängen,aberauchanStudierendederInformatik,undstellenInformatik- Themendidaktischdurchdacht,anschaulichundohnezugroßen„Theorie-Ballast“vor. Die Bände der Reihe richten sich aber gleichermaßen an den Praktiker im Betrieb und sollenihnindieLageversetzen,sichselbständigineininseinemArbeitszusammenhang relevantesInformatik-Themaeinzuarbeiten,grundlegendeKonzeptezuverstehen,geeig- neteMethodenanzuwendenundWerkzeugeeinzusetzen,umeineseinerProblemstellung angemesseneLösungzuerreichen. Edwin Schicker Datenbanken und SQL Eine praxisorientierte Einführung mit Anwendungen in Oracle, SQL Server und MySQL 5., aktualisierte und erweiterte Auflage EdwinSchicker FakultätInformatikundMathematik OTHRegensburg Regensburg,Deutschland ISSN1615-8245 Informatik&Praxis ISBN978-3-658-16128-6 ISBN978-3-658-16129-3(eBook) DOI10.1007/978-3-658-16129-3 DieDeutscheNationalbibliothekverzeichnetdiesePublikationinderDeutschenNationalbibliografie;detaillier- tebibliografischeDatensindimInternetüberhttp://dnb.d-nb.deabrufbar. SpringerVieweg ©SpringerFachmedienWiesbadenGmbH1996,1999,2000,2014,2017 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,etwaigeFehler oderÄußerungen. GedrucktaufsäurefreiemundchlorfreigebleichtemPapier. SpringerViewegistTeilvonSpringerNature DieeingetrageneGesellschaftistSpringerFachmedienWiesbadenGmbH DieAnschriftderGesellschaftist:Abraham-Lincoln-Strasse46,65189Wiesbaden,Germany Vorwort Datenbanken entstanden ab etwa 1960 aus der Notwendigkeit, die logischen Zugriffe aufdieimmergrößerwerdendenDatenmengenderGroßrechnerzuvereinfachenundzu normieren. Inzwischen haben Datenbanken längst ihren Siegeszug in nahezu allen An- wendungsbereichen angetreten. Für diese rasante Entwicklung zeichnen vor allem drei Gründeverantwortlich: Erstens stieg die Rechnerleistung in den letzten Jahrzehnten ex- treman.Zweitensermöglichendienach1970entwickeltenrelationalenDatenbankenein intuitives Erstellen von Datenbanken mit einfachen Zugriffen. Und drittens unterstützen grafischeOberflächendenAnwenderundDatenbankdesignerdankeinerintuitivenBenut- zerführung. DamitwirddasErstelleneinerkleinenDatenbankfastzumKinderspiel.Dochnurein korrektesDesigngepaartmitwohlüberlegtenstrukturiertenZugriffengarantierenFlexibi- lität, Zuverlässigkeit und eine problemlosespätere Erweiterung der Datenbank. Erst ein optimiertesDesignbasierendauftheoretischenGrundlagenundpraktischenErfahrungen sorgenfürKonsistenzundIntegritäteinerDatenbank.Nursoerhaltenwirfehlerfreieund widerspruchsfreieDatenbestände,diestetszugreifbarsind. Dieses Buch entstand aus Vorlesungen zu Datenbanken, die ich für Informatikerund Mathematiker an der Technischen Hochschule Regensburg seit vielen Jahren lese. Ich möchte mit diesem Buch aber auch alle interessierten Laien und Nicht-Informatiker be- wusst ansprechen. Der theoretische Stoff wird mittels zahlreicher Beispiele sofort prak- tisch angewendet. Regelmäßige Zusammenfassungen erleichtern die Wiederholung und Reflexion des behandelten Stoffes. Zur Lernzielkontrolle dienen dem Autodidakten die zahlreichenÜbungsaufgaben.DerPraxisbezugwirdunterstütztdurcheineimBuchfort- laufendverwendeteBeispieldatenbank,dieimAnhangausführlichvorgestelltwird. Dieses Buch wendet sich vor allem an Programmierer, die mit Hilfe von SQL auf Datenbanken zugreifen wollen, und an alle, die kleine bis mittlere Datenbanken selbst entwerfen,erweiternundändernmöchten.DavieleKapitelvoneinanderunabhängigsind, empfehleichdiesesBuchausdrücklichauchalsNachschlagewerk.EinumfangreichesKa- pitelzur Datenbankprogrammierungerschließt zusätzlich dieWelt desInternetsundder grafischenOberflächen. GanzgroblässtsichdiesesBuchindreiTeilegliedern.DieKap.1bis3gebenzunächst einen Überblick über Datenbanken undbeschäftigen sich dann intensiv mit Aufbauund V VI Vorwort Design von relationalen Datenbanken. Dieser mehr theoretische Stoff wird im zweiten TeildurchdieindenKap.4und5behandelteDatenbankspracheSQLintensivangewen- det und dabei zusätzlich erheblich vertieft. Die Internet-Programmein Kap. 6 schließen diesen zweiten Teilab.Im drittenTeil abKap. 7werden weiterführendeThemenvorge- stellt. Es finden sich Kapitel zur Performance, zur Korrektheit der gespeicherten Daten, zu Möglichkeiten des parallelen Datenzugriffs, zum Schutz vor Datenverlusten oderun- berechtigtenZugriffenundzuverteiltenundobjektrelationalenDatenbanken. Kapitel 1 bespricht die Vorzüge von Datenbanken gegenüber selbst verwalteten Da- tenbeständen,erklärtdiewichtigstenDatenbankbegriffeundgibteinenkleinenÜberblick überdieLeistungsfähigkeitundMöglichkeitenvonDatenbanken.DiesesKapiteldientzur ÜbersichtundMotivationundistvorallemfürdenAnfängerempfehlenswert. Kapitel 2 und 3 beschäftigen sich mit relationalen Datenbanken. Sie sind zusammen mitderSpracheSQLabKap.4diezentralenKapiteldiesesBuches.HierliegtderFokus aufdenMethodenzumErstelleneinerrelationalenDatenbankimDetail.DerAufbauvon Relationen zusammen mit den beiden Integritätsregeln wird vorgestellt. Die Normalfor- menvonRelationenunddasEntity-Relationship-ModellalsBasiswerkzeugezumDesign vonDatenbankenwerdenausführlichbehandelt. Die Kap. 4 und 5 führen praxisorientiert und umfassend in die Datenbankzugriffs- sprache SQL ein, wobei an Hand von Beispielen der Stoff der Kap. 2 und 3 wesentlich vertieftwird.Kapitel4befasstsichintensivmitdenZugriffsmöglichkeitenaufDatenban- ken mittels SQL. In Kap. 5 gehen wir einen Schritt weiter und erzeugen Datenbanken mit geeigneten SQL-Befehlen und beschäftigen uns zusätzlich mit der Vergabevon Zu- griffsrechten in SQL. Hier werden auch wichtige Themen wie Sicherheit und Integrität behandelt.InKap. 6wird der SQL-TeilmitumfangreichenProgrammenabgeschlossen. HiergreifenwirmittelsHTMLundPHPvomInternetausdirektaufDatenbankenzu. Der dritte Teil dient der Weiterführung und Vertiefung. Er beginnt in Kap. 7 mit ei- ner Einführung in die Performance. In Kap. 8 folgen die im produktiven Einsatz sehr wichtigenThemenRecoveryundConcurrency.Eswerdenausführlichdieerforderlichen Maßnahmen beschrieben, um einem plötzlichen Rechnerabsturz ruhig entgegenzusehen undumParallelzugriffezuermöglichen. InKap.9werdendieGrundideenverteilterundobjektrelationalerDatenbankenvorge- stellt.DiesbeinhaltetdieGrundregelnderverteiltenDatenbankenundersteGehversuche mitderobjektrelationalenErweiterungderSpracheSQL. Geübt wird im gesamten Buch durchgehend mit Oracle, aber auch mit MySQL und SQL Server. Dank der normierten Sprache SQL sind die meisten Beispiele dieses Bu- ches auch auf andere Datenbanken direkt anwendbar. Auf die wenigen Abweichungen zwischenOracle,SQLServerundMySQLwirdimmerexplizithingewiesen.DieBeispiel- datenbank Bike wird durchgängig verwendet, besonders intensiv in den SQL-Kapiteln. DieseDatenbankBikewirdimAnhangausführlichvorgestelltundistBasisfüralleprak- tischen Übungen dieses Buches. Installationsprogramme zum automatischen Erstellen dieser Datenbank für Oracle, SQL Server und MySQL stehen im Internet kostenlos zur Vorwort VII Verfügung.EntsprechendeHinweisewerdenebenfallsimAnhanggegeben.JedesKapitel endetmiteinerZusammenfassung,ÜbungsaufgabenundLiteraturhinweisen. DievorliegendefünfteAuflagewurdeumaktuelleThemenwieSQLInjectionerwei- tert,ebensowurdenFehlerkorrigiert.AnpassungensindauchaufAnregungenvonLesern zurückzuführen.Dafürbedankeichmichbesonders. Mein besonderer Dank gilt meiner Familie, deren Rücksicht und Verständnis dieses Bucherstermöglichten. Regensburg,imOktober2016 Inhaltsverzeichnis 1 ÜbersichtüberDatenbanken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 DefinitioneinerDatenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 AnforderungenaneineDatenbank . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 DerDatenbank-Administrator. . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 Datenbankmodelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.4.1 RelationaleDatenbanken . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4.2 ObjektorientierteDatenbanken. . . . . . . . . . . . . . . . . . . . . . 13 1.4.3 HierarchischeundnetzwerkartigeDatenbanken . . . . . . . . . . . 14 1.4.4 ModerneEntwicklungen . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5 Transaktionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.6 DasKonsistenzmodellACID . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.7 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2 DasRelationenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.1 BeispielzurelationalenDatenbanken . . . . . . . . . . . . . . . . . . . . . . 24 2.2 RelationaleDatenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3 Primärschlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4 RelationaleIntegritätsregeln. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.4.1 Entitäts-Integritätsregel . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.4.2 Referenz-Integritätsregel . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.5 RelationaleAlgebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.5.1 RelationaleOperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.5.2 Vereinigung,SchnittundDifferenz . . . . . . . . . . . . . . . . . . . 46 2.5.3 ProjektionundRestriktion . . . . . . . . . . . . . . . . . . . . . . . . 47 2.5.4 Kreuzprodukt,VerbundundDivision . . . . . . . . . . . . . . . . . . 47 2.5.5 EigenschaftenderrelationalenOperatoren . . . . . . . . . . . . . . 51 2.6 Zusammenfassung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.7 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 IX X Inhaltsverzeichnis 3 Datenbankdesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.1 Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.1.1 ErsteNormalform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.1.2 FunktionaleAbhängigkeit. . . . . . . . . . . . . . . . . . . . . . . . . 59 3.1.3 ZweiteNormalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.1.4 DritteNormalformnachBoyceundCodd . . . . . . . . . . . . . . . 65 3.1.5 DritteNormalformnachCodd . . . . . . . . . . . . . . . . . . . . . . 67 3.1.6 VierteNormalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.1.7 FünfteNormalform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.1.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.2 Entity-Relationship-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.2.1 Entitäten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.2.2 Beziehungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.2.3 Beziehungsrelationen . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.2.4 Fremdschlüsseleigenschaften. . . . . . . . . . . . . . . . . . . . . . . 90 3.2.5 SchwacheEntitätenundSubtypen. . . . . . . . . . . . . . . . . . . . 93 3.2.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 3.3 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4 DieZugriffsspracheSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.1 DerAbfragebefehlSelect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.1.1 DerAufbaudesSelect-Befehls. . . . . . . . . . . . . . . . . . . . . . 102 4.1.2 DieFrom-Klausel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.1.3 DieSelect-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.1.4 DieWhere-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4.1.5 DieGroup-By-undHaving-Klausel . . . . . . . . . . . . . . . . . . 119 4.1.6 Union,ExceptundIntersect . . . . . . . . . . . . . . . . . . . . . . . 122 4.1.7 DerVerbund(Join) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.1.8 DeräußereVerbund(OuterJoin) . . . . . . . . . . . . . . . . . . . . 126 4.1.9 DieOrder-By-Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.1.10 NullwerteunddieCoalesce-Funktion . . . . . . . . . . . . . . . . . 130 4.1.11 ArbeitsweisedesSelect-Befehls . . . . . . . . . . . . . . . . . . . . . 132 4.2 MutationsbefehleinSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 4.3 TransaktionsbetriebmitSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.4 RelationaleAlgebraundSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.5 Zusammenfassung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.6 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.