• Keine Ergebnisse gefunden

DQ imClientDB-Server-Protokoll

N/A
N/A
Protected

Academic year: 2022

Aktie "DQ imClientDB-Server-Protokoll"

Copied!
24
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Datenbanksysteme 2015

Kapitel 09:

Datenbankapplikationen Oliver Vornberger

Institut für Informatik

Universität Osnabrück

(2)

Datenbankapplikationen

DQ im Client

ODBC MS Visio MS Access

Embedded SQL JDBC Application SQLJ

SQLite / HSQLDB JDBC Applet

Java Servlet

Java Server Pages PHP

Ruby on Rails CouchDB

DB-Server-Protokoll

(3)

Client Client Client

ODBC

Informix Microsoft Oracle

ODBC-Datenquelle

Anwendungsprogramm

Open Data base connectivity

(4)

MySQL Connector

http://www.mysql.com/products/connector/

(5)

Datenquelle hinzufügen

Demo Systemsteuerung

(6)

MS Visio

Studenten

PK MatrNr Name Semester GebDatum

Vorlesungen

PK VorlNr Titel SWS FK1 gelesenVon hoeren

PK,FK1 MatrNr PK,FK2 VorlNr

Professoren

PK PersNr Name Rang U1 Raum

Gebdatum voraussetzen PK,FK2 Vorgaenger PK,FK1 Nachfolger

Assistenten

PK PersNr Name Fachgebiet FK1 Boss

GebDatum pruefen

PK,FK2 MatrNr PK,FK3 VorlNr FK1 PersNr

Note

Demo Visio

(7)

MS Access

Stand-alone Datenbanksystem

Frontend per ODBC für relationale Datenbank

• Schemadesign

• Beziehungen

• Queries

• Berichte

• Formulare

• VBA-Skript

MS Access

(8)

MS Access Tabelle

(9)

MS Access Abfrage

SELECT Professoren.Name AS Dozenten, Studenten.Name AS Hörer FROM ((Vorlesungen INNER JOIN hoeren ON

Vorlesungen.VorlNr=hoeren.VorlNr)

INNER JOIN Studenten ON hoeren.MatrNr=Studenten.MatrNr) INNER JOIN Professoren ON

Vorlesungen.gelesenVon=Professoren.PersNr;

(10)

MS Access Bericht

(11)

MS Access Formular

(12)

MS Access Visual Basic for Applications

Private Sub berechne_Click() Dim rang As String

Select Case gehaltsgruppe.Value Case 1

rang = "C2"

Case 2

rang = "C3"

Case 3

rang = "C4"

Case Else

rang = " "

End Select If rang = " "

Then MsgBox ("Rang fehlt !!!") Else

Dim rs As Recordset

Set rs = CurrentDb.OpenRecordset("Select name, gebdatum from professoren " & _

"where gebdatum = (select min(gebdatum) from professoren " & _

"where rang = '" & rang & "')")

ausgabe.Value = rs.Fields("name").Value &", geboren am " & rs.Fields("gebdatum") End If

End Sub

(13)

Datenbankapplikationen

• MS Visio

• MS Access

• Embedded SQL im C-Programm

• JDBC / SQLJ Application

• SQLite / HSQLDB

• JDBC Applet

• Java Servlet

• Java Server Pages

• PHP

• Ruby on Rails

• CouchDB

(14)

CouchDB

• Information gespeichert in Dokumenten

• kodiert im JSON-Format

• Dokumente ggf. verteilt

• Dokumente ggf. repliziert

• Dokumente haben ID und Versionsnummer

• Multiversion concurrency control statt locks

• Abfrage durch Javascript-Funktionen map und reduce

• Abfrageergebnisse sind persistent

• Änderungen der Dokumente führen zum Update der

Ergebnisse

(15)

Map/Reduce

http://de.wikipedia.org/wiki/MapReduce

(16)

Aufgabe: Zählen von Worten

Es war einmal mitten im Winter. Da saß

eine Königin an ihrem Fenster und nähte.

Dabei stach sie sich in den Finger. Dabei fielen drei Tropfen Blut in den Schnee.

Da dachte sie bei sich: ach, hätte ich

doch ein Kind, so rot wie Blut, so weiß

wie Schnee und so schwarz wie Ebenholz.

(17)

viele Dokumente mit Sätzen

{

"_id": "65e0cf6bca4cdaafbc033ddc2a00a3af",

"_rev": "5-85b34938e244ecf09800a14fe9eb5168",

"text": "Es war einmal mitten im Winter"

}

(18)

Map/Reduce zum Zählen der Worte

function(doc) { if (doc.text) {

var words = doc.text.replace (/[!.,;:]+/g,"") .toLowerCase().split(" ");

for (var word in words) { emit(words[word], 1);

} } }

function(keys,values) {

return (keys,sum(values));

}

(19)

Ausgabe von Map/Reduce

http://eos.informatik.uni-osnabrueck.de:5984/_utils/database.html?uni/_all_docs

(20)

Aufgabe: Durchschnittspreis

2.33 Salami

1.69 Brot

5.59 Birne

1.39 Apfel

produkte:

Edeka

laden:

(21)

viele Dokumente mit Produkten

{

"_id": "65e0cf6bca4cdaafbc033ddc2a00ecf5",

"_rev": "2-8b1d63e16b5cbe18f211523d34fb5ecd",

"laden": "edeka",

"produkte": {

"apfel": 1.55,

"birne": 2.19,

"salami": 1.39,

"ananas": 1.19 }

}

(22)

Map/Reduce

zum Berechnen des Durchschnittspreis

function(doc) {

var preis, produkt;

if (doc.laden && doc.produkte) { for (produkt in doc.produkte) {

preis = doc.produkte[produkt];

emit(produkt, preis);

} } }

function(keys, values) {

return keys, sum(values)/values.length;

}

(23)

Ausgabe von Map/Reduce

http://eos.informatik.uni-osnabrueck.de:5984/_utils/database.html?uni/_all_docs

(24)

Datenbankapplikationen

• MS Visio

• MS Access

• Embedded SQL im C-Programm

• JDBC / SQLJ Application

• SQLite / HSQLDB

• JDBC Applet

• Java Servlet

• Java Server Pages

• PHP

• Ruby on Rails

• CouchDB

Referenzen

ÄHNLICHE DOKUMENTE

FROM Pruefungen INNER JOIN Studenten ON Pruefungen.Student = Studenten.ID INNER JOIN Vorlesungen. ON Vorlesungen.ID = Pruefungen.Vorlesung WHERE Terminiert

FROM studenten INNER JOIN hoeren ON studenten.id = hoeren.student INNER JOIN vorlesungen. ON vorlesungen.id

Eingabe Sokrates';delete from Professoren where name='Kant erzeugt select * from Professoren where name='Sokrates';. delete from Professoren

E integer Bercidanung string Ereignisse Wii folgori

More than half of the respondents (56%) has marked that he wants the opening of the inner courtyards for the public use and where it’s possible the creation of stores,

[r]

[r]

[r]