Upload
alrich-dubs
View
107
Download
2
Embed Size (px)
Citation preview
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
Programmiertechnische GrundlagenProgrammiertechnische GrundlagenIKT-Vertiefung: Daten und DatenbanmanagementIKT-Vertiefung: Daten und Datenbanmanagement
Persistente Datenhaltung, Datenmanagement, Konzepte und Einsatzbereich
2ZT Schranz Informationstechnologie KG
Grundlagen der Applikationsentwicklung– Entwicklung Interaktiver Software
Konzepte, Anwendungsbereiche, Sprachen, Werkzeuge, Daten
Software-Technologie (Programmiertechn. Grundlagen)– Konzepte der Programmentwicklung, Sprachdetails,
Software-Architekturen, OO, Test/Wartung, prakt. Beispiele
IKT-Vertiefung– Datenmanagement und -haltung; Moderne Datenbanken und
angewandte Standards
SW-Projektmanagement & Content Management– Beteiligte, Prozesse, Regeln, Kontrolle
Abgrenzung Themenbereiche im Abgrenzung Themenbereiche im Msc. Interactive Media ManagementMsc. Interactive Media Management
3ZT Schranz Informationstechnologie KG
Programmiertechnische Grundlagen
– Konzepte der Programmentwicklung
– Datenmanagement und Persistenz (DB)
– Konkreten Beispielen (DB, MySQL und PHP/Perl)
Datenbanken und Datenbankmanagement
– Modelle
– Algebren, DB-Sprachen, DB-Integration in Software
Entwicklung von interaktiver Software
– Web-Applikationsentwicklung, Programm-gestaltung in verteilten Umgebungen,Interaktive Programme mit PHP/Perl
AgendaAgenda
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
IKT-Vertiefung: Daten(bank)managementIKT-Vertiefung: Daten(bank)management
Daten, Datenbanken und DB-Integration in Softwaresystemen
5ZT Schranz Informationstechnologie KG
Datenbanken Grundbegriffe
Einsatzbereiche und Erscheinungsformen
Konkrete Anwendungen
– Integration in Application Frontends
– Internet Service (meist World Wide Web) auf DB-Basis
Datenbanktheorie
– Strukturierungsformen, Algebra, Hochleistungen
Business Intelligence (Layering Concepts)
Internationale Projekte, Anwendungen
ThemenschwerpunkteThemenschwerpunkte
6ZT Schranz Informationstechnologie KG
Block 1 – Morgen ca. 9:15 – 11:00– Datenbanken Grundlagen
Block 2 – Vormittag ca. 11:15 – 13:00– Relationale Datenbanken– ER-Diagramme, Transformationen
von Beziehungen (Gruppenbeispiele)
Block 3 – Mittag ca. 14:00 – 15:45– # Datenbanktheorie, Normalformen (Übungen)– Relationale Algebra, SQL, Übungsbeispiele in MySQL und Perl
Block 4 – Nachmittag ca. 16:00 – 17:35– Webanbindungen, Webgrundlagen für
DB-Integration, Einsatz in der Praxis
Strukturierung der InhalteStrukturierung der Inhalte
7ZT Schranz Informationstechnologie KG
Einführung zu DatenbankenEinführung zu Datenbanken
Industriezeitalter wurde ab der Mitte des letzten Jahrhunderts nach und nach vom Informationszeitalter abgelöst
Mehr und mehr Arbeiter beschäftigen sich mit der Produktion, Verwaltung und Übermittlung von Information
Das führende Werkzeug hierfür ist der Computer
8ZT Schranz Informationstechnologie KG
Einführung zu DatenbankenEinführung zu Datenbanken
Informationen für und über uns sind fast überall und in jedem Betrieb zu finden
– Gesellschaftspolitische Funktion der Information
– Rechtliche Aspekte der Informationsverarbeitung
– Wirtschaftlicher Nutzen der Informationsverarbeitung
Anwendungsbeispiele– Post zur Adressierung und Logistik
– Telekom zur Massenverwaltung von Individualkommunikation
– Banken zur wirtschaftlichen Betreuung ihrer Kunden und deren Aktivitäten („Transaktionen“)
9ZT Schranz Informationstechnologie KG
Einführung zu DatenbankenEinführung zu Datenbanken
Daten sind die konkreten Einheiten der Informationsverarbeitung
Datenbanken sind Werkzeuge, die zur Verwaltung dieser Informationseinheiten herangezogen werden
Datenbanken sind eine Aufbewahrungsstelle für – meist – große Mengen an Daten, die strukturiert verwaltet und nach bestimmten Kriterien abgerufen werden können
10ZT Schranz Informationstechnologie KG
Kennzeichen einer DatenbankKennzeichen einer Datenbank
Man spricht von einer Datenbank, wenn– sie eine große Menge an Informationen über
Objekte unserer Umwelt enthält (z.B. Telefonbuch)
– die Daten nach bestimmten Merkmalen und Regeln abgelegt und erfasst sind (z.B. Struktur der Daten)
– der Zugriff auf die Daten für Anwender ohne großen Aufwand über vordefinierte Schnittstellen möglich ist (z.B. Alphabetischer Zugriff über Suchschnittstelle)
11ZT Schranz Informationstechnologie KG
Datenbank-OperationenDatenbank-Operationen
Eine Datenbank ist nicht nur Aufbewahrungs-stelle für Informationen sondern
stellt verschiedene Zugriffmöglichkeiten (Operationen) auf die Daten zur Verfügung
– Einfügen von Daten
– Lesen von Daten
– Ändern von Daten
– Löschen von Daten
Genaue Implementierung für den Anwender nicht wichtig, nur die Schnittstelle, an der sie die Daten abgibt bzw. entgegennimmt.
12ZT Schranz Informationstechnologie KG
Datenbank-KomponentenDatenbank-Komponenten
Eine Datenbank gliedert sich grundsätzlich in zwei Komponenten– Die Daten an sich (Content-driven)
– Das Verwaltungswerkzeug zur Bearbeitung der Daten (Datenbankbetriebssystem, Datenbankmanagementsystem) (SW-driven)
13ZT Schranz Informationstechnologie KG
Datenbank-KomponentenDatenbank-Komponenten
Das Datenbankmanagementsystem
– Das Programm zur Verwaltung der Daten bietet die Schnittstelle für den Anwender; ein direkter Zugriff auf die Daten ist meist nicht möglich (und sinnvoll)
– Das Verwaltungsprogramm ist die Spitze des Datenbankbetriebssystems, das viele Funktionalitäten des Zugriffs, die physische Speicherlogistik der Daten und die Optimierung der Zugriffe (Operationen in der zugehörigen Algebra) umfasst (Beispiel Lagerverwalter Skriptum Seite 7).
– Man spricht dabei vom Datenbankmanagement-system (DBMS)
14ZT Schranz Informationstechnologie KG
Datenbank-InhalteDatenbank-Inhalte
Wie werden Daten abgelegt?– Informationen über die Art der Daten
– Die Dateninhalte selbst
Bei mehreren Einträgen wird rasch klar, dass gleichartige Einträge gruppiert werden.– Art der Information als „Spaltenbezeichnung“
– Inhalte als Zeilen
– Die so entstandene Ablageform ist eine Tabelle
15ZT Schranz Informationstechnologie KG
Datenbank-InhalteDatenbank-Inhalte
Beispiel Wirtschaftsnachrichten (pte)– Haben immer einen Titel, einen Text und ein
Datum
Tabelle Pressemeldungen
32.12.2030Der überparteiliche Wirtschaftsguru und Politprofi KHG machte es möglich...
Wiener Börse überholt Wallstreet
32.12.2004Was niemand zu hoffen wagte,...
Microsoft in Schwierig-keiten
DatumTextTitel
16ZT Schranz Informationstechnologie KG
Datenbank-InhalteDatenbank-Inhalte
Datenbank möchte so viel wie möglich über die zu erwartenden Daten wissen. Tabellen werden dabei definiert durch die Festlegung von
– Name der Tabelle
– Namen der Attribute (Nummer, Art, etc. bezeichnet man als Attribute)
– Datentypen der Attribute
– Sind die Attribute obligatorisch
– Angabe eines Hauptschlüssels
17ZT Schranz Informationstechnologie KG
Datenbank-VerwaltungDatenbank-Verwaltung
Daten werden in einer Datenbank nicht nur abgespeichert
Wichtiger als das Speichern selbst ist das gezielte Abfragen der gespeicherten Daten. Dazu stellt eine Datenbank die folgenden Operationen zur Verfügung:
– Auswahl der angezeigten Felder
– Einschränkung der anzuzeigenden Einträge
– Sortieren der angezeigten Einträge
– Kombinieren von Informationen aus mehreren Tabellen
18ZT Schranz Informationstechnologie KG
Datenbank-TypenDatenbank-Typen
Erscheinungsformen von Datenbanken
– Tabellarische Darstellung nicht immer zweckmäßig
– Unterschiedliche Modelle zur Datenverwaltung historisch und anwendungsorientiert entwickelt
– Datenbankmanagementsysteme (unabhängig welches logische Modell dabei zugrunde liegt) trennen Datenbankaufgaben voneinander:
Handhabung der Daten an sich Logische Struktur der Daten (und Beziehungen
untereinander) Verarbeitungslogik (Modelle, Algebren) Benutzeroberfläche, Manipulationssprache
19ZT Schranz Informationstechnologie KG
Datenbank-TypenDatenbank-Typen
Erscheinungsformen von DatenbankenJe nach nach der logischen Strukturierung und der Verwaltungsmethoden in Hardware und im Datenbankbetriebssystem unterscheidet man folgende logische Modelle:
– Relationale Datenbanken
– Objektorientierte Datenbanken
– Hierarchische Datenbanken
– Netzwerk-Datenbanken
– Logische Datenbanken
20ZT Schranz Informationstechnologie KG
Konkrete AnwendungenKonkrete Anwendungen
Datenbankmodelle in der Praxis– Relationale Datenbanken im WWW
– Verwaltung komplexer Datenmengen für Pressemeldungen und Wirtschaftsnachrichten seit
1997 Abonnentendaten und Interessenskategorien für
mehr als 180.000 Journalisten und Meinungsbildner Integration von 1500 Netzwerkpartnern zur
Distribution von wirtschaftsrelevanten Nachrichten über multiple Medien
– am Beispiel von pressetext.austria
21ZT Schranz Informationstechnologie KG
Relationales Datenmodell - TabellenRelationales Datenmodell - Tabellen
Tabellen und Relationen–Modell Mitte der 80er entwickelt und spielt seither bedeutendste Rolle bei Datenbanken in der Praxis
–Gesamtheit der Daten wird in Tabellen angeordnet
22ZT Schranz Informationstechnologie KG
Tabellen und RelationenTabellen und Relationen
– Tabellen bestehen aus vielen Zeilen die jeweils die Eigenschaften zu genau einem Datensatz enthalten
– Zeilen sind in Zellen (Spalteneinträgen) strukturiert
– Beispiel Skriptum Seite 17:
Beispiel für die Tabelle Person: PerID Name Vorname Strasse Ort 007 Bond James Victoria Str. London 206 Schranz Markus Ringofenstr. Leopoldsdorf 345 Meyer Brigitte Hahnenweg Musterdorf
23ZT Schranz Informationstechnologie KG
Tabellen und RelationenTabellen und Relationen
– Jede Zeile enthält Werte der Attribute, die in der Kopfzeile festgelegt (invariant) sind
– Wertebereich des Attributs i heißt Domäne Di
– Kartesisches Produkt der Wertebereiche Di für alle
Spalten i ist die Menge aller möglichen Tupel, die durch die Attribute erstellt werden können.
– Damit ist die Menge der aufgelisteten Werte in der Tabelle eine Teilmenge aller möglichen Tupel. Mathematisch gesehen ist eine solche Teilmenge aus einem kartesischen Produkt eine Relation r mit
r ⊆ D1 × D2 × . . . × Dn
24ZT Schranz Informationstechnologie KG
Tabellen und RelationenTabellen und Relationen
– Zeilen in der Tabelle müssen sich unterscheiden
– Jede Zeile muss durch ein(e) Attribut(kombination) eindeutig definiert sein -> Primärschlüssel
– Eine Relation wird durch ein Relationenschema R(A1,...An) festgelegt, wobei Ai die Attribute sind (Bauanleitung einer Relation)
– Tabellen/Relationen können mit Hilfsmitteln wie dem ER-Diagramm modelliert werden
25ZT Schranz Informationstechnologie KG
Datenbank-TypenDatenbank-Typen
Verwaltungsunterstützung bei Datenbanken– Hilfswerkzeuge und Design-Tools wurden
für jedes logische Modell entwickelt
– Vertreter Entity-Relationship Diagramme Design-Software
26ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
ER-Diagramm ist grafische Beschreibung eines vereinfachten Realweltausschnittes zur Abbildung in einer Datenbank
Statt Tupeln aus der relationalen Welt spricht man hier von Mengen
Domänen und Attribute werden auch hier in ihrer vorgestellten Bedeutung eingesetzt
Dazu kommen Entitäten
27ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Entitäten sind wohlunterscheidbare Dinge der realen Welt (Personen, Autos, Bücher, etc.)
Entitäten besitzen Eigenschaften, die Attribute genannt werden (Namen, Adressen von Personen)
Konkrete Ausprägung eines Attributes heißt Wert. Man erhält ein konkretes Entity, wenn man Attributen Werte zuordnet
28ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Attribute– Menge aller möglichen zugelassenen Werte
eines Attributs heißt seine Domäne
– Attribute können einwertig oder mehrwertig sein (Person hat mehrere Vornamen, Lektor unterrichtet mehrere Vorlesungen,...)
– Ein zusammengesetztes Attribut besteht aus mehreren einzelnen Attributen (Name etwa aus Nachname und Vorname(n))
– Ein Entity-Set (Zusammenfassung von Entitäten) hat dieselben Attribute
29ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Schlüssel– Eine Kombination von Attributen kann ein
Entity aus einem Entity-Set klar identifizieren (SuperKey)
– Attribute in einem SuperKey können überflüssig für die Identifizierung sein, Minimierung führt zum Schlüssel (key)
– Es kann durchaus mehrere Schlüssel geben, der tatsächlich zur Identifizierung verwendete heißt dann Primärschlüssel (primary key)
– Primärschlüssel können aus einem oder mehreren Attributen bestehen
30ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Definition von Entities– Entity Set besteht aus Menge von gleichförmigen
Entities. Die formale Beschreibung der gemeinsamen Eigenschaften erfolgt durch den Entity-Typ E = ({X}, {K}).
– E ist der Name, X das Format und K der Schlüssel
– In „X“ werden die Attribute notiert und zwar:(i) Einwertige Attribute: A(ii) Mehrwertige Attribute: {A}
(iii) Aus B1, . . . ,Bk zusammengesetzte Attribute: A(B1, . . . ,Bk)
– Beispiel:Mitarbeiter = ({PerNr,Vorname,Nachname,
{Bereiche},Adresse(Strasse,Ort)},{PerNr})
31ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Grafische Darstellung von Entities– Mitarbeiter = ({PerNr,Vorname,Nachname,
{Bereiche},Adresse(Strasse,Ort)},{PerNr})
– Schlüssel werden unterstrichen dargestellt
32ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Definition einer Entity, eines Entity-Sets– Gegeben sei eine Entity-Deklaration E = (X,K) mit X =
(A1,...,Am). Das Attribut Ai habe den Wertebereich bzw. die
Domäne dom(Ai) mit 1 i m.
– i) Ein Entity e ist ein Element aus dem Kartesischen Produkt
aller Wertebereiche, also e ∈ dom(A1) × . . . × dom(Am).
– ii) Ein Entity-Set Et (zum Zeitpunkt t) ist eine Menge von Entities, welche K erfüllt. D. h. der Wert von K ist für jedes Entity verschieden. Also
– Et ⊆ dom(A1) × . . . × dom(Am).
– Et ist also der Inhalt bzw. der aktuelle Wert des Typs E zur Zeit t. (Mathematisch gesehen eine Teilmenge aus dem kartesischen Produkt der Domänen, also eine Relation.)
33ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Beziehungen / Relationships–Entitäten können zueinander in einer Beziehung stehen
Abonnent erhält Wirtschaftsnachricht Mitarbeiter arbeitet_in Abteilung Kunde kauft Artikel
erhält
arbeitet_in
kauft
34ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Beziehungstypen– 1:1 Beziehung
Jedem e1 aus dem Set vom Typ E1 wird höchstens ein e2 aus dem Set vom Typ E2 zugeordnet und umgekehrt (es kann auch e1 ohne Beziehung zu e2 geben)
– 1:n (n:1) Beziehung Beispiel Mitarbeiter in Abteilung
– m:n Beziehung Ein Abonnent empfängt eine Wirtschaftsnachricht
35ZT Schranz Informationstechnologie KG
Übungsaufgabe 1:• eine Vorlesung hat die Attribute VorlNr (Primärschlüssel), SWS und Titel
• Studenten haben die Eigenschaften MatrNr (Primärschlüssel), Name und
Sem
• ein Angestellter hat die Attribute PersNr (Primärschlüssel) und Name
• ein Professor ist ein Angestellter mit den Eigenschaften Rang und Raum
• ein Assistent ist ein Angestellter mit dem Attribut Fachgebiet
• ein Professor hält keine bis mehrere Vorlesungen und prüft keine bis
mehrere Studenten bezüglich keiner bis mehrere Vorlesungen
• je Prüfung wird eine Note als Eigenschaft zugewiesen
• ein Student hört keine bis mehrere Vorlesungen und wird in keiner bis
mehreren Vorlesungen von keinem bis mehreren Professoren geprüft
• ein Assistent arbeitet für einen Professor
• einem Professor sind kein bis mehrere Assistenten zugeteilt
Erfassung von Sachverhalten – ER-DiagrammErfassung von Sachverhalten – ER-Diagramm
36ZT Schranz Informationstechnologie KG
Lösung 1
Erfassung von Sachverhalten – ER-DiagrammErfassung von Sachverhalten – ER-Diagramm
37ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Übungsaufgabe 2– Definieren Sie ein Entity-Relationship Diagramm
(und die Entities) für einen vereinfachten pressetext-Dienst
– Beginnen Sie mit Abonnent Pressemeldung Aussender
meldungen
PK nummerkategorieautordatumtiteltext
abonnenten
PK emailnamevornameint_hightechint_medienint_businessint_leben
aussender
PK emailnamekontostandplzort
38ZT Schranz Informationstechnologie KG
Entities werden in (zumindest) ein eigenes
Relationenschema transformiert
– Gegeben sei folgender Entity-Typ:
Person = ({PerID, Name, Vorname,
Adresse(Strasse,Ort)}, {PerID})
Transformationen ins RelationenschemaTransformationen ins Relationenschema
R(A1, . . . ,An) entspricht hier Person(PerID, Name, Vorname, Strasse, Ort) oder Person PerID Name Vorname Strasse Ort …
Tabelle Person
39ZT Schranz Informationstechnologie KG
Mehrwertige Attribute werden über die
Einführung einer weiteren Relation aufgelöst
– Skriptum Seite 27
– Sinnvollerweise nur DozIDs in der Fachbereichstabelle,
die auch in der Dozententabelle definiert sind
Eine solche (semantische) Bedingung zwischen Relationen,
wird als referentielle Integrität bezeichnet
Transformationen ins RelationenschemaTransformationen ins Relationenschema
40ZT Schranz Informationstechnologie KG
Transformation von Beziehungen
m:n-Beziehung
– Für jeden Entity Typ (zumindest) eine Relation
– Für die Beziehung ein weiteres Relationenschema
Die Kombination der Fremdschlüssel wird zum
Primärschlüssel der Beziehungsrelation
(siehe Skriptum Seite 29)
Transformationen ins RelationenschemaTransformationen ins Relationenschema
41ZT Schranz Informationstechnologie KG
Transformation von Beziehungen
1:n-Beziehung
– Option 1: drei Relationenschemata wie unter m:n
– Option 2: Dem Schema für den Entity-Typ auf der „n“-Seite
werden der Primärschlüssel und die Attribute der Beziehung
(wenn vorhanden) zugeordnet.
1:1-Beziehung
– Option 1 und 2 wie oben
– Option 3: Nur eine Tabelle mit potenziell vielen Nullwerten
Transformationen ins RelationenschemaTransformationen ins Relationenschema
42ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Übungsaufgabe 3– Transformieren Sie die Entities aus der Übung 1 in
passende Relationenschemata
– Beachten Sie dabei Entity-Attribute (Mehrwertigkeit) und Beziehungstypen
– Meldungen(meldungs_id, titel, text, ...)
43ZT Schranz Informationstechnologie KG
Das Entity-Relationship DiagrammDas Entity-Relationship Diagramm
Lösung 3
meldungen
PK meldungen_idFK aussender_idFK kategorie_id
autordatumtiteltext
abonnenten
PK abonnenten_idnamevornameemail aussender
PK aussender_idnameemailplzortkontostand
kategorien
PK kategorie_idname
abonnenten_kategorien
PF abonnenten_idPF kategorie_id
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
IKT-VertiefungDaten und Datenbankmanagement
Block 3: Die relationale Algebra und SQL
45ZT Schranz Informationstechnologie KG
Haben wir unser Datenmodell von der realen Welt in Tabellen gegossen, wollen wir– diese sicher und zuverlässig abgespeichert wissen
(darum kümmert sich das RDBMS)
– diese auch selektiv abfragen(mit verschiedensten Operationen)
Selektionen Projektionen Verknüpfungen Aggregierungen
– Letzteres geschieht über ein Bearbeitungsmodell, der relationalen Algebra
Relationale AlgebraRelationale Algebra
46ZT Schranz Informationstechnologie KG
Die Relationale Algebra bietet Operationen um– Bestimmte Zeilen oder Spalten einer Tabelle zu
extrahieren Die Selektion Die Projektion Kombination von Selektion und Projektion
– Tabellen miteinander zu verknüpfen Der Join
Relationale Algebra Relationale Algebra
47ZT Schranz Informationstechnologie KG
Die Selektion– Eine Selektion ist dazu gedacht, aus einer Tabelle nur
diejenigen Zeilen (Tupel) herauszufiltern, in denen ein Attribut eine vorgegebene Bedingung erfüllt.
– Dabei bleiben die selektierten Zeilen in ihrer Vollständigkeit – das heißt mit allen Attributen – erhalten.
– Textuelle Darstellung
σ A=4(r)
Relationale AlgebraRelationale Algebra
48ZT Schranz Informationstechnologie KG
Beispiel-Selektion– Extrahiere alle Zeilen der Relation meldungen, wo der
Aussender pressetext selbst war– Textuelle Darstellung
σ aussender_id=pte(meldungen)
– Ergebnisalle Meldungen (alle Attribute der Tabelle), wo pressetext als Aussender eingetragen ist
Relationale AlgebraRelationale Algebra
49ZT Schranz Informationstechnologie KG
Die Projektion– Die Projektion extrahiert eine oder mehrere Spalten
(Attribute) aus der gegebenen Relation.
– Eine Projektion wird mit dem Symbol π gekennzeichnet und erhält als Subskript die auszuwählenden Attribute
– Doppelte Einträge im Ergebnis werden herausgefiltert
– Textuelle Darstellung
πAD(r)
Relationale AlgebraRelationale Algebra
50ZT Schranz Informationstechnologie KG
Beispiel-Projektion– Zeige von allen Datensätzen der Relation meldungen die
Titel und die Aussenderkennung an
– Textuelle Darstellung
πtitel,aussender_id(meldungen)
– ErgebnisTabelle mit zwei Spalten
Relationale AlgebraRelationale Algebra
51ZT Schranz Informationstechnologie KG
Kombination der Selektion und Projektion
– Meist werden die beiden Operationen in Kombination verwendet, etwa bei der Aufgabenstellung
Zeige den titel aller Meldungen, die von pressetext versandt wurden
– Textuelle Darstellung
πtitel(σ aussender_id=pte(meldungen) )
– Reihenfolge: Selektion vor Projektion, weil ansonsten die Attribute mit den Selektionskriterien durch die Projektion bereits eliminiert worden sein könnten
Relevant für die Umsetzung der relationalen Algebra im RDBMS
Relationale AlgebraRelationale Algebra
52ZT Schranz Informationstechnologie KG
Der Join
– Der Join verknüpft zwei oder mehr Tabellen miteinander
– Oft ein oder mehrere gemeinsame Attribute
– Errechnung des kartesischen Produktes der zwei
Tabellen (jede Zeile von a mit jeder Zeile von b)
– Selektion aller verbundenen Tupel, an denen die „join-
Attribute“ übereinstimmen (=Join-Bedingung beim
„inner join“, der am häufigsten verwendete)
Relationale AlgebraRelationale Algebra
53ZT Schranz Informationstechnologie KG
Der Join
– Textuelle Darstellung
r1 r2
– Implikationen von Joins
Die Erstellung der kartesischen Produkte bei relationalen
Datenbanken ist ein aufwändiger Prozess
Aufwand O(m*n)
Bei Normalformen höher als der dritten zerstückelt man die
Tabellen in sehr viele kleine Tabellen und erhält damit bei
Abfragen einen unnötig hohen Join-Bedarf, was sich in
Performance-Einbußen niederschlägt (Abhilfe Indices, etc.)
Relationale AlgebraRelationale Algebra
54ZT Schranz Informationstechnologie KG
Die Datenbankabfragesprache SQL– Der Benutzer einer Datenbank möchte nun auf
die gespeicherten Daten zugreifen
– Es steht ihm hierfür eine 4GL Sprache zur Verfügunger kann damit system- und plattformunabhängig die Operationen der relationale Algebra nutzen
– Anfänge aus den 70er Jahren, standardisiert in den 80ern (SQL1 –1986, SQL2 – 1989 und SQL3 - 1999
Structured Query LanguageStructured Query Language
55ZT Schranz Informationstechnologie KG
Befehlskategorisierung in SQL– Dem Benutzer stehen verschiedene
Befehlstypen in SQL zur Verfügung Datendefinition (DDL) Datenabfrage (DQL) Datenmanipulation (DML) Datenzugriffskontrolle (DCL)
– In standardisierter Form, umgesetzt in allen gängigen RDBMS Produkten (Oracle, MySQL, PostgreSQL, Windows SQL Server, etc.)
Structured Query LanguageStructured Query Language
56ZT Schranz Informationstechnologie KG
SQL-Befehle zur Datendefinition– CREATE DATABASE <databasename>
– DROP DATABASE <databasename>
– SHOW DATABASES
– CREATE TABLE meldungen (...)
– DROP TABLE
– ALTER TABLE
– SHOW TABLES
Structured Query LanguageStructured Query Language
57ZT Schranz Informationstechnologie KG
SQL-Befehle zur Datenabfrage– SELECT * FROM meldungen WHERE datum = ‘1.4.2004‘
– SELECT titel FROM meldungen
– SELECT a.titel, b.name FROM meldungen a, aussender b WHERE a.autor = b.name
– SELECT count(*) from meldungen
– SELECT count(distinct name), name from abonnenten group by name order by name desc
Structured Query LanguageStructured Query Language
58ZT Schranz Informationstechnologie KG
SQL-Befehle zur Datenmanipulation– INSERT INTO TABLE meldungen VALUES (...)
– DELETE FROM meldungen WHERE meldungen_id > 25
– UPDATE meldungen set autor = ‚pte‘ WHERE ...
SQL-Befehle zur Zugriffskontrolle– GRANT ...
Structured Query LanguageStructured Query Language
59ZT Schranz Informationstechnologie KG
Probleme mit SQL und dem relationalen Ansatz– Feste Maximalgrößen für Felder
– Aufwändige Modellierung bei komplexen, hierarchischen Objekten
– Komplexe Abfragesyntax
– Performanceprobleme durch multiple joins
– Insellösungen von Anbietern
Structured Query LanguageStructured Query Language
60ZT Schranz Informationstechnologie KG
Aufgabe 5– Verwenden Sie die Schnittstelle phpMyAdmin und
führen Sie die SQL-Abfragen gemäß der Angaben auf dem Übungsblatt auf den Testtabellen der pressetext.austria durch.
Structured Query LanguageStructured Query Language
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
IKT-Vertiefung: Daten(bank)managementIKT-Vertiefung: Daten(bank)management
Praxiseinsatz, Marktanbieter und Anwendungsfallstudien
62ZT Schranz Informationstechnologie KG
Datenbank-Vertreter kommerziellDatenbank-Vertreter kommerziell
Unternehmen/Produkt
Marktanteil (Quelle IDC, Feb 2005)
Marktanteil (Quelle Gartner, 2006)
Oracle (10/11) 39,8% 47,1%
IBM /DB2, Informix 31,1% 21,1%
Microsoft 12,1% 17,4%
MySQL, PostgreSQL
+65%
63ZT Schranz Informationstechnologie KG
Wie schneiden OS-DBMS ab?Wie schneiden OS-DBMS ab?
64ZT Schranz Informationstechnologie KG
Datenbank-Vertreter alternativDatenbank-Vertreter alternativ
TeamXML (Interwoven), Berkeley DB XML (Sleepycat), Tamino (Software AG), GoXML (XML Global Technologies)
XML-basiert
db4objectswww.db4o.com
ObjectDB (Java), Birdstep RDM, GemStone, JADE, ODABA
objektorientiert
MySQL, www.mysql.com PostgreSQL, www.postgresql.com Ingres, Computer Associates
Relational und frei
Unternehmen/Produkt
65ZT Schranz Informationstechnologie KG
Worin unterschieden sich die Systeme?Worin unterschieden sich die Systeme?
Leistungsumfang– Historische Vorteile bei Oracle, aber aktuell bei allen Konkurrenten wettgemacht
Plattformen, Systemumgebung– Meist multiplattform-fähig, aber jeder hat seine „Heimat“
• Oracle auf Unix (meist Sun, HP)
• MSSQL auf Microsoft
• MySQL auf Linux
Infrastrukturvorgaben oder Präferenzen– Interoperabilitäten mit Entwicklungsumgebungen und Programmiersprachen
– Trigger, stored procedures, constraints (immediate / deferred), packages
– Formulargeneratoren, Reporting, Analysetools, CMS
66ZT Schranz Informationstechnologie KG
DB-Features beyond relations?DB-Features beyond relations?
Constraints– Foreign key constraints
– Referential constraints
– Domain constrains (Wertebereiche)
– Regelbasierte Constraints (Pattern für Werte)
– Kombinationen aus obigen constraints
Stored procedures– Set von Datendankoperationen in prozeduraler Form als logische Einheit
– DB-Code kann vorkompiliert und ablaufoptimiert werden (z.B. global_platz)
– Formulargeneratoren, Reporting, Analysetools, CMS
Trigger
– Was soll passieren, wenn ein DB-Objekt manipuliert wird (z.B. platz_ver_click_manipulate)
Transaktionen– Untrennbare Einheit von DB-Operationen
– ACID-Eingeschaften der Transaktion
– Lock management des DBMS bzw. Deadlock detection and management
– Autonome Transaktionen (z.B. platz_ver_click_manipulate_aut)
67ZT Schranz Informationstechnologie KG
DB-SecurityDB-Security
Zuverlässigkeit– Die meisten DB setzen auf multiprocessing und preallocated
dataspace
– Monitoring Services überwachen den DB-Ablauf
– Probleme werden protokolliert, umfangreiches Errorhandling und -reporting
Verfügbarkeit– Backungdatenbankungen und Spiegelungen
– Replikation und opt. Fragmentierung von Datenbanken (MS vs. MM)
– Clustering (virtuell ein System)
Sicherheit
– Zutrittsüberprüfung, Zugriffsüberprüfung
– DB-Objekte gehören zu bestimmen Benutzern (Hierarchien möglich)
– SQL-Injection
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
IKT-Vertiefung: Daten(bank)managementIKT-Vertiefung: Daten(bank)management
Interaktive Software mit Datenbanken, Integrations-Konzepte, MySQL & Perl
69ZT Schranz Informationstechnologie KG
Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte
Umsetzung von Informationen, die zur Zugriffszeit generiert
werden
– Aktuelle Informationsdienste (Wetterbericht, Verkehrsaufkommen,
Tagesgeschehen, Börsenkurse,…)
– Dynamische Informationsquellen (Datenbanken, Programme)
Integration der bestehenden Anwendungen über
Schnittstellen an den WWW Server
– Script-Editoren
– Programmiersprachen
– Template-Systeme
– Redaktionssysteme
70ZT Schranz Informationstechnologie KG
Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte
“Dynamische” Inhalte aus Legacy Applications– Eine Applikation, die relevante Informationen liefert,
welche als solche in das WWW eingebunden werden soll (Lagerbestandssystem, Katalog, Bibliothekssystem, Telefonbuch,…)
– Moderne DatenbankenDie Organisation besitzt bereits eine Datenbank und will deren Inhalte über das Web anbinden
– ManagementsystemeTeure Systeme, die die Steuerung eines ganzen Großbetriebes übernehmen sollen direkt über WWW erreichbar sein (SAP)
Anbindung über vorhandene oder zu programmierende Schnittstellen
71ZT Schranz Informationstechnologie KG
Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte
Lösungen haben eine 3-tier Architecture
Browser Server Legacy Application
72ZT Schranz Informationstechnologie KG
HTML Formulare
CGI vs Server API
Submit mit POST oder GET– application/x-www-form-urlencoded
Umgebungsvariablen
Das Common Gateway Interface ist eine Schnittstellendefinition, die eine Datenkommunikation zwischen Browser und Server zur dynamischen Dokumenterstellung ermöglicht.
CGI - Common Gateway InterfaceCGI - Common Gateway Interface
73ZT Schranz Informationstechnologie KG
Alternativen zu CGIAlternativen zu CGI
SSI (Server Side Include)– Befehle, eingebettet in HTML-Kommentare, werden on-
the-fly ausgeführt NSAPI, ISAPI
– Application Programming Interfaces für proprietäre Lösungen
ASP, PHP– Interpreter, die in HTML eingebettete Befehle umsetzen
Servlets, FastCGI– Ähnlich wie CGI, aber der Interpreter ist Teil des Servers,
d.h. bessere Performance, schnelleres Antwortzeitverhalten
CGI ist nicht die einzige Option, um dynamisch WWW-Inhalte zu erzeugen:
74ZT Schranz Informationstechnologie KG
CGI DatabankanbindungCGI Databankanbindung
API verwenden– Oracle API
– ODBC
– Language Modules (z.B.: MySQL.pm)
Database Connectors– W3-mSQL
– ASP
– JDBC
75ZT Schranz Informationstechnologie KG
CGI DatabankanbindungCGI Databankanbindung
Meist über moderne Web Application Server– Apache Tomcat (Java)
– Andere Java Engines (IBM, SUN, ...)
– MS Lösungen (ASPs mit C#,...)
– Perl OSS Frameworks (MASON)
76ZT Schranz Informationstechnologie KG
PHP und die *SQL-DB-AnbindungPHP und die *SQL-DB-Anbindung
persistente Datenbankverbindung
Bearbeiten von relationalen Datenbanken– mysql_connect
– mysql_select_db
– mysql_query (see dbtest.php)
– mysql_fetch_row bzw. mysql_fetch_array
Web-Interfaces für Relationale Datenbanken
– In PHP-Modulen, in PERL, in JAVA, etc.
77ZT Schranz Informationstechnologie KG
PERL/Mason und die *SQL-DB-AnbindungPERL/Mason und die *SQL-DB-Anbindung
persistente Datenbankverbindung
Bearbeiten von relationalen Datenbanken– Wesentliche SQL Statements
SELECT
INSERT
DELETE
UPDATE
– Tabellen erstellen, Indizes nutzen, Normalformen
Web-Interfaces für Relationale Datenbanken
78ZT Schranz Informationstechnologie KG
PERL/Mason und die *SQL-DB-AnbindungPERL/Mason und die *SQL-DB-Anbindung
CGI-Programmierung mit PERL
Datenbankanbindung mit DBIx::Abstract
Generierung der HTML-Ausgaben
Programmierung bzw. Demonstration einer
Perl-Anwendung (testserver)
Demonstration: Anzeige und Bearbeitung der Pressemeldungen im Web
79ZT Schranz Informationstechnologie KG
PERL/Mason und die *SQL-DB-AnbindungPERL/Mason und die *SQL-DB-Anbindung
Bernbillett, Culturall, BA-Vers.
Guided Tour durch das Frontend und
Backend
Evtl. Test im webtest.culturall.com
Demonstration: Komplexer Anwendungsfall CMS
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
Grundlagen der SoftwaretechnologieGrundlagen der Softwaretechnologie
P1: Interaktive Software, Konzepte, Perl, Web2.0
81ZT Schranz Informationstechnologie KG
Hello World in PERL– Dokument hello.pl editieren:
#!/usr/bin/perl –w
print “Hello World!\n“;
Programm ausführbar setzen
Chmod +x hello.pl
Programm ausführen #> hello.pl
PERL GrundlagenPERL Grundlagen
82ZT Schranz Informationstechnologie KG
Einführungskurs in PERL– Perl Datentypen
Skalare ($scalar) Arrays (@array) Hashes (%hash)
–Beispiele als Demo
– Perl Operationen Arithmetische (+,-,*,/,**,%) Comparative (==, !=, <, >,<=, >=, <=>, cmp) Logische (&&, ||, ! Bzw. AND, OR, NOT)
PERL GrundlagenPERL Grundlagen
83ZT Schranz Informationstechnologie KG
Einführungskurs in PERL– Perl Operationen (2)
Zuweisungen ( $lvalue = $rvalue ) Inkrement/Dekrement ( $i++, $i--, ++$i, --$i ) Zuweisungsoperatoren
–Variabler Inkrement (+=, -=)
*=, /=, %=, **= Stringverkettung, -wiederholung ( . x)
Rangfolge und Assoziativität
PERL GrundlagenPERL Grundlagen
84ZT Schranz Informationstechnologie KG
Ein- und Ausgabe in PERL– Dateihandles
– Standardein-/-ausgabe
STDIN, STDOUT, STDERR
FILEH
$zeile = <STDIN>;
Print STDOUT „hello“;
PERL GrundlagenPERL Grundlagen
85ZT Schranz Informationstechnologie KG
Einsatz der Datentypen– Skalare
– Arrays
– Hashes
– References
Einsatz von Datenbanken– MySQL
– connections
Einsatz von Persistenz– Cookies, Sessions,etc.
PERL Datentypen und -strukturenPERL Datentypen und -strukturen
86ZT Schranz Informationstechnologie KG
Subroutinen erstellen und verwenden– Subroutinenaufruf
$ergebnis = &addiere(2,3);
– Werteübergabe, lokale Variable und Ergebnisrückgabesub addiere { my ($a, $b) = @_; return $a+$b;}
PERL Sub-RoutinenPERL Sub-Routinen
87ZT Schranz Informationstechnologie KG
PERL Module verwenden
– use CGI;
Argumente übergeben, Umgebungsvariablen
– Die Variablen @ARGV, %ENV
Optionen auswerten
– use Getopt::Std;
– getopts(´hf:d´);
CGI Methoden verwenden, CGI-Programme schreiben
AusblickAusblick
88ZT Schranz Informationstechnologie KG
PERL Programme auf wae.culturall.com
– lokale Programmentwicklung Berechnungen, etwa Sparbuchzinsen nach N Jahren
– verteilte Services fahrenheit.pl
– Wie funktioniert perl?
– was macht die Applikation zur Web-Applikation?
– Arbeiten mit Linux
– Textbasierter Editor
Praktische AnwendungPraktische Anwendung