Daten verwalten mit einer relationalen Datenbank

Größe: px
Ab Seite anzeigen:

Download "Daten verwalten mit einer relationalen Datenbank"

Transkript

1 Verwaltung und Analyse digitaler Daten in der Wissenschaft Daten verwalten mit einer relationalen Datenbank Theorieteil Inhaltsverzeichnis 1 Herausforderung bei der Arbeit mit digitalen Daten 3 2 Grenzen von Datenlisten 3 3 Prinzip einer relationalen Datenbank Normalisierung einer Datenliste Beziehungstypen zwischen zwei Tabellen Die Datenbanksprache SQL Tabellen anlegen und Daten eingeben mit SQL Tabellen anlegen Daten einfügen Abfragen mit SQL Abfragen über eine einzelne Tabelle Abfragen über mehrere Tabellen Verknüpfung von Tabellen mit WHERE statt JOIN...ON Weitere SQL-Konstrukte Hinweise zum Vorgehen 15

2 Begriffe Datenliste Datenbank Tabellen Spaltenüberschriften Zeilen Beziehung Beziehungstyp Primärschlüssel Fremdschlüssel Normalisierung Tabellenschema Referentielle Integrität Redundanz Relationale Operatoren Logische Operatoren SQL Autoren: Markus Dahinden, Lukas Fässler, Oliver Probst, David Sichau Datum: 07 August 2017 Version: 2.0 Hash: a9ee87a Trotz sorgfältiger Arbeit schleichen sich manchmal Fehler ein. Die Autoren sind Ihnen für Anregungen und Hinweise dankbar! Dieses Material steht unter der Creative-Commons-Lizenz Namensnennung - Nicht kommerziell - Keine Bearbeitungen 4.0 International. Um eine Kopie dieser Lizenz zu sehen, besuchen Sie 2

3 1 Herausforderung bei der Arbeit mit digitalen Daten Bei wissenschaftlichen Tätigkeiten werden grosse Mengen digitaler Daten erfasst, modifiziert, visualisiert und archiviert. Dabei ist es eine Herausforderung, die Daten so abzulegen, dass mehrere Personen gleichzeitig darauf zugreifen und die Daten flexibel und effizient weiterverarbeiten können. Bei der Speicherung von Daten sind in der Praxis zwei Systeme vorherrschend: Datenlisten und Datenbanken. 2 Grenzen von Datenlisten Vielleicht haben Sie schon grosse Datenlisten mit einer Tabellenkalkulation (wie z.b. Microsoft Excel oder LibreOffice Calc) bearbeitet und dabei festgestellt, dass diese ab einer gewissen Länge und Breite unübersichtlich werden. Darüber hinaus sind oft einzelne Einträge mehrfach ( redundant ) vorhanden, so dass Änderungen an vielen Orten vorgenommen werden müssen (z.b. mittels Suchen und Ersetzen ). Mit jedem redundanten Eintrag steigt nicht nur der Aufwand für die Datenverwaltung, sondern es wird auch unnötig Speicherplatz verbraucht und bei Manipulationen der Daten steigt das Risiko von Inkonsistenzen. Ein Beispiel einer Datenliste mit redundaten Daten sehen Sie in Tabelle 1. Lebensmittel Kategorie Inhaltsstoff Menge Apfel Obst Calcium (in mg) 5.02 Apfel Obst Fett (in g) 0.3 Birne Obst Calcium (in mg) 10 Birne Obst Fett (in g) 0.3 Poulet Geflügel Calcium (in mg) 14 Poulet Geflügel Fett (in g) 5.92 Tabelle 1: Viele Einträge dieser Nährwerttabelle sind redundant vorhanden. Die Schweizerische Nährwertdatenbank weist Lebensmittel und 105 Inhaltsstoffe auf. 1 Würde man diese Daten als Liste in obiger Form exportieren, bestünde die Tabelle aus mehr als 1.1 Millionen Zeilen. Eine solch grosse Anzahl Redundanzen verunmöglicht eine effiziente Arbeitsweise (stellen Sie sich vor, Sie müssten an Stellen in dieser Tabelle die Übersetzung einer Lebensmittelkategorie abändern). Einfacher und sicherer wäre es, wenn die verschiedenen Kategorien redundanzfrei in einer separaten Tabelle gespeichert wären und mittels Verweisen sichergestellt wäre, dass die Lebensmittel weiterhin die korrekte Kategorie aufweisen. Genau das erlauben Datenbanksysteme (auch Datenbankmanagementsystem DMS genannt)

