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 Agenda Abfragesprachesprache SQLVerwaltung MySQLDatenbankmodellierungZugriff auf Datenbanken (PHP & Co.)AusblickDatenbanken – Wozu?

3 I N F O R M A T I K 3 Software-Architekturen: Standalone-Programm z.B. selbst programmierte Schülerdatei in Delphi programmierte Übersicht der WM-Begegnungen PC Darstellung Anwendungsprogramm Logik Datenbasis

4 I N F O R M A T I K 4 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

5 I N F O R M A T I K 5 (Datenbank)Server Datenbasis Darstellung Anwendungsprogramm Logik Datenbasis Software-Architekturen - Client-Server z.B. Outlook und Exchange-Server einfache, datenbank-basierte Schülerverwaltung Server Client Darstellung Anwendungsprogramm Logik

6 I N F O R M A T I K 6 Software-Architekturen - Client-Server z.B. Outlook und Exchange-Server einfache, datenbank-basierte Schülerverwaltung (Datenbank)Server Datenbasis Server Client Darstellung Anwendungsprogramm Logik

7 I N F O R M A T I K 7 (Datenbank)Server Datenbasis Software-Architekturen - Client-Server 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 Server Client Darstellung Anwendungsprogramm Logik

8 I N F O R M A T I K 8 Datenbankserver (z.B. MySQL) Datenbasis Darstellung Anwendungsprogramm Logik Software-Architekturen – Webarchitektur Eine moderne 3-schichtige 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 Eine moderne 3-schichtige Webarchitektur… 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 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

11 I N F O R M A T I K 11 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

12 I N F O R M A T I K 12 … und zum Testen / für die Fortbildung? Alle drei Schichten sind auf einem Rechner! Datenbankserver Webserver Clients Internet Explorer Apache MySQL Client Webserver Datenbankserver

13 I N F O R M A T I K 13 Das andere Extrem – eine 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

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

15 I N F O R M A T I K 15 Was ist ein Informationssystem ? Datenbasis / Datenbank Menge von Daten, die aus Sicht der Systembetreiber in irgendeiner Weise als zusammengehörig betrachtet werden. Angereichert um weitere Daten, die das DBMS zur Erfüllung seiner Aufgaben benötigt, bilden sie eine Datenbank (DB). Datenbankverwaltungssystem (DBMS) Softwareprodukte für die dauerhafte, integre und anwendungsunabhängige Speicherung und Verwaltung von großen, mehrfachbenutzbaren integrierten Datenbasen Datenbanksystem Ein Datenbanksystem (DBS) besteht aus einem DBMS und einer oder mehreren Datenbanken Informationssystem Ein Informationssystem erweitert die Datenbank um eine Reihe von Werkzeugen zur Abfrage, Darstellung, Transformation und Analyse von Daten

16 I N F O R M A T I K 16 Arten von Datenbanken Man unterscheidet verschiedene Arten von Datenbanken: Hierarchische Datenbanken Die Datenelemente sind baumartig miteinander verbunden Vernetzte Datenbanken Die Datenelemente sind mit Zeigern zu einem Netz miteinander verbunden Beide Formen waren vor allem bei Großrechnern im Einsatz und werden zunehmend von relationalen Datenbanken abgelöst

17 I N F O R M A T I K 17 Arten von Datenbanken Relationale Datenbanken Die Daten werden in Form von Tabellen gespeichert Zwischen den Tabellen werden Beziehungen aufgebaut (Relationen) Objektrelationale Datenbanken erweitern die relationalen Datenbanken und objektorientierte Funktionen (z.B. Vererbung) Team1Team2DatumErgebnis DeutschlandCosta Rica :2 PolenEcuador :2 DeutschlandPolen :0 EcuadorCosta Rica :0 Attribut (Merkmal) Attributwert (Datenwert) Datensatz (Tupel) Attributklasse Begegnung

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

19 I N F O R M A T I K 19 Was bietet mir eine Datenbank? Strukturierte Speicherung von Daten Verteilter, gleichzeitiger Zugriff mehrerer Benutzer / Programme ACID – Prinzip Atomicity Transaktionen (Änderungen an der Datenbank) werden ganz oder gar nicht durchgeführt Consistency Eine Transaktion führt wieder zu einem konsistenten (gültigen) Zustand der Datenbank Isolation Transaktionen beeinflussen sich nicht gegenseitig Durability Eine Transaktion ist dauerhaft gespeichert, auch gegen Systemabstürze gesichert

20 I N F O R M A T I K 20 Agenda Abfragesprachesprache SQL Verwaltung MySQL Datenbankmodellierung Zugriff auf Datenbanken (PHP & Co.) Ausblick Datenbanken – Wozu? Abfragesprachesprache SQLDatenbanken – Wozu?

21 I N F O R M A T I K 21 MySQL – Jetzt wird es (endlich) praktisch… Starten Sie den Datenbankserver und den Webserver Das Datenbanksystem bietet einen Service für andere Rechner an Die Windows-Firewall kann dies melden. Der Port muss freigegeben werden.

22 I N F O R M A T I K 22 Die erste Datenbank importieren Die Administration von MySQL funktioniert selbst schon am einfachsten über den Browser Webarchitektur Datenbankserver Webserver Client Browser Apache MySQL

23 I N F O R M A T I K 23 Die erste Datenbank importieren Legen Sie eine neue Datenbank wm-stufe1 an. Wählen Sie den Punkt Importieren und suchen die Datei wm-stufe1.sql

24 I N F O R M A T I K 24 Die erste Tabelle… Klicken Sie auf Struktur: Die Tabelle begegnung wird angezeigt. Lassen Sie sich den Inhalt der Tabelle anzeigen.

25 I N F O R M A T I K 25 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. Nummer der Begegnung wird meist durch Unterstreichung gekennzeichnet. BNRTeam1Team2DatumErgebnis A1DeutschlandCosta Rica :2 A2PolenEcuador :2 A3DeutschlandPolen :0 A4EcuadorCosta Rica :0 Begegnung Schlüsselattribut

26 I N F O R M A T I K 26 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.

