sql >> Database >  >> RDS >> Database

Probleemset 1 - Entiteiten identificeren

In een eerder artikel over datamodellering beloofden we u een reeks oefeningen te geven om te oefenen met het vinden van entiteiten. Nou, hier zijn ze. Veel plezier!

Probleem 1:Taalschool

De heer Trotter, de eigenaar van een snelgroeiende talenschool, wil een nieuw systeem in zijn bedrijf invoeren. Hij kan niet meer alle informatie alleen bijhouden en heeft daarom onze hulp ingeroepen. Hij is wel een beetje chaotisch. Dit is wat hij zei:

Er komen hier tientallen nieuwe mensen en ik weet niet meer wat ik moet doen! Vorige week kwam er bijvoorbeeld een meisje genaamd Hannah en ze wilde student worden, maar ik kon mijn notitieboekje niet vinden, dus ik kon haar achternaam niet opschrijven. Toen vroeg ze naar het soort cursussen dat we aanbieden en tja... we hebben er veel, dus ik liet haar de kalender zien waar ik alle lessen opschrijf. Ze koos Chinees en vroeg toen wie het leerde. Nou, zei ik, we hebben hier veel leraren, dus ik begon in mijn e-mailbox te zoeken wie ik schreef over het onderwijzen van Chinees dit semester. Het duurde langer dan ik had verwacht en Hannah vertrok. Wat jammer!

Stel op basis van de beschrijving een paar entiteiten voor voor het nieuwe systeem van meneer Trotter, zodat hij zijn school effectiever kan runnen.

Oplossing:

In eerste instantie geeft meneer Trotter het voorbeeld van Hannah die zich wil inschrijven voor een cursus. In ons systeem zou ze een van de vele instanties zijn van de entiteit Student . Studenten in ons systeem melden zich aan voor een Course , wat een andere goede kandidaat is voor een entiteit. Ten slotte vraagt ​​het meisje naar de Teacher – natuurlijk willen we ze ook bijhouden, zodat ze de derde entiteit worden.


↑ Klik op het logo om een ​​voorbeeld van het model in uw browser te bekijken | Download het model als een png-bestand


Probleem 2:drukke schrijver

Joanne L. Bowling werkt voor verschillende bedrijven en schrijft dingen voor hen. Ze heeft het erg druk en zou graag een handige applicatie willen hebben die alles bijhoudt wat ze heeft geschreven. Deze aanvraag krijgt de vorm van een portfolio. Zo beschreef ze haar werk:

Ik ben erg getalenteerd en ik schrijf heel veel verschillende dingen. Zo schreef ik vorige week voor een krant een artikel over de laatste economische crisis. Ik weet niet veel van economie, maar ik heb een beetje gelezen en ik heb een leuk artikel kunnen schrijven. Aan de andere kant, een maand geleden publiceerde een andere beroemde krant een serie die ik deed. Nou, die ging over de kunstgeschiedenis in Nederland. Enige kennis van het vak had ik al, want 5 jaar geleden schreef ik een boek over Rembrandt – dat overigens vorig jaar verscheen. Het is bijna altijd hetzelfde als ik met kranten werk; hun opdrachten zijn snel en gemakkelijk. Bij uitgeverijen is het echter een ander verhaal. Verificatie, bewerking... er zijn zoveel stappen en zoveel deadlines die ik moet onthouden!

Stel op basis van de beschrijving enkele algemene entiteiten voor die kunnen worden gebruikt in een aanvraag voor Joanne om alles wat ze heeft geschreven bij te houden. Denk na over de volgende vraag:wat voor soort dingen heeft ze geschreven en waar heeft ze ze gepubliceerd?

Oplossing:

Zoals we kunnen zien, schrijft Joanne twee soorten composities. De eerste zijn kortere artikelen die in kranten worden gepubliceerd. Het zijn snelle opdrachten en vereisen niet veel informatie. Het tweede type compositie is langer en ingewikkelder:boeken schrijven. Ze worden uitgegeven door uitgeverijen. Het is beter om ze als een aparte entiteit te houden. Al met al hebben we twee hoofdcategorieën van dingen die Joanne schrijft:Article en Book . We hebben ook twee categorieën bedrijven die ze publiceren:Newspaper en Publishing House .


↑ Klik op het logo om een ​​voorbeeld van het model in uw browser te bekijken | Download het model als een png-bestand


Probleem 3:Theewinkel

