Prof. Dr. Andreas Schmietendorf

Slides:



Advertisements
Ähnliche Präsentationen
Einführung "Datenbanksysteme"
Advertisements

ER-Datenmodell und Abfragen in SQL
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Relationale Datenbank MySQL
MySQL.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
1 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Übung 4 Mehrstufige Client/Server-Systeme mit JSPs, Servlets und JavaBeans (Web-Container)
Datenbankzugriff im WWW (Kommerzielle Systeme)
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Datenbanken I (0,*) Produkt 3 Karczewski Datenbanken I.
SendEplanung Datenbank
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
SQL als Abfragesprache
SQL als Abfragesprache
MySQL Der Einstieg.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
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.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Datenintegrität Referentielle Integrität create table
Fachbereich Mathematik/Informatik Universität Osnabrück
Datenbanken 10: Einfügen, Ändern, Löschen
2.2 Definition eines Datenbankschemas (SQL-DDL)
Einführung und Überblick
... und alles was dazugehört
Datenbankentwicklung IV-LK
ODBC (Open Database Connectivity)
MYSQL Von Rahan Bölzer.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Datenbank-entwicklungsprozess
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Sesame Florian Mayrhuber
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Allgemeines zu Datenbanken
JDBC (Java DataBase Connectivity)
Datenbanksysteme für hörer anderer Fachrichtungen
Ispirer Systems Präsentation des Unternehmens Copyright (c) Ispirer Systems Ltd. Alle Rechte vorbehalten.
Einführung in Datenbankmodellierung und SQL
Freiwillige Feuerwehr der Stadt Perg
Relationales Datenmodell und DDL
XML und Datenbanken © 2006 Markus Röder
Normalisierungsprozess
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Aufbau, Theorie und Anwendung (im Unterricht)
Structured Query Language
SQL - Structured Query Language  AIFB SS (1|3) 2.1 Allgemeines zu SQL (1|3) Benennung: SQL: „structured query language" ursprünglich: SEQUEL –
Einführung Dateisystem <-> Datenbanksystem
Vordefinierte Datentypen (1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Datenbank System (DBS) - Warum?
Dynamische Webseiten mit MySql und PHP
1 Prof. Dr. Andreas SchmietendorfWS06/07 Übung 3 Test der Möglichkeiten des JDBC-Interfaces.
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
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
SQL Basics Schulung –
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Darstellung der Relationenalgebra als Programmiersprache
Create Table, Rechte und Rollen
Kapitel 6: Datenbanksysteme
(Structured Query Language)
 Präsentation transkript:

Prof. Dr. Andreas Schmietendorf Übung 2 Interaktive Abfragen auf eine Firebird-Datenbank unter Verwendung der IBOConsole WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf Übersicht zur Übung Schritte zum Entwurf einer Datenbank Beispiele für DBMS (Kommerziell und Open Source) SQL-Anweisungen in der Übersicht SFW-Block (SELECT – FROM – WHERE) Umgang mit der IBO-Console Aufgabenstellungen des Labors Weiterführender Beipsiele für SQL-Anweisungen WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Übersicht zum Entwurf einer DB WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Phasenmodell des DB-Entwurfs Anwendungsdaten sollen aus den in der DB gespeicherten Informationen abgleitet werden können. Es sind nur sinnvolle bzw. vernünftige Anwendungsdaten zu speichern, daher ist der Informationsbedarf einer Anwendung zu ermitteln. Anwendungsdaten sind möglichst redundanzfrei zu speichern. (Vermeidung von Anomalien) Quelle: Heuer, A. et al: Datenbanken kompakt, mitp-Verlag, Bonn 2003 WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Entity-Relationship-Modell Entity-Relationship-Modell (kurz ER-Modell) Grundlage ist eine Arbeit von P.P. Chen aus dem Jahr 1976 Standardmodell für frühe Phasen der Datenbankentwicklung Verständlich für Fach- und DV-Abteilungen Basiert auf folgenden Grundkonzepten: Entity als zu modellierende Informationseinheit Relationship zur Modellierung von Beziehungen zwischen Entities Attribut als Eigenschaft von einem Entity oder Relationship Grafische Notation zur ER-Modellierung WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiel eines ER-Modells Quelle: Heuer, A. et al: Datenbanken kompakt, mitp-Verlag, Bonn 2003 WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf Normalisierung Ziel der Normalisierung ist es, Attribute so zu Relationen zuzuordnen, dass innerhalb der Relation keine Redundanzen auftreten. Redundanz ist dann vorhanden, wenn Teile ohne Informationsverlust weggelassen werden können. Unnötige Redundanz impliziert Nachteile hinsichtlich der Ressourcen-auslastung und so genannten Veränderungsanomalien (Update-, Insert-, Delete-Anomalien). WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf Normalisierung Merkmale des Normalisierungsprozesses: Primärschlüsselkonzept Erkennen von Abhängigkeiten Schrittweise Vorgehensweise Normalisierungsformen Funktionale Abhängigkeiten (1 NF und 2 NF) Transitive Abhängigkeiten (3 NF und BCNF) Mehrwertige Abhängigkeiten (4 NF) Verbundabhängigkeiten (5 NF) WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiele für Datenbank-Management-Systeme WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiele konkreter DBMS I Gemeinsamkeiten aktuell angebotener DBMS: Drei-Ebenen Architektur nach ANSI SPARC SQL als Datenbankabfragesprache Einbettung von SQL in Programmiersprachen Diverse Tools für: Entwurf von Datenbanken Definition, Anfrage und Darstellung von Daten Kontrollierter Mehrbenutzerbetrieb WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiele konkreter DBMS II Kommerzielle Produkte Oracle Database IBM DB2 Universal Database MS SQL Server Informix (zumeist in Altsystemen eingesetzt) IBM IMS DB (ca. 60% aller unternehmenskritischen Daten) WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Oracle (hier der Enterprise Manager) WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

SQL Server (hier der Enterprise Manager) WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiele konkreter DBMS III Open Source Produkte (erhältliche Systeme im Quelltext) Im Rahmen der LINUX-Distribution My SQL mit eingeschränkten Funktionsumfang (www.mysql.com) PostgreSQL mit objektrelationalen Features (www.postgresql.org) Weiterentwicklung von InterBase 6.0 (Borland) Firebird (www.firebirdsql.org) Verfügbar für Linux und Windows WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Firebird-DBMS (hier IBOConsole) WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

SQL-Anweisungen in der Übersicht WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf Datenbanksprachen Storage Structure Language (SSL) Dateiorganisation (Systemadministrator) Data Definition Language (DDL) Erzeugen des DB-Schemas (Datenbankadminstrator – DBA) View Definition Lanaguage (VDL) Sichten erzeugen (Anwendungsadministrator) Interactive Query Language (IQL) Data Manipulation Language (DML) Daten im Dialog abfragen und ggf. verändern (erfahrene Endanwender) Data Base Programming Language (DBPL) Anwendungen erstellen (Programmierer) Schnittstellen der Anwendungen (Menüs, Masken, usw.) Daten abfragen und editieren (Endanwender ohne DB-Kenntnisse) WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Unterstützte Datentypen Integer (auch integer4, int) smallint (auch integer2) float (p) auch kurz float decimal (p,q) und numeric (p,q) mit jeweils q als Nachkommastellen character (n) oder char varying bzw. varchar (n) date, time für Datums und Zeitangaben WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

SQL Anweisungen – Übersicht 1 CREATE (DROP) SCHEMA – Definition (Entfernen) eines DB-Schemas CREATE (DROP) DOMAIN - Definition (Entfernen) eines Datentyps CRATE (DROP) TABLE - Definition (Entfernen) einer Basistabelle CREATE (DROP) VIEW - Definition (Entfernen) einer View ALTER TABLE – Umstrukturieren einer Basistabelle GRANT, REVOKE – Vergabe und Entzug von Zugriffsrechten WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

SQL Anweisungen – Übersicht 2 SELECT FROM WHERE– Datenbankabfrage INSERT INTO – Einfügen von Zeilen DELETE FROM – Löschen von Zeilen TRUNCATE TABLE – Löschen aller Datensätze UPDATE – Aktualisieren von Zeilen WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

SQL Anweisungen – Übersicht 3 Transaktionssteuerung COMMIT ROLLBACK SAVEPOINT Data Control Language (DCL) GRANT (Rechtevergabe auf Tabellen oder Sichten) REVOKE (Rücknahme von Rechten auf Tabellen oder Sichten) WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Vergleichsoperatoren Bedeutung = Equal to > Greater than >= Greater than or equal to < Less than <= Less than or equal to <> Not equal to WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

SELECT … FROM … WHERE der SFW-Block WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf SELECT (SFW Block) SELECT Klausel Gibt die Projektionsliste an, die das Ergebnisschema bestimmt Integriert auch arithmetische Operationen und Aggregatfunktionen FROM Klausel Spezifiziert zu verwendende Relationen (Basisrelationen oder Sichten) Führt ggf. Umbenennungen durch (Tupelvariablen oder „alias“-namen) Verwendete Relationen werden mittels kartesischen Produkts verknüpft WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf SELECT (SFW Block) WHERE Klausel Einschränkung der von der Datenbank zurückgegebenen Zeilen (Tupel) Spezifiziert Selektionsbedingungen der Relationenalgebra Verbundbedingungen um aus dem kartesischen Produkt z.B. ein Gleichverbund (auch Equi-Join) zu berechnen. Geschachtelte Anfragen innerhalb der WHERE Klausel ! Bei Zeichenketten ist auf Groß- und Kleinschreibung zu achten WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

SQL-Anfrage auf einzelne Tabelle Tabelle: Kunde KNr Name Vorname PLZ Ort Strasse Telefon 101 Meyer Joachim 13509 Berlin Wittestr. 30 030 43577 385 102 Schmidt Reiner 12487 Probsthof 9 030 634 5685 100 Wipprecht Michael 38855 Wernigerode Schillerstr. 7 03943 62 75 11 104 Dimitrov Evgeni Lindenstr. 8 03943 62 33 11 105 … select * from Kunde where Ort = ‚Berlin‘ Zeige alle Kunden die In Berlin wohnen. KNr Name Vorname PLZ Ort Strasse Telefon 101 Meyer Joachim 13509 Berlin Wittestr. 30 030 43577 385 102 Schmidt Reiner 12487 Probsthof 9 030 634 5685 WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

SQL-Anfrage auf einzelne Tabelle Tabelle: Kunde KNr Name Vorname PLZ Ort Strasse Telefon 101 Meyer Joachim 13509 Berlin Wittestr. 30 030 43577 385 102 Schmidt Reiner 12487 Probsthof 9 030 634 5685 100 Wipprecht Michael 38855 Wernigerode Schillerstr. 7 03943 62 75 11 104 Dimitrov Evgeni Lindenstr. 8 03943 62 33 11 105 … select Name, Vorname, Telefon from Kunde where PLZ = 38855 Zeige Name, Vorname und Telefon aller Kunden welche die PLZ 38855 haben Name Vorname Telefon Meyer Joachim 030 43577 385 Schmidt Reiner 030 634 5685 WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

SQL-Anfrage auf einzelne Tabelle Tabelle: Kunde KNr Name Vorname PLZ Ort Strasse Telefon 101 Meyer Joachim 13509 Berlin Wittestr. 30 030 43577 385 102 Schmidt Reiner 12487 Probsthof 9 030 634 5685 100 Wipprecht Michael 38855 Wernigerode Schillerstr. 7 03943 62 75 11 104 Dimitrov Evgeni Lindenstr. 8 03943 62 33 11 105 … select * from Kunde where Name = ‚Schmidt‘ Zeichenketten und Datumswerte Werden in Anführungszeichen gesetzt. KNr Name Vorname PLZ Ort Strasse Telefon 102 Schmidt Reiner 12487 Berlin Probsthof 9 030 634 5685 WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Umgang mit der IBOConsole WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Umgang mit der IBOConsole Zugriff auf Datenbanken Interbase (Borland) Firebird (Open Source) Funktionsumfang Datenbanken erzeugen Datenbanken registrieren Ausführen von SQL-Anweisungen Interaktiv SQL Gespeicherte SQL-Skripte DB-Administration Nutzerverwaltung Backup & Recovery WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf Anmeldeprozedur Benutzername SYSDBA Kennwort masterkey Datenbank verwenden DB-Registrieren DB-Anmeldung WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Datenbank registrieren WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Anmelden an der Datenbank WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Neue Datenbank anlegen WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Aufgabenstellungen im Labor WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Verwendung des Eigenschaften-Dialogs Verwenden Sie „Properties“ (Tabellennamen markieren – rechte Maustaste – Properties oder Doppelklick auf den Tabellennamen) um sich über die Eigenschaften der folgenden Tabellen zu informieren. Speichern Sie die Metadaten jeweils im Protokoll. COUNTRY CUSTOMER DEPARTMENT EMPLOYEE JOB PROJECT PROJ_DEPT_BUDGET WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Anfragen in SQL - SELECT Wählen Sie alle Dateneinträge der vorhergehend mit Hilfe des Properties-Dialoges analysierten Tabellen aus. Wählen Sie aus der Tabelle DEPARTMENT die Attribute department, location und phone_no aus. Wählen Sie aus der Tabelle DEPARTMENT die Attribute dept_no, department und budget aus, für den Fall das das budget größer als 600000 ist. WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Anfragen in SQL - SELECT Wählen Sie aus der Tabelle DEPARTMENT das Attribut location aus, verhindern Sie dabei die Ausgabe doppelter Tupel mittels der distinct-Anweisung. Wählen Sie aus der Tabelle EMPLOYEE die Attribute emp_no, first_name, last_name und job_code aus, für den Fall das die dept_no gleich 623 ist. WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Daten einfügen - INSERT WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Daten einfügen - INSERT Fügen Sie in die Tabelle COUNTRY weitere 3 Länder und die entsprechenden Währungseinheit ein. Prüfen Sie nach Eingabe eines weiteren Landes den Inhalt der Tabelle COUNTRY mittels select-Anweisung. Geben Sie jeweils 5 neue Mitarbeiter in die Tabelle EMPLOYEE ein, verwenden Sie die Vorlage innerhalb dieser Versuchsanleitung! Belegung aller not null Attribute Datumsangabe entsprechend des folgenden Formats – ‘11.12.2005‘ Berücksichtigung von Abhängigkeiten zu anderen Tabellen! WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Verbundoperationen (Join) Ermitteln Sie das Kreuzprodukt für die Relationen DEPARTMENT und EMPLOYEE. Wie viele Tupel (Zeilen) und Attribute (Spalten) enthält ihre Ergebnisrelation? Ermitteln Sie einen natürlichen Verbund der Relationen DEPARTMENT und EMPLOYEE unter Verwendung des Attributs dept_no. Wie viele Tupel (Zeilen) und Attribute (Spalten) enthält ihre Ergebnisrelation jetzt? WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Weiterführende Beispiele WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Duplikatsunterdrückung mittels distinct WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiel: UPDATE-Anweisung - vorher - WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiel: UPDATE-Anweisung - nachher - WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiel: DELETE-Anweisung WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiel: INSERT-Anweisung WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiel: Kreuzprodukt WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Beispiel: Natürlicher Verbund WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf Organisation WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf

Organisation des Labors Bearbeitung der Themenstellung – Gruppen zu je 4 Stundenten Abgabe eines Protokolls (Bitte eine komplette Word-Datei!!) Enthält die Namen aller beteiligten Studenten Enthält alle erstellen SQL-Skripte Enthält alle Ergebnisrelationen Das Protokoll (Dateiname: „CS_ue2_gruppe_x“) liefern Sie per attachment an schmiete@fhw-berlin.de. In das "Betreff" (Subject)-Feld schreiben Sie bitte: „ CS_ue2_gruppe_x " WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf