DBI 1. Test 4. Klasse
Von 1.1 Entwicklung (+Zusatzdokument Moodle)
bis inkl. 1.4 Datenbankarchitektur: Drei-Schichten-Konzept
Von 2.3.2 ER-Diagramm mit Arten der Beziehungs-Typen
bis inkl. 2.8 Beziehungen zwischen mehr als zwei Entity-Typen
3.1 Identifizierung von Entities
3.2 Redundanz und Fremdschlüssel
4 Weiterführende ER-Modellierung
bis inkl. 4.4 Arten von Attributen
Themen
- Entwicklung
- Datenbankarchitektur: Drei-Schichten-Konzept
- ER-Diagramm mit Arten der Beziehungs-Typen
- Beziehungen zwischen mehr als zwei Entity-Typen
- Identifizierung von Entities
- Redundanz und Fremdschlüssel
- Weiterführende ER-Modellierung
- Arten von Attributen
Entwicklung
Geschichte der Datenbanken
- 60er Jahre: Filesysteme, Datenverwaltung in Dateien
- 70er Jahre: Hierarchische Datenbanken (Baumstruktur); Netzwerkdatenbanken (Graphstruktur)
- 80er Jahre: Relationale Datenbanken (SQL)
- 90er Jahre: Client-Server-Systeme (Datenbankserver); Verteilte Datenbanken
Datenbank vs. Datei
- Datenbank: Strukturierte Sammlung von Daten (mit Data Dictionary ~ Metadaten)
- Datei: Unstrukturierte Sammlung von Daten
weiteres siehe DB Allgemeines
Eigenschaften von Datenbanksystemen
- Redundanzfreiheit (mehr Speicherplatz, Updates problematisch)
- Konsistenz, Integrität: Daten müssen konsistent und korrekt sein (z.B. Foreign Keys: Referenzielle Integrität)
- Sicherheit: Zugriffskontrolle, Verschlüsselung
- Syncronisation: Mehrere Benutzer gleichzeitig
- Datenunabhängigkeit: Änderungen am Schema haben keine Auswirkungen auf die Anwendungen
Datenbankarchitektur: Drei-Schichten-Konzept
- Externe Ebene: Sicht der Benutzer
- Konzeptionelle Ebene: Sicht der Datenbank
- Interne Ebene: Speicherung der Daten
Externe Ebene
- Sicht der Benutzer
- Benutzer sieht nur die für ihn relevanten Daten
- z.B. Student sieht nur seine Noten
Konzeptionelle Ebene
- Sicht der Datenbank
- Struktur der Datenbank
- z.B. Tabellen, Beziehungen
Interne Ebene
- Speicherung der Daten
- meist Bäume oder Listen
- z.B. Speicherung auf Festplatte
Datenunabhängigkeit der Ebenen
- Logische Datenunabhängigkeit: Änderungen am konzeptionellen Schema haben keine Auswirkungen auf das externe Schema
- Physische Datenunabhängigkeit: Änderungen am internen Schema haben keine Auswirkungen auf das konzeptionelle Schema
ER-Diagramm mit Arten der Beziehungs-Typen
- 1:1: Ein Datensatz in Tabelle A ist mit genau einem Datensatz in Tabelle B verknüpft
- 1:n: Ein Datensatz in Tabelle A ist mit einem oder mehreren Datensätzen in Tabelle B verknüpft
- n:m: Ein Datensatz in Tabelle A ist mit einem oder mehreren Datensätzen in Tabelle B verknüpft und umgekehrt
Min-Max-Notation
Bsp: 1:n Ein Bezirk hat 1 bis n Niederösterreicher
Bezirk ---(1,n)--- bewohnt von ---(1,1)--- Niederösterreicher
Beziehungs-Typ oder Entitätstyp?
- Beziehungs-Typ: Verbindung zwischen zwei Entitäten
- Entitätstyp: Entität/Tabelle in der Datenbank
Wie man will: Beziehungs-Typen können auch als Entitätstypen dargestellt werden. Datenbankmäßig sind sie meistens Entitätstypen.
Attribut oder Entity-Typ?
- Attribut: Eigenschaft einer Entität
- Entity-Typ: Entität/Tabelle in der Datenbank
Wenn ein Attribut häufig vorkommt, kann es auch als eigene Entität dargestellt werden um Redundanz zu vermeiden. Außerdem können so mehrere Werte gespeichert werden. (z.B. Telefonnummern)
Rekursive Beziehung