4 3 Prinzip einer relationalen Datenbank Das Prinzip einer relationalen Datenbank ist die Aufteilung einzelner Datensätze in logische Einheiten (Tabellen). Tabellen besitzen Spalten mit Spaltenüberschriften (auch Attribute genannt) und eine beliebige Anzahl an Zeilen. Diese Aufteilung (Normalisierung) muss verlustfrei sein, das heisst, ein nachträgliches Zusammenführen aller Tabellen muss wieder zur ursprünglichen Datenliste führen. Damit dies funktioniert, werden Schüssel-Spalten verwendet. Man unterscheidet zwischen Primär- und Fremdschlüsseln. Ein Primärschlüssel bezeichnet eindeutig eine einzelne Zeile in einer Tabelle. Eine Voraussetzung dafür ist, dass jeder Wert des Primärschlüssels in dieser Tabelle nur einmal vorkommt und ein gelöschter Schlüssel niemals wieder verwendet wird. Ein Fremdschlüssel hingegen darf mehrfach in einer Tabelle vorkommen. Er wird immer dann verwendet, wenn zwei voneinander abhängige Daten in eigene Tabellen ausgelagert werden. Dabei bleibt der Primärschlüssel der einen Tabelle als Fremdschlüssel in der anderen Tabelle erhalten (siehe Tabelle 2). In der Praxis kann es auch vorkommen, dass sich ein Primärschlüssel aus mehreren Spalten zusammensetzt. Man spricht dabei von einem zusammengesetzten Primärschüssel (ein Beispiel sehen Sie im Abschnitt Beziehungstypen zwischen zwei Tabellen ). Klasse Familie Id Name ref_id Name 1 Vögel 1 Pinguine 2 Reptilien 1 Pelikane 3 Säugetiere 3 Kängurus 2 Alligatoren Klasse Vögel Vögel Säugetiere Reptilien Familie Pinguine Pelikane Kängurus Alligatoren Tabelle 2: Das Prinzip von Primär- und Fremdschlüssel illustriert am Beispiel der Systematik von Tieren. Gegeben sind zwei Tabellen Klasse und Familie. Id stellt einen Primär- und ref_id einen Fremdschlüssel dar. Auf der rechten Seite ist die ursprüngliche Datenliste abgebildet. Sie lässt sich mit Hilfe der Schlüssel-Spalten wiederherstellen. Id ist ein in relationalen Datenbanken weit verbreiteter Kurzbegriff für Identifikationsnummer. Diese ist, wie der Name vermuten lässt, meist ein Primärschlüssel. 3.1 Normalisierung einer Datenliste Bei der Aufteilung von Daten auf mehrere Tabellen gibt es verschiedene mögliche Lösungen. Meist sind jedoch nur wenige davon auch tatsächlich praktikabel und sinnvoll. Das Verfahren der Normalisierung hilft, eine solche Lösung zu finden. Es hier im Detail zu beschreiben, würde den Rahmen dieses Theorieteils sprengen. Im Grundsatz lässt sich jedoch festhalten, dass die Normalisierung in zwei Schritten geschieht: Zunächst 4

5 wird die Datenliste in eine atomare Form gebracht, wobei zusammengesetzte Einträge in separate Zeilen getrennt werden. Anschliessend werden die redundant gespeicherten Daten in separate Relationen verschoben, so dass sie entfernt werden können. Unsere Nährwertdatenliste in Tabelle 1 liegt bereits in atomarer Form vor (Normalform 1, 1NF). In Tabelle 3 sehen Sie ein Beispiel einer nicht atomaren Datenliste. Lebensmittel Kategorie Inhaltsstoff Menge Apfel Obst Calcium (in mg) 5.02 Apfel, Birne Obst Fett (in g) 0.3 Birne Obst Calcium (in mg) 10 Poulet Geflügel Calcium (in mg) 14 Poulet Geflügel Fett (in g) 5.92 Tabelle 3: Der erste Schritt der Normalisierung ist noch nicht gemacht: die Werte der zweiten Zeile liegen nicht in atomarer Form vor und müssen zu zwei Zeilen erweitert werden (vergleiche Tabelle 1). Der zweite Normalisierungsschritt (2NF und 3NF) hat zum Ziel, die Daten in logische Gruppen aufzuteilen, um Redudanzen zu reduzieren. Dabei werden die Gruppen so gewählt, dass in jeder Datenliste alle Nicht-Schlüssel-Spalten von Schüssel-Spalten direkt abhängig sind. In der Umsetzung heisst das, dass jede Datenliste mindestens eine Schlüssel-Spalte braucht (Primär- oder Fremdschlüssel) und dass man vom Schlüssel eindeutig auf die ganze Zeile schliessen kann. Unsere Nährwert-Datenliste beinhaltet vier logische Gruppen: Lebensmittel, Kategorie, Inhalt und Menge. Die fertig normalisierten und in eine Tabelle übertragenen Daten sind in Tabelle 4 abgebildet. 3.2 Beziehungstypen zwischen zwei Tabellen In einer relationalen Datenbank unterscheidet man drei Beziehungstypen: 1:1, 1:N und N:M. 2 Die Zahl 1 deutet darauf hin, dass in der entsprechenden Tabelle nur genau ein Eintrag mit diesem Wert vorhanden ist (Primärschlüssel). Der Bezeichner N bedeutet hingegen, dass mehrere Zeilen mit dem gleichen Wert in der Tabelle vorhanden sein können (Fremdschlüssel). 3 Es gilt zu beachten, dass N:M -Beziehungen in relationalen Datenbanken nicht direkt, sondern nur mittels einer Zwischentabelle, die zwei 1 : N -Beziehungen herstellt, erstellt werden können. In Tabelle 4 stellt beispielsweise die Tabelle Menge eine Zwischentabelle dar: Ein Nahrungsmittel hat viele Inhaltsstoffe und 2 Eigentlich gibt es noch den N:1-Beziehungstyp, dies entspricht jedoch dem 1:N-Beziehungstyp umgekehrt zu gelesen. 3 Manchmal wird anstelle von N das Symbol oder auch M verwendet. 5

6 Lebensmittel Id Name Kategorie_Id 1 Apfel 1 2 Birne 1 3 Poulet 2 Kategorie Id Name 1 Obst 2 Geflügel Inhaltsstoff Id Name 1 Calcium (in mg) 2 Fett (in g) Lebensmittel_Inhaltsstoff Inhaltsstoff_Id Lebensmittel_Id Menge Tabelle 4: Die fertig normalisierten Nährwerttabellen. Alle logischen Gruppen sind in eigene Tabellen ausgelagert. Der Schüssel, von dem eine Spalte abhängig ist, wird Primärschlüssel in der neuen Tabelle (z.b. Id in der Tabelle Kategorie). In der Tabelle Lebensmittel_Inhaltsstoff gibt es keinen einzelnen Primärschüssel, stattdessen bilden die Spalten Inhaltsstoff_Id und Lebensmittel_Id einen zusammengesetzten Primärschüssel. 6

