Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
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
2
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
3
Übersicht zum Entwurf einer DB
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
4
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
5
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
6
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
7
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
8
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
9
Beispiele für Datenbank-Management-Systeme
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
10
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
11
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
12
Oracle (hier der Enterprise Manager)
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
13
SQL Server (hier der Enterprise Manager)
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
14
Beispiele konkreter DBMS III
Open Source Produkte (erhältliche Systeme im Quelltext) Im Rahmen der LINUX-Distribution My SQL mit eingeschränkten Funktionsumfang ( PostgreSQL mit objektrelationalen Features ( Weiterentwicklung von InterBase 6.0 (Borland) Firebird ( Verfügbar für Linux und Windows WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
15
Firebird-DBMS (hier IBOConsole)
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
16
SQL-Anweisungen in der Übersicht
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
17
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
18
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
19
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
20
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
21
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
22
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
23
SELECT … FROM … WHERE der SFW-Block
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
24
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
25
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
26
SQL-Anfrage auf einzelne Tabelle
Tabelle: Kunde KNr Name Vorname PLZ Ort Strasse Telefon 101 Meyer Joachim 13509 Berlin Wittestr. 30 102 Schmidt Reiner 12487 Probsthof 9 100 Wipprecht Michael 38855 Wernigerode Schillerstr. 7 104 Dimitrov Evgeni Lindenstr. 8 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 102 Schmidt Reiner 12487 Probsthof 9 WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
27
SQL-Anfrage auf einzelne Tabelle
Tabelle: Kunde KNr Name Vorname PLZ Ort Strasse Telefon 101 Meyer Joachim 13509 Berlin Wittestr. 30 102 Schmidt Reiner 12487 Probsthof 9 100 Wipprecht Michael 38855 Wernigerode Schillerstr. 7 104 Dimitrov Evgeni Lindenstr. 8 105 … select Name, Vorname, Telefon from Kunde where PLZ = 38855 Zeige Name, Vorname und Telefon aller Kunden welche die PLZ haben Name Vorname Telefon Meyer Joachim Schmidt Reiner WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
28
SQL-Anfrage auf einzelne Tabelle
Tabelle: Kunde KNr Name Vorname PLZ Ort Strasse Telefon 101 Meyer Joachim 13509 Berlin Wittestr. 30 102 Schmidt Reiner 12487 Probsthof 9 100 Wipprecht Michael 38855 Wernigerode Schillerstr. 7 104 Dimitrov Evgeni Lindenstr. 8 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 WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
29
Umgang mit der IBOConsole
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
30
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
31
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
32
Datenbank registrieren
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
33
Anmelden an der Datenbank
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
34
Neue Datenbank anlegen
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
35
Aufgabenstellungen im Labor
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
36
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
37
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 ist. WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
38
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
39
Daten einfügen - INSERT
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
40
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 – ‘ ‘ Berücksichtigung von Abhängigkeiten zu anderen Tabellen! WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
41
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
42
Weiterführende Beispiele
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
43
Duplikatsunterdrückung mittels distinct
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
44
Beispiel: UPDATE-Anweisung - vorher -
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
45
Beispiel: UPDATE-Anweisung - nachher -
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
46
Beispiel: DELETE-Anweisung
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
47
Beispiel: INSERT-Anweisung
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
48
Beispiel: Kreuzprodukt
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
49
Beispiel: Natürlicher Verbund
WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
50
Prof. Dr. Andreas Schmietendorf
Organisation WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
51
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 In das "Betreff" (Subject)-Feld schreiben Sie bitte: „ CS_ue2_gruppe_x " WS06/07 – Labor C/S-Programmierung Prof. Dr. Andreas Schmietendorf
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.