Datenbanken und SQL

Aus Flinkwiki
Wechseln zu: Navigation, Suche
Seitenübersicht
MySQL
SQLite


Aufbau und Konzeption von Datenbanksystemen

Namensübersicht

Im Bereich Datenbanken gibt es eine babylonische Sprachverwirrung. Hier eine Übersetzungstabelle:

Zeile Tupel, Entität (entity), Objekt, Datensatz, Record
Spalte Attribut, Feld, Datenfeld, Item, Eigenschaft (property)
Wertebereich Domäne
Tabelle Matrix, Entitätentyp (entity type), Relation, Klasse, Recordset
Datenbank Schema


Weitere Definitionen gibt es unter #Glossar.


SQL-Sprachbereiche

DQL - Data Query Language Abfragen von Daten
DML - Data Manipulation Language Anlegen, Ändern und Löschen von Daten
DDL - Data Definition Language Erstellen von Datenbanken, Tabellen (Relationen) und Indizes
DCL - Data Control Language Anlegen von Benutzern und Vergabe von Zugriffsrechten

Außerdem: Transaktionssteuerung


Datenobjekte

Tabellen:

Bei einer relationalen Datenbank werden die Daten in Tabellen organisiert (Kundentabelle, Artikeltabelle, Filmtabelle usw.). Deshalb sind die Tabellen das Herzstück einer Datenbank. Alle anderen Datenbankobjekte sind aus diesen Tabellen abgeleitet oder verwenden diese.


Temporäre Tabellen:

Sie werden explizit vom Programmierer oder implizit vom Optimierer angelegt, um Zwischenergebnisse wiederverwendbar zu machen. In der Regel werden diese automatisch nach Beendigung einer Sitzung gelöscht.


Indizes:

Diese erlauben eine erhebliche Beschleunigung bestimmter Auswertungen. Die Daten aus den Tabellen werden dabei in frei wählbaren, aber festgelegten Reihenfolgen sortiert.


Ansichten:

Auf Vorrat gebastelte Auswertungen, die wie Tabellen verwendet werden können, ohne dabei einen eigenen Datenbestand aufzubauen.


Prozeduren:

Kleine, selbst geschriebene SQL-Programme, die auf dem Server ausgeführt werden.


Trigger:

Auch kleine, selbst geschriebene Programme, die sich aber von selbst aufrufen, wenn Daten in den entsprechenden Tabellen verändert werden.


Ereignisse:

Schon wieder kleine, selbst geschriebene Programme, die sich ebenfalls selbst aufrufen, aber diesmal zeitgesteuert.[1]


3-Ebenen-Modell

Drei Abstraktionsebenen

  • physische Sicht auf die Daten, die interne Ebene
  • logische Gesamtsicht auf die Daten, die konzeptionelle Ebene
  • Benutzersichten auf die Daten, die externe Ebene

Ansi3EbenenModell.png

[2]


Externe Ebene:

Die externe Ebene enthält die Benutzersichten auf die Daten, bzw. den Ausschnitt aus den Gesamtdaten, den spezielle Benutzergruppen benötigen. Benutzersichten können hilfreich sein, um bestimmten Benutzern bzw. Benutzergruppen nur Ausschnitte des Gesamtdatenmodells zugänglich zu machen (Rechteverwaltung), oder für Umbenennungen von Attributen, um dem unterschiedlichen Vokabular von Fachabteilungen Rechnung zu tragen. Als Beispiel sei hier die Begriffe Lieferant/Kunde und Debitor/Kreditor genannt. Diese Ebene wird vom Datenbankentwickler verwaltet.


Konzeptionelle / konzeptuelle Ebene:

Diese Ebene hat die logische Darstellung der Gesamtsicht der Daten in einem speziellen Datenmodell, z.B. dem relationalen Datenmodell zum Inhalt. Ziel ist hier eine Unternehmensgesamtsicht zu erstellen, was ohne detaillierte Kenntinisse über relevante Informationen, Logik, Abläufe und Zusammenhänge im Unternehmen nicht gelingen kann. Diese Gesamtsicht beschreibt alle Daten, deren Beziehungen untereinander und auch die Konsistenzanforderungen in Form z.B. von Integritätsbedingungen. Die verschiedenen Unternehmensansichten aus der externen Ebene aus den verschiedenen Abteilungen werden zu einem Gesamtmodell zusammengeführt. Zentrales Ziel ist hier eine redundanzfreie Speicherung der Daten, z.B. durch Normalisierung.

