<nml@eaaa.dk>Besvarelser dbtek
Herunder vises udskrifter af tabeller i databasen
world. I vil installere denne database, når
vi kommer et par lektioner længere frem. På baggrund af
tabeludskrifterne, vil jeg bede jer, som
reverse engineering opgave, at lave det
tilsvarende ER diagram.
Kolonnen Field indeholder attributnavne.
Kolonnen Type indeholder datatyper, men
er irrelevant for denne opgave. Det samme gælder
kolonnerne Null, Default,
og Extra.
Kolonnen Key fortæller hvilke(n)
attribut, der er nøgle. PRI betyder
(indgår i) primærnøgle. MUL betyder
fremmednøgle.
Eksempel 4.1. Tabellen city
mysql> describe city; +-------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------+------+-----+---------+----------------+ | ID | int(11) | NO | PRI | NULL | auto_increment | | Name | char(35) | NO | | | | | CountryCode | char(3) | NO | MUL | | | | District | char(20) | NO | | | | | Population | int(11) | NO | | 0 | | +-------------+----------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) mysql>
Eksempel 4.2. Tabellen country
mysql> describe country;
+----------------+-------------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------------------------------------+------+-----+---------+-------+
| Code | char(3) | NO | PRI | | |
| Name | char(52) | NO | | | |
| Continent | enum('Asia','Europe',...,'South America') | NO | | Asia | |
| Region | char(26) | NO | | | |
| SurfaceArea | float(10,2) | NO | | 0.00 | |
| IndepYear | smallint(6) | YES | | NULL | |
| Population | int(11) | NO | | 0 | |
| LifeExpectancy | float(3,1) | YES | | NULL | |
| GNP | float(10,2) | YES | | NULL | |
| GNPOld | float(10,2) | YES | | NULL | |
| LocalName | char(45) | NO | | | |
| GovernmentForm | char(45) | NO | | | |
| HeadOfState | char(60) | YES | | NULL | |
| Capital | int(11) | YES | | NULL | |
| Code2 | char(2) | NO | | | |
+----------------+-------------------------------------------+------+-----+---------+-------+
15 rows in set (0.00 sec)
mysql>
Eksempel 4.3. Tabellen countrylanguage
mysql> describe countrylanguage;
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| countrycode | char(3) | NO | PRI | | |
| language | char(30) | NO | PRI | | |
| isofficial | enum('T','F') | NO | | F | |
| percentage | float(4,1) | NO | | 0.0 | |
+-------------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql>
Med udgangspunkt i ovenstående model ønskes en beskrivelse af hvordan du vil regne ud, hvor mange der taler hvert sprog i verden. Detaljeret, pseudokode, beskrivelse laves i punktform.
Vi skal modellere i ER, et bibliotek. I et skolemiljø, hvor studerende går i klasser og hvor lærerne underviser klasser i fag i givne semestre, er både lærere og studerende lærere lånere. Lånernerne skal kunne låne og reservere bøger. Ved udlån er låneperioden højst 30 dage, og ved reservation angives en dato, hvorefter bogen ikke længere har interesse. Bøgerne er primært fagbøger, der er organiseret i en række emner, der kan anvendes som søgekriterier. Der skal også kunne søges på forfattere. Gem besvarelsen til senere brug.
Besvarelsen bør indeholde et ER-diagram med skriftlig argumentation for objekternes tilstedeværelse og deres indhold af attributter. Kardinalitet og deltagelsestype skal ligeledes diskuteres. Der ønskes også en diskussion af valg af nøgler for modellens objekter.
Opgaven ligner øvelse 4.5.1 i min bog.