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, Linus 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.
Daarna kom je in onderstaand menu. In het "File" veld vul je de naam van de database in met .db erachter.
Er is nu een database aangemaakt in de folder van het project.
Connection met JPA
Om SQLite met JPA te laten werken heb je natuurlijk de standaar JPA depencies nodig en de SQLite JDBC driver.
In persistence.xml moet het dialect, de path naar de database en de driver worden ingesteld. Ook moet de laatste property worden toegevoegd zodat de database niet wordt geoverwrite wanneer er een nieuwe connectie wordt aangemaakt.
Conclusie
tekst
Bibliografie
- Owens, M. (2006). Introducing SQLite. The Definitive Guide to SQLite, 1-16. SQLite: Single File Database. (z.d.). 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