27 I N F O R M A T I K 27 SQL – SELECT und FROM Eine Projektion schränkt die Abfrage hinsichtlich der Attribute ein (die Spalten der resultierenden Tabelle): SELECT [Spalten] FROM [Tabelle] WHERE [Bedingung] ORDER BY [Attribute]; Die darzustellenden Spalten der Tabelle müssen durch Kommata getrennt angegeben werden; * steht für alle Spalten. Beispiele: SELECT * FROM Begegnung; SELECT Team1 FROM Begegnung; SELECT Team1, Team2 FROM Begegnung;

28 I N F O R M A T I K 28 SQL – WHERE Eine Selektion schränkt die Abfrage hinsichtlich der Datensätze ein (die Zeilen der resultierenden Tabelle): SELECT [Spalten] FROM [Tabelle] WHERE [Bedingung] ORDER BY [Attribute]; Die Abfrage enthält alle Datensätze, welche die angegebene Bedingung erfüllen. Beispiele: SELECT * FROM Begegnung WHERE (Team1='Deutschland') SELECT * FROM Begegnung WHERE (Datum>=' ')

29 I N F O R M A T I K 29 SELECT Team1, Team2, Ergebnis FROM Begegnung WHERE (Team1='Deutschland') BNRTeam1Team2OrtErgebnis A1DeutschlandCosta RicaMünchen4:2 A2PolenEcuadorGelsenkirchen0:2 A3DeutschlandPolenDortmund1:0 F4BrasilienAustralienMünchen2:0 Veranschaulichendes Beispiel Begegnung Team1Team2Ergebnis DeutschlandCosta Rica4:2 DeutschlandPolen1:0 Ergebnistabelle

30 I N F O R M A T I K 30 SQL – WHERE Bedingungen mit Textattributen: Team1='Deutschland' (Schmitt) Team1 LIKE 'P%' (Paraguay, Polen, Portugal) Name LIKE M_ller (Müller, Muller, Miller, Maller) Bedingungen mit Zahlattributen: Stufe=7 (gleich 7) Stufe<>7 (ungleich 7) Stufe<7 (kleiner 7) Stufe>7 (größer 7) Stufe<=7 (kleiner gleich 7) Stufe>=7 (größer gleich 7) Stufe BETWEEN 7 AND 10 (zwischen 7 und 10)

31 I N F O R M A T I K 31 SQL – WHERE Vergleich auf Nullwert (kein Attributwert angegeben): SNR IS NULL Logische Verknüpfungen: NOT (Name='Schmitt') (Name nicht Schmitt) (Ort='Berlin') AND (Datum<' ') (Spiele in Berlin vor Juli 2006) (Team1='Deutschland') OR (Team2='Deutschland') (Deutschland spielt als erstes oder zweites Team)

32 I N F O R M A T I K 32 SQL – ORDER BY Das Abfrageergebnis kann sortiert werden: SELECT [Spalten] FROM [Tabelle] WHERE [Bedingung] ORDER BY [Attribute]; Die Sortierung geschieht nach dem angegebenen Attribut. Bei mehreren Sortierattributen wird nach dem zweiten (dritten...) sortiert, sobald die Werte des ersten (zweiten...) identisch sind. Absteigende Sortierung mit DESC Beispiele: SELECT * FROM Begegnung ORDER BY Datum SELECT * FROM Begegnung ORDER BY Ort, Datum DESC

33 I N F O R M A T I K 33 Die ersten SQL Befehle Öffnen Sie das SQL-Fenster 1.Geben Sie alle Begegnungen aus! 2.Geben Sie alle Begegnungen aus: Datum, Name der Teams und Ergebnis Sortierung nach Datum absteigend SELECT * FROM Begegnung SELECT Datum, Team1, Team2, Ergebnis FROM Begegnung ORDER BY Datum DESC

34 I N F O R M A T I K 34 Aufgaben, Datenbank: wm-stufe1 3.An welchen Spielen war Deutschland beteiligt? 4.Welche Spiele fanden zwischen dem und statt? Absteigend nach Datum sortiert WHERE Team1='Deutschland' OR Team2='Deutschland' Problem: Datumsformat unterscheidet sich vom deutschen FormatLösung: Konvertierung mit Datumsfunktion für die Ausgabe WHERE Datum BETWEEN ' ' AND ' ' ORDER BY Datum DESC SELECT Team1, Team2, DATE_FORMAT(Datum,'%d.%m.%Y') FROM...

35 I N F O R M A T I K 35 Hilfsfunktionen Wichtig sind vor allem Funktionen zur Manipulation von Strings und Datumsangaben, z.B. DATEDIFF(D1, D2)Differenz (Tage) NOW()Aktuelle Zeit/Datum ( SELECT CURDATE() ) … Wichtige Stringfunktionen CONCAT(S1,S2,…)Verbinden von Strings LOWER(),UPPER()In Groß-/Kleinbuchstaben umwandeln CHAR_LENGTH()Länge in Zeichen MID(str,pos,len) String ausschneiden TRIM(s), LTRIM, RTRIMAbschneiden von Leerzeichen … Weitere Funktionen online in der Hilfe zu MySQL! SQL ist hier nicht standardisiert Die Funktionen sind bei anderen DBS oft unterschiedlich

36 I N F O R M A T I K 36 Aufgaben, Datenbank: wm-stufe1 5.Geben Sie die Spiele in folgender Form aus: 6.Welche Spiele fanden in München statt? CONCAT(UPPER(LEFT(Team1,3)),'-',UPPER(LEFT(Team2,3)),': ',Ergebnis) AS Spiel, DATE_FORMAT(Datum,'%d.%m.%Y') AS 'Wann' WHERE Ort='München' Problem: München wird unterschiedlich geschrieben!Lösung: Auslagerung in eine eigene TabelleSpalten können mit AS umbenannt werden

37 I N F O R M A T I K 37 Relationale Datenbanken – Beziehungen Begegnung und Ort werden in zwei getrennten Tabellen gespeichert und über eine Beziehung miteinander verknüpft. Zur Verknüpfung dient ein Ortskürzel, das als Fremdschlüssel in Begegnung gespeichert wird. BNRTeam1Team2Ort A1DeutschlandCosta RicaMünchen A2PolenEcuadorGelsenkirchen A3DeutschlandPolenDortmund F4BrasilienAustralienMünchen BNRTeam1Team2ONR A1DeutschlandCosta RicaMUE A2PolenEcuadorGEL A3DeutschlandPolenDOR F4BrasilienAustralienMUE Begegnung ONRName MUEMünchen GELGelsenk. DORDortmund Ort Schlüsselattribut aus Ort

