Informationssysteme datenbankabfragen
This presentation is the property of its rightful owner.
Sponsored Links
1 / 98

Informationssysteme / Datenbankabfragen PowerPoint PPT Presentation


  • 76 Views
  • Uploaded on
  • Presentation posted in: General

Informationssysteme / Datenbankabfragen. Thomas Mohr. Datenbanken – Wozu?. Datenbanken – Wozu?. Abfragesprachesprache SQL. Verwaltung MySQL. Datenbankmodellierung. Ausblick. Agenda. Informationssysteme. Informationssystem. Datenbanksystem DBS. Erfassung. Datenbankmanagementsystem

Download Presentation

Informationssysteme / Datenbankabfragen

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Informationssysteme datenbankabfragen

Informationssysteme / Datenbankabfragen

Thomas Mohr


Agenda

Datenbanken – Wozu?

Datenbanken – Wozu?

Abfragesprachesprache SQL

Verwaltung MySQL

Datenbankmodellierung

Ausblick

Agenda


Informationssysteme

Informationssysteme


Was ist ein informationssystem

Informationssystem

DatenbanksystemDBS

Erfassung

Datenbankmanagementsystem

DBMS, z.B. MySQL

Speicherung

Analyse

Darstellung

Datenbank

(Datenbasis)

Datenbank

(Datenbasis)

Was ist ein Informationssystem ?

  • Ein Informationssystem kann auf formalisierte Fragen eines Anwenders Antworten aus einer gegebenen Datenmenge geben

    • Komponenten eines Informationssystems:


Was ist ein informationssystem1

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


Ein ausgangspunkt im unterricht

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


Software architekturen standalone programm

Darstellung

PC

„Logik“

Anwendungsprogramm

Datenbasis

Software-Architekturen: „Standalone“-Programm

  • z.B.

    • selbst programmierte Schülerdatei

    • in Delphi programmierte Übersicht von Länderinformationen


Software architekturen standalone programm1

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)

Darstellung

PC

„Logik“

Anwendungsprogramm

Datenbasis

Software-Architekturen: „Standalone“-Programm


Software architekturen client server

Darstellung

Darstellung

Anwendungsprogramm

„Logik“

Client

„Logik“

Anwendungsprogramm

Datenbasis

Datenbasis

(Datenbank)Server

Server

Software-Architekturen - Client-Server

  • z.B.

    • Outlook und Exchange-Server

    • „einfache“, datenbank-basierte Schülerverwaltung


Software architekturen client server1

Darstellung

Anwendungsprogramm

„Logik“

Client

Datenbasis

(Datenbank)Server

Server

Software-Architekturen - Client-Server

  • z.B.

    • Outlook und Exchange-Server

    • „einfache“, datenbank-basierte Schülerverwaltung


Software architekturen client server2

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

Darstellung

Anwendungsprogramm

„Logik“

Client

Datenbasis

(Datenbank)Server

Server

Software-Architekturen - Client-Server


Software architekturen webarchitektur

Darstellung

Client

Webclient (Browser)

Darstellung

Anwendungsprogramm

„Logik“

„Logik“

Webserver (z.B. Apache und PHP)

Server

Datenbasis

Datenbankserver (z.B. MySQL)

Server

Software-Architekturen – Webarchitektur

  • Eine moderne 3-schichtige Webarchitektur…


Software architekturen webarchitektur1

Software-Architekturen – Webarchitektur

  • Eine moderne 3-schichtige Webarchitektur…

Darstellung

Client

Webclient (Browser)

„Logik“

Webserver (z.B. Apache und PHP)

Server

Datenbasis

Datenbankserver (z.B. MySQL)

Server


Software architekturen webarchitektur2

Vorteile

Keine Installation von zusätzlicher Software beim Client

Nachteile

http-Protokoll ohne Sessionverwaltung

Software-Architekturen – Webarchitektur

Darstellung

Client

Webclient (Browser)

„Logik“

Webserver (z.B. Apache und PHP)

Server

Datenbasis

