Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Programmiertechnische Grundlagen IKT-Vertiefung:"—  Präsentation transkript:

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

2 ZT Schranz Informationstechnologie KG 2 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 Msc. Interactive Media Management

3 ZT Schranz Informationstechnologie KG 3 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 Agenda

4 ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik IKT-Vertiefung: Daten(bank)management Daten, Datenbanken und DB-Integration in Softwaresystemen

5 ZT Schranz Informationstechnologie KG 5 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 Themenschwerpunkte

6 ZT Schranz Informationstechnologie KG 6 Block 1 – Morgenca. 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 Inhalte

7 ZT Schranz Informationstechnologie KG 7 Einfü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

8 ZT Schranz Informationstechnologie KG 8 Einfü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“) ‏

9 ZT Schranz Informationstechnologie KG 9 Einfü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

10 ZT Schranz Informationstechnologie KG 10 Kennzeichen 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) ‏

11 ZT Schranz Informationstechnologie KG 11 Datenbank-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.

12 ZT Schranz Informationstechnologie KG 12 Datenbank-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) ‏

13 ZT Schranz Informationstechnologie KG 13 Datenbank-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) ‏

14 ZT Schranz Informationstechnologie KG 14 Datenbank-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

15 ZT Schranz Informationstechnologie KG 15 Datenbank-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

16 ZT Schranz Informationstechnologie KG 16 Datenbank-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

17 ZT Schranz Informationstechnologie KG 17 Datenbank-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

18 ZT Schranz Informationstechnologie KG 18 Datenbank-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

19 ZT Schranz Informationstechnologie KG 19 Datenbank-Typen Erscheinungsformen von Datenbanken Je 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

20 ZT Schranz Informationstechnologie KG 20 Konkrete 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

21 ZT Schranz Informationstechnologie KG 21 Relationales 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

22 ZT Schranz Informationstechnologie KG 22 Tabellen 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:

23 ZT Schranz Informationstechnologie KG 23 Tabellen und Relationen – Jede Zeile enthält Werte der Attribute, die in der Kopfzeile festgelegt (invariant) sind – Wertebereich des Attributs i heißt Domäne D i – Kartesisches Produkt der Wertebereiche D i 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

24 ZT Schranz Informationstechnologie KG 24 Tabellen 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

25 ZT Schranz Informationstechnologie KG 25 Datenbank-Typen Verwaltungsunterstützung bei Datenbanken – Hilfswerkzeuge und Design-Tools wurden für jedes logische Modell entwickelt – Vertreter Entity-Relationship Diagramme Design-Software

26 ZT Schranz Informationstechnologie KG 26 Das 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

27 ZT Schranz Informationstechnologie KG 27 Das 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

28 ZT Schranz Informationstechnologie KG 28 Das 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

29 ZT Schranz Informationstechnologie KG 29 Das 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

30 ZT Schranz Informationstechnologie KG 30 Das 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}) ‏

31 ZT Schranz Informationstechnologie KG 31 Das Entity-Relationship Diagramm Grafische Darstellung von Entities – Mitarbeiter = ({PerNr,Vorname,Nachname,{Bereiche},Adresse(Strasse,Ort)}, {PerNr}) – Schlüssel werden unterstrichen dargestellt

32 ZT Schranz Informationstechnologie KG 32 Das Entity-Relationship Diagramm Definition einer Entity, eines Entity-Sets – Gegeben sei eine Entity-Deklaration E = (X,K) mit X = (A 1,...,A m ). Das Attribut A i habe den Wertebereich bzw. die Domäne dom(A i ) mit 1  i  m. – i) Ein Entity e ist ein Element aus dem Kartesischen Produkt aller Wertebereiche, also e ∈ dom(A 1 ) ×... × dom(A m ). – ii) Ein Entity-Set E t (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 – E t ⊆ dom(A 1 ) ×... × dom(A m ). – E t 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.) ‏

33 ZT Schranz Informationstechnologie KG 33 Das 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

34 ZT Schranz Informationstechnologie KG 34 Das 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

35 ZT Schranz Informationstechnologie KG 35 Ü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-Diagramm

36 ZT Schranz Informationstechnologie KG 36 Lösung 1 Erfassung von Sachverhalten – ER-Diagramm

37 ZT Schranz Informationstechnologie KG 37 Das 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

38 ZT Schranz Informationstechnologie KG 38 Entities werden in (zumindest) ein eigenes Relationenschema transformiert – Gegeben sei folgender Entity-Typ: Person = ({PerID, Name, Vorname, Adresse(Strasse,Ort)}, {PerID}) Transformationen ins Relationenschema Tabelle Person

39 ZT Schranz Informationstechnologie KG 39 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 Relationenschema

40 ZT Schranz Informationstechnologie KG 40 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 Relationenschema

41 ZT Schranz Informationstechnologie KG 41 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 Relationenschema

42 ZT Schranz Informationstechnologie KG 42 Das 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,...)

43 ZT Schranz Informationstechnologie KG 43 Das Entity-Relationship Diagramm Lösung 3

44 ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik IKT-Vertiefung Daten und Datenbankmanagement Block 3: Die relationale Algebra und SQL

45 ZT Schranz Informationstechnologie KG 45 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 Algebra

46 ZT Schranz Informationstechnologie KG 46 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

47 ZT Schranz Informationstechnologie KG 47 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 Algebra

48 ZT Schranz Informationstechnologie KG 48 Beispiel-Selektion – Extrahiere alle Zeilen der Relation meldungen, wo der Aussender pressetext selbst war – Textuelle Darstellung σ aussender_id=pte (meldungen) – Ergebnis alle Meldungen (alle Attribute der Tabelle), wo pressetext als Aussender eingetragen ist Relationale Algebra

