![]() | ![]() | ||||||||||||
![]() | ![]() | ||||||||||||
| Objekte
Prima, dass du auch das zweite Kapitel in Angriff nimmst. Relationelle Datenbanken bestehen, wie du im letzten Kapitel gesehen hast, nur aus Tabellen. Die Schwierigkeit beim Erstellen einer Datenbank liegt nun darin, welche Daten wir in welche Tabellen packen. Zur Lösung dieses Problems lernen wir kennen, was man unter einem Objekt versteht. Später lernst du, wie du Objektdiagramme und daraus Klassendiagramme zeichnen kannst. Diese Diagramme sind wie eine Bauanleitung für deine Datenbank! Wir werden unsere Datenbank wenn möglich immer am Beispiel eines Industriebetriebes zeigen. Für die Verwaltung von Bibiotheken, Kaufhäusern, CD-Sammlungen usw. ergibt sich aber kein Unterschied!
Eine Datenbank spiegelt immer einen Teil der Realität wider. Wie gesagt wollen wir in unserer Datenbank Informationen über "unser" Unternehmen verwalten. Natürlich sind nicht alle Informationen unseres Unternehmens in der Datenbank vorhanden - eben nur ein Teil. Wir betrachten nur die Informationen, die für die Aufgaben unserer Datenbank wichtig sind. Am besten beginnen wir mit einem Beispiel. Wir benötigen eine Datenbank, mit der wir unser Personal verwalten können. Die Datenbank soll uns helfen, jedem Mitarbeiter jeden Monat eine Gehaltsabrechnung auszustellen. Je nachdem ob er der Gehaltsklasse 1,2 oder 3 angehört, bekommt er ein unterschiedliches Gehalt. Außerdem muss für jeden Arbeitnehmer noch die Zugehörigkeit zu einer Krankenkasse verwaltet werden. Zum Verständnis des Aufbaus der Datenbank folgt nun ein wenig Hintergrund: Die meisten Arbeitnehmer müssen einer Gesetzlichen Krankenversicherung angehören. (Nur Selbstständige, Beamte, Arbeitnehmer die ein sehr hohes Einkommen haben, u.a. können sich bei einer Privaten Krankenversicherung selbst versichern.) Für die Mitglieder der Gesetzlichen Krankenversicherung (Abkürzung: GKV) zahlt der Arbeitgeber (also das Unternehmen) die Versicherungsbeiträge. Der Beitragssatz liegt z.Zt. bei ca. 12 bis 16% des Lohnes. Der Arbeitnehmer kann nämlich zwischen verschiedenen gesetzlichen Krankenversicherungen wählen. Z.B. AOK, Barmer, Techniker Krankenversicherung usw. oder der Arbeitnehmer entscheidet sich für eine der vielen Betriebskrankenkassen, die es in Deutschland gibt. Ist ein Arbeitnehmer privat versichert, zahlt er seine Beiträge selbst, wir als Unternehmen müssen uns darum nicht kümmern. Ist der Arbeitnehmer Mitglied der Gesetzlichen Krankenversicherung, dann muss er 50% des Beitrages selbst bezahlen. Wir ziehen diesen Betrag von seinem (Brutto-)Gehalt ab und überweisen ihm das geringere (Netto-)Gehalt. Das ist schon ziemlich kompliziert. Sehen wir uns einfach mal die Mitarbeiter in unserem Betrieb an. Wir beschäftigen fünf Mitarbeiter: Anton, Berta, Caesar, Dora und Emil. Jeder Mitarbeiter hat alle Informationen über seine Person auf eine Karte geschrieben. Ohne dass wir schon auf die Krankenversicherung eingehen wollen, könnte das ungefähr so aussehen: Wir zeichnen Objekte ![]() Alle Kärtchen, die hier abgebildet sind, repräsentieren einen realen Gegenstand: hier Mitarbeiter und Autos! In der Informatik werden Gegenstände auch gerne als Objekte bezeichnet. Dies wollen wir auch tun. Abgebildet sind also sechs Objekte: fünf Mitarbeiter und ein Auto! Hoppla, wirst du dir denken - wozu benötige ich bei der Personalverwaltung Informationen unserer Autos. Und natürlich hast du recht - die benötigen wir nicht. Also eleminieren wir alle Objekte, die wir nicht benötigen. ![]() Übrig bleiben die Objekte, die wir sinnvollerweise brauchen, also die Mitarbeiter. Aber auch hier erkennst du Unterschiede. Bei jedem Objekt sind verschiedene Eigenschaften auf den Kärtchen vermerkt, z.B. der Name und der Ort. Die Eigenschaft "Name" hat auf einer Karte den Wert "Anton Müller", auf einer anderen Karte den Wert "Berta Blau". Einige dieser Eigenschaften benötigen wir (zur Zeit) nicht. Wir wollen uns vorerst auf die Eigenschaften "Vorname", "Name", "Strasse", "Postleitzahl" und "Ort" beschränken. Eigenschaften werden in der Informatik auch gerne als Attribute bezeichnet. Auch dieses Fachwort wollen wir ab sofort benützen! Wir streichen also alle überflüssigen Attribute aus den Objekten. Dann sehen unsere Objekte so aus: ![]() und nach dem Löschen so: ![]() Zusammenfassung: Datenbanken enthalten immer Informationen aus der Realität, z.B. einem Unternehmen. Einzelne Gegenstände dieser Realität werden herausgegriffen (=Objekte).Objekte muss man nicht anfassen können. Objekte können auch nur in unserer Vorstellungswelt existieren, z.B. Schulfach, Kraft, Schlagwort o.ä. Wir zeichnen die Objekte folgendermaßen: ![]() Jedes Objekt wird als Rechteck mit abgerundeten Ecken gezeichnet. Es hat eine bestimmte Anzahl Attribute. Jedes Attribut hat einen Wert. So - für heute haben wir genug neuen Stoff angesehen. Schauen wir uns einige Beispiele an:
Für unsere Verwaltung benötigen wir nicht nur das Objekt "Mitarbeiter", jeder Mitarbeiter hat eine "Krankenversicherung" und gehört einer "Gehaltsklasse" an. Beides sollen wieder Objekte unserer Datenbank sein. Wir benötigen also wieder "Kärtchen" mit den Informationen darauf und müssen uns überlegen, welche Attribute hier sinnvoll und notwendig sind. Zuerst die Gehaltsklasse: Es gibt in unserem Unternehmen drei Gehaltsklassen. In der untersten verdient man 2000,-- EUR, in der zweiten 3000,-- EUR und in der dritten 4000,-- EUR jeweils pro Monat. Weitere Informationen sind nicht erforderlich. Wir zeichnen also die Objekte: ![]() Als nächstes die Krankenversicherung: Wir holen uns die Informationen über unsere Mitarbeiter ein und stellen fest, dass drei Mitarbeiter bei der "AOK", einer bei der "Techniker Krankenkasse" und einer "Privat" versichert ist. Die AOK habe einen Beitragssatz von 14,6%, die Techniker-Krankenkasse von 14,4%. Wir zeichnen auch hier die Objekte, als Attribut wählen wir den Namen der Krankenkasse und den Beitragssatz. ![]() Sicher ist dir aufgefallen, dass jedes Objekt zur besseren Unterscheidung eine Nummer bekommen hat. Damit werden die Objekte eindeutig. Es könnte ja sein, dass zwei Mitarbeiter denselben Namen haben, z.B. Hans Müller. Durch die eindeutige Nummer sollen Verwechslungen vermieden werden. Wir werden später auf dieses eindeutige Attribut (den sog. Primärschlüssel) noch eingehen.Jedes Objekt hat einen eindeutigen Bezeichner! In Datenbanken sind besteht dieser oft aus einer laufenden Nummer.
Übung 1: Eine Stadtbücherei soll mit einer Datenbank verwaltet werden. Welche typischen Objekte werden wir zur Modellierung unserer Datenbank benötigen? Übung 2: Wähle für die Objekte geeignete Attribute aus und gib drei Beispiele an. Übung 3: Objekte stellen immer einen Teil der Realität dar. Beschreibe, warum nicht alle Informationen in einer Datenbank abgebildet werden. Übung 4: Nenne die Bestandteile eines Objektes! Übung 5: Beim Erstellen von Objekten habe ich ein anderes Ergebnis erzielt. Begründe, warum verschiedene Lösungen richtig sein können! Lösungsansatz Übung 1: - Buch - Autor - Entleiher - Verlag - Standort des Buches - u.v.a.m Lösungsansatz Übung 2: Ein Buch habe die Attribute Signatur (= Nummer), Titel, Preis, Erscheinungsjahr. Der Autor habe die Attribute Nummer, Name, Geburtsdatum, Wohnort. Der Entleiher habe die Attribute Kundennummer, Name, Strasse, Postleitzahl, Ort Der Verlag habe die Attribute Verlagsnummer, Name und Ort Der Standort des Buches habe die Attribute Signatur (In der Signatur soll Raum und Regal enthalten sein, z.B. 25-10-Ma1 Lösungsansatz Übung 3: Die Informationen, die es über ein Unternehmen gibt sind einfach gigantisch viel. Alle Informationen einzugeben ist schon praktisch nicht machbar. Die Daten müssen ja auch gepflegt werden, d.h. immer auf dem aktuellen Stand gehalten werden. Das bedeutet, es müssen zwar so viel Informationen wie nötig aber so wenig wie möglich gespeichert werden. Lösungsansatz Übung 4: Attribute und Attributwerte, (in einem abgerundeten Rahmen), dazu einen eindeutigen Bezeichner. (Nicht mehr und nicht weniger!) Lösungsansatz Übung 5: Jeder, der die Aufgabe löst, wird eine andere Lösung haben. Das ist normal. Oft ist nicht klar, ob eine Information zu dem einen Objekt gehört oder ein eigenes Objekt darstellt. Der Ort eines Mitarbeiters könnte ein eigenes Objekt sein. Die Gehaltsklasse und die Krankenversicherung könnten Attribute des Objektes Mitarbeiter sein. Theoretisch werden wir dieses Problem später beim Thema "Redundanz" behandeln. An dieser Stelle entscheidet sich auch, ob wir eine gute oder eine schlechte Datenbankstruktur haben. Aber keine Sorge, im Laufe der Übungen wirst du ein Gefühl dafür entwickeln, wie gute Datenbanken modelliert werden. Im Moment sind alle (oder die meisten) Lösungen richtig!
Damit ist die zweite Stunde auch schon vorbei. Hausaufgaben Die Hausaufgaben solltest du nicht sofort machen - gönn dir eine Pause von mindestens einer Stunde, bevor du dich an die Arbeit machst. Nur dann hast du die Chance, langfristig zu lernen! Aufgabe 1 In der letzten Lektion haben wir die Verwaltung einer Schule angesprochen. Suche geeignete Objekte und Objektattribute. Bedenke, dass "weniger hier mehr ist", beschränke die Anzahl der Attribute auf das Wesentliche. Aufgabe 2 Ein Krankenhaus soll verwaltet werden. Überlege dir geeignete Objekte, die ausgewählt werden müssen, um den Dienstplan der Mitarbeiter zu erstellen. Bedenke auch hier: Es geht nur um den Dienstplan der Mitarbeiter, nicht um Krankheiten oder Patienten usw.
Objekt: Bezeichnung für einen Gegenstand der Realität (oder der Vorstellungswelt), der in der Datenbank verwaltet werden soll. Bezeichner: Eindeutiger Name eines Objektes. Jedes Objekt muss einen Bezeichner haben. Elimination: Streichen nicht benötigter Objekte. Attribut: Name der Eigenschaft eines Objektes. Attributwert:Den Wert, den ein Attribut bei einem bestimmten Objekt hat. Der Mitarbeiter Nr. 1 hat bei dem Attribut Strasse den Attributwert "Eichenweg 7" Copyright 2003 - Letzte Änderung am 4. September 2004 |