Datenbanken und SQL. Prof. Dr. Rolf Lauser

Ähnliche Dokumente
Datenbanksysteme: Entwurf

Entwicklung der Datenbanksysteme

Kapitel 1: Wiederholungsfragen Grundlagen DBS

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Wiederholung VU Datenmodellierung

Medizininformatik Software Engineering

- Gewinnung neuer Informationen durch Berechnungen - Einsatz graphischer Mittel zur Präsentation / Visualisierung von Datenreihen

SQL (Structured Query Language) Schemata Datentypen

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Datenbanken I. Karczewski Datenbanken I 1. Produkt (0,*) (0,*)

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Datenbankentwicklung

Abstraktionsschichten. Das Relationale Datenmodell

ER-Modell, Normalisierung

Angewandte Informatik Datenbank/Datenmodell 1

Datenmodelle und Datenbanken 2

Das konzeptionelle Datenmodell

Relationales Datenbanksystem Oracle

9. Einführung in Datenbanken

Datenmodellierung VU Einführung SS 2016

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Datenbanken. Zusammenfassung. Datenbanksysteme

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Datenbanken Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt:

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten, Datenbanken, Datenbankmanagmentsysteme

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

Kapitel 1: Einführung 1.1 Datenbanken?

DB1. DB SQL-DQL 1 Mario Neugebauer

Folien zum Textbuch. Kapitel 2: Planung, Entwicklung und Betrieb von IS. Teil 3: Modellierung von betrieblichen Informationssystemen

Die Grundbegriffe Die Daten Die Informationen

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Datenbankmodelle und Datenbanksprachen

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Garten - Daten Bank. - survival pack -

S(tructured)Q(uery)L(anguage)

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

SQL: Weitere Funktionen

Relationale Datenbanken in der Praxis

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Einteilung von Datenbanken

Oracle 10g Einführung

ACCESS SQL ACCESS SQL

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Übersicht über Datenbanken

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Grundlagen zu Datenbanken zu Beginn der Jgst. 13

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

MS SQL Server Einstieg in relationale Datenbanken und SQL Marco Skulschus Marcus Wiederstein

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

4. Datenbanksprache SQL

Folien php/mysql Kurs der Informatikdienste

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Modul Datenbanksysteme. (auch Teil des Moduls Informationssysteme) TU Bergakademie Freiberg

Relationale Datenbanken

SQL/Datenbanken Klausur: Basics

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Datenorganisation: (Daten)Datei versus Datenbank

Datenorientierter Ansatz. Datenbankentwurfsschritte. Welche Daten müssen im System verwaltet werden? Wie werden die Daten im System verändert?

Microsoft Access 2010 SQL nutzen

Relationale Datenbanken Datenbankgrundlagen

Datenbankanwendungen werden oft über einen sehr langen Zeitraum (z.b. Jahrzehnte) eingesetzt

Einführung in die Datenorganisation. Informationssysteme

Geoinformation Abbildung auf Tabellen

Veranstaltung Pr.-Nr.: Datenmodellierung. Veronika Waue WS 07/08. Phasenschema der Datenbankentwicklung (grob) Informationsanalyse

Das relationale Datenmodell

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Daten Bank. 2. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Kapitel 1: Einführung 1.1 Datenbanken?

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

SQL als Zugriffssprache

Probeklausur mit Musterlösung

Theorie zur Übung 8 Datenbanken

Software- /Systemarchitektur

Datenbanksysteme 2013

Prof. Dr. Rolf Lauser

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

Datenbanken für Online Untersuchungen

Informations-, Daten- und Wissensmanagement

Transkript:

Datenbanken und SQL Prof. Dr. Rolf Lauser Von der IHK für München und Oberbayern öffentlich bestellter und vereidigter Sachverständiger für Systeme und Anwendungen der Informationsverarbeitung im kaufmännisch-administrativen Bereich sowie Datenschutz und Datensicherheit

Datenbank-Verwaltungs-Systeme Datenbank = Gesamtheit der auf einem DV-System (incl. Peripherie) gespeicherten Daten, sofern die Speicherung nach den Prinzipien der Integration und Redundanzfreiheit erfolgt Dateisystem = Gesamtheit der gespeicherten Daten, die nicht integriert und ohne Beachtung der Redundanzvermeidung verwaltet werden DBMS = Datenbankmanagement-System = Software, die alle Prozeduren zur Verwaltung der Daten einer Datenbank umfaßt (Datenbank- Verwaltungs-System)

