MS Access

Access is the main database on Windows as it is part of Microsoft Office. It provides a GUI over a SQL database. It offers an easy to design forms for entering data and performing searches. Access offers Visual Basic for scripting, which enables for easier logic on input validation.


Weka allows for input from a variety of sources and then running a series of different algorithms on it. It has facilities for decision trees, k nearest neighbor and other machine learning algorithms. It can be used with it’s own built in GUI or you can use it in code in Python, Java or R.


The main programming language for databases is SQL (structured query language). It is cross platform not only between different computers but different database engines. There are some differences between the different dialects and the features supported. SQL includes integers, floats, fixed length strings, and indexes to other tables, but extensions include datetime, JSON, geospatial data, binary data. SQL allows you to search the database using queries which can find data that matches the criteria specified. You can use functions to aggregate the data if you just need the total, or average value for example the total sales for a particular State.

Visual Basic

One of the easiest ways to write a GUI is to use the visual form designer in Visual Basic, and you can edit the code when you click on a button. Visual Basic provides a full programming language, that can be used to solve a wide variety of problems.

Architecture for Database Interaction

Class Structure

Database Class Structure

The architecture is usual for applications with database interaction.

All business entities are described in package artist.model. Here we have description of 3 classes Artist, Song, SongWriter – main objects of application business logic.

These objects are processed on 3 layers:

  • Database layer: deals with objects on database level by appropriate entity tables and Many-To-Many tables. Access to the objects inside the database is executed by SQL requests from DAO layer;
  • DAO layer: provides an interface for manipulating with objects and retrieving objects from database;
  • Service layer: provides information about current business objects structure to main user interface. It gets information from database via DAO layer. In this implementation Console Menu is also implemented inside the service class.

Database Service Layer

Spring Beans

As for Spring beans, all necessary beans are declared in configuration file

Database Spring Beans

Mainly, these injected beans are responsible for database interaction: datasource object, JdbcTemplate, Dao object instance. Obtained successfully initialized ArtistDao object is used by one more bean – ArtistService. This class is annotated with @Service.

Database At Service


Database Structure