Datenbankserver (z.B. MySQL)

Server


Typische hardware verteilung

Clients

Webserver

Datenbankserver

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.


Und zum testen f r die fortbildung

Clients

Webserver

Datenbankserver

… und zum Testen / für die Fortbildung?

  • Alle drei Schichten sind auf einem Rechner!

InternetExplorer

Client

Webserver

Datenbankserver

Apache

MySQL


Das andere extrem eine web farm

2,4 TByte

Das andere Extrem – eine Web Farm

Load Balancer

Application Server Farm

je 4Prozessoren

HACMP Fail-Over

Production DB Server

FailOver DB Server

32 GByte RAM

32 GByte RAM

FDDI Switch


Arten von datenbanken

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


Arten von datenbanken1

Attribut (Merkmal, Spalte)

Attributwert (Datenwert)

Attributklasse

Datensatz (Tupel)

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)

Land

NameEinwohnerHauptstadtKontinent

Dänemark5165000KopenhagenEuropa

Deutschland81338000 BerlinEuropa

Indien761000000 DelhiAsien

Rwanda6300000 KigaliAfrika


Arten von datenbanken2

Arten von Datenbanken

  • Relationale Datenbanken – typische Vertreter

    • Oracle

    • IBM (DB/2)

    • Microsoft SQL Server (Access ?)

    • Informix

    • MySQL

    • PostGreSQL

OpenSource


Was bietet mir eine datenbank

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


Agenda1

Datenbanken – Wozu?

Datenbanken – Wozu?

Abfragesprachesprache SQL

Abfragesprachesprache SQL

Verwaltung MySQL

Datenbankmodellierung

Ausblick

Agenda


Mysql jetzt wird es endlich praktisch

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.


Die erste datenbank importieren

Browser

Client

Apache

Webserver

MySQL

Datenbankserver

Die erste Datenbank importieren

  • Die Administration von MySQL funktioniert selbst schon am einfachsten über den Browser

    • Webarchitektur http://localhost/phpmyadmin


Die erste datenbank importieren1

Die erste Datenbank importieren

  • Legen Sie eine neue Datenbank „terra1“ an.

  • Wählen Sie den Punkt „Importieren“ und suchen die Datei„terra1.sql“


Die erste tabelle

Die erste Tabelle…

  • Klicken Sie auf „Struktur“: Die Tabelle „land“ wird angezeigt.

  • Lassen Sie sich den Inhalt der Tabelle anzeigen.


Relationale datenbank aufbau

Land

LNRNameEinwohnerHauptstadtKontinent

DKDänemark5.16KopenhagenEuropa

DDeutschland81.33BerlinEuropa

INDIndien761.00 DelhiAsien

RWARwanda6.30KigaliAfrika

Schlüsselattribut

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.


Abfragen mit sql

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.


Veranschaulichendes beispiel

Ergebnistabelle

NameEinwohnerKontinent

Deutschland81.34Europa

Indien761.00Asien

………

Veranschaulichendes Beispiel

  • SELECT Name, Einwohner, Kontinent FROM LandWHERE (Einwohner > 10)

Länder mit über 10 Mio. Einwohner

Land

LNRNameEinwohnerHauptstadtKontinent

DKDänemark5.16KopenhagenEuropa

DDeutschland81.34 BerlinEuropa

INDIndien761.00 DelhiAsien

RWARwanda6.30 KigaliAfrika

……………


Sql where

SQL – WHERE

  • Bedingungen mit Textattributen:

    • Name = 'Deutschland'

    • Name LIKE 'P%'(Paraguay, Polen, Portugal)

    • Name LIKE 'I_land'(Irland, Island)

  • 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)


Sql where1

SQL – WHERE

  • Vergleich auf Nullwert (kein Attributwert angegeben):

    LNR IS NULL

  • Logische Verknüpfungen:

    • NOT (Kontinent='Europa')

      (Kontinent nicht Europa)

    • (Kontinent='Europa') AND (Einwohner<1)

      (Zwergstaaten in Europa)

    • (Kontinent='Europa') OR (Kontinent='Asien')

      (Länder in Eurasien)


