1. Überblick

Werbung
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 );
Herunterladen