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

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
MySQL.
Prof. Dr. Andreas Schmietendorf
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
SQL als Abfragesprache
SQL als Abfragesprache
MySQL Der Einstieg.
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Datenintegrität Referentielle Integrität create table
Oracle interMedia Image
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
Datenbanken 10: Einfügen, Ändern, Löschen
2.2 Definition eines Datenbankschemas (SQL-DDL)
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
objekt-relationale Datenbanken
Datenbankentwicklung IV-LK
Relationale Datenbanken III
FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache.
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #5 Relationale Anfragesprachen.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Relationales Datenmodell und DDL
Lernfeld - Thema Datenbanksystem
Aufbau, Theorie und Anwendung (im Unterricht)
Structured Query Language
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
Datenbank System (DBS) - Warum?
Datenbank für Skriptenverkauf
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian.
WS 2015/16 Datenbanksysteme Fr 17:00 – 18:30 R Vorlesung #3 Das relationale Modell (Teil 2)
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
IS: Datenbanken, © Till Hänisch 2000 Einführung Worüber reden wir hier eigentlich ?
SQL Basics Schulung –
DOAG SID Data Warehouse
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #6 SQL (Teil 3).
Vorlesung #7 SQL (Teil 4).
Abfragesprache SQL in ORACLE
Abfragesprache SQL in ORACLE
Beispiele zur Datenänderung
Constraints anlegen und löschen, Data Dictionary Tabellen
Create Table, Rechte und Rollen
Kapitel 6: Datenbanksysteme
Datenbanken Eine Einführung Kerstin Fröhlig, HHBK.
Von Wietlisbach, Lenzin und Winter
Datenbanksystem Von Anna und Robin.
Da·ten·bank /Dátenbank/ Substantiv, feminin [die]
Datenbank WI WAHB12 Carolin & Sarah.
Präsentation von Darleen und Michèle
Datenbanken Von Amed und Alicia.
Von Franziska und Robine
(Structured Query Language)
 Präsentation transkript:

Datenbanken

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

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)

Einsatz und Verwendung

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

Einsatz und Verwendung

Historische Entwicklung

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

RDB

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

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

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

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

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

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

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

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

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

Datenbankoperatoren ● Vereinigung ● Differenz / Symmetrische Differenz

Datenbankoperatoren ● Durchschnitt ● Kartesisches- / Kreuzprodukt

Datenbankoperatoren ● Projektion ● Selektion

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

Datenbankoperatoren ● Division ● Umbenennung

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;

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 );

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 ) );

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

Freie DB's im Vergleich

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