Relational Databases (OCR A Level Computer Science)
Revision Note
Written by: Neil Southin
Reviewed by: James Woodhouse
Relational Databases
What is a Database?
A Database is an organised collection of data
It allows easy storage, retrieval, and management of information
Electronic databases offer a number of key benefits:
Easier to add, delete, modify and update data
Data can be backed up and copied easier
Multiple users, from multiple locations, can access the same database at the same time
Database Terminology
Term | Definition |
---|---|
Field | A single piece of data in a record |
Record | A group of related fields, representing one data entry |
Table | A collection of records with a similar structure |
Primary key | A unique identifier for each record in a table. Usually an ID number |
Compound primary key | A combination of (2 or more) fields that is unique for all records |
Foreign key | A field in a table that refers to the primary key in another table. Used to link tables and create relationships |
Secondary key | A field or fields that are indexed for faster searching |
Database Management System | Software used to manage databases. Examples include MySQL, Oracle, Microsoft SQL Server, PostgreSQL |
Primary, Foreign & Secondary Keys
Visualising a database
This database has 2 tables : orders and customers
Fields:
In the orders table are order_id, product, total and customer_id
In the customers table are customer_id, first_name, last_name, phone and country
A record would be 1 complete row in either table
order_id is the primary key for the orders table
customer_id is the primary key for the customers tableIn the orders table customer_id is a foreign key - it links an order back to the customer that made the order in the customer table
Indexing (Secondary Keys)
Indexing is a technique used to speed up data retrieval in a database
It works in a similar way to the index in a book
If a student had a maths book and wanted to find the section on factorising, they could start at the first page and look at each page in turn until they found the section they wanted
But this would be slow, so it is better to look in the index to find where the factorising section is and just go directly to it
Likewise in a database, certain columns can be indexed so that the DBMS does not have to look at every single record during a search and can just go to the relevant records directly
This can greatly speed up searches
Fields that are indexed are known as secondary keys
Flat File vs Relational Database
A flat file database is one that stores all data in a single table
It is simple and easy to understand but causes data redundancy, inefficient storage and is harder to maintain
A relational database is one that organises data into multiple tables
It uses keys to connect related data which reduces data redundancy, makes efficient use of storage and is easier to maintain
Consider this example flat file table of students
This table has redundant data - the tutor and form room information repeats
This is inefficient
If a tutor changed their name we would need to find all instances of that name and change them all
Missing any would mean the table had inconsistent data
A relational database would solve this issue:
A new table could be created to store the tutor information and the tutor information in the student table could be moved to the new table. Then a foreign key in the student table (TutorID) could link a student to their tutor
Now the name of each tutor and their form room is stored only once
This means if they change only one piece of data, the data is updated in the entire database and Inconsistency is avoided
Worked Example
Customers’ details are stored in the flat file database table Customer. An extract of the table is shown below
Describe one problem that would arise with the flat file database structure if a customer wanted to insure more than one car at the same time
[2]
Answer:
One mark per pair:
Only one customer entry allowed (because of key field)...
so would not be able to add second entry [1]
Customer data already present/would be repeated...
resulting in redundant data/wasted space/inconsistencies should changes be made [1]
Last updated:
You've read 0 of your 10 free revision notes
Unlock more, it's free!
Did this page help you?