38 I N F O R M A T I K 38 Relationale Datenbanken – Beziehungen Zwischen den Tabellen bestehen Beziehungen (Relationen) z.B. Spielort der Begegnung 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 Stadiongröße) lassen sich meist mit geringem Aufwand realisieren. Die Struktur lässt flexiblere Abfragen zu. PKeyDataPKeyDataFKey MasterDetail

39 I N F O R M A T I K 39 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 Begegnungen ausgegeben werden, die in Stadien mit mehr als Sitzplätzen gespielt wurden. BNRTeam1Team2ONR A1GERCRCMUE A2POLECUGEL A3GERPOLDOR F4BRAAUSMUE Begegnung ONRNameSitze MUEMünchen66000 GELGelsenk DORDortmund65000 Ort

40 I N F O R M A T I K 40 SQL – einfache Joins 1.Cross-Join (jede Zeile mit jeder) SELECT * FROM Begegnung, Ort Begegnung ONRNameSitze MUEMünchen66000 GELGelsenk DORDortmund65000 Ort BNRTeam1Team2ONRONRNameSitze A1GERCRCMUEMUEMünchen66000 A1GERCRCMUEGELGelsenk A1GERCRCMUEDORDortmund65000 A2POLECUGELMUEMünchen66000 A2POLECUGELGELGelsenk A2POLECUGELDORDortmund65000 F4BRAAUSMUEMUEMünchen66000 F4BRAAUSMUEGELGelsenk ………………… BNRTeam1Team2ONR A1GERCRCMUE A2POLECUGEL A3GERPOLDOR F4BRAAUSMUE

41 I N F O R M A T I K 41 2.Einschränken auf passende Datensätze. Es dürfen nur die Zeilen genommen werden, für die die Begegnung und die Ort Tabelle Daten des gleichen Ortes enthalten. Dies wird durch die sog. Join-Bedingung erreicht. SELECT * FROM Begegnung, Ort WHERE Begegnung.ONR = Ort.ONR BNRTeam1Team2ONRONRNameSitze A1GERCRCMUEMUEMünchen66000 A1GERCRCMUEGELGelsenk A1GERCRCMUEDORDortmund65000 A2POLECUGELMUEMünchen66000 A2POLECUGELGELGelsenk A2POLECUGELDORDortmund65000 F4BRAAUSMUEMUEMünchen66000 F4BRAAUSMUEGELGelsenk ………………… SQL – einfache Joins

42 I N F O R M A T I K 42 SQL – einfache Joins 2.Einschränken auf passende Datensätze (2). Es sollen nur Spielorte mit mehr als Sitzen gezeigt werden. Momentan würde auch Gelsenkirchen ausgegeben werden. Also muss eine weitere Bedingung erfüllt sein: SELECT * FROM Begegnung, Ort WHERE Begegnung.ONR = Ort.ONR BNRTeam1Team2ONRONRNameSitze A1GERCRCMUEMUEMünchen66000 A1GERCRCMUEGELGelsenk A1GERCRCMUEDORDortmund65000 A2POLECUGELMUEMünchen66000 A2POLECUGELGELGelsenk A2POLECUGELDORDortmund65000 F4BRAAUSMUEMUEMünchen66000 F4BRAAUSMUEGELGelsenk ………………… AND Ort.Sitze > 60000

43 I N F O R M A T I K 43 SQL – einfache Joins 3.Einschränken auf gesuchte Spalten. Nur bestimmte Spalten werden ausgegeben. SELECT Begegnung.Team1, Begegnung.Team2, Ort.Name FROM Begegnung, Ort WHERE Begegnung.ONR = Ort.ONR AND Ort.Sitze > BNRTeam1Team2ONRONRNameSitze A1GERCRCMUEMUEMünchen66000 F4BRAAUSMUEMUEMünchen66000 ………………… Team1Team2Name GERCRCMünchen BRAAUSMünchen ……… In der Realität versucht das DBMS, durch geschicktes Vorgehen die Datenmenge schon früher zu reduzieren.

44 I N F O R M A T I K 44 SELECT Name, Sitze FROM Begegnung, Ort WHERE Ort.ONR=Begegnung.ONR AND ( Begegnung.Team1='Deutschland' OR Begegnung.Team2='Deutschland') SELECT DISTINCT Name, Sitze FROM Begegnung, Ort WHERE Ort.ONR=Begegnung.ONR AND ( Begegnung.Team1='Deutschland' OR Begegnung.Team2='Deutschland') Aufgaben, Datenbank: wm-stufe2 1.Geben Sie alle Begegnungen mit dem Ort der Austragung aus: Datum, Name der Teams und Name des Orts Sortierung nach Datum absteigend 2.Wo fanden Spiele mit deutscher Beteiligung statt? Name und Sitzplätze der Stadien SELECT Datum, Team1, Team2, Ort.Name FROM Begegnung, Ort WHERE Ort.ONR=Begegnung.ONR ORDER BY Datum DESC Problem: Es werden Duplikate angezeigtLösung: DISTINCT-Anweisung

45 I N F O R M A T I K 45 Relationale Datenbanken – Beziehungen Es sollen nun auch die Trainer der Teams gespeichert werden. Um Duplikate zu vermeiden, wird eine Tabelle der Teams angelegt. Es werden zwei Fremdschlüssel in der Tabelle Begegnung benötigt. BNRTeam1Team2ONR A1DeutschlandCosta RicaMUE A2PolenEcuadorGEL A3DeutschlandPolenDOR F4BrasilienAustralienMUE BNRTNR1TNR2ONR A1GERCRCMUE A2POLECUGEL A3GERPOLDOR F4BRAAUSMUE Begegnung TNRNameTrainer GERDeutschlandKlinsmann POLPolenJanas CRCCosta RicaGuimaraes ECUEcuadorSuarez … Team

46 I N F O R M A T I K 46 SQL – Tabellen-Alias Soll in SQL auf eine Tabelle mehrfach zugegriffen werden, so kann dies mit Alias-Namen geschehen: Alle Begegnungen mit ihren Teams und Trainern SELECT B.Datum, T1.Name, T1.Trainer, T2.Name, T2.Trainer FROM Begegnung B, Team T1, Team T2 WHERE B.TNR1=T1.TNR AND B.TNR2=T2.TNR Der Alias-Name für Begegnung ist nicht notwendig (verkürzt die Abfrage)