49 ZT Schranz Informationstechnologie KG 49 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 Algebra

50 ZT Schranz Informationstechnologie KG 50 Beispiel-Projektion – Zeige von allen Datensätzen der Relation meldungen die Titel und die Aussenderkennung an – Textuelle Darstellung π titel,aussender_id (meldungen) – Ergebnis Tabelle mit zwei Spalten Relationale Algebra

51 ZT Schranz Informationstechnologie KG 51 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 Algebra

52 ZT Schranz Informationstechnologie KG 52 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 Algebra

53 ZT Schranz Informationstechnologie KG 53 Der Join – Textuelle Darstellung r 1  r 2 – 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 Algebra

54 ZT Schranz Informationstechnologie KG 54 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ügung er 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 Language

55 ZT Schranz Informationstechnologie KG 55 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 Language

56 ZT Schranz Informationstechnologie KG 56 SQL-Befehle zur Datendefinition – CREATE DATABASE – DROP DATABASE – SHOW DATABASES – CREATE TABLE meldungen (...) ‏ – DROP TABLE – ALTER TABLE – SHOW TABLES Structured Query Language

57 ZT Schranz Informationstechnologie KG 57 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 Language

58 ZT Schranz Informationstechnologie KG 58 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 Language

59 ZT Schranz Informationstechnologie KG 59 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 Language

60 ZT Schranz Informationstechnologie KG 60 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 Language

61 ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik IKT-Vertiefung: Daten(bank)management Praxiseinsatz, Marktanbieter und Anwendungsfallstudien

62 ZT Schranz Informationstechnologie KG 62 Datenbank-Vertreter kommerziell Unternehmen/Prod ukt Marktanteil (Quelle IDC, Feb 2005) Marktanteil (Quelle Gartner, 2006) Oracle (10/11)39,8%47,1% IBM /DB2, Informix31,1%21,1% Microsoft12,1%17,4% MySQL, PostgreSQL +65%

63 ZT Schranz Informationstechnologie KG 63 Wie schneiden OS-DBMS ab?

64 ZT Schranz Informationstechnologie KG 64 Datenbank-Vertreter alternativ TeamXML (Interwoven), Berkeley DB XML (Sleepycat), Tamino (Software AG), GoXML (XML Global Technologies) ‏ XML-basiert db4objects www.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

65 ZT Schranz Informationstechnologie KG 65 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

66 ZT Schranz Informationstechnologie KG 66 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)

67 ZT Schranz Informationstechnologie KG 67 DB-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

68 ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik IKT-Vertiefung: Daten(bank)management Interaktive Software mit Datenbanken, Integrations-Konzepte, MySQL & Perl

69 ZT Schranz Informationstechnologie KG 69 Integration und Umsetzung dynamischer 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

70 ZT Schranz Informationstechnologie KG 70 Integration und Umsetzung dynamischer 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 Datenbanken Die Organisation besitzt bereits eine Datenbank und will deren Inhalte über das Web anbinden – Managementsysteme Teure Systeme, die die Steuerung eines ganzen Großbetriebes übernehmen sollen direkt über WWW erreichbar sein (SAP) ‏ Anbindung über vorhandene oder zu programmierende Schnittstellen

71 ZT Schranz Informationstechnologie KG 71 Integration und Umsetzung dynamischer Inhalte Lösungen haben eine 3-tier Architecture Browser Server Legacy Application

72 ZT Schranz Informationstechnologie KG 72 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 Interface

73 ZT Schranz Informationstechnologie KG 73 Alternativen 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:

74 ZT Schranz Informationstechnologie KG 74 CGI Databankanbindung API verwenden – Oracle API – ODBC – Language Modules (z.B.: MySQL.pm) ‏ Database Connectors – W3-mSQL – ASP – JDBC

75 ZT Schranz Informationstechnologie KG 75 CGI 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) ‏

76 ZT Schranz Informationstechnologie KG 76 PHP 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.

77 ZT Schranz Informationstechnologie KG 77 PERL/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

78 ZT Schranz Informationstechnologie KG 78 PERL/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

79 ZT Schranz Informationstechnologie KG 79 PERL/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

80 ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie P1: Interaktive Software, Konzepte, Perl, Web2.0

81 ZT Schranz Informationstechnologie KG 81 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 Grundlagen

82 ZT Schranz Informationstechnologie KG 82 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 Grundlagen

83 ZT Schranz Informationstechnologie KG 83 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 Grundlagen

84 ZT Schranz Informationstechnologie KG 84 Ein- und Ausgabe in PERL – Dateihandles – Standardein-/-ausgabe STDIN, STDOUT, STDERR FILEH $zeile = ; Print STDOUT „hello“; PERL Grundlagen

85 ZT Schranz Informationstechnologie KG 85 Einsatz der Datentypen – Skalare – Arrays – Hashes – References Einsatz von Datenbanken – MySQL – connections Einsatz von Persistenz – Cookies, Sessions,etc. PERL Datentypen und -strukturen

86 ZT Schranz Informationstechnologie KG 86 Subroutinen erstellen und verwenden – Subroutinenaufruf $ergebnis = &addiere(2,3); – Werteübergabe, lokale Variable und Ergebnisrückgabe sub addiere { my ($a, $b) = @_; return $a+$b; } PERL Sub-Routinen

87 ZT Schranz Informationstechnologie KG 87 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 Ausblick

88 ZT Schranz Informationstechnologie KG 88 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 Anwendung


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

Ähnliche Präsentationen


Google-Anzeigen