Datenbanken

Werbung
75891906
Datenbanken
1
Datenbanken
1.1
Definition
– System zur Beschreibung, Speicherung & Wiedergewinnung von umfangreichen Daten
1.2
Vorkommen von Daten
– Betriebssysteme
– Anwendungssoftware
– Grafiken, Animation
1.3
–
–
–
–
Probleme der Datenhaltung
Datenredundanz (Speicherplatz)
Gefahr der Dateninkonsistenz
Effizienz der Datenverwaltung
Datenschutz und Datensicherheit
1.4
Drei-Ebenen-Konzept
Realwelt
Externes Schema
1.5
Konzeptionelles Schema
Internes Schema
Mehrdimensionale Datenbank
– Auswertung nach unternehmensspezifischen, themenorientierten "Dimensionen"
– Typische Dimensionen: Unternehmensstrukturen, Produkte, Regionen & Zeit
– Daten sind als Fakten gespeichert, Dimensionen werden durch Index-Verhältnisse realisiert, die
schnellen und einfachen Zugriff auf die Fakten aus unterschiedlichen Perspektiven erlauben
2
–
–
–
–
–
Überblick Datenbankmodelle
Hierarchische Datenbanken
Netzwerkorientierte Datenbanken
Relationale Datenbanken
Objektorientierte Datenbanken
Multidimensionale Datenbanken (OLAP)
2.1
Hierarchische Datenbanken (Wasserfalldatenbanken)
– Speicherung der Daten in Hierarchieebenen
– Jeder Knoten in der Hierarchie kann eine variable Anzahl von Unterknoten besitzen
– Vorteil:
• Datensätze variabler Länge können einfach verwaltet werden
– Nachteil:
• Konzept der Hierarchie ist einschränkend
• Für eine schnelle Suche nach Datensätze muss Hierarchie bekannt sein
• Es muss immer ein Datensatz vom Wurzeltyp vorhanden sein
Seite 1 von 7
75891906
2.2
Netzwerkorientierte Datenbanken
– Weiterentwickelung vom hierarchischen Modell
– Daten werden in Form von logischen Satztypen und festgelegten Beziehungstypen dargestellt
– Ein Knoten in tieferer Hierarchieebene kann mit mehreren Knoten einer höheren Hierarchieebene
verknüpft sein
– Vorteile:
• Es können mehr Bedeutungen aus der Realwelt erfasst werden als bei Hierarchischen DB
– Nachteile:
• Immer noch ziemlich eingeschränkt
• Relativ langsame Suche
2.3
Relationale Datenbanken
– Beruht auf Tabellen (Relation), die mit einander in Beziehung stehen können
– Spezifikation der Relation geschieht durch Operationen (relationale Algebra)
• Vereinigung
• Mengendifferenz
• Selektion
• Projektion
• Kartesisches Produkt
• Verbund
– Vorteile:
• Große Vielfalt an Modellierungen durch relationale Operatoren
• Leichte Erlernbarkeit
• Relativ schnelle Suche durch Schlüsselfelder
• Relativ standardisierte Abfragesprache SQL
– Nachteile:
• Beziehungstypen müssen relational umformuliert werden
2.4
–
–
–
–
–
Objektorientierte Datenbanken
Erweiterung relationaler Datenbanken
Jede Einheit der Anwendungswelt wird durch ein Objekt dargestellt
Objekt beschreibt: Zustand mit Hilfe von Daten; dynamische Eigenschaften mit Hilfe von Methoden
Zugriff erfolgt ausschließlich über die Methoden
Mischformen wie objekt-relationale Datenbanken existieren
– Vorteile:
• Noch bessere Abbildung der realen Welt
– Nachteile:
• Keine standardisierte Abfragesprache
• Kenntnisse in objektorientierter Programmierung nötig
2.5
Multidimensionale Datenbanken (OLAP)
– Verwendung von mehrdimensionalen Tabellen, sog. "OLAP-Würfel" (OLAP-Cubes) zur Speicherung
der Daten
– Dimensionen des Würfels sind diskret
– Zelleninhalte sind metrisch
– Vorteile:
• Bestimmte Auswertungen, wie Aggregation entlang einer Achse sind sehr schnell
– Nachteile:
• Nicht alle Sachverhalte der realen Welt können abgebildet werden
• Keine standardisiert Abfragesprache, meist SQL-Abwandlungen
Seite 2 von 7
75891906
3
Grundelemente der SQL-Sprache
Die SQL-Sprache des SQL-Servers heißt Transact-SQL und hat wie andere Programmiersprachen
• Literale
• Begrenzer
• Namen
• Reservierte Worte
3.1
Literale
Ein Literal ist eine alphanumerische Konstante, eine hexadezimale Konstante oder eine numerische
Konstante --> Zeichenkette
3.1.1
Alphanumerische Konstante
Beinhaltet ein oder mehrer Zeichen des SQL-Server-Zeichensatzes, die zwischen zwei Apostrophen
oder zwei Anführungszeichen gesetzt werden z.B. "München" oder 'München'
3.1.2
Hexadezimale Konstante
Dient der Darstellung von nicht druckbaren Zeichen. Jede hexadezimale Konstante fängt mit "X" an.
Gefolgt wird dieses Zeichen von einer geraden Anzahl von Buchstaben oder Ziffern, die innerhalb von
zwei Apostrophen stehen. (Z.B. X'53514C1D')
3.1.3
Numerische Konstanten
Zu den numerischen Konstanten gehören alle
– Ganzzahlen
– Festpunktzahl
– Gleitpunktzahl
Mit oder ohne Vorzeichen
(z.B. 130 ; 130.00 ; -0.130E5 oder 22.3E-3)
Jede numerische Konstante besitzt eine Genauigkeits- und Skalierungsangabe.
Dec(10,3)
3.1.4
[10 Stellen, 3 Kommastellen d.h. 7 Stellen vor dem Komma]
Begrenzer
Mit Hilfe der Begrenzer werden einzelnen "token" (lexikalische Einheiten) von einander getrennt.
SQL kennt folgende Begrenzer
, ( ) < > . : = + - / * <> <= >=
3.1.5
Kommantare
Einzeilige Kommentare - … -(2xBindestrich)
Mehrzeilige Kommentare: /* … */
3.1.6
Namen
Namen werden für die Identifizierung einzelner Objekte, wie Datenbanken, Tabellen, Indizes etc.
verwendet.
Sie sind Zeichenketten mit bis zu 30 alphanumerischen Zeichen.
Bei SQL-Server 128 alphanumerischen Zeichen.
Name darf grundsätzlich keine Leerzeichen enthalten und darf NICHT mit einer Ziffern beginnen.
"_"; "#"; und "@" sind erlaubt.
Am Beginn des Namens:
"#" steht für temporär --> (Objekt wird nach dem Herunterfahren gelöscht)
"@" steht für eine lokale Variable
Seite 3 von 7
75891906
3.1.7
Reservierte Worte
Voreingetellte Bedeutung, im Data Dictionary abgelegt
Keine reservierten Worte im Objektnamen
Datentypen und Systemfunktionen stellen in TSQL keine reservierten Worte dar.
3.2
–
–
–
–
Datentypen
Numerische Datentypen
Alphanumerische Datentypen
Binäre Datentypen
Datentypen für Datums-/ Zeitangaben
3.2.1
Numerische Datentypen
int
smallint
tinyint
decimal(p,[q])
numeric(p,[q])
real
float[(p)]
money
smallmoney
3.2.2
Alphanumerische Datentypen
char[(n)]
varchar[(n)]
text[(n)]
3.2.3
bit
Datumsangabe in Ganzzahlen
datetime mit geringeren speicherbedarf
Datentyp bit
0=richtig; 1=falsch
3.2.5
•
•
•
•
•
•
•
•
•
•
•
n= Anzahl der Zeichen; max 8000
char mit variabler Zeichenlänge
definierte Textdatei mir 2GB Länge
Datums- und Zeitformate
datetime
smalldatetime
3.2.4
ganzzahlig
ganzzahlig
positiv, ganzzahlig (0-255)
Festpunktzahl, p= Anzahl d. Ziffern, q= Anzahl d. Ziffern nach dem Komma
synonym für decimal (dec)
Gleitkommazahl
Gleitkommazahl, p= Genauigkeit
Darstellung von Geldbeträgen
money mit geringeren Speicherbedarf
Datumsfunktion
yy (year)
qq (quarter)
mm (month)
dy (day of the year) zwischen 0 und 366
dd (day)
dw (day of the week)
wk (week)
hh (hour)
mi (minute)
ss (second)
ms (millisecond)
3.2.6
Zeichenkettenfunktionen
– lower(z)
wandelt alle Zeichen einer Kette z in Kleinbuchstaben um
– upper(z)
Umkehrfunktion
– replicate(z,i) wiederholt Zeichenkette z i-mal
3.2.7
Skalare Operatoren
– ermöglichen Operationen mit skalaren Werten Bsp.: Modulo-Operator %
Seite 4 von 7
75891906
3.3
Schlüssel und Constraints (Integrationsbedingungen)
3.3.1
Schlüssel
– PRIMARY KEY (Primärschlüssel) dient zur eindeutigen Identifizierung jeder Zeile einer Tabelle
– FOREIGN KEY (Fremdschlüssel) repräsentiert Beziehungen zwischen den Tabellen. Mit dieser
Beziehung können Aktionen weitergegeben werden; diese Aktionen sind das löschen (DELETE)
und das Aktualisieren (UPDATE);
– In der Primärtabelle muss in der referenzierten Spalte immer ein Primary Key
– Nur dann möglich, wenn gleicher Datentyp und gleicher Wertebereich
– UNIQUE KEY – stellt Eindeutigkeit der Spalte sicher, ein NULL Wert darf vorhanden sein
3.4
Grundform der SELECT – Anweisung
– SELECT {* | Distinct] spaltenname[n]}
– FROM tabellenname[n]
– WHERE spaltenname und die Bedinung
3.5
Boolesche Operatoren
– AND NOT OR
Normalisierung
1
Einseitige funktionale Abhängigkeit
Geburtstag
A
2
--->
--->
Sternzeichen
B
Volle funktionale Abhängigkeit
Datum
Uhrzeit
2.3.2010
7.30
2.3.2010
7.30
2.3.2010
9.25
Schulung (Datum, Uhrzeit, Raum, Dozent)
Raum
311
204
204
A
Dozent
--->
--->
B
Uhrzeit Raum Datum
B
Uhrzeit Raum Datum
--->
--->
A
Dozent
Dozent
Kinder
Prybush
Damm
Daraus folgt volle funktionale Abhängigkeit (Abhängigkeit in beide Richtungen)
3
Transitive Abhängigkeiten
Personalnummer (A)
1
2
3
4
5
–
–
–
–
1.
Abteilungsnummer (B)
1
1
2
3
2
Abteilungsname (C)
Verkauf
Verkauf
Verwaltung
Personal
Verwaltung
Personalnummer ist funktional unabhängig
Personalnummer bestimmt eindeutig Abteilungsnummer und Abteilungsname
Abteilungsnummer ist funktional von der Personalnummer abhängig
Abteilungsname ist voll funktional von der Abteilungsnummer abhängig
Pr_Nr
--->
Abt_Nr *
Seite 5 von 7
75891906
2.
PrNr
--->
Abt_Name **
3.
Abt_Nr
--->
Abt_Name *
4.
Pr_Nr
--->
(Abt_Nr,Abt_Name) *
* = funktionale Abhängigkeit, ** = transitiv Abhängig
– Die transitive Abhängigkeit A ---> C liegt vor wenn gilt:
A
--->
B
B
--->
C
Not B --->
A
4
Normalformen
4.1
NULLform
Eine Relation, die nicht den Regeln der 1. Normalform oder einer höheren genügt, wird als
unnormalisiert bezeichnet (NULLFORM)
Nachteile:
– Redundante Datenspeicherung
– Durch Redundanz bedingter höherer Speicherplatzbedarf
– Mutationsanomalien
– Umständliche Handhabung durch die variable Anzahl von Elementen.
4.2
1. Normalform
Nach der Auflösung der Wiederholungsgruppen ist der Primärschlüssel nicht mehr eindeutig und muss
neu gebildet werden aus dem alten Schlüsselfeld der Nullform und dem ersten Attribut mit
Wiederholungsgruppen.
– löst Wiederholungsgruppen auf;
– man nimmt bisherige Primärschlüssel und fügt 1. Wiederholungsspalte (z.B. AUTOR) hinzu;
– neuer Schlüssel wäre ISBN, AUTOR
4.3
2. Normalform
– verlangt einen eindeutigen Primärschlüssel
ISBN
--->
Titel
ISBN
--->
Seiten
ISBN
--->
Verlagsname
ISBN
--->
Verlagsort
ISBN
--->
PLZ
Autor
(ISBN, Autor)
--->
--->
ISBN
4.4
Geburtsjahr
Autorfunktion
{Titel, Seiten, Verlagsname, Verlagsort, PLZ}
3. Normalform
– Es müssen alle Abhängigkeiten von Nichtschlüsselattributen von Nichtschlüsselattributen beseitigt
werden
4.5
Boyce – Codd – Normalform
– Da festgestellt wurde, dass die dritte Normalform bestimmte Anomalien nicht beseitigen kann,
wurde sie durch so genannte Boyce – Codd – Normalform konkretisiert.
– Diese fordert, dass alle Attribute bzw. Attributkombination einer Relation, die ein anderes Attribut
funktional bestimmen, sich auch als Primärschlüssel der gesamten Relation eignen müssen.
Seite 6 von 7
75891906
5
Normalisierungslehre
5.1
Warum normalisieren?
–
–
–
–
–
–
–
Vermeidung von inkonsistenten Abhängigkeiten
Eliminierung von Datenredundanzen
Verbesserung der Performance bei Abfragen
Optimierung des logisches Datenmodells
Einfüge- Update- und Löschanomalien vermeiden
Beseitigung von Prozessdaten (z.B. Alter einer Person lässt sich aus dem Geburtsdatum errechnen)
Sicherung der Datenintegrität; Reduzierung der Wkt., dass die Datenintegrität durch
Datenmanipulation verletzt wird
Seite 7 von 7
Herunterladen