Datenbanken im WI-Unterricht mit

Ähnliche Dokumente
Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Übersicht der wichtigsten MySQL-Befehle

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Praktische SQL-Befehle

Datenbanken. Zusammenfassung. Datenbanksysteme

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung

Relationales Datenbanksystem Oracle

SQL Data Manipulation Language (DML) und Query Language (QL)

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer

Abfragen (Queries, Subqueries)

SQL structured query language

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Kapitel 7: Referentielle Integrität

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Grundlagen von Datenbanken

Datenbanksysteme 2013

Dipl.-Hdl., Dipl.-Kfm. ACCESS 2007

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Es geht also im die SQL Data Manipulation Language.

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung }

4. Datenbanksprache SQL

Einführung SQL Data Definition Language (DDL)

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Üben von DDL und DML. Ergebnis:

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

Arbeiten mit ACCESS 2010

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Microsoft Access 2010 SQL nutzen

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten

ACCESS SQL ACCESS SQL

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

Kapitel 8: Datenintegrität

Sructred Query Language

Oracle 10g Einführung

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Medizininformatik Software Engineering

Folien php/mysql Kurs der Informatikdienste

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

Die Anweisung create table

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Übung ERM. Beispiel: Erstellung einer relationalen Datenbank

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT

Foreign Keys. MySQL 4, 5. Kapitel 16: Fremdschlüssel. Marcel Noe

Kapitel 3: Datenbanksysteme

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Es geht also um die sogenannte SQL- Data Definition Language.

C++ Anwendungskurs Tag 4: Datenbanken Daniela Horn Institut für Neuroinformatik Real-time Computer Vision

3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien

Erstellen und Verwalten von Tabellen

DB1. DB SQL-DQL 1 Mario Neugebauer

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Datenintegrität. Kapitel 5 1

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP

Management of Information Systems. Tutorat: Session 3 Einführung in SQL

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Inhaltsverzeichnis. Einleitung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Datenbanksysteme SS 2007

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

Kurzanleitung ERwin V Kurzanleitung Erwin

Tag 2 Inhaltsverzeichnis

Logischer Entwurf. Stufen der Entwicklung einer Datenbank. Inhalt. Übersicht. 1. Datenbank - Entwurf ( ER - Diagramm)

4.14 Integrität und Trigger

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Schnellübersichten. SQL Grundlagen und Datenbankdesign

SQL. Datendefinition

zu E 1 der Form (0, 1) erfüllen.

Im Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird:

Datenintegrität. Kapitel 5 1

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Übung 01 Tabellen erstellen

Visualisierung in Informatik und Naturwissenschaften

Transkript:

Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................ 2 2 Logisches Tabellen- oder Relationenmodell 2 2.1 Transformationsregeln......................................... 2 2.2 Am Beispiel............................................... 3 3 Implementierung in einer Relationalen Datenbank 3 4 SQL - Structured Query Language 4 4.1 Datenbankstruktur bearbeiten..................................... 4 4.1.1 Create - Erstellen........................................ 4 4.1.2 Alter - Ändern.......................................... 4 4.1.3 Drop - Löschen......................................... 4 4.2 Daten berarbeiten............................................ 4 4.2.1 Insert - Einfügen........................................ 5 4.2.2 Update - Ändern........................................ 5 4.2.3 Delete - Löschen........................................ 5 4.3 Daten abfragen............................................. 5 5 Die wichtigsten Funktionen des DB Browser for SQLite 5 Vorbemerkungen Im Unterricht sollen die Grundlagen der Datenbankverarbeitung am Beispiel der relationalen Datenbank behandelt werden. Dazu zählen die Entwicklung eines Entity-Relationship-Modells, dessen Überführung in Tabellen einer Datenbank und die Bearbeitung dieser Datenbank mittels der Sprache SQL. Als Datenbankmanager wird SQLite 1 genutzt. Dieser ist nach eigenen Angaben das am meisten eingesetzte Datenbanksystem. Da es eine Datenbank in einer Datei verwaltet, wird es gerne in Web-Anwendungen und auch Apps eingesetzt. Auch ist eine spätere Einbindung in Java-Projekte im Unterricht recht einfach zu implementieren. Allerdings unterstützt SQLite nicht den vollständigen Befehlssatz von SQL 92, was im Unterricht allerdings zu keinerlei Einschränkungen führt. 1 ER-Modell - Entity Relationship Modell Ein ER-Modell dient der graphischen Darstellung von Entitäten (= Objekten), deren Attribute (= Eigenschaften) und deren Beziehung untereinander. 1 Homepage https://sqlite.org 2019 Michael Heinen - 17. Mai 2019 1

