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
88
Embed
ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
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
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
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
– 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
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,