Access Grundkurs M. Eng. Robert Maaßen
Wer steht da? M. Eng. Robert Maaßen ich@robertmaassen.de www.robertmaassen.de Studium: Informatik Vertiefungsrichtung Medientechnik, Diplom Ingenieur (FH), HAWK, Göttingen Informations- / Elektrotechnik, Master of Engineering, HAWK, Göttingen Arbeit: seit 2001: Selbstständiger Dienstleister im Bereich Medientechnik seit 2008: Ciiju GmbH (Gesellschafter, Entwickler), Göttingen seit 2010: Dozent, Private Hochschule Stade, BA, VWA, götrain Göttingen DIDPM GmbH (Angestellter Entwicklungsleiter), Göttingen
Einführung Access Ein Datenbanksystem, mit dem relationale Datenbanken bearbeitet werden können Datenbanken dienen zur strukturierten Ablage von Daten In relationalen Datenbanken werden miteinander verbundene Tabellen abgelegt Ermöglichen das Erfassen, Aufbereiten und Darstellen von Informationen aller Art
Relationale Datenbanken Begriffe Zeilen => Elemente Spalten => Attribute Schlüsselkandidaten Primärschlüssel: zur eindeutigen Identifizierung der Datensätze; dient als Referenz in anderen Tabellen Fremdschlüssel: ist ein Attribut einer Relation das auf ein primäres Attribut einer anderen Relation verweist Sekundärschlüssel: Menge von Attributen, die datensatzidentifizierende Eigenschaften besitzen und nicht Primärschlüssel sind
Relationale Datenbanken Beziehungen zwischen 2 Relationen R und S 1:1 ein Datensatz aus R kann bis zu einem anderen aus S zugeordnet werden, der aus S genau einem aus R 1:n einem Datensatz aus R können mehrere Datensätze aus S zugeordnet werden, jedem aus S aber nur genau einem aus R n:m einem Datensatz aus R sind mehrere aus S zugeordnet, und einem aus S mehrere aus R
Beispiel Miet-dein-Auto In der Datenbank der Autovermietung werden zunächst alle PKW- und Kundendaten erfasst (Stammdaten) Beim Vermieten der PKWs an die Kunden werden die entsprechenden Daten in der Tabelle VERMIETUNG eingetragen Durch die Beziehungen zwischen den Tabellen kann über die Detailtabelle VERMIETUNG auf die Daten der Mastertabellen KUNDE und PKW zugegriffen werden
Beispiel Miet-dein-Auto ERM (Entity-Realationship-Model)
Erstellen einer Datenbank Leere Access Datenbank erstellen und speichern
Arbeitsumgebung von ACCESS Arbeitsoberfläche Datenbankobjekte Datenbankfenster
Tabellen erstellen Entwurfsansicht Anlegen der Attribute einer Tabelle und deren Eigenschaften
Tabelle erstellen Datenblattansicht - Bestimmung der Attributnamen und Eingabe der Elemente
Entwurfsansicht Für jedes Attribut der Tabelle muss der Feldname (max. 64 Zeichen) und der Wertebereich (Text, Zahl, Währung, Datum, ) festgelegt werden Weitere Eigenschaften können definiert werden: Feldgröße (z.b. max. 20 Zeichen) Zwingende Eingabe (Ja/Nein) Gültigkeitsregeln Festlegen des Primärschlüssels: Rechte Maustaste auf das entsprechende Attribut und Auswahl der Option Nach der Eingabe der Attribute muss die jeweilige Tabelle unter dem Tabellennamen gespeichert werden
Festlegen von Beziehungen Reiter Datenbanktools Im folgendem Dialog Auswählen der benötigten Tabellen und Hinzufügen zur Ansicht Korrespondierende Felder (z.b. Kundennummer in Vermietungs- und Kundentabelle) müssen miteinander verbunden werden Erstellen der Relation durch Drag&Drop, dazu den Primärschlüssel (Fett dargestellt) in Tabelle KUNDE markieren und auf den Fremdschlüssel in der Tabelle VERMIETUNG ziehen
Festlegen von Beziehungen Referentielle Integrität die Gültigkeit von Beziehungen zwischen den Tabellen wird vom System überwacht es nicht möglich einen Kunden in der Tabelle KUNDE zu löschen, wenn dieser einem Datensatz in der Tabelle VERMIETUNG zugeordnet ist Mit der Schaltfläche OK wird die Beziehung angelegt
Dateneingabe Doppelklick auf die jeweilige Tabelle Eingabe der Daten in das mit * gekennzeichnete Element Es können auch Änderungen und Löschungen von Datensätzen vorgenommen werden
Abfragen erstellen Abfragearten Auswahlabfrage zur Erstellung bestimmter Selektionen des Datenbestandes Tabellenerstellungs- selektierter Datenbestand abfrage wird in neuer Tabelle gespeichert Aktualisierungsabfrage Felder einer Tabelle können mit neuen Werten versehen werden Löschabfrage Löschen einer Gruppe von Datensätzen Anfügeabfragen Anfügen von Datensätzen
Auswahlabfragen Abfrageentwurf Bsp: Alle Namen und Vornamen der Kunden ohne weitere Einschränkung mit Sortierung aufsteigend nach Namen der Kunden
Auswahlabfragen Durch Klick auf in der Symbolleiste wird die Auswahlabfrage ausgeführt und das Ergebnis in der Datenblattansicht dargestellt Wechsel in die Entwurfsansicht durch Klick auf
Komplexere Abfragen Abfragen erstellen mit Attributen mehrerer Tabellen dazu müssen die jeweiligen Tabellen in der Entwurfsansicht angezeigt werden ( ) Bsp.: Alle Aufträge mit Angabe des Kunden und PKW
Komplexere Abfragen Kriterien für die Auswahlabfrage festlegen mit logischen Verknüpfungen UND-Verknüpfung (Alle BMWs, die mehr als 80 am Tag kosten) ODER-Verknüpfung (Alle Kunden aus Hannover oder Göttingen)
Komplexere Abfragen Als Platzhalter können * - für 0 oder mehrere Zeichen? - für genau 1 Zeichen verwendet werden Bsp.: Ausgabe aller Kunden, deren Name mit Sch beginnt
Aufgaben 1 Aufgaben 1 bearbeiten danach folgt ein weiterer Vorlesungsteil
SQL Grundlagen SQL = Structured Query Language SQL besitzt eine einfache Syntax, ist an die englische Sprache angelehnt Unterteilung in: Data Query Language: SELECT Data Manipulation Language: INSERT, UPDATE, DELETE Data Definition Language: CREATE, ALTER, DROP Einfache Selektion: Anzeige bestimmter Spalten für alle Datensätze Erweiterte Selektion: Anzeige von Datensätzen unter bestimmten Bedingungen
Einfache Selektion SELECT [ALL / DISTINCT] spalte 1,spalte 2,,spalte n / * FROM tabelle [.] : optional verwendbar ALL: default-wert muss nicht explizit gesetzt werden DISTINCT: keine Ausgabe von Zeilen, die in allen Ausgabespalten die gleichen Werte haben / : oder Entweder ich gebe spezielle Spalten aus oder mit * = alle Spalten ausgeben HINWEIS zum Semikolon am Ende einer SQL-Anweisung: Ein Semikolon gehört nicht zur Syntax der Sprache SQL, sondern dient in konkreten Datenbanksystemen lediglich als Kennzeichen zur Ausführung einer Anweisung. BSP: SELECT * FROM tabelle Einfachstes Statement; gibt den gesamten Tabelleninhalt zurück
Beispiele für einfache Selektionen SELECT * FROM PKW SELECT Name, Vorname FROM KUNDE SELECT DISTINCT KdNR FROM VERMIETUNG
Erweiterte Selektion SELECT spalte(n) / * FROM tabelle WHERE suchbedingung In der Suchbedingung sind folgende Operatoren erlaubt: =, <, >, <=, >= Negationen werden mit NOT vor der Suchbedingung realisiert BSP: SELECT spalte(n) / * FROM tabelle WHERE suchbedingung1 AND suchbedingung2 SELECT spalte(n) / * FROM tabelle WHERE suchbedingung1 OR suchbedingung2 SELECT spalte(n) / * FROM tabelle WHERE spalte BETWEEN wert1 AND wert2 SELECT spalte(n) / * FROM tabelle WHERE suchbedingung ORDER BY spalte SELECT spalte(n) / * FROM tabelle WHERE spalte NOT BETWEEN wert1 AND wert2 SELECT spalte(n) / * FROM tabelle WHERE spalte LIKE * /? SQL Platzhalter % und _ entsprechen in ACCESS den Dos-Platzhaltern * und?
Beispiele für erweiterte Selektionen Tabelle PKW (Ausschnitt) SchlNr Bezeichnung Preis_pro_Tag 201 Golf 50 202 Golf 100 203 Mercedes 150 204 Ferrari 200 SELECT * FROM PKW WHERE SchlNr = 204 204 Ferrari 200 SELECT * FROM PKW WHERE Bezeichnung = Golf 201 Golf 50 202 Golf 100 SELECT SchlNr, Bezeichnung FROM PKW WHERE Preis_pro_Tag > 120 203 Mercedes 150 204 Ferrari 200
Beispiele für erweiterte Selektionen Tabelle PKW (Ausschnitt) SchlNr Bezeichnung Preis_pro_Tag 201 Golf 50 202 Golf 100 203 Mercedes 150 204 Ferrari 200 SELECT * FROM PKW WHERE Bezeichnung = Golf AND Preis_pro_Tag=50 201 Golf 50 SELECT * FROM PKW WHERE Bezeichnung = Mercedes OR Preis_pro_Tag=200 203 Mercedes 150 204 Ferrari 200 SELECT * FROM PKW WHERE Preis_pro_Tag BETWEEN 80 AND 170 202 Golf 100 203 Mercedes 150
Beispiele für erweiterte Selektionen Tabelle PKW (Ausschnitt) SchlNr Bezeichnung Preis_pro_Tag 201 Golf 50 202 Golf 100 203 Mercedes 150 204 Ferrari 200 SELECT * FROM PKW WHERE Bezeichnung LIKE G* 201 Golf 50 202 Golf 100 SELECT * FROM PKW WHERE Bezeichnung LIKE G* OR Preis_pro_Tag LIKE 1?? 201 Golf 50 202 Golf 100 203 Mercedes 150
Beispiele für erweiterte Selektionen Tabelle PKW (Ausschnitt) SchlNr Bezeichnung Preis_pro_Tag 201 Golf 50 202 Golf 100 203 Mercedes 150 204 Ferrari 200 SELECT * FROM PKW WHERE SchlNr > 201 ORDER BY Bezeichnung 204 Ferrari 200 202 Golf 100 203 Mercedes 150 SELECT * FROM PKW WHERE SchlNr > 201 ORDER BY Bezeichnung DESC 203 Mercedes 150 202 Golf 100 204 Ferrari 200
Selektion per SQL über mehrere Tabellen Grundlegende Syntax: SELECT spalten(n) FROM tabelle1,tabelle2 Wichtig 1: bei Doppeldeutigkeit müssen Spalten eindeutig adressiert werden: SELECT Kunde.Kdnr, Vermietung.Kdnr FROM Kunde, Vermietung; Wichtig 2: Beziehungen müssen mittels Suchbedingung realisiert werden. SELECT Bezeichnung, Anzahl_Tage_gemietet FROM PKW, VERMIETUNG WHERE PKW.SchlNR=VERMIETUNG.SchluesselNR;
Abfrage in SQL-Ansicht erstellen 1. Datei öffnen Access-Aufgaben2-1.mdb 2. Auf Abfragen-Ansicht wechseln 3. Tabellen auswählen und hinzufügen 4. Unter Ansicht auf SQL-Ansicht wechseln 5. SQL-Anweisungen eintippen 6. Klick auf rotes! zum Ausführen der Anweisung 7. Anweisung speichern
Berichte erstellen Berichte werden zum Drucken der Daten erstellt, wobei Möglichkeiten zum Sortieren, Gruppieren und Berechnen der Ergebnisse zur Verfügung stehen Erstellung der Berichte mit dem Assistenten: 1. Auswahl der Attribute Tabellen oder Abfragen, welche im Bericht dargestellt werden sollen 2. Festlegen der Sortierreihenfolge im Bericht 3. Festlegen der Darstellung der Daten im Bericht 4. Bestimmen des Layouts nach Vorlagen von Access 5. Erstellen des Berichts 6. Evtl. Nachbessern des Layouts in der Entwurfsansicht
Aufgaben 2 Aufgaben 2 bearbeiten danach Feierabend :-)