Sql order by

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 Land ORDER BY Name

    SELECT * FROM Land ORDER BY Kontinent, Einwohner DESC


Die ersten sql befehle

Die ersten SQL Befehle

  • Öffnen Sie das SQL-Fenster

  • Geben Sie alle Länder aus!

  • Geben Sie alle Länder aus:

    • Name, Einwohner, Hauptstadt

    • Sortierung nach Einwohner absteigend

SELECT *

FROM Land

SELECT Name, Einwohner, Hauptstadt

FROM Land

ORDER BY Einwohner DESC


Aufgaben datenbank terra1

Aufgaben, Datenbank: terra1

  • Welche Länder liegen in Asien und Australien?

  • Welche Länder haben zwischen 10 und 100 Mio. Einwohner?

    • Absteigend nach Einwohner sortiert

WHERE Kontinent='Asien' OR

Kontinent='Australien'

WHERE Einwohner BETWEEN 10 AND 100

ORDER BY Einwohner DESC


Hilfsfunktionen

SQL ist hier nicht standardisiert  Die Funktionen sind bei anderen DBS oft unterschiedlich

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!


Aufgaben datenbank t e rra1

Frankreich??Problem: Europa wird unterschiedlich geschrieben!

Lösung: Auslagerung in eine eigene Tabelle

Spalten können mit „AS“ umbenannt werden

Aufgaben, Datenbank: terra1

  • Geben Sie die Länder in folgender Form aus:

  • Welche Länder gibt es in Europa mit mehr als 20 Mio Einwohner?

CONCAT(UPPER(Name),' - ',Hauptstadt) AS Land,round(Einwohner) AS "Mio. Einwohner"

WHERE Kontinent = 'Europa' AND Einwohner > 20


Relationale datenbanken beziehungen

LNRNameEinwohnerHauptstadtKontinent

DKDänemark5.16KopenhagenEuropa

DDeutschland81.34 BerlinEuropa

INDIndien761.00 DelhiAsien

RWARwanda6.30 KigaliAfrika

Land

Kontinent

LNRName…KNR

DKDänemark…EU

DDeutschland…EU

INDIndien…AS

RWARwanda…AF

KNRName

EUEuropa

ASAsien

AFAfrika

Schlüsselattribut aus Kontinent

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.


Relationale datenbanken beziehungen1

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.

Master

Detail

PKeyDataFKey

PKeyData


Sql einfache joins

Land

Kontinent

LNRNameEinwohnerKNR

DKDänemark5.16EU

DDeutschland81.34EU

INDIndien761.00AS

RWARwanda6.30AF

KNRName

EUEuropa

ASAsien

AFAfrika

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.


Sql einfache joins1

LNRNameEinwohnerKNRKNRName

DKDänemark5.16EUEUEuropa

DKDänemark5.16EUASAsien

DKDänemark5.16EUAFAfrika

DDeutschland81.34EUEUEuropa

DDeutschland81.34EUASAsien

DDeutschland81.34EUAFAfrika

INDIndien761.00ASEUEuropa

INDIndien761.00ASASAsien

INDIndien761.00ASAFAfrika

……………

SQL – einfache Joins

  • Cross-Join („jede Zeile mit jeder“)

    • SELECT * FROM Land, Kontinent

LNRNameEinwohnerKNR

DKDänemark5.16EU

DDeutschland81.34EU

INDIndien761.00AS

RWARwanda6.30AF

KNRName

EUEuropa

ASAsien

AFAfrika

Land

Kontinent


Sql einfache joins2

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

……………

SQL – einfache Joins

  • 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 joins3

AND Land.Einwohner > 10

LNRNameEinwohnerKNRKNRName

DKDänemark5.16EUEUEuropa

DKDänemark5.16EUASAsien

DKDänemark5.16EUAFAfrika

DDeutschland81.34EUEUEuropa

DDeutschland81.34EUASAsien

DDeutschland81.34EUAFAfrika