47 I N F O R M A T I K 47 SQL – Spaltennamen Es werden nun Spalten mit gleichen Namen ausgegeben Spaltennamen können umbenannt werden. SELECT B.Datum, T1.Name AS Team1, T1.Trainer AS Trainer1, T2.Name AS Team2, T2.Trainer AS Trainer2 FROM Begegnung B, Team T1, Team T2 WHERE B.TNR1=T1.TNR AND B.TNR2=T2.TNR

48 I N F O R M A T I K 48 Komplette Struktur der Datenbank Begegnung SchiedsrichterTeam Land Ort TNR2 TNR1 TNR LNR TNR LNR SNR ONR Datum Ergebnis Name Einwohner Kontinent Name Vorname Name Sitze Trainer TNR in Team ist Primär- und Fremdschlüssel

49 I N F O R M A T I K 49 Komplette Struktur der Datenbank als E/R-Diagramm Begegnung SchiedsrichterTeam Land Ort Team1Team2 n 11 n n n 1 Datum Ergebnis

50 I N F O R M A T I K 50 Aufgaben, Datenbank: wm-stufe4 1.Welche Teams kommen aus Ländern, die weniger als 10 Mio. Einwohner haben? 2.Geben Sie alle Begegnungen aus Teamnamen, Schiedsrichter, Ergebnisse nach Datum geordnet SELECT B.Datum, T1.Name, T2.Name, S.Name, S.Vorname, B.Ergebnis FROM Begegnung B, Schiedsrichter S, Land T1, Land T2 WHERE B.SNR = S.SNR AND B.TNR1 = T1.LNR AND B.TNR2 = T2.LNR ORDER BY B.Datum Der Join kann direkt auf das Land erfolgen, da von Team nichts benötigt wird. SELECT Land.Name, Land.Einwohner * AS Einwohnerzahl, Team.Trainer FROM Team, Land WHERE Team.TNR = Land.LNR AND Land.Einwohner<10 Rechenoperationen sind erlaubt.

51 I N F O R M A T I K 51 Aufgaben, Datenbank: wm-stufe4 3.Geben Sie alle Begegnungen aus Teamnamen, Ergebnis, Schiedsrichter und Kontinent des Schiedsrichters SELECT B.Datum, T1.Name, T2.Name, S.Name, S.Vorname, LS.Name, LS.Kontinent, B.Ergebnis FROM Begegnung B, Schiedsrichter S, Land T1, Land T2, Land LS WHERE B.SNR = S.SNR AND B.TNR1 = T1.LNR AND B.TNR2 = T2.LNR AND S.LNR = LS.LNR ORDER BY B.Datum Die Tabelle Land wird nun sogar dreimal benötigt.

52 I N F O R M A T I K 52 Gruppieren von Ergebnissen Manchmal müssen die Ergebnisse einer Anfrage gruppiert und verrechnet werden. Es sollen die Kontinente und die Anzahlen der Teams ausgegeben werden. SELECT Team.TNR, Land.Kontinent FROM Team, Land WHERE Team.TNR = Land.LNR ORDER BY Land.Kontinent TNRKontinent KORAsien JPNAsien IRNAsien AUSAustralien PARSüdamerika ARGSüdamerika Selbst zählen??? NEIN!

53 I N F O R M A T I K 53 Gruppieren von Ergebnissen Manchmal müssen die Ergebnisse einer Anfrage gruppiert und verrechnet werden. Es sollen die Kontinente und die Anzahlen der Teams ausgegeben werden. SELECT Land.Kontinent, COUNT(*) FROM Team, Land WHERE Team.TNR = Land.LNR GROUP BY Land.Kontinent ORDER BY Land.Kontinent TNRKontinent KORAsien JPNAsien IRNAsien AUSAustralien PARSüdamerika ARGSüdamerika KontinentAnzahl Asien3 Australien1 Südamerika2

54 I N F O R M A T I K 54 Aufgaben, Datenbank: wm-stufe4 1.Geben Sie die Anzahl an Spiele pro Kontinent aus! 2.In welchen Stadien hat Deutschland wie oft gespielt? 3.Wie viele Sitze haben die Stadien im Schnitt, maximal und minimal? SELECT COUNT(*) as Anzahl, L.Kontinent FROM Begegnung B, Team T, Land L WHERE (B.TNR1 = T.TNR OR B.TNR2 = T.TNR) AND T.TNR = L.LNR GROUP BY L.Kontinent SELECT O.Name, COUNT(*) FROM Begegnung B, Ort O WHERE (B.TNR1='GER' OR B.TNR2='GER') AND B.ONR=O.ONR GROUP BY O.Name SELECT ROUND(AVG(Sitze)), MAX(Sitze), MIN(Sitze) FROM Ort

55 I N F O R M A T I K 55 Aufgaben, Datenbank: wm-stufe4 4.Welche Schiedsrichter kommen aus Ländern, die keine Teams stellen? 5.Welche Spiele wurden von einem Schiedsrichter aus dem gleichen Kontinent gepfiffen? Geben Sie auch die Ländernamen der Teams aus. SELECT LT1.Name, LT2.Name, B.Ergebnis, S.Name, LS.Name, LS.Kontinent FROM Begegnung B, Schiedsrichter S, Land LS, Land LT1, Land LT2 WHERE B.SNR = S.SNR AND S.LNR = LS.LNR AND LT1.LNR = B.TNR1 AND LT2.LNR = B.TNR2 AND ( LT1.Kontinent = LS.Kontinent OR LT2.Kontinent = LS.Kontinent ) SELECT S.Name, S.Vorname, L.Name, L.Kontinent FROM Schiedsrichter S, Land L WHERE S.LNR = L.LNR AND NOT EXISTS ( SELECT NULL FROM Team T WHERE T.TNR=L.LNR) ORDER BY L.Kontinent, S.Name

56 I N F O R M A T I K 56 Agenda Abfragesprachesprache SQL Verwaltung MySQL Datenbankmodellierung Zugriff auf Datenbanken (PHP & Co.) Ausblick Datenbanken – Wozu? Abfragesprachesprache SQLVerwaltung MySQL

