Met dataabstractie kunnen ontwikkelaars en beheerders alleen noodzakelijke data aan front-endgebruikers weergeven, omdat ze geen toegang hoeven te hebben tot een volledige datasilo. Abstraction wordt op verschillende gebieden van softwareontwikkeling gebruikt en de datalaag van een applicatie scheidt de database van de gebruikersinterface. Het doel is om betere schaalbaarheid en minder refactoring te benutten tijdens infrastructuurwijzigingen.
Wat is een DBMS?
Een databasemanagementsysteem (DBMS) is een hulpmiddel dat wordt gebruikt als interface tussen een gebruiker en de ruwe opgeslagen data. Met behulp van een DBMS kunnen beheerders data bekijken die in een database zijn opgeslagen, nieuwe data bijwerken of invoegen en query's uitvoeren om data op te halen. Beheerders kunnen ook database-items beheren, zoals opgeslagen procedures, triggers, tabellen, indexen en andere objecten. Een DBMS wordt vaak gebruikt om de database te bouwen en later te beheren.
Een voorbeeld van een DBMS is MySQL . MySQL is een relationele database, dus beheerders gebruiken het DBMS om databaseobjecten te bekijken, tabellen te maken of data op te vragen. Een applicatie gebruikt het DBMS om data op te vragen of data aan de database toe te voegen. Omdat MySQL een relationele database is, worden data opgeslagen in tabellen met beperkingen in elke kolom om het type opgeslagen data te controleren.
Een ander voorbeeld van een DBMS is MongoDB . MongoDB is een NoSQL open source database die ongestructureerde data opslaat. Data worden opgeslagen in documenten en beheerders kunnen elk aantal en type items in het document opslaan. Beheerders gebruiken het MongoDB DBMS om de structuur van de database te beheren, en applicaties gebruiken het om data op te vragen en toe te voegen.
Wat is een data-abstraction?
Dataabstractie is een logische functie in een applicatie om de ruwe data te scheiden van de front-end. Eenvoudig gezegd verwerkt de datalaag de verbinding met de database en bevraagt deze vanaf de voorkant. Dataabstractie maakt het mogelijk voor de front-end applicatie om data op te vragen, ongeacht waar de data zijn opgeslagen. Ontwikkelaars kunnen vervolgens back-end databases verwisselen zonder grote delen van hun code te refactoren om verbinding te maken en te werken met een nieuwe database-engine.
Stel bijvoorbeeld dat u MongoDB in ontwikkeling gebruikt totdat u kunt bepalen met welk type data u moet werken. U wilt dan MySQL in productie gebruiken. De data-abstractielaag verwerkt de verbinding met de database en het opvragen vanuit zowel MongoDB als MySQL zonder de front-end codebase te beïnvloeden. Gebruikers zijn zich niet bewust van de wijzigingen in database-engines, maar kunnen nog steeds de informatie verkrijgen die ze nodig hebben.
Niveaus van data-abstractie
Dataabstractie is een overkoepelende term die verschillende aspecten van het beheer van data behandelt. Wanneer ontwikkelaars een applicatie maken en samenwerken met beheerders, zijn er drie abstractieniveaus: fysiek, logisch en weergave. Hier is een korte uitleg van deze niveaus:
- Fysiek/intern niveau: Dit niveau omvat de infrastructuur om de database onder te brengen, inclusief de netwerkinformatie voor de server en de locatie van de server. De fysieke componenten kunnen bijvoorbeeld een cloud-VM zijn met CPU- en geheugenbronnen op middenniveau.
- Logisch/conceptueel niveau: De logische laag is de code die wordt gebruikt om verbinding te maken met de fysieke laag. Het bevat de logica voor verbindingen, query's en foutafhandeling. Logische lagen kunnen code bevatten om verbinding te maken met meerdere databases, afhankelijk van invoerfactoren.
- Weergave/extern niveau: Met de front-end applicatie kunnen gebruikers de data bekijken. Dit abstractieniveau is het verst verwijderd van de ruwe dataopslaglocatie, maar het formatteert en presenteert de data aan de kijker, zodat het nuttig kan zijn.
Multi-tier databasearchitecturen
Abstraction layers kunnen logische lagen zijn die in uw applicatie zijn ingebed, maar ze kunnen zich ook op fysiek verschillende resources bevinden. Het doel van meerlaagse abstractie is om het veel gemakkelijker te maken om een enkele laag te schalen zonder andere lagen te beïnvloeden. Multi-tier architectuur wordt ook wel "n-tier architectuur" genoemd, waarbij beheerders ervoor kunnen kiezen om verschillende niveaus te hebben voor elk onderdeel in de applicatie.
Het is gebruikelijk om drie niveaus in een meerlaagse architectuur te hebben: presentatie, data en applicatie. Hier is een korte beschrijving van deze niveaus:
- Data tier : Dit niveau slaat de data op en draait de database-engine. Het kan op een speciale bare bones-server of een virtuele machine zijn. Databases kunnen ook werken in clusters in een datawarehouse met complexe datapijplijnen, afhankelijk van het scenario van de use case.
- Applicatieniveau: Dit niveau verwerkt de applicatie. Als de front-end bijvoorbeeld een aangepaste webapplicatie is, slaat een webserver de applicatiebestanden op en voert deze uit. Gebruikers maken verbinding met deze server om de applicatie uit te voeren.
- Presentatieniveau: Het presentatieniveau verschilt van het applicatieniveau, ook al klinken ze vergelijkbaar. Applicatieniveaus hebben de codebasis en applicatielogica, terwijl het presentatieniveau is wat de gebruiker ziet. In een webapplicatie is de presentatielaag de CSS en HTML die worden gebruikt om applicatiecode op te maken en weer te geven aan de gebruiker.
Wat zijn de voordelen van data-abstraction?
Door datalagen te scheiden van de front-end applicatie kunnen resources granulair worden geschaald. Wijzigingen in de datalaag hebben ook geen invloed op de front-end, dus dataabstractie beperkt het herfactoren van code wanneer een andere database-engine wordt gebruikt of de datalaag van locatie verandert.
Stel bijvoorbeeld dat uw organisatie besluit om de database vanuit on-premise locaties naar de cloud te verplaatsen. Alleen de datalaag hoeft te worden gewijzigd en er zijn geen wijzigingen in de front-end applicatiecode nodig. Beheerders kunnen resources voor de datalaag schalen zonder dat ze resources voor de applicatielaag hoeven te schalen als dat niet nodig is.
Conclusie
In een bedrijfsapplicatie kunt u met een dataabstractielaag om verbinding te maken met uw DBMS op- of afschalen. U kunt ook wijzigingen aanbrengen in de architectuur van het dataniveau in uw architectuur zonder veel codewijzigingen in uw codebasis. U kunt meerdere database-engines gebruiken of uw database naar een nieuwe locatie verplaatsen zonder veel overhead.
Bekijk bij het plannen van uw data-abstractiearchitectuur Pure Storage ® FlashArray™ voor unified block en file storage. Voor opslag in de cloud, bekijk de cloud block storage van Pure Storage .