INDIndien761.00ASEUEuropa

INDIndien761.00ASASAsien

INDIndien761.00ASAFAfrika

……………

SQL – einfache Joins

  • 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


Sql einfache joins4

LNRNameEinwohnerKNRKNRName

DDeutschland81.34EUEUEuropa

INDIndien761.00ASASAsien

……………

NameEinwohnerName

Deutschland81.34Europa

Indien761.00Asien

………

In der Realität versucht das DBMS, durch „geschicktes“ Vorgehen die Datenmenge schon früher zu reduzieren.

SQL – einfache Joins

  • Einschränken auf gesuchte Spalten.

    • Nur bestimmte Spalten werden ausgegeben.

    • SELECT Land.Name, Land.Einwohner, Kontinent.Name FROM Land,Kontinent WHERE Land.KNR = Kontinent.KNRAND Land.Einwohner > 10


Aufgaben datenbank terra2

Problem: Es werden Duplikate angezeigt

Lösung: DISTINCT-Anweisung

Aufgaben, Datenbank: terra2

  • Geben Sie alle Kontinente mit ihren Ländern aus:

    • Name der Kontinente und Länder

    • Sortierung nach Kontinent absteigend

  • In welchen Kontinenten gibt es Länder mit mehr als 100 Mio. Einwohner?

SELECT Kontinent.Name, Land.Name

FROM Kontinent, Land

WHERE Kontinent.KNR = Land.KNR

ORDER BY Kontinent.Name DESC

SELECT Kontinent.Name

FROM Land, Kontinent

WHERE Land.KNR = Kontinent.KNR

AND Land.Einwohner > 100

SELECT DISTINCT Kontinent.Name

FROM Land, Kontinent

WHERE Land.KNR = Kontinent.KNR

AND Land.Einwohner > 100


Erweiterung der datenbank

Ort

Land

ONRName…LNR

BANGALBangalore…IND

GOETTIGöttingen…D

KARLSR Karlsruhe…D

KOPENHKopenhagen…DK

LNRName…KNR

DKDänemark…EU

DDeutschland…EU

INDIndien…AS

RWARwanda…AF

Schlüsselattribut aus Land

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“.


Bisheriges schema der datenbank

Teil von

Land

Ort

Hauptstadt

Teil von

Kontinent

Finden Sie die Stelle in der Datenbank terra3, an der die „Hauptstadt“ abgespeichert ist?

Bisheriges „Schema“ der Datenbank

  • Ein erstes „E/R-Modell“

    • eigentlich intuitiv zu lesen!?


Aufgaben datenbank terra3

Aufgaben, Datenbank: terra3

  • Geben Sie alle Orte mit ihren Ländern aus:

    • Name der Orte und Länder

    • Sortierung nach Einwohnerzahl absteigend

  • Geben Sie alle Länder mit ihrer Hauptstadt aus!

    • Sortierung nach Kontinent und Land.

SELECT Ort.Name, Ort.Einwohner, Land.Name AS Land

FROM Ort, Land

WHERE Ort.LNR = Land.LNR

ORDER BY Ort.Einwohner DESC

SELECT Kontinent.Name AS Kontinent, Land.Name, Ort.Name AS Hauptstadt

FROM Ort, Land, Kontinent

WHERE Ort.ONR = Land.HauptONR

AND Land.KNR = Kontinent.KNR

ORDER BY Kontinent.Name, Land.Name


Sql tabellen alias

Teil von

Hauptstadt

Ort

Land

Ort

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>10000000

Der Alias-Name für Land ist nicht notwendig (verkürzt die Abfrage)


E r weite r ung der datenbank

Fluss

Ort

FNRNameLaenge

ELBElbe1144

MEKMekong4500

MOSMosel544

RHERhein1320

ONR

HAMBUR

PHNOMP

KOBLEN

KOBLEN

ONRName

GOETTIGöttingen

KARLSR Karlsruhe

KOBLEN Koblenz KOPENHKopenhagen

Problem: Für Flüsse müssen beliebig viele Orte eingetragen werden.

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?


