Gedistribueerde database
Gedistribueerde database staat voor een database die niet beperkt is tot één systeem, maar is verspreid over verschillende sites, dat wil zeggen op meerdere servers of via een netwerk van servers op meerdere locaties. Het is een database die bestaat uit twee of meer bestanden. Een gedistribueerd databasesysteem bevindt zich bovendien op verschillende sites die geen fysieke componenten delen. Dit kan nodig zijn als een bepaalde database wereldwijd door verschillende gebruikers, hetzij op hetzelfde netwerk, hetzij op volledig verschillende netwerken, moeten benaderen. Delen van de database slaan we op meerdere fysieke locaties op en de verwerking verdelen tevens we over meerdere databaseservers. De database moeten we zo beheren dat het voor de gebruikers lijkt op één enkele database.
Gedistribueerde databases kunnen homogeen of heterogeen zijn.
Homogene gedistribueerde databasesystemen lijken voor de gebruiker als een enkel systeem en zijn veel eenvoudiger te ontwerpen en te beheren. Om een gedistribueerd databasesysteem homogeen te laten zijn, moeten de datastructuren op elke locatie echter wel identiek of compatibel zijn. De database-applicatie die we op elke locatie gebruiken, moet ook identiek of compatibel zijn. In een homogene database slaan alle verschillende sites de data op identieke wijze op. Het besturingssysteem, DBMS en de gebruikte datastructuren zijn ook allemaal hetzelfde op alle sites. Daardoor zijn ze eenvoudig te beheren.
In een heterogene gedistribueerde database kunnen de hardware, besturingssystemen of database-applicaties op iedere locatie anders zijn. Verschillende sites kunnen namelijk verschillende datamodellen en software gebruiken. Een verschil in datamodel kan verwerking van echter query’s bemoeilijken. Dit kan leiden tot problemen bij de verwerking van transacties. De site kan ook niet compatibel zijn of volledig onbekend zijn met de andere sites. Gebruikers op één locatie kunnen mogelijk data lezen op een andere locatie, maar deze niet uploaden of wijzigen. Om deze problemen op te lossen zijn bij een heterogene database voor verschillende sites vertalingen vereist om te kunnen communiceren. Heterogene gedistribueerde databases zijn vaak moeilijk te gebruiken, waardoor ze voor veel bedrijven economisch onhaalbaar zijn.
Er zijn twee manieren waarop data op de verschillende sites kunnen worden opgeslagen. Dit zijn:
Database-replicatie zorgt ervoor dat de data in gedistribueerde databases up-to-date blijft.
Bij replicatie wordt namelijk alle data redundant opgeslagen op 2 of meer sites. Als de volledige database op alle sites wordt opgeslagen spreken we van een volledig redundante database. Bij replicatie houden de systemen feitelijk kopieën van de data bij.
Gerepliceerde data kunnen we in twee categorieën verdelen: alleen-lezen en schrijfbare data. Alleen-lezen versies van gerepliceerde data staat herzieningen alleen toe op de eerst aangewezen site-server. Op de andere daaropvolgende servers wordt de data vervolgens aangepast. Schrijfbare data is te wijzigen, maar de eerste site-server wijzigt direct. Een Content Delivery Network (CDN) voor websites is bijvoorbeeld gebaseerd op dit principe.
Het grote voordeel hiervan is dat de beschikbaarheid van data op de verschillende locaties groot is. Queries kunnen we op die manier parallel verwerken.
Er zijn echter ook nadelen. De data moet voortdurend worden bijgewerkt. Iedere wijziging die op een site wordt aangebracht, moet worden over gebracht naar iedere andere site, anders leidt dit tot inconsistenties. Dit geeft een zware belasting op de systemen en het netwerk. Bovendien wordt de concurrency-controle veel complexer omdat het locken van records bij gelijktijdige toegang op alle sites moet worden uitgevoerd.
In deze benadering is de data gefragmenteerd, dat wil zeggen verdeeld in kleinere delen. De fragmenten worden verdeeld en opgeslagen op de verschillende sites waar ze nodig zijn. De verdeling van de fragmenten vindt op een intelligente wijze plaats waardoor ze te gebruiken zijn om de originele data te reconstrueren als een van de sites uitvalt. Er is dan dus geen verlies van data.
Het voordeel van fragmentatie is dat we geen kopieën van de data hoeven te maken terwijl de database consistent blijft.
In sommige gevallen gebruikt men daarom een hybride aanpak van fragmentatie en replicatie.
Een gecentraliseerd Distributed Database Management System integreert de data op een logische manier. Zodanig dat de gebruiker het gevoel heeft dat alle data op dezelfde site (bij hem) is opgeslagen. Het DDBMS is een DBMS dat alle data direct of periodiek synchroniseert en zorgt dat alle invoer, updates en verwijderingen die op een site worden uitgevoerd automatisch worden uitgevoerd op de data die elders zijn opgeslagen.
Een gecentraliseerde database kent echter slechts een enkel databasebestand dat zich op één site bevindt en via een enkel netwerk wordt ontsloten.
Over het algemeen omvatten gedistribueerde databases de volgende functies:
Het gebruik van een gedistribueerde database biedt veel voordelen.
Een veel voorkomende misvatting is dat een gedistribueerde database een gekoppeld opzichzelfstaand bestandssysteem is. In feite is het veel ingewikkelder dan dat. Gedistribueerde databases zijn vaak onderdeel van een complex transactieverwerkend systeem, maar zijn niet het synoniem voor transactieverwerkingssystemen.
Mogelijk is dit een vertaling van Google Translate en kan fouten bevatten. Klik hier om mee te helpen met het verbeteren van vertalingen.