7 ein Inhaltsstoff kommt in vielen Nahrungsmitteln vor (1:N und N:1 N:M ). Die Beziehungstypen sind dann von Bedeutung, wenn wir Abfragen definieren, in denen Daten aus verschiedenen Tabellen zusammengeführt werden sollen. 4 Die Datenbanksprache SQL Um Tabellen in einer relationalen Datenbank zu erstellen oder Daten abzuspeichern respektive auszulesen, kommen Datenbanksprachen zum Einsatz. Dabei handelt es sich um klar strukturierte Textanweisungen, die sowohl für Computer als auch für Menschen verständlich sind. Die verbreitetste Abfragesprache für relationale Datenbanken ist SQL (Structured Query Language). Um mit Hilfe von SQL eine relationale Datenbank aufbauen zu können, benötigen Sie ein relationales Datenbanksystem. Dieses ist in der Lage, eine relationale Datenbank zu verwalten. Das System kann SQL-Befehl annehmen und verarbeiten. Neben der Verarbeitung von SQL hat das System noch weitere Aufgaben, wie zum Beispiel die Koordinierung gleichzeitiger Zugriffe von mehreren Benutzern. In diesem Modul werden Sie mit dem Programm DB Browser for SQLite und einer SQLite-Datenbank arbeiten. Das Programm DB Browser for SQLite stellt das Datenbankmanagementsystem dar, die relationale SQLite-Datenbank liegt in Form einer Datei vor. DB Browser for SQLite verfügt über eine grafische Oberfläche, um die Datenbank zu verwalten. Dies ist nicht für jedes Datenbanksystem gegeben. Jedoch verfügen relationale Datenbanksysteme über eine Möglichkeit, SQL-Befehle entgegenzunehmen. 4.1 Tabellen anlegen und Daten eingeben mit SQL Mit SQL können Nutzer Befehle formulieren, um eine Datenliste in eine relationale Datenbank zu übertragen. Viele Datenbanksysteme (wie zum Beispiel DB Browser for SQLite) bieten für diese Aufgabe auch einen grafischen Assistenten an. Sie werden in diesem Modul beide Möglichkeiten kennenlernen. Unabhängig von der gewählten Technologie muss zunächst die Tabellenstruktur definiert werden. Man spricht dabei vom Tabellenschema. Anschliessend können in die Tabelle Daten eingefügt werden Tabellen anlegen Für die Tabelle Klasse aus Tabelle 2 sieht das Tabellenschema in SQL wie folgt aus: CREATE TABLE Klasse ( Id INTEGER, Name TEXT, PRIMARY KEY(Id) ); 7

8 Mit dem Befehl CREATE TABLE wird zunächst der Tabellenname definiert. Im Beispiel ist dies Klasse. Anschliessend folgen zwei Zeilen, in denen je eine Spalte der Tabelle definiert wird. Eine Spaltendefinition besteht immer aus einem Spaltennamen und einem Datentyp. Der Datentyp bestimmt, welche Kategorie von Werten in der Spalte gespeichert werden darf. In der Spalte Id sollen nur Ganzzahlen gespeichert werden, deshalb wurde der Datentyp INTEGER (engl. Ganzzahl) verwendet. Die zweite Spalte verwendet den Datentyp TEXT, welcher es erlaubt, beliebigen Text einzufügen. Die letzte Zeile definiert den Primärschlüssel. Die Spalte Id wird als Primärschlüssel ausgewählt Daten einfügen Nachdem die Tabellenstruktur definiert und der entsprechende Befehl ausgeführt wurde, legt das Datenbanksystem die Tabellenstruktur in der relationalen Datenbank an. Es sind jedoch noch keine Daten in der Tabelle vorhanden. Mit folgendem SQL-Befehl können Sie eine Zeile in die Tabelle Klasse einfügen: INSERT INTO Klasse (Id, Name) VALUES (1, Vogel ); Zunächst muss der Name der Tabelle angegeben werden, in welcher die Zeile eingefügt werden soll. Anschliessend folgen die Spaltennamen der Tabelle. Im letzten Teil folgen die eigentlichen Werte der Zeile. Hierbei ist zu beachten, dass die Reihenfolge mit der Angabe der Spaltennamen übereinstimmen muss: Der erste Wert, im Beispiel 1, wird in die Spalte Id eingefügt, der zweite Wert, 'Vogel', wird in die Spalte Name eingefügt. Der Datentyp muss dabei übereinstimmen. Für Text müssen die einfachen Anführungszeichen verwendet werden. 4.2 Abfragen mit SQL Mit SQL können Nutzer Abfragen formulieren, wobei mittels relationalen und logischen Operatoren die gewünschten Zeilen gefiltert werden können. Eine Auflistung dieser Operatoren finden Sie in den Tabellen 5 und 6. Das Ergebnis einer relationalen Operation ist entweder true oder false, ebenso wie deren Verknüpfung mittels logischer Operatoren. SQL kann sowohl für Abfragen über eine einzelne Tabelle (nächster Abschnitt), als auch für Abfragen über mehrere durch Schlüssel-Spalten verknüpfte Tabellen verwendet werden (übernächster Abschnitt). Wichtig: Voraussetzung für eine erfolgreiche Abfrage ist die genaue Kenntnis der Datenbankstruktur ( Was sind die Schlüssel-Spalten?, Wie sind die Tabellen miteinander verknüpft? etc.). 8

9 Operator Beschreibung Beispiel Wert (wenn Id=4) > grösser als Id > 5 false < kleiner als Id < 10 true <> ungleich Id <> 0 true >= grösser oder gleich Id >= 4 true <= kleiner oder gleich Id <= 4 true Tabelle 5: Die häufigsten relationalen Operatoren, die in SQL-Abfragen Verwendung finden. Operator Beschreibung Beispiel Wert (wenn Id=4) AND logische UND-Verknüfpung Id > 5 AND Id < 10 false OR logische ODER-Verknüpfung Id > 5 OR Id < 10 true NOT logische NOT-Verknüpfung NOT Id > 5 true Tabelle 6: Die häufigsten logischen Operatoren, die in SQL-Abfragen Verwendung finden Abfragen über eine einzelne Tabelle Tabelle 7 zeigt ein Beispiel einer relationalen Datenbanktabelle Ablageort zur Erfassung von Farbe und Ablageort eines Objekts. Ablageort Nummer Farbe Ablage 1 blau Kiste 1 2 grün Kiste 2 3 rot Kiste 2 4 braun Kiste 3 Tabelle 7: Hier abgebildet ist die Tabelle Ablageort einer Datenbank, in der die Ablageorte von Objekten gespeichert sind. Die Spalte Nummer ist Primärschlüssel dieser Tabelle. Meist werden SQL-Abfragen, wie auch in diesem Modul, von Hand geschrieben. Einige Datenbankmanagementsysteme (wie z.b. Microsoft Access) bieten jedoch auch grafische Assistenten an, welche für einfache Abfragen ausreichend sind und im Hintergrund SQL- Code generieren. Abbildung 1 zeigt einen solchen Assistenten und den generierten SQL- Code. Rechts ist das Resultat der Abfrage abgebildet. Die Fragestellung lautet: Welche 9