E r weite r ung der datenbank1

Fluss

Ort

FNRNameLaenge

ELBElbe1144

MEKMekong4500

MOSMosel544

RHERhein1320

ONRName

GOETTIGöttingen

KARLSR Karlsruhe

KOBLEN Koblenz KOPENHKopenhagen

FNR

LEI

RHE

RHE

Problem: Für Orte müssen mehrere Flüsse eingetragen werden.

Lösung: Auslagerung der Zuordnung in eine eigene Tabelle

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?


E r weite r ung der datenbank2

Fluss

Ort

FNRNameLaenge

ELBElbe1144

MEKMekong4500

MOSMosel544

RHERhein1320

ONRName

GOETTIGöttingen

KARLSR Karlsruhe

KOBLEN Koblenz KOPENHKopenhagen

Stadtfluss

FNRONR

ELBHAMBUR

RHEKOBLEN

RHEKARLSR

MOSKOBLEN

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.


Struktur der datenbank terra4

Struktur der Datenbank terra4

1

n

Teil von

Land

Ort

Hauptstadt

n

1

1

n

Teil von

durchfließt

1

m

Kontinent

Fluss


Aufgaben datenbank terra4

Aufgaben, Datenbank: terra4

  • Welche Orte liegen an der Donau?

  • Welche Länder durchfließt die Donau?

  • Welche Flüsse fließen durch Deutschland?

SELECT o.Name

FROM Ort o, Stadtfluss sf, Fluss f

WHERE o.ONR = sf.ONR

AND sf.FNR = f.FNR

AND f.Name = 'Donau'

SELECT DISTINCT l.Name

FROM Land l, Ort o, Stadtfluss sf, Fluss f

WHERE l.LNR = o.LNR

AND o.ONR = sf.ONR

AND sf.FNR = f.FNR

AND f.Name = 'Donau'

SELECT DISTINCT f.Name, f.Laenge

FROM Fluss f, StadtFluss sf, Ort o, Land l

WHERE f.FNR = sf.FNR

AND sf.ONR = o.ONR

AND o.LNR = l.LNR

AND l.Name = 'Deutschland'


Gruppieren von ergebnissen

ONRName

AALBOR Dänemark

KOPENHDänemark

BERLINDeutschland

DUESSEDeutschland

MAINZDeutschland

TALLINEstland

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!


Gruppieren von ergebnissen1

ONRName

AALBOR Dänemark

KOPENHDänemark

BERLINDeutschland

DUESSEDeutschland

MAINZDeutschland

TALLINEstland

NameAnzahl

Dänemark2

Deutschland3

Estland1

2

3

1

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


Aufgaben datenbank terra41

Aufgaben, Datenbank: terra4

  • Zählen Sie die Staaten pro Kontinent!

    • Geben Sie die Kontinente nach der Anzahl absteigend aus.

  • Wie viele Staaten haben Megacities (> 5 Mio. Einwohner) als Hauptstadt?

SELECT K.Name, COUNT(*) AS Anzahl

FROM Land L, Kontinent K

WHERE L.KNR = K.KNR

GROUP BY K.Name

ORDER BY Anzahl DESC

SELECT COUNT(*)

FROM Land L, Ort O

WHERE O.ONR = L.HauptONR

AND O.Einwohner > 5000000

GROUP BY entfällt, wenn „nur“ gezählt wird.


Aufgaben datenbank terra42

Aufgaben, Datenbank: terra4

  • Wie viele Einwohner haben die Länder pro Kontinent im Schnitt?

  • Welche Städte liegen an mehr als einem Fluss?

SELECT k.Name AS Kontinent, AVG(l.Einwohner) AS Schnitt

FROM Kontinent k, Land l

WHERE k.KNR = l.KNR

GROUP BY k.Name

ORDER BY k.Name

Weitere BuiltIn-Funktionen:MAX, MIN, SUM,…

SELECT o.Name, COUNT(*) AS Anzahl

FROM Ort o, StadtFluss sf

