Relationale DB: Einführung Kapitel 2 Relationale RelationaleDatenbanken: Datenbanken: eine eineanwendungsorientierte anwendungsorientierte Einführung Einführung – Kapitel 2 – © 2002 Prof. Dr. Rainer Manthey Informationssysteme 1 Vorgehensweise in Kapitel 2 Kapitel 2 Methodische Vorgehensweise in diesem Kapitel: Grundbegriffe Grundbegriffe relationaler relationaler Datenbanken Datenbanken Microsoft MicrosoftAccess Access for forBeginners Beginners • • • • Praxis • anwendungsorientiert • "Schnupperkurs" Beide Seiten sind wichtig: © 2002 Prof. Dr. Rainer Manthey Theorie Prinzipdiskussion wissenschaftliches Fundament Lernen Lernenohne ohneAnwenden Anwendennützt nütztnicht nichtviel viel!! Informationssysteme 2 Relationale Datenbanken: Allgemeines Kapitel 2 • Der DB-Markt wird heute völlig dominiert von DB-Systemen, die das relationale Datenmodell unterstützen. • Führende (kommerzielle) Hersteller von relationalen DB-Produkten: Oracle Microsoft (Access, SQL Server) IBM (DB2, Informix) Sybase Postgres (Freeware) MySQL (Freeware) • Bezeichnung "relational" ist motiviert durch das mathematische Konzept der Relation. • Relationale Datenbanken sind im wesentlichen Sammlungen von Relationen. • Man kann sich Relationen praktisch als Tabellen vorstellen, die aus einzelnen Datensätzen bestehen, die alle dieselbe (homogene) Feldstruktur aufweisen. • In der Wissenschaft gibt es ein weites Spektrum an theoretischen Grundlagen für relationale Datenbanken. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 3 Relationen: etwas "Nachhilfe" Kapitel 2 mathematisches mathematischesRelationskonzept Relationskonzept • Jede Teilmenge R eines Produkts D1 × . . . × Dn von n (n > 1) nicht notwendig verschiedenen Mengen D1, . . . , Dn heisst (n-stellige) Relation über D1, . . . , Dn. • Das (kartesische) Produkt (oder: Kreuzprodukt) von D1, . . . , Dn ist die Menge aller (n-)Tupel, die aus Elementen von D1, . . . , Dn gebildet werden können: DD1 × . . . × Dn ==def {{((aa1, ,. .. .. ., ,aan )) | | aai ∈∈DDi }} 1 × ...× D n def 1 n i i • Mengen sind duplikatfreie, ungeordnete Sammlungen von Objekten. "Unter "Untereiner einerMenge Mengeverstehen verstehenwir wireine eineZusammenfassung Zusammenfassung von von bestimmten bestimmtenwohlunterschiedenen wohlunterschiedenenObjekten Objektenunserer unsererAnschauung Anschauung oder oderunseres unseresDenkens Denkenszu zueinem einemGanzen." Ganzen." Georg Cantor (1845-1918), Begründer der Mengenlehre © 2002 Prof. Dr. Rainer Manthey Informationssysteme 4 Beispiel für Produktbildung bei Mengen Kapitel 2 B 5 1 7 A A × B © 2002 Prof. Dr. Rainer Manthey ( , 1) ( , 5) ( , 7) ( ( , 1) , 1) ( ( , 5) , 5) ( ( , 7) , 7) ( , 1) ( , 5) ( , 7) Informationssysteme 5 Relation als Teilmenge eines Produkts und Tabellendarstellung Kapitel 2 2-stellige Relation über A, B A × B ( , 1) ( , 5) ( , 7) ( ( , 1) , 1) ( ( , 5) , 5) ( ( , 7) , 7) ( , 1) ( , 5) ( , 7) A Darstellung dieser Relation im Tabellenformat: B 5 5 5 5 © 2002 Prof. Dr. Rainer Manthey Informationssysteme 6 Relationale Datenbanken: Geschichte Kapitel 2 • Die Idee, Daten in Tabellen zu halten, ist uralt. • Die Idee, diese Form der Darstellung mit Mitteln der Relationentheorie zu untersuchen, stammt von diesem Mann: Edgar F. Codd • Er veröffentlichte 1970 eine bahnbrechende Arbeit mit dem Titel Edgar F. Codd Für Fürdiese diesePionierleistung Pionierleistungerhielt erhieltCodd Codd 1982 1982den denTuring TuringAward Awardder derACM, ACM, den den"Nobelpreis "Nobelpreisder derInformatik". Informatik". © 2002 Prof. Dr. Rainer Manthey "A Relational Model of Data for Large Shared Data Banks", in der er alle Grundlagen der heutigen relationalen DB in bestechender Klarheit niederlegte. Informationssysteme 7 Microsoft Access: Allgemeine Informationen Kapitel 2 • Access ist ein DBMS für relationale Datenbanken, das seit 1992 von Microsoft (weiter-)entwickelt und vertrieben wird. • "Access-Homepage" bei Microsoft: http://www.microsoft.com/office/access/default.asp • aktuelle Version in Office-Paketen von MS: Access 2000 • Access ist sehr gut geeignet für kleine bis mittlere DB-Anwendungen ohne Mehrbenutzerbetrieb. • nützliche Internet-Tutorien zu Access (Links auf der entsprechenden Seite zur Vorlesung): • • Michael Brydons Tutorium an der Simon Fraser University, Canada http://mis.bus.sfu.ca/tutorials/MSAccess/tutorials.html • Maggie Straplands Access-Seiten an der University of Bristol, UK http://www.bris.ac.uk/is/services/software/packages/access/ • Jakob Lindenmeyers Access-Tutorium an der ETH Zürich, Schweiz http://www.inf.ethz.ch/personal/lindenme/publications/access/AccessTutorial.html Im Buchhandel gibt es sehr viele Bücher über den Umgang mit Access. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 8 Access-Selbststudium mit der Online-Hilfe Kapitel 2 Zu allen Konzepten von Access finden Sie ausführliche, gut verständliche Erklärungen durch Aufrufen der Online-Hilfe ("Office Assistent"), z. B. zum Thema "Tabellen": © 2002 Prof. Dr. Rainer Manthey Informationssysteme 9 Warum Access ? Kapitel 2 Warum Warumwird wirdAccess Accessin indieser dieserVorlesung Vorlesungverwendet verwendet?? • Access ist proprietär, kommerziell . . . und dazu noch von Bill Gates! aber . . . • fast jeder private PC-Nutzer hat heutzutage Access auf seinem Computer. • Access bietet einen idealen Einstieg in die Thematik ohne grossen Aufwand. • praktisches Arbeiten mit Datenbanken ist essentiell für jeden Hörer ! • es gibt reichlich frei verfügbares Material zum Selberlernen. • heutzutage gehört das Kennen von Office-Tools fast schon zur Allgemeinbildung. • Access ist in seiner Leistungsfähigkeit beschränkt und hat Schwächen, aber . . . • Access bietet auch Funktionalitäten, die (fast) kein anderes DBMS bietet. • Access reicht für die Bedürfnisse eines individuellen Studierenden völlig. • Access ist leicht zu installieren und benötigt keinen DB-Administrator. • Sollte jemand von Ihnen irgendwelche Vorurteile gegenüber Access haben: Es ist keineswegs "unter der Würde" eines Uni-Informatikers, ein solches "einfaches" System zu kennen und zu beherrschen! And , ititcan Andby bythe theway way, canbe begreat greatfun, fun,folks folks!! © 2002 Prof. Dr. Rainer Manthey Informationssysteme 10 Tabelle vs. Relation Kapitel 2 • terminologischer "Konflikt" bei der Bezeichnung für die wichtigste Form von Datenbankobjekten: Tabelle Tabelleoder oderRelation Relation?? • in der Praxis (z.B. bei Access): Betonung auf optischer Darstellung in Tabellenform • in der Wissenschaft: Betonung der mathematischen Grundlage als Relation • prinzipielle Unterschiede zwischen beiden Bezeichnungen: Tabelle Tabelle −− 2-2-dim. dim. Array Arrayaus ausZeilen/Spalten Zeilen/Spalten −− geordnet geordnet −− doppelte doppelteZeilen Zeilenmöglich möglich Relation Relation −−Menge Mengevon vonTupeln Tupeln geordnet −−un ungeordnet −−duplikat frei duplikatfrei • aber: • Relationen lassen sich in Tabellenform visualisieren, wenn man eine bestimmte Anordnung wählt. • Tabellen lassen sich als Relationen formalisieren, wenn man keine Duplikate zulässt und von der Anordnung absieht. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 11 Bundesliga-DB Kapitel 2 1. Beispiel-Datenbank: Bundesliga-Datenbank Bundesliga-Datenbank • . . . enthält Ergebnisse aller Spiele der 1. FußballBundesliga in der aktuellen Saison 2002/03. • . . . wird während des Semesters stets aktualisiert. • . . . stets als Access-Datenbank in der Datei bundesliga02.mdb über die Vorlesungs-Webseiten zur Verfügung. • . . . darf natürlich heruntergeladen und verändert werden. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 12 Bundesliga-DB: Ergebnisdaten Kapitel 2 Ergebnisübersicht des 8. Spieltags am 5.10.2002: Hertha HerthaBSC BSCBerlin Berlin --1.1.FC FCNürnberg Nürnberg VfL VfLWolfsburg Wolfsburg--Bayer BayerLeverkusen Leverkusen Bayern BayernMünchen München --VfL VfLBochum Bochum Werder Bremen FC Hansa Werder Bremen - FC HansaRostock Rostock Hannover Hannover96 96--Borussia BorussiaDortmund Dortmund Mönchengladbach Mönchengladbach--Arminia ArminiaBielefeld Bielefeld FC FCSchalke Schalke04 04--Hamburger HamburgerSV SV VfB VfBStuttgart Stuttgart--TSV TSV1860 1860München München 1.1.FC Kaiserslautern Energie FC Kaiserslautern - EnergieCottbus Cottbus Heimspiel 2:1 2:1 2:0 2:0 4:1 4:1 0:0 0:0 0:3 0:3 3:0 3:0 3:0 3:0 4:1 4:1 4:0 4:0 Ergebnisse Auswärtsspiel (pro Spieltag 9 Spiele Þ bis inklusive 8. Spieltag 72 Spiele) © 2002 Prof. Dr. Rainer Manthey Informationssysteme 13 DB-Tabellenformat für Fußballergebnisse Kapitel 2 Hertha HerthaBSC BSCBerlin Berlin --1.1.FC FCNürnberg Nürnberg . .. .. . 2:1 2:1 Feldnamen Tabellenname Spiele2002 Heim Hertha Hertha . .. .. . Felddatentypen © 2002 Prof. Dr. Rainer Manthey Text ToreH 22 Zahl Auswärts ToreA Datum Nürnberg Nürnberg Text Informationssysteme 11 5.10.02 5.10.02 Zahl Datum Datensatz 14 Access-Tabelle für Spiele: Datenblattansicht Kapitel 2 Access-Tabelle "Spiele2002": Datenblattansicht © 2002 Prof. Dr. Rainer Manthey Informationssysteme 15 Access-Tabelle für Spiele: Entwurfsansicht Kapitel 2 Access-Tabelle "Spiele2002": Entwurfsansicht © 2002 Prof. Dr. Rainer Manthey Informationssysteme 16 Access-Pragmatik Access-Pragmatik:: Menüleisten für Tabellenentwurf und -manipulation -manipulation Kapitel 2 • in der Entwurfssicht: 1 2 Wechseln in die alte Datenblattsicht (vor Entwurfsänderung) Abspeichern des aktuellen Entwurfs (vor Öffnen des Datenblatts) • in der Datenblattsicht: 1 12/13 17 © 2002 Prof. Dr. Rainer Manthey Wechseln in die Entwurfssicht Ordnen der Daten nach einem oder mehreren Feldern Suchen mittels "pattern matching" im Datenblatt Informationssysteme 17 DB-Begriffe: Schema und Zustand einer Datenbank Kapitel 2 • Den beiden unterschiedlichen "Ansichten" einer Tabelle in Access entsprechen zwei grundlegende Begriffe der relationalen Datenbanken: Entwurfsansicht Schema Schemaund undZustand Zustand Datenblattansicht • Schema einer Relation: Festlegung von Name und Struktur der Relation • Zustand einer Relation: Gesamtheit aller aktuell in der Relation enthaltenen Tupel • Die Struktur jedes Zustands einer Relation wird festgelegt durch deren Schema. (Zustände werden auch Instanzen des Schemas genannt) • Im allgemeinen bleibt bei Zustandsübergängen (DB-Änderungen) das Schema fix. • In seltenen Fällen treten auch Schemaänderungen auf, denen sofortige Zustandsanpassungen folgen: Schemaevolution • Plural von Schema: Schemata (nicht etwa "Schemen") ! © 2002 Prof. Dr. Rainer Manthey Informationssysteme 18 Schemata und Zustände Kapitel 2 Schema1 Schema2 Instanzen des Schemas Zustände aktueller Zustand © 2002 Prof. Dr. Rainer Manthey Informationssysteme 19 Bundesliga-DB: Bundesliga-Tabelle Kapitel 2 Bundesliga-Tabelle nach dem 8. Spieltag: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Verein Spiele Bayern 8 Dortmund 8 Werder 8 Schalke 8 Rostock 8 Wolfsburg 8 Hertha 8 Gladbach 8 Bochum 8 1860 8 Stuttgart 8 Bielefeld 8 Nürnberg 8 HSV 8 Leverkusen 8 Hannover 8 1.FCK 8 Cottbus 8 S 6 4 5 4 4 4 3 3 3 3 2 3 3 3 2 2 1 1 © 2002 Prof. Dr. Rainer Manthey U 1 4 1 3 1 1 3 2 2 2 4 1 0 0 2 1 3 1 N Punkte Tordifferenz Tore Gegentore 1 19 14 22 8 0 16 7 12 5 2 16 3 14 11 1 15 6 12 6 3 13 5 11 6 3 13 1 8 7 2 12 2 9 7 3 11 4 10 6 3 11 2 16 14 3 11 -1 11 12 2 10 3 14 11 4 10 -6 9 15 5 9 -4 10 14 5 9 -6 9 15 4 8 -4 12 16 5 7 -7 11 18 4 6 -4 7 11 6 4 -15 5 20 Informationssysteme Punkteberechnung: • pro Sieg: 3 Punkte • pro Unentschieden: 1 Punkt Platzierungskriterien: • Punktzahl • Tordifferenz • erzielte Tore S: Siege U: Unentschieden N: Niederlagen 20 DB-Tabellenformat für die Bundesliga-Tabelle Kapitel 2 Auch die (Bundesliga-)Tabelle liesse sich mit einer (Datenbank-)Tabelle modellieren: die doppelte Verwendung des Begriffs geschieht bewusst, der Unterschied zwischen beiden Bedeutungen ist wesentlich! Tabelle Verein Bayern Bayern . .. .. . Text Spiele S U N Punkte Tordifferenz 88 66 11 11 19 19 14 14 Tore Gegentore 22 22 88 Zahl Zahl . . . Aber es ist keine so gute Idee, dies zu tun . . . (mehr dazu später) ! © 2002 Prof. Dr. Rainer Manthey Informationssysteme 21 Terminologievergleich: Terminologievergleich: relationale Grundkonzepte Kapitel 2 Leider werden für die relationalen Grundkonzepte unterschiedliche Bezeichnungen verwendet, die als Synonyme zu betrachten sind: Theorie Praxis Access Relation Relation Tabelle Tabelle Datenblatt Datenblatt Tupel Tupel Zeile Zeile Datensatz Datensatz Attribut Attribut Spalte Spalte Feldbezeichner Feldbezeichner Wertebereich Wertebereich Datentyp Datentyp Felddatentyp Felddatentyp Es wird dringend empfohlen, Begriffe immer konsistent aus einem der drei Begriffssysteme zu wählen - welches ist egal, Hauptsache konsequent! © 2002 Prof. Dr. Rainer Manthey Informationssysteme 22 Access: Versionenproblematik Kapitel 2 Access Access97 97oder oderAccess Access2000 2000?? • Alle Beispiele in dieser Vorlesung sind (bisher) anhand der älteren Version des Access-DBMS demonstriert worden: Access 97 • In der neueren Version - Access 2000 - funktioniert das meiste so wie in Access 97, aber die Fenster haben ein etwas anderes Design und es gibt kleine Unterschiede in der Funktionalität. • Access 97-DB werden von Access2000 nicht "verstanden" - und umgekehrt. Es gibt aber Konvertierungsmöglichkeiten in beide Richtungen. • Die Beispieldatenbanken im Web stehen in beiden Versionen zur Verfügung manchmal nicht ganz synchron angepasst (s. "Zeitstempel"). • Bei Fragen (oder gar Problemen) wenden Sie sich bitte in den Übungen an die Mitarbeiter. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 23 Interaktion mit Datenbanken: Prinzip Kapitel 2 grundlegende Interaktionsformen mit Datenbanken: lesender modus lesenderZugriff: Zugriff: Anfrage Anfragemodus DB DBMS schreibender : Änderungs modus schreibenderZugriff Zugriff: Änderungsmodus © 2002 Prof. Dr. Rainer Manthey Informationssysteme 24 Suchen und Anfragen Kapitel 2 Was Wasbedeutet bedeutet"lesender "lesenderZugriff" Zugriff"auf aufeine eineDatenbank Datenbank?? Es gibt sehr verschiedene Formen, lesend auf eine DB zuzugreifen nur wenige DBS unterstützen alle diese Formen! • einfache Formen des "retrieval": • Durchmustern der Datensätze einer Tabelle: "browsing" • Suche nach einzelnen/allen Datensätzen, die bestimmte Textmuster in bestimmten Feldern enthalten: "pattern matching" • komplexe Formen des "retrieval": • Auffinden aller Datensätze einer Tabelle, die komplexe Suchbedingungen erfüllen, die in einer eigenen Sprache formuliert werden können: "querying" • Konstruieren beliebiger neuer Resultattabellen aus den Inhalten einer oder mehrerer Datenbank-Tabellen (bzw. bereits konstruierter Resultate). © 2002 Prof. Dr. Rainer Manthey Informationssysteme 25 DB-Begriffe rund ums Suchen Kapitel 2 englisch/deutsche englisch/deutscheTerminologie Terminologiezum zumThema Thema"Suchen" "Suchen"in inDatenbanken Datenbanken • engl. "to search": dt. "suchen" - im DB-Kontext unüblich • engl. "to browse": dt. wörtlich "stöbern", übertragen etwas wie "unorganisiert durchlaufen" • engl. "pattern matching": dt. "Mustervergleich" • engl. "to retrieve": dt. "wiederfinden", "auffinden" (zugehöriges Substantiv: engl. "retrieval") • engl. "to query": dt. "fragen", "nachfragen", "abfragen", "bitten" • als Substantiv speziell im DB-Kontext: engl. "query": dt. "Abfrage", "Anfrage" (DB-spezifisch, beide Varianten üblich, auch im Sinne von Aufforderung [an das DBMS]) © 2002 Prof. Dr. Rainer Manthey Informationssysteme 26 Anfrageformulierung: Allgemeines Kapitel 2 • Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagementsysteme ist die Unterstützung einer (oder mehrerer) Anfragesprachen. • Eine Anfrage ist ein Ausdruck dieser Sprache, der . . . • im Prinzip beliebig komplexe Suchkriterien ausdrücken kann. • sich auf eine oder mehrere Tabellen gleichzeitig beziehen kann. • als Antwort beliebig viele Datensätze oder auch Ja/Nein liefern kann. • Datensätze als Antwortmenge wieder in Tabellenform liefert. • Access bietet zwei grundsätzlich verschiedene Anfragesprachen, die zwei völlig unterschiedliche "Paradigmen" der Anfrageformulierung repräsentieren: • graphisch-interaktiv: "Query-by-Example" (QBE) • textuell: "Structured Query Language" (SQL) • SQL ist die am weitesten verbreitete Anfragesprache für relationale DB. SQL ist standardisiert und wird von allen kommerziellen DBMS "verstanden". © 2002 Prof. Dr. Rainer Manthey Informationssysteme 27 Access-Anfragesprachen: QBE-Stil in der Entwurfssicht Welche WelcheHeimHeimspiele spielehat hatWerder Werder Bremen Bremengewonnen gewonnen?? Kapitel 2 Tabelle, aus der die Daten stammen Formulierung im QBE-Stil: • graphisch dargestellt • interaktiv konstruiert Auswahlkriterien Access-Bezeichnung: ebenfalls Entwurfssicht © 2002 Prof. Dr. Rainer Manthey Schema der Antworttabelle Informationssysteme 28 Access-Anfragesprachen: SQL-Formulierung derselben Anfrage Kapitel 2 Welche WelcheHeimHeimspiele spielehat hatWerder Werder Bremen Bremengewonnen gewonnen?? Schema der Antworttabelle Tabelle, aus der die Daten stammen dieselbe Anfrage im SQL-Stil formuliert: Auswahlkriterien • textuell dargestellt • entweder per Hand eingegeben oder automatisch erzeugt © 2002 Prof. Dr. Rainer Manthey Informationssysteme 29 Access-Anfragesprachen: Antworttabelle in Datenblattsicht Kapitel 2 Welche WelcheHeimHeimspiele spielehat hatWerder Werder Bremen Bremengewonnen gewonnen?? zugehörige Antwort als Tabelle im Datenblattformat © 2002 Prof. Dr. Rainer Manthey Informationssysteme 30 Access-Anfragesprachen: Synchronisation beider Stile Kapitel 2 Änderungen in der Anfrageformulierung in einer Sicht werden automatisch an die andere Sicht weitergereicht: Synchronisation beider Darstellungen QBE-Ansicht SQL-Ansicht SELECT FROM WHERE © 2002 Prof. Dr. Rainer Manthey Informationssysteme 31 Vordefinierte Anfragen als DB-Inhalte in Access Kapitel 2 • In Access ist es möglich, Anfragen (bzw. Abfragen) in der DB zu speichern. • Beim Öffnen einer vordefinierten Anfrage wird die Antworttabelle jedesmal neu generiert. vordefinierte Abfragen in der Bundesliga-DB • wichtig: Nicht die Antworttabelle wird gespeichert, sondern nur der Anfrageentwurf. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 32 Bundesligatabelle als Antworttabelle auf eine Anfrage Kapitel 2 Die BundesligaTabelle ist z.B. durch eine Anfrage in Access definiert. Alle Felder der Antworttabelle dieser Anfrage sind über mehrere Stufen aus den Ergebnissen in 'Spiele2002' errechnet worden. "abgeleitete "abgeleiteteTabelle" Tabelle" © 2002 Prof. Dr. Rainer Manthey Informationssysteme 33 Vordefinierte Anfragen in der Bundesliga-DB Kapitel 2 • Antworttabellen auf vordefinierte Anfragen werden ganz ähnlich wie "richtige" Tabellen behandelt. Insbesondere können sie selbst wieder zum Konstruieren neuer Anfragen dienen: Unteranfragen • In der Bundesliga-DB ergibt sich folgende Hierarchie von (Unter-)Anfragen: Tabelle Tabelle2 Tabelle1 abgeleitete Tabellen Spiele Siege gespeicherte Tabellen © 2002 Prof. Dr. Rainer Manthey So Sokomplex komplexkann kann das werden das werden! ! AnzahlSiege AnzahlUnentschieden AnzahlNiederlagen Unentschieden Niederlagen Spiele2002 Vereine2002 Informationssysteme 34 Spezielle Anfragen in Access: nur in SQL möglich! Kapitel 2 • Im Bundesliga-Beispiel kommen einige vordefinierte Anfragen vor, die in der Entwurfssicht nicht darstellbar sind (d.h., die man nicht im QBE-Stil ausdrücken kann), z.B. Siege oder Spiele. • Diese Anfragen lassen Sie nur in SQL mit textuellen Mitteln definieren. • In diesen Beispielen fehlt jedesmal die Möglichkeit, zwei gleich strukturierte Antworttabellen "aneinander zu hängen" bzw. "zu vereinigen", z.B. HeimSiege Siege • SQL bietet dazu einen speziellen Vereinigungsoperator für Relationen: UNION • AuswärtsSiege © 2002 Prof. Dr. Rainer Manthey Mehr zu den Möglichkeiten von SQL lernen Sie im nächsten Kapitel! Informationssysteme 35 Access-Pragmatik Access-Pragmatik:: Anfrageformulierung Kapitel 2 • in der Entwurfssicht: 1 2 12 Wechseln in die alte Datenblattsicht (vor Entwurfsänderung) Abspeichern eines Anfrageentwurfs Ausführen der Anfrage, d.h. Wechsel in die neue Datenblattansicht • in der Datenblattansicht: 1 17 Wechseln in die Entwurfssicht Suchen mittels "pattern matching" im Datenblatt im Menü zu diesem Punkt: SQL-Sicht als dritte Alternative © 2002 Prof. Dr. Rainer Manthey Informationssysteme 36 Zustandsänderungen: Allgemeines Kapitel 2 • "Schreibende" Zugriffe auf eine Datenbank . . . • führen stets zu Zustandsübergängen der DB. • finden stets unter Kontrolle des DBMS statt. • drei grundsätzliche Arten von Änderungszugriffen: • Einfügungen neuer Datensätze in eine Tabelle (engl.: "to insert") • Löschungen existierender Datensätze aus einer Tabelle (engl.: "to delete") • Modifikationen einzelner Felder bestimmter Datensätze (engl.: "to update" oder "to modify") • Einfügungen und Modifikationen werden nur akzeptiert (vom DBMS), wenn die vereinbarten Datentypen der Felder im Schema zu den Datentypen der Werte in den neuen/modifizierten Datensätzen "passen". • Vorsicht! Der englische Begriff "update" wird manchmal für Modifikationen, manchmal aber auch für beliebige Änderungen verwendet. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 37 Änderungen in Access: direkt im Datenblatt in Access: individuelle Änderungen von Datensätzen können direkt im Datenblatt vorgenommen werden (nur bei Tabellen, nicht bei Antworten) Kapitel 2 falscher Datentyp DBMS-Kontrolle: • Einfügungen: beim Abspeichern • Löschungen: Bestätigung gefordert • Modifikationen: Datentypkontrolle komplexe Änderungen: später (Aktionsabfragen) © 2002 Prof. Dr. Rainer Manthey Informationssysteme 38 2. Beispieldatenbank: " Beispieldatenbank: "Stadt-Land-Fluss "Stadt-Land-Fluss" Kapitel 2 • Weitere Access-Beispieldatenbank, die in der Vorlesung verwendet wird und zu Übungszwecken allen Teilnehmern zur Verfügung steht (siehe Vorlesungsseiten im Web). stadtlandfluss .mdb stadtlandfluss.mdb • Datenbank mit grundlegenden Informationen zur Geographie Deutschlands: • wichtigste Städte und Flüsse (z.B. alle deutschen Städte über 50000 Einwohner) • alle Bundesländer und Regierungsbezirke • zahlreiche Informationen zum geographischen Zusammenhang dieser Objekte (z.B. In welchem Land liegt Bonn? Welche Nebenflüsse hat der Rhein?) • DB wird ständig erweitert - eigene Beiträge willkommen! • Ziel dieser "Investition": • Gelegenheit zum Üben korrekter Anfrageformulierung anhand einer hinreichend grossen Datenmenge aus realistischen Fakten von allg. Interesse. • Wird im ersten Teil der Vorlesung und in den Übungen verwendet. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 39 Tabellen in der StadtLandFluss-Datenbank StadtLandFluss-Datenbank Kapitel 2 Das Schema dieser Beispiel-DB enthält zahlreiche Tabellen, aber nur wenige vordefinierte Anfragen. Aber es eignet sich hervorragend zum Üben im Formulieren eigener Anfragen! © 2002 Prof. Dr. Rainer Manthey Informationssysteme 40 StadtLandFluss-Datenbank: StadtLandFluss-Datenbank: Nebeneffekt Kapitel 2 Deutschland Können Sie all diesen deutschen Städten ihre Namen zuordnen? Erkennen Sie in dieser Karte alle 16 Bundesländer? © 2002 Prof. Dr. Rainer Manthey Informationssysteme Wenn nicht, dann nutzen Sie die Arbeit mit der SLF-DB auch zum Verbessern Ihrer geographischen GrundKenntnisse ! 41 SLF-Datenbank: Objektklassen und Beziehungen Kapitel 2 hauptstadt_von nachbarland_von Land stadt_in_land Kommt Kommtman manauf auf so eine Weise zu so eine Weise zu einem einem"guten" "guten" Tabellenentwurf Tabellenentwurf?? Stadt fluss_durch_land fluss_entspringt_in_land stadt_an_fluss quellfluss_von Fluss nebenfluss_von © 2002 Prof. Dr. Rainer Manthey Informationssysteme 42 Verknüpfen von Tabellen über "gleichartige" Felder Kapitel 2 • (beinahe) wichtigste Technik der Anfrageformulierung: Verknüpfen von Tabellen über Felder mit gleichem Felddatentyp • im QBE-Stil (d.h. in der Entwurfssicht): Erzeugen von Verbindungslinien zwischen Feldern durch "Drag and Drop" oder selbstständig durch Access stadt ∗ ID Kfz Name Einwohner stadt_in_land hauptstadt_von_land ∗ Name Land ∗ Bundesland Hauptstadt automatisch von Access erstellt wegen Namensgleichheit der Felder © 2002 Prof. Dr. Rainer Manthey Informationssysteme per Hand zu erstellen wegen gleichem Typ und gleicher Bedeutung 43 Verknüpfungen: implizite Antworttabelle stadt ∗ ID Kfz Name Einwohner Kapitel 2 stadt_in_land hauptstadt_von_land ∗ Name Land ∗ Bundesland Hauptstadt Effekt der Verknüpfung: Bilden einer grossen "Produkttabelle" aus allen Feldern der verknüpften Tabellen ID Kfz stadt.Name Einwohner stadt_in_land.Name Land Bundesland Hauptstadt nötig wegen Namensgleichheit aber: Nur Datensätze mit identischem Wert in verknüpften Feldern werden aufgenommen! 1 B Berlin © 2002 Prof. Dr. Rainer Manthey 3382 Berlin Informationssysteme BE BE Berlin 44 Verknüpfung in SQL-Stil: JOIN-Operation Kapitel 2 • im SQL-Stil: eigener Operator zum Verknüpfen von Tabellen Join Join (engl., auf Deutsch: "Verbund") • diverse Varianten: INNER JOIN, LEFT JOIN, RIGHT JOIN • genaue Beschäftigung damit in Kapitel 3 SELECT land.*, hauptstadt_von_ land.* SELECTstadt.*, stadt.*,stadt_in_ stadt_in_land.*, hauptstadt_von_land.* FROM land FROM(stadt (stadtINNER INNERJOIN JOINstadt_in_ stadt_in_land ON land.Name) ONstadt.Name stadt.Name==stadt_in_ stadt_in_land.Name) INNER land INNERJOIN JOINhauptstadt_von_ hauptstadt_von_land ON land.Land ==hauptstadt_von_ land.Bundesland; ONstadt_in_ stadt_in_land.Land hauptstadt_von_land.Bundesland; Join-Bedingung: Namensgleichheit Join-Bedingung: von Hand wegen gleichem Typ © 2002 Prof. Dr. Rainer Manthey Informationssysteme 45 Warum "Query by Example" Example" ? stadt ∗ ID Kfz Name Einwohner Kapitel 2 stadt_in_land hauptstadt_von_land ∗ Name Land ∗ Bundesland Hauptstadt Bezeichnung "Query by example" (= "Anfrage durch Beispiel") stammt von der ursprünglichen Form dieser graphischen Sprache (aus den 1970er Jahren): Verknüpfung wurde definiert durch Verwenden identischer Beispielwerte in zu verknüpfenden Feldern stadt_in_land.Name Land ID Kfz Berlin stadt.Name Einwohner BE Berlin Bundesland Hauptstadt BE © 2002 Prof. Dr. Rainer Manthey Informationssysteme 46 Übung im Formulieren von Anfragen mittels QBE-Modus Kapitel 2 • letzte Woche kennengelernt: interaktives, graphisches Konstruieren von Suchbefehlen (Anfragen) im "Query-by-Example"(QBE)-Stil • zunächst "zum Warmwerden": Formulierung einiger Beispielanfragen an die StadtLandFluss-Datenbank in diesem Stil • Access-Terminologie für dieses Art Anfragen, bei denen eine temporäre Antworttabelle erzeugt wird: Auswahlabfrage Auswahlabfrage • Hauptschwierigkeiten: • korrektes Verknüpfen der beteiligten Tabellen über bedeutungsgleiche Felder • korrektes Formulieren der Suchbedingungen ("Kriterien") • korrekte Verwendung der arithmetischen Funktionen insbesondere zum Aggregieren von Feldern (Summe, Anzahl, Maximum etc.) mit entsprechender Gruppierung anderer Felder • Erkennen der Grenzen des QBE-Stils © 2002 Prof. Dr. Rainer Manthey Informationssysteme 47 Aufbau von Anfragen im QBE-Stil: Details Kapitel 2 Feldname Feldname Tabellenname Tabellenname Feld: Tabelle: Sortierung: Anzeige: Kriterien: oder: Einwohner stadt Aufsteigend fest festvorgegebene vorgegebene Sortierung Sortierung √ > 150 Auswahlkriterien Auswahlkriterien für füranzuzeigende anzuzeigende Feldwerte Feldwerte © 2002 Prof. Dr. Rainer Manthey Feld Feldsoll sollangezeigt angezeigtwerden werden?? mehrere Kriterien für ein Feld mit Booleschen Operatoren verknüpft, z.B.: > 150 Und < 500 Informationssysteme 48 Aufbau von Anfragen im QBE-Stil: Konjunktion Kapitel 2 • Kriterien für verschiedene Felder werden implizit konjunktiv verknüpft. Feld: Tabelle: Sortierung: Anzeige: Kriterien: oder: Einwohner stadt Land stadt_in_land Aufsteigend √ √ > 150 Und < 500 <> "BY" explizite Konjunktion • Formulierung der dahinter stehenden Bedingung im SQL-Stil: WHERE WHERE stadt.Einwohner stadt.Einwohner>>150 150 AND ANDstadt.Einwohner stadt.Einwohner<<500 500 AND land.Land <> AND stadt_in_ stadt_in_land.Land <>"BY" "BY" implizite Konjunktion © 2002 Prof. Dr. Rainer Manthey Informationssysteme 49 Aufbau von Anfragen im QBE-Stil: Disjunktion Kapitel 2 • In einer neuen Kriterienzeile können Alternativen (implizite Oder-Verknüpfungen) auch über mehrere Felder hinweg formuliert werden: Feld: Tabelle: Sortierung: Anzeige: Kriterien: oder: Einwohner stadt Land stadt_in_land Aufsteigend √ > 150 = "BY" = "NW" • Formulierung der dahinter stehenden Bedingung im SQL-Stil: WHERE land.Land <> WHERE ((stadt.Einwohner stadt.Einwohner>>150 150 AND AND stadt_in_ stadt_in_land.Land <>"BY" "BY")) OR land.Land <> OR (stadt_in_ (stadt_in_land.Land <>"NW" "NW")) implizite Disjunktion © 2002 Prof. Dr. Rainer Manthey Informationssysteme 50 Parametrisierte Abfragen Kapitel 2 • Oft ist es erforderlich, immer wieder ähnliche Anfragen zu stellen, die sich nur in einem oder mehreren "Anfrageparametern" unterscheiden, ansonsten aber strukturell identisch sind, so dass man sie gerne vordefinieren würde. • Beispiel: "Welche Großstädte liegen im Bundesland X ?" • Variante 1: "Welche Großstädte liegen in Nordrhein-Westfalen?" • Variante 2: "Welche Großstädte liegen in Bayern ?" • Access unterstützt solche parametrisierten Anfragen durch Zulassen von Variablen in Anfragen (in QBE und SQL). • Variablen werden durch Einschließen in Klammern kenntlich gemacht. (Vorsicht! Gefahr der Verwechslung mit Feldnamen) • Wird eine parametrisierte Anfrage ausgewertet, dann erscheint zunächst pro Parameter ein Dialogfeld, in dem nach dem aktuellen Werten für diesen Parameter gefragt wird. • Der Name der Variable erscheint in diesem Feld, kann also (als String) zum Formulieren einer Eingabeaufforderung "missbraucht" werden. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 51 Parametrisierte Anfrage: Beispiel Kapitel 2 "Welche "WelcheGroßstädte Großstädteliegen liegenim imBundesland BundeslandXX?" ?" Feld: Tabelle: Sortierung: Anzeige: Name großstadt √ Kriterien: oder: Einwohner großstadt Land stadt_in_land Variable : Variable: Statt Statt[X] [X]wird wird String Stringmit mitEingabeEingabeaufforderung aufforderungver verwendet. wendet. √ ["Bundesland, in automatisch erzeugtes Dialogfeld zur Eingabe des aktuellen Parameters: © 2002 Prof. Dr. Rainer Manthey Informationssysteme 52 Aggregieren und Gruppieren Kapitel 2 • weitere wichtige Grundfunktionalität aller DB-Anfragesprachen: Berechnen von zusammenfassenden numerischen Werten über bestimmten Feldern einer Tabelle (z.B. Anzahl, Summe, Maximum, Minimum usw.) Aggregieren Aggregieren • zugehörige arithmetische Funktionen: Aggregatfunktionen • im Access-Entwurfsmodus für Anfragen: Durch Klicken auf das Funktionensymbol å in der Schaltflächenleiste aktivierbar ! • Anwenden von Aggregatfunktionen erfordert in der Regel vorher das Einteilen der jeweiligen Tabelle in Gruppen gemäß den Werten eines anderen Feldes: Gruppieren Gruppieren • Beispiel: Maximum der Werte im Feld B pro Wert im Feld A © 2002 Prof. Dr. Rainer Manthey A Gruppen a1 a1 a2 a2 a2 Informationssysteme B 3 5 6 9 1 Maximum: 5 Maximum: 9 53 Aggregieren und Gruppieren: ein einfaches Beispiel Kapitel 2 Größe der größten Stadt im Land: • Gruppierung nach Ländern • Aggregierung mit Max(imum)-Fkt. über 'Einwohner' Vorsicht! Will man auch den Namen dieser größten Stadt sehen, gibt's Probleme - das geht nicht so einfach . . . © 2002 Prof. Dr. Rainer Manthey Funktionsmodus aktiviert ! Gruppierung Aggregierung Informationssysteme 54 Aggregieren und Gruppieren: eine schwierige Variante! Kapitel 2 . . . das geht nur unter Rückgriff auf die vorige Anfrage: vorige Anfrage als Unteranfrage Welche Stadt hat die gleiche Einwohnerzahl wie die größte Stadt in dem Land, in dem sie liegt ? oder eigentlich: Wie heisst die größte Stadt im Land? hier als parametrisierte Anfrage © 2002 Prof. Dr. Rainer Manthey Informationssysteme 55 Tabellenerstellungsabfragen Kapitel 2 • Manchmal ist das Beantworten einer Anfrage relativ "teuer" (zeitaufwändig), ist aber häufig erforderlich, so dass immer wieder die hohen Kosten anfallen. • In diesem Fall wäre es besser, die Antworttabelle nur einmal zu berechnen und dann als "echte" Tabelle permanent und explizit zu speichern: Materialisierung der Anfrage • Anfragen, deren Antworttabelle explizit gespeichert werden soll, heissen in Access-Terminologie Tabellenerstellungsabfragen Tabellenerstellungsabfragen . • Zu einer solchen Anfrage A gehört eine ganz bestimmte Tabelle TA, die von der Anfrage "gespeist" wird: • Wird A erstmals aufgerufen, dann wird TA mit Datensätzen gefüllt. • Bei jedem erneuten Aufruf von A wird TA komplett ersetzt. • Nach jeder Änderung der von A referenzierten Tabellen, sollte man TA durch erneuten Aufruf von A anpassen. • TA kann wie jede Tabelle separat verändert werden, man verliert dann aber den durch die Erstellungsabfrage A definierten logischen Bezug! © 2002 Prof. Dr. Rainer Manthey Informationssysteme 56 Aktionsabfragen Kapitel 2 • Tabellenerstellungabfragen sind Beispiele einer grösseren Klasse von Anfragen, bei denen in Abhängigkeit von den Ergebnissen einer Suchanfrage bestimmte Änderungsaktionen durchgeführt werden: Aktionsabfragen Aktionsabfragen • Access kennt folgende Typen von Aktionsabfragen: • Tabellenerstellungsabfragen • Anfügeabfragen • Löschabfragen • Aktualisierungsabfragen • Auch hier gehört zu jeder Aktionsabfrage A eine zu manipulierende Tabelle TA. • Antworten auf Anfügeabfragen werden TA angefügt, Antworten auf Löschabfragen werden aus TA entfernt. • Aktualisierungsabfragen ermöglichen das selektive Ändern bestimmter Felder in Abhängigkeit von Bedingungen und Ausdrücken. Auf diese Weise können mehrere Felder verschiedener Tabellen modifiziert werden: TA ist implizit. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 57 Aktualisierungsabfrage: Beispiel Kapitel 2 Hier Hierkann kannder der Abfragetyp Abfragetypausausgewählt werden! gewählt werden! Aktualisierungsabfrage: Vermindere die Einwohnerzahl aller Städte in NW um 10.000 ! zusätzliche zusätzlicheZeile Zeile für fürAktualisierungs Aktualisierungsausdruck ausdruck © 2002 Prof. Dr. Rainer Manthey Aktualisierungsausdruck : Aktualisierungsausdruck: [Einwohner] [Einwohner]−−10 10 Informationssysteme 58 Nullwerte und Standardwerte Kapitel 2 • zurück zur Bundesliga-Datenbank: Ergebnisse vom 9. und 10. Spieltag sind mittlerweile nachgetragen! • Auch die Spielpaarungen des kommenden 11. Spieltags stehen schon in der Spiele2002-Tabelle, noch ohne jeglichen Eintrag in den Tore-Feldern: Nullwerte Nullwerte • allgemein: Leere Felder gelten als mit einem speziellen Wert "Null" belegt, der zu jedem Felddatentyp implizit mit dazu gehört! • Es gibt ein Boolesches Prädikate, um ein Feld auf Nullwerte zu testen: Ist Null (siehe neue Anfragen "AusstehendeSpiele" und "AbsolvierteSpiele") • Nullwerte werden beim Berechnen arithmetischer Werte (z.B. Summe von Toren) nicht mit gerechnet ("verfälschen Tabelle nicht"). • Würde man stattdessen in den Torefeldern den Standardwert des Datentyps Integer, die Ziffer 0, verwenden, würde jede solche Partie als 0:0 unentschieden angesehen und als Spielergebnis mit in der Tabelle berüclsichtigt. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 59 Primärschlüssel Kapitel 2 • bisher versehentlich möglich: Doppeltes Eintragen eines Ergebnisses, d.h. mehrfaches Vorkommen identischer Datensätze • offenbar in der Bundesliga: pro Datum und Mannschaft nur ein Spiel ! • (Kombinationen von) Felder(n), deren Werte den jeweiligen Datensatz eindeutig innerhalb der Tabelle identifizieren: Schlüssel Schlüssel • Access erlaubt es, pro Tabelle einen solchen Schlüssel zu vereinbaren: Primärschlüssel Primärschlüssel • dazu im Entwurfsmodus: Markieren des Feldes (der Felder) und Auswählen des Menüpunkts 'Primärschlüssel' im Menü 'Bearbeiten' (Schlüsselsymbol) • Versucht man nun, einen Datensatz einzufügen, dessen Schlüsselwerte bereits in einem existierenden Datensatz der Tabelle vorkommen, wird der Einfügeversuch vom Access-DBMS zurückgewiesen! © 2002 Prof. Dr. Rainer Manthey Informationssysteme 60 Gültigkeitsregeln Kapitel 2 • Zahlreiche weitere Fehlerquellen bei Eingabe und Modifikation von Datensätzen, z.B.: • negative Zahlen auf den Feldern 'ToreH' und 'ToreA' • Zahlen über 18 oder unter 1 im Feld 'Spieltag' • Um solche semantisch falschen Feldwerte zu verhindern, kann man beim Tabellenentwurf Gültigkeitsregeln festlegen, die durch das Access-DBMS automatisch überprüft werden. • Pro Feld ist ein Boolescher Ausdruck als Gültigkeitsregel möglich, der von allen zulässigen Feldwerten erfüllt werden muss. • Versuche, "falsche" Feldwerte einzugeben, werden zurückgewiesen. • Dabei wird ein ebenfalls beim Entwurf festgelegter Text als Gültigkeitsmeldung ausgegeben. • Auch in der Zeile "Eingabe erforderlich" im Entwurfsmodus kann eine weitere Beschränkung für Feldwerte festgelegt werden: Ja: Nullwerte verboten Nein: Nullwerte erlaubt © 2002 Prof. Dr. Rainer Manthey Informationssysteme 61 Gültigkeitsregeln: Beispiel Kapitel 2 Gültigkeitsregel für Feld 'Spieltag': • nur positive Werte • höchstens 34 Spiele bei Regelverletzungen: Ausgabe einer Gültigkeitsmeldung Nullwerte im Feld 'Spieltag' verboten! © 2002 Prof. Dr. Rainer Manthey Informationssysteme 62 Referentielle Integrität Kapitel 2 • weitere ernste Fehlerquelle: In die Tabelle 'Spiele2002' kann man ohne weiteres Mannschaftsnamen eingeben, die in der Tabelle 'Vereine2002' (die alle aktuellen Bundesligavereine enthält) gar nicht vorkommen, etwa 2.2.FC FCHintertupfingen Hintertupfingen 12 12 SV SVBallaballa Ballaballa 00 1.4.2002 1.4.2002 • Offensichtliche weitere semantisch bedingte Bedingung für gültige Werte der Felder 'Heim' und 'Auswärts': Alle zulässigen Vereinsnamen müssen im Feld 'Kurzform' der Tabelle 'Vereine2002' vorkommen. • In den beiden Feldern von 'Spiele2002' müssen gültige Referenzen auf das Primärschlüsselfeld von 'Vereine2002' stehen: referentielle referentielleIntegrität Integrität • Referentielle Integrität lässt sich in Access-DB durch Einrichten von Beziehungen zwischen Tabellen erhalten. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 63 Beziehungen in der Bundesliga-DB • Beim Klicken der rechten Maustaste im Datenbankfenster erscheint ein Menü, in dem die Option 'Beziehungen' enthalten ist. (alternativ: im AccessMenü 'Extras') • Wie beim Konstruieren von Anfragen lassen sich durch Tabellenauswahl und 'Drag and Drop' Beziehungen erstellen. Kapitel 2 kontrollierende Tabelle kontrollierte Tabelle Kopie der kontrollierenden Tabelle • Ausgangspunkt einer Beziehung muss stets ein Primärschlüssel sein ! • In der kontrollierten Tabelle wird dieses Feld Fremdschlüssel genannt. © 2002 Prof. Dr. Rainer Manthey Informationssysteme 64 Einrichten von Beziehungen mit referentieller Integrität Kapitel 2 • Beim Verbinden zweier Feldnamen im Beziehungsmodus (oder durch Anklicken schon eingerichteter Beziehungen) öffnet sich ein Dialogfeld zum näheren Einstellen der jeweiligen Beziehung. • Beispiel: Beziehung zwischen dem Primärschlüssel von 'Vereine2002' und dem Feld 'Heim' in 'Spiele2002' referentielle Integrität aktiviert Änderungen in 'Kurzform' werden an 'Heim' weitergegeben. • Wird referentielle Integrität entlang einer Beziehung gefordert, dann kann man statt Zurückweisung bei Integritätsverletzung auch konstruktiv die Verletzung "reparieren": durch Aktualisierungsweitergabe und/oder Löschweitergabe © 2002 Prof. Dr. Rainer Manthey Informationssysteme 65 Beziehungen im StadtLandFluss-Schema StadtLandFluss-Schema © 2002 Prof. Dr. Rainer Manthey Kapitel 2 Informationssysteme 66 Integritätsbedingungen Kapitel 2 • Alle bisher vorgestellten Möglichkeiten zur Verhinderung (im Sinne der jeweiligen Anwendung) "sinnloser" Änderungen stellen Spezialfälle eines allgemeinen Grundkonzepts der DB-Technologie dar: Integritätsbedingungen Integritätsbedingungen • andere bedeutungsgleiche Bezeichnung: Konsistenzbedingungen • engl.: "integrity constraints", "consistency constraints" • Integritätsbedingungen sind im allgemeinen Boolesche Ausdrücke, die in jedem Zustand der Datenbank unveränderlich erfüllt sein müssen: Invarianten • Änderungen, die zu Integritätsverletzungen führen würden, werden von jedem DBMS abgefangen und zurückgewiesen. • Access unterstützt folgende speziellen Formen von Integritätsbedingungen: • Schlüsselbedingungen • Gültigkeitsregeln für einzelne Felder • referentielle Integritätsbedingungen (Fremdschlüsselbedingungen) © 2002 Prof. Dr. Rainer Manthey Informationssysteme 67 Relationale Datenbanken in Access: Zusammenfassung Kapitel 2 • Ziele dieses Kapitels: • Einführen in das praktische Arbeiten mit relationalen DB mittels Access • Illustrieren der wichtigsten Grundbegriffe und -konzepte an Beispielen • Zusammenfassung der kennengelernten Begriffe/Konzepte: Datenmodell Datenmodell DB-Schema DB-Schema DB-Zustand DB-Zustand Relation/Tabelle/Datenblatt Relation/Tabelle/Datenblatt Attribut/Spalte/Feld Attribut/Spalte/Feld Tupel/Zeile/Datensatz Tupel/Zeile/Datensatz Wertebereich/Datentyp/Felddatentyp Wertebereich/Datentyp/Felddatentyp Nullwert Nullwert Standardwert Standardwert Beziehung Beziehung DB-Anfrage/-Abfrage DB-Anfrage/-Abfrage Anfragesprache Anfragesprache Unteranfrage Unteranfrage parametrisierte parametrisierteAnfrage Anfrage Aktionsabfrage Aktionsabfrage Integritätsbedingung Integritätsbedingung Gültigkeitsregel Gültigkeitsregel Primärschlüssel Primärschlüssel Fremdschlüssel Fremdschlüssel referentielle referentielleIntegrität Integrität • ab 30.10.: Genaueres Kennenlernen des anderen, von Access unterstützten Stils der Anfragebeantwortung mittels SQL (Structured Query Language) © 2002 Prof. Dr. Rainer Manthey Informationssysteme 68