Inleiding
Voor de applicatie wordt een nieuwe database toegepast, omdat de huidige database informatie bevat die niet nodig zijn voor de nieuwe implementatie. Hiervoor zijn een aantal opties: We kunnen ervoor kiezen de Microsoft Access database, die huidig in gebruik is, opnieuw in te richten met minder tabellen en data. Ook kunne we voor andere single-file database kiezen, zoals SQLite. We kiezen ervoor gebruik te maken van een embedded database omdat vanwege kosten een hosted (online) database geen optie is.
Om dit onderzoek te verrichten zullen wij zowel bieb- als labonderzoek uitvoeren, waarin we literatuuronderzoek uitvoeren en door middel van kleine testimplementaties de twee implementaties onderzoeken.
Hoofdvraag
De hoofdvraag is dus als volgt: Welke database sluit het best aan binnen de nieuwe applicatie?
Deelvragen
Om een goed en beargumenteerd antwoord op de hoofdvraag te kunnen geven hebben we ook een aantal deelvragen opgesteld, onderverdeeld per potentiele database-oplossing:
- Wat is Microsoft Access?
- Wat zijn de voor- en nadelen van Microsoft Access?
- Hoe werkt de verbinding tussen Java en Microsoft Access?
- Wat is SQLite?
Wat zijn de voor- en nadelen van SQLite?
Hoe werkt de verbinding tussen Java en SQLite?
Wat is Microsoft Access?
Om erachter te komen wat Microsoft Access is wordt gebruik gemaakt van de onderzoeksmethode literature study van de ICT-Research methodekaarten (Vogel, z.d.). Microsoft Access is een database management systeem van het bedrijf Microsoft waarmee je relationele databases kunt maken en bekijken (Terra, 2023). Om Microsoft Access zit begrepen in het Office 365 pakket van Microsoft, wat betekent dat je geld moet betalen om het systeem te kunnen gebruiken. Als je een Microsoft Access bestand opent kun je de data door middel van een GUI bewerken, dit is fijn omdat dit bij verschillende andere databases niet kan zonder dat je een extra programma installeerd.
Wat zijn de voor- en nadelen van Microsoft Access?
Voordelen van Microsoft Access?
- Easy to use: Je kan de gegevens van de database makkelijk inzien en aanpassen door het bestandje te openen.
- GUI: De database heeft een ingebouwde gebruikersomgeving waarmee gebruikers gegevens kunnen bewerken en toevoegen.
- Formulieren: Je kunt formulieren maken om het toevoegen en bewerken van gegevens vriendelijker te maken. Dit kun je doen door bijvoorbeeld knoppen, tekst velden en dropdown lijsten toe te voegen.
Wat zijn de nadelen van Microsoft Access?
- Kost geld: Om Microsoft Access te kunnen gebruiken moet je het Office 365 pakket in bezit hebben, dit kost op het moment €100,- per jaar (Microsoft, z.d.), of een eenmalige aankoop van €149,- voor enkel de Microsoft Access-applicatie (Microsoft, z.d.).
- Het is een bestand: Omdat het een bestand is kun je het maar lastig online op een service hosten waarna je applicaties er verbinding mee kunnen maken. Als iemand anders iets aan de database wilt aanpassen moet je dus steeds het bestand opnieuw met elkaar delen.
- Niet beschikbaar op MacOS: Microsoft Access bestanden kun je op MacOS niet openen.
- Alleen op PC beschikbaar: Microsoft Access bestanden kun je alleen op een computer openen en bekijken en niet op een telefoon.
Hoe werkt de verbinding tussen Java en Microsoft Access?
Om verbinding te leggen met de database gebruiken we de Java Persistence API (JPA), om makkelijk van database-leverancier te kunnen wisselen indien gewenst. IntelliJ heeft standaard geen ondersteuning voor Microsoft Access databases, om toch verbinding te maken met de database gebruiken we Ucanaccess: Een JDBC driver voor Microsoft Access. Om met Microsoft Access-databases te verbinden in een Maven-project zijn de volgende dependencies vereist in het pom.xml bestand:
De drie dependencies nodig om Microsoft Access databases de gebruiken in een JPA project
Hibernate en Jakarta zijn dependencies die JPA nodig heeft om te functioneren, en Ucanaccess is de driver die IntelliJ gebruikt om te verbinden met de Microsoft Access database. Met deze driver werkt het verbinden met de database vrijwel hetzelfde als een standaard JPA verbinding in IntelliJ, met drie uitzonderingen:
- De driver binnen het persistence.xml bestand moet gespecificeerd worden naar Ucanaccess, evenals de bestandslocatie van het databasebestand
- Omdat support met IntelliJ ontbreekt, kan de IDE niet vanzelf de persistence mapping genereren. Dit betekent dat de Entity-klassen die JPA gebruikt om data uit de database te halen door de ontwikkelaars zelf aangemaakt moeten worden.
- Ucanaccess is afhankelijk van meerdere .jar-bestanden die in de database driver moeten worden ingevoerd.
Voorbeeld van een persistence.xml-bestand voor een JPA-project met een Microsoft Access database, gebruikmakend van de Ucanaccess driver.
Als naderhand voor de databaseverbinding de volgende bestanden worden toegevoegd, werkt de database verbinding als elke andere JPA verbinding:
De vijf bestanden die nodig zijn om Ucanaccess te laten functioneren.
Wat is SQLite?
SQLite is een open source embedded relational database. Een embedded database runt in hetzelfde proces als het programma dat gebruikt maakt van de database (Owens, 2006). Dit betekent dat het programma alleen van zichzelf afhangt. Ook word de database in één file opgeslagen wat het uitwisselen van de database makkelijker maakt (SQLite, z.d). Om gegevens uit de database te kunnen lezen moet je gebruik maken van de SQL-Query taal. SQL is een programmeertaal die voor veel verschillende databases gebruikt wordt.
Wat zijn de voor- en nadelen van SQLite?
Voordelen van SQLite?
- Gratis: SQLite is gratis te installeren en gebruiken.
- Opensource: SQLite is opensource, iedereen kan de broncode inzien en wijzigingen voorstellen.
- Werkt op veel computer systemen: SQLite kun je gebruiken op Windows, Linux en Mac.
- Lightweight: SQLite neemt niet veel ruimte in beslag waardoor het ideel is voor embedded applicaties (SQLite Advantages And Disadvantages - Javatpoint, z.d.).
Nadelen van SQLite?
- Geen GUI: Je kunt niet makkelijk de gegevens van de SQLite database aanpassen omdat het geen ingebouwde GUI heeft, als je toch gegevens wilt bewerken moet een aparte applicate installeren.
- Maximale grootte: Een SQLite database kan maximaal 2GB groot zijn waardoor je dus niet oneindig veel gegevens er in kwijt kan (SQLite Advantages And Disadvantages - Javatpoint, z.d.).
Hoe werkt de verbinding tussen Java en SQLite?
Aanmaken van een database
Het aanmaken van een database kan op veel verschillende manieren. Binnen IntelliJ is het gelukkig vrij simpel. Je klikt eerst op de Database knop rechts in het scherm. Daarna klik je op het plusje, Data Source en selecteer je SQLite.
Het database menu in IntelliJ.
Daarna kom je in onderstaand menu. In het "File" veld vul je de naam van de database in met .db erachter.
Voorbeeld van het aanmaken van een nieuwe database connectie in IntelliJ
Er is nu een database aangemaakt in de folder van het project. Als je bij het database menu kijkt staat er nu een database genaamt newDatabase.db. Je kunt nu de database selecteren en op de console knop klikken. In deze console kun je queries op de database uitvoeren.
Connection met JPA
Om SQLite met JPA te laten werken heb je natuurlijk de standaard JPA dependencies nodig en de SQLite JDBC driver.
De drie benodigde dependencies in pom.xml
In persistence.xml moet het dialect, de path naar de database en de driver worden ingesteld. Het dialect voor SQLite is het SQL server dialect en de driver is de JDBC SQLite driver. Ook moet 'hbm2ddl.auto' worden ingesteld op update zodat de database niet wordt overschreven wanneer er een nieuwe connectie wordt aangemaakt. Aangezien IntelliJ standaard SQLite ondersteund kun je de entities laten genereren.
Voorbeeld van persistence.xml
Conclusie
Na het onderzoeken van SQLite en Microsoft Access kan worden geconcludeerd dat beide opties zouden kunnen aansluiten op het nieuwe indelingsprogramma.
Microsoft Access biedt een gebruiksvriendelijke GUI en maakt het eenvoudig om gegevens te bewerken en toe te voegen. Echter, het vereist het bezit van het Office 365 pakket, is beperkt tot PC's en heeft beperkte online toegankelijkheid. De verbinding tussen Java en Microsoft Access kan worden gerealiseerd met behulp van de Ucanaccess JDBC driver, hoewel extra inspanning nodig is voor handmatige mapping van entiteitsklassen.
Aan de andere kant biedt SQLite voordelen zoals gratis gebruik, open source en ondersteuning voor meerdere besturingssystemen. Echter, het mist een ingebouwde GUI en heeft een maximale databasegrootte van 2GB. De maximale grootte is voor ons niet van toepassing omdat je maar moeilijk tot komt. De verbinding tussen Java en SQLite kan eenvoudig worden gemaakt met behulp van de SQLite JDBC driver.
In ons geval sluit SQLite het beste aan op onze toekomstige applicatie. SQLite kan gebruikt worden op Windows en MacOS, dit is een eis van de opdrachtgever en daarom is dit een essentieël voor het database systeem. Ook is het makkelijk om een connectie te maken tussen Java en SQLite. Dit is fijn tijdens de ontwikkelomgeving omdat dit het proces van het maken versnelt.
Bibliografie
- Owens, M. (2006). Introducing SQLite. The Definitive Guide to SQLite, 1-16. SQLite:
- Single File Database. (z.d.). sqlite.org. Geraadpleegd op 11 april 2024, van https://www.sqlite.org/onefile.html
- Terra, J. (2023, 24 april). What is Microsoft Access? An Introductory Guide. Simplilearn.com. Geraadpleegd op 11 april 2024, van https://www.simplilearn.com/what-is-microsoft-access-article
- Vogel, J. (z.d.). ICT Research Methods — Methods Pack for Research in ICT. ICT Research Methods. Geraadpleegd op 11 april 2024, van https://ictresearchmethods.nl/
- Microsoft. (z.d.). Vergelijk alle Microsoft 365-abonnementen (voorheen Office 365) - Microsoft Store. Geraadpleegd op 11 april 2024, van https://microsoft.com/nl-NL/microsoft-365/buy/compare-all-microsoft-365-products?market=nl
- SQLite Advantages and Disadvantages - javatpoint. (z.d.). www.javatpoint.com. Geraadpleegd op 11 april 2024, van https://www.javatpoint.com/sqlite-advantages-and-disadvantages