10 Farbe haben die Objekte in Kiste 1? Abbildung 1: Beispiel eines Datenbankmanagementsystems mit grafischem Assistenten zur Eingabe von SQL-Code. Die SQL-Abfragen enthalten folgende drei Grundelemente: Die SELECT-Anweisung gibt die Spalten an, die im Resultat angezeigt werden sollen, die FROM-Anweisung gibt die Tabelle an, aus der die Daten bezogen werden sollen, mittels der optionalen WHERE-Anweisung kann das Resultat auf ausgewählte Zeilen eingeschränkt werden. Beispiel: SELECT Nummer FROM Ablageort WHERE Farbe = rot ; Resultat: Nummer 3 Wie Sie sehen, muss die im WHERE verwendete Spalte nicht zwingend auch im SELECT aufgeführt werden. 10

11 4.2.2 Abfragen über mehrere Tabellen Im folgenden Abschnitt wollen wir uns darauf konzentrieren, wie man Tabellen mit SQL verknüpft. Wir haben oben erfahren, dass die Stärke von relationalen Datenbanksystemen das Aufteilen grosser Tabellen ist. Um nun an Informationen zu gelangen, die sich über zwei oder mehr Tabellen erstrecken, muss die Verknüpfung in der SQL-Abfrage abgebildet werden. Dies wird mit der JOIN- oder der WHERE-Anweisung realisiert. Wir wollen diesen Vorgang nun schrittweise anhand eines Beispiels erläutern. Vorerst betrachten wir die Verknüpfung mittels JOIN, jene mit WHERE ist weiter unten beschrieben. Gegeben sind zwei Tabellen Lml (steht für Lebensmittel) und Kat (steht für Kategorie), die in einer 1:N -Beziehung stehen (siehe Tabelle 8): Lml (Lebensmittel) Kat (Kategorie) Id Name Kat_Id Id Name 1 Apfel 2 1 Gemüse 2 Banane 2 2 Obst 3 Blumenkohl 1 Tabelle 8: In der Tabelle Lml ist Id ein Primär- und kat_id ein Fremdschlüssel. Letzterer referenziert den Primärschlüssel Id in der Tabelle Kat. Beide Tabellen sind im Datenbanksystem abgespeichert und haben je mindestens eine Schlüssel-Spalte. Eine mögliche Verknüpfung dieser Tabellen sieht in SQL so aus: SELECT * FROM Lml JOIN Kat ON Lml.Kat_Id = Kat.Id; Beachten Sie, dass mit dem Wildcard -Zeichen (*) alle Spalten beider Tabellen ausgegeben werden. Um die Funktionsweise dieser Anweisungen zu verstehen, wollen wir die Abfrage schrittweise betrachten. Wir schauen uns erst den eigentlichen JOIN an: Lml JOIN Kat Dieser Befehl lässt das Datenbanksystem eine temporäre Tabelle erstellen, die aus dem Kreuzprodukt der Tabellen Lml und Kat besteht (siehe Tabelle 9). 4 Kreuzprodukt bedeutet, dass jede Zeile der Tabelle Lml mit jeder Zeile der Tabelle Kat verbunden wird. Tabelle 9 hat also 5 Spalten (drei aus der Tabelle Lml und zwei aus der Tabelle Kat) und 3 2 = 6 Zeilen (Anzahl Zeilen aus Lml Anzahl Zeilen aus Kat). Die Tabelle beinhaltet viele Einträge, die semantisch keinen Sinn ergeben. Dennoch ist sie das Beste, was das Datenbanksystem aus der Information Lml JOIN Kat machen 4 Die temporäre Tabelle wird nur im Arbeitsspeicher zwischengespeichert. Sobald die komplette Anweisung SELECT...FROM... abgearbeitet ist, wird die Tabelle wieder aus dem Arbeitsspeicher entfernt. 11

12 Temporäre Tabelle Lml.Id Lml.Name Lml.Kat_Id Kat.Id Kat.Name 1 Apfel 2 1 Gemüse 1 Apfel 2 2 Obst 2 Banane 2 1 Gemüse 2 Banane 2 2 Obst 3 Blumenkohl 1 1 Gemüse 3 Blumenkohl 1 2 Obst Tabelle 9: Ergebnis der JOIN-Anweisung. kann: Nämlich, jede Zeile der einen Tabelle mit jeder Zeile der anderen Tabelle zu verbinden (Kreuzprodukt). Wollen wir eine an die Bedeutung der Tabellen angepasste Verknüpfung erreichen, so müssen wir dem Datenbanksystem mehr Informationen zur Verfügung stellen. Dies geschieht über die ON-Anweisung: Lml JOIN Kat ON Lml.Kat_Id = Kat.Id Mit diesem Befehl ist das Datenbanksystem in der Lage, die korrekte Tabelle zu liefern: Nach dem Erstellen der Tabelle 9 wird diese Zeile für Zeile durchlaufen, und alle Einträge, die die Bedingung Lml.Kat_Id = Kat.Id nicht erfüllen, werden entfernt. Daraus ergibt sich die gewollte, sinnvoll verknüpfte Tabelle 10. Temporäre Tabelle Lml.Id Lml.Name Lml.Kat_Id Kat.Id Kat.Name 1 Apfel 2 2 Obst 2 Banane 2 2 Obst 3 Blumenkohl 1 1 Gemüse Tabelle 10: Ergebnis der JOIN-Anweisung. Wie wir oben angemerkt haben, existiert die resultierende Tabelle nur temporär im Arbeitsspeicher und auch nur solange, wie das Datenbanksystem sie braucht. Das heisst, wenn wir dem Datenbanksystem nur den Befehl Lml JOIN Kat ON Lml.Kat_Id = Kat.Id geben, dann wird Tabelle 10 im Arbeitsspeicher erstellt, aber direkt danach wieder gelöscht: Wir befehlen dem Datenbanksystem sozusagen nur das Erstellen der Tabelle. Sie wird aber nicht auf dem Bildschirm ausgegeben. Damit ergibt der obige Befehl so keinen 12

