Einfأ¼hrung - Benutzer-Homepages prg2/SS2008/folien/zicari/...آ  أژ MySQL MySQL AB (SUN Microsystems)

  • View
    0

  • Download
    0

Embed Size (px)

Transcript

  • Einführung

    Grundlagen der Programmierung 2 I-1

    Grundlagen der Programmierung 2

    Einführung in Datenbanken

  • Einführung

    Grundlagen der Programmierung 2 I-2

    Inhalt

    • Einführung • Entity-Relationship-Diagramm • Relationales Modell • Entity-Relationship-Diagramm ins

    Relationales Modell umwandeln • Die relationale Abfragesprache

    SQL (+ Transaktionen Grundlagen) • Normalisierung

  • Einführung

    Grundlagen der Programmierung 2 I-3

    Literaturliste für den Datenbanken Teil

    • Ramez Elmasri und Shamkant B. Navathe, 'Grundlagen von Datenbanksystemen', Pearson Studium, 2002, ISBN 978- 3827370211

    • Kemper, A. Eickler: 'Datenbanksysteme - Eine Einführung ', 6. Auflage Oldenburg Verlag, 2006, ISBN 3-486-57690-9

    • Ramez Elmasri und Shamkant B. Navathe: ‘Fundamentals of Database Systems’, Addison-Wesley Longman, 2003, ISBN 978- 0321204486

    Thema R. Elmasri (D./Engl.) A. Kemper

    Einführung Kapitel 1 Chapter 1 Kapitel 1

    Entity-Relationship Diagramm

    Kapitel 3 Chapter 3 Kapitel 2.1 - 2.12

    Relationales Modell Kapitel 5 Chapter 5 Kapitel 3.1 - 3.4

    Entity-Relationship Diagramm ins Relationales Modell umwandeln

    Kapitel 7.1 Chapter 7.1 Kapitel 3.2 - 3.3

    SQL (Transaktionen Grundlagen)

    Kapitel 61 – 6.5 / 12.1 – 12.2 Chapter 8 / 17.1 – 17.2

    Kapitel 4.1 - 4.16 Kapitel 9

    Normalisierung Kapitel 9 Chapter 10 Kapitel 6.1 - 6.8

  • Einführung

    Grundlagen der Programmierung 2 I-4

    Datenbanken – wozu?

    Kernaufgaben von Datenbanksystemen ist die Speicherung und Verwaltung von großen Datenbeständen.

  • Einführung

    Grundlagen der Programmierung 2 I-5

    Beispiel Bank: konto

    Kontonummer Art Saldo 4325928 Giro -124.12

    2345332 Spar 2001.03

    … … …

    kunde Kundennr Vorname Nachname Kontonummer 1 Peter Mueller 4325928

    2 Klara Maier 2345332

    3 Hilde Mueller 4325928

    .. … … …

    Mögliche Operationen:

    • Aktuelles Saldo (read)

    • Geld abheben/einzahlen (update)

    • Neues Konto eröffnen/löschen (insert/delete)

    • Neue Kunden hinzufügen/löschen (insert/delete)

  • Einführung

    Grundlagen der Programmierung 2 I-6

    Beispiel Uni-Datenbank:

    student

    Matrikelnummer Vorname Nachname

    26123 Peter Mueller

    21098 Klara Maier

    vorlesung Vorlesungsnummer Titel 01 Datenbanksysteme I

    02 E-Commerce II

    hört

    Matrikelnummer Vorlesungsnummer

    26123 01

    26123 02

    21098 01

  • Einführung

    Grundlagen der Programmierung 2 I-7

    Datenbanksystem vs. Dateiorganisation

    1. Dateiorganisation

    Speicherung der Daten für jede Anwendung in einzelnen Dateien.

  • Einführung

    Grundlagen der Programmierung 2 I-8

    Nachteile:

    • Redundanz und Inkonsistenz Informationen werden mehrfach gespeichert.

    • Beschränkte Zugriffsmöglichkeiten Informationen können bei isolierten Dateien schwer miteinander verknüpft werden.

    • Eingeschränkter Mehrbenutzerbetrieb Mehrbenutzerbetrieb wird von Dateisystemen nicht unterstützt.

    • Integritätsverletzung Einschränkende Bedingungen (Constraints) sind schwer zu überprüfen.

    • Sicherheitsprobleme Nicht alle Benutzer sollen Zugriff auf alle Daten haben.

  • Einführung

    Grundlagen der Programmierung 2 I-9

    2. Datenbanksystem (DBS)

    Zentrale Datenverwaltung und Datenhaltung.

  • Einführung

    Grundlagen der Programmierung 2 I-10

    Vorteile von Datenbanksystemen

    Die relationalen Datenbanksysteme wurden entwickelt (seit ca. 1975 von IBM Research), um die Probleme mit der getrennten Dateihaltung zu überwinden:

    • Redundanz und Inkonsistenz Werden durch die zentrale Datenverwaltung und Datenhaltung vermieden.

    • Beschränkung der Zugriffsmöglichkeiten Durch verschiedene Konzepte können Infor- mationen miteinander verknüpft werden (z.B. relationales Modell).

    • Eingeschränkter Mehrbenutzerbetrieb Durch die zentrale Benutzerverwaltung einfach zu realisieren.

    • Integritätsverletzungen Durch Constraints in der zentralen Daten- verwaltung gut umzusetzen.

    • Sicherheitsprobleme Durch die zentrale Benutzerverwaltung können Zugriffsrechte gut kontrolliert werden.

  • Einführung

    Grundlagen der Programmierung 2 I-11

    weitere Vorteile von DBS:

    • Physische Datenunabhängigkeit: Anwendungen von Modifikationen an der physischen Speicherstruktur nicht betroffen.

    • Logische Datenunabhängigkeit: Änderungen an der logischen Datenstruktur beeinflussen Anwendungen nicht.

    • Dauerhafte Speicherung von großen Datenbeständen.

    • Bereitstellung einer Anfragesprache zum einfachen Umgang mit der Datenbank.

    • Sicherheit gegenüber Hard- und Softwareausfällen.

    • Effizient, möglichst schnell unter Benutzung weniger Ressourcen.

  • Einführung

    Grundlagen der Programmierung 2 I-12

    Die drei Abstraktionsebenen eines DBS

  • Einführung

    Grundlagen der Programmierung 2 I-13

    Die verschiedenen Ebenen können analog zu den Konzepten in Programmiersprachen verdeutlicht werden. Ein Kunde könnte in einer imperativen Programmiersprache wie folgt deklariert werden:

    TYPE Kunde = RECORD Name: String; Strasse: String; Ort: String;

    END;

    Der Record Kunde hat hier drei Felder. Jedem Feld wird ein Name und ein Type zugewiesen.

  • Einführung

    Grundlagen der Programmierung 2 I-14

    Datenabstraktion (Data Abstraction) Sehr grob unterscheidet man drei Abstraktions- ebenen in einem Datenbanksystem:

    • Die physische Ebene (physical level): Auf dieser Ebene ist beschrieben, wie die Daten auf dem Sekundärspeicher abgelegt sind.

    • Die logische/konzeptionelle Ebene (conceptual level): Auf dieser Ebene wird mittels eines Daten- bankschemas festgelegt, welche Daten abgespeichert sind.

    • Die Sichten (view level): In den Sichten werden Teilmengen der Daten dargestellt. Die Sichten sind auf die Bedürfnisse der Benutzer zugeschnitten.

  • Einführung

    Grundlagen der Programmierung 2 I-15

    • Auf der physischen Ebene kann die Speicherung eines Kunden als Block (von Words oder Bytes) im Speicher beschrieben werden.

    • Die konzeptionelle Ebene beschreibt die Type Deklaration und die Beziehungen zwischen einzelnen Typen wie oben beschrieben.

    • Die einzelnen Sichten zeigen schließlich nur Teile der vorhandenen Daten. Ein Kassierer am Bankschalter sieht zum Beispiel nur die für ihn relevanten Daten und nicht auch Gehaltsinformationen von Kollegen.

  • Einführung

    Grundlagen der Programmierung 2 I-16

    Beispiel:

  • Einführung

    Grundlagen der Programmierung 2 I-17

    Architekturübersicht eines DBMS

    Quelle: A. Kemper, A. Eickler: Datenbanksysteme – Eine Einführung

  • Einführung

    Grundlagen der Programmierung 2 I-18

    Wichtige relationale Datenbanksysteme

    Datenbanksystem Hersteller

    DB2 IBM

    Oracle Database Oracle

    Microsoft SQL Server Microsoft

    MySQL MySQL AB (SUN Microsystems)

    MaxDB (früher SAP DB) SAP

    MS Access Microsoft

    SQLite Open Source Community

    Ingres University of California, Berkeley

  • Einführung

    Grundlagen der Programmierung 2 I-19

    Marktanteile der Datenbanksysteme

    Quelle: Bharathi Manivannan Selvaraj Survey – I Popular DBMS in the Market (September 2007)

  • Einführung

    Grundlagen der Programmierung 2 I-20

    Beliebtheit der Datenbanksysteme

    Quelle: Evans Data Corp: Users’ Choice Database Servers (2008)

  • Einführung

    Grundlagen der Programmierung 2 I-21

    Worldwide relational database market (2005)

    Gesamt Wert: 13.8 Milliarden Dollar

    Wachstum 2005: 8.4%

    Quelle: Gardner (2005)

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance