## Postagentschap Database Ontwerp
### Inleiding
Het doel van deze opdracht is om een database te ontwerpen die de informatie van het postagentschap vastlegt.
### Analyse van de informatiebehoefte
#### Entiteittypen en attribuuttypen
1. **Geadresseerde**
- Naam
- Postcode
- Huisnummer
- Straat
- Plaats
2. **Poststuk**
- postId (uniek)
- Gewicht (in grammen)
- E-mailadres (optioneel, voor track & trace)
3. **Postbezorger**
- Medewerkercode (uniek, zescijferig)
- Naam
- Telefoonnummer
4. **Afhaalpunt**
- Adres
- Telefoonnummer
5. **Bulkpost**
- Bulkpost-code (acht cijfers)
#### Subtypering
- **Poststuk** kan worden gesubtypeerd in:
- **Brief**
- Bulkpost-code (optioneel)
- **Pakket**
- Bricvenbuspakket (ja/nee)
### Conceptueel Datamodel (ERD)
```markdown
+---------------+
| Geadresseerde |
+---------------+
| - Naam |
| - Postcode |
| - Huisnummer |
| - Straat |
| - Plaats |
+---------------+
|
| 1-n
v
+---------------+
| Poststuk |
| - postId |
| - Gewicht |
| - E-mailadres |
+---------------+
|
| 1-n
v
+---------------+
| Postbezorger |
| - Medewerkercode|
| - Naam |
| - Telefoonnummer|
+---------------+
|
| 1-n
v
+---------------+
| Afhaalpunt |
| - Adres |
| - Telefoonnummer|
+---------------+
|
| 1-n
v
+---------------+
| Bulkpost |
| - Bulkpost-code|
+---------------+
```
### Relationele Modellen
#### Tabellen
1. **Geadresseerde**
- GeadresseerdeID (primaire sleutel)
- Naam
- Postcode
- Huisnummer
- Straat
- Plaats
2. **Poststuk**
- postId (primaire sleutel)
- Gewicht
- E-mailadres
- GeadresseerdeID (vreemde sleutel)
3. **Postbezorger**
- Medewerkercode (primaire sleutel)
- Naam
- Telefoonnummer
4. **Afhaalpunt**
- AfhaalpuntID (primaire sleutel)
- Adres
- Telefoonnummer
5. **Bulkpost**
- BulkpostID (primaire sleutel)
- Bulkpost-code
6. **Postronde**
- PostrondeID (primaire sleutel)
- Medewerkercode (vreemde sleutel)
- Datum
7. **Poststuk_Postronde**
- postId (vreemde sleutel)
- PostrondeID (vreemde sleutel)
#### Strokendiagram
```markdown
+---------------+
| Geadresseerde |
+---------------+
|
| 1-n
v
+---------------+
| Poststuk |
| |
| +-----------+ |
| | Brief | |
| +-----------+ |
| |
| +-----------+ |
| | Pakket | |
| +-----------+ |
+---------------+
|
| 1-n
v
+---------------+
| Postbezorger |
+---------------+
|
| 1-n
v
+---------------+
| Afhaalpunt |
+---------------+
|
| 1-n
v
+---------------+
| Bulkpost |
+---------------+
```
### Toelichting
- **Primaire sleutels**: Elke entiteit heeft een unieke primaire sleutel.
- **Vreemde sleutels**: Worden gebruikt om relaties tussen tabellen tot stand te brengen.
- **Subtypering**: Poststuk is gesubtypeerd in Brief en Pakket.
### Normalisatie-check
- De huidige structuur is in derde normaalvorm (3NF), omdat elke niet-sleutel attribuut afhankelijk is van de hele primaire sleutel.
### Bedrijfsregels
- Een poststuk heeft รฉรฉn geadresseerde.
- Een postbezorger kan meerdere poststukken bezorgen.
- Een afhaalpunt kan meerdere pakketten hebben.
- Een bulkpost-code is uniek voor elke bulkpost.
### Voorbeelden
#### Geadresseerde
| Naam | Postcode | Huisnummer | Straat | Plaats |
|--------------|----------|------------|-----------|----------|
| Jan Jansen | 12345 | 10 | Straatnaam| Rommeldam|
#### Poststuk
| postId | Gewicht | E-mailadres | GeadresseerdeID |
|--------|---------|--------------|-----------------|
| 1 | 100 | | 1 |
### Conclusie
Het voorgestelde databaseontwerp voldoet aan de informatiebehoeften van het postagentschap van Rommeldam. Het model is genormaliseerd tot 3NF en beschrijft de entiteiten, attributen en relaties op een duidelijke manier.