13 Sinn. Was wir eigentlich möchten, ist eine Abfrage der Tabelle. Wir wissen, dass Spalten einer Tabelle mittels der SELECT-Anweisung abgefragt werden können. Verbinden wir also jetzt die SELECT-Anweisung mit dem obigen Befehl, erhalten wir: SELECT * FROM Lml JOIN Kat ON Lml.Kat_Id = Kat.Id; Der Teil innerhalb der FROM-Anweisung erstellt die Tabelle im Arbeitsspeicher. Die SELECT-Anweisung angewandt auf diese Tabelle gibt den Inhalt auf dem Bildschirm aus. Wir verstehen jetzt also vollständig die Bedeutung unserer SQL-Abfrage. Erweiterungen der SELECT-Anweisungen sind natürlich möglich, wie zum Beispiel die Auswahl von bestimmten auszugebenen Spalten: SELECT Lml.Name, Kat.Name FROM Lml JOIN Kat ON Lml.Kat_Id = Kat.Id; Durch entsprechende Modifikation des SELECT-Befehls kann eine Untermenge aller Spalten abgefragt werden. Wie oben beschrieben, wird auch hier erst die temporäre Tabelle erstellt, aber dann werden nur die Spalten Lml.Name und Kat.Name ausgegeben (Tabelle 11). Temporäre Tabelle Lml.Name Apfel Banane Blumenkohl Kat.Name Obst Obst Gemüse Tabelle 11: Ergebnis der JOIN...ON-Anweisung mit SELECT und WHERE. Eine ebenfalls sehr häufig benutzte Funktion von SQL ist wie bereits erwähnt, die Limitierung der Ausgabe auf gewisse Zeilen. Dazu benutzt man die WHERE-Anweisung: SELECT Lml.Name, Kat.Name FROM Lml JOIN Kat ON Lml.Kat_Id = Kat.Id WHERE Kat.Id = 2; Diese Abfrage liefert Tabelle Verknüpfung von Tabellen mit WHERE statt JOIN...ON Statt des JOIN...ON kann auch die WHERE-Anweisung genutzt werden, um die Verknüpfung der Tabellen abzubilden. Aus Gründen der Lesbarkeit empfiehlt es sich aber, die Tabellen mittels JOIN...ON zu verknüpfen. Folgende SQL-Abfragen liefern exakt das gleiche Ergebnis: 13

14 Temporäre Tabelle Lml.Name Kat.Name Apfel Obst Banane Obst Tabelle 12: Ergebnis der JOIN...ON-Anweisung mit SELECT und WHERE. SELECT * FROM Lml JOIN Kat ON Lml.kat_Id = Kat.Id WHERE Kat.Id = 2; SELECT * FROM Lml, Kat WHERE Lml.Kat_Id = Kat.Id AND Kat.Id = 2; Weitere SQL-Konstrukte Wie Sie bisher gesehen haben, kann SQL dazu verwendet werden, die gewünschten Zeilen aus einer Datenbank auszulesen. Hierbei können auch Wildcard-Zeichen in Kombination mit LIKE in der WHERE-Anweisung verwendet werden. Das Prozent-Zeichen (%) steht für 0 bis viele beliebige Zeichen. Beispiel: Abfrage: Welche Nahrungsmittel haben ein n im Namen? SELECT Lml.Bezeichung FROM Lml WHERE Lml.Bezeichnung LIKE %n% ; Resultat: Lml.Bezeichnung Banane Blumenkohl Mittels der AS-Anweisung kann die Anzeige der Spaltenüberschriften festgelegt werden. Zudem kann die Funktion COUNT benutzt werden, um die Anzahl der gefundenen Datensätze zu bestimmen und auszugeben: 14

15 Beispiel: Namen? Abfrage: Wie viele Nahrungsmittel haben ein l als letzten Buchstaben im SELECT COUNT(Lml.Bezeichung) AS Anzahl_Lebensmittel FROM Lml WHERE Lml.Bezeichnung LIKE %l ; Resultat: Anzahl_Lebensmittel 2 SQL kann aber auch dazu verwendet werden, bestehende Zeilen zu verändern oder zu löschen. Statt mit SELECT beginnen diese SQL-Befehle mit UPDATE, DELETE oder INSERT. Diese SQL-Anweisungen sind jedoch nicht Inhalt dieses Moduls. 5 Hinweise zum Vorgehen Was gehört zu diesem Modul und was nicht? Das Erstellen einer sinnvollen Datenbank erfordert viel Wissen und Praxiserfahrung. Erwarten Sie deshalb nicht, dass Sie bereits nach diesem Kurs zum Datenbank-Experten werden. Der Einsatz von DB Browser for SQLite mit einer grafischen Oberfläche als Beispiel eines Datenbanksystems hat den Vorteil, dass Sie auch ohne Programmierkenntnisse an Probleme beim Erstellen und im Umgang mit Datenbanken herangeführt werden. Sie werden Schritt für Schritt eine Datenliste überführen und somit gewissermassen durch die Normalisierung der Datenliste geleitet. Anschliessend setzen Sie SQL ein, um Tabellen zu erstellen, Daten einzufügen und Abfragen durchzuführen. 15

Praxismodul. Daten verwalten mit einer relationalen Datenbank