Innerhalb dieser Ebene wird in der Regel zweistufig verfahren. Zuerst wird ein konzeptionelles Schema (z.B. ER-Modell, UML, ...) erstellt, welches noch unabhängig vom konkret eingesetzten Datenmodell resp. Datenbanksystem ist. Davon wird dann in einem zweiten Schritt das logische Datenbankschema abgeleitet, welches schon auf das Modell eines bestimmten Datenbanktyps (relational, objektorientiert, ...) angepasst ist. Diese Ebene wird primär vom Datenbankentwickler verwaltet.


Interne Ebene:

Dies stellt die physikalische Implementierung des konzeptionellen Schemas in Abhängigkeit zum verwendeten DBS dar. Information über die Art und den Aufbau der Datenstrukturen auf dem physikalischen Speicher und Zugriffsmechanismen sind Bestandteil der internen Ebene. Diese Ebene wird vom Datenbankadministrator verwaltet. Zu seinen Aufgaben gehören insbesondere Maßnahmen zur Laufzeitverbesserung (Performance), Verwaltung von Benutzerrechten, Verfügabarkeit (Ausfallsicherheit), Datensicherheit und Datenschutz und vieles mehr.[3]


Abstraktionskonzepte

Bei der Erstellung eines Datenmodells werden die Objekte (Entitäten) und ihre Eigenschaften (Attribute) untersucht. Es werden alle Daten gesammelt. In einem Prozess der Abstraktion werden dann gleichartige Mengen von Objekten zusammengefasst und auf relevante Eigenschaften untersucht. In der Informatik existieren bestimmte Konzepte, nach denen dieser Abstraktionsprozess erfolgt.

  • Klassifikation: Gleichartige Objekte mit gemeinsamen Eigenschaften werden zu Klassen zusammengefasst.
  • Aggregation: Eine neue Klasse wird aus anderen, bereits existierenden Klassen zusammengesetzt bzw. besteht zum Teil aus Objekten anderer Klassen.
  • Generalisierung (Verallgemeinerung): Zwischen bestimmten Klassen wird eine Teilmengenbeziehung hergestellt. Dabei handelt es sich um Klassen, bei denen die eine Klasse eine Verallgemeinerung der anderen Klasse darstellt. Die Eigenschaften der verallgemeinerten Klasse werden auf die Klassen, die Teilmengen dieser Klassen sind, vererbt.
  • Assoziation: Objekte bzw. Klassen können miteinander in Beziehung gesetzt (assoziiert) werden. Diese Beziehung kann zwischen zwei und mehr Objekten aufgebaut werden.
  • Identifikation: Eigenschaftswerte bzw. Kombinationen von Eigenschaftswerten der Objekte werden als Schlüssel definiert und dienen der eindeutigen Identifizierung des Objekts. Über diese Schlüssel werden die Objekte assoziiert.

Geoinformatik-Service


Entity-Relationship-Modell

Entities, Attribute und Beziehungen

Die grundlegenden Modellierungsstrukturen dieses Modells sind die Entities (Gegenstände) und die Relationships (Beziehungen) zwischen den Entities. Des weiteren gibt es noch Attribute und Rollen. Die Ausprägungen eines Entity-Typs sind seine Entities, die Ausprägung eines Relationship-Typs sind seine Relationships. Nicht immer ist es erforderlich, diese Unterscheidung aufrecht zu halten. Datei:ER-Modell.JPG

Entities sind physisch oder gedanklich existierende Konzepte der zu modellierenden Welt, dargestellt im ER-Diagramm durch Rechtecke. Attribute charakterisieren die Entities und werden durch Ovale beschrieben. Beziehungen zwischen den Entities können binär oder auch mehrwertig sein, sie werden durch Rauten symbolisiert.[4]


