WS06/07 - PowerPoint PPT Presentation

1 / 51
About This Presentation
Title:

WS06/07

Description:

Title: bung 2 - CS Programmierung Subject: Umgang mit einem RDBMS Author: Andreas Schmietendorf Created Date: 4/20/2005 8:58:25 AM Document presentation format – PowerPoint PPT presentation

Number of Views:69
Avg rating:3.0/5.0
Slides: 52
Provided by: Andreas299
Category:
Tags: mysql | ws06

less

Transcript and Presenter's Notes

Title: WS06/07


1
Übung 2
  • Interaktive Abfragen auf eine Firebird-Datenbank
    unter Verwendung der IBOConsole

2
Ü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

3
Übersicht zum Entwurf einer DB
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
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

6
Beispiel eines ER-Modells
Quelle Heuer, A. et al Datenbanken kompakt,
mitp-Verlag, Bonn 2003
7
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).

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

9
Beispiele für Datenbank-Management-Systeme
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

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)

12
Oracle(hier der Enterprise Manager)
13
SQL Server(hier der Enterprise Manager)
14
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

15
Firebird-DBMS(hier IBOConsole)
16
SQL-Anweisungen in der Übersicht
17
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)

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

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

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

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)

22
Vergleichsoperatoren
Operator Bedeutung
Equal to
gt Greater than
gt Greater than or equal to
lt Less than
lt Less than or equal to
ltgt Not equal to
23
SELECT FROM WHEREder SFW-Block
24
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

25
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

26
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 Berlin Probsthof 9 030 634 5685
100 Wipprecht Michael 38855 Wernigerode Schillerstr. 7 03943 62 75 11
104 Dimitrov Evgeni 38855 Wernigerode 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 Berlin Probsthof 9 030 634 5685
27
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 Berlin Probsthof 9 030 634 5685
100 Wipprecht Michael 38855 Wernigerode Schillerstr. 7 03943 62 75 11
104 Dimitrov Evgeni 38855 Wernigerode 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
28
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 Berlin Probsthof 9 030 634 5685
100 Wipprecht Michael 38855 Wernigerode Schillerstr. 7 03943 62 75 11
104 Dimitrov Evgeni 38855 Wernigerode 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
29
Umgang mit der IBOConsole
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

31
Anmeldeprozedur
  • Benutzername
  • SYSDBA
  • Kennwort
  • masterkey
  • Datenbank verwenden
  • DB-Registrieren
  • DB-Anmeldung

32
Datenbank registrieren
33
Anmelden an der Datenbank
34
Neue Datenbank anlegen
35
Aufgabenstellungen im Labor
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

37
Anfragen in SQL - SELECT
  1. Wählen Sie alle Dateneinträge der vorhergehend
    mit Hilfe des Properties-Dialoges analysierten
    Tabellen aus.
  2. Wählen Sie aus der Tabelle DEPARTMENT die
    Attribute department, location und phone_no aus.
  3. 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.

38
Anfragen in SQL - SELECT
  1. Wählen Sie aus der Tabelle DEPARTMENT das
    Attribut location aus, verhindern Sie dabei die
    Ausgabe doppelter Tupel mittels der
    distinct-Anweisung.
  2. 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.

39
Daten einfügen - INSERT
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
    11.12.2005
  • Berücksichtigung von Abhängigkeiten zu anderen
    Tabellen!

41
Verbundoperationen (Join)
  1. Ermitteln Sie das Kreuzprodukt für die Relationen
    DEPARTMENT und EMPLOYEE. Wie viele Tupel (Zeilen)
    und Attribute (Spalten) enthält ihre
    Ergebnisrelation?
  2. 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?

42
Weiterführende Beispiele
43
Duplikatsunterdrückung mittels distinct
44
Beispiel UPDATE-Anweisung - vorher -
45
Beispiel UPDATE-Anweisung - nachher -
46
Beispiel DELETE-Anweisung
47
Beispiel INSERT-Anweisung
48
Beispiel Kreuzprodukt
49
Beispiel Natürlicher Verbund
50
Organisation
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 schmiete_at_fhw-berlin.
    de. In das "Betreff" (Subject)-Feld schreiben Sie
    bitte CS_ue2_gruppe_x "
Write a Comment
User Comments (0)
About PowerShow.com