510 likes | 715 Vues
Übung 2. Interaktive Abfragen auf eine Firebird-Datenbank unter Verwendung der IBOConsole. Ü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
E N D
Übung 2 Interaktive Abfragen auf eine Firebird-Datenbank unter Verwendung der IBOConsole 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 Prof. Dr. Andreas Schmietendorf
Übersicht zum Entwurf einer DB 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 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 Prof. Dr. Andreas Schmietendorf
Beispiel eines ER-Modells Quelle: Heuer, A. et al: Datenbanken kompakt, mitp-Verlag, Bonn 2003 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). 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) Prof. Dr. Andreas Schmietendorf
Beispiele für Datenbank-Management-Systeme 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 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) Prof. Dr. Andreas Schmietendorf
Oracle(hier der Enterprise Manager) Prof. Dr. Andreas Schmietendorf
SQL Server(hier der Enterprise Manager) 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 Prof. Dr. Andreas Schmietendorf
Firebird-DBMS(hier IBOConsole) Prof. Dr. Andreas Schmietendorf
SQL-Anweisungen in der Übersicht 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) 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 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 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 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) Prof. Dr. Andreas Schmietendorf
Vergleichsoperatoren Prof. Dr. Andreas Schmietendorf
SELECT … FROM … WHEREder SFW-Block 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 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 Prof. Dr. Andreas Schmietendorf
SQL-Anfrage auf einzelne Tabelle Tabelle: Kunde select * from Kunde where Ort = ‚Berlin‘ Zeige alle Kunden die In Berlin wohnen. Prof. Dr. Andreas Schmietendorf
SQL-Anfrage auf einzelne Tabelle Tabelle: Kunde select Name, Vorname, Telefon from Kunde where PLZ = 38855 Zeige Name, Vorname und Telefon aller Kunden welche die PLZ 38855 haben Prof. Dr. Andreas Schmietendorf
SQL-Anfrage auf einzelne Tabelle Tabelle: Kunde select * from Kunde where Name = ‚Schmidt‘ Zeichenketten und Datumswerte Werden in Anführungszeichen gesetzt. Prof. Dr. Andreas Schmietendorf
Umgang mit der IBOConsole 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 Prof. Dr. Andreas Schmietendorf
Anmeldeprozedur • Benutzername • SYSDBA • Kennwort • masterkey • Datenbank verwenden • DB-Registrieren • DB-Anmeldung Prof. Dr. Andreas Schmietendorf
Datenbank registrieren Prof. Dr. Andreas Schmietendorf
Anmelden an der Datenbank Prof. Dr. Andreas Schmietendorf
Neue Datenbank anlegen Prof. Dr. Andreas Schmietendorf
Aufgabenstellungen im Labor 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 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. 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. Prof. Dr. Andreas Schmietendorf
Daten einfügen - INSERT 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! 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? Prof. Dr. Andreas Schmietendorf
Weiterführende Beispiele Prof. Dr. Andreas Schmietendorf
Duplikatsunterdrückung mittels distinct Prof. Dr. Andreas Schmietendorf
Beispiel: UPDATE-Anweisung - vorher - Prof. Dr. Andreas Schmietendorf
Beispiel: UPDATE-Anweisung - nachher - Prof. Dr. Andreas Schmietendorf
Beispiel: DELETE-Anweisung Prof. Dr. Andreas Schmietendorf
Beispiel: INSERT-Anweisung Prof. Dr. Andreas Schmietendorf
Beispiel: Kreuzprodukt Prof. Dr. Andreas Schmietendorf
Beispiel: Natürlicher Verbund Prof. Dr. Andreas Schmietendorf
Organisation Prof. Dr. Andreas Schmietendorf