Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr.

Ähnliche Präsentationen


Präsentation zum Thema: "INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr."—  Präsentation transkript:

1 INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr

2 I N F O R M A T I K 2 Informationssysteme

3 I N F O R M A T I K 3 Was ist ein Informationssystem ? Ein Informationssystem kann auf formalisierte Fragen eines Anwenders Antworten aus einer gegebenen Datenmenge geben Komponenten eines Informationssystems: Informationssystem Erfassung Speicherung Analyse Darstellung Datenbanksystem DBS Datenbank (Datenbasis) Datenbank (Datenbasis) Datenbankmanagementsystem DBMS, z.B. MySQL

4 I N F O R M A T I K 4 Ein Ausgangspunkt im Unterricht… Schüler führen eine Internet-Recherche durch: Nachbarländer Deutschlands – Fläche, Einwohner, Hauptstadt Nutzung eines Informationssystems Unterschiedliche Darstellung der Informationen

5 I N F O R M A T I K 5 Software-Architekturen: Standalone-Programm Vorteile Übersichtlichkeit (?) Schnell zu programmieren nur eine Programmiersprache Nachteile Daten meist nur vom erzeugenden Programm zu lesen Erweiterungen aufwändig Immer wieder gleiche Probleme (z.B. Datumsformat) PC Darstellung Anwendungsprogramm Logik Datenbasis

6 I N F O R M A T I K 6 (Datenbank)Server Datenbasis Darstellung Anwendungsprogramm Logik Datenbasis Software-Architekturen - Client-Server Server Client Darstellung Anwendungsprogramm Logik

7 I N F O R M A T I K 7 Software-Architekturen - Client-Server (Datenbank)Server Datenbasis Server Client Darstellung Anwendungsprogramm Logik Vorteile Datenbank übernimmt Standardaufgaben Daten zentral vorhanden (für mehrere Benutzer / Programme) Erweiterungen relativ einfach Nachteile Installation von Software auf allen Clients notwendig Weitere Sprache zum Datenbankzugriff

8 I N F O R M A T I K 8 Datenbankserver (z.B. MySQL) Datenbasis Darstellung Anwendungsprogramm Logik Software-Architekturen – Webarchitektur Webclient (Browser) Darstellung Webserver (z.B. Apache und PHP) Logik Server Client

9 I N F O R M A T I K 9 Software-Architekturen – Webarchitektur Vorteile Keine Installation von zusätzlicher Software beim Client Nachteile http-Protokoll ohne Sessionverwaltung Webclient (Browser) Webserver (z.B. Apache und PHP) Datenbankserver (z.B. MySQL) Darstellung Logik Datenbasis Server Client

10 I N F O R M A T I K 10 Typische Hardware-Verteilung Viele (Web-) Clients teilen sich die Dienste eines Webservers, der wiederum auf einen Datenbankserver zurückgreift. In kleinen Systemen können Web- und Datenbankserver auf dem gleichen Rechner sein. Datenbankserver Webserver Clients

11 I N F O R M A T I K 11 …bis hin zum Extrem einer Web Farm HACMP Fail-Over Production DB ServerFailOver DB Server 2,4 TByte FDDI Switch 32 GByte RAM Load Balancer Application Server Farm je 4 Prozessoren 32 GByte RAM

12 I N F O R M A T I K 12 Relationale Datenbanken Die Daten werden in Form von Tabellen gespeichert Zwischen den Tabellen werden Beziehungen aufgebaut (Relationen) NameEinwohnerHauptstadtKontinent Dänemark KopenhagenEuropa Deutschland BerlinEuropa Indien DelhiAsien Rwanda KigaliAfrika Arten von Datenbanken Attribut (Merkmal, Spalte) Attributwert (Datenwert) Datensatz (Tupel) Attributklasse Land

13 I N F O R M A T I K 13 Arten von Datenbanken Relationale Datenbanken – typische Vertreter Oracle IBM (DB/2) Microsoft SQL Server (Access ?) Informix MySQL PostGreSQL OpenSource