Praxismodul. Daten verwalten mit einer relationalen Datenbank Departement Informatik Praxismodul Daten verwalten mit einer relationalen Datenbank Copyright 1996-2013 Departement Informatik, ETH Zürich. Gruppe Informationstechnologie und Ausbildung Prof. Dr. Juraj

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen:

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen: 1 Einführung in Datenbanksysteme Fast jeder kennt Excel und hat damit in seinem Leben schon einmal gearbeitet. In Excel gibt es Arbeitsblätter, die aus vielen Zellen bestehen, in die man verschiedene Werte

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 5. Daten verwalten Teil 2 mit MS Access

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 5. Daten verwalten Teil 2 mit MS Access Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 5 Daten verwalten Teil 2 mit MS Access Praxis 5 Daten verwalten (2) 2 Institut für Computational Science, ETH Zürich, 1996-2005

Mehr

1. Funktionen und Datenflüsse; Tabellenkalkulationssysteme

1. Funktionen und Datenflüsse; Tabellenkalkulationssysteme Grundwissen Informatik 1. und Datenflüsse; Tabellenkalkulationssysteme Zellbezug relativer Zellbezug absoluter Zellbezug iterative Berechnungen Datentypyen z. B. A4 A ist der Spaltenbezeichner 4 ist die

Mehr

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

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Access Grundkurs. M. Eng. Robert Maaßen

Access Grundkurs. M. Eng. Robert Maaßen Access Grundkurs M. Eng. Robert Maaßen Wer steht da? M. Eng. Robert Maaßen ich@robertmaassen.de www.robertmaassen.de Studium: Informatik Vertiefungsrichtung Medientechnik, Diplom Ingenieur (FH), HAWK,

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

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

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

4. Datenabfrage mit QBE 11

4. Datenabfrage mit QBE 11 Informationsbestände analysieren Datenabfrage mit QBE 4. Datenabfrage mit QBE 11 4.1. QBE vs. SQL Relationale Datenbanken haben schon früh den Anspruch gestellt, auch für Nicht- Informatiker nutzbar zu

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

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

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

Mehr

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

Inhaltsverzeichnis. jetzt lerne ich

Inhaltsverzeichnis. jetzt lerne ich Inhaltsverzeichnis jetzt lerne ich Einführung 15 1 Erste Schritte 21 1.1 Datenbanken und Datenbank-Managementsysteme 21 1.2 Zugriff auf Datenbanken 22 1.3 Was der Großvater noch wusste... 22 1.4 Einordnung

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 29. April 2013 - MySQL 2 Sebastian Cuy sebastian.cuy@uni-koeln.de Aufgaben Anmerkungen Best practice: SQL Befehle

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert Maika Büschenfeldt Datenbanken: Skript 1 1. Was ist eine relationale Datenbank? In Datenbanken können umfangreiche Datenbestände strukturiert abgelegt werden. Das Konzept relationaler Datenbanken soll

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Arbeiten mit ACCESS 2013

Arbeiten mit ACCESS 2013 Dipl.-Hdl., Dipl.-Kfm. Werner Geers Arbeiten mit ACCESS 2013 Datenbanken mit Datenmodellierung Tabellen, Abfragen, Formularen und Berichten Beziehungen Makros Datenaustausch SQL Structured Query Language

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Übung 1: Ein Website News-System mit MySQL

Übung 1: Ein Website News-System mit MySQL Übung 1: Ein Website News-System mit MySQL In der Vorübung haben wir bereits mit Hilfe eines ERMs den Datenbankentwurf erstellt und daraus die folgenden Tabellen abgeleitet: Nun muss diese Datenbank in

Mehr

Informatik Datenbanken SQL-Einführung

Informatik Datenbanken SQL-Einführung Informatik Datenbanken SQL-Einführung Gierhardt Inhaltsverzeichnis 1 Vorbemerkungen 1 2 Auswahl-Abfragen mit SELECT 2 2.1 Selektion...................................... 2 2.2 Projektion.....................................

Mehr

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

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken 2 7 Erweiterungen 7 Erweiterungen 7.1 Prozess-Kommunikation mit Datenbanken Im Buch Einstieg in das Programmieren mit MATLAB wird im Abschnitt 4.8 das Thema Prozess-Kommunikation am Beispiel von MS-Excel

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

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

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken 30 Wozu dient ein Primärschlüssel? Mit dem Primärschlüssel wird ein Datenfeld

Mehr

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus:

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus: Einführung in MySQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine relationale Datenbank kann man sich als eine

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

Mehr

Datenbanken. Ein DBS besteht aus zwei Teilen:

Datenbanken. Ein DBS besteht aus zwei Teilen: Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)

Mehr

2 Download und Installation des Programms 3 3 ERSTELLUNG EINES ERM-DIAGRAMMS 4. (c) Werner Geers 5 NUTZUNG DER SKRIPTE IN DATENBANKPROGRAMMEN 13

2 Download und Installation des Programms 3 3 ERSTELLUNG EINES ERM-DIAGRAMMS 4. (c) Werner Geers 5 NUTZUNG DER SKRIPTE IN DATENBANKPROGRAMMEN 13 Vorbemerkungen 1 Werner Geers Berufliche Informatik ISBN:978-3-427-60080-0 Bestellnr.:60080 Zusatzinformationen 1 ARBEITEN MIT XERDI 2 1.1 Vorbemerkungen 2 2 Download und Installation des Programms 3 2.1

Mehr

Besonders für den Anfänger empfiehlt sich folgende Vorgehensweise für die Erstellung von Manipulationsabfragen:

Besonders für den Anfänger empfiehlt sich folgende Vorgehensweise für die Erstellung von Manipulationsabfragen: Manipulationsabfragen Datenbanksysteme 6 Manipulationsabfragen Lerninhalte Tabellenerstellungsabfragen Löschabfragen Anfügeabfragen Aktualisierungsabfragen Lerninhalte Mit den Datenbanksprachen SQL und

Mehr

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL ) Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 6 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 1.12.2003 SQL-DDL und SQL-Anfragen

Mehr

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

U8: SQL Datenbank Daniel Baron 1