1.1 Entitäten In diesem Diagramm 2 sind verschiedene Entitäten dargestellt. Im oberen teil steht der Name der Entitätsmenge (in OO der Klasse), darunter die Attribute (in OO sind dies die Instanzvariablen). Die unterstrichenen Attribute sind Schlüsselattribute. Diese Diagramme ähneln den Klassendiagrammen. Auffälligster Unterschied sind die fehlenden Methoden. Schüler beschreibt genauer eine Entitätsmenge, die einzelnen Schüler sind dann die Entitäten dieser Menge mit ihren Attributen wie SName = Schülername und Adresse. 1.2 Relationen Vervollständigt wird das Diagramm durch die Beziehungen (= Relations). Schüler Klasse Lehrer SName besucht Klasse... unterrichtet in LName o.. n 1..1 o.. m o.. n Adresse Raum Fachl Fach2 Die Leseweise beginnt immer mit einer Entität. Hier die verbale Beschreibung des obigen Beispiels. Ein Schüler 3 besucht 1 bis 1 also genau eine Klasse. Umgekehrt sind in einer Klasse 0 bis n also keiner bis viele Schüler. In einer Klasse unterrichten 0 bis n also keiner bis viele Lehrer. Ein Lehrer unterrichtet in 0 bis m also keiner bis vielen Klasse(n). 2 Logisches Tabellen- oder Relationenmodell Der nächste Schritt überführt das validierte ER-Modell in das logisches Tabellenmodell. In diesem wird beschrieben, wie die zu erstellenden Tabellen aussehen müssen. 2.1 Transformationsregeln Die Transformation läuft unter folgenden Regeln ab: 1. Jede Entität wird zu einer Tabelle. Die Attribute sind die Spalten der Tabelle. 2. Beziehungen Bei den Kardinalitäten ist nur die zweite Kardinalitäts-Angabe..1,..n oder..m von Bedeutung. 1:n (hier Klasse zu Schüler ) wird wie folgt umgesetzt: Der Schlüssel der Detailtabelle (1 bzw. Klasse) wird Fremdschlüssel und damit weiteres Attribut der n- Tabelle (Schüler). (umgekehrt macht keinen Sinn!) n:m (hier Lehrer zu Klasse ) wird zu einer neuen Tabelle mit den Schlüsseln der beteiligten Tabellen als zusammengesetzter Primärschlüssel. 2 Die Diagramme sind mit UMLet (http://www.umlet.com) erstellt worden. 3 Im gesamten Text wird immer die männliche Grundform der leichteren Lesbarkeit wegen verwendet. Es sind aber immer alle Geschlechter damit gemeint. 2019 Michael Heinen - 17. Mai 2019 2

2.2 Am Beispiel Diese Transformation wird nun an obigem Beispiel durchgeführt werden. Regel 1: Schüler(SName 4, Adresse) Klasse(Klasse, Raum) Lehrer(LName, Fach1, Fach2) Regel 2.1: (1:n-Beziehungen): Schüler(SName, Adresse, Klasse# 5 ) Klasse(Klasse, Raum) Lehrer(LName, Fach1, Fach2) Regel 2.2: n:m-beziehungen): Schüler(SName, Adresse, Klasse# ) Klasse(Klasse, Raum) Lehrer(LName, Fach1, Fach2) LehrerKlasse(LName#, Klasse#) 6 oder mit anderen Namen Unterricht(LName#, Klasse#) Auch dieses kann wieder in einem (ER-ähnlichen!) Diagramm dargestellt werden. Wichtig ist hier, dass nun keine m:n-beziehungen aufgelöst werden müssen und für alle 1:n-Beziehungen die Fremdschlüssel vorhanden sind. Ohne diese Fremdschlüssel sind die Tabellen nicht untereinander logisch verbunden. Diese Diagramme sieht man auch im Beziehungsfenster von MS Access. 3 Implementierung in einer Relationalen Datenbank Mit Hilfe der SQL können diese Tabellen nun auch in einer Datenbank erzeugt werden. Dazu sollten alle Namen nur mit ANSI-Zeichen (also insbesondere ohne Umlaute) und in Kamelhöcker -Schreibweise dargestellt werden und - falls nicht vorgegeben - mit sinnvollen Datentypen ergänzt werden. Dies könnte beispielsweise so aussehen. Die genaue Syntax kann dem folgenden Kapitel entnommen werden. CREATE TABLE " Schueler " ( "SName" TEXT, " Adresse " TEXT, " Klasse " TEXT, PRIMARY KEY( "SName" ) CREATE TABLE " Klasse " ( " Klasse " TEXT, " F i e l d 2 " INTEGER, PRIMARY KEY( " Klasse " ) 4 Schlüsselattribute werden unterstrichen dargestellt 5 Fremd-Schlüsselattribute werden durch # gekennzeichnet 6 Diese Tabelle (oder Entität) existiert nur, wenn ein Lehrer in einer Klasse unterrichtet. Daher nennt man dies Art von Entität auch schwache Entität oder weak entity. 2019 Michael Heinen - 17. Mai 2019 3

CREATE TABLE " U n t e r r i c h t " ( "LName" TEXT, " Klasse " TEXT, PRIMARY KEY( " LName ", " Klasse " ) CREATE TABLE " Lehrer " ( "LName" TEXT, " Fach1 " TEXT, " Fach2 " TEXT, PRIMARY KEY( " LName " ) Die Fremdschlüssel-Beziehungen werden später noch präziser definiert (Stichwort Referentielle Integrität ). 4 SQL - Structured Query Language Die Syntax der einzelnen Befehle ist hier für den Unterricht reduziert angegeben. SCHLÜSSELWORTE sind in Großbuchstaben und Variable oder Werte in kursiver Schrift dargestellt. Optionale Angaben sind in eckigen Klammern [optional] aufgeführt, Alternativen durch einen senkrechten Strich getrennt. Alle Befehle sind detaillierter unter https://www.sqlitetutorial.net/ zu finden. 4.1 Datenbankstruktur bearbeiten Diese Sprachelemente dienen zum Bearbeiten der Struktur der Datenbank, d. h. zum Anlegen, Ändern und Löschen von Datenbanken und Tabellen sowie weiteren Elementen. Die Befehle gehören zur Untergruppe Data Definition Language - DDL. 4.1.1 Create - Erstellen CREATE TABLE [ IF NOT EXITS ] Tabellenname ( Attributname Typ [NOT NULL ],..., [PRIMARY KEY( Attributname,.... ), ] [FOREIGN KEY ( Attributname ) REFERENCES Tabellenname ( Attributname ) ] [ON UPDATE Aktion ] [ON DELETE Aktion ] Als Typ stehen TEXT, BLOB, INTEGER, REAL, NUMERIC zur Verfügung. Als Aktion stehen SET NULL, SET DEFAULT, RESTRICT, CASCADE und NO ACTION zur Verfügung. 4.1.2 Alter - Ändern ALTER TABLE Tabellenname [RENAME TO NeuerTabellenName ] oder [ADD COLUMN Attributname Typ ] ; 4.1.3 Drop - Löschen DROP TABLE [ IF EXISTS ] Tabellenname ; 4.2 Daten berarbeiten Diese Sprachelemente dienen zum Bearbeiten des Inhalts von Tabellen, d. h. zum Einfügen, Ändern und löschen von Zeilen in einer Tabelle. Diese Befehle gehören zur Untergruppe Data Manipulation Language - DML. 2019 Michael Heinen - 17. Mai 2019 4

4.2.1 Insert - Einfügen INSERT INTO Tabellenname Attributname,... ) VALUES ( NeuerWertVonAttribut,.... ) [WHERE Bedingung ] ; 4.2.2 Update - Ändern UPDATE Tabellenname SET Attributname = NeuerWert [WHERE Bedingung ] ; 4.2.3 Delete - Löschen DELETE FROM Tabellenname [WHERE Bedingung ] ; 4.3 Daten abfragen Der SELECT- Befehl wird auch schon einmal einer eigenen Kategorie DQL (Data Query Language) meistens jedoch auch der DML zugeordnet. Dieser Befehl wird wohl am häufigsten verwendet. SELECT [ ALL DISTINCT ] * Attributname oder Formel [AS A l i a s ] Aggregatfunktion (... ),... FROM TABLE Tabellenname [ A l i a s ],... [WHERE Bedingung ] [GROUP BY Attributname oder Alias,... [ HAVING Bedingung ] ] [ORDER BY Attributname oder Alias,... [ASC DESC] ] ; Aggregatfunktionen sind COUNT(...), SUM(...), AVG(...), MAX(..) oder MIN(...). 5 Die wichtigsten Funktionen des DB Browser for SQLite Das im Unterricht zur Bearbeitung von SQLite-Datenbanken verwendete Programm kann unter https://sqlitebrowser. org/ heruntergeladen werden. Die Datenbank in diesem System besteht immer nur aus einer Datei gewöhnlich mit der Endung db. Man kann auch ganze Projekte inklusive Abfragen als sqbpro -Datei sichern. Die Datenbank wird aber nur als Link in der Projektdatei gespeichert. In einer geöffneten Datenbank kann man sich leicht einen Überblick über die Struktur verschaffen. Hier können auch Tabellen angelegt, verändert bzw. gelöscht werden, ohne SQL einzusetzen. Über den Reiter Daten durchsuchen verschafft man sich einen Überblick über den Inhalt der einzelnen Tabellen. Dies entspricht der Ausgabe des Befehls SELECT * from Tabellenname;. 2019 Michael Heinen - 17. Mai 2019 5

Im SQL-Fenster stehen alle SQL-Befehle zur Verfügung. Mit 1. erzeugt man ein neues SQL-Eingabefenster, mit 2. werden alle Befehle im Fenster hintereinander ausgeführt und mit 3. wird der Befehl ausgeführt, in dem der Cursor gerade steht. Dies entspricht dann einem Skript z. B. zum Anlegen einer Datenbank. Weitere Möglichkeiten finden Sie in der Hilfefunktion des Programms. Und viele SQL-Beispiele sind unter https: //www.sqlitetutorial.net/ zu finden. 2019 Michael Heinen - 17. Mai 2019 6