DBS (2. Semester) Erben
Seite 1 von 5
1. Überblick
Listen in Excel
KEINE Redundanzfreiheit (Vermeidung mehrfachen Speicherns von Daten)
KEINE Verknüpfungen von Tabellen
nur kleine Datenmengen
KEINE Schutz- und Sicherheitsfunktionen
Datenbanken
redundanzfreie Speicherung von Daten
verknüpfte Tabellen
DatenBankSystem (DBS) aus
DatenBankManagementSystem (DBMS)
DatenBank (DB)
DBMS
= Management Programmsystem
Regelung des Datenzugriffs
kurze Zugriffszeiten
flexible Möglichkeiten der Verknüpfung von Daten
Werkzeuge zur Auswertung, Analyse, Präsentation von Daten
Vielfachzugriff durch unterschiedliche Benutzer
Kontrolle der Zugriffsrechte ETC
Anwendungsgebiete
Verwaltung großer Datenmengen
Verfügung durch mehrere Benutzer
z.B. Buchungssysteme, Lagerverwaltungssysteme,
Dokumentenverwaltungssysteme
wichtigsten Anforderungen
Verwaltung großer Datenmengen (im Giga-/Terabyte-Bereich )
Redundanzfreiheit (kein mehrfaches Speichern gleicher Information)
Gewährleistung der Datenintegrität (stets widerspruchsfreier Daten)
Unabhängigkeit des Speicherformats vom Anwendungsprogramm
kurze Zeiten für Abfrage und Änderung des Datenbestands
Schutz vor unbefugtem Zugriff auf Daten
Ausfallsicherheit (Daten nach Systemausfall erhalten)
Mehrbenutzerbetrieb
hohe Verfügbarkeit
Skalierbarkeit (Anpassbarkeit an Größe und Leistungsanforderung)
Unterschiede zu Dateisystemen
hohe Redundanzen
Dadurch Datenpflege fehleranfällig (Änderungen
Inkonsistenzen)
keine Mehrbenutzer-Synchronisation
keine automatische Sicherung bei Systemabstürzen
enge Abhängigkeiten zwischen Programmen und Dateien
ineffizienter Zugriff bei großen Datenmengen
Arten der Nutzung
Direkte Nutzung
Nutzung über Anwendungsprogramm (mit Schnittstelle)
DBS (2. Semester) Erben
Seite 2 von 5
Zugriff auf Daten
Datenbanksprachen
professionelle Benutzer
Suchen und Ändern von Datensätzen (FIND, ERASE ...)
Abfragesprachen (Query Languages)
Benutzer ohne Kenntnisse
Abrage von Daten, Generieren von Berichten
z. B. SQL (Structured Query Language) SELECT FROM WHERE
Datenbankmodelle
Hierarchische Datenbank
Baumstruktur – übergeordnete Datensätze enthalten mehrere
Untergeordnete
Suchanfragen nur „von oben nach unten“ möglich
Relationale Datenbank
Daten in Tabellen
Beziehungen zwischen Tabellen
Suchen in „alle Richtungen“ in allen Tabellen
Dreischichtenmodell
interne Schicht
physikalische Speicherung, Datenorganisation, Zugriffspfade
konzeptionelle Schicht
logische Sicht der Gesamtheit aller Daten und ihrer Beziehungen
extere Schicht
externe Sichten, Views – Sicht eines Benutzers (Zugriffsrechte...)
2. Grundbegriffe zu relationalen Datenbanken
Entities – Entitäten
individuelles und identifizierbares Exemplar eines Objekts, einer Person, eines
Begriffes...
Beispiele:
• die Leiterin des Studiengangs MK/DM an der BA Ravensburg
• das Auto mit dem amtlichen Kennzeichen KN-A 6360
Attribute
Charakterisierung und Identifizierung
mit Namen und Wert (z.B. Vorname: Larissa, Nachname: Erben
Entities mit gleichen Attributen werden unter einem Entitytyp zusammengefasst
z.B. Entitityp: Student aus Attributen: Name, Vorname, Matrikelnr. etc.
Tabelle (Relation) = 2dimensionale Darstellung eines Entitytyps
1 Entity = 1 Tupel oder 1 Datensatz
Primärschlüssel
jede Tabelle 1 Primärschlüssel
eindeutige Identifizierung jedes Tupels (z.B. Matrikelnr.)
z.B. auch zusammengesetzter Primärschlüssel (MatrNr+PrüfungsNr
Note)
Sekundärschlüssel (Indexe)
zur Sortierung nicht nach Primärschlüssel (z.B. nicht MatrNr sonder nach
Name)
Beziehung
Verknüpfung von Entitäten (RH studiert Digitale Medien)
Beziehungstyp (studiert, bestellt)
DBS (2. Semester) Erben
Seite 3 von 5
Kardinalität von Beziehungstypen
1:n studiert: 1 Student + 1 Studiengang aber 1 Studiengang + VIELE
Studenten
Umsetzung: 2 Tabellen (Student+Studiengang)
studiert=Fremdschlüssel mit Verweis auf Primärschlüssel in anderer
Tabelle
m:n bestellt: 1 Kunde + VIELE Artikel und 1 Artikel + VIELE Kunden
Umsetzung: 3 Tabellen (Kunde, Bestellungen, Artikel)
Primärschlüssel in Bestellungen aus Fremdschlüsseln KdNr. und ArtNr.
3. Datenbankentwurf
Bedarfsanalyse
welche Informationen?
welche Gegenstände, Begriffe, Eigenschaften?
Konzeptueller Entwurf
genaue Beschreibung der Daten, Attribute und Beziehungen
projektierter Anwendungsbereich (die „Mini-Welt“) wird strukturiert und
modelliert
aus Anwendersicht
unabhängig vom späteren Datenbanksystem
Standard = Entity-Relationship-Modell (ERM)
Gegenstände und Beziehungen werden abstrahiert.
Darstellung durch Entity-Relationship-Diagramme
reines Beschreibungsmodell mit graphischer Notation
Logischer Entwurf
Abbildung des konzeptionellen Entwurfs auf rechnergestützt interpretierbares
Modell
Transformation in logisches DBModell (hierarchisch/ relational ...)
relational in Tabellen, Verknüpfungen, Primärschlüssel, Indexe etc.
vor allem aber Normalisierung zur Vermeidung von Redundanzen
Normalisierung
1. Normalform =
Werte der Attribute elementar
2. Normalform =
zur Identifizierung jedes Nichtschlüsselfeldes alle Attribute
des Primärschlüssels notwendig
3. Normalform = kein Nichtschlüsselfeld von anderem Nichtschlüsselfeld abhängig
ist
Indizierung
schnellerer Zugriff auf Datensätze
Verwendung von Feldern, in denen häufig gesucht wird / nach denen häufig
sortiert wird
mit Duplikaten (identische Einträge erlaubt) ohne Duplikate (eindeutig; im
Primärschlüssel)
Referenzielle Integrität
Fremdschlüssel in abhängiger Relation = Primärschlüssel in Mutterrelation
Integritätswahrung beim Löschen und Ändern von Tupeln
entweder Löschverbot oder Löschen von abhängigen Sätzen
(kaskadierendes Löschen)
DBS (2. Semester) Erben
Seite 4 von 5
entweder Änderungsverbot oder Weitergabe von Änderungen an
abhängige Tabellen
in Access eigene Felder für Verbot+Änderung+Löschen
4. Relationenalgebra und SQL-Abfragen
Relation
z.B. als Tabelle darstellbar
Menge von Tupeln
keine zwei Tupel identisch
Reihenfolge unwichtig
Relationenalgebra
aus vorhandenen Relationen werden neue erzeugt:
Selektion (Auswahl von Tupeln aus einer Relation)
Projektion (Beschränkung auf ausgewählte Attribute)
(Inner) Join (Verbindung mehrerer Relationen über gemeinsame Attribute)
Datenbankabfragesprache SQL
Structured Query Language SQL
in 1970ern von IBM entwickelt
3 Sprachelemente:
DDL (Data Definiton Language) (Erstellen von Datenbanken etc.)
DML (Data Manipulation Language) (Löschen, Ändern von
Datensätzen)
DQL (Data Query Language) (Abfrage von Daten)
SELECT-Anweisung
SELECT
Angabe der gewünschten Spalten
FROM
Angabe der zu verknüpfenden Tabellen
[ ORDER BY ] Sortierfolge der Tupel in der Ergebnistabelle
[ WHERE ]
Selektionsbedingung für Tupel
[ GROUP BY ] Gruppenbildung bei gleichen Werten
spaltenliste
DISTINCT/ALL
tabelle
spalte
DESC/ASC
bedingung
PLZ=“87477“ OR
Ort=“Ried“
WHERE-Klausel
Vergleichsoperatoren =<>
WHERE Menge*Preis < 500
logische Operatoren NOT, AND, OR
WHERE NOT
(PLZ='23863'ANDOrt='Ried')
Wertebereichsangaben
BETWEEN, IN, LIKE WHERE Datum BETWEEN
#4/30/2000#
AND #12/31/2002#
WHERE ArtikelNr IN
('K001','G002','K003')
WHERE Bezeichnung LIKE '*Tee'
Einfügung virtueller Spalten
SELECT *, Preis*1.19 AS Bruttopreis
FROM Artikel
WHERE MwSt=2;
SELECT
Count(ArtikelNr)
AS Anzahl,
Sum(Preis)
AS Preissumme,
Avg(Preis)
AS Durchschnitt,
Min(Preis)
AS Minimum,
DBS (2. Semester) Erben
Seite 5 von 5
FROM
Max(Preis)
AS Maximum
Artikel;
Select mit Gruppenbildung
SELECT
KundenNr, Count(KundenNr)
Anzahl
FROM
Bestellung
GROUP BY KundenNr;
AS
SELECT mit GROUP BY und HAVING
SELECT
ArtikelNr, Sum(Menge) AS
Gesamtmenge
FROM
Position
GROUP BY ArtikelNr
HAVING
Sum(Menge) > 8;
Natural (=Inner) Join mit SELECT
SELECT
Name, BestellNr, Datum
FROM
Kunde INNER JOIN Bestellung ON Kunde.KundenNr =
Bestellung.KundenNr
ORDER BY Name, Datum;
Outer (Left) Join mit SELECT
SELECT
Name, BestellNr, Datum
FROM
Kunde LEFT JOIN Bestellung ON Kunde.KundenNr =
Bestellung.KundenNr
ORDER BY Name, Datum;
Auch Kunden, zu denen keine Bestellungen existieren, werden angezeigt.
Unterabfragen (Verschachtelung)
SELECT
*
FROM
Kunde
WHERE
Kunde.KundenNr IN ( SELECT Bestellung.KundenNr FROM
Bestellung );
SELECT
KundenNr, Name
FROM
Kunde
WHERE NOT EXISTS
(SELECT KundenNr
FROM Bestellung
WHERE
Kunde.KundenNr = Bestellung.KundenNr );