In order to select particular data within a database, one can use queries. Queries are a tool that allow for pieces of information to be extracted from large volumes of data, and are a key feature of database software.
When the previously-detailed query times aren't sufficient, one can use conditional queries. These require data to be given to the software before the query is run, and this data is used to gather specific results.
tbl_sessions
table was imported in order to query information about the drivers occupied on particular dates.
One of the most common uses of a database is to generate useful information that can be used to inform decisions. By crafting and combining both simple and complex queries, one can extract very specific ranges of data and create more data from them. In the case of the S-Cars database, the data could be used to make an informed decision about what vehicle to buy if the company was looking to make a new purchase.
Having looked at the data and the graphs created as part of the M3 task, I would suggest that S-Cars buy a second ten-seater Chevrolet. I noticed that the Chevrolet with registration ME02 ZDS was used the most, sporting the highest total session count. I also noticed that it was either the most popular or joint-most popular car in the first and second quarters. In addition, I noticed that – despite groups of seven and ten people being most popular –business the vehicles with a capacity of twelve saw a lot of business, but I attributed this to the lack of slightly-smaller capacity limousines. I feel a ten-seater vehicle would comfortably accommodate a typical group of customers, and would be more time- and fuel-efficient than using higher-capacity vehicles as the business currently is.
When creating the forms for entry of new data into the database, I used a PNG logo image created in Photoshop to identify the client with their branding. The logo is present on all of the forms in the same size and location, creating a sense of continuation and consistency between the different forms. I also used the same fonts and the same size of text for the labels and entry fields of the forms, and styled buttons in the same fashion each time one was created. I also attempted to clearly label the fields in which data must be entered, and laid out each form in a similar way. Using a consistent interface leads to a better end user-experience, or UX
By creating each form with a common design theme in mind, I was able to create a consistent and straightforward user experience. With each form laid out in the same way, one is able to quickly understand what a particular form requires. As part of white box testing, I was able to confirm that the VBA macros written to generate booking and customer IDs work as intended, and that the forms work as they should do. These factors contribute to the resultant UX.
I tested the database in some typical usage scenarios, and recorded the results of my testing below.
Test | Expected Outcome | Actual Outcome | Pass |
---|---|---|---|
Creating a new customer | The database would accept the information, granted that this is valid, and would not report any errors to the user. | The form accepted a non-valid title, despite the fact that data validation should be in use to prevent this. | |
Creating a new booking with sessions | Access would not display any errors during the creation of a new booking, and once the booking had been made, sessions could be added. | As expected. | |
Adding a new vehicle | The databse would allow a user to easily add a new vehicle, which could then be used in booking sessions. | The database does not include a form for the addition of a new vehicle, while forms for customers, bookings and sessions are provided. | |
Adding a new driver | A driver new to the company could be easily added tot he database and assigned to sessions. | The database does not include a form for the addition of a driver, while it does provide such an interface for the addition of other data. | |
Easily using the database | The database provides forms for the easy entry of data, and these follow a common design pattern. A single interface design is used for each, avoiding potential confusion otherwise. | The database is intuitive to navigate and use with the provided forms. | |
Feeling a sense of consistency and familiarity in the database | The database is consistent in appearance and in functionality and layout. The different forms follow a common theme and provide the user with a recognisable style by which to identify other S-Cars related content. | As expected. | |
Deleting a vehicle or driver | The database prevents the deletion of a vehicle or driver record until no records can be found using the vehicle or driver record's primary key. This is a result of enabled, enforced referential integrity, and will show the user an error message when attempting to delete relevant records. | As expected. |
In order to test that the relationships between different fields in different tables of the database were configured correctly, I turned to the Relationships view in Access. I inspected each link between different tables and ensured that referential integrity was enforced where appropriate.
In order to test that the queries I designed were working as expected, I analysed some of their outputs. Looking at the data returned by the queries, I was able to roughly judge their accuracy. If any data seemed erroneous or out of place, I would using the sorting and filtering tools available when viewing a table's contents to perform the query, or a similar one, and then compare results.
In order to prevent the entering of false or wrongly-formatted information, input masks and data validation was used. I tested these methods by using the forms built for data entry and observing how Access would react when given particular information. I found that the majority of the data validation was working as intended, but that some was not, such as in the case of the title
field in the customer table editing form. This was fixed by implementing a validation rule to only accept a limited number of strings in the field.
In order to test the functionality of the forms created I simply used them to add and edit a number of new records in various tables. I purposely entered erroneous data whenever possible, in an attempt to trigger the data validation rules and input masks on particular fields. I noticed no issues with any of the forms, and feel that a novice user could use and would not be hindered by the data entry forms.
In order to test the macros created to generate booking and customer IDs when required, I entered various different strings in the relevant form fields. Although the macros do not generate undoubtedly unique IDs, the chances of overlap are negligible at the scale at which the database would be used. No error messages were shown, which would have provided error information, so I believe that the VBA code works as intended.
In order to make the data more accessible and easier to work with, the results from each of the queries (other than the conditional query) was exported to Excel.
The information extracted from the database above was analysed and a recommendation made regarding the purchase of a new car in the P5 task.