Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Ontwerpen van de opslagstructuur (databaseontwerp)
Taken bij ontwerp database <ul><li>Verzamelen kwantitiatieve gegevens (= analyse).
Keuze DBMS
Van klassenmodel naar technisch databasemodel.
Technische en fysieke inrichting van de database. </li></ul>
Verzamelen kwantitatieve gegevens <ul><li>Volumeschattingen: hoeveel data, bv. hoeveel klanten.
Bestandactiviteit: hoe frequent raadplegingen?
Bestandsverandering: percentage wijzigingen in records.
Bestandsverloop: aantal toegevoegde en verwijderde records.
Bestandsgroei.
Bewaartijd (cf. transfer naar datawarehouse).
Toegangsbeperkingen.
Stabiliteit gegevensvereisten (kan datamodel wijzigen?).
Toegelaten zoektijden. </li></ul>==> Is analyse. ==> doel: DBA toelaten opslagstructuur technisch goed te ontwerpen.
Keuze DBMS <ul><li>Manier van opslag: </li></ul><ul><li>Objectgeoriënteerde DBMS
Relationele DBMS
Bestanden. </li></ul><ul><li>Keuze leverancier. </li></ul>
Objectgeoriënteerde DBMS ~ <ul><li>Eenvoudige opslag in OO-taal.
Vaak gebruikt voor complexe gegevens (geografisch, Cad/CAM)
Leveranciers: Gemstone, DB4o, Versant, Intersystems, Objectivity, ...
Nog weinig verspreid (maar gaat in stijgende lijn). </li></ul>
select selfoid from employee where `employee::address[1]` like&quot;*USA*&quot; Objectgeoriënteerde query's Alle auteurs v...
Relationele database ≠ Impedance mismatch <ul><li>Ophalen van objecten: wat met geassocieerde objecten?
Opslaan van objecten: structuur verschilt van databasestructuur. </li></ul><ul><li>Databaseopslag is complex en tijdrovend...
Gelukkig: frameworks en codegeneratoren. </li></ul>
Bestanden <ul><li>Veel nadelen t.o.v. DBMS: backup, data-integriteit, multi-uservoorzieningen, veiligheid, ...
Nieuwe leven sinds de komst van XML.
Ideaal voor configuratie-instellingen, semi-persistente gegevens (korte levensduur), uitwisseling van gegevens, ... </li><...
Keuze van de leverancier
Keuze van de leveranciers <ul><li>Geschiktheid voor de toepassing
Compatibiliteit met programmeertalen
Types datastructuren
Flexibiliteit
Security en privacy
Back-up en recovery
Integriteit
Performance en efficiëntie
Gebruiksgemak </li></ul><ul><li>Overdraagbaarheid.
Data dictionary.
Upcoming SlideShare
Loading in …5
×

H5 Databaseontwerp

3,416 views

Published on

  • Be the first to comment

  • Be the first to like this

H5 Databaseontwerp

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

×