Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Theresa Kaufman Geändert vor über 7 Jahren
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) – 42.000.000 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
8
Historische Entwicklung
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
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 - 3650);
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: ● http://ifgivor.uni-muenster.de/vorlesungen/ ● http://www.informatik.tu-cottbus.de/~tk/lehre/ DBING_SS04/1_einfuehrung_in_db.pdf ● http://www.postgresql.org/docs/ ● http://lhc.web.cern.ch/lhc/ ● http://www.lrz- muenchen.de/services/datenhaltung/datenbanken/intro/
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.