14 I N F O R M A T I K 14 Abfragen mit SQL SQL = Structured Query Language. Bezeichnet eine Sprache zur Kommunikation mit Datenbanken. Ist international genormt und wird von vielen DBS verstanden. Wird im Folgenden zur Formulierung von Abfragen eingesetzt. Syntax einer (einfachen) SQL-Abfrage: SELECT [Spalten] FROM [Tabelle] WHERE [Bedingung] ORDER BY [Attribute]; Die WHERE- und die ORDER BY-Klausel sind optional.

15 I N F O R M A T I K 15 LNRNameEinwohnerHauptstadtKontinent DKDänemark5.16KopenhagenEuropa DDeutschland81.34 BerlinEuropa INDIndien DelhiAsien RWARwanda6.30 KigaliAfrika …………… Land SELECT Name, Einwohner, Kontinent FROM Land WHERE Einwohner > 10 Datenbankzugriff - Ein erstes Beispiel Länder mit über 10 Mio. Einwohner Ergebnistabelle NameEinwohnerKontinent Deutschland81.34Europa Indien761.00Asien ………

16 I N F O R M A T I K 16 Ein erstes Problem der Datenbank führt zur Erweiterung… Welche Länder gibt es in Europa mit mehr als 20 Mio Einwohner? SELECT Name, Einwohner FROM Land WHERE Kontinent = 'Europa' AND Einwohner > 20 Frankreich?? Problem: Europa wird unterschiedlich geschrieben! Lösung: Auslagerung in eine eigene Tabelle

17 I N F O R M A T I K 17 Relationale Datenbanken – Beziehungen Land und Kontinent werden in zwei getrennten Tabellen gespeichert und über eine Beziehung miteinander verknüpft. Zur Verknüpfung dient ein Kürzel des Kontinents, das als Fremdschlüssel in Land gespeichert wird. KNRName EUEuropa ASAsien AFAfrika Kontinent LNRNameEinwohnerHauptstadtKontinent DKDänemark5.16KopenhagenEuropa DDeutschland81.34 BerlinEuropa INDIndien DelhiAsien RWARwanda6.30 KigaliAfrika LNRName…KNR DKDänemark…EU DDeutschland…EU INDIndien…AS RWARwanda…AF Land Schlüsselattribut aus Kontinent

18 I N F O R M A T I K 18 LNRNameEinwohnerHauptstadtKontinent DKDänemark5.16KopenhagenEuropa DDeutschland81.33BerlinEuropa INDIndien DelhiAsien RWARwanda6.30KigaliAfrika Land Relationale Datenbank – Aufbau Jeder Datensatz wird durch einen Schlüssel (Primärschlüssel) eindeutig identifiziert. Der Schlüssel kann aus mehreren Attributen zusammengesetzt werden. ist minimal, d.h. es kann kein Attribut weggelassen werden. Oft wird ein zusätzliches, eindeutiges Schlüsselattribut hinzugefügt, z.B. eine Landeskennung wird meist durch Unterstreichung gekennzeichnet. Schlüsselattribut

19 I N F O R M A T I K 19 Relationale Datenbanken – Beziehungen Zwischen den Tabellen bestehen Beziehungen (Relationen) z.B. Kontinent eines Landes Die Verknüpfung erfolgt grundsätzlich dadurch, dass ein Fremdschlüssel der einen Tabelle auf den zugehörigen Primärschlüssel der anderen Tabelle zeigt. Vorteile: Daten werden jeweils nur in einer Tabelle gespeichert. Datenänderungen sind leichter durchzuführen. Strukturänderungen (z.B. das Hinzufügen der Kontinentfläche) lassen sich meist mit geringem Aufwand realisieren. Die Struktur lässt flexiblere Abfragen zu. PKeyDataPKeyDataFKey MasterDetail