WHERE o.ONR = sf.ONR

GROUP BY o.Name

HAVING COUNT(*)>1

ORDER BY o.Name


Struktur der kompletten datenbank miniterra

Struktur der kompletten Datenbank „miniterra“

Sprache

n

gesprochen

n

1

n

m

Teil von

benachbart

Land

Ort

Hauptstadt

m

n

1

1

n

Teil von

durchfließt

m

1

1

mündet

Kontinent

Fluss

n


F r experten

Für Experten…

  • Welche Städte liegen an mehr als einem Fluss?

    • Welche Flüsse sind es jeweils?

  • Welche Länder grenzen an Deutschland?

SELECT o.Name, f.Name

FROM Ort o, StadtFluss sf1, Fluss f

WHERE o.ONR = sf1.ONR

AND f.FNR = sf1.FNR

AND EXISTS (SELECT NULL FROM StadtFluss sf2 WHERE sf1.FNR<>sf2.FNR AND sf2.ONR=o.ONR)

ORDER BY o.Name

SELECT l1.Name, l2.Name

FROM Nachbarland n, Land l1, Land l2

WHERE (n.LNR1='D' OR n.LNR2='D')

AND l1.LNR = n.LNR1

AND l2.LNR = n.LNR2


F r experten1

Für Experten…

  • Welche Länder grenzen an Deutschland?

    • Geben Sie nur die Nachbarländer aus!

  • Welche Flüsse münden in den Rhein?

SELECT IF(l1.LNR='D',l2.Name, l1.Name) AS "Direkte Nachbarn"

FROM Nachbarland n, Land l1, Land l2

WHERE (n.LNR1='D' OR n.LNR2='D')

AND l1.LNR = n.LNR1

AND l2.LNR = n.LNR2

ORDER BY "Direkte Nachbarn"

ACHTUNG:Nicht genormt!

SELECT fc.Name

FROM Fluss fp, Fluss fc

WHERE fp.FNR = fc.ZielFNR

AND fp.Name = 'Rhein'

Selbstreferenz der Tabelle Fluss


U v m

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)


Agenda2

Datenbanken – Wozu?

Abfragesprachesprache SQL

Abfragesprachesprache SQL

Verwaltung MySQL

Verwaltung MySQL

Datenbankmodellierung

Ausblick

Agenda


Verwaltung des datenbanksystems

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


Mysql passwort f r administrator vergeben

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';


Mysql passwort f r administrator vergeben1

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


Benutzer rechte vergeben

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


Benutzer rechte vergeben1

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


Benutzer anlegen

Benutzer anlegen

  • Schützen Sie den Administrator-Zugang für ihren mySQL-Server wie zuvor beschrieben.

  • Legen Sie einen Benutzer „ifb“ und Passwort „Speyer“ an. Dieser soll die Leserechte (SELECT) auf der Datenbank „miniterra“ erhalten.

  • Versuchen Sie, mit diesem Benutzer auf die Datenbank des Nachbarn / der Nachbarin zuzugreifen.


Agenda3

Datenbanken – Wozu?

Abfragesprachesprache SQL

Verwaltung MySQL

Verwaltung MySQL

Datenbankmodellierung

Datenbankmodellierung

Ausblick

Agenda


Ein neues informationssystem anforderungskatalog

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.


Modellbildung

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

  • 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.

Unstrukturierte Informationen über die Miniwelt


Modellbildung1

KonzeptionelleSicht

InternesModell(z.B. relationalesDatenmodell)

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

ExterneSicht


Konzeptionelles modell e r diagramme

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


E r diagramme entit tstyp

Kürzel:Lä

Name:LämpelVorname:LudwigTitel:StD

Kürzel:Kr

Name:KribichVorname:Alfred

Titel:StR

Kürzel:Le

Name:LenkVorname:Gertrud

Titel:OStR'

Entitätstyp„Lehrer“

3 Entitäten

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)


E r diagramme beziehungstyp

Kuerzel:Lä

Name:Lämpel

Stufe:8

Teil:a

Beziehungen