U8: SQL Datenbank Daniel Baron 1 U8: SQL Datenbank Daniel Baron 1 Allgemein Eine SQL Datenbank ist eine meist serverseitige Software, die Daten speichern und verwalten kann. Dabei werden diese Daten in Tabellen abgelegt und indiziert.

Mehr

2 Grundlagen in MySQL und phpmyadmin

2 Grundlagen in MySQL und phpmyadmin Kapitel 2 Grundlagen in MySQL und phpmyadmin Seite 1/22 2 Grundlagen in MySQL und phpmyadmin Bemerkung: Da die Schüler der 9. Jahrgangsstufe sich mit Datenbanken und Datenbankabfragen beschäftigt haben,

Mehr

Verwaltung großer Datenmengen auf einem Netzwerklaufwerk. Ein Vergleich zwischen MS-ACCESS und SQLite.

Verwaltung großer Datenmengen auf einem Netzwerklaufwerk. Ein Vergleich zwischen MS-ACCESS und SQLite. Verwaltung großer Datenmengen auf einem Netzwerklaufwerk. Ein Vergleich zwischen MS-ACCESS und SQLite. Was tun, wenn man als Entwickler eine Datenbank einsetzen will, aber keine SQL-Datenbank installieren

Mehr

Erstellen einer Datenbank. Datenbankabfragen

Erstellen einer Datenbank. Datenbankabfragen Erstellen einer Datenbank Datenbankabfragen Überblick Die fünf Stationen Semantisches Modell Logisches Modell Prüfung auf Redundanz Abfragen Softwaremäßige Implementierung Zur Erinnerung: Semantisches

Mehr

Datenbanken. Dateien und Datenbanken:

Datenbanken. Dateien und Datenbanken: Dateien und Datenbanken: Professionelle Anwendungen benötigen dauerhaft verfügbare, persistent gespeicherte Daten. Datenbank-Systeme bieten die Möglichkeit, Daten persistent zu speichern. Wesentliche Aspekte

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Whitepaper. Produkt: combit Relationship Manager 6. Import von Adressen nach Firmen und Kontakte. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager 6. Import von Adressen nach Firmen und Kontakte. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 6 Import von Adressen nach Firmen und Kontakte Import von Adressen nach Firmen und Kontakte - 2 - Inhalt Ausgangssituation

Mehr

Begleitskript. zum PHP/MySQL. Kurs

Begleitskript. zum PHP/MySQL. Kurs Begleitskript zum PHP/MySQL Kurs http://www.online-platform.net Dieser Text unterliegt der GNU General Public License. Er darf als ganzes oder in Auszügen kopiert werden, vorausgesetzt, dass sich dieser

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 SQLite als Datenbank-Managementsystem (DBMS) wenige 100 KB schlanke Programmbibliothek Aktuelle Version: 3.8.1 Für die

Mehr

ANLEITUNG VSGIS.CH. Erweiterter geschützter Bereich

ANLEITUNG VSGIS.CH. Erweiterter geschützter Bereich ANLEITUNG VSGIS.CH Erweiterter geschützter Bereich Rue de la Métralie 26 Autor: NS 3960 Sierre Mandat: 0933 Tel. 027 / 455 91 31 Version: 2.3 01.09.2014 info@rudaz.ch KURZANLEITUNG Der Zugang zum WebGIS

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 08. Exkurs: Datenbanken 1 Motivation Datenbanksysteme

Mehr

Grundkonzepte von SQL

Grundkonzepte von SQL Internet Praktikum im Grundstudium: Grundlagen von SQL Nutzung von phpmyadmin Dr. Guido Rößling Dipl.-Ing. Andreas Hartl Grundkonzepte von SQL Relationale Datenbanken basieren auf Tabellen Objektorientierte

Mehr

Einführung Datenbank

Einführung Datenbank Einführung Datenbank Einführung Datenbank Seite 2 Einführung in die Arbeit mit einer Datenbank Grundbegriffe: Datenbank - Datenbankmanagementsystem Eine Datenbank ist eine systematische strukturierte Sammlung

Mehr

Auswertung der Workload-Befragung mit MS ACCESS

Auswertung der Workload-Befragung mit MS ACCESS Auswertung der Workload-Befragung mit MS ACCESS Inhaltsverzeichnis 1. Aufbereitung der Daten... 2 1.1. Herstellung der Textfiles... 2 1.2. Import der Textdateien... 3 1.3. Verbindungen erstellen... 8 2.

Mehr

Als logisches Datenmodell wird hier das Relationenmodell vorgestellt, das heute den Standard für relationale Datenbanken darstellt.

Als logisches Datenmodell wird hier das Relationenmodell vorgestellt, das heute den Standard für relationale Datenbanken darstellt. Das Relationenmodell Logische Datenmodell Das Entity Relation Modell wird in ein logisches Datenmodell umgesetzt. Welches logische Datenmodell gewählt wird, hängt von dem verwendeten Datenbanksystem ab.

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Relationale Datenbanken Datenbankgrundlagen

Relationale Datenbanken Datenbankgrundlagen Datenbanksystem Ein Datenbanksystem (DBS) 1 ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern

Mehr

OM Datenbanken. OM Datenbanken. 8.1 Was ist ein Datenbanksystem? Motivation

OM Datenbanken. OM Datenbanken. 8.1 Was ist ein Datenbanksystem? Motivation 1 Inhalt: Relationale Datenbanken 8.1 Was ist ein Datenbanksystem? 8.2 Relationale Datenbanksysteme 8.3 Abbildung des objektorientierten Modells auf Tabellen 2 8.1 Was ist ein Datenbanksystem? Motivation

Mehr

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

Mehr

Hilfe zur Dokumentenverwaltung

Hilfe zur Dokumentenverwaltung Hilfe zur Dokumentenverwaltung Die Dokumentenverwaltung von Coffee-CRM ist sehr mächtig und umfangreich, aber keine Angst die Bedienung ist kinderleicht. Im Gegensatz zur Foto Galeria können Dokumente

Mehr

Mini-Workshop Relationale Datenbanken und SQL

