Datenbanken und

Werbung
131
KnowWare
,
4
€
SQL leicht gemacht
72 Seiten
Start mit
Datenbanken und
SQL
Petra Bilke
www.KnowWare.de
Deutschland: 4,- EUR Österreich: 4,60 EUR
Schweiz: 8 SFR Luxemburg: 4,70 EUR Italien: 5,50 EUR
2. Ausgabe
Acrobat Reader - Bestellung - Autoren gesucht
Acrobat Reader: Wie ...
F5/F6 öffnet/schließt die Ansicht Lesezeichen
Strg+F sucht
Im Menü Ansicht stellst du ein, wie die Datei gezeigt wird
STRG+0 = Ganze Seite STRG+1 = Originalgrösse STRG+2 = Fensterbreite
Im selben Menü kannst du folgendes einstellen:: Einzelne Seite,
Fortlaufend oder Fortlaufend - Doppelseiten .. Probiere es aus, um
die Unterschiede zu sehen.
Navigation
Pfeil Links/Rechts: eine Seite vor/zurück
Alt+ Pfeil Links/Rechts: Wie im Browser: Vorwärts/Zurück
Strg++ vergrößert und Strg+– verkleinert
Bestellung und Vertrieb für den Buchhandel
Bonner Pressevertrieb, Postfach 3920, D-49029 Osnabrück
Tel.: +49 (0)541 33145-20
Fax: +49 (0)541 33145-33
[email protected]
www.knowware.de/bestellen
Autoren gesucht
Der KnowWare-Verlag sucht ständig neue Autoren. Hast du ein Thema,
daß dir unter den Fingern brennt? - ein Thema, das du anderen Leuten
leicht verständlich erklären kannst?
Schicke uns einfach ein paar Beispielseiten und ein vorläufiges
Inhaltsverzeichnis an folgende Adresse:
[email protected]
Wir werden uns deinen Vorschlag ansehen und dir so schnell wie
möglich eine Antwort senden.
www.knowware.de
Inhalt
3
Vorwort ............................................................ 4
Der Operator IN .................................................40
Grundlagen ...................................................... 5
Der Bereichsoperator BETWEEN .....................41
Welche Aufgaben hat eine Datenbank? .......... 5
Der Operator LIKE ............................................42
Die Hauptbestanteile einer Datenbank............ 5
Ordnen von Daten (ORDER BY) ..................42
Das relationale Datenbankmodell ................... 6
Gruppenbildung mit GROUP BY und
Gruppenselektion mit HAVING .................43
Beziehungen ................................................... 7
Der Normalisierungsprozeß .......................... 12
Erste Normalform.............................................. 12
Zweite Normalform........................................... 13
Dritte Normalform............................................. 14
Der Entwurfsprozess..................................... 15
Die Datenbanksprache SQL in
verschieden Systemen.................................... 16
MS-Access.................................................... 17
Datenbank anlegen ............................................ 17
SQL nutzen........................................................ 17
MS-SQL-Server ............................................ 18
Datenbank anlegen ............................................ 18
Verknüpfen von mehreren Tabellen ..............45
Tabellen vereinigen............................................54
Unterabfragen ....................................................55
SQL-Anweisungen speichern und
ausführen.....................................................57
Benutzersichten (Views)....................................57
... in MS-Access-SQL ........................................57
... in MS-SQL-Server.........................................57
Anweisungen zur Datenmanipulation ..........60
UPDATE .......................................................60
Datensätze löschen ........................................61
Datenbankdesign ...........................................62
Tabellen ändern (ALTER TABLE) ...................62
Grundlagen der Datenbanksprache SQL
(Structured Query Language) ...................... 20
Löschen von Views, Indizes und Tabellen ....62
Regeln zur Eingabe von SQLAnweisungen.............................................. 21
Zugriffsschutz und Erteilung von
Rechten mit SQL ............................................63
Erstellen von Datenbanken........................... 22
Benutzer und Gruppen...................................63
Tabellen erstellen.......................................... 22
Systemberechtigungen...................................64
Möchtest du verhindern, dass mehrere
Datensätze mit identischer
Personalnummer erfasst werden, ist ein
Identifikationsschlüssel in Form des
Primärschlüssels zu bilden. ........................ 24
Objektberechtigungen....................................64
Tabellen indizieren ....................................... 25
Entziehen der Zugriffsrechte mit
REVOKE ....................................................65
Systemberechtigungen entziehen.......................65
Objektberechtigungen ........................................65
Anhang ............................................................66
Datensätze (Tupel) einfügen ......................... 26
Datenabfrage mit SELECT .......................... 28
Inhaltsanzeige einer Tabelle ......................... 29
Auswahl von Datensätzen mit WHERE ....... 31
Mathematische Aufbereitung von
Ergebnissen ................................................ 33
Mathematische Ausdrücke ................................ 33
Einsatz von Funktionen in mathematischen
Ausdrücken..................................................... 34
Zusammengesetzte Vergleiche ..................... 38
Die Operatoren NOT, AND und OR................. 38
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Vorwort
4
Vorwort
5 Jahre ist das SQL-Heft auf dem Markt. Die
Nachfrage ist ungebrochen. Nun möchte ich das
Angebot von Michael Maardt nutzen, in der
neuen Auflage mehr Seiten zu füllen und dir
somit umfangreichere Informationen zum Thema
Datenbanken und SQL zur Verfügung zu stellen.
Datenbanken sind in der heutigen Zeit von
immenser Wichtigkeit. Praktisch in jedem
Geschäftsbereich und auch im privaten Leben
fallen Daten und Informationen an, die verwaltet
werden wollen.
Die besprochenen Beispiele stehen zum
Download auf der Seite www.bilke.de/sql
bereit.
Als begleitendes Beispiel wird das Problem eines
Systemhauses geschildert, was vor kurzen einen
Bereich Schulung und Beratung eröffnet hat. Er
hat die Aufgabe Schulungs- und
Beratungsleistungen im Bereich der
Weiterbildung bereitzustellen.
Für die Datensammlungen eigenen sich
Datenbanken. Diese müssen gepflegt werden,
wenn sie nicht an Wert verlieren sollen. Alte,
ungültige oder falsche Daten bereiten Frust und
haben keinen Nutzen. Eine Datenbank bringt nur
dann einen hohen Wert, wenn mit Hilfe einer
ausgefeilten Abfragesprache auch Daten der
Sammlung hinzugefügt oder aktualisiert werden
können. Anliegen dieses Heftes ist es, dir die
Abfragesprache SQL näher zu bringen.
Das Kürzel SQL bedeutet Structured Query
Language oder Strukturierte Abfragesprache.
Das Haupteinsatzgebiet von SQL sind
Datenbank-Abfragen. SQL ist eine Teilsprache,
das heißt sie kann nicht allein verwendet werden,
sondern nur in Verbindung mit einer anderen
Programmiersprache oder einem speziellen
Datenbankprogramm.
In meinem Heft möchte ich mich zwei
Schwerpunkten widmen.
Zunächst werden wir uns mit einigen Grundlagen
zu den Datenbanken beschäftigen, da es schwer
ist, ohne Datenbankgrundkenntnisse, effektive
Dateistrukturen zu erstellen.
Im zweiten Teil des Heftes wirst du die Abfragesprache SQL (Structured Query Language)
kennenlernen, die von vielen Datenbanksystemen
genutzt wird.
Beherrschst du die Grundlagen von SQL, kannst
du in verschiedensten Datenbanksystemen und
unterschiedlichsten Rechnerplattformen Daten
auf einfache Art und Weise abrufen und
aktualisieren. Möchtest du meine Beispiele am
eigenen PC nachvollziehen, kannst du z.B.
Microsoft-Access, ORACLE oder MicrosoftQuery nutzen.
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
5
Grundlagen
Welche Aufgaben hat eine
Datenbank?
• Eine Datenbank ist eine Sammlung von
Daten, die sich auf ein bestimmtes Thema
oder einen bestimmten Zweck beziehen.
Das Beispiel in diesem Heft beruht. darauf,
dass ein Mitarbeiter für Weiterbildung eines
Unternehmens in einer Datenbank die
besuchten Schulungen der Betriebsangehörigen erfassen möchte.
• Eine Datenbank ermöglicht dem Benutzer
den Zugriff auf gespeicherte Daten, ohne dass
man wissen muss, wie die Daten im
Datenbanksystem organisiert sind.
• Eine Datenbank gewährleistet, dass kein
Benutzer ohne Zugriffsberechtigung Daten
sichten oder manipulieren kann.
• Eine Datenbank stellt sicher, dass es nicht
wegen Fehlmanipulationen des Benutzers
passiert, dass Daten zerstört werden oder der
ganze Datenbestand unbrauchbar wird.
Die Hauptbestanteile einer
Datenbank
SQL besitzt Elemente für folgende Aufgabenbereiche:
• Die Datendefinition (Data Definition
Language; DDL) wird benötigt, um die
Datenstruktur aufzubauen (Tabellen
einrichten, Felder definieren etc.).
• Die Datenmanipulation (Data Manipulation
Language; DML) wird genutzt um Daten
einzugeben, zu löschen und zu ändern. Auch
die Anweisung zur Datenabfrage wird zur
DML gezählt.
• Die Datensteuerung (Date Controll
Language; DCL) dient zur Wahrung der
Datenintegrität. Du kannst Datenbankbenutzer
einrichten und so die gespeicherten Daten vor
dem Zugriff unberechtigter Personen
schützen.
Der Formulareditor
erlaubt das Erstellen von Formularen zur
Dateneingabe und Datenänderung für den
Benutzer.
Der Berichtseditor
gibt die Möglichkeit, die gespeicherten Daten in
einer übersichtlichen Form darzustellen.
Das Datenbankverwaltungssystem
bildet den Kern der Datenbank und beinhaltet
alle für die gesamte Datenverwaltung
notwendigen Routinen.
Der Menüeditor
erlaubt es dem Benutzer per Knopfdruck
entsprechende Programme, Formulare oder
Berichte zu aktivieren.
Die Datenbanksprache
Weiterhin gibt es je nach Softwareprodukt
weitere Komponenten, wie z.B.
bildet die Schnittstelle zwischen dem Benutzer
und dem Datenbankverwaltungssystem. Bei
vielen Datenbanksystemen wird als
Datenbanksprache die Sprache SQL (Structured
Query Language) verwendet.
Netzwerkprogramme für Client/Server-Architekturen,
Programmierspracheninterfaces, grafik- und
mausunterstützte Abfragewerkzeuge für eine
vereinfachte Datenbankabfrage.
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
6
Das relationale Datenbankmodell
Ein Datenbankmodell dient der exakten
Beschreibung von Datenbankschemata. Bekannte
Datenbankmodelle sind das hierarchische
Modell, das Codasyl-Netzwerkmodell und das
hier beschriebene relationale Modell.
Bei relationalen Datenbanken werden die
Informationen geordnet nach Themenkreisen in
Form von Tabellen abgelegt. Dieses Datenmodell
ist einfach zu verstehen und zeichnet sich durch
Flexibilität bezüglich Strukturänderungen und ergänzungen aus.
Relationale Datenbanken bezwecken, dass
Redundanzen (mehrfaches Speichern von
gleichen Informationen) verhindert werden und
damit die Datenkonsistenz (Eindeutigkeit der
Daten) gewährleistet werden kann.
Im weiteren werden Begriffe verwendet, die kurz
erklärt werden. Die in Klammern stehenden
Bezeichnungen stammen aus der
Datenbanktheorie, die davor sind gebräuchliche
Informatikbezeichnungen.
Tabellenname (Entität)
Der Tabellenname erfasst einen Themenkreis,
welcher Elemente mit gleichen Merkmalen
umfasst. Im Heftbeispiel wurden die Tabellen
TEILNEHMER oder SCHULUNGEN genannt.
Feldname / Spaltenname (Attribut):
Der Feldname ist ein Element einer Tabelle, das
eine bestimmte Kategorie von Informationen
enthält, wie z.B. Vornamen oder Nachnamen von
Personen.
Datensatz (Tupel):
Ein Datensatz ist eine Zusammenstellung von
Daten über ein Objekt. Im unserem Beispiel sind
die Teilnehmer oder die Schulungen Objekte. Ein
Datensatz wird in einer Tabelle als Zeile
dargestellt.
Feldinhalt (Attributwert):
Tabelle (Relation):
Der Feldinhalt ist ein Datenwert.
Die Tabelle umfasst den Tabellennamen, die
Feldnamen und die Menge aller Datensätze.
Wertebereich (Domäne):
Die Tabelle hat einen eindeutigen Tabellennamen
und besitzt folgende Merkmale:
• Jede Spalte der Tabelle besitzt einen
eindeutigen Namen (Spaltenname) und einen
zugehörigen Wertebereich.
• Die Reihenfolge der Spalten und Zeilen ist
unerheblich.
• Es existieren keine zwei Zeilen, die identische
Werte besitzen.
Ein Wertebereich ist eine Gruppe von Datensätzen, die durch Einschränkung eines Feldes
auf bestimmte Feldinhalte definiert wird.
Nullwerte:
Wenn ein Feld einen Nullwert enthält, besitzt
dieses Feld keinen Feldinhalt und beinhaltet
somit keine Information. Der Nullwert darf nicht
mit der Zahl Null verwechselt werden. Die Zahl
Null stellt eine Information dar, der Nullwert
jedoch nicht.
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
7
Die erklärten Begriffe haben ich einem Schema zusammengefasst. Bei dem Beispiel handelt es sich
um einen Ausschnitt aus einer Personaltabelle.
Tabellenname: PERSONAL
Personalnummer Vorname
Name
⇐ Feldnamen
Ort
1002 Kai
Müller Eilenburg
1101 Guenter
Maus
Halle/Saale
1015 Erik
Wicki
Hamburg
1016 Ulrich
Müller Hohenpriessnitz
1005 Ede
Pfau
Leipzig
1100 Kerstin
Gans
Moertitz
1008 Eike
Taro
Musterdorf
1010 Jürgen
Marx
Musterdorf
1112 Hannes
Heik
Musterdorf
1113 Karl
Seppa
Musterdorf
1114 Karsten
Karn
Musterdorf
1017 Klaus
Ecke
Wurzen
⇐ Datensatz
⇐ Wertebereich
⇑
Feldinhalt
Beziehungen
In der Regel besteht eine relationale Datenbank
nicht nur aus einer Tabelle, sondern aus
mehreren. Die einzelnen Tabellen dürfen nicht
isoliert betrachtet werden. Zwischen den
Tabellen können Beziehungen bestehen. Die
Anzahl der möglichen Beziehungen ist begrenzt
und ergibt sich aus der Kombination der
möglichen Assoziationstypen.
Assoziation:
Eine Assoziation bestimmt, wie viel Datensätze
einer Tabelle 2 zu einem Datensatz der Tabelle 1
gehören können. Es gibt vier verschiedene
Assoziationstypen:
Assoziationstyp
Abkürzung
Datensatzanzahl in Tabelle 2
einfache Assoziation
1
genau ein Datensatz (1)
konditionelle Assoziation
c
kein oder genau ein Datensatz (0/1)
multiple Assoziation
m
mindesten ein Datensatz (>=1)
multipel-konditionelle Assoziation
mc
beliebig viele Datensätze (>=0)
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
8
Ein Beispiel für eine einfache Assoziation
Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine und in der zweiten spezielle
Personaldaten gespeichert. In beiden Tabellen muss genau ein Datensatz pro Person vorhanden sein.
Personal
PNR
Gehalt
Vorname
Name
PNR Gehalt
1002 Kai
Müller
1002 4500
1005 Ede
Pfau
1005 4900
1008 Eike
Taro
1008 5000
Ein Beispiel für eine konditionelle Assoziation
Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine Personaldaten und in der
zweiten spezielle Personaldaten gespeichert. In der zweiten Tabelle gibt es in Abhängigkeit davon, ob
die Person einen Pass besitzt, keinen oder genau einen Datensatz.
Personal
PNR
Pass
Vorname
Name
PNR Passnummer
1002 Kai
Müller
1002 4500
1005 Ede
Pfau
1008 5000
1008 Eike
Taro
Ein Beispiel für eine multiple Assoziation
Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine Personaldaten und in der
zweiten Tabelle die Anschriften der Haupt- und Nebenwohnsitze der Personen gespeichert. Pro Person
muss in der Tabelle Adressen mindestens ein Datensatz vorhanden sein. Herr Müller und Herr Pfau
sind mit jeweils 2 Datensätzen vorhanden, da beide über eine Nebenwohnung verfügen.
Personal
PNR
Adressen
Vorname
Name
PNR PLZ
Ort
Straße
1002 Kai
Müller
1002 04838 Eilenburg
Hallesche Str. 7
1005 Ede
Pfau
1002 22898 Hamburg
Musterstr. 2
1008 Eike
Taro
1005 04232 Leipzig
Nicoleiplatz 2
1005 09999 Muster
Allee 3
1008 09999 Musterdorf
Musterstr. 6
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
9
Ein Beispiel für multipel-konditionelle Assoziation
Es sind zwei Tabellen vorhanden. In der ersten Tabelle sind allgemeine Personaldaten und in der
zweiten Tabelle die Vornamen der Kinder gespeichert. Da Personen beliebig viele Kinder besitzen
können, gibt es pro Person kein, ein oder mehrere Datensätze.
Personal
PNR
Kinder
Vorname
Name
PNR Vorname
1002 Kai
Müller
1005 Eva
1005 Ede
Pfau
1005 Susi
1008 Eike
Taro
1008 Max
1008 Tim
1008 Tom
Jede Assoziation (Tabelle 1 zu Tabelle 2) besitzt auch eine Gegenassoziation (Tabelle 2 zu Tabelle 1).
Kombiniert man diese zwei Assoziationen miteinander, so erhält man eine Beziehung. Ausgehend von
den vier verschiedenen Assoziationstypen gibt es max. 16 verschiedene Beziehungstypen, welche in
folgender Tabelle aufgeführt sind:
1
c
m
mc
1
1-1
c-1
m-1
mc-1
hierarchische Beziehungen
c
1-c
c-c
m-c
mc-c
konditionelle Beziehungen
m
1-m
c-m
m-m
mc-m
netzwerkförmige Beziehungen
mc
I-mc
c-mc
m-mc
mc-mc
Für die obigen Beispiele lassen sich die Beziehungen wie folgt darstellen:
Personal
Personal
Personal
Personal
1
1
1
1
1
c
m
mc
Gehalt
Pass
Adressen
Kinder
Tabelle 1
Tabelle 2
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
10
Um Beziehungen zwischen den Tabellen
herstellen zu können, müssen die Begriffe
Identifikationsschlüssel und Fremdschlüssel
bekannt sein.
Identifikationsschlüssel (Primärschlüssel):
Jeder Datensatz einer Tabelle muss eindeutig
identifizierbar sein. Dies kann durch ein Feld
oder eine Kombination von Feldern gewährleistet
werden. Bei der Tabelle Personal bietet sich zum
Beispiel die Personalnummer als eindeutiger
Identifikationsschlüssel an.
Der Identifikationsschlüssel muss folgende
Kriterien erfüllen:
• Der Identifikationsschlüssel muss eindeutig
sein.
• Jeder neue Datensatz erhält sofort den
entsprechenden Wert des Identifikationsschlüssels.
Fremdschlüssel:
Ein Fremdschlüssel in einer Tabelle 2 ist ein Feld
oder eine Feldkombination, welche in einer
Tabelle l den Identifikationsschlüssel bildet.
Der Fremdschlüssel muss folgende Kriterien
erfüllen:
• Ein Fremdschlüssel in Tabelle 2 kann nur
diejenigen Feldinhalte annehmen, welche
bereits im Identifikationsschlüssel der Tabelle
1 existieren.
• Er darf somit nicht leer sein.
• Der Feldname von Identifikationsschlüssel
und Fremdschlüssel muß nicht identisch sein.
In Tabelle 1 (Personal) wurde als Identifikationsschlüssel die Personalnummer vergeben.
Um eine Beziehung herstellen zu können, braucht
man in Tabelle 2 einen Fremdschlüssel mit
entsprechenden Feldinhalten. In den obigen
Beispielen sind es wiederum die
Personalnummern.
Betrachten wir noch ein letztes Beispiel:
Es sind 2 Tabellen vorhanden. In der ersten Tabelle sind allgemeine Personaldaten und die Nummer
des Dienstwagens gespeichert. Die zweite Tabelle beinhaltet Autodaten und die Personalnummer des
jeweiligen Fahrzeugnutzers.
Personal
PNR
Autos
Vorname
Name
ANR
ANR
Marke
L-YY 1111
Skoda
1002 Kai
Müller
1005 Ede
Pfau
L-AD 1234
L-AD 1234
VW
1008 Eike
Taro
L-XX 1887
L-YY 1112
Audi
L-XX 1887
BMW
L-YY 1113
Ford
PNR
1005
1008
Jede Person hat kein oder genau einen Dienstwagen. Zu jedem Auto gehört kein oder genau ein
Fahrzeugnutzer.
Personal
Tabelle 1
Es handelt sich hier um eine c-c Beziehung.
c
c
Auto
Tabelle 2
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
11
Identifikationsschlüssel und Fremdschlüssel werden wie folgt vergeben:
Tabelle
Identifikationsschlüssel
Fremdschlüssel
Personal
PNR (Personalnummer)
ANR (Autonummer)
Auto
ANR (Autonummer)
PNR (Personalnummer)
Sieh dir die Inhalte der Fremdschlüssel etwas genauer an, dann wirst du feststellen, dass Feldwerte
nicht belegt sind. Sie haben einen Nullwert. Das widerspricht der Definition des Fremdschlüssels, wo
es heißt:
• Ein Fremdschlüssel in Tabelle 2 kann nur diejenigen Feldinhalte annehmen, welche bereits im
Identifikationsschlüssel der Tabelle 1 existieren.
• Er darf somit nicht leer sein.
Konditionelle und netzwerkförmige Beziehungen sind im vorgestellten Datenmodell somit nicht
zulässig und müssen deshalb in hierarchische Beziehungen umgewandelt werden.
Personal 1
c
Es wird eine neue Tabelle Fahrzeugnutzer
c
erstellt und somit die c-c Beziehung in
Fahrzeugnutzer
c
Auto
zwei 1-c Bedingungen umgewandelt.
c
1
Die Tabellen haben nun nachfolgende Feldinhalte:
Personal
PNR
Autos
Vorname
Name
ANR
Marke
1002 Kai
Müller
L-YY 1111
Skoda
1005 Ede
Pfau
L-AD 1234
VW
1008 Eike
Taro
L-YY 1112
Audi
L-XX 1887
BMW
L-YY 1113
Ford
Fahrzeugnutzer
PNR
ANR
1005 L-AD 1234
1008 L-XX 1887
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
12
Der Normalisierungsprozeß
Erste Normalform
Die Normalisierung bezweckt die redundanzfreie
Speicherung von Informationen innerhalb der
Tabellen. Unter redundanzfreier
Datenspeicherung versteht man, dass gleiche
Informationen nicht mehrfach gespeichert
werden.
Eine Tabelle ist nach der ersten Normalform
ausgerichtet, wenn alle elementaren
Informationen in einzelne Felder aufgeteilt
werden.
Um eine optimale Datenstruktur zu erreichen,
bedarf es verschiedener Techniken. Sie werden
im folgenden anhand eines einfachen Beispiels,
der Erfassung von Daten von
Schulungsteilnehmern eines Unternehmens,
beschrieben.
Zunächst werden alle notwendigen Informationen
zu der Problematik unsystematisch und
unstrukturiert gesammelt. Mir erscheint es
sinnvoll, folgende Daten zu erfassen:
Die Arbeit mit einem Datenbanksystem wird
wesentlich erleichtert, wenn die Feldnamen nach
folgenden Regeln vergeben werden:
• Feldnamen sollen kurz und prägnant sein.
• Sie sollen Hinweis auf den Feldinhalt
gewähren.
Unter Berücksichtigung dieser Regeln ergeben
sich die Feldnamen.
Feldliste
Feldnamen
Teilnehmervorname
Vorname
Teilnehmername
Name
• Personendaten der Kursteilnehmer
Straße
Straße
• Kursort
Postleitzahl
PLZ
• Kursbezeichnung
Ort
Ort
• Kursthema
Geburt
Geburt
Geschlecht
Geschlecht
Gehalt
Gehalt
Schulungsbezeichnung
Schulungsbezeichnung
Kursbeginn
Kursbeginn
Kursende
Kursende
Veranstaltungsort
Veranstaltungsort
Veranstalteradresse
Adresse
• Datum der Kursbesuche
Man hat so eine Grobstrukturierung der Daten
erreicht, die bereits zu einer Tabelle
zusammengefasst werden könnte.
Der Informationsgehalt der Tabelle ist noch sehr
allgemein und ungenau. Um eine bessere
Datenstruktur zu erreichen, kann man auf die
Methoden des Normalisierungsverfahrens
zurückgreifen.
Veranstaltername
Veranstalter
Kurskosten
Kurskosten
Veranstaltung besucht
Besucht
Einen Tabellenausschnitt der gefüllten Datei könnte folgendem gleichen:
Vorname
Name
...
Schulungsbezeichnung
Kai
Kai
Klaus
Klaus
Manfred
Elfi
Elfi
Eike
...
Müller
Müller
Ecke
Ecke
Stach
Kaufmann
Kaufmann
Taro
...
...
...
...
...
...
...
...
ABA Schulung
Grundlagen PC / Windows XP
ABA Schulung
Teamtraining
Projektmanagement
Laborschulung 2
Grundlagen PC / Windows XP
Telefonmarketing-Training
...
...
Kurskosten
800
500
800
1400
750
1000
500
1210
...
Kursbeginn
14.03.02
13.12.02
14.03.02
07.04.02
07.11.01
14.04.02
13.12.02
26.04.02
..
...
...
...
...
...
...
...
...
...
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
13
Man erkennt, dass in dieser Form Redundanzen
auftreten. Für jeden neuen Lehrgang, der besucht
wird, müssen die Personaldaten noch einmal
aufgeführt werden. Auch die Schulungsinformationen sind für jeden Teilnehmer
mehrmals vorhanden.
unterscheidbar macht; und zwar ohne
Ausnahme. Es dürfen keine Dateninhaltswiederholungen vorkommen.
Zweite Normalform
Die Personaldaten und die Schulungsinformationen werden in zwei Tabellen
untergebracht. Es werden neue Felder - die
Personalnummer und die laufende_NR - zur
eindeutigen Identifizierung eingeführt.
Zur Erfüllung dieser Anforderung ist das
Verständnis sogenannter Identifikationsschlüsselfelder (vgl. Seite 10) von großer
Bedeutung.
Die zweite Normalform basiert auf der ersten
Normalform und fordert eine eindeutige
Identifikationsmöglichkeit der einzelnen
Datensätze. Es muss also ein Kriterium gefunden
werden, dass die Datensätze eindeutig
Personal
Personal- Vorname Name
Strasse
nummer
1002
1005
1008
1010
1015
1016
1017
1100
...
Hallesche Str. 16
Nicoleiplatz 2
Musterstr. 6
Musterstr. 12
Bolten-Weg 3
Weide Str. 2 a
Schulze-Str. 11
Hauptstr.10
...
Kai
Ede
Eike
Jürgen
Erik
Ulrich
Klaus
Kerstin
...
Müller
Pfau
Taro
Marx
Wicki
Müller
Ecke
Gans
...
PLz
Ort
04838
04232
09999
09999
22587
04838
04808
04838
...
Eilenburg
Leipzig
Musterdorf
Musterdorf
Hamburg
Hohenpriessnitz
Wurzen
Moertitz
...
Geburt
Geschlecht
28.12.51
02.08.52
10.09.47
22.03.56
09.07.50
02.01.51
13.04.55
19.03.61
...
Gehalt
M
M
M
M
M
M
M
W
...
1800
3000
2700
1900
2300
4900
1300
3000
...
Schulung
laufende NR
1
2
3
4
5
6
7
8
9
10
11
Schulungsbezeichnung
ABA Schulung
Laborschulung 2
Teamtraining
Grundkurs Excel
Grundlagen PC / Windows XP
Grundkurs Word
Grundkurs Powerpoint
Projektmanagement
Telefonmarketing-Training
Personalplanung in der Praxis
Arbeitszeugnisse richtig
formulieren & analysieren
Personaldatenbank
KursKursende Veranstaltbeginn
ngsort
14.03.02
15.03.02 Mannheim
14.04.02
16.04.02 Leipzig
07.04.02
08.04.02 Berlin
25.11.02
26.11.02 München
13.12.02
13.12.02 Chemnitz
14.12.02
15.12.02 Leipzig
04.01.02
04.01.02 Leipzig
07.11.01
07.11.01 Berlin
26.04.02
27.04.02 Rostock
03.09.02
04.09.02 Essen
18.09.02
19.09.02 Essen
mc
1
Adresse Veranstalter
...
...
...
...
...
...
...
...
...
...
...
S&B
S & B Leipzig
S & B Berlin
S&B
S&B
S & B Leipzig
S & B Leipzig
S & B Berlin
S & B Rostock
S & B Essen
S & B Essen
Die beiden Tabellen besitzen eine mc-mc
Beziehung.
1
mc
Schulungsdatenbank
Kurskosten
800
1000
1400
600
900
600
600
750
1210
1780
980
mc
Diese ist nicht zulässig und muss aufgelöst werden.
Teilnehmer
Durch Einführung einer neuen Tabelle Teilnehmer
mc
wird die eine mc-mc Beziehung in zwei 1-mc
Beziehungen umgewandelt.
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
14
Diese neue Tabelle könnte folgende Inhalte haben:
Teilnehmer
laufende NR
1
1
1
1
2
2
3
3
...
Personalnummer
1002
1017
1101
1429
1114
1439
1010
1015
...
Besucht
Ja
Ja
Ja
Ja
Ja
Ja
Ja
Ja
..
Dritte Normalform
Die dritte Normalform basiert auf der zweiten
Normalform und stellt eine weitere Verfeinerung
dar. Es dürfen innerhalb einer Tabelle die
Feldwerte nur vom Identifikationsschlüssel
abhängig sein und untereinander keine
Abhängigkeiten haben.
Wenn du dir z.B. die Personaltabelle ansiehst,
stellst du fest, dass sich diese Tabelle bereits in
der 3. Normalform befindet. Ein Name kann z.B.
mehrmals auftreten und dient nicht zur
eindeutigen Identifikation des Vornamens oder
der Anschrift.
Auch die Tabelle TEILNEHMER befindet sich
bereits in der dritten Normalform.
Anders sieht das bei der Schulungstabelle aus.
Hier könnte man anhand der Veranstalternummer
eindeutig auf Veranstalter, Veranstalteradresse
und Veranstaltungsort schließen. Diese Daten
sind zu separieren. Die Tabelle SCHULUNG muss
also weiter unterteilt werden. Die beiden
aufgeteilten Tabellen siehst du hier:
Schulung
laufende_NR
Schulungsbezeichnung
1
2
3
4
5
...
Kurskosten
ABA Schulung
Laborschulung 2
Teamtraining
Grundkurs Excel
Grundlagen PC / Windows XP
...
800
1000
1400
600
500
...
Kursbeginn
Kursende
14.03.02
14.04.02
07.04.02
25.11.02
13.12.02
...
15.03.02
16.04.02
08.04.02
26.11.02
13.12.02
...
Veranstalter_NR
1
4
5
2
3
..
Veranstalter
Veranstalter_NR
Veranstaltungsort
Adresse Veranstalter
1
4
5
2
3
6
7
Mannheim
Leipzig
Berlin
München
Chemnitz
Rostock
Essen
...
...
...
...
...
...
...
S & B Mannheim
S & B Leipzig
S & B Berlin
S & B München
S & B Chemnitz
S & B Rostock
S & B Essen
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Grundlagen
Personaldatenbank
1
15
Zusammenfassend sind hier die
mc
Beziehungen aller vier Tabellen
Teilnehmer
dargestellt.
mc
Schulungsdatenbank
1
1
m
Veranstalter
Der Entwurfsprozess
Der Entwurfsprozess kann kein geradliniges
"Kochrezept" darstellen, bei dem aus der vage
formulierten Aufgabenstellung automatisch die
perfekte Datenbankapplikation resultiert.
Vielmehr handelt es sich um einen Prozess, bei
dem ein schrittweises Entwurfsverfahren immer
wieder angewendet wird, bis zuletzt ein Datensystem resultiert, welches alle gestellten
Anforderungen erfüllt. Dieser Prozess kann
folgenderweise dargestellt werden:
Bestimme den Zweck der Datenbank.
Sammle alle Informationen, die du erfassen
möchtest.
Lege fest, welche Tabellen notwendig sind. Ordne
die relevanten Informationen verschiedenen
Themen zu, z.B. Teilnehmer oder Lehrgänge. Für
jedes dieser Themen wird in der Datenbank eine
Tabelle erstellt.
Bestimme, welche Felder zur Aufnahme der
Informationen benötigt werden
Definiere Identifikationsschlüssel und
Fremdschlüssel.
Vereinbare die Beziehungen zwischen den
einzelnen Informationen. Sieh dir jede Tabelle an
und entscheide, in welcher Beziehung die Daten
dieser Tabelle zu den Daten anderer Tabellen in
der Datenbank stehen. Füge eventuell in die
Tabellen weitere Felder hinzu oder erstelle neue
Tabellen.
Ein gut durchdachter Datenbankentwurf kann
somit folgende Probleme vermeiden helfen:
• Nachträgliche Datenstrukturänderungen
Sie haben meist Auswirkungen auf andere
Bereiche der Anwendung. So müssten
Formulare oder Berichte ebenfalls verändert
werden.
• Langsame Zugriffszeiten
• Datenredundanzen
Sie sind problematisch, wenn sich der
redundante Teil einer oder der redundante Teil
in einer anderen Tabelle ändert. Es muss
immer dafür gesorgt werden, dass die zu
ändernde Information auch in allen
Datenbereichen geändert wird. Das gleiche
Problem tritt auch bei Löschvorgängen auf.
Werden redundante Datenteile vergessen zu
löschen, entstehen sog. "Datenleichen".
• Dateninkonsistenzen
Sie treten auf, wenn Datenteilbereiche sich
ändern, diese Änderung aber an betroffene
andere Datenteilbereiche nicht weitergegeben
werden.
Erstelle nun die Tabellen und einige Datensätze
mit Beispieldaten. Prüfe, ob damit die
gewünschten Ergebnisse erzielt werden und nimm
bei Bedarf Änderungen vor.
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
16
Die Datenbanksprache SQL in verschieden Systemen
Die Datenbanksprache SQL in verschieden Systemen
Das relationale Datenbankmodell wurde 1970
von Dr. E. F. Codd eingeführt. Auf dieser Basis
wurde 1974 von IBM die Datenbanksprache
SEQUEL (Structured English QUEry Language)
entwickelt, die im Jahr 1976 zu SEQUEL2
weiterentwickelt wurde. In den ersten kommerziell verfügbaren relationalen Datenbanksystemen wurde eine Untermenge dieser Sprache
integriert, die SQL genannt wurde. Diese hat im
Laufe der Zeit verschiedene Normungsprozesse
durchlaufen, die als SQL-86, SQL-89, SQL-92
oder SQL-99 bekannt geworden sind.
Die Umsetzung des firmenunabhängigen Standards in die Datenbankprodukte nimmt gewisse
Zeit in Anspruch. Die meisten im Einsatz befindlichen Datenbanken unterstützen daher nur
SQL92.
Dank der beschriebenen Normung verfügen wir
heute über zahlreiche Implementierungen von
SQL, wie z.B. Oracle, MS-Access, MS-SQLServer, MySQL. Welches System du bei der
Erstellung deiner Übungen nutzt, bleibt dir selbst
überlassen.
Im vorliegenden Heft nutze ich zur Demonstration MS-Access und den MS-SQL-Server.
Bist du speziell an der Problematik MySQL
interessiert, empfehle ich das KnowWare
EXTRA Heft 7 „PHP & MySQL - dynamische
Webseiten“.
Nachdem du dich für ein Datenbanksystem
entschieden hast, besteht der nächste Schritt
darin, eine Datenbank anzulegen. Sie soll den
Namen SCHULUNG erhalten.
Je nach Produkt gibt es verschiedene Verfahren
die Datenbank SCHULUNG anzulegen. Bei
einigen Datenbanksystemen steht dir der Befehl
CREATE DATABASE Schulung
zur Verfügung. Schau am besten in der jeweiligen Datenbankdokumentation nach, ob dir
dieser Befehl zur Verfügung steht und welche
Parameter noch anzugeben sind.
Der SQL-92-Standard definiert keinen Mechanismus zum expliziten Erzeugen einer
Datenbank. Das ist Aufgabe der jeweiligen
Datenbankprodukte.
Verschiedene Systeme kannst du als Test- oder
Vollversion erhalten.
• kostenloser ORACLE9I Download
otn.oracle.com/software/content.html
• SQL SERVER als Evaluierungspaket
www.microsoft.com/germany/sql/
• kostenloser Download von MYSQL
www.mysql.de/downloads/index.html
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Die Datenbanksprache SQL in verschieden Systemen
MS-Access
SQL nutzen
MS-Access ist ein relationales Datenbanksystem,
in dem die Vorzüge von WINDOWS Übersichtlichkeit und leichte Bedienbarkeit - mit
der Leistungsfähigkeit einer professionellen und
bedienerfreundlichen Datenbank kombiniert sind.
Als vor Jahren MS-Access 1.0 vorgestellt wurde,
konnte sich kaum einer vorstellen, dass eine
Datenbank für den Personalcomputer, die nicht
xBase-kompatibel (xBase - Programmiergrundlage von z.B. dBase, Clipper u.a.) war,
bedeutende Marktanteile erzielen kann. Heute
jedoch hat Microsoft auf dem Datenbankmarkt
zahlreiche Mitbewerber aus dem Rennen
geworfen. Mittlerweile steht uns die Version MS
Access 2002 zur Verfügung. Um SQL-Befehle zu
testen, kannst du jede verfügbare MS-Accessversion nutzen.
Wähle nun das Register ABFRAGE. Um SQLAnweisungen einzugeben, ist immer eine neue
Abfrage zu erstellen. Drücke also auf die
Schaltfläche NEU.
17
Das Dialogfenster TABELLE ANZEIGEN schließt
du.
Im Abfragefenster klickst du in der Symbolleiste
auf die Schaltfläche SQL. Eine zweite
Möglichkeit zum Start von SQL ist, dass du aus
dem Menü ANSICHT den Befehl SQL wählst.
Datenbank anlegen
Nachdem du MS-Access gestartet hast, wirst du
über einen Assistenten aufgefordert, eine
Datenbank anzulegen oder eine vorhandene
Datenbank zu öffnen. Alternativ kannst du aber
auch zum Anlegen einer Datenbank den
Menüpunkt DATEI | NEU nutzen.
Es öffnet sich ein Abfragefenster, in das die
jeweilige SQL-Anweisung eingetragen wird.
Möchtest du eine Anweisung abspeichern, so
klicke auf das Diskettensymbol oder wähle
ABFRAGE SPEICHERN UNTER... im Menü DATEI.
Es ist ein Abfragename einzugeben, der dann im
Datenbankfenster erscheint. Jederzeit kann von
dort auf die Taste Entwurf geklickt und so die
SQL-Anweisung geändert werden.
Soll die Anweisung ausgeführt werden, klicke in
oder nutze im Menü
der Symbolleiste auf
Ansicht das Untermenü Ausführen.
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
18
Die Datenbanksprache SQL in verschieden Systemen
MS-SQL-Server
Die Antwort von Microsoft auf die OracleDatenbank heißt MS-SQL Server.
Um eine Datenbank anzulegen, markiere den
Ordner Datenbank und wähle den Menüpunkt
VORGANG / NEUE DATENBANK.
Der MS-SQL-Server ist ein RDBMS-System
(Relational Database Management System ) für
Client / Server.
Ein Client ist in diesem Zusammenhang eine
Systemkomponente, die Dienste oder Ressourcen
von anderen Komponenten des Systems
anfordert.
Ein Server ist eine Systemkomponente des
Systems, die Dienste oder Ressourcen anderen
Komponenten des Systems bereitstellt.
Anders als bei dateibasierten Systemen, wie z.B.
bei MS-Access werden bei Client / Server
Systeme die Datenbankdienste vom Client
getrennt. Die Datenbankdienste werden auf dem
leistungsstarken Server durchgeführt. Auf dem
Clientrechner läuft die Anwendung, die den
Datenzugriff gestaltet.
Datenbank anlegen
Für die adminisistrativen Aufgaben steht dir der
Enterprise Manager der SQL Servers zur
Verfügung.
Gib den Dateinamen SCHULUNG ein. In der
Registerkarte Datendateien kannst du den
Speicherort und die Anfangsgröße festlegen. Für
unsere Übungen solltest du die
Standardeinstellungen übernehmen. Für das
Transaktionsprotokoll übernimmst du auch die
Standardeinstellungen. Im Transaktionsprotokoll
werden alle Änderungen für den Fall der
Wiederherstellung der Daten aufgezeichnet.
Für die Eingabe der SQL-Befehle hast du
mehrere Möglichkeiten.
Auf der Ebene der Kommandozeile stehen dir die
Programme ISQL bzw. OSQL zur Verfügung. Mit
ISQL erfolgt die Kommunikation mit dem
Datenbankserver über die DB-Library. Das
Programm OSQL kommuniziert mittels ODBC
mit dem Datenbankserver.
Um die Datenbank anzulegen, starte den
Enterprise Manager und wähle den Datenbankserver aus.
Im Ordner Datenbanken befinden sich alle auf
dem System befindlichen Datenbanken. Die
Datenbanken MASTER, MODEL, MSDB und
TEMPDB sind Systemdatenbanken und sollten
nicht verändert werden. Bei NORTHWIND und
PUBS handelt es sich um Testdatenbanken.
Um z.B. OSQL zu nuten, gib in der Eingabeaufforderung zunächst
osql -?
ein. Als Ergebnis siehst du eine Übersicht aller
Parameter.
Die Anmeldung an den Datenbankserver erfolgt
über den Befehl
osql -S Server -U Benutzername -P
Kennwort
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
Die Datenbanksprache SQL in verschieden Systemen
Anschließen kannst du deine SQL-Befehle
eingeben.
Komfortabler jedoch ist die Befehlseingabe über
den QUERY ANALYSER. Nach dem Start ist
wieder der Benutzername und ein Kennwort zur
Anmeldung am Datenbankserver einzugeben.
In einem Datenbankfenster können nun die
Befehle eingegeben werden.
© Petra Bilke & KnowWare Verlag - Start mit Datenbanken und SQL - 14.09.03
19
Herunterladen