20 I N F O R M A T I K 20 SQL – einfache Joins Müssen in SQL Daten aus mehreren Tabellen entnommen werden, so werden sog. Joins gebildet. Die Abarbeitung eines Joins in mehreren Schritten kann an folgendem Beispiel veranschaulicht werden: Es sollen alle Länder mit ihren Kontinenten ausgegeben werden, die mehr als 10 Mio. Einwohner haben. LNRNameEinwohnerKNR DKDänemark5.16EU DDeutschland81.34EU INDIndien761.00AS RWARwanda6.30AF Land KNRName EUEuropa ASAsien AFAfrika Kontinent

21 I N F O R M A T I K 21 SQL – einfache Joins 1.Cross-Join (jede Zeile mit jeder) SELECT * FROM Land, Kontinent LNRNameEinwohnerKNRKNRName DKDänemark5.16EUEUEuropa DKDänemark5.16EUASAsien DKDänemark5.16EUAFAfrika DDeutschland81.34EUEUEuropa DDeutschland81.34EUASAsien DDeutschland81.34EUAFAfrika INDIndien761.00ASEUEuropa INDIndien761.00ASASAsien INDIndien761.00ASAFAfrika …………… LNRNameEinwohnerKNR DKDänemark5.16EU DDeutschland81.34EU INDIndien761.00AS RWARwanda6.30AF Land KNRName EUEuropa ASAsien AFAfrika Kontinent

22 I N F O R M A T I K 22 WHERE Land.KNR= Kontinent.KNR LNRNameEinwohnerKNRKNRName DKDänemark5.16EUEUEuropa DKDänemark5.16EUASAsien DKDänemark5.16EUAFAfrika DDeutschland81.34EUEUEuropa DDeutschland81.34EUASAsien DDeutschland81.34EUAFAfrika INDIndien761.00ASEUEuropa INDIndien761.00ASASAsien INDIndien761.00ASAFAfrika …………… 2.Einschränken auf passende Datensätze. Es dürfen nur die Zeilen genommen werden, für die die Land und die Kontinent Tabelle Daten des gleichen Kontinents enthalten. Dies wird durch die sog. Join-Bedingung erreicht. SELECT * FROM Land, Kontinent SQL – einfache Joins

23 I N F O R M A T I K 23 AND Land.Einwohner > 10 SQL – einfache Joins 2.Einschränken auf passende Datensätze (2). Es sollen nur Länder mit > 10 Mio. Einwohner gezeigt werden. Momentan würde auch Dänemark ausgegeben werden. Also muss eine weitere Bedingung erfüllt sein: SELECT * FROM Land, Kontinent WHERE Land.KNR = Kontinent.KNR LNRNameEinwohnerKNRKNRName DKDänemark5.16EUEUEuropa DKDänemark5.16EUASAsien DKDänemark5.16EUAFAfrika DDeutschland81.34EUEUEuropa DDeutschland81.34EUASAsien DDeutschland81.34EUAFAfrika INDIndien761.00ASEUEuropa INDIndien761.00ASASAsien INDIndien761.00ASAFAfrika ……………

24 I N F O R M A T I K 24 SQL – einfache Joins 3.Einschränken auf gesuchte Spalten. Nur bestimmte Spalten werden ausgegeben. SELECT Land.Name, Land.Einwohner, Kontinent.Name FROM Land,Kontinent WHERE Land.KNR = Kontinent.KNR AND Land.Einwohner > 10 NameEinwohnerName Deutschland81.34Europa Indien761.00Asien ……… In der Realität versucht das DBMS, durch geschicktes Vorgehen die Datenmenge schon früher zu reduzieren. LNRNameEinwohnerKNRKNRName DDeutschland81.34EUEUEuropa INDIndien761.00ASASAsien ……………