57 I N F O R M A T I K 57 Verwaltung des Datenbanksystems In einem Datenbanksystem müssen Rechte für verschiedene Benutzer verwaltet werden: MySQL arbeitet nach der Installation ohne Schutz des Administrators Jeder kann auf alle Datenbanken zugreifen und diese verändern Mehrere Schüler sollen sich einen Datenbankserver teilen, dabei sich aber nichts gegenseitig kaputtmachen Die Rechte können sehr fein vergeben werden, am Wichtigsten sind: SELECT:Benutzer kann Tabellen auslesen INSERT/UPDATE/DELETE:Tabelleninhalte dürfen verändert werden CREATE/ALTER/…:Tabellenstruktur darf verändert werden

58 I N F O R M A T I K 58 MySQL – Passwort für Administrator vergeben Anmeldetyp für phpMyAdmin ändern Ins Verzeichnis xampp\phpmyadmin wechseln. Datei config.inc.php mit Notepad öffnen Zeile $cfg['Servers'][$i]['auth_type'] = config'; ändern auf $cfg['Servers'][$i]['auth_type'] = 'http';

59 I N F O R M A T I K 59 MySQL – Passwort für Administrator vergeben phpMyAdmin in Browser starten Menüpunkt Rechte Benutzer root auswählen und bearbeiten Passwort eingeben und speichern Beim nächsten Aufruf von phpMyAdmin ist die Eingabe des Passworts notwendig

60 I N F O R M A T I K 60 Benutzer / Rechte vergeben Über den gleichen Dialog können weitere Benutzer angelegt werden und Rechte auf den Datenbanken vergeben werden z.B. für einen zentralen Datenbankserver sollen pro Schülergruppe exklusive Datenbanken zur Verfügung gestellt werden

61 I N F O R M A T I K 61 Benutzer / Rechte vergeben Soll sich auch der Administrator (root) von anderen Rechnern aus anmelden können, so muss dies separat konfiguriert werden. Bei jedem Benutzer ist angegeben, von welchem Rechner aus eine Anmeldung möglich ist. Menüpunkt Rechte Benutzer root auswählen und bearbeiten

62 I N F O R M A T I K 62 Benutzer anlegen 1.Schützen Sie den Administrator-Zugang für ihren mySQL-Server wie zuvor beschrieben. 2.Legen Sie einen Benutzer ifb und Passwort Speyer an. Dieser soll die Leserechte (SELECT) auf der Datenbank wm-stufe4 erhalten. 3.Versuchen Sie, mit diesem Benutzer auf die Datenbank des Nachbarn / der Nachbarin zuzugreifen.

63 I N F O R M A T I K 63 Agenda Abfragesprachesprache SQL Verwaltung MySQL Datenbankmodellierung Zugriff auf Datenbanken (PHP & Co.) Ausblick Datenbanken – Wozu? Verwaltung MySQLDatenbankmodellierung

64 I N F O R M A T I K 64 Ein neues Informationssystem… Anforderungskatalog Schulverwaltung Die Benutzer können eine Liste aller Lehrer mit ihrem Dienstkürzel abrufen. Für jede Klasse ist eine Liste der durchgeführten Klassenfahrten mit dem leitenden Lehrer ersichtlich. StD L. Lämpel übernimmt dieses Jahr die 7a als Klassenleiter. Die Klasse kann das im Internet schon in den Ferien erfahren. Eine Suche ist möglich über Klassenstufe, Lehrer oder Fach. StR A. Kribich hat sich fortgebildet und darf ab diesem Jahr neben Mathematik und ev. Religion auch Informatik unterrichten. Die Fachschaftsliste muss aktualisiert werden. Nachdem LiA Sch. Merz in Rente gegangen ist, geht die Fachbereichsleitung in Sport an OStR G. Lenk.

65 I N F O R M A T I K 65 Die Benutzer können eine Liste aller Lehrer mit ihrem Dienstkürzel abrufen. StD L. Lämpel übernimmt dieses Jahr die 7a als Klassenleiter. Die Klasse kann das im Internet schon in den Ferien erfahren. Eine Suche ist möglich über Klassenstufe, Lehrer oder Fach. … ? Datenmodell Repräsentation der Informationen als strukturierte Daten Modellbildung Um ein Informationssystem zu erstellen, muss ein Ausschnitt der realen Welt (Miniwelt) im Computersystem erfasst werden. Miniwelt Unstrukturierte Informationen über die Miniwelt

66 I N F O R M A T I K 66 Modellbildung Um aus einer Beschreibung einer Miniwelt das Datenmodell einer Datenbank abzuleiten, bietet es sich an, zunächst ein grafisches Konzept der Daten zu erstellen. Text Externe Sicht Konzeptionelle Sicht Internes Modell (z.B. relationales Datenmodell)

67 I N F O R M A T I K 67 Konzeptionelles Modell – E/R-Diagramme E/R-Diagramme dienen dazu, das konzeptionelle Modell des Informationssystems zu erstellen. Es werden zwei Konstrukte verwendet: Entitätstypen Beziehungstypen (Relationships) Eine Entität ist ein bestimmtes Objekt der realen Welt oder unserer Vorstellung z.B. eine Person, ein Gegenstand, ein Ereignis Entitäten mit gleichen Eigenschaften werden zu Entitätstypen zusammengefasst Symbol: Rechteck Lehrer

68 I N F O R M A T I K 68 E/R-Diagramme - Entitätstyp Beispiel Entitätstyp: Entität:Lehrer Lämpel, Kürzel Lä Entitätstyp:Menge aller Lehrer mit den Merkmalen Vorname, Nachname, Kürzel, … Primärschlüssel:Kürzel (?) (oder ein künstlicher Schlüssel) Entitätstyp Lehrer Kürzel: Lä Name: Lämpel Vorname: Ludwig Titel: StD 3 Entitäten Kürzel: Kr Name: Kribich Vorname: Alfred Titel: StR Kürzel: Le Name: Lenk Vorname: Gertrud Titel: OStR'

