Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbanken. Gliederung ● Einsatz und Verwendung ● Historische Entwicklung ● Datenbankmodelle ● (Codd'sche) Prinzipien ● Datenbankoperatoren ● Beispielcode.

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbanken. Gliederung ● Einsatz und Verwendung ● Historische Entwicklung ● Datenbankmodelle ● (Codd'sche) Prinzipien ● Datenbankoperatoren ● Beispielcode."—  Präsentation transkript:

1 Datenbanken

2 Gliederung ● Einsatz und Verwendung ● Historische Entwicklung ● Datenbankmodelle ● (Codd'sche) Prinzipien ● Datenbankoperatoren ● Beispielcode SQL ● Vergleich freier Datenbanken ● Fazit

3 Einsatz und Verwendung ● Collision Monitoring System am CERN – 15 PByte/Jahr (15 Millionen GByte) ● Internet-Portal (reichweitestark) – 6 GByte/Tag ● Verzeichnisdienste (Telefonbücher) – x 500 Byte = 21 GByte ● Sequenzdatenbanken des Genom-Projekts – 3 GByte DNA Daten ● ERP-Datenbanken (~ 500 MByte – 1 GByte)

4 Einsatz und Verwendung

5 Komponenten d. Datenbanksystems ● DB – Logisch zusammenhängender Datenbestand auf – (meist) nichtflüchtigem Speicher ● DBMS – Definiert Datenbankmodell – Realisiert wesentliche Anforderungen

6 Einsatz und Verwendung

7

8 Historische Entwicklung

9

10

11

12 Datenbankmodelle ● Hierarchisch – Eltern-Kind-Beziehungen – 1:1, 1:n Beziehungen ● Netzwerkartig – Abbildung von m:n-Beziehungen, ein Datensatz kann mehrere Vorgänger haben – Flexibel, aber schnell unübersichtlich ● Relational – Zeilenweise Verwaltung in normalisierten Tabellen – Beliebige Beziehungen durch Werte bestimmter Tabellenspalten (Schlüssel) ● Objektorientiert – Modellierung der Objekte mit Attributen und Methoden und Speicherung in Klassenhierarchien

13 RDB

14

15 Codd'sche Prinzipien ● Integration – Einheitliche, nichtredundante Datenverwaltung ● Operationen – Speichern, Suchen, Ändern ● Katalog (DataDictionary) ● Benutzersichten ● Konsistenzüberwachung ● Datenschutz / Datensicherung

16 Anforderungen ● Sprachen – Datenabfrage (DML) ● z.B. Einfügen, Ändern, Filterung, Sortierung – DB-Verwaltung und Strukturdefinition (DDL) ● z.B. XML-Schema, DTD – Berechtigungssteuerung (DCL) ● z.B. GRANT ● Mehrbenutzerfähigkeit – Transaktionen / Synchronisation – Locks und Logs

17 Anforderungen ● Betrieb – Datensicherung und Wiederherstellung – Im- und Exportierung der Daten – Verbindung mit anderen DBS, verteilte Datenbanksysteme – Hoher Durchsatz und akzeptable Antwortzeiten bei großen Datenmengen – Verwaltung d. Metadaten ● z.B. Liste aller Tabellennamen -> DataDictionary

18 Datensicherheit ● Sicherung des Speichermediums – Relationale Daten (bei RDBMS) – Datenschemata und Zugriffsrechte – Performance-Problem bei Backups ● Nur eingeschränkte Modifizierbarkeit ● Transaktionen – Schutz vor Race-Conditions durch parallelen Zugriff – BEGIN sperrt Daten vor anderen Benutzern / COMMIT beendet Bearbeitung

19 Datensicherheit BEGIN TRANSACTION USE pubs GO UPDATE titles SET advance = advance * 1.25 WHERE ytd_sales > 8000 GO COMMIT GO

20 Datenintegrität ● Sicherstellung durch Constraints – FOREIGN KEY ● Verhindert Entfernen noch benötigter Daten – CHECK ● Definiert zu erfüllenden Ausdruck (z.B. Preis>0) – NOT NULL – UNIQUE ● Werteunterscheidung innerhalb einer Spalte muss erfolgen

21 Datenintegrität CREATE TABLE Customer (SID integer Unique, Last_Name varchar (30) NOT NULL, First_Name varchar(30));

22 Anfrageoptimierung ● Logische Optimierung – Mathematische Vereinfachung der Anfrage – Eliminierung mehrfacher Selektionsoperatoren ● Physische Optimierung – Wahl d. besten Algorithmus ● z.B. nach Kardinalität (Elementanzahl Quelle) ● Minimierung der Kosten

23 Datenbankoperatoren ● Vereinigung ● Differenz / Symmetrische Differenz ● Durchschnitt ● Kreuzprodukt ● Projektion ● Selektion ● Joins (Semi, Equi, Natural) ● Umbennenung ● Division

24 Datenbankoperatoren ● Vereinigung ● Differenz / Symmetrische Differenz

25 Datenbankoperatoren ● Durchschnitt ● Kartesisches- / Kreuzprodukt

26 Datenbankoperatoren ● Projektion ● Selektion

27 Datenbankoperatoren ● Joins (Equi, Natural, Semi, Left Outer)

28 Datenbankoperatoren ● Division ● Umbenennung

29 Beispielcode-SQL Data Query Language: SELECT * FROM meineTabelle WHERE feldName1 = 'xy' AND feldName2 < 100 AND feldName3 BETWEEN 1 AND 10; SELECT ZahlungsEmpfaenger, SUM(Betrag) FROM Rechnungen GROUP BY ZahlungsEmpfaenger;

30 Beispielcode-SQL Data Manipulation Language INSERT INTO tabelleAutor ( Nr, NachName, VorName, GebJahr ) VALUES ( 1, 'Böll', 'Heinrich', 1917 ); UPDATE tabelleAutor SET Name = Otto, GebJahr = 1954, Beruf = NULL WHERE Nr = 10; DELETE FROM tabelleAutor WHERE Datum < (SYSDATE );

31 Beispielcode-SQL Data Definition Language: CREATE TABLE Autor ( Nr INT CONSTRAINT Pk_Autor PRIMARY KEY, Name VARCHAR(80) CONSTRAINT Nn_Autor_Name NOT NULL, VorName VARCHAR(80) CONSTRAINT Nn_Autor_VorName NOT NULL, GebJahr INT, Geschl CHAR(1) CONSTRAINT Ch_Autor_Geschl CHECK ( TYP IN ('m','w') ), UNIQUE( Nr ), UNIQUE( Name, VorName ) );

32 Beispielcode-SQL Data Control Language: GRANT SELECT, DELETE, UPDATE, REFERENCES(Nr) ON meineTabelle TO Mueller; REVOKE DELETE ON meineTabelle FROM Mueller;

33 Freie DB's im Vergleich

34 Ende ● Noch Fragen? ● Quellen und weiterführende Informationen: ● ● DBING_SS04/1_einfuehrung_in_db.pdf ● ● ● muenchen.de/services/datenhaltung/datenbanken/intro/


Herunterladen ppt "Datenbanken. Gliederung ● Einsatz und Verwendung ● Historische Entwicklung ● Datenbankmodelle ● (Codd'sche) Prinzipien ● Datenbankoperatoren ● Beispielcode."

Ähnliche Präsentationen


Google-Anzeigen