Charakteristische Eigenschaften einer DB Strukturierung der Datenbank Der Datenbestand hat einen überschaubaren inneren Aufbau und keine ungeordnete Mehrfachspeicherung (keine unkontrollierte Redundanz) Datenunabhängigkeit Die logische Darstellung der Daten aus Benutzersicht erfolgt unabhängig von ihrer physischen Speicherung auf den realen Speichermedien Flexibilität Die Datenbank ist nicht nur für die momentan vorhandenen Anwendungen einsetzbar; es sollen auch zukünftige Bedürfnisse der Benutzer an die Daten nachträglich befriedigt werden können

Charakteristische Eigenschaften einer DB Datenintegrität Es existieren Prozeduren zur Vermeidung der Aufnahme widersprüchlicher Daten (Datenkonsistenz), zur Vermeidung von Datenverlusten und Verfälschungen (Datensicherung) sowie zur Verhinderung von mißbräuchlicher Verwendung der Daten (Datenschutz) Zeitliche Permanenz Die Daten sollen ohne zeitliche Beschränkung nutzbar sein Mehrfache parallele Nutzbarkeit Gleichzeitiger Zugriff auf die Daten durch mehrere Anwender und Anwendungen unterstützt durch Synchronisations-Proceduren

Datenorganisation Logische Datenorganisation Zeichen: Ziffern, Buchstaben u. Sonderzeichen (kleinste logische (nicht physische) Dateneinheit) Datenfeld: Mehrere Zeichen, die in einem logischen Zusammenhang stehen und für Verarbeitungs-Zwecke gemeinsam angesprochen werden Datensatz: Summe von Datenfeldern, die einem Ordnungsbegriff eindeutig zugeordnet werden können. (Ordnungsbegriff ist eindeutig identifizierendes Merkmal des Datensatzes (Primär-Schlüssel) Datei: Summe gleichartig strukturierter Datensätze (identische Felder) Datenbank: Integrierte, redundanzfreie Konfiguration von Dateien

Datenorganisation Physische Datenorganisation (= Verfahren, nach denen logische Datenstrukturen auf realen Speichermedien abgebildet werden) - Adressierungsverfahren: Art der Adreßverknüpfung und umwendlung, um vom logischen Identbegriff (Schlüssel) zur physischen Adresse zu kommen - Speicherungsverfahren: Art der Speicherung von Daten auf einem Speicher-Medium (sequentiell, index-sequentiell, index-verkettet oder gestreut)

Excurs: Speicherungs-Verfahren Prinzipiell 4 Grundformen: Sequentiell: Fortlaufende Speicherung für adressierbare und nicht-adressierbare Medien. Kein Zusammenhang zwischen Schlüssel und Adresse (i.d.r. Speicherung nach zeitlichen Datenanfall) Index-sequentiell: (nur adressierbare Medien) Verwendung von Index-Tabellen für Zuordnung von Adresse zu Schlüssel Index-verkettet: die lückenhaft gespeicherten Datensätze werden durch Zeiger (Pointer) zu einer Kette verbunden (hinter jedem Datensatz stet Pointer, der auf den Folge-Datensatz zeigt, wobei zusätzlich mit index-tabellen gearbeitet wird) gestreut: über einen Umrechnungsalgorithmus wird aus Schlüssel die Adresse errechnet (für numerische Schlüssel)

Datenorganisation (physisch) Zugriffsverfahren: Vorgehen beim Auffinden eines abgespeicherten Datensatzes (sequentiell, index-sequentiell, index-verkettet und gestreut). Achtung: In der Realität wird beim Zugriff auf einen Datensatz nicht nur dieser Datensatz, sondern die folgenden Datensätze mit gelesen (und in den Hauptspeicher gestellt.). Gelesen werden immer ganze Blöcke, wobei die Länge eines Blocks immer ein Vielfaches der Satzlänge entspricht,. Dadurch kann, besonders bei einer sequentiellen Verarbeitung, die Anzahl der Zugriffe auf die langsamen Massenspeicher reduziert werden. Die Zugriffs-Algorithmen bei der gestreuten Speicherung werden auch als Hash-Algorithmen bezeichnet.

RDBMS Das relationale Datenbankkonzept wurde 1970 von Codd definiert. Realisierung ca. 10 Jahre (normaler Time-Lag bei der Einführung von neuen Technologien) Das Grundelement dieses Modells ist die Tabelle (= Relation) Eine relationale Datenbank enthält eine Menge von Tabellen, wobei jede Tabelle aus: einem Tabellen-Namen, einem Tabellen-Kopf (die in der Tabelle enthaltenen Attribute mit ihren jeweils zulässigen Wertebereich) und den in der Tabelle (quasi zeilenweise) gespeicherten Daten

RDBMS Der Tabellen-Inhalt besteht aus einer Menge von veränderbaren Datensätze, die als Tupel bezeichnet werden.l Ein Attribut wird dabei als Primär-Schlüssel definiert. Über ihn geschieht der Zugriff auf den Datensatz. Über die Inhalte von Attributen kann auf andere Tabellen zugegriffen werden. Dabei muss allerdings der Suchschlüssel der einen Tabelle in der zweiten Tabelle ebenfalls als Attribut vorhanden sein.

Reale Welt und Modellwelt Datenbanken stellen ein abstrahiertes Modell der Realen Welt dar. Um einen Ausschnitt aus der realen Welt in einem DBMS darstellenzu können ist es notwendig, von konkreten Dingen, Personen oder begriffen zu abstrahieren und sich ein geeignetes Modell von diesen Objekten zu machen Ein Objekt der realen Welt (identifizierbares Exemplar von Personen/Dingen) stellt dabei in der Modell Welt die Instanz einer Entität dar. Ein Objekt-Typ ist eine Klasse von Objekten der Real-Welt mit gemeinsamen (generierenden) Eigenschaffen und wird in der Modell- Welt Entität genannt

Reale Welt und Modellwelt Beziehungen zwischen Objekten der Real-Welt werden in der Modell- Welt als Instanz einer Relationship bezeichnet. Ein Beziehungs-Typ, als Klasse von Beziehungen mit gemeinsamen (generierenden) Eigenschaften entspricht in den Modell-.Welt einer Relationship. Zur Charakterisierung werden Objekt-Typen und auch Beziehungstypen Eigenschaften zugeordnet. Diese werden in der Modell-Welt als Attribute bezeichnet.

Reale Welt und Modellwelt Der Übergang von Real-in die Modell-Welt wird als Informations- Modellierung bezeichnet. Mehrere Angestellte einer Organisation arbeiten in einem Projekt Dargestellt werden solche Informations-Modelle in der Form von Entity-Relationship-Modellen (ER-Modell oder ERM) Projekt 1 arbeitet n in Angestellte n Organisation 1 hat

Ebenen eines DBMS Ein DBMS umfasst 3 Ebenen: Konzeptionelle Ebene Logische Gesamt-Sicht der Unternehmens-Daten Keine technischen Restriktionen - Externe Ebene Sichtweisen der Anwender (Anwendungsprogramme) Ext. Modelle müssen voll aus den konzeptionellen Modellen ableitbar sein - Interne Ebene Modell der physischen Datenorganisation geprägt von der real zur Verfügung stehenden Technik Speicherungs-und Zugriffsverfahren

Datenbank-Entwurf Der Datenbank-Entwurf wird mittels eines Datenmodells erzeugt, wobei hier zunächst mit einer graphischen Methode: Der ER-Modellierung (ER = Entity-Relationship) das Datenmodell und darauf aufsetzend mit einer Datenbeschreibungs-Sprache (DDL) die eigentliche Datenbank generiert wird. Das Vorgehen ist dabei: Zuerst wird das graphische ER-Modell erzeugt Danach wird das erzeugte Modell redundenzfrei gemacht, durch diesog. Normalisierung Zuletzt wird dann das normalisierte Datenmodel, mittels der DDL in eine Datenbank überführt.

Datenbank-Entwurf Entitäten sind individuelle Exemplare von Elementen der realen Welt Die Beschreibung einer Entität erfolgt durch Merkmale (Attribute) Beispiel: Karl Mayer aus München, geboren am 29.02.1992 Eine Ausgabe der Süddeutschen Zeitung Entitäten mit gleichen Merkmalen (Attributen) aber unterschiedlichen Merkmals-Werten können zu Entitäts-Mengen (Entity-Typ) zusammengefasst werden. Beispiel: Alle Angestellte der Firma X Alle Einzelnummern der Süddeutschen Zeitung

Datenbank-Entwurf Kommen unterschiedliche Entitäten immer nur in einer Entitäts- Menge vor, wie beispielsweise die Entitäten: Angestellte der Firma X und Einzelnummern der Süddeutschen Zeitung, so spricht man von disjunkten Entitätsmengen. Sind hingegen bestimmte Entitäten gleichzeitig Mitglied unterschiedlicher Entitätsmengen so spricht man von überlappenden Entitätsmengen. Beispiel: In einem Unternehmen gibt es disjunkte Entitätsmengen und überlappende Entitätsmengen.

Datenbank-Entwurf Geschäftsleitung Abteilungsleiter Angestellte Hier tritt der Fall auf, dass Personen, die der Entitätsmenge Abteilungsleiter angehören, gleichzeitig auch der Entitätsmenge Angestellte angehören. Bei überlappenden Entitätsmengen kann immer eine Entitätsmenge definiert werden, welche die überlappenden Mengen umfasst. Beispielsweise: Unternehmens-Angehörige

Datenbank-Entwurf Attribute: Ein Attribut ist ein Merkmal einer Entität Ein Attribut ist die Beschreibung einer bestimmten Eigenschaft der Entität einer Entitätsmenge Einem Attribut können bestimmte zulässige Wertebereiche zugeordnet werden (Domain) Eine Domain ist eine Menge von Datenwerten des gleichen skalaren Typs, die einem Attribut zugewiesen werden darf. Beispiele: Ganze Zahlen (INTEGER) Buchstaben (A, B, C,., Z) Wochentage (Mo, Di, Mi, Do, Fr)

SQL (Structured Query Language) SQL = eines der Hauptergebnisse der IBM-Entwicklungsarbeiten im Zusammenhang mit der relationalen Datenbank-Architektur. SQL ist einerseits eine Abfragesprache andererseits aber auch eine Sprache zur Strukturierung, zur Kontrolle und Steuerung von Datenbanken, sowie auch eine Sprache, mit der die inhaltliche Pflege der Datenbestände durchgeführt wird. SQL existiert in zwei Ausprägungen: Selbständige (4. Generations-) Sprache für die freie Datenmanipulation an Terminals und/oder Arbeitsplatz-Systemen Eingebettete (embedded) Sprache für die Verwendung in Wirtssprachen (COBOL, PL/1, C etc.). Hier wird SQL in den Wirtsprogrammen über Schnittstellen aufgerufen, wodurch dann aus diesen Programmen auf relationale Datenbanken zugegriffen werden kann.

SQL (Structured Query Language) SQL umfasst: Datendefinitions-Befehle (CREATE; ALTER; DROP) zur Strukturierung Änderung und Löschung von Tabellen Datenmanipulations-Befehle (INSERT, UPDATE, DELETE und SELECT) zur Abspeicherung, Änderung Löschung oder Auswahl von Datensätzen Kontroll-Befehle (GRANT, LOCK, ROLLBACK) zur Festlegung und Verwaltung von Zugriffsrechten und zur Unterstützung von Datensicherheits-Maßnahmen

SQL (Structured Query Language) Beispiel für CREATE (mit CREATE können gleichermaßen Tabellen, Benutzersichten (Views) und Schlüssel definiert werden. Anlage einer Tabelle Buch mit dem Schlüssel Inventar# CREATE TABEL Buch (Inventar# Titel INTEGER NOT NULL UNIQUE, CHAR (250) NOT NULL, Autor CHAR (100), Verlag CHAR (100), Preis DEC (7,2), Ersch_Ort CHAR (100))

SQL (Structured Query Language) Anlage einer Benutzersicht für Studenten die eine Recherche mittels Schlagwörter durchführen wollen: CREATE VIEW Suche AS SELECT FROM WHERE Inventar#, Titel, Schlagwort Schlagwort, Buch Schlagwort.Inventar# = Buch.Inventar#

SQL (Structured Query Language) Grundstruktur einer SQL-Abfrage: SELECT (Attributliste) (Name der auszuwählenden Spalte (n) FROM (Relation(en) (Name der auszuwählenden Tabelle(n) WHERE (Bedingung) (Log. Definition der auszuwählen und anzuzeigenden Zeilen der Tabelle Zulässig sind für die logische Bedingung: =,<,<= AND, OR, NOT Darüber hinaus die folgenden Prädikatoren-Konstrukte: MIN, MAX, SUM, AVG Der Operator IN erlaubt die Formulierung von Mengenbedingungen

SQL (Structured Query Language) Beispiele für SQL-Abfragen: SELECT Titel, Verlag FROM Buch WHERE Autor = Mayer SELECT Pers# FROM Personal WHERE Pers# NOT IN SELECT Person FROM Faehigkeit WHERE Ausbildung = Programmierer

SQL (Structured Query Language) Beispiele für SQL-Abfragen: SELECT Pers# FROM PERSONAL WHERE Abtl# = (SELECT Abtl# FROM Abteilung WHERE Name = Entwicklung ) AND Pers#= (SELECT UNIQUE Pers# FROM Faehigkeit WHERE Ausbildung = Betriebswirt )

SQL (Structured Query Language) Beispiele für SQL-Datenpflege: UPDATE Personal SET Abtl# = 1 WHERE Pers# = 104 INSERT INTO Personal (Pers#, Name, Abtl#) VALUES (107, Karl, 2)

SQL (Structured Query Language) Beispiel für Embedded SQL (Beispiel PL/1): EXEC SQL INSERT INTO Personal (Pers#, Name, Abtl#) VALUES (:n, :P_Nam, :Abtl) ; EXEC SQL ; ist der Aufruf von emb. SQL ist das Statement-Ende N, P_Nam und Abtl sind übergebene Variablen aus dem Wirts-Pgm. Sie müssen dort deklariert und mit Werten versorgt werden.l