Kuerzel:Kr

Name:Kribich

Stufe:11

Teil:M1

Kuerzel:Me

Name:Merz

Stufe:12

Teil:m3

Klassenfahrt

Beziehungstyp

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

Klasse

Entitätstyp

Entitätstyp


Modellierung oft nicht eindeutig

führt durch

nimmtteil

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.

Lehrer

Klasse

Klassenfahrt


E r diagramme attribute

Name

Datum

Stufe

Teil

Kürzel

identifizierend

Vorname

Anzahl

Ziel

beschreibend

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:

Klassenfahrt

Lehrer

Klasse


E r diagramme kardinalit t

1

n

Ein Schüler gehört einer Klasse an. Einer Klasse gehören mehrere Schüler an.

E/R-Diagramme – Kardinalität

  • Ein Beziehungstyp wird durch die Kardinalität genauer bezeichnet:

    • 1:n- Beziehung am Beispiel: Klassenzuordnung der Schüler

Name:9a

Name: MüllerVorname: Yvonne

Name:9b

Name: MeierVorname: Jan

Name:10d

Name: DietzVorname: Nicole

Name: SeilerVorname: Manfred

Klasse

Schüler

angehören

Klasse

Schüler


E r diagramme k a rdina l it t

n

m

Ein Kurs hat mehrere Schüler. Ein Schüler nimmt an mehreren Kursen teil.

E/R-Diagramme – Kardinalität

  • n:m – Beziehung am Beispiel: Kurszuordnung von Schülern in der MSS

Fach: MatheLK: ja

Name: MüllerVorname: Yvonne

Fach: DeutschLK: ja

Name: MeierVorname: Jan

Fach: EnglischLK: ja

Name: DietzVorname: Nicole

Name: SeilerVorname: Manfred

Kurs

Schüler

besucht

Kurs

Schüler


E r diagramme kardinalit t1

[1,1]

[8,30]

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.

1

n

angehören

Klasse

Schüler

1

n

angehören

Klasse

Schüler


E r diagramme reflexive beziehungstypen

E/R-Diagramme – Reflexive Beziehungstypen

  • Beziehungen können auch auf dem gleichen Entitätstyp gelten, Selbstbeziehung oder Reflexive Beziehung.

    • Bsp.: Heirat

Name: MeierVorname: Klaus

Name: BachVorname: Stefan

Name: MeierVorname: Sabine

Name: Bach-MeierVorname: Petra

Name: HurtigVorname: Hans

Personen

1

Heirat

Personen

1

oder n:m ?


Normalisierung von relationalen schemata

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: http://de.wikipedia.org/wiki/Normalisierung


Transformation e r modell in relationales schema

E/R-Modell

Schueler

SNR

Name

Vorname

Relationales Schema

Transformation E/R-Modell in relationales Schema

  • Transformation von Entitätstypen

    • Für jeden Entitätstyp eine Tabelle

Schüler

Name

SNR

Vorname


Transformation e r modell in relationales schema1

E/R-Modell

Klasse

KNR

Stufe

KNR

Relationales Schema

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).

1

n

angehören

Klasse

Schüler

Name

KNR

SNR

Stufe

Vorname

Schueler

SNR

Name

Vorname


Transformation e r modell in relationales schema2

E/R-Modell

Besucht

KNR

SNR

Fehlst.

Relationales Schema

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

n

m

besucht

Kurs

Schüler

Name

KNR

SNR

Stufe

Fehlstunden

Vorname

Kurs

Schueler

KNR

Stufe

SNR

Name

Vorname


Transformation e r modell in relationales schema3

E/R-Modell

SNR

Konfession

Herkunft

Relationales Schema

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.

1

1

Zusatzdaten

Schüler

SchülerPrivat

Vorname

Konfession

SNR

SNR

Name

Herkunft

Schueler

SchuelerPrivat

SNR

Name

Vorname


Tools f r e r diagramme