25 I N F O R M A T I K 25 Erweiterung der Datenbank Es sollen nun die wichtigsten Orte der Länder gespeichert werden. Wie sieht eine solche Ländertabelle aus? Es wird eine neue Tabelle Ort angelegt mit einem Fremdschlüssel auf Land. ONRName…LNR BANGALBangalore…IND GOETTIGöttingen…D KARLSR Karlsruhe…D KOPENHKopenhagen…DK Ort LNRName…KNR DKDänemark…EU DDeutschland…EU INDIndien…AS RWARwanda…AF Land Schlüsselattribut aus Land

26 I N F O R M A T I K 26 Kontinent Teil von LandOrt Teil von Hauptstadt Bisheriges Schema der Datenbank Ein erstes E/R-Modell eigentlich intuitiv zu lesen!?

27 I N F O R M A T I K 27 SQL – Tabellen-Alias Soll in SQL auf eine Tabelle mehrfach zugegriffen werden, so kann dies mit Alias-Namen geschehen: Es sollen alle Städte mit mehr als 1 Mio. Einwohner ausgegeben werden; dabei auch das zugehörige Land mit Hauptstadt. logische Struktur: SELECT o.Name AS Stadt, l.Name AS Land, hs.Name FROM Ort o, Land l, Ort hs WHERE o.LNR = l.LNR AND l.HauptONR = hs.ONR AND o.Einwohner> Der Alias-Name für Land ist nicht notwendig (verkürzt die Abfrage) LandOrt Teil vonHauptstadt Ort

28 I N F O R M A T I K 28 Erweiterung der Datenbank Es sollen Flüsse gespeichert werden. Flüsse fließen durch Orte. Manche Orte werden von mehreren Flüssen durchflossen (z.B. Koblenz) Wie sieht die Tabelle für die Flüsse aus? FNRNameLaenge ELBElbe1144 MEKMekong4500 MOSMosel544 RHERhein1320 Fluss ONRName GOETTIGöttingen KARLSR Karlsruhe KOBLEN Koblenz KOPENHKopenhagen Ort ONR HAMBUR PHNOMP KOBLEN Problem: Für Flüsse müssen beliebig viele Orte eingetragen werden.

29 I N F O R M A T I K 29 Erweiterung der Datenbank Es sollen Flüsse gespeichert werden. Flüsse fließen durch Orte. Manche Orte werden von mehreren Flüssen durchflossen (z.B. Koblenz) Wie sieht die Tabelle für die Flüsse aus? FNRNameLaenge ELBElbe1144 MEKMekong4500 MOSMosel544 RHERhein1320 Fluss ONRName GOETTIGöttingen KARLSR Karlsruhe KOBLEN Koblenz KOPENHKopenhagen Ort FNR LEI RHE Problem: Für Orte müssen mehrere Flüsse eingetragen werden. Lösung: Auslagerung der Zuordnung in eine eigene Tabelle

30 I N F O R M A T I K 30 Erweiterung der Datenbank Es sollen Flüsse gespeichert werden. Flüsse fließen durch Orte. Manche Orte werden von mehreren Flüssen durchflossen (z.B. Koblenz) Zuordnungstabelle mit Schlüsseln aus beiden Haupttabellen. FNRNameLaenge ELBElbe1144 MEKMekong4500 MOSMosel544 RHERhein1320 Fluss ONRName GOETTIGöttingen KARLSR Karlsruhe KOBLEN Koblenz KOPENHKopenhagen Ort FNRONR ELBHAMBUR RHEKOBLEN RHEKARLSR MOSKOBLEN Stadtfluss

31 I N F O R M A T I K 31 Struktur der Datenbank terra4 Kontinent Sprache Teil von gesprochen Land Fluss Ort Teil von durchfließt n m n 1 1n Hauptstadt 11 n m