Beziehungen zwischen mehr als zwei Entity-Typen

Identifizierung von Entities
- Identifizierende Attribute: Attribute, die eine Entität eindeutig identifizieren
- Schlüsselattribute: Attribute, die als Schlüssel dienen
Schlüssel
- Einfacher Schlüssel: Ein Attribut als Schlüssel
- Zusammengesetzter Schlüssel: Mehrere Attribute als Schlüssel
- Künstlicher Schlüssel: Automatisch generierter Schlüssel (z.B. ID)
- Natürlicher Schlüssel: Ein Attribut als Schlüssel (z.B. E-Mail)
Regeln für die Wahl des Primärschlüssels:
- Der Primärschlüsselwert muss beim Hinzufügen eines Entities vollständig bekannt sein (Entity-Integrität)
- Da der Primärschlüssel das Entity während der ganzen Lebenszeit identifiziert, darf sein Wert nicht geändert werden müssen (dadurch würde eigentlich ein neues Entity entstehen).
- Der Primärschlüssel soll möglichst wenige Attribute umfassen, die Darstellung der Attributwerte soll möglichst kurz sein.
Redundanz und Fremdschlüssel
- Redundanz: Mehrfache Speicherung von Daten
- Fremdschlüssel: Verweis auf einen anderen Datensatz
Probleme mit Redundanz
- Inkonsistenz: Daten sind nicht mehr konsistent
- Speicherplatz: Mehr Speicherplatz wird benötigt
- Einfüge u. Löschanomalien: Daten können nicht mehr korrekt eingefügt oder gelöscht werden
Fremdschlüssel
- Referenzielle Integrität: Fremdschlüssel verhindert das Löschen von Datensätzen, auf die noch verwiesen wird
Weiterführende ER-Modellierung
Abhängige Entitäten
meist 1:N (1 Owner, N Schwache Entitäten) oder 1:1
- Entitäten, die von einer anderen Entität abhängig sind
- z.B. Adresse ist abhängig von Person
Eigenschaften:
- Schwache Entität: Kann nicht ohne Besitzer existieren
- Owner Entität: Besitzt die schwache Entität
- Wird die Owner Entität gelöscht, wird auch die schwache Entität gelöscht
- Owner Entität wird auch als Identifizierende Entität bezeichnet
- Die schwache Entität hat einen Teil des Schlüssels der Owner Entität als Teil des eigenen Schlüssels
Überlagerte Entity-Typen
genauer unter siehe Relations
Überlagerte Entity-Typen lassen sich mit Vererbung in Java vergleichen. Sie haben mehrere Primärschlüssel, die sich aus den Primärschlüsseln der überlagerten Entity-Typen zusammensetzen.
Total, Disjunkt, Nicht Disjunkt
- Total: Jeder Entity-Typ muss in mindestens einer Untergruppe vorkommen; Doppelter Strich als Verbindungslinie
- Disjunkt: Ein Entity-Typ kann nur in einer (Entweder Oder) Untergruppe vorkommen: Wird durch ein volles Dreieck dargestellt
- nicht disjunkt: Ein Entity-Typ kann in mehreren Untergruppen vorkommen; Wird durch ein gefülltes Dreieck dargestellt
- partiell: Ein Entity-Typ kann in keiner Untergruppe vorkommen: Einfacher Strich als Verbindungslinie


Arten von Attributen
- Einfach: Attribut, das nicht weiter unterteilt werden kann
- Zusammengesetzt: Attribut, das in mehrere Unterattribute unterteilt werden kann
- Abgeleitet: Attribut, das aus anderen Attributen berechnet wird
- Mehrwertig: Attribut, das mehrere Werte speichern kann (z.B. Telefonnummern)
- Basis: Attribut kann von keinem anderen Attribut abgeleitet werden
- Abgeleitet: Attribut kann von anderen Attributen abgeleitet werden. SOLLTE VERMIEDEN WERDEN (Redundanz) zB. Alter, wenn Geburtsdatum bekannt ist