Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: "ingebouwd"

...

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 kunnen 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.

...

De hoofdvraag is dus als volgt: Welke database past beter 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?

Biebonderzoek

Wat zijn de voordelen van 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?

  • Gebruiksgemak: Je kan de gegevens van de database makkelijk inzien en aanpassen door het bestandje te openen.
  • GUI: De database heeft een 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?

tekst

Labonderzoek

Wat moet er in het project gezet worden om gebruik te maken van een Access database?

tekst

Wat is SQLite?

Biebonderzoek

Wat zijn de voordelen van SQLite?

tekst

Wat zijn de nadelen van SQLite?

tekst

Labonderzoek

Wat moet er in het project gezet worden om gebruik te maken van een SQLite database?

tekst

Conclusie

tekst

Bibliografie

...

  • 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:

Image Added

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:

  1. De driver binnen het persistence.xml bestand moet gespecificeerd worden naar Ucanaccess, evenals de bestandslocatie van het databasebestand
  2. 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.
  3. Ucanaccess is afhankelijk van meerdere .jar-bestanden die in de database driver moeten worden ingevoerd.

Image Added

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:

Image Added

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 native 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. 

Image Added

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. 

Image Added

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.

Image Added

Connection met JPA

Om SQLite met JPA te laten werken heb je natuurlijk de standaard JPA dependencies nodig en de SQLite JDBC driver.

Image Added

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.

Image Added

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 duidelijk bedoelde 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