69 I N F O R M A T I K 69 Klasse E/R-Diagramme - Beziehungstyp Gleichartige Beziehungen zwischen Entitäten werden als ein Beziehungstyp zwischen den Entitätstypen definiert. Symbol: Raute Beispiel: Ein Lehrer führt Klassenfahrten durch. Lehrer Kuerzel: Me Name: Merz Kuerzel: Kr Name: Kribich Kuerzel: Lä Name: Lämpel Stufe: 12 Teil: m3 Stufe: 11 Teil: M1 Stufe: 8 Teil: a Entitätstyp Klassenfahrt Beziehungstyp Beziehungen

70 I N F O R M A T I K 70 Modellierung oft nicht eindeutig Die Beziehung Klassenfahrt könnte man auch als eigenen Entitätstyp modellieren. Modellierung ist oft nicht eindeutig, es gibt je nach Ansicht mehrere sinnvolle Modelle für eine Miniwelt. KlasseLehrer führt durch Klassenfahrt nimmt teil

71 I N F O R M A T I K 71 E/R-Diagramme - Attribute Die Eigenschaften aller Entitäten und Beziehungen eines Entitätstyps bzw. eines Beziehungstyps werden mit Hilfe von Attributen erfasst. Symbol: Ellipse Beispiel: KlasseLehrer Klassenfahrt Name Kürzel Vorname identifizierend beschreibend Teil Anzahl Stufe Datum Ziel

72 I N F O R M A T I K 72 E/R-Diagramme – Kardinalität Ein Beziehungstyp wird durch die Kardinalität genauer bezeichnet: 1:n- Beziehung am Beispiel: Klassenzuordnung der Schüler SchülerKlasse angehören Name: 9a Name: 9b Name: 10d Name: Müller Vorname: Yvonne Name: Meier Vorname: Jan Name: Dietz Vorname: Nicole Name: Seiler Vorname: Manfred KlasseSchüler 1n Ein Schüler gehört einer Klasse an. Einer Klasse gehören mehrere Schüler an.

73 I N F O R M A T I K 73 E/R-Diagramme – Kardinalität n:m – Beziehung am Beispiel: Kurszuordnung von Schülern in der MSS SchülerKurs besucht Fach: Mathe LK: ja Fach: Deutsch LK: ja Fach: Englisch LK: ja KursSchüler nm Ein Kurs hat mehrere Schüler. Ein Schüler nimmt an mehreren Kursen teil. Name: Müller Vorname: Yvonne Name: Meier Vorname: Jan Name: Dietz Vorname: Nicole Name: Seiler Vorname: Manfred

74 I N F O R M A T I K 74 E/R-Diagramme – Kardinalität Die Kardinalitäten (1:1, 1:n, n:m) geben nur an, wie viele Entitäten maximal miteinander verbunden sind. Bsp.:Ein Schüler ist maximal einer Klasse zugeordnet. Einer Klasse sind maximal n Schüler zugeordnet. Die Kardinalität kann zusätzlich eingeschränkt werden. Bsp.: Eine Klasse hat minimal 8 und maximal 30 Schüler. SchülerKlasse angehören 1n SchülerKlasse angehören 1n [8,30][1,1]

75 I N F O R M A T I K 75 Personen E/R-Diagramme – Reflexive Beziehungstypen Beziehungen können auch auf dem gleichen Entitätstyp gelten, Selbstbeziehung oder Reflexive Beziehung. Bsp.: Heirat Name: Meier Vorname: Klaus Name: Bach Vorname: Stefan Name: Meier Vorname: Sabine Name: Bach-Meier Vorname: Petra Name: Hurtig Vorname: Hans Personen Heirat 1 1 oder n:m ?

76 I N F O R M A T I K 76 E/R-Diagramme – Ist-Beziehung Die Ist-Beziehung gibt an, dass ein Entitätstyp eine Spezialisierung eines anderen Entitätstyps darstellt. Bsp.: Lehrer spezialisiert Person Die Spezialisierungstypen erben die Attribute des Generalisierungstyps. Generalisierungstyp Spezialisierungstypen Klasse Person SchülerLehrer ist Titel VornameName

77 I N F O R M A T I K 77 Normalisierung von relationalen Schemata Im ersten Teil wurde eine bestehende Datenbank sukzessive erweitert und vor allem in mehrere Tabellen zerlegt, um Redundanzen zu vermeiden. Dieser Prozess kann in der sog. Normalisierung formalisiert werden. Das Relationenschema wird dabei in die erste, zweite, dritte usw. Normalform überführt. Immer mehr Redundanzen werden vermieden. Immer mehr Tabellen sind notwendig (und Anfragen werden komplexer). Prozess wird in der Realität nur bis zu einem gewissen Grad durchlaufen. Weitergehendes mit Beispielen in:

78 I N F O R M A T I K 78 Transformation E/R-Modell in relationales Schema Transformation von Entitätstypen Für jeden Entitätstyp eine Tabelle Schüler Name SNRSNR Vorname Schueler SNRNameVorname E/R-Modell Relationales Schema

79 I N F O R M A T I K 79 Transformation E/R-Modell in relationales Schema Transformation von 1:n-Beziehungstypen Fremdschlüssel wird auf Seite der Kind-Klasse hinzugefügt (kann, aber muss nicht der Name des Primärschlüssels sein). SchülerKlasse angehören 1n Name SNR Vorname Stufe KNR Klasse KNRStufe Schueler SNRNameVorname E/R-Modell Relationales Schema KNR

80 I N F O R M A T I K 80 Transformation E/R-Modell in relationales Schema Transformation von n:m-Beziehungstypen Einfügen eines Fremdschlüssels nicht möglich Separate Tabelle mit zwei Fremdschlüsseln SchülerKurs besucht nm Schueler SNRNameVorname Name SNR Vorname Stufe KNR Kurs KNRStufe Fehlstunden KNR Besucht Fehlst.SNR E/R-Modell Relationales Schema

81 I N F O R M A T I K 81 Transformation E/R-Modell in relationales Schema Transformation von 1:1-Beziehungstypen z.B. das separate Speichern von sensiblen Daten zu Personen Separate Tabelle, wobei dort Primärschlüssel auch Fremdschlüssel ist. SchülerPrivatSchüler Zusatzdaten 11 SchuelerPrivat Konfession SNR Herkunft Name SNR Vorname Schueler SNRNameVorname E/R-Modell Relationales Schema HerkunftKonfessionSNR

