Relationale Datenbanken

Werbung
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
Fachoberschule am Beruflichen Schulzentrum e.o. Plauen
Facharbeit
in der Fachrichtung Technik
im Fach Informatik
Entwicklung einer MySQL – Datenbank
von
Max Epperlein
FOSTLA04
Betreuer: Herr Taschik
Ort, Datum: 03. März 2005
Seite 1 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
Inhaltsverzeichnis
1 Erläuterung ...................................................................................... 3
1.1 Facharbeitsbeschreibung............................................................. 3
1.2 Facharbeitsziel .............................................................................. 3
2 Einführung in Relationale Datenbanken .................................... 3
2.1 Datenbanken.................................................................................. 3
2.2 Relationale Datenbank-Modelle ................................................... 4
2.3 Datenbank – Management – Systeme (DBMS) .......................... 5
2.4 SQL (Structured Query Language) .............................................. 6
3 Normalisierung des Datenbank-Modells ................................... 7
3.1 Ziel der Normalisierung ................................................................ 7
3.2 Erste Normalform (1. NF).............................................................. 7
3.3 Zweite Normalform (2. NF)............................................................ 8
3.4 Dritte Normalform (3. NF) ............................................................. 9
4 Implementierungsprozess .......................................................... 10
4.1 MySQL als Datenbank-Management-System ........................... 10
4.2 Implementierungsphase ............................................................. 10
4.2.1 PHP (Hypertext Preprocessor)............................................. 10
4.2.3 Anlegen der Datenbasis ....................................................... 11
4.2.4 Einfügen, Bearbeiten und Suchen der Daten ..................... 11
5 Zusammenfassung ...................................................................... 12
6 Anhang ........................................................................................... 13
6.1 Logisches Datenbankmodell...................................................... 13
6.2 Literaturverzeichnis .................................................................... 14
6.3 Selbstständigkeitserklärung ...................................................... 14
Seite 2 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
1 Erläuterung
1.1 Facharbeitsbeschreibung
Eine Vorüberlegung vor Begin der Facharbeit war es, etwas zu schaffen, was
auch im weiteren Schulalltag Verwendung finden könnte. Durch die vorher
absolvierte Berufsausbildung und die Absicht, auch in Zukunft im
Informatikbereich tätig zu sein, entschloss ich mich, die Facharbeit im Fach
Informatik zu schreiben.
1.2 Facharbeitsziel
Das Ziel der Facharbeit ist die Entwicklung einer MySQL – Datenbank zur
Archivierung des Facharbeitenbestandes unserer Schule. Um die Nutzung,
Administration und Pflege der Datenbank zur erleichtern, wird zusätzlich eine
Anwendung mit Benutzeroberfläche entworfen. Somit können die
Facharbeiten und die dazugehörigen Schülerdaten einfach verwaltet und
schnell abgerufen werden.
2 Einführung in Relationale Datenbanken
2.1 Datenbanken
Der Begriff Datenbank wird in der Literatur als eine zweckgerichtete,
strukturierte Sammlung von Daten, die einen Realitätsausschnitt abbilden und
logisch miteinander in Beziehung stehen, bezeichnet. Ein Beispiel für eine
nichtelektronische Datenbank ist eine Bibliothek. In dieser werden Bücher,
Zeitschriften, Dokumente gesammelt und dem Nutzer strukturiert zur
Verfügung gestellt. Der hat dann mittels Karteikarten oder dem ZeitschriftenIndex die Möglichkeit, den Bibliothekbestand nach beliebigen Datensätzen
anhand unterschiedlicher Suchkriterien zu durchforsten. Voraussetzung dafür
ist jedoch eine exakte Pflege des Datenbestandes, die bei Bibliotheken eine
schwierige Aufgabe darstellt. Ein weiterer Nachteil gegenüber der
Seite 3 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
elektronischen Speicherung einer Datenbank ist der nicht unerhebliche
Zeitaufwand für die Suche von Informationen und der enorme Raumbedarf
von Bibliotheken.
2.2 Relationale Datenbank-Modelle
Eine relationale Datenbank organisiert den elektronischen Datenbestand in
Form von Tabellen, die sich wiederum aus Zeilen und Spalten
zusammensetzten. Aus Benutzersicht besteht jede relationale Datenbank also
nur aus zweidimensionalen Tabellen. In der folgenden Abbildung sind die
Tabellenbestandteile und deren Bezeichnungen dargestellt.
Informationstheoret. Tabellenorientierte
Begriffe
Bezeichnungen
Datenorientierte
Bezeichnungen
Relation
Tabelle
Tabelle
Entität
Tabellen – Kopf
Objekt – Bezeichner
Tupel
Tabellen – Zeile
Datensatz
Attribut
Tabellen – Spalte
Attributwert
Tabellen – Feld
Attribut, Merkmal,
Eigenschaft
Attributwert, Ausprägung
eines Merkmals
Abbildung 1-1: Bestandteile einer Datenbanktabelle
Zur Begrenzung von Redundanzen müssen die Daten auf mehrere Tabellen,
die miteinander in Beziehung stehen, verteilt werden (siehe: 3 Normalisierung
des Datenbankmodells). Dadurch lassen sich Daten leicht ändern, hinzufügen
und löschen, was wiederum eine hohe Flexibilität gewährleistet. Außerdem ist
die Anwendungsentwicklung bei vollständiger Implementierung des SQL
Standards (siehe: 2.4 SQL) im DBMS einfach und schnell realisierbar. Der
Nachteil dieses Modells besteht jedoch darin, dass große relationale
Datenbanken eine hohe Rechnerleistung erfordern und bei Datenzugriffen auf
eine Vielzahl von Tabellen das Laufzeitverhalten verschlechtern können.
Dennoch überwiegen die Vorteile der relationalen Datenbank – Architektur.
Deshalb wird diese von nahezu allen neueren Datenbank - Management
Systemen verwendet.
Seite 4 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
2.3 Datenbank – Management – Systeme (DBMS)
Für das Anlegen, Verwalten und Pflegen elektronischer Datenbanken wird
neben der eigentlichen Datenbank zunächst eine Software benötigt, die dem
Benutzer diese Funktionen zur Verfügung stellt. Diese Software und die damit
verbundene Daten Zugriffsverwaltung bezeichnet man als Datenbank Management - System.
Organisationsprinzip eines modernen Datenbanksystems
Datenbank-Applikationen
Anwendung n
Benutzeroberfläche (Menüs, Formulare)
Anwender-Operationen
(Datenpflege, Abfragen, …)
Anwendung 2
Anwendung 1
Datenbankverwaltungssystem
(z.B. DB2, Informix, MySQL, Oracle)
DBMS
(Datenbank-Management-Sytem)
(logische Daten-Zugriffsverwaltung)
Datenbasis
Datenbank
(physisch gespeicherte Daten)
Abbildung 1-2: Überblick; Organisationsprinzip moderner Datenbanksysteme.
Nahezu alle modernen Datenbanksysteme basieren auf der ISAM –
Architektur (Index Sequential Access Method). Dieses indexsequentielle
Zugriffsverfahren stellt eine Weiterentwicklung der B-Baum-Architekturen dar
und gewährleistet sehr hohe Funktionssicherheit und kurze
Datenzugriffszeiten auch bei sehr großen Datenmengen durch binäre
Indexblocksuche und sequentielle Datenblocksuche. Mit anderen Worten
Seite 5 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
werden die Daten anhand des Schlüsselwertes binär und die dazugehörigen
Datenblöcke sequentiell nach Übereinstimmung mit der Suchanfrage
durchforstet.
2.4 SQL (Structured Query Language)
SQL wurde in Verbindung mit der Entwicklung des relationalen
Datenbankmodells geschaffen und ist eine beschreibende, mengen orientierte
DBMS – Zugriffssprache. Diese stellt die Kommunikation zwischen
Anwendung und Datenverwaltungssystem sicher. Da die
Datenbankanwendung fast ausschließlich von mehreren Benutzern zu
unterschiedlichen Zwecken, wie zum Beispiel zur Administration, Pflege oder
zum Informationsgewinn genutzt werden, stellt SQL fünf Kommandoklassen
bereit. Es kann so sichergestellt werden, dass jede Benutzerebene zwar über
das DBMS mit der Datenbasis kommunizieren kann, jedoch nur die für die
explizite Nutzung vorgesehenen Maßnahmen zur Verfügung stehen.
SQL – Kommandoklassen
DAL
DDL
DQL
DML
TCL
Database
Administration
Language
Database
Definition
Language
Data
Query
Language
Data
Manipulation
Langueage
Transaction
Control
Language
Create Database
Install Database
Check Database
Alter Database
Alter Password
Grant
Revoke
Deinstall Database
Drop Database
Create Table
Create Index
Create View
Alter Table
Drop View
Drop Index
Drop Table
Select
Update
Insert Into
Delete...From
Connect To
Disconnect
Select... into
Commit
Rollback
Abbildung 1-3: Übersicht; SQL-Kommandoklassen
SQL ist somit das grundlegende Werkzeug für die Interaktion mit dem
Datenbankverwaltungssystem und ist als weltweiter Standard anerkannt.
Seite 6 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
3 Normalisierung des Datenbank-Modells
3.1 Ziel der Normalisierung
Die Normalisierung des Datenbankmodells dient der Entfernung
unerwünschter Datenredundanzen und dadurch der Vermeidung von Update
- Anomalien. Update - Anomalien sind Schwierigkeiten mit den Insert -,
Update- und Delete – Operationen einer Datenbank, die auf die Datenstruktur
zurückzuführen sind. Die Normalisierung ist Teil der Datenmodellierung und
liefert als Ergebnis ein logisches Datenbankmodell mit Tabellen und deren
Assoziationen. Im Vorfeld der Normalisierung muss zunächst jedoch die
gesamte zu erfassende Informationsstruktur ermittelt und deren logische
Beziehungen analysiert werden.
Die einzelnen Normalformen sind Richtlinien für die Entwicklung
redundanzarmer Datenbankmodelle und helfen zum Teil Integritäts- und
Inkonsistenz- Fehlerquellen zu vermeiden. Im folgenden Abschnitt werden die
einzelnen Normalisierungsformen im direkten Zusammenhang mit der
Facharbeiten Datenbank erläutert, wobei jedoch aus Platzgründen nur auf
einen geringen Teil der vorhandenen Entitäten eingegangen werden kann.
3.2 Erste Normalform (1. NF)
Eine Entität befindet sich in der ersten Normalform, wenn alle ihre Attribute nur
einen einzigen Wert besitzen. Der Wert jedes Attributes muss elementar und
atomar sein.
Schüler(1)
Schüler(2)
Id
Schülername
Id
Name
Vorname
25
Mustermann, Hans
25
Mustermann
Hans
…
…
…
…
…
Abbildung 2-1: Auszug; Entität Schüler(2) entspricht der ersten NF.
Seite 7 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
In der Entität Schüler(1) der Abbildung 2-1 setzt sich das Attribut Schülername
aus dem Nach- und Vornamen zusammen und besitzt somit zwei Werte. Wie
in Schüler(2) dargestellt wird Schüler nun in die Attribute Name und Vorname
zerlegt. Das Ergebnis Schüler(2) entspricht nun der ersten Normalform.
3.3 Zweite Normalform (2. NF)
Eine Entität befindet sich in der zweiten Normalform, wenn sie bereits in der
ersten Normalform vorliegt und alle nicht identifizierenden Attribute von der
eindeutigen ID der Entität abhängen. Mit anderen Worten muss jede Spalte,
außer Id, da sie den Primärschlüssel einer Zeile bildet, von der Tabelle
Schüler selbst funktional abhängig sein.
Schüler
Id
SchName
SchVname
Anschrift
Ort
Plz
25
Mustermann
Hans
Mühlweg 4
Bad Elster
08645
…
…
…
…
Abbildung 2-2: Auszug; Entität Schüler, entsprechend der ersten NF
Durch das Prüfen der in Abbildung 2-2 dargestellten Attribute fällt auf, dass die
Attribute Anschrift, Ort, Plz keine unmittelbare funktionale Abhängigkeit zu der
Entität Schüler aufweisen, da für mehrere Schüler die gleiche Adresse
vorhanden sein kann. Deshalb wird Adresse als neue Entität mit den
Attributen Anschrift, Ort, Plz in die Datenbank aufgenommen. Nun werden die
Attribute der beiden Entitäten über Primär- und Sekundärschlüssel
miteinander verknüpft.
Die daraus entstandenen Änderungen der Tabellen und deren Merkmale, die
jetzt der zweiten Normalform entsprechen, sind in der Abbildung 2-3
aufgeführt.
Seite 8 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
Schüler
Id
SchName
Adresse
SchVname AdressId
Id
Anschrift
…
25 Mustermann Hans
1
1
Mühlweg 4
…
…
…
…
…
…
…
…
Abbildung 2-3: Auszug; Entitäten Schüler und Adresse, der zweiten NF entsprechend
3.4 Dritte Normalform (3. NF)
Eine Entität befindet sich in der dritten Normalform, wenn sie bereits in der
zweiten Normalform vorliegt und keine funktionalen Abhängigkeiten zwischen
Nichtschlüsselattributen bestehen.
Die Tabellen der Facharbeiten Datenbank erfüllen durch die Realisierung der
zweiten Normalform bereits die Kriterien der dritten Normalform (siehe: 6.1
Logisches Datenbankmodell). Eine Verletzung der dritten NF läge nur dann
vor, wenn der Entität Adresse zusätzlich die Attribute Land-Code und LandName, die Nichtschlüsselattribute darstellen jedoch eine funktionale
Abhängigkeit zueinander aufweisen, beigefügt werden müssten. Da jedoch
davon ausgegangen werden kann dass sich die Adresse eines Schülers
innerhalb Deutschlands befindet, können diese Attribute vernachlässigt
werden.
Es existieren noch weitere Normalformen, die jedoch nicht für die Entwicklung
effizienter Datenbankstrukturen relevant sind und somit vernachlässigt werden
können.
Bevor mit dem nächsten Schritt, der Implementierungsphase, begonnen
werden kann, müssen zunächst die Datentypen aller Attribute festgelegt
werden (siehe: 6.1 Logisches Datenbankmodell), um die Entstehung von nicht
erwünschten Speicherbeanspruchungen zu vermeiden.
Seite 9 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
4 Implementierungsprozess
4.1 MySQL als Datenbank-Management-System
MySQL ist eines der am häufigsten eingesetzten Open – Source –
Datenbankverwaltungssysteme und wurde unter der GPL (General Public
License) veröffentlicht. Es stellt eine preisgünstige, oft sogar kostenlose und
kompakte Alternative zu anderen großen Datenbank – Engines dar. Leider ist
in dieser Software SQL nicht in vollem Umfang implementiert. Es fehlen
außerdem einige Funktionen, die für komplexere Anwendung notwendig sein
können. Zum Beispiel lassen sich zwar bestimmte Attribute als Primärbeziehungsweise Sekundärschlüssel kennzeichnen, werden jedoch nicht von
MySQL geprüft. Dadurch wird die Anwendungsentwicklung erschwert.
Dennoch liefert MySQL als DBMS auf Webservern besonders gute
Performance Ergebnisse und findet in diesem Bereich die häufigste
Anwendung.
Da MySQL bereits auf dem Webserver der Schule integriert ist, müssen keine
Installations- und Konfigurationsmaßnahmen des Datenbankverwaltungssystems durchgeführt werden.
4.2 Implementierungsphase
4.2.1 PHP (Hypertext Preprocessor)
Da auf dem Server bereits die Scriptsprache PHP verfügbar ist, wurde die
Anwendung in Form von mehreren Scripten entworfen. PHP stellt einen
riesigen, speziell für die Webprogrammierung konzipierten Funktionsumfang
bereit. Unter anderem wird auch das Einbinden von MySQL-Datenbanken
gewährleistet. Da die direkte Interaktion zwischen Anwendung und MySQL nur
mit SQL realisierbar ist, muss das PHP Script SQL-Befehle generieren und
diese an die MySQL-Datenbank senden. Der Befehl wird vom
Datenverwaltungssystem verarbeitet und eine Rückmeldung an das Script
Seite 10 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
übergeben. Aus der Rückmeldung erzeugt das Script auf dem Server
eventuelle Benutzerausgaben oder Fehlermeldungen und übermittelt diese in
Form eines HTML-Dokumentes (Hyper Text Markup Language) an den ClientRechner.
4.2.3 Anlegen der Datenbasis
Um sicherzustellen dass auf dem Schul-Webserver die Datenbasis
entsprechend des Datenmodells angelegt wird, existiert eine Anwendung, die
diese Aufgabe erfüllt. Es steht nun die Grundlage zum Anlegen des logischen
Datenmodells mit allen Beziehungen der Entitäten bereit und es ist ebenfalls
die Interaktion zwischen Anwendung und DBMS gesichert. Das
Installationsscript („install/install.php“) legt alle Tabellen und deren Attribute in
der Datenbank „facharbeiten“ an. Vorher muss diese jedoch von einem
Administrator eingerichtet und in der Datei „config.php“ die Adresse des
Webservers und die Login –Daten des Datenbank – Benutzers aktualisiert
werden.
Nachdem das Installationsscript erfolgreich ausgeführt wurde, existiert das
Datenbankmodell in Form von Tabellen und Spalten in der Datenbank. Nur
enthalten die einzelnen Attribute noch keine Werte.
4.2.4 Einfügen, Bearbeiten und Suchen der Daten
Der folgende SQL-Befehl verdeutlicht, dass Eingaben über die
Benutzeroberfläche des Datenverwaltungssystems einen aufwendigen und
zeitintensiven Prozess darstellen.
INSERT INTO tb_schueler (SchName, SchVname, AdressId) VALUES
(‘Musterman’, ‘Hans’, ‘1’);
Abbildung 4-1: Beipiel eines SQL-Befehls
Da dieser Befehl allein dazu dient, einen einzigen Schüler in die Datenbank
aufzunehmen, müssten bei großen Datenmengen unzählige Kommandos per
Seite 11 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
Hand eingegeben werden. Um den Nutzern diesen Aufwand zu ersparen,
wurde ebenfalls bereits eine Anwendung entwickelt. Aufgrund der Tatsache,
dass die Schlüsselüberprüfung bei MySQL nicht vollständig funktionsfähig ist,
ist der Entwicklungsaufwand des Administrationsscripts enorm gestiegen.
Deshalb konnten noch nicht alle vorgesehenen Funktionen in das Script
implementiert werden. Jedoch ist es bereits möglich, Datensätze in die
Datenbank aufzunehmen und diese teilweise auch zu bearbeiten. Allerdings
konnte der Quellcode der Administrationsdatei „managedb.php“ noch nicht
überarbeitet und optimiert werden.
Da der Datenbestand auch den Besuchern der Schul-Website zugänglich
gemacht werden soll, musste eine Anwendung für die Suche mit bestimmten
Kriterien und einer Ausgabe der gefundenen Datensätze ermöglicht werden.
Diese ist bereits mit dem Script „searchdb.php“ realisiert worden. Es besteht
dadurch die Möglichkeit sich alle Facharbeiten eines Fachbereiches anzeigen
zu lassen oder nach einem expliziten Datensatz zu suchen.
5 Zusammenfassung
Mit dem Datenbank-Modell, das von der Installationsanwendung umgesetzt wird,
steht der Schule nun die Möglichkeit zur Verfügung, die Datenbank einfach und
schnell anzulegen. Durch das Administrationsscript lassen sich die
Datenbestände in die Datenbank eingeben und können durch die Suchfunktion
gezielt wieder gefunden werden. Die Funktionen zum Einfügen und Pflegen der
Daten arbeiten redundanzarm und vermeiden so größtenteils das Auftreten von
Konsistenzfehlern durch die Anwendung. Lediglich die Funktionen zum
Bearbeiten und Löschen der Datensätze müssen im Nachhinein noch
vervollständigt werden.
Seite 12 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
6 Anhang
6.1 Logisches Datenbankmodell
Die folgende Abbildung veranschaulicht das Datenbankmodell, welches allen
3 Normalformen entspricht.
Abbildung 6-1: Darstellung des finalen Datenbank-Modells der Facharbeiten Datenbank
Seite 13 von 14
Facharbeit Informatik: Entwicklung einer MySQL - Datenbank
6.2 Literaturverzeichnis
[1]
Randy Jay Yarger; George Reese; Tim King: MySQL & mSQL. Köln: O
Reilly Verlag 2000
[2]
FAQ der Newsgruppen de.comp.lang.php.
http://www.dclp-faq.de/
[3]
MySQL-Referenzhandbuch.
http://www.mysql.com/doc/de/
[4]
Christoph und Hatlak; Jens: Datenbank, MySQL und PHP.
http://ffm.junetz.de/members/reeg/DSP/
[5]
Seidler, Kai: Apachefriends.
http://ffm.junetz.de/members/reeg/DSP/
[6]
Kelz, Andreas: Relationale Datenbanken – Eine Einführung.
http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
[7]
Stepken, Guido: MySQL Datenbankhandbuch.
http://www.rent-a-database.de/mysql/
[8]
Morcinek, Peter: SQL Tutorium.
http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
6.3 Selbstständigkeitserklärung
Hiermit erkläre ich, dass ich die vorliegende Arbeit selbstständig und ohne
fremde Hilfe verfasst und keine anderen Hilfsmittel als angegeben verwendet
habe. Insbesondere versichere ich, dass ich alle wörtlichen und sinngemäßen
Übernahmen aus anderen Werken als solche kenntlich gemacht habe.
Seite 14 von 14
Herunterladen