Mini-Workshop Relationale Datenbanken und SQL SFB441 Linguistische Datenstrukturen Mini-Workshop Relationale Datenbanken und SQL Dirk Wiebel 14.07.2003 1.1 Der Begriff Datenbank "Eine Datenbank ist eine Sammlung von nicht-redundanten Daten, die von

Mehr

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

(Von der Nähe zur Distanz zum User geordnet)

(Von der Nähe zur Distanz zum User geordnet) Datebanken Was ist eigentlich eine Datenbank? Datenbanken, Datenhaltungsschicht und Datenbankensysteme (hier als Synonyme zu verstehen) finden viele unterschiedliche Anwendungsbereiche. Datenbanken kann

Mehr

ACCESS das Datenbankprogramm. (Aufbau) DI (FH) Levent Öztürk

ACCESS das Datenbankprogramm. (Aufbau) DI (FH) Levent Öztürk ACCESS das Datenbankprogramm Vom Microsoft (Aufbau) DI (FH) Levent Öztürk Inhalt Projektentwicklung Planung einer Datenbank Implementierung einer Datenbank Testen der Datenbank Formulare Berichte SQL-Abfragen

Mehr

1 Grundbegriffe...1. 2 Datenbanksysteme...7. 3 Entwicklung von Datenbanksystemen...15. Inhaltsverzeichnis. 1.1 Information und Daten...

1 Grundbegriffe...1. 2 Datenbanksysteme...7. 3 Entwicklung von Datenbanksystemen...15. Inhaltsverzeichnis. 1.1 Information und Daten... Inhaltsverzeichnis 1 Grundbegriffe...1 1.1 Information und Daten...2 1.2 Datenorganisation...3 1.3 Dateikonzept...5 1.4 Kontroll- und Vertiefungsfragen...6 2 Datenbanksysteme...7 2.1 Datenintegration...7

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten. Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme

Mehr

Einführung Datenbanken: Normalisierung

Einführung Datenbanken: Normalisierung Einführung Datenbanken: Normalisierung Für die Kursverwaltung einer VHS hat der Datenbank-Programmierer ein ER-Modell entworfen: Entitätstyp Entitäten Attribute Attributsausprägungen Kurse Teilnehmer Dozenten

Mehr

Arbeiten mit einem lokalen PostgreSQL-Server

Arbeiten mit einem lokalen PostgreSQL-Server Arbeiten mit einem lokalen PostgreSQL-Server Download für das Betriebssystem Windows PostgreSQL-Server und pgadmin: http://www.enterprisedb.com/products-servicestraining/pgdownload#windows pgadmin: http://www.pgadmin.org/download/windows.php

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht Adressen in eigene Solution combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager Integration der Ansicht "Adressen" in eigene Solution Integration der Ansicht "Adressen" in

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

Inhalt. 1. MySQL-Einführung 1. 2. Datenbankentwurf 27

Inhalt. 1. MySQL-Einführung 1. 2. Datenbankentwurf 27 Inhalt 1. MySQL-Einführung 1... 1.1 Geschichte von MySQL... 1 1.2 Entscheidungskriterien für MySQL... 2 1.3 Installation eines MySQL-Servers... 3 1.3.1 Linux... 5 1.3.2 Windows 9x/Me/NT/2000/XP... 7 1.3.3

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Rückblick Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Data Definition Language zur Schemadefinition (z.b. CREATE TABLE zum Anlegen von Tabellen) Data

Mehr

Im Fall einer Personaldatenbank würde eine Relation beispielsweise wie folgt aussehen:

Im Fall einer Personaldatenbank würde eine Relation beispielsweise wie folgt aussehen: Grundwissen zu relationalen Datenbanken Die Funktion einer relationalen Dankbank besteht in der elektronischen Verwaltung von Daten in Computersystemen. Die Basis für relationale Datenbanken bildet das

Mehr

Die Grundbegriffe Die Daten Die Informationen

Die Grundbegriffe Die Daten Die Informationen Die Grundbegriffe Die Daten sind diejenigen Elemente, die vom Computer verarbeitet werden. Die Informationen sind Wissenselemente, welche durch die Analyse von Daten erhalten werden können. Die Daten haben

Mehr

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten 5. SQL: Erstellen von Tabellen Erzeugen und Löschen von Tabellen Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten 106 SQL Structured Query Language Historie: Anfänge ca. 1974 als SEQUEL

Mehr

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing. PHP + MySQL Die MySQL-Datenbank Zusammenspiel Apache, PHP, PHPMyAdmin und MySQL PHPMyAdmin Verwaltungstool Nutzer Datei.php oder Datei.pl Apache HTTP-Server PHP Scriptsprache Perl Scriptsprache MySQL Datenbank

Mehr

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch 12.10.2010. Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung

Datenbanken. 5 Tabellen. Karl Meier karl.meier@kasec.ch 12.10.2010. Inhalt. Domänen verwenden Tabellen anzeigen, ändern, löschen Übung Datenbanken 5 Tabellen Karl Meier karl.meier@kasec.ch 12.10.2010 Tabellen erstellen en Integritätsregeln Inhalt Domänen verwenden Tabellen anzeigen, ändern, löschen Übung 2 1 Einfache Tabellen erstellen

Mehr

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

Mehr

Einführung in Datenbanksysteme. H. Wünsch 01.2001

Einführung in Datenbanksysteme. H. Wünsch 01.2001 Einführung in Datenbanksysteme H. Wünsch 01.2001 H. Wünsch 01/2001 Einführung Datenbanken 2 Was sind Datenbanken? Datenbanken sind Systeme zur Beschreibung, Speicherung und Wiedergewinnung von Datenmengen.

Mehr

Vorlesung 30.03.2009 1) Einführung

Vorlesung 30.03.2009 1) Einführung Vorlesung 30.03.2009 1) Einführung Was versteht man unter dem Begriff Datenbank? - Eine Datenbank ist eine Struktur zur Speicherung von Daten mit lesendem und schreibendem Zugriff - Allgemein meint man

Mehr