Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "1 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Übung 2 Interaktive Abfragen auf eine Firebird-Datenbank unter Verwendung der IBOConsole."—  Präsentation transkript:

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

2 2 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 Übersicht zur Übung

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

4 4 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 5 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 6 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Beispiel eines ER-Modells Quelle: Heuer, A. et al: Datenbanken kompakt, mitp-Verlag, Bonn 2003

7 7 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 8 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 9 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Beispiele für Datenbank-Management- Systeme

10 10 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 Beispiele konkreter DBMS I

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

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

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

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

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

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

17 17 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 18 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 19 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 20 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 21 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 22 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Vergleichsoperatoren OperatorBedeutung =Equal to >Greater than >=Greater than or equal to Not equal to

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

24 24 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 25 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 26 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung SQL-Anfrage auf einzelne Tabelle KNrNameVornamePLZOrtStrasseTelefon 101MeyerJoachim13509BerlinWittestr SchmidtReiner12487BerlinProbsthof WipprechtMichael38855WernigerodeSchillerstr DimitrovEvgeni38855WernigerodeLindenstr ……………… KNrNameVornamePLZOrtStrasseTelefon 101MeyerJoachim13509BerlinWittestr SchmidtReiner12487BerlinProbsthof Tabelle: Kunde select * from Kunde where Ort = Berlin Zeige alle Kunden die In Berlin wohnen.

27 27 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung SQL-Anfrage auf einzelne Tabelle KNrNameVornamePLZOrtStrasseTelefon 101MeyerJoachim13509BerlinWittestr SchmidtReiner12487BerlinProbsthof WipprechtMichael38855WernigerodeSchillerstr DimitrovEvgeni38855WernigerodeLindenstr ……………… NameVornameTelefon MeyerJoachim SchmidtReiner Tabelle: Kunde select Name, Vorname, Telefon from Kunde where PLZ = Zeige Name, Vorname und Telefon aller Kunden welche die PLZ haben

28 28 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung SQL-Anfrage auf einzelne Tabelle KNrNameVornamePLZOrtStrasseTelefon 101MeyerJoachim13509BerlinWittestr SchmidtReiner12487BerlinProbsthof WipprechtMichael38855WernigerodeSchillerstr DimitrovEvgeni38855WernigerodeLindenstr ……………… KNrNameVornamePLZOrtStrasseTelefon 102SchmidtReiner12487BerlinProbsthof Tabelle: Kunde select * from Kunde where Name = Schmidt Zeichenketten und Datumswerte Werden in Anführungszeichen gesetzt.

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

30 30 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 31 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Anmeldeprozedur Benutzername -SYSDBA Kennwort -masterkey Datenbank verwenden -DB-Registrieren -DB-Anmeldung

32 32 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Datenbank registrieren

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

34 34 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Neue Datenbank anlegen

35 35 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Aufgabenstellungen im Labor

36 36 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 37 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 ist.

38 38 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Anfragen in SQL - SELECT 4.Wählen Sie aus der Tabelle DEPARTMENT das Attribut location aus, verhindern Sie dabei die Ausgabe doppelter Tupel mittels der distinct-Anweisung. 5.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 39 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Daten einfügen - INSERT

40 40 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Daten einfügen - INSERT 6.Fügen Sie in die Tabelle COUNTRY weitere 3 Länder und die entsprechenden Währungseinheit ein. 7.Prüfen Sie nach Eingabe eines weiteren Landes den Inhalt der Tabelle COUNTRY mittels select-Anweisung. 8.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!

41 41 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Verbundoperationen (Join) 9.Ermitteln Sie das Kreuzprodukt für die Relationen DEPARTMENT und EMPLOYEE. Wie viele Tupel (Zeilen) und Attribute (Spalten) enthält ihre Ergebnisrelation? 10.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 42 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Weiterführende Beispiele

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

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

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

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

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

48 48 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Beispiel: Kreuzprodukt

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

50 50 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Organisation

51 51 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung 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 "


Herunterladen ppt "1 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Übung 2 Interaktive Abfragen auf eine Firebird-Datenbank unter Verwendung der IBOConsole."

Ähnliche Präsentationen


Google-Anzeigen