In einem früheren Artikel über Datenmodellierung haben wir versprochen, Ihnen eine Reihe von Übungen zu geben, mit denen Sie das Finden von Entitäten und Attributen üben können. Hier ist der zweite Teil unseres Problemsatzes. Viel Spaß.
Problem 1:Länder
Beschreibung:
Finden Sie die richtigen Entitäten und ihre Attribute, um alle Länder der Welt, ihre inneren Regionen (die Staaten, Provinzen oder Regionen genannt werden können) und ihre Städte darzustellen. Wir möchten den Namen, den Kontinent, das Datum der Unabhängigkeit, die Art der Regierung und die Bevölkerung jedes Landes darstellen. Für jede Region (oder Provinz, Staat usw.) möchten wir die Hauptstadt, den Namen des Gouverneurs und die Bevölkerung speichern. Schließlich wollen wir für jede Stadt den Namen, das Gründungsdatum, die Einwohnerzahl und die Anzahl der Schulen pro Einwohner haben. Wir möchten auch darstellen, was jedes Land seine inneren Regionen nennt.
Lösung:
Aus der Domain-Problembeschreibung können wir drei Entitäten eindeutig identifizieren:Country
, Region
und City
.
Für das Country
Entität finden wir die folgenden Attribute:name
, governmentType
, population
und independenceDay
.
Für die Region
Entität entdecken wir die Attribute name
, governorName
, population
und capitalCity
.
Für City
, wir haben name
, foundationDate
, population
und schoolsPerHabitant
.
Die Datenmodellierung erfolgt in Phasen, die als Iterationen bezeichnet werden. An diesem Punkt iterieren wir. Wir gehen zurück in das Country
Entität und fügen Sie ein neues Attribut hinzu. Der letzte Satz der Beschreibung bat uns, den Namen jedes Landes für seine inneren Regionen darzustellen. Dieser Name sollte auf Länderebene stehen, daher fügen wir ein neues Attribut namens categoryRegion
hinzu zum Country
Entität.
Frage:
Die Bevölkerung ist im Country
, Region
und City
Ebenen. Glaubst du, das ist richtig? Werden doppelte Informationen gespeichert? Wie ermöglichen Sie dies?
↑ Klicken Sie auf das Logo, um eine Vorschau des Modells in Ihrem Browser anzuzeigen | Laden Sie das Modell als PNG-Datei herunter
Problem 2:Flugzeuge
Beschreibung:
Eine neue Billigfluggesellschaft möchte in den Markt einsteigen und benötigt ein einfaches System zur Verwaltung ihrer Vermögenswerte. Um uns beim Aufbau des richtigen Systems zu helfen, haben wir einige Leute gebeten, Schlüsselinformationen für jede neue Fluggesellschaft zu definieren. Schlagen Sie basierend auf den Kommentaren unten einige Entitäten mit Attributen für ein Flugzeugmanagementsystem vor.
Ein erfahrener Pilot:
Ich habe bei einigen Fluggesellschaften gearbeitet und Tausende von Stunden in der Luft verbracht. Sie verlangen immer die gleichen Informationen, wenn ich den Arbeitgeber wechsle. Zuerst wollen sie meinen Namen wissen, meinen Geburtstag – viele Fluggesellschaften beschäftigen nur Piloten in einer bestimmten Altersgruppe. Und sie müssen immer meine Zertifizierung überprüfen – ich habe eine spezielle Lizenznummer, die ihnen dabei hilft. Die Anzahl der geflogenen Stunden ist ebenfalls sehr wichtig; es sagt ihnen viel über den Piloten. Ein Glück, dass ich so erfahren bin! Und natürlich bekomme ich immer eine Mitarbeiternummer – ich weiß nicht warum, aber sie nennen mich mit der Nummer statt mit meinem Nachnamen.
Ein Vertreter des Luftfahrzeugherstellers:
Jede Fluggesellschaft braucht Flugzeuge. Die gesamte Beschreibung eines Flugzeugs ist sehr komplex und ich könnte meine Produkte ewig beschreiben, aber die Angestellten von Fluggesellschaften interessieren sich normalerweise nur für die grundlegenden Informationen. Natürlich wollen sie wissen, wie viele Passagiere in einem Flugzeug fliegen können – hilft ihnen, die Kosten, Vorteile usw. zu berechnen. Und sie fragen immer nach der Reichweite, damit sie wissen, wie weit jedes Flugzeug fliegen kann. Natürlich brauchen sie den Herstellernamen und die Modellbezeichnung, um sie in ihre Bücher einzutragen. Oh, und wie ich gehört habe, geben sie jedem Flugzeug, das sie kaufen, immer spezielle interne Nummern.
Ein Fluglotse:
Es gibt einige grundlegende Fakten, die wir über jeden Flug an unserem Flughafen aufbewahren. Der Flug muss aus Identifikationsgründen eine bestimmte Nummer haben (zB FG 432). Wir müssen den Abflug- und Ankunftsflughafen kennen. Und Zeit ist auch sehr wichtig. Wir speichern nicht nur die geplante Abflug- und Ankunftszeit, sondern auch die tatsächlichen Zeiten – Flugzeuge können sich verspäten oder sogar vorzeitig ankommen.
Lösung:
In unserer Beschreibung identifizieren wir eindeutig 3 Entitäten:Aircraft
, Pilot
und Flight
. Dann finden wir die Attribute jeder Entität.
Für das Aircraft
Unternehmen haben wir manufacturer
, model
, passengerCapacity
, cruisingRangeMiles
und internalNumber
.
Für den Pilot
Entität entdecken wir die folgenden Attribute:employeeNumber
, firstName
, lastName
, birthDate
, licenseNumber
und flownHours
.
Schließlich für Flight
wir identifizieren die flightNumber
, departureAirport
, destinationAirport
, scheduledDepartureTime
, scheduledArrivalTime
, realDepartureTime
und realArrivalTime
.
Um dieses Datenmodell zu vereinfachen, gehen wir davon aus, dass alle Flüge an allen Wochentagen geplant sind.
↑ Klicken Sie auf das Logo, um eine Vorschau des Modells in Ihrem Browser anzuzeigen | Laden Sie das Modell als PNG-Datei herunter
In einigen Fällen enthält unsere Domänenbeschreibung Attribute, die wir ignorieren müssen. Beispielsweise haben wir uns entschieden, Flugdauer auszuschließen aus diesem Datenmodell, weil wir es aus den tatsächlichen Ankunfts- und tatsächlichen Abfahrtszeiten berechnen können.
Problem 3:Restaurantführer
Beschreibung:
Samuel möchte einen Online-Restaurantführer erstellen. Es gibt bereits viele solcher Websites, aber er möchte sich auf die speziellen verfügbaren Gerichte konzentrieren und nicht auf das Restaurant selbst. Er ist wirklich begeistert von seiner Idee und hat sie uns so beschrieben:
Ich möchte Restaurants auf meiner Website detailliert beschreiben, daher benötige ich die grundlegenden Dinge wie ihre Namen und Adressen. Die Adresse muss genau sein:nicht nur Straße und Hausnummer, sondern auch Stadt, Bundesland und Land. Ja, Land; Ich will international werden! Außerdem möchte ich, dass jeder von ihnen einen bestimmten Stil bekommt, wie, Sie wissen schon, chinesisch, italienisch oder so ähnlich. Jeder von ihnen wird mit einer bestimmten Anzahl von Sternen bewertet.
Noch wichtiger ist, dass ich mich auf das Essen konzentrieren möchte! Restaurants servieren Tausende von Gerichten, und für jedes brauche ich den Namen und die Art des Gerichts – Vorspeise, Hauptgericht oder Dessert. Es gibt verschiedene Vorspeisen in verschiedenen Ländern, daher muss ich auch Informationen über die Herkunft der Vorspeisen speichern. Und für Hauptgerichte … nun, ich denke, es wird schön sein, die Anzahl der Kalorien für Menschen auf Diät anzugeben. Auch Desserts sollten solche Informationen enthalten.
Und ich möchte, dass JEDES Gericht zusammen mit seinem aktuellen Preis angezeigt wird! Oh, da fällt mir ein:Lass uns auch Getränke draufstellen. Der Name, der Preis … und vielleicht der Alkoholgehalt, wenn ich darüber nachdenke.
Schlagen Sie basierend auf der obigen Beschreibung einige Entitäten und ihre Attribute für Samuels Online-Restaurantführer vor.
Lösung:
Die erste Entität, die wir haben, ist Restaurant
mit den Attributen von name
, addressStreet
, addressNumber
, city
, state
und country
. Andere Attribute in Restaurant
sind:stars
und style
.
Unsere nächste Idee könnte sein, eine Entität namens Meal
und geben Sie ihm die Attribute name
, type
und price
. Wenn wir jedoch die vollständige Problembeschreibung lesen, finden wir spezifische Attribute für Desserts, Hauptgerichte und Vorspeisen. Also beschließen wir, Meal
und gehen Sie mit 3 Entitäten:Main_course
, Appetizer
und Dessert
.
Für MainCourse
, haben wir die folgenden Attribute:name
, category
und price
.
Für die Appetizer
Entität haben wir Attribute namens name
, country
und price
.
Für Dessert
finden wir die Attribute name
, calories
und price
.
Schließlich das Beverage
Entität mit hat die Attribute name
, alcoholLevel
und price
.
↑ Klicken Sie auf das Logo, um eine Vorschau des Modells in Ihrem Browser anzuzeigen | Laden Sie das Modell als PNG-Datei herunter
Problem 4:Musikbands
Beschreibung:
Eine Musikproduktionsfirma möchte die Welt der Musikbands modellieren. Wir haben uns mit einem seiner Vertreter getroffen und ihm ein paar Fragen gestellt. Lesen Sie das folgende Interview und finden Sie die richtigen Entitäten und ihre Attribute für ein Modell von Musikbands.
Vertabelo: Was für Menschen gibt es in der Welt der Musik?
Vertreter: Viele, aber ich denke, wir brauchen nur ein paar. Bands bestehen aus Sängern und Musikern. Und natürlich ihre Vorgesetzten. Für alle wollen wir ihren Vor- und Nachnamen im System haben. Sänger und Musiker haben in der Regel auch einen Spitznamen. Musiker spielen ein bestimmtes Instrument und Sänger haben einen bestimmten Stimmtyp, wie Sopran oder Tenor.
V: Was ist mit Managern? Wie bleibst du mit ihnen in Kontakt?
R: Es hängt davon ab, ob. Einige von ihnen bevorzugen Handys für die schnelle Kommunikation, andere möchten E-Mails erhalten, damit sie alles durchdenken können. Ich denke, wir brauchen hier beide Arten von Informationen.
V: Und all diese Leute…
R: … Musikbands gründen, ja. Jede Band hat natürlich einen Namen. Sie spielen normalerweise verschiedene Musikrichtungen, aber wir ordnen sie immer nur einem Stil zu, wie Rock oder Metal. Das ist wichtig. Wir müssen wissen, wie lange sie schon zusammen gespielt haben, denn junge Bands neigen dazu, sehr schnell aufzutauchen und wieder zu verschwinden. Normalerweise wollen wir wissen, wann sie ihr letztes Konzert gespielt haben und wie hoch der Ticketpreis war.
V: Brauchen Sie noch etwas?
R: Wir müssen Informationen über Songs speichern. Wow, Songs sind kompliziert. Sie haben bestimmte Arten von Texten, eine bestimmte Tonart, eine Reihe von beteiligten Instrumenten ... wirklich kompliziertes Zeug.
V:Und ist das alles wichtig für Sie?
R: Nun, ja, aber wir haben eigentlich schon ein System für Songs, also können wir hier … nun, ich denke, wir werden mit nur dem Songnamen und der Dauer gut auskommen. Und vielleicht das Erstellungsdatum.
Frage:
Können wir ein bestimmtes Lied anhand dieses Datenmodells seiner Band zuordnen? Oder fehlt etwas?
Lösung:
Die erste Entität, die wir finden, ist MusicBand
mit den Attributen name
, mainStyle
, foundationDate
, lastShowDate
und lastShowPlace
.
Die nächste Entität ist Musician
, wo wir die folgenden Attribute haben:firstName
, lastName
, nickName
und instrument
.
Der Singer
Entity verfolgt ein ähnliches Muster:Wir haben als Attribute den firstName
des Sängers , lastName
, nickName
und voiceLevel
.
Unsere nächste Entität ist Song
, die die folgenden Attribute hat:name
, duration
und creationDate
.
Schließlich ist die letzte von uns identifizierte Entität Manager
; es hat die Attribute von firstName
, lastName
, emailAddress
und cellPhone
.
↑ Klicken Sie auf das Logo, um eine Vorschau des Modells in Ihrem Browser anzuzeigen | Laden Sie das Modell als PNG-Datei herunter