32 I N F O R M A T I K 32 Gruppieren von Ergebnissen Manchmal müssen die Ergebnisse einer Anfrage gruppiert und verrechnet werden. Bsp.: Wie viele Städte sind in Europa pro Land verzeichnet? SELECT o.ONR, l.Name FROM Ort o, Land l WHERE o.LNR = l.LNR AND l.KNR = 'EU ORDER BY l.Name Selbst zählen??? NEIN! ONRName AALBOR Dänemark KOPENHDänemark BERLINDeutschland DUESSEDeutschland MAINZDeutschland TALLINEstland

33 I N F O R M A T I K 33 Gruppieren von Ergebnissen Manchmal müssen die Ergebnisse einer Anfrage gruppiert und verrechnet werden. Bsp.: Wie viele Städte sind in Europa pro Land verzeichnet? SELECT l.Name, COUNT(*) AS Anzahl FROM Ort o, Land l WHERE o.LNR = l.LNR AND l.KNR = 'EU GROUP BY l.Name ORDER BY l.Name ONRName AALBOR Dänemark KOPENHDänemark BERLINDeutschland DUESSEDeutschland MAINZDeutschland TALLINEstland NameAnzahl Dänemark2 Deutschland3 Estland1

34 I N F O R M A T I K 34 Struktur der kompletten Datenbank miniterra Kontinent Sprache Teil von gesprochen Land Fluss Ort Teil von durchfließt mündet n m n 1 1n Hauptstadt 11 n m 1 n benachbart m n

35 I N F O R M A T I K 35 u.v.m. SQL bietet noch einige weitere (hier nicht behandelte) Möglichkeiten: OUTER JOINS: Es werden beim Join auch Datensätze angezeigt, die keinen Join-Partner finden. Bsp.: Alle Städte sollen ausgegeben werden und zwar (wenn vorhanden) mit ihren Flüssen. Behandlung von leeren Feldern (NULL-Werten) …

36 I N F O R M A T I K 36 Vernetzung des Themas - Grenzen von SQL Problem: Verfolgen eines Flusslaufes von der Quelle zum Meer z.B. Spree Hier werden iterative Strukturen benötigt, die SQL (als mengen- orientierte Sprache) im Standard nicht bietet. Anknüpfung an Programmierung PHP, Delphi, Java Rhein Mosel Main Neckar Donau Isar Inn Fulda Werra Weser Elbe Havel Spree Aller Elbe Havel Spree Nordsee

37 I N F O R M A T I K 37 Vernetzung des Themas - Grenzen von SQL Problem: Verfolgen eines Flusslaufes vom Meer zu den Zuflüssen z.B. Nordsee Beispiel für eine (elegante?) rekursive Programmierung Rhein Mosel Main Neckar Donau Isar Inn Fulda Werra Weser Elbe Havel Spree Aller Nordsee Rhein Mosel Main Neckar Fulda Werra Weser Aller Elbe Havel Spree Nordsee

38 I N F O R M A T I K 38 Vernetzung des Themas - Auswertungen Grafische Auswertung der Datenbank (z.B. Anzahl der Länder pro Kontinent) über Werkzeuge (z.B. Excel) über selbst erstellte Programme

39 I N F O R M A T I K 39 Vernetzung des Themas - Datenschutz Datenbank-basierte Umfrage in der Schule Wie können durch Verknüpfen (eigentlich harmloser) Daten neue Informationen gewonnen werden?

40 I N F O R M A T I K 40 Welches Datenbanksystem ? - Vorschlag: MySQL Freie Software mit großer Entwicklergemeinde inzwischen allerdings von SUN aufgekauft Installation über XAMPP-Paket auch für Schüler leicht machbar vorkonfigurierte Version (inkl. Datenbanken) ohne Installationszwang kann den Schülern zur Verfügung gestellt werden Es fehlen noch typische Konzepte relationaler Datenbanken Echte Fremdschlüssel-Überwachung Trigger …

41 I N F O R M A T I K 41 Wahlfach Informatik im Leibniz-Gymnasium Pirmasens Fragen


Herunterladen ppt "INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr."

Ähnliche Präsentationen


Google-Anzeigen