350 likes | 614 Vues
Umsetzung in Microsoft Access 2000. Museums-Beispiel. Lernziele. Sie führen exemplarisch die Umsetzung eines ERM in ein relationales DBMS durch. Sie können in Microsoft Access Tabellen erstellen und einfache Abfragen mit SQL durchführen. Gliederung. Wiederholung: Museums-ERM
E N D
Umsetzung inMicrosoft Access 2000 Museums-Beispiel
Lernziele • Sie führen exemplarisch die Umsetzung eines ERM in ein relationales DBMS durch. • Sie können in Microsoft Access Tabellen erstellen und einfache Abfragen mit SQL durchführen.
Gliederung • Wiederholung: Museums-ERM • Überblick Microsoft Access 2000 • Umsetzung des ERM in Access • Tabellen erstellen • Praktische Behandlung von 1:1, 1:n und n:m - Beziehungen • (Dateneingabe) • Abfrage der Daten • Einfache Select-Statements • Projektion und Selektion • Datensätze zählen • Joins
Museums-ERM (1) Ein Bild ist von einem Künstler gemalt und hängt in einem definierten Raum eines Museums. Ein Bild hat die Attribute Titel und Erstellungsjahr, für einen Künstler werden Vorname, Name, Geburtsjahr und Geburtsland gespeichert. Für einen Museumsraum will man Raumnummer und Stockwerk speichern, ein Museum hat die Attribute Name, Stadt und Land, wobei die Hauptstadt eines jeden Landes ebenfalls gespeichert wird.
Museums-ERM (2) Entitätstyp Kardinalität Beziehungstyp Attribute Primärschlüssel
Museums-ERM (3) 0, n 0, n
Datenbankobjekte in Tabellen werden die eigentlichen Daten gespeichert ( Datenmodell) Abfragen selektieren und projizieren die Daten aus Tabellen in Formularen können die Daten komfortabel eingegeben werden (= Eingabemaske) Berichte geben die Daten individuell aus Datenzugriffsseiten entsprechen „Formularen im HTML-Format“ Makros vereinfachen Arbeitsabläufe in der Datenbank in Modulen werden mit Hilfe von Access VBA kleine Programme zur Automatisierung erstellt
Entitätstyp (ERM) Entitätstyp Entitätstypname Attribut IdentifizierendeAttribute Relation / Tabelle (RDB) Tabelle Tabellenname Spalte (= Feld) Primary Key Entitätstypen werden zu Tabellen
Relationen-Eigenschaften • R1: Keine zwei n-Tupel einer Relation sind identisch, d.h. es existieren keine zwei identischen Zeilen • R2: Die Reihenfolge der n-Tupel einer Relation ist ohne Belang, d.h. die Folge bzw. Ordnung der Zeilen spielt keine Rolle • R3: Die Reihenfolge der Attribute einer Relation ist ohne Belang, d.h. die Folge der Spalten spielt keine Rolle • R4: Jeder Attributwert in der Relation ist elementar, d.h. eine Menge von Werten ist unzulässig
1:n-Beziehung n:m-Beziehung Umsetzung von Beziehungen 1 n n m
1:n - Beziehung • Beziehungstyp wird nicht zu einer eigenen Tabelle. • Primärschlüssel der Mastertabelle (Museum) wird als Sekundärschlüssel in die Detailtabelle (Raum) eingefügt. Mastertabelle Detailtabelle
n:m - Beziehung • Beziehungstyp wird zu einer Tabelle. • Diese Tabelle enthält als Felder die beiden Primärschlüssel der beteiligten Tabellen.
Beziehungsfenster Verhinderung von Anomalien
Abfragen 2 Möglichkeiten: • QBE (query by example): Erstellen einer Abfrage durch Drag&Drop.Vorteil: einfach, schnellNachteil: oft undurchsichtig; nur Access • SQL (structured query language): Eingabe der Abfragebefehle.Vorteil: strukturiertes Vorgehen, StandardNachteil: dauert länger als QBE
Einsatzmöglichkeiten von SQL • Definition eines SQL als DDL Datenbankschemasmit SQL • Manipulieren von Daten SQL als DMLmit Hilfe von SQL • Abfragen von Daten SQL als DQLmit Hilfe von SQL
SQL-Statement select Grundform des Select-Statements: Select <Attribut(e)> From <Relation(en)> Where <Auswahlbedingung(en)>
Komplette Tabelle anzeigen Select * From Künstler;
Projektion: vertikaler Schnitt Select Nachname, Geburtsjahr From Künstler;
Select * From Künstler Where Geburtsjahr > 1900; Selektion: horizontaler Schnitt
Select Nachname, Vorname From Künstler Where Geburtsjahr > 1900; Selektion und Projektion kombiniert anwenden
Select Nachname, Geburtsjahr From Künstler Order By Geburtsjahr; Sortieren der Zeilen
Select Count(*) From Bild; Anzahl von Datensätzen
Select Count(*) From Bild Where Erstellungsjahr > 1920; Anzahl von Datensätzen
Wie viele Museen besitzt jedes Land ? Variante 1 (umständlich): Select Count(*) From Museum Where Ländercode = "D" Select Count(*) From Museum Where Ländercode = "E" usw. Variante 2 (group by): Select Ländercode, Count(*)From Museum Group by Ländercode Gruppierungen
Having –das „Where“ für Gruppen SELECT LändercodeFrom MuseumGroup By Ländercode; SELECT LändercodeFrom MuseumGroup By LändercodeHaving Count(*) > 1;
Abfragen über mehrere Tabellen Joins Inner join(Equi join) Left/RightOuter join
Inner Join Aufgabe:Finde alle Künstler und deren dazugehörige Geburtsländer. Lösung: SELECT Vorname, Nachname, LandnameFROM Künstler INNER JOIN LandON Künstler.Geburtsland = Land.Ländercode;
Left / Right Outer Join Aufgabe:Finde alle Länder und, wenn vorhanden, die Künstler, die aus dem jeweiligen Land stammen. Lösung: SELECT Landname,Vorname,Nachname FROM Land LEFT JOIN KünstlerON Land.Ländercode = Künstler.Geburtsland;