7 Die Verwaltung von Daten mithilfe von Datenbanken planen und umsetzen
Bestandteile eines Datenbanksystems
- Datenbasis: Datenbestand
- Datenbankmanagementsystem: Verwaltung und Zugriff auf den Datenbestand
ANSI/SPARC-Architektur
- Externes Schema (Ebene)
- Konzeptionelles Schema (Ebene)
- Internes Schema (Ebene)
Unterscheidung nach Betriebsart
- Stand-Alone-Datenbank
- File-Share-Datenbank
- Client-Server-Datenbank
Datenbank und Datenbankprogramm auf einer Workstation
Datenbank auf Server - Datenbankprogramm auf jedem Client
Datenbank und Datenbankprogramm auf Server - auf den Clients Zugriffsoberfläche
Unterscheidung nach Datenmodell
- Hierarchische Datenbank
- Netzwerkdatenbank
- Relationale Datenbank
- Objektdatenbank
NoSQL-Datenbanken
- Key-Value-Datenbank
- Dokumenten-Datenbank
- Graph-Datenbank
- Spaltenorientierte Datenbank
Bestandteile
- Entität und Entitätstypen
- Attribute
- Beziehungstyp
- Kardinaliäten (1:1, 1:n, m:n)
Ein relationales Datenmodell ist eine Sammlung von Tabellen (Relationen), die miteinander verknüpft sind, d.h. miteinander in Beziehung stehen.
Eine Tabelle (Relation) besteht aus einem Tabellennamen (Relationsname) sowie den Spalten (Attribute, Felder) und den Datensätzen (Zeilen, Tupel).
Ein Datensatz besteht aus Datenfeldern (= entsprechend der Spaltenbezeichnung). In einem Datenfeld wird eine bestimmte Eigenschaft (Attributwert) des Objektes beschrieben.
Der Primärschlüssel (Primary Key) einer Tabelle ist eine minimale Kombination von Spalten (Attributen), mit dessen Hilfe jeder Datensatz eindeutig identifiziert werden kann. Jede Tabelle muss genau einen Primärschlüssel besitzen. Der Primärschlüssel muss folgende Bedingungen erfüllen:
- Eindeutigkeit: Die Werte des Primärschlüssels müssen eindeutig sein.
- Minimalität: Der Primärschlüssel sollte aus so wenig wie möglich Spalten bestehen. In der Regel reicht eine Spalte aus.
- Unveränderbarkeit: Die Werte des Primärschlüssels sollten sich nicht ändern.
Der Fremdschlüssel (Foreign Key) ist eine Spalte (Attribut) einer Tabelle, die auf den Primärschlüssel einer anderen oder der gleichen Tabelle verweist, d.h., die Werte des Primärschlüssels werden in diese Spalte eingetragen. Dabei muss der Fremdschlüssel vom gleichen Datentyp wie der Primärschlüssel sein. Eine Tabelle kann keinen, einen oder mehrere Fremdschlüssel besitzen.
Die Kardinalität dient der genauen Charakterisierung von Beziehungen. Sie gibt an, in welchem Verhältnis die beteiligten Tabellen zueinander in Beziehung stehen. Im relationalen Datenmodell werden folgende Kardinalitäten unterschieden:
- 1:1 (eins zu eins) - jedem Datensatz einer Tabelle ist genau ein Datensatz einer zweiten Tabelle zugeordnet
- 1:n (eins zu viele) - jeder Datensatz von Tabelle 1 ist in Beziehung mit keinem, einen oder mehreren Datensätzen von Tabelle 2
- m:n (viele zu viele) - Datensätze von Tabelle 1 stehen in Beziehung mit keinem, einem oder mehreren Datensäten von Tabelle 2 und umgekehrt
Datenredundanz besteht, wenn dieselbe Information mehrfach in einer Datenbank vorhanden ist.
Als Datenkonsistenz wird die Korrektheit der in der Datenbank gespeichert Daten bezeichnet. Daten sind konsistent, wenn sie widerspruchsfrei sind.
- Änderungsanomalie: Fehler durch Datenredundanz
- Einfügeanomalie: Nicht alle erforderlichen Daten erfasst
- Lösch-Anomalie: Löschen von Daten von denen andere Daten abhängig sind
Referenzielle Integrität besagt, dass die Werte des Fremdschlüssels der Fremdschlüsseltabelle auch als Werte beim Primärschlüssel der Primärschlüsseltabelle vorhanden sein müssen. Dadurch wird Dateninkonsistenz vermieden.
Normalisierung ist ein Verfahren zur Verringerung von Datenredundanz in relationalen Datenmodellen, verbunden mit den Zielen Anomalien zu vermeiden und die Datenkonsistenz zu erhöhen.
Video: Relationale Datenbanken
Dauer: ca. 4 Min
Transformationsregeln
- Ein Entitätstyp wird mit all seinen Attributen zu jeweils einer Tabelle zusammengefasst.
- Jede Tabelle erhält einen Primärschlüssel aus einem Attribut oder einer Kombination aus Attributen, welche im ER-Modell gekennzeichnet wurden. Sind solche Attribute nicht vorhanden, dann wird ein künstlicher Primärschlüssel eingeführt.
- Jede m:n-Beziehung wird ein einer eigenen Tabelle abgebildet. Diese Tabelle enthält die Primärschlüssel der beteiligten Entitätstypen als Fremdschlüssel und die Attribute, welche der Beziehung direkt zugeordnet sind.
- Die Umsetzung der 1:n-Beziehungen erfolgt, indem der Primärschlüssel der einen Tabelle als Fremdschlüssel in die andere Tabelle eingefügt wird.
SQL (Structured Query Language) ist eine Datenbanksprache, mit der in relationalen Datenbanken die Datenstrukturen definiert und die Datenbestände bearbeitet bzw. abgefragt werden können.
Sprachen
- Data Definition Language (DDL)
- Data Manipulation Language (DML)
- Data Control Language (DCL)
- Transaction Control Language (TCL)
Sprachelemente
- Anführungszeichen und Hochkomma: Zeichenketten
- Vergleichoperatoren: =, >, >=,<, <=, <> (ungleich)
- Logische Operatoren: AND, OR, NOT
- Rechenoperatoren: +, -, *, /
- Zuweisungsoperator: =
- NULL: nicht definiert
ANSI-SQL-Datentypen
- INTEGER, BIGINT : Ganze Zahlen
- NUMERIC, NUMBER(n,m) : Festkommazahlen
- FLOAT, DOUBLE : Gleitkommazahl
- VARCHAR(n) : Zeichenkette variabler Länge
- CHARACTER(n), CHAR(n) : Zeichenkette mit fester Länge
- DATE, TIME, TIMESTAMP : Datums- und Zeitangabe
- BOOLEAN: Wahrheitswerte
Platzhalter
- % = kein, ein oder viele Zeichen
- _ = genau ein Zeichen
Aggregatfunktionen
- COUNT
- SUM
- MIN
- MAX
- AVG
Abfragen über mehrere Tabellen
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL JOIN
Video: SQL Grundlagen
Dauer: ca. 6 Min
import sqlite3
connection = sqlite3.connect("personenverwaltung.db")
cursor = connection.cursor()
sql_anweisung = #SQL-Anweisung
cursor.execute(sql_anweisung)
connection.close()