88
ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen Programmiertechnische Grundlagen IKT-Vertiefung: Daten und IKT-Vertiefung: Daten und Datenbanmanagement Datenbanmanagement Persistente Datenhaltung, Datenmanagement, Konzepte und Einsatzbereich

ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

Embed Size (px)

Citation preview

Page 1: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 2: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 3: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 4: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 5: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 6: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 7: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 8: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 9: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 10: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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)

Page 11: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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.

Page 12: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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)

Page 13: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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)

Page 14: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 15: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 16: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 17: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 18: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 19: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 20: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 21: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 22: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 23: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 24: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 25: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 26: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 27: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 28: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 29: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 30: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 31: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 32: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 33: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 34: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 35: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 36: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

36ZT Schranz Informationstechnologie KG

Lösung 1

Erfassung von Sachverhalten – ER-DiagrammErfassung von Sachverhalten – ER-Diagramm

Page 37: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 38: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 39: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 40: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 41: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 42: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 43: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 44: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 45: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 46: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 47: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 48: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 49: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 50: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 51: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 52: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 53: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 54: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 55: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 56: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 57: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 58: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 59: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 60: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 61: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 62: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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%

Page 63: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

63ZT Schranz Informationstechnologie KG

Wie schneiden OS-DBMS ab?Wie schneiden OS-DBMS ab?

Page 64: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 65: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 66: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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)

Page 67: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 68: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 69: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 70: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 71: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

71ZT Schranz Informationstechnologie KG

Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte

Lösungen haben eine 3-tier Architecture

Browser Server Legacy Application

Page 72: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 73: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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:

Page 74: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

74ZT Schranz Informationstechnologie KG

CGI DatabankanbindungCGI Databankanbindung

API verwenden– Oracle API

– ODBC

– Language Modules (z.B.: MySQL.pm)

Database Connectors– W3-mSQL

– ASP

– JDBC

Page 75: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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)

Page 76: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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.

Page 77: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 78: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 79: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 80: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 81: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 82: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 83: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 84: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

84ZT Schranz Informationstechnologie KG

Ein- und Ausgabe in PERL– Dateihandles

– Standardein-/-ausgabe

STDIN, STDOUT, STDERR

FILEH

$zeile = <STDIN>;

Print STDOUT „hello“;

PERL GrundlagenPERL Grundlagen

Page 85: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 86: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 87: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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

Page 88: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:

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