Tools für E/R-Diagramme

  • DBDesigner4http://fabforce.net/dbdesigner4/

  • Ungetestet:

    • Mogwai ER-Designer (http://sourceforge.net/projects/mogwai/)

    • TOAD Data Modeler

    • TOAD für MySQL (Beta)http://www.toadsoft.com/toadmysql/Overview.htm

  • Oder doch einfach mit Office-Programmen…


Aufgaben

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.


Bibliothek anforderungskatalog

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.


Anfragen an die bibliothek datenbank

Anfragen an die Bibliothek-Datenbank

  • Eine Datenbank für das Schema kann fertig importiert werden!(Bibliotheks-DB_latin.sql)

  • Welche Bücher sind bei einem Verlag aus München erschienen?(214 Ergebnisse)

  • Welche Jugendbücher sind zur Zeit von welchem Leser ausgeliehen?Geben Sie den Buchtitel, den Lesernamen und das Datum der Ausleihe aus!(7 Ergebnisse)

  • Wie viele Bücher existieren zu jedem Sachgebiet?Geben Sie die Sachgebiete nach Anzahl absteigend sortiert aus.

  • Wie viele Bücher aus jedem Sachgebiet sind zur Zeit ausgeliehen?(Kinder: 14)

  • Welche Leser haben zur Zeit Bücher ausgeliehen?(49 Ergebnisse, Achtung Duplikate?)


Arztpraxis anforderungskatalog

Arztpraxis … Anforderungskatalog

  • „Arztpraxis“

  • Dr. Mager (kurz Ma) behandelt am 21.2.2005 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 (27.2.2005) 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.


Agenda4

Datenbanken – Wozu?

Abfragesprachesprache SQL

Verwaltung MySQL

Datenbankmodellierung

Datenbankmodellierung

Ausblick

Ausblick

Agenda


Vernetzung des themas grenzen von sql

Nordsee

Elbe

Elbe

Havel

Havel

Aller

Spree

Spree

Weser

Rhein

Fulda

Werra

Main

Mosel

Neckar

Donau

Inn

Isar

Vernetzung des Themas - Grenzen von SQL

  • Problem: „Verfolgen eines Flusslaufes“

    • von der Quelle zum Meerz.B. Spree

  • Hier werden iterative Strukturenbenötigt, die SQL (als mengen-orientierte Sprache) im Standard nicht bietet.

  • Anknüpfung an Programmierung

    • PHP, Delphi, Java


Vernetzung des themas grenzen von sql1

Nordsee

Nordsee

Elbe

Elbe

Havel

Havel

Aller

Aller

Spree

Spree

Weser

Weser

Rhein

Rhein

Fulda

Fulda

Werra

Werra

Main

Main

Mosel

Mosel

Neckar

Neckar

Donau

Inn

Isar

Vernetzung des Themas - Grenzen von SQL

  • Problem: „Verfolgen eines Flusslaufes“

    • vom Meer zu den Zuflüssenz.B. Nordsee

  • Beispiel für eine (elegante?)rekursive Programmierung


Ausblick was h tte man noch alles behandeln k nnen

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.


Software links

Software / Links

  • XAMPP

    • http://www.apachefriends.org/de/xampp.html

  • Deutsche MySQL Seite

    • http://www.mysql.de/ (englisch: http://mysql.com/)

  • MySQL Gui Tools

    • http://www.mysql.de/downloads/gui-tools/

  • PHP-Dokumentation (mit MySQL Funktionen)

    • http://www.php.net/download-docs.php

  • Connectors (ODBC, JDBC, …) für MySQL

    • http://www.mysql.de/downloads/connector/


Software links1

Software / Links

  • Material zur MySQL-Verwendung von Klaus Merkert

    • http://www.hsg-kl.de/faecher/inf/material/datenbanken/mysql/index.php

  • Material zu DB allgemein von OSZ Handel, Berlin

    • http://oszhdl.be.schule.de/gymnasium/faecher/informatik/datenbanken/index.htm

  • u.v.m.


Informationssysteme datenbankabfragen1

Informationssysteme / Datenbankabfragen

Thomas Mohr


  • Login