Kardinalität

Über die Kardinalität wird festgelegt, wie viele Entitäten einer Entitätsmenge mit Entitäten einer anderen Entitätsmenge in Beziehung stehen können.

1:1 - eins-zu-eins-Beziehung Jede Entität einer Entitätsmenge ist genau einer Entität einer anderen Entitätsmenge zugeordnet.
1:n - eins-zu-n-Beziehung Jede Entität einer Entitätsmenge ist einer oder mehreren Entitäten einer anderen Entitätsmenge zugeordnet.
n:m - n-zu-m-Beziehung Eine oder mehrere Entitäten einer Entitätsmenge können einer oder mehreren Entitäten einer anderen Entitätsmenge zugeordnet werden.

Datenbankanpassung

Die Idee der Datenbank knüpft an die Begriffe der objektorientierten Programmierung an. Wichtig für die Prüfung ist das Verständnis der relationalen Datenbank. Es handelt sich dabei um mehrere Daten-Tabellen, die miteinander verknüpft sind. Die einzelne Tabelle wird als Objekt oder Entity' bezeichnet, die Spalten der Tabelle sind die Attribute, und die Spalteninhalte die Attributswerte.

Die Beziehungen zwischen den Tabellen werden über Schlüssel hergestellt. Dazu wird jeder Tabelle eine zusätzliche Spalte mit einem Primärschlüssel zugewiesen, der für jeden Datensatz, also für jede Zeile der Tabelle einen eindeutigen Wert hat. Dieser Primärschlüssel wird dann in einer anderen Tabelle als Sekundärschlüssel wieder in eine extra Spalte eingefügt, sodass sich eine Verbindung der Datensätze der beiden Tabellen ergibt. Im Entity-Relationship-Modell sind also die Entities die Tabellen und die Relationships die Beziehungen zwischen ihnen. (Und in der UML-Denkweise sind die Entities die Objekte mit ihren Attributen.)[5]


Normalisierung

Normalisierung bedeutet, dass Redundanzen und damit Inkonsistenzen vermieden werden, d. h. dass es keinen Attributwert gibt, der an zwei verschiedenen Stellen gespeichert ist.

Zu vermeiden, dass ein Datenfeld in einer Tabelle mehrere Werte enthält, nennt sich 1. Normalform.

Dass jede Tabelle einen eindeutigen Primärschlüssel bekommt, ist die 2. Normalform.

Und wenn Abhängigkeiten von zwei Attributen innerhalb einer Tabelle aufgelöst werden, durch Ausgliederung in eine weitere neue Tabelle, so nennt man dies die 3. Normalform.[6]


SQL

Cheat Sheet

Datentypen


SELECT-Abfragen


Glossar

Datenbank Ansammlung von Daten, die unter technischen Gesichtspunkten vorteilhaft organisiert sind und die die Verwaltung und Auswertung von Daten unterstützt.
Schlüssel Ein Schlüssel ist mindestens eine Spalte einer Tabelle, welche jede Zeile konzeptionell eindeutig macht, d.h. der Schlüsselwert kann per Definition in der Tabelle nur einmal vorkommen.

Ein Schlüssel kann aus mehreren Spalten zusammengesetzt werden, muss aber minimal sein. Ein Schlüssel ist dann minimal, wenn er nicht mehr reduziert werden kann, ohne seine Eindeutigkeit zu verlieren.

Tabelle Eine Tabelle besteht aus mindestens einer Spalte und einer endlichen Anzahl von Zeilen. Die Anzahl der Spalten ist ebenfalls endlich. Der Name der Tabelle legt den Informationstyp fest und muss innerhalb der Datenbank eindeutig sein.

[7]


Glossar HS Augsburg


Quellen

Enzyklopädie der Wirtschaftsinformatik

Adams, Ralf: SQL. Der Grundkurs für Ausbildung und Praxis. München 2016.[8]

Wikibooks Einführung in SQl

Wikibooks SQL-Befehlsreferenz


| | |