82 I N F O R M A T I K 82 Transformation E/R-Modell in relationales Schema Transformation der Ist-Beziehung Separate Tabelle, ähnlich der 1:1-Beziehung E/R-Modell Relationales Schema PersonSchüler ist Name Vorname PNRSNR Schulart SchuelerPerson SNRNameVornameKonfessionSchulartSNR Konfession

83 I N F O R M A T I K 83 Tools für E/R-Diagramme DBDesigner4 Ungetestet: Mogwai ER-Designer (http://sourceforge.net/projects/mogwai/)http://sourceforge.net/projects/mogwai/ TOAD Data Modeler TOAD für MySQL (Beta) Oder doch einfach mit Office-Programmen…

84 I N F O R M A T I K 84 Aufgaben Erstellen Sie ein E/R-Modell und dann das relationale Schema. Schule Es werden alle LehrerInnen mit ihren Namen, Vornamen, Kürzeln und Dienstgrad erfasst. Die Benutzer können im Internet eine Liste der Klassen mit ihren KlassenleiterInnen einsehen. Es ist eine Suche nach den Fachschaften der Schule möglich. Dabei werden auch alle LehrerInnen angezeigt, die der Fachschaft angehören.

85 I N F O R M A T I K 85 Bibliothek … Anforderungskatalog Erstellen Sie ein E/R-Modell und dann das relationale Schema. Bibliothek In der Bibliothek müssen Bücher erfasst werden. Eine Suche ist möglich über Sachgebiet, Autor, Titel, Erscheinungsort und –jahr, Verlag. Bei der Suche wird eine Liste aller verfügbaren Verlage vorgeblendet. Leser, die Bücher ausleihen wollen, müssen sich zuvor registrieren. Für ein Buch kann herausgefunden werden, ob es zur Zeit ausgeliehen ist und von wem. Um Schäden nachvollziehen zu können, können alle vorherigen Ausleiher ermittelt werden. Bei zu langer Ausleihe erfolgt eine Mahnung an den Leser. Das muss vermerkt werden.

86 I N F O R M A T I K 86 Anfragen an die Bibliothek-Datenbank Eine Datenbank für das Schema kann fertig importiert werden! (Bibliotheks-DB_latin.sql) 1.Welche Bücher sind bei einem Verlag aus München erschienen? (214 Ergebnisse) 2.Welche Jugendbücher sind zur Zeit von welchem Leser ausgeliehen? Geben Sie den Buchtitel, den Lesernamen und das Datum der Ausleihe aus! (7 Ergebnisse) 3.Wie viele Bücher existieren zu jedem Sachgebiet? Geben Sie die Sachgebiete nach Anzahl absteigend sortiert aus. 4.Wie viele Bücher aus jedem Sachgebiet sind zur Zeit ausgeliehen? (Kinder: 14) 5.Welche Leser haben zur Zeit Bücher ausgeliehen? (49 Ergebnisse, Achtung Duplikate?)

87 I N F O R M A T I K 87 Arztpraxis … Anforderungskatalog Arztpraxis Dr. Mager (kurz Ma) behandelt am den Patienten Willi Schäfer (Patientennummer 3012). Im Rahmen dieser Behandlung werden die folgenden Leistungen erbracht: Beratung, symptombezogene Untersuchung, Schutzimpfung. Jede dieser Leistungen ist über eine Nummer identifizierbar und kostet eine bestimmte Gebühr. Frau Dr. Hurtig (kurz Hu) wird am Sonntag ( ) zu einem Notfall gerufen. Patient Manfred Achilles ist beim Fußballspiel eine Sehne gerissen. In der Untersuchung vor Ort wird das Bein ruhig gestellt und der Patient ins Krankenhaus eingewiesen. Herr Dr. Alzheimer (kurz Al) besucht regelmäßig seine Patientin Paula Stein im Altenheim. Diese Untersuchung gilt als Vorsorgemaßnahme.

88 I N F O R M A T I K 88 Agenda Abfragesprachesprache SQL Verwaltung MySQL Datenbankmodellierung Zugriff auf Datenbanken (PHP & Co.) Ausblick Datenbanken – Wozu? DatenbankmodellierungZugriff auf Datenbanken (PHP & Co.)

89 I N F O R M A T I K 89 Zugriff auf MySQL über PHP Grundlegende Schritte jedes Datenbankzugriffs in PHP: 1.Verbindung mit dem Datenbanksystem aufbauen Ergebnis der Verbindung ist eine Variable (Handle), mit der auf die Verbindung zugegriffen werden kann. Fehler sollten (gerade hier) abgefangen (PHP-Konstrukt or die) und ausgegeben werden. 2.Datenbank auswählen $link = mysql_connect($Host, $Benutzer, $Passwort) or die("DB-Verbindung unmöglich: ". mysql_error()); mysql_select_db($Datenbank) or die("Auswahl Datenbank unmöglich: ". mysql_error());

90 I N F O R M A T I K 90 Zugriff auf MySQL über PHP 3.Abfrage ausführen Ergebnis ist eine Variable (Handle), mit der auf das Resultat der Anfrage zugegriffen werden kann. 4.Ergebnisse ausgeben Grundlegendes Problem Programmiersprachen sind iterativ relationale Datenbanken (und damit SQL) sind mengenorientiert Speicherung und Durchlaufen der Ergebnisse notwendig Für das Abrufen der Ergebnisse gibt es drei wesentliche Varianten: i.Array ii.Assoziatives Array iii.Objektorientiert 5.Freigabe der Handles (kann entfallen) $result = mysql_query($SQLText) or die("Anfrage fehlgeschlagen: ". mysql_error()); mysql_free_result($result); mysql_close($link);

91 I N F O R M A T I K 91 Zugriff auf eine Spalte der Ergebniszeile Auslesen und Speichern einer Ergebniszeile als Array Zugriff auf MySQL über PHP Ausgabe der Ergebnisse als Array mysql_fetch_array liefert eine komplette Zeile des Ergebnisses als Array (Alternative: mysql_fetch_row ) Nach der letzten Zeile wird FALSE zurückgegeben while ($arrRow = mysql_fetch_array($result)) { echo "$arrRow[0] : $arrRow[1]"; } Schleife über alle Zeilen des Ergebnisses

92 I N F O R M A T I K 92 Zugriff auf eine Spalte der Ergebniszeile Auslesen und Speichern einer Ergebniszeile als Array Schleife über alle Zeilen des Ergebnisses Zugriff auf MySQL über PHP Ausgabe der Ergebnisse als assoziatives Array mysql_fetch_array liefert auch ein assoziatives Array, d.h. es kann über die Spaltennamen zugegriffen werden. Problem: Spaltennamen müssen eindeutig sein while ($arrRow = mysql_fetch_array($result)) { echo "$arrRow[Team1] : $arrRow[Team2]"; }

93 I N F O R M A T I K 93 Zugriff auf eine Spalte der Ergebniszeile Auslesen und Speichern einer Ergebniszeile als objekt Zugriff auf MySQL über PHP Ausgabe der Ergebnisse als Objekt mysql_fetch_object liefert eine komplette Zeile des Ergebnisses als Objekt Nach der letzten Zeile wird FALSE zurückgegeben while ($oRow = mysql_fetch_object($result)) { echo "$oRow->Team1 : $oRow->Team2"; } Schleife über alle Zeilen des Ergebnisses

94 I N F O R M A T I K 94 Zugriff auf MySQL über PHP Weitere interessante Funktionen: mysql_num_rows($result) Gibt die Anzahl der Zeilen (Datensätze) im Ergebnis aus. mysql_num_fields($result) Gibt die Anzahl der Spalten im Ergebnis aus. mysql_field_name($result, 0) Name eines Feldes im Ergebnis. mysql_affected_rows() Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation wie z.B. DELETE, UPDATE Vereinfachung: Herstellen der Verbindung / Datenbankauswahl in eine separate Include-Datei, die immer wieder verwendet werden kann. include "_DBVerbindung.inc" ;

95 I N F O R M A T I K 95 PHP und Datenbanken – Aufgaben 1.Erstellen Sie php-Anzeigeseiten für die Datenbank wm-stufe4. Verwenden Sie dazu Abfragen aus dem SQL-Teil. 2.Erstellen Sie eine Abfrage, bei der der Spielort eingegeben werden kann (HTML-Formular). Es werden dann alle Begegnungen an diesem Ort ausgegeben. 3.Erweiterung zu 2. : Die Liste der verfügbaren Orte wird vorgeblendet. 4.Geben Sie die Begegnungen aus. Es sollen Links in jeder Spalte sein, die eine Sortierung erlauben.

96 I N F O R M A T I K 96 MySQL in Delphi In Delphi kann der Zugriff auf Datenbanken mittels Borland Database Engine (BDE) bzw. dbExpress erfolgen. Problem: Ab Delphi 5 ist die Datenbankunterstützung nur in der Professional-Version enthalten. Lösung: Verzicht auf Borland-Datenbank-Komponenten und Verwendung freier Zugriffssoftware MySQLDirect (http://www.sourceforge.net/projects/directsql)www.sourceforge.net/projects/directsql Units, die einen einfachen Datenbankzugriff erlauben Einsteiger-Tutorial dazu:

97 I N F O R M A T I K 97 (Datenbank)Server Datenbasis ODBC Connector ODBC (Open DataBase Connectivity) ist ein (alter) Standard, um auf Datenquellen (insbesondere Datenbanken) zuzugreifen. gewisse Standardisierung und damit leichtere Portierung auf andere Datenbanksysteme Zugriffsmöglichkeit für verschiedene Programme (Excel, Access, Delphi, …) Muss für MySQL separat installiert werden (http://mysql.org/downloads/connector/)http://mysql.org/downloads/connector/ MySQL mit ODBC anzapfen Darstellung Anwendungsprogramm Logik Server Client

98 I N F O R M A T I K 98 MySQL mit ODBC anzapfen

99 I N F O R M A T I K 99 ODBC-Zugriff am Beispiel Excel 2003 In Excel gibt es Probleme mit der erstellten Datenquelle: Ein Zeichen des Charactersets wird abgeschnitten. Lösung: Speicherung der Quelle als dsn-Datei. Daten Importieren mysql_Quelle_für_wm-stufe1.dsn öffnen. Diese Datei kann für eigene Zwecke leicht mit einem Editor angepasst werden.

100 I N F O R M A T I K 100 Agenda Abfragesprachesprache SQL Verwaltung MySQL Datenbankmodellierung Zugriff auf Datenbanken (PHP & Co.) Ausblick Datenbanken – Wozu? Zugriff auf Datenbanken (PHP & Co.)Ausblick

101 I N F O R M A T I K 101 Ausblick - Was hätte man noch alles behandeln können? Weitere Möglichkeiten von SQL Outer Joins Sub-Selects Datenbank-Management Zugriffsbeschleunigung über Indizes Verwaltung der physischen Speicherung storage engine InnoDB für MySQL Sicherung der Datenbank Verändern der Datenbankinhalte mit SQL INSERT / DELETE / UPDATE Verändern der Datenbankstruktur über Anweisungen Data Definition Language (DDL) u.v.m.

102 I N F O R M A T I K 102 Software / Links XAMPP Deutsche MySQL Seite (englisch: MySQL Gui Tools PHP-Dokumentation (mit MySQL Funktionen) Connectors (ODBC, JDBC, …) für MySQL

103 I N F O R M A T I K 103 Software / Links Material zur MySQL-Verwendung von Klaus Merkert kl.de/faecher/inf/material/datenbanken/mysql/index.php kl.de/faecher/inf/material/datenbanken/mysql/index.php Material zu DB allgemein von OSZ Handel, Berlin en/index.htm en/index.htm u.v.m.

104 I N F O R M A T I K 104 Schemata der Beispieldatenbanken Schema zur Beispieldatenbank schulverwaltung.sql LehrerFaecher Klassen Klassenleiter unterrichtet n m nm KBuchstabeKStufeSaal LNRFNRFachNameVorname

105 I N F O R M A T I K 105 Schemata der Beispieldatenbanken Schema zur Beispieldatenbank bibliothek.sql Buecher Ausleihe BuchNrAutor… Leser LeserNrNachname… Leserprivat LeserNrGeschlecht… Ist Teil von …zurueck Verlag VNRNameOrt gibt heraus n 11 1 nm


Herunterladen ppt "INFORMATIK Informationssysteme / Datenbankabfragen Thomas Mohr."

Ähnliche Präsentationen


Google-Anzeigen