Your SlideShare is downloading. ×

H5 Databaseontwerp

2,884
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,884
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ontwerpen van de opslagstructuur (databaseontwerp)
  • 2. Taken bij ontwerp database
    • Verzamelen kwantitiatieve gegevens (= analyse).
    • 3. Keuze DBMS
    • 4. Van klassenmodel naar technisch databasemodel.
    • 5. Technische en fysieke inrichting van de database.
  • 6. Verzamelen kwantitatieve gegevens
    • Volumeschattingen: hoeveel data, bv. hoeveel klanten.
    • 7. Bestandactiviteit: hoe frequent raadplegingen?
    • 8. Bestandsverandering: percentage wijzigingen in records.
    • 9. Bestandsverloop: aantal toegevoegde en verwijderde records.
    • 10. Bestandsgroei.
    • 11. Bewaartijd (cf. transfer naar datawarehouse).
    • 12. Toegangsbeperkingen.
    • 13. Stabiliteit gegevensvereisten (kan datamodel wijzigen?).
    • 14. Toegelaten zoektijden.
    ==> Is analyse. ==> doel: DBA toelaten opslagstructuur technisch goed te ontwerpen.
  • 15. Keuze DBMS
    • Manier van opslag:
    • Objectgeoriënteerde DBMS
    • 16. Relationele DBMS
    • 17. Bestanden.
    • Keuze leverancier.
  • 18. Objectgeoriënteerde DBMS ~
    • Eenvoudige opslag in OO-taal.
    • 19. Vaak gebruikt voor complexe gegevens (geografisch, Cad/CAM)
    • 20. Leveranciers: Gemstone, DB4o, Versant, Intersystems, Objectivity, ...
    • 21. Nog weinig verspreid (maar gaat in stijgende lijn).
  • 22. select selfoid from employee where `employee::address[1]` like"*USA*" Objectgeoriënteerde query's Alle auteurs van een boek met LOID 10.0.12354 : SELECT SELFOID FROM (10.0.12345)->Book::authors AS Author ; We zoeken een object van de klasse Book waarvan de auteur een SS N van 534223 heeft: SELECT SELFOID FROM Book WHERE Book::author-> Person::ssn = 534223 ; Alle voorbeelden komen uit de handleiding van Versant.
  • 23. Relationele database ≠ Impedance mismatch
    • Ophalen van objecten: wat met geassocieerde objecten?
    • 24. Opslaan van objecten: structuur verschilt van databasestructuur.
    • Databaseopslag is complex en tijdrovend (tot 25% vd code).
    • 25. Gelukkig: frameworks en codegeneratoren.
  • 26. Bestanden
    • Veel nadelen t.o.v. DBMS: backup, data-integriteit, multi-uservoorzieningen, veiligheid, ...
    • 27. Nieuwe leven sinds de komst van XML.
    • 28. Ideaal voor configuratie-instellingen, semi-persistente gegevens (korte levensduur), uitwisseling van gegevens, ...
  • 29. Keuze van de leverancier
  • 30. Keuze van de leveranciers
    • Geschiktheid voor de toepassing
    • 31. Compatibiliteit met programmeertalen
    • 32. Types datastructuren
    • 33. Flexibiliteit
    • 34. Security en privacy
    • 35. Back-up en recovery
    • 36. Integriteit
    • 37. Performance en efficiëntie
    • 38. Gebruiksgemak
    • Overdraagbaarheid.
    • 39. Data dictionary.
    • 40. Datacommunicatie.
    • 41. Gedistribueerde gegevens.
    • 42. Handleiding, documentatie en opleiding.
    • 43. Verkoperssupport.
    • 44. Kostprijs.
  • 45. Van klassenmodel naar datamodel (1)
    • Klasse --> Tabel
    • 46. Attribuut --> Kolom: datatype omzetten.
    • 47. Domeindefinitie: beperkt domein
      • Check constraints
      • 48. Database trigger
      • 49. Aparte tabel
      • 50. Applicatiecode
  • 51. Van klassenmodel naar datamodel (2)
    • Primaire sleutel
      • uniek attribuut
      • 52. eventueel surrogate key
      • 53. soms combinatie van attributen (! performantie)
      • 54. ev. wachten tot FK's zijn toegevoegd
    • Verplichte en optionele kolommen
    • 55. Unique keys
    • 56. 1-op-n-relatie --> foreign key
  • 57. Domeinmodel: omzetten naar ERD.
  • 58. ERD van Orders
  • 59. Van klassenmodel naar datamodel (3)
    • 1-op-1-relatie:
      • FK aan verplichte kant
      • 60. FK aan tabel met minst leden
    • m-op-n-relaties: geen probleem, tussenklassen
    • 61. recursieve relaties: FK naar primaire sleutel zelfde tabel
    • 62. Xor-constraint: twee foreign keys en server-code of applicatiecode.
  • 63. 1-op-1-relatie: domeinmodel
  • 64. 1-op-1-relatie ERD
  • 65. Veel-op-veel-relatie
  • 66. Veel-op-veel-relatie bijgewerkt
  • 67. ERD Veel-op-veel
  • 68. Recursieve relaties
  • 69. Recursieve relatie in tabellen
  • 70. XOr-beperking
  • 71. Xor-beperking: databasemodel
  • 72. Extra overwegingen (1)
    • Historiek: vorige toestanden bijhouden.
  • 73. Historiek bijhouden
  • 74. Extra overwegingen (2)
    • Events registreren
    • 75. Vereenvoudiging structuren
  • 76. Vereenvoudigen structuren
  • 77. Events registreren Rekening Openen Rekening C Storten M Afhalen M SluitenRekening E
  • 78. Events registreren
  • 79. Generalisatie en specialisatie
    • één tabel
    • 80. een tabel per subtype en één voor het supertype
    • 81. een tabel per subtype
  • 82. Generalisatie en specialisatie: één tabel
  • 83. Generalisatie en specialisatie: drie tabellen
    • Een tabel voor het generalisatietype.
    • 84. Een tabel per subklasse.
  • 85. Generalisatie en specialisatie: een tabel per subklasse
  • 86. Denormalisatie
    • Denormalisatie
      • afwijken van derde normaalvorm
      • 87. berekende waarden
  • 88.  
  • 89. Databasemodel tekenen
  • 90. Databasemodel documenteren
    • Opsomming van de tabellen.
    • 91. Kolommen beschrijven: naam, datatype, lengte, verplicht of niet, domeinbeperkingen.
    • 92. Primaire sleutel beschrijven
    • 93. Unique keys beschrijven.
    • 94. Foreign key constraints beschrijven (cascade of restricted)
    • 95. Indexen
    • 96. ....
    Idem bij bestanden: naam, type, toegangstypes, recordbeschrijving, ...
  • 97. Technische en fysieke organisatie database ==> DBA (database administrator)
    • Optimalisatie toegangstijden: indexen, denormalisatie, ...
    • 98. Implementatieoplossingen zoeken: autonummering, domeinbeperkingen via check constraints, database triggers, stored procedures, ...
    • 99. Grootte tabellen berekenen en opslagruimte schatten.
    • 100. Fysieke organisatie database: tablespaces, data files, log files, enzovoort.
    • 101. Keuze informatiedrager: disk, RAID-disks, tape, ...
    • 102. Toegangsrechten definiëren.