Mark Tee heeft een kleine winkel in een zijstraat in een middelgrote stad. Het had maar een paar klanten - tot op een dag een beroemde blogger het tijdens zijn reizen ontdekte en er een bericht over publiceerde. Hij zei dat Marks winkel de beste theebron ter wereld is. Mark heeft inmiddels zoveel klanten dat hij niet meer weet wat er op voorraad is. Hij heeft een systeem nodig dat hem helpt zijn producten te organiseren. Dit is wat hij zei:

Mensen kopen de hele dag mijn producten en ik moet bijhouden wat ik op voorraad heb. Ik verkoop verschillende dingen. Thee is natuurlijk de belangrijkste van hen. Ik ben zeer gedetailleerd als het om thee gaat:ik heb informatie nodig over de soort, kleur, herkomst... Elke variëteit heeft minstens enkele van deze eigenschappen.

Ik verkoop ook veel koffie, maar koffie is anders en er worden verschillende dingen gebruikt om het te beschrijven. En dan is er nog het kruidengedoe zoals rooibos of yerba mate. Theeliefhebbers noemen dit tisanes of infusies; ze zijn niet echt 'thee' en ik heb niet veel aanvullende informatie over ze nodig in mijn systeem.

Lees de bovenstaande beschrijving en stel een paar verschillende entiteiten voor voor Marks voorraadbeheersysteem.

Oplossing:

Zoals je kunt zien, zijn er drie soorten producten en dus drie entiteiten in ons systeem:Tea , Coffee en Tisane . (We behandelen rooibos of yerba mate niet apart, omdat Mark er niet echt onderscheid tussen maakt.)


↑ Klik op het logo om een ​​voorbeeld van het model in uw browser te bekijken | Download het model als een png-bestand


Probleem 4:Farmaceutisch bedrijf

Een farmaceutisch bedrijf dat medicijnen produceert, zou graag een systeem willen hebben dat helpt bij het beheer ervan. Dit is de beschrijving die een van de medewerkers van het bedrijf naar ons is gestuurd:

In ons bedrijf zijn de producten natuurlijk verschillende medicijnen met specifieke eigenschappen. We produceren pijnstillers, antibiotica en andere medicijnen. Ze worden vervaardigd in verschillende afdelingen. Op elke afdeling zijn er medewerkers. Medewerkers zijn gekwalificeerd voor het uitvoeren van specifieke soorten productie. Tijdens hun werk gebruiken de medewerkers speciale apparaten om de medicijnen te helpen maken. Zonder de juiste componenten zouden ze natuurlijk niets produceren! Oh, en trouwens, de productie is verdeeld in batches – groepen producten die in één bewerking worden vervaardigd. Dit alles is nodig voor ons bedrijf. We moeten gedetailleerde informatie over elk onderdeel ervan in ons systeem opslaan.

Stel op basis van de bovenstaande beschrijving enkele entiteiten voor die in het systeem van het farmaceutische bedrijf moeten worden gebruikt.

Oplossing:

In het bovengenoemde bedrijf is de productie gebaseerd op Batches die bestaan ​​uit Drugs . Geneesmiddelen worden gemaakt van Components . Er zijn ook verschillende Departments met specifieke Devices en Employees . Deze zes vetgedrukte zelfstandige naamwoorden worden onze entiteiten.


↑ Klik op het logo om een ​​voorbeeld van het model in uw browser te bekijken | Download het model als een png-bestand


Probleem 5:Filmdatabase

John is een ijverige filmstudent en wil een nieuwe website over films maken. Hij beschreef het idee als volgt:

Er zal informatie zijn over verschillende dingen in mijn database. Allereerst zullen er films zijn, verschillende soorten. In elke film zijn er acteurs - ik wil ook informatie over hen opslaan. Niet alleen professionele gegevens, zoals de films waarin ze speelden, maar ook enkele grappige dingen of wat persoonlijke informatie. Dan zijn er regisseurs. Ze zijn erg belangrijk in films, dus ik wil er ook over schrijven. En filmstudio's natuurlijk! Niet veel websites noemen ze, maar ze zijn ook belangrijk voor mij. Ten slotte zullen er recensies voor alle films zijn.

Stel op basis van de bovenstaande beschrijving enkele entiteiten voor voor Johns filmdatabase.

Oplossing:

We kunnen duidelijk 5 entiteiten identificeren in de beschrijving:Movie , Actor , Director , Studio en Review .


↑ Klik op het logo om een ​​voorbeeld van het model in uw browser te bekijken | Download het model als png-bestand



  1. TIMEDIFF() Voorbeelden – MySQL

  2. Eén record verwijderen uit Entity Framework?

  3. Verschillende MySQL-opslagengines gebruiken bij het ontwerpen van databases

  4. Basisprincipes van PostgreSQL-schemabeheer