Click here to load reader
Upload
mark-cunningham
View
217
Download
0
Tags:
Embed Size (px)
DESCRIPTION
LT Scotland course notes for Higher Information Systems (databases)
Citation preview
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 4 9
RELATIONAL DATABASE SYSTEMS (HIGHER)
Relational Database Systems (Higher)
Chapter 1 briefly summarises the material covered at Intermediate 2level. Candidates without prior attainment of this unit at Intermediate 2may also find it helpful to have access to the Section 3 materials.
Chapter 1: Database fundamentals
Definitions
A database is a collection of related information about a set of personsor objects.
A database management system (DBMS) is a software package which isused to create, manipulate and present data from electronic databases.Example include Microsoft Access, Filemaker Pro, MySQL, Oracle,Ingres, Postgres, SQL Server and many others.
Traditional databases
Problems associated with manual paper-based databases:
the storage of paper records was very bulky, often requiring severallarge filing cabinets
data was often duplicated in several records keeping records up-to-date was difficult and time consuming, and
often resulted in data inconsistency, where duplicated values wereupdated in one record but not in others
many people were employed to maintain the records, which wascostly
searching for records was time consuming producing reports, such as sorted lists or data collated from several
sources, was extremely time consuming, if not impossible.
Computerised databases were developed in order to address theseproblems. In the following pages, the term database is used to mean acomputerised database.
SECTION 4
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)5 0
RELATIONAL DATABASE SYSTEMS (HIGHER)
Benefits of using databases
Computerised databases have several advantages over manual databases.
Searching and sorting operations can be performed much morequickly and easily.
Information is more easily available to users, due to improvedmethods of data retrieval.
Security and integrity of data is improved, due to the methods of datastorage and updating.
No data redundancy (data duplication). In a relational database, datais never stored more often than is necessary.
Data consistency. This means that when data is updated, this is onlydone once, so removing the possibility of data inconsistency.
Data independence. In a DBMS, the software that processes the datais separate from the data itself. This means that several programs canbe developed to perform operations on the data without affecting thedata itself.
Case study: DVD rentals
Here is a review of the DVD rentals example that was covered inSection 3.
Alis Mini Market is a local store with a DVD rental section. To rent aDVD, customers must register as members.
Ali records the details of members on a member list, part of which isshown in Figure 1.1.
Figure 1.1: DVD rentals: member list
Member number Title Forename Surname Telephone no.1012 Miss Isobel Ringer 2938471034 Mr John Silver 1425361056 Mr Fred Flintstone 8172631097 Mrs Annette Kirton 384756
Ali has a DVD rentals list that is used to record details of rentals for eachDVD. Part of the DVD rentals list is shown in Figure 1.2.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 5 1
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 1.2: DVD rentals list
DVD Title Cost Date Out Date Due Member Namecode number002 Finding Nemo 2.50 03/09/04 04/09/04 1034 John Silver003 American Pie 2.50 27/08/04 28/08/04 1056 Fred Flintstone
01/09/04 02/09/04 Isobel Ringer008 The Pianist 2.50 04/09/04 06/09/04 1097 Annette Kirton011 Notting Hill 2.50 27/08/04 28/08/04 1012 I Ringer
04/09/04 06/09/04014 Prime Suspect 2.00 27/08/04 28/08/04 1086 Annette Kirton015 Shrek 1.50 10/09/04 11/09/04 1034 Joan Silver
Entities and relationships
In the DVD rentals system, MEMBER and DVD RENTAL are calledentities. An entity represents a person or object. Each entity has a setof attributes that describe examples or instances of that entity. Theattributes of the DVD RENTAL entity are Code, Title, Cost, Date Out,Date Due and Member Number, and the attributes of the MEMBER entityare Member Number, Name and Telephone Number.
In a manual system, attributes may contain several values. For example,in Alis DVD rentals list in Figure 1.2, the attributes Date Out, Date Due,Member Number and Name have more than one entry for DVDs 003 and011. These are called multi-valued attributes.
In a computerised database, single-valued attributes are used inpreference to multi-valued attributes.
The MEMBER entity is the whole table.
Figure 1.3: Entities, attributes and instances
The MEMBER entity isthe whole table
Each column stores oneattribute, e.g. Member Name
Each row stores oneinstance, e.g. Member1034
V
V
V
MEMBERMember Member name Telephonenumber number1012 Isobel Ringer 2938471034 John Silver 1425361056 Fred Flintstone 8172631097 Annette Kirton 384756
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)5 2
RELATIONAL DATABASE SYSTEMS (HIGHER)
The entity and its attributes are written as:MEMBER(Member Number, Title, Forename, Surname, TelephoneNumber)
DVD RENTAL(DVD Code, Title, Cost, Date Out, Date Due, MemberNumber, Name, Telephone Number)
Note that the entity name is usually written in CAPITALS and in thesingular rather than the plural form, i.e. MEMBER not MEMBERS.The attributes are listed in the brackets. Sometimes it is easier towrite the attributes one underneath the other.
When a DVD is rented, a link is made between a DVD RENTAL and aMEMBER. This is called a relationship. Each member can rent outmany DVDs, but each DVD can only be rented by one member at a time,so we say there is a one-to-many relationship between MEMBER andDVD RENTAL.
This is sometimes written as... MEMBER 1:M DVD RENTAL
1:M stands for one-to-many.
Figure 1.4 shows a diagram of the relationship between MEMBER andDVD RENTAL. This is called an entity-relationship diagram. The linejoining the entities is called a crows foot, and the toes are at themany end of the relationship.
Figure 1.4: Entity-relationship diagram showing a one-to-manyrelationship
MEMBER
DVD RENTAL
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 5 3
RELATIONAL DATABASE SYSTEMS (HIGHER)
There are other types of relationship between entities. For example,every vehicle has a registration number, and each registration numbercorresponds to a single vehicle, so there is a one-to-one relationshipbetween VEHICLE and REGISTRATION NUMBER. In a school, everypupil has many teachers, and each teacher teaches many pupils, so thereis a many-to-many relationship between PUPIL and TEACHER.
These relationships can be written as
VEHICLE 1:1 REGISTRATION NUMBER
PUPIL M:N TEACHER
M:N stands for many-to-many (the number of teachers and pupils may bedifferent, which is why N is used instead of M)
Figure 1.5: Entity-relationship diagrams showing one-to-one and many-to-many relationships
VEHICLE PUPIL
TEACHER
Data modelling is the process of defining the entities, attributes andrelationships that are required. The result is called a data model.
Exercise 11. Explain what is meant by data inconsistency in a database. Give an
example to illustrate your answer.2. Explain why flat file databases often result in data inconsistencies.
REGISTRATIONNUMBER
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)5 4
RELATIONAL DATABASE SYSTEMS (HIGHER)
Chapter 2: The relational model
The main idea behind a relational database is that data is grouped intoentities that are related, in order to minimise data duplication andachieve data integrity.
In order to create a relational database, it is necessary first to produce adata model to represent the data being stored. The data model willindicate which entities are required, which attributes belong to eachentity, and what relationships exist between the entities.
A significant feature of the relational model is that, in order toimplement the data model, any many-to-many relationships betweenentities are removed and replaced with one-to-many relationships.
Entity occurrence
One method of identifying the relationships between entities is calledentity occurrence modelling. It can be a useful technique if you havesome sample data to work with.
Figure 2.1: Entity occurrence diagram for the DVD rentals system shownin Figures 1.1 and 1.2.
002
003
008
011
014
015
1012
1034
1056
1097
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 5 5
RELATIONAL DATABASE SYSTEMS (HIGHER)
The lines between the entities show how the instances of each entity arelinked. For example, they show that member 1034 has rented DVDs 002and 015, and that DVD 003 has been rented by members 1012 and 1056.
By looking at the DVD RENTAL entity, we can see that some DVDs (e.g.003 and 011) are related to more than one member, because each DVDcan be rented by many members.
By looking at the MEMBER entity, we can see that many members haverented more than one DVD. Each member can rent many DVDs.
Taken together, this means that there is a many-to-many relationshipbetween Member and DVD.
The relational model does not permit many-to-many relationships.Instead, a process called normalisation breaks down the many-to-manyrelationship into two separate one-to-many relationships.
A word of caution
Entity occurrence modelling is only as effective as the data that isavailable and can be misleading. For example, if the data had onlyincluded members who had rented one single DVD, then the entity-occurrence diagram would have suggested a one-to-many relationship,even though it is possible for members to rent more than one.
In this situation, dummy data can be made up to complete the picture,e.g. adding a link between a member and another DVD to show that it ispossible for a member to rent more than one DVD.
From data model to database
Once the entities, attributes and relationships in the data model havebeen defined, a database can be created.
Each entity in the data model becomes a table in the database. Eachattribute of an entity becomes a field in a table in the database.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)5 6
RELATIONAL DATABASE SYSTEMS (HIGHER)
More about keys
In order to establish the relationships between the tables in thedatabase, each entry, or record, in a table must be able to be uniquelyidentified by a key. A key is a field, or set of fields, the values of whichuniquely identify a record. In any table, there may be more than onefield, or set of fields, which can uniquely identify each recordthese arecalled candidate keys. The candidate key that is chosen to be used iscalled the primary key.
In our DVD rentals example, Member Number is a candidate key for theMEMBER entity. The key is identified by underlining it, as shown:
MEMBER(Member Number, Name, Telephone Number)
In the DVD RENTALS entity, the Member Number attribute is called aforeign key. A foreign key is a field that is not a primary key in its owntable, but is a primary key in another table.
In this example, Member Number is a foreign key in DVD RENTAL,because it is the primary key in MEMBER.
A key consisting of only one field is called an atomic key. In thisexample, Member Number is an atomic key.
A key that is made up of a set of fields is called a compound key.
For example, the combination of Name and Telephone Number is acompound key that is also a candidate key. This compound key isidentified by underlining both attributes:
MEMBER(Member Number, Name, Telephone Number)
Sometimes it is necessary to make up a key to uniquely identify eachrecord. This is called a surrogate key. A surrogate key is usually anumber, or similar code, that has no meaning or purpose other than touniquely identify each record. Surrogate keys are used when there is nocandidate key available, or when the only candidate key is a largecompound key.
In the above example, Member Number would be a surrogate key. Thistype of surrogate key is commonly used, and its purpose is to easily anduniquely identify each member without having to refer to the membersname or telephone number.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 5 7
RELATIONAL DATABASE SYSTEMS (HIGHER)
Choosing a key
What makes a good key? In general, the key should be as short andsimple as possible.
An atomic key is a better choice than a compound key. A numeric field is a better choice of key than a text field. This is
because they can be stored more compactly in the database than textfields.
This can be summarised as the KISS rule:
KISS = Keep It Short and Simple
A key must also have the following properties:
it must have a valueit can never be blank (or null). it should not change over time.
This last property can be a problem if a key is also a meaningfulidentifier. For example, consider a key, Employee Code, to identify acompanys employees according to the office they work in, as shownbelow.
Employee Code Name OfficeG024 J Smith GlasgowD009 K Rossi DundeeE017 S Swami EdinburghA006 R Patel Aberdeen
Meaningful identifiers like this can be very useful. The Employee Codeshown above can allow someone to instantly identify which office anemployee works in. This would not have been possible if the EmployeeCode had not included a letter indicating the office.
However, suppose that K Rossi moves from the Dundee office toGlasgow. The key will need to change, causing all sorts of problems.A meaningful identifier should only be used as a key if it can beguaranteed not to change. For example, a persons driving licencenumber is made up of their initials, surname, and date of birth to make aunique identifier. A person called J R Hartley, born on 25 April 1963,might have a driving licence number:
HARTL 604253 JR4RQ
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)5 8
RELATIONAL DATABASE SYSTEMS (HIGHER)
This is a meaningful identifier, because we can work out someonesname (at least the first five letters of their surname and initials) and dateof birth from the identifier. The identifier is not likely to change, whichmakes this a suitable key. (If someone does change their name, usuallyas a result of getting married, a new driving licence must be issued).
Update anomalies
In a flat file database, the data is stored in a single table. Like a manualcard index file, a flat file contains one card or record for each entry inthe file.
Figure 2.2: A flat file database for the DVD rentals system
There are a number of problems with flat file databases.
Data is very likely to be duplicated. For example, because a newrecord would be created for each DVD rented, this means that themember details would have to be copied onto each new record.
The duplication of data leads to the possibility of data inconsistency.This happens when the same data, stored on two separate records,differs. Usually this is the result of human error in copying the data.It then becomes difficult or impossible to know which record containsthe correct version of the data.
DVD Title Cost Date Date Member Name Telephonecode out in number number002 Finding Nemo 2.50 03/09/04 04/09/04 1034 John Silver 142536003 American Pie 2.50 27/08/04 28/08/04 1056 Fred Flintstone 817263003 American Pie 2.50 01/09/04 02/09/04 1012 Isobel Ringer 293847008 The Pianist 2.50 04/09/04 06/09/04 1097 Annette Kirton 384756011 Notting Hill 2.50 27/08/04 28/08/04 1012 Isobel Ringer 293847011 Notting Hill 2.50 04/09/04 06/09/04 1056 Fred Flintstone 817263014 Prime Suspect 2.00 27/08/04 28/08/04 1097 Annette Kirton 384756015 Shrek 1.50 10/09/04 11/09/04 1034 Joan Silver 142536
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 5 9
RELATIONAL DATABASE SYSTEMS (HIGHER)
The problem of data inconsistency is only one of the results of thedesign of the table above.
There is no way of storing the details of a member who hasnt rentedany DVDs. If the DVD Code is the key of the table, then a DVD Codemust be provided. This is called an insertion anomaly.
If a members details have to be amended, for example a newtelephone number, then the update must be performed several times,in each record where that members details are recorded. This canlead to inconsistencies and errors. This is called a modificationanomaly.
If a DVD is removed from the database, perhaps to make room formore recent movies, then it may also result in removing the onlyrecorded details for a member. This is called a deletion anomaly.
These three types of problems are known collectively as updateanomalies.
The solution to the problems of update anomalies found in flat filedatabases is to use a relational database. A relational database storesdata in more than one table. The idea is to ensure that data is onlyentered and stored once, so removing the possibility of data duplicationand inconsistency.
A process called normalisation is used to work out what tables arerequired and which data items should be stored in each table.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)6 0
RELATIONAL DATABASE SYSTEMS (HIGHER)
Exercise 2The following table shows some data about classes undertaken bystudents at Hogwarts School of Witchcraft and Wizardry.
Student Student Course Course Teachercode code
V Crabbe S602 Defence Against the Dark Arts GL G LockhartH Granger G470 Care of Magical Creatures RH R HagridD Malfoy S616 Defence Against the Dark Arts GL G LockhartP Patil G475 Charms FF F FlitwickH Potter G476 Potions SS S SnapeH Potter G476 Divination ST S TrelawneyR Weasley G478 Transfiguration MM M McGonagall
The Student Code and Course Code are unique to each student andcourse, respectively. The Student Code is based on the house intowhich the student has been placed (e.g. G472 indicates Gryffindorhouse), and the Course Code consists of the teachers initials (e.g. SSindicates Severus Snape).
1. Using the data provided to illustrate your answer, explain why adatabase based on this table would exhibit:
(a) an insertion anomaly(b) a deletion anomaly(c) an update anomaly.
2. Identify a suitable candidate key for the table shown.
3. (a) Using the sample data provided, draw an entity occurrencediagram to illustrate the relationship between Student andCourse. Use Student Code and Course Code to identify theinstances of each entity.
(b) State the relationship between Student and Course.
4. (a) Explain why the meaningful identifier Student Code is anappropriate key for identifying a Student.
(b) Explain why the meaningful identifier Course Code is not anappropriate key for identifying a Course.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 6 1
RELATIONAL DATABASE SYSTEMS (HIGHER)
Chapter 3: Normalisation
We have seen how the use of multiple tables in a database can reducedata duplication and inconsistencies.
The question of which tables are required is not always obvious. Aprocess called normalisation is used to accomplish this. To illustratethe process, consider Figure 3.1.
Figure 3.1: Mail-order invoice
BitsnPCs Limited
Order Number: 654321 Order Date: 01/09/2004
Customer Number: 234567
Customer Name: Mrs Joanna BloggsAddress: 12 High Street
AuchenshoogleInverness-shire
Post Code: IV99 2QW Telephone No.: 01999 123456
You ordered the following items:
Item Description Unit Quantity Sub-Code Cost Total
1170 Medium widgets (blue) 2.25 3 6.75
5499 Large deluxe widget (red) 9.99 1 9.99
7937 Small economy widget (green) 0.59 5 2.95
TOTAL: 19.69
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)6 2
RELATIONAL DATABASE SYSTEMS (HIGHER)
Un-normalised form
The first stage in the process of normalisation is to represent the dataitems required in un-normalised form (UNF). This simply involveswriting down all the attributes that must be stored in the database, andidentifying a key (shown underlined). Un-normalised form is alsosometimes known as zero normal form (0NF).
Figure 3.2: The data model for Fig 3.1 in UNF
ORDER (Order NumberOrder DateCustomer NumberCustomer NameAddressPost CodeTelephone NumberItem CodeDescriptionUnit CostQuantity)
Note that the attributes Sub-Total and Total are not included in the datamodel. This is because they are derived attributes, i.e. their values arecalculated from the values of other attributes, and so they dont need tobe stored in the database.
If we were to represent the data in the order form in a table with thefields listed in Figure 3.2, it would look something like this:
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 6 3
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 3.3: Data from Fig 3.1 in UNF
It is clear that, because the order is for several items, there is more thanone value in each of the fields Item Code, Description, Unit Cost andQuantity for this Order Number. These are called multi-valuedattributes or repeating data items.
Figure 3.4: The data model in UNF with repeating data items identified
ORDER (Order NumberOrder DateCustomer NumberCustomer NameAddressPost CodeTelephone Number
Repeating itemsItem CodeDescriptionUnit CostQuantity)
654321 1/9/04 234567 Mrs 12 High Street IV99 01999 1170 Medium 2.25 3Joanna Auchenshoogle 2QW 123456 widgetsBloggs Inverness-shire (blue)
5499 Large 9.99 1deluxewidget(red)
7937 Small 0.59 5economywidget(green)
Ord
er
Nu
mb
er
Ord
er
Dat
e
Cu
sto
mer
Nu
mb
er
Cu
sto
mer
Nam
e
Ad
dre
ss
Po
st C
od
e
Tel
eph
on
eN
um
ber
Item
Co
de
Des
crip
tio
n
Un
it C
ost
Qu
anti
ty
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)6 4
RELATIONAL DATABASE SYSTEMS (HIGHER)
First normal form
The next stage of normalisation is first normal form (1NF). To producea data model in 1NF, we must remove all multi-valued attributes, so weremove the repeating data items to form a new entity, as shown inFigure 3.5.
Figure 3.5: The data model in 1NF
ORDER (Order NumberOrder DateCustomer NumberCustomer NameAddressPost CodeTelephone Number)
ORDER_ITEM (*Order NumberItem CodeDescriptionUnit CostQuantity)
Note that the key field Order Number has been copied from the ORDERentity to the new ORDER_ITEM entity. If this were not done, then therewould be no link between the items ordered and the order itself.
However, Order Number by itself is not a correct key for theORDER_ITEM entity, as there will be many items for each order. Thecompound key (Order Number, Item Code) forms the primary key forthis entity.
Because Order Number is the primary key for the ORDER entity, it isshown as a foreign key (marked with an asterisk) in the ORDER_ITEMentity. Order Number is both part of the compound primary key andalso a foreign key.
A data model is in 1NF if it has no multi-valued attributes.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 6 5
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 3.6: Data in the normalised ORDER and ORDER_ITEM tables in1NF
ORDER
ORDER_ITEM
Order Item Description Unit QuantityNumber Code Cost654321 1170 Medium widgets (blue) 2.25 3654321 5499 Large deluxe widget (red) 9.99 1654321 7937 Small economy widget (green) 0.59 5
In Figure 3.6, you can see that the repeating data items from the table inFigure 3.3 have been removed. Notice that Order Number is duplicatedin each entry in the ORDER_ITEM table this is a necessary duplication,as it links each item to the order in which it was placed.
Now suppose there are several orders for large red deluxe widgets. TheORDER_ITEM table might look like Figure 3.7.
Figure 3.7: Sample data in the ORDER_ITEM table in 1NF
Order Item Description Unit QuantityNumber Code Cost654321 5499 Large deluxe widget (red) 9.99 1975310 5499 Large deluxe widget (red) 9.99 2864208 5499 Large deluxe widget (red) 9.99 3
Clearly the Item Code, Description and Unit Cost values are duplicatedin each entry. If the price of item 5499 were to change, this would haveto be updated three times, which is both inefficient and could result indata inconsistency. This is a modification anomaly.
Order Order Customer Customer Address Post TelephoneNumber Date Number Name Code Number654321 1/9/04 234567 Mrs Joanna Bloggs 12 High Street IV99 01999
Auchenshoogle 2QW 123456Inverness-shire
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)6 6
RELATIONAL DATABASE SYSTEMS (HIGHER)
There are some other problems:
it is not possible to enter details for an item which has not yet beenordered (because an order number is required as part of thecompound key). This is an insertion anomaly.
if an order is deleted (perhaps because it is cancelled), this couldremove the only record containing an items details. This is adeletion anomaly.
To resolve these problems requires the next stage of normalisation.
Second normal form
To produce a data model in second normal form (2NF), examine anyentity with a compound key (in this case ORDER_ITEM) to see if anyattributes are dependent on just one part of the compound key. Theseare called partial dependencies.
In the ORDER_ITEM entity, we can see that:
Order Number is part of the key Item Code is part of the key Description is always the same for any given Item Code, no matter
what the Order Number is, so this is dependent on the Item Code Unit Cost is also always the same for any given Item Code, no matter
what the Order Number is, so this is dependent on the Item Code Quantity refers to the Item Code, but will change for different orders,
so it is dependent on both Order Number and Item Code.
To produce 2NF, any attributes which are dependent on a part of thecompound key are removed to form a new entity. So in this case,Description and Unit Cost are removed to form a new entity.Figures 3.8 and 3.9 show the data model and sample data in 2NF.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 6 7
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 3.8: The data model in 2NF Figure 3.9: Data in the normalisedORDER_ITEM and ITEM tables in 2NF
ORDER (Order NumberOrder DateCustomer NumberCustomer NameAddressPost CodeTelephone Number)
ORDER_ITEM (*Order Number*Item CodeQuantity)
ITEM (Item CodeDescriptionUnit Cost)
Note that the key field Item Code has been copied from theORDER_ITEM entity to the new ITEM entity. If this were not done, thenthere would be no link between the items ordered and the descriptionand unit cost of those items.
The attribute on which Description and Unit Cost were dependent (i.e.Item Code) becomes the primary key of the new entity. Because ItemCode is now a primary key for the ITEM entity, it is shown as a foreignkey in the ORDER_ITEM entity.
A data model is in 2NF if it is in 1NF and there are no partialdependencies.
ITEM
Item UnitCode Description Cost1170 Medium widget (blue) 2.255499 Large deluxe widget (red) 9.999737 Small economy widget (green) 0.59
ORDER_ITEM
Order Number Item Code Quantity654321 5499 1975310 5499 2864208 5499 3
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)6 8
RELATIONAL DATABASE SYSTEMS (HIGHER)
Understanding dependencies
An attribute A is dependent on another attribute B if there is onlyone possible value for A given any value for B.
For example, in the mail order system, consider the relationshipbetween Order Number and Order Date. Order Date is dependenton Order Number, because for any given Order Number, there isonly one possible date (i.e. the date the order was placed).
However, the reverse is not true. Order Number is not dependenton Order Date, because for any given Order Date, there may bemore than Order Number (because many orders may have beenplaced on that date).
In Figure 3.9, you can see that the duplicated data from the table inFigure 3.7 has been removed. The only data that is duplicated in eachentry in the ORDER_ITEM table is the Item Code but this time it isnecessary duplication, as it tells us which item was ordered on eachorder.
By normalising the data in this way, we have resolved the insertion,deletion and modification anomalies that existed before.
We can add an item to the ITEM table without it having to be on anorder.
We can delete an order in the ORDER table without deleting details ofthe items on the order.
We can update item details once in the ITEM table without affectingthe orders for that item in the ORDER_ITEM table.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 6 9
RELATIONAL DATABASE SYSTEMS (HIGHER)
Now suppose that a customer places several orders. The ORDER tablemight look like Figure 3.10.
Figure 3.10: Sample data in the ORDER table in 2NF
Clearly, the customer details are duplicated in each entry. If acustomers address or telephone number were to change, this wouldhave to be updated three times, which is both inefficient and presentsthe possibility of data inconsistency. This is a modification anomaly.
As before, there are some other problems.
It is not possible to enter details for a customer unless they haveplaced an order (because Order Number is required as a key). This isan insertion anomaly.
If an order is deleted, this could remove the only record containing acustomers details. This is a deletion anomaly.
To resolve these problems requires the final stage of normalisation.
654321 1/9/04 234567 Mrs Joanna Bloggs 12 High Street IV99 01999Auchenshoogle 2QW 123456Inverness-shire
135790 15/9/04 234567 Mrs Joanna Bloggs 12 High Street IV99 01999Auchenshoogle 2QW 123456Inverness-shire
246801 28/9/04 234567 Mrs Joanna Bloggs 12 High Street IV99 01999Auchenshoogle 2QW 123456Inverness-shire
Ord
er
Nu
mb
er
Ord
er
Dat
e
Cu
sto
mer
Nu
mb
er
Cu
sto
mer
Nam
e
Ad
dre
ss
Po
st C
od
e
Tel
eph
on
eN
um
ber
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)7 0
RELATIONAL DATABASE SYSTEMS (HIGHER)
Third normal form
To produce a data model that is in third normal form (3NF), we mustexamine all the entities produced so far to see if there are any non-keyattributes which are dependent on any other non-key attributes. Theseare called non-key dependencies (or an indirect or transitivedependency).
In the ORDER table, we can see that Customer Name, Address, PostCode and Telephone Number are all dependent on Customer Number.These attributes can be removed to form a new entity CUSTOMER, asshown in Figure 3.11.
Figure 3.11: The data model in 3NF
ORDER (Order NumberOrder Date*Customer Number)
CUSTOMER (Customer NumberCustomer NameAddressPost CodeTelephone Number)
ORDER_ITEM (*Order Number*Item CodeQuantity)
ITEM (Item CodeDescriptionUnit Cost)
Note that the key field Customer Number has been copied from theORDER entity to the new CUSTOMER entity. If this were not done, thenthere would be no link between the order and the customer.
The attribute on which the customer details were dependent (i.e.Customer Number) becomes the primary key of the new entity. BecauseCustomer Number is now a primary key for the CUSTOMER entity, it isshown as a foreign key in the ORDER entity.
A data model is in 3NF if it is in 2NF and there are no non-keydependencies.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 7 1
RELATIONAL DATABASE SYSTEMS (HIGHER)
In Figure 3.12, you can see that the duplicated data from the table inFigure 3.10 has been removed. The only data that is duplicated in eachentry in the ORDER table is the Customer Numberbut as before it isnecessary duplication, as it tells us which customer placed each order.
Figure 3.12: Data in the normalised ORDER and CUSTOMER tables in3NF
ORDER
Order Order Customer
Number Date Number
654321 1/9/04 234567135790 15/9/04 234567246801 28/9/04 234567
CUSTOMER
Customer Customer Address Post Telephone
Number Name Code Number
234567 Mrs Joanna Bloggs 12 High Street IV99 01999Auchenshoogle 2QW 123456Inverness-shire
By normalising the data in this way, we have resolved the insertion,deletion and modification anomalies that existed before.
We can add a customer to the CUSTOMER table without the customerhaving to place an order.
We can delete an order in the ORDER table without deleting details ofthe customer who placed the order.
We can update a customers details once in the CUSTOMER tablewithout affecting the orders placed by that customer in the ORDERtable.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)7 2
RELATIONAL DATABASE SYSTEMS (HIGHER)
Her
e is
a s
um
mar
y o
f th
e n
orm
alis
atio
n p
roce
ss,
fro
m u
n-n
orm
alis
ed f
orm
(U
NF)
to
th
ird
no
rmal
fo
rm (
3NF)
. N
ote
that
, at
eac
h n
ew s
tage
, o
nly
th
e en
titi
es w
hic
h h
ave
bee
n f
urt
her
no
rmal
ised
hav
e b
een
sh
ow
n.
Th
e ar
row
s in
dic
ate
wh
ere
enti
ties
are
un
chan
ged
fro
m o
ne
stag
e to
th
e n
ext.
Th
is i
s o
ne
way
of
rep
rese
nti
ng
the
no
rmal
isat
ion
pro
cess
, w
hic
h a
void
s w
riti
ng
do
wn
all
th
e en
titi
es a
t ev
ery
stag
e!
Mem
ory
Aid
In e
ach
en
tity
in
th
ird
no
rmal
fo
rm,
each
att
rib
ute
is
dep
end
ent
on
:
the k
ey
(in
1N
F b
y re
mo
vin
g m
ult
i-va
lued
att
rib
ute
s)th
e w
ho
le k
ey
(in
2N
F b
y re
mo
vin
g p
arti
al d
epen
den
cies
)an
d n
oth
ing b
ut
the k
ey
(in
3N
F b
y re
mo
vin
g n
on
-key
dep
end
enci
es)
UN
F1
NF
2N
F3
NF
OR
DE
R( O
rder
Nu
mb
erO
RD
ER
(Ord
er N
um
ber
OR
DE
R(O
rder
Nu
mb
erO
rder
Dat
eO
rder
Dat
eO
rder
Dat
eC
ust
om
er N
um
ber
Cu
sto
mer
Nu
mb
er*C
ust
om
er N
um
ber
)C
ust
om
er N
ame
Cu
sto
mer
Nam
eA
dd
ress
Ad
dre
ssC
UST
OM
ER
( Cu
sto
mer
Nu
mb
erPo
st C
od
ePo
st C
od
eC
ust
om
er N
ame
Tel
eph
on
e N
um
ber
Tel
eph
on
e N
um
ber
)A
dd
ress
Rep
eati
ng
item
sPo
st C
od
eIt
em C
od
eT
elep
ho
ne
Nu
mb
er)
Des
crip
tion
Un
it C
ost
OR
DE
R_I
TE
M(*
Ord
er N
um
ber
OR
DE
R_I
TE
M(*
Ord
er N
um
ber
Qu
an
tity
)It
em C
od
e*I
tem
Co
de
Des
crip
tio
nQ
uan
tity
)U
nit
Co
stQ
uan
tity
)IT
EM
( Ite
m C
od
eD
escr
ipti
on
Un
it C
ost
)
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 7 3
RELATIONAL DATABASE SYSTEMS (HIGHER)
Entity-relationship diagram
Figure 3.13: An entity-relationship diagram for the data model in 3NF
CUSTOMER
ORDER ITEM
ORDER_ITEM
In the E-R diagram in Figure 3.13, the relationships shown are all one-to-many (1:M). Note that entity occurrence modelling would indicate thatthere is a many-to-many relationship between the ORDER and ITEMentities, because each order can include many items, and each item canbe included on many orders.
A relational database cannot be implemented with many-to-manyrelationships. One of the results of normalisation is that many-to-manyrelationships are removed, and each is broken down into one-to-manyrelationships.
In Figure 3.13, the many-to-many relationship between ORDER andITEM has been replaced by creating a new entity ORDER_ITEM, whichwas introduced at 1NF. This process is shown in Figure 3.14.
ORDER_ITEM is known as a weak entity, because it has been createdartificially to allow the many-to-many relationship to be removed. ORDERand ITEM are known as strong entities, because they correspond to realobjects.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)7 4
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 3.14: Breaking down a many-to-many relationship intoone-to-many relationships
Source documents
Most databases are either set up from scratch or from existing manualsystems. When setting up a database from scratch, normalisation helpsto establish which tables are required.
Existing manual systems are usually paper-based, and often showevidence of data duplication, with all the possibility of data inconsistencythat results. To produce a normalised data model, the data itemsrequired must be extracted from the existing paper documents. Theseare called source documents. Care is required, when producing anormalised data model from a paper-based system, in examining thesource documents that are available.
To illustrate the normalisation process, let us reconsider the DVDrentals example.
Figures 3.15 and 3.16 show extracts from the member list and DVDrentals list.
Figure 3.15: Extract from the DVD member list
Member number Title Forename Surname Telephone no.1012 Miss Isobel Ringer 2938471034 Mr John Silver 1425361056 Mr Fred Flintstone 8172631097 Mrs Annette Kirton 384756
ORDER ITEM
ORDER_ITEM
ORDER ITEM
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 7 5
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 3.16: Extract from the DVD rentals list
DVD Title Cost Date Out Date Due Member Namecode number002 Finding Nemo 2.50 03/09/04 04/09/04 1034 John Silver003 American Pie 2.50 27/08/04 28/08/04 1056 Fred Flintstone
01/09/04 02/09/04 Isobel Ringer008 The Pianist 2.50 04/09/04 06/09/04 1097 Annette Kirton011 Notting Hill 2.50 27/08/04 28/08/04 1012 I Ringer
04/09/04 06/09/04014 Prime Suspect 2.00 27/08/04 28/08/04 1086 Annette Kirton015 Shrek 1.50 10/09/04 11/09/04 1034 Joan Silver
To normalise the existing system, we must first identify the data itemsrepresented on the member list and DVD rentals list.
Un-normalised form
The first stage in the process of normalisation is to represent the dataitems required in UNF. This simply involves writing down all theattributes that must be stored in the database, and identifying a key.
In Figures 3.15 and 3.16, the attributes are split across two sourcedocuments. They are combined together into UNF, as shown in Figure3.17.
Figure 3.17: Data model in UNF from the two source documents
DVD_RENTAL (Member NumberTitleForenameSurnameTelephone No.DVD CodeTitleCostDate HiredDate Due)
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)7 6
RELATIONAL DATABASE SYSTEMS (HIGHER)
Note
There are two attributes called Title, but these refer to different dataitems. The first (from the member list) is a persons title (i.e. Mr/Mrs/Miss/Ms), but the second is the title of the DVD (e.g. Finding Nemo).We need to distinguish between these by giving them separate names(e.g. Title; DVD Title).
The attributes Member Number (in the member list) and Member (inthe DVD rentals list) actually refer to the same data items, so shouldbe listed only once. In this case, we will call the attribute MemberNumber.
In the source documents, Number was abbreviated to No. in theTelephone No. attribute. We should ensure that we are consistent, sothis should be written as Telephone Number, to be consistent withMember Number.
This gives us the following un-normalised form.
Figure 3.18: Data model in UNF after resolving inconsistencies
DVD_RENTAL (Member NumberTitleForenameSurnameTelephone NumberDVD CodeDVD TitleCostDate HiredDate Due)
The normalisation process can then continue from this point.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 7 7
RELATIONAL DATABASE SYSTEMS (HIGHER)
Exe
rcis
e 3
For
each
of
the
foll
ow
ing
exam
ple
s, r
epre
sen
t th
e d
ata
mo
del
in
UN
F, a
nd
no
rmal
ise
the
dat
a m
od
el,
sho
win
g fi
rst,
seco
nd
an
d t
hir
d n
orm
al f
orm
. D
raw
an
en
tity
-rel
atio
nsh
ip d
iagr
am t
o r
epre
sen
t th
e d
ata
mo
del
in
3N
F.
1.A
sch
oo
l ad
min
istr
atio
n s
yste
m:
each
rec
ord
co
nta
ins
info
rmat
ion
ab
ou
t a
pu
pil
an
d t
he
sub
ject
s st
ud
ied
.
Pu
pil
Nam
eT
uto
rY
ear
Yea
rSet
Su
bje
ctT
eac
her
Ro
om
Co
de
Gro
up
Hea
d
2986
5G
reg
Dik
e5P
W5
Mr
Niv
en5.
2.2
En
glis
hM
r D
un
n4
5.1.
3M
ath
sM
s N
apie
r13
5.5.
4Ph
ysic
sM
rs N
ewto
n31
5.4.
1In
fo S
yste
ms
Mr
Co
dd
115.
3.1
Art
& D
esig
nM
iss
Em
in39
7364
5Su
san
Sm
ith
5C
V5
Mr
Niv
en5.
2.1
En
glis
hM
rs B
aco
n2
5.1.
4M
ath
sM
r Fe
rmat
145.
3.3
Geo
grap
hy
Ms
Co
ok
285.
4.1
Info
Sys
tem
sM
r C
od
d11
5.5.
2A
rt &
Des
ign
Mr
An
gelo
3842
315
Ter
esa
Jew
el5P
W5
Mr
Niv
en5.
2.2
En
glis
hM
r D
un
n4
5.1.
4M
ath
sM
r Fe
rmat
145.
5.4
Phys
ics
Mrs
New
ton
315.
3.2
Fren
chM
iss
Kew
195.
5.2
Art
& D
esig
nM
r A
nge
lo38
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)7 8
RELATIONAL DATABASE SYSTEMS (HIGHER)
2.A
sch
oo
l li
bra
ry s
yste
m:
each
rec
ord
co
nta
ins
dat
a ab
ou
t a
pu
pil
an
d t
he
bo
oks
th
ey h
ave
bo
rro
wed
.
Pu
pil
Nam
eA
dd
ress
Tel
eph
on
eT
uto
rT
uto
rB
oo
kT
itle
Retu
rn
Co
de
Nu
mb
erG
rou
pN
um
ber
Dat
e
2986
5G
reg
Dik
e31
Wo
od
end
Ave
nu
e93
7482
5PW
P W
ilki
nso
n82
73R
apid
Fre
nch
13/9
/04
2653
Phys
ics
is H
ard
21/9
/04
4283
Hig
her
Mat
hs
15/9
/04
7364
5Su
san
Sm
ith
17a
Hil
l St
reet
4728
495
CV
C V
alla
nce
9574
Ham
let
28/9
/04
2834
Cat
acly
smic
Ch
emis
try
15/9
/04
4283
Hig
her
Mat
hs
22/9
/04
4231
5T
eres
a Je
wel
2 H
awth
orn
Gar
den
s58
7293
5PW
P W
ilki
nso
n39
01T
he
Gre
at M
aste
rs9/
10/0
495
74H
amle
t14
/9/0
4
3.A
vid
eo r
enta
l st
ore
: ea
ch r
eco
rd c
on
tain
s d
ata
abo
ut
a m
emb
er a
nd
th
e fi
lms
they
hav
e re
nte
d o
n D
VD
.
Mem
ber
Nam
eT
elep
ho
ne
DV
DFi
lmT
itle
Co
stD
ate
Dat
e
Nu
mb
erN
um
ber
Co
de
Co
de
Hir
edR
etu
rned
1234
Gre
g D
ike
1928
3718
514
23T
he
En
glis
h P
atie
nt
2.5
014
/04/
0415
/04/
0423
515
24Fi
nd
ing
Nem
o2
.00
27/0
8/04
29/0
8/04
114
1426
Shre
k2
.00
03/0
9/04
05/0
9/04
1524
Susa
n S
mit
h28
3746
157
1287
An
Am
eric
an in
Par
is2
.50
27/0
8/04
28/0
8/04
206
1423
Th
e E
ngl
ish
Pat
ien
t1
.50
03/0
9/04
04/0
9/04
1764
Ter
esa
Jew
el82
7376
313
1524
Fin
din
g N
emo
2.0
027
/08/
0429
/08/
04
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 7 9
RELATIONAL DATABASE SYSTEMS (HIGHER)
4.H
ogw
arts
Sch
oo
l o
f W
itch
craf
t an
d W
izar
dry
: ea
ch r
eco
rd c
on
tain
s d
ata
abo
ut
a st
ud
ent
and
th
e cl
asse
s th
ey t
ake.
Stu
den
t C
od
eStu
den
tH
ou
seH
ead
of
Ho
use
Cla
ssC
lass
Co
de
Teac
her
G46
8H
Gra
nge
rG
ryff
ind
or
Pro
f M
cGo
nag
all
Car
e o
f M
agic
al C
reat
ure
sRH
R H
agri
dC
har
ms
FFF
Flit
wic
kT
ran
sfig
ura
tio
nM
MM
McG
on
agal
lS6
16D
Mal
foy
Slyt
her
inPr
of
Snap
eD
efen
ce A
gain
st t
he
Dar
k A
rts
GL
G L
ock
har
tD
ivin
atio
nST
S T
rela
wn
eyPo
tio
ns
SSS
Snap
eG
476
H P
ott
erG
ryff
ind
or
Pro
f M
cGo
nag
all
Car
e o
f M
agic
al C
reat
ure
sRH
R H
agri
dD
efen
ce A
gain
st t
he
Dar
k A
rts
GL
G L
ock
har
tPo
tio
ns
SSS
Snap
e
5.A
mo
vie
dat
abas
e: e
ach
rec
ord
co
nta
ins
dat
a ab
ou
t a
film
an
d i
ts s
tars
.
Film
Tit
leY
ear
Dir
ect
or
Dir
ect
or
Act
or
Act
or
IDR
ole
Co
de
Rel
ease
dID
90PW
1Pr
etty
Wo
man
1990
Gar
y M
arsh
all
GM
07Ju
lia
Ro
ber
tsJR
07V
ivia
n W
ard
Ric
har
d G
ere
RG
12E
dw
ard
Lew
is99
NH
1N
ott
ing
Hil
l19
99R
oge
r M
itch
ell
RM
11Ju
lia
Ro
ber
tsJR
07A
nn
a Sc
ott
Hu
gh G
ran
tH
G25
Wil
liam
Th
acke
r94
FW1
Fou
r W
edd
ings
an
d a
Fu
ner
al19
94M
ike
New
ell
MN
13H
ugh
Gra
nt
HG
25C
har
les
An
die
Mac
Do
wel
lAM
32C
arri
e90
GC
1G
reen
Car
d19
90Pe
ter
Wei
rPW
03G
rar
d D
epar
die
uG
D19
Geo
rges
Fau
rA
nd
ie M
acD
ow
ell
AM32
Bro
nt
Mit
chel
l05
HP1
Har
ry P
ott
er a
nd
th
e G
ob
let
of
Fire
2005
Mik
e N
ewel
lM
N13
Dan
iel
Rad
clif
feD
R38
Har
ry P
ott
erA
lan
Ric
kman
AR26
Seve
rus
Snap
e
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)8 0
RELATIONAL DATABASE SYSTEMS (HIGHER)
6. Kinlochforest and District School Sports are held each year in nineprimary schools. Each school has its own sports day, and its ownlocal dignitary invited to present the certificates. Shown below isan example of a certificate issued to an entrant, alongside a list ofsome of the schools and sports day details.
Sports Certificate
School Sports Day details
(a) Represent the data in these source documents in UNF.
(b) You may assume that there are no two competitors with thesame name. Select a suitable key, and normalise the datamodel to 3NF. Draw an E-R diagram to show therelationships between the entities in 3NF.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 8 1
RELATIONAL DATABASE SYSTEMS (HIGHER)
7. Normalise the data in Question 2 to 3NF, starting with BookNumber as the key. Think carefully about the repeating data itemsat UNF. (Hint: for each book number, which attributes can havemore than one value?)
8. Normalise the data in the mail order invoice (see page 61) to 3NF,starting with Customer Number as the key. Again, think carefullyabout the repeating data items at UNF.
What goes wrong this time? See Appendix A for a detailedexplanation and solution.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)8 2
RELATIONAL DATABASE SYSTEMS (HIGHER)
Chapter 4: Database design
Once a data model has been completed, it is necessary to design thedatabase. This involves deciding on the properties of each field.
Properties of fields
For each field in the database, you must consider the following.
The name You should take care to choose sensible fieldnames and make sure that your naming isconsistent in each table. For example, if youchoose to abbreviate Member Number to MemberNo. (rather than Member Num. or Member #), youshould also abbreviate Telephone Number toTelephone No.
The data type This may be one of the following.
Text, string or e.g. Smith, EH991AB, 13+VAT.alphanumeric
Numeric Either integer (whole numbers) or real (floatingpoint), e.g. 13, 3.14.
Currency A special type of numeric field for monetary values,e.g. 12.00, 2.50, 0.15.
Date or time Dates may be in dd/mm/yyyy format or long dateformat. Times may be in hh:mm:ss format or longtime format e.g. 01/01/1990, 1 January 1990,13:30:00, 1:30 p.m.
Boolean Yes or no. Named after George Boole,mathematician and logician, who created binarylogic, e.g. AND, OR, NOT, YES/NO.
Link A reference to a file located outside the database.
Object Data such as a picture or sound file.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 8 3
RELATIONAL DATABASE SYSTEMS (HIGHER)
The key Whether the field is a primary key (PK), part of acompound key, or a foreign key (FK).
Validation Whether the field must have a value, or can be leftblank (called a presence check).Whether the value of the field is limited to certainvalues (called a restricted choice check), e.g. title= Mr/Mrs/Miss/Ms.Numeric fields may be subject to a range check,e.g. the year group for a secondary school pupilmust be between 1 and 6.
Default value It is also useful to consider whether a value shouldhave a default value. For example, a transactiondate might have a default value of todays date(generated automatically by the computer). SomeDBMSs provide an autonumber field where thevalue is generated automatically by the computer:this is usually used to provide unique values forsurrogate keys.
Formatting Some fields may require input to follow a certainpattern (called an input mask), e.g. a postcodemust contain letters and numbers in a particularconfiguration.Some fields may need to be displayed in aparticular way, e.g. a date may be displayed as6/9/04 or as September 6, 2004.
The structure of tables and the properties of fields are usuallyrepresented in the form of a data dictionary.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)8 4
RELATIONAL DATABASE SYSTEMS (HIGHER)
Storing names, addresses and telephone numbers
When storing information about people in databases, the title,forename and surname are usually stored as separate fields.
Title: MrsForename: JoannaSurname: Bloggs
This allows the data to be sorted more flexibly, e.g. in alphabeticalorder of surname. It also allows the data to be used in differentcombinations (e.g. a letter may begin Dear Mrs Bloggs).
Addresses are usually stored with three address lines (perhapsincluding a postal town and region) plus a line for postal code.
Address 1 12 High StreetAddress 2 AuchenshoogleAddress 3 Inverness-shirePost Code IV99 2QW
Telephone numbers are always stored as text fields rather thannumber fields. This is because the first digit is 0, which is notnormally stored in a numeric field, and also allows applications todial a customers telephone number directly from the database.Currently, all domestic UK telephone numbers (including mobilephone numbers) consist of 11 digits.
The same applies to some other numbers, such as ISBNs(International Standard Book Numbers) and Vehicle RegistrationNumbers.
More about data types
Figure 4.1 shows the range of data types available for use in a tabledefinition in Microsoft Access, while Figure 4.2 shows how data would beentered. Note how a field with a Boolean data type (e.g. Vegetarian) isshown as a check box. A field with an Object data type (e.g. Photo) isshown as text, the value of which is determined by the type of object fileinserted (see Figure 4.3).
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 8 5
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 4.1: A table definition in Microsoft Access showing the use of datatypes: default value (autonumber), text, date/time, real numeric,Boolean, object, link.
Figure 4.2: A record in Microsoft Access showing data entry for the datatypes specified in Figure 4.1
Figure 4.3: Inserting an object data type in Microsoft Access
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)8 6
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 4.4: A table definition in Filemaker Pro showing the use of datatypes: default value (autonumber), text, date/time, real numeric,Boolean, object, link (called a container in Filemaker Pro).
Figure 4.5: An autonumber field in Filemaker Pro is achieved bycreating a number field and setting the auto-enter options as shown.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 8 7
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 4.6: Inserting an object into a field with a container data type inFilemaker Pro
Data dictionary
A data dictionary is simply a table that lists the fields of each table in adata model, together with the properties of each field. The datadictionary is important because this information can then be used tocreate a database for the data model using any chosen RDBMS.
On the following page, there is a sample data dictionary for the DVDrentals example.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)8 8
RELATIONAL DATABASE SYSTEMS (HIGHER)
En
tity
Att
rib
ute
Key
Dat
a T
yp
eR
equ
ired
Un
iqu
eFo
rmat
Val
idat
ion
DV
DD
VD
Co
de
PKIn
tege
rY
Y
Film
Co
de
FKIn
tege
rY
NLo
oku
p v
alu
e fr
om
FIL
M t
able
Co
stC
urr
ency
YN
>=
1 an
d LL09 0LL the symbols have the followingmeaning.
0 Digit (0 through 9, entry required; plus [+] and minus []signs not allowed).
9 Digit or space (entry not required; plus and minus signs notallowed).
L Letter (A through Z, entry required).> Causes all characters that follow to be converted to
uppercase.
There are other characters that can be used in an input mask, as shownbelow.
Description# Digit or space (entry not required; blank positions converted
to spaces, plus and minus signs allowed).? Letter (A through Z, entry optional).A Letter or digit (entry required).a Letter or digit (entry optional).& Any character or a space (entry required).C Any character or a space (entry optional).. , : ; - / Decimal placeholder and thousands, date, and time
separators.< Causes all characters that follow to be converted to lowercase.
Queries
The term query is used to describe any process that performs searchingor sorting operations in a relational database. In Access, queries are alsoused to perform calculations.
Searching
Searching is the process of selecting records from a table orcombination of tables. To perform the query, three items must beidentified.
1. Which fields will be used to identify the records required?2. What are the criteria for identifying the records required?3. Which fields will be displayed?
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)9 8
RELATIONAL DATABASE SYSTEMS (HIGHER)
Search 1: Single conditionFor example, to identify the names and telephone numbers of clubmembers who have rented the DVD Shrek:
1. the fields required are Forename, Surname and TelephoneNumber (from the MEMBER table) and Film Title (from the FILMtable)
2. the criteria are Film Title = Shrek3. the fields to be displayed are Forename, Surname and Telephone
Number.
Figure 5.15 shows how this query would be set up.
Figure 5.15: Using a single search condition. Note that all four entitiesare required to link MEMBER with FILM.
A complex search involves more than one search condition (andusually more than one field).
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 9 9
RELATIONAL DATABASE SYSTEMS (HIGHER)
Search 2: Multiple conditions (AND)Consider a request to list those members who have rented the DVDShrek since 16 August 2004.
1. The fields required are Forename, Surname and TelephoneNumber (from the MEMBER table), Film Title (from the FILMtable), and Date Hired (from the LOAN table).
2. The criteria are Film Title = Shrek AND Date Hired > 16/08/2004.3. The fields to be displayed are Forename, Surname and Telephone
Number.
Figure 5.16 shows how this query would be set up.
Figure 5.16: Using multiple search conditions involving two fields
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 0 0
RELATIONAL DATABASE SYSTEMS (HIGHER)
Search 3: Multiple conditions (OR)Next, consider a request to list those members who have rented Shrekor Finding Nemo.
1. The fields required are Forename, Surname and TelephoneNumber (from the MEMBER table) and Film Title (from the FILMtable).
2. The criteria are Film Title = Shrek OR Film Title = Finding Nemo.3. The fields to be displayed are Forename, Surname and Telephone
Number.
Figure 5.17 shows how this query would be set up.
Figure 5.17: Using multiple search conditions involving one field.
Note that it is possible that a member may have rented both Shrek andFinding Nemo. In this case, the members name and telephone numberwould be listed twice in the search results. These duplicate results canbe eliminated. In Microsoft Access, the Group By option is used toachieve this, as shown in Figure 5.18.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 0 1
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 5.18: Using the Group By option to remove duplicate entries
Search 4: Combining conditionsFinally, consider a request for a list of members who have rented eitherShrek or Finding Nemo since 16 August 2004.
1. The fields required are as for Search 2: Forename, Surname andTelephone Number (from the MEMBER table), Film Title (from theFILM table), and Date Hired (from the LOAN table).
2. The criteria are more complicated this time:
Film Title = Shrek AND Date Hired > 16/08/2004ORFilm Title = Finding Nemo AND Date Hired > 16/08/2004.
Note that the Date Hired condition must be repeated for each film.
3. The fields to be displayed are Forename, Surname and TelephoneNumber.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 0 2
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 5.19 shows how this query would be set up. Great care must betaken when setting up queries involving combinations of searchconditions, to ensure that the correct records are returned.
Figure 5.19: Using multiple search conditions involving multiple fields
Sorting
Usually, the results of a selection query are presented in some kind oforder. A sorting operation is performed to achieve this. To perform asort, two items must be identified.
1. Which field (or fields) will be used to decide the order of records?2. For each field selected, will the order of sorting be ascending or
descending?
For example:
to produce a list of people with the tallest first, the records would besorted in descending order of height
to produce a list of people with youngest first, the records would besorted in ascending order of age.
A very common way of ordering records relating to people is inalphabetical order. To achieve alphabetical ordering requires therecords to be sorted in ascending order of surname.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 0 3
RELATIONAL DATABASE SYSTEMS (HIGHER)
A complex sort involves more than one sort condition, involving two ormore fields.
For example, as we have seen in Chapter 4, a persons name is usuallystored in three fields: Title (e.g. Mr/Mrs/Miss/Ms), Forename andSurname. To achieve telephone book order, the name is sorted inascending order of surname, then ascending order of forename. In thiscase, the Surname field is the primary sort key, and the Forename fieldis the secondary sort key. Figure 5.20 shows how such a complex sortis set up in a query.
Figure 5.20: A complex sort. Note that the fields used (Surname andForename) must be selected in the correct order, with the primary sortkey to the left of the secondary sort key.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 0 4
RELATIONAL DATABASE SYSTEMS (HIGHER)
Calculations
One of the main advantages that computers have over humans is theability to perform calculations very quickly, as many times as necessary,without errors.
In a relational database, calculations are performed using expressionsor formulas. Here is an expression to calculate a students total markfrom three tests:
= [Test 1] + [Test 2] + [Test 3]
Some calculations are performed for each record, using other values inthe record. This type of calculation is a horizontal calculation.
Other calculations are vertical calculations, which are based on thevalue of a single field taken from a set of records. The average mark forTest 1 would be an example, where the expression required would besimilar to =Average([Test 1]).
Name Test 1 Test 2 Test 3 Total Mark
record 1 J Bloggs 8 9 10 27
record 2 J Public 6 7 8 21
Average7 8 9vertical calculations
Horizontal calculations are often known as calculated fields, andvertical calculations are known as summary fields.
All calculated values are examples of derived data, which are notnormally stored in a relational database. In Access, the derived data iscalculated when required (using an expression in a query or a text boxin a form or report).
horizontalcalculations
V V V
VV
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 0 5
RELATIONAL DATABASE SYSTEMS (HIGHER)
Most RDBMSs provide a range of functions that can be used inexpressions. The table below lists some of the main categories of thesefunctions, with some examples of common functions for each category.
Category Example of functions
Aggregate Sum, Avg, Max, Min, Count
Mathematical Sin, Cos, Tan, Int, Round
Text Left, Right, Mid, Len, UCase, LCase, InStr, Replace
Logical IIf, IsNull, IsNumeric, IsError
Conversion Str, Val, Date$, Text-to-Date
Date Date, Day, Month, Year, Weekday, WeekdayName,DateDiff
Time Time, Hour, Minute, Second
Working with dates
In many databases where dates are recorded (e.g. date of birth, datehired, date returned, etc.) it is necessary to be able to performcalculations involving dates.
For example:
to search for all DVDs rented in the last week, you would use theexpression
Date() [Date Hired]
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 0 6
RELATIONAL DATABASE SYSTEMS (HIGHER)
Parameterised queries
Many database management systems allow queries to be saved. Thisallows the queries to be used in the future without having to set themup each time they are required.
However, very often a query is required to be used many times, but withvarying criteria. For example, consider a query set-up to list all DVDrentals for July. To list the DVD rentals for August would either requirea new query to be set-up, or the existing query to be changed.
An alternative that is available in some RDBMSs is to use aparameterised query. This is a query where the user enters a value tobe searched for. Figure 5.21 shows the design and implementation of aparameterised query.
Figure 5.21: A parameterised query in Microsoft Access. The firstscreenshot shows the query design, with the text prompt replacing thecriteria; the second screenshot shows the data entry box
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 0 7
RELATIONAL DATABASE SYSTEMS (HIGHER)
User viewsOne of the advantages that a DBMS has over a spreadsheet is its ability topresent information in a variety of different ways without changing theunderlying structure or content of the data stored. These are calleduser views, and are created using forms and reports.
A form or report is usually based on a query, which selects the requiredfields from the appropriate tables, sorting the results if necessary, andperforming any horizontal calculations.
Report structure
A database report is made up of a number of sections, as shown inFigure 5.22.
Figure 5.22: Structure of a database report
Report Text/data/data to appear atHeader the top of the report
Page Header Text/data to appear at thetop of each page of thereport
Main Detail Text/data to appear aboveHeader each entry in the main detail
section
Main Detail Data from selected records inSection a table or query
Main Detail Text/data to appear belowFooter each entry in the main detail
section
Page Footer Text/data to appear at thefoot of each page of thereport
Report Text/data to appear at theFooter end of the report
DVD Rental Statistics
Page 1
Details for J Bloggs
Memb No Address Tel No
142312 Main Street 123456
Total DVDs rented to date: 26
End of page 1
Total DVDs rented by all members: 3,218
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 0 8
RELATIONAL DATABASE SYSTEMS (HIGHER)
Summary information
One of the aspects that distinguishes a relational database from aspreadsheet is the ability to summarise information.
The five most common summary calculations that are performed are asfollow:
Sum to add values to give a total, e.g. total cost of DVDrentals last month.
Average to find an average value, e.g. average cost of hire perDVD.
Count to count the number of records found, e.g. number ofDVDs rented per member.
Maximum to find the highest value, e.g. highest number of rentalsper DVD (to find the most popular DVD).
Minimum to find the lowest value, e.g. lowest number of rentalsper member.
Summary information is produced by creating a summary field. Asummary field is a calculated field with a formula to perform thecalculation, and is placed in a summary section of a report.
For example, to calculate the total cost of DVD rentals for a member, asummary field would be created containing the formula =Sum([Cost])in a summary section, as shown in Figure 5.23. Used in this way, thesummary field will calculate the total cost of rentals for each member.
Figure 5.23: A report with summary field in summary section (MemberNumber Footer)
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 0 9
RELATIONAL DATABASE SYSTEMS (HIGHER)
However, the advantage of a database is that the report can be used withthe results of any query, so that we could use it to find the total cost ofrentals for members who have rented DVDs in the last week only.
In addition, by placing the same summary field in a different summarysection, we can get the database to calculate a different result.
For example, Figure 5.24 shows summary fields in the Member NumberFooter, Page Footer and Report Footer sections of the report. Thefields in Member Number Footer will show the total cost and number ofrentals for each member, Page Footer will show the total cost andnumber of rentals displayed on that page, while Report Footer will showthe total cost and number of all rentals displayed in the report.
Figure 5.24: A report with summary fields in the Page Footer and ReportFooter sections.
Sub-forms and sub-reports
Because relational databases are designed to represent data that isrelated, very often a single table of results is not adequate for presentingthe data. Instead, what is required is a sub-table. In Access, sub-formsand sub-reports are used to achieve this.
Figure 5.25 shows how the Form Wizard recognises the relationshipsbetween tables, and Figure 5.26 shows the form with sub-form that iscreated as a result.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 1 0
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 5.25: The Form Wizard automatically recognises relationshipsbetween tables
Figure 5.26: A form with sub-form created by the Form Wizard
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 1 1
RELATIONAL DATABASE SYSTEMS (HIGHER)
Navigation
Relational databases form the basis of many complex applications. Forexample, e-commerce websites such as Amazon are based on relationaldatabases, which store information about customers, products, andorders. However, what makes these websites so successful is their easeof use.
Figure 5.27: Navigation bar and search box from Amazon website
In Figure 5.27, when you click on the DVD tab on the navigation bar, thebrowser loads up the DVD web page, which performs a search forinformation on DVDs from the relational database on the Amazon webserver.
If you enter a word or phrase into the keyword search box, a web pagewill be displayed showing the results of a search on the relationaldatabase, with the results sorted in order. Figure 5.28 shows the resultsof a search for ring.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 1 2
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 5.28: Search results for ring showing the first three records fromeach category sorted alphabetically (ascending order) by title
When you add items to your shopping basket, the current total of theitems in the basket is calculated and displayed on the web page (Figure5.29).
Figure 5.29: Shopping basket display from Amazon, showing sub-total.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 1 3
RELATIONAL DATABASE SYSTEMS (HIGHER)
All these searching, sorting and calculating operations are performed bythe relational database without the user being aware of using it.
We can achieve something similar with desktop database packages suchas Microsoft Access, using navigation features available with the software.For example, Access provides a number of buttons that allow the user tofind records, add new records, delete records, navigate betweenrecords, open forms, print reports, etc. Figures 5.30 and 5.31 show howa customised user interface to a database form can improve its user-friendliness.
Figure 5.30: A standard form with sub-form based on a query
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 1 4
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 5.31: A customised form with sub-form. Note the use ofcustomised buttons
Macros and scripting
In Figure 5.31, the buttons that provide navigation and other userinterface features use scripting to carry out their tasks (see Figure5.32).
Figure 5.32: The Command Button Wizard shows the range ofpre-defined operations that can be carried out
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 1 5
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 5.33 shows the script that is processed when the Find Memberbutton is pressed. In Access, scripts are written using Visual Basic forApplications (VBA). With some knowledge of VBA, the databasedesigner can edit or create their own scripts to perform other actions asrequired.
Figure 5.33: VBA script for the Find Member button
An alternative to scripting is to use macros. A macro is a sequence ofone or more actions that each perform a particular operation within theDBMS. Macros are particularly useful for automating common tasks.Figure 5.34 shows how a simple macro would be created to open a formand navigate to the last record selected from a querys results.
Figure 5.34: Creating a macro in Microsoft Access
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 1 6
RELATIONAL DATABASE SYSTEMS (HIGHER)
SQL and Microsoft Access
RDMSs are based on a data definition language called Structure QueryLanguage, or SQL (often pronounced sequel). In fact, some RDMSstake their name from SQL e.g. SQL Server and MySQL. SQL is anexample of a data definition language (DDL) that is, it can be used tocreate tables and define fields. SQL is also a data manipulationlanguage (DML) which can be used to perform searching and sorting,calculations and summary functions.
Microsoft Access provides a graphical user interface (GUI) for using SQL,so that the user doesnt have to be concerned with entering commandsand getting the syntax of the instructions correct.
However, if you wish to, Access allows you to see the SQL statementscreated when you create a query (see Figures 5.35, 5.36, and 5.37).Some queries in Access can only be performed using SQL, e.g. unionand pass-through queries.
Figure 5.35: Query design window in Microsoft Access
Figure 5.36: Switching to SQL View in Microsoft Access
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 1 7
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 5.37: SQL View of a query in Microsoft Access
Exercise 51. Figure 5.28 shows some search results for the keyword ring from
the Amazon website.
The results of the search in each category indicate the totalnumber of results found, e.g. See all 89 results in DVD
Explain how the total number of results found can be calculated bythe relational database.
2. Figure 5.29 shows a customers shopping basket.
Explain how the sub-total of 47.55 can be calculated by therelational database.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 1 8
RELATIONAL DATABASE SYSTEMS (HIGHER)
Chapter 6: Advanced implementation in FileMaker Pro
Having analysed a data model to third normalform, and designed a data dictionary, you arenow ready to implement your database.
You can think of a database solution as beinglike a tower. The tables form thefoundations, which is why the data dictionaryis so important in helping to get the designof the tables right.
The next level of the tower is queries, whichare used to perform searching, sorting andcalculations.
Next, user views of the data in the databaseare used for input and output of data to andfrom the tables, e.g. to display the results ofqueries.
Navigation features are added to the user interface to connect theforms, reports and layouts together so that the user can easily performvarious tasks, using the database.
Tables and referential integrity
In a relational database, tables are linked through the use of foreignkeys. A foreign key is an attribute that is not a key in its own table, but isa primary key in another table. A foreign key links a record in one tablewith a related record in another table.
For the database to work properly, it is essential to guarantee that aforeign key always refers to a record that exists in the other table. Thisis called referential integrity.
For example, an entry in the LOAN table can only refer to an existingrecord in the MEMBER table, because a loan can only be made by amember.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 1 9
RELATIONAL DATABASE SYSTEMS (HIGHER)
A further aspect of referential integrity is that if a record is deleted fromone table, then it may be necessary to delete the references to thatrecord in other tables. So, if a member leaves the club, then all loansmade by that member can also be deleted.
In Filemaker Pro, referential integrity is established by definingrelationships between the files, as shown in Figures 6.1 and 6.2.
Figure 6.1: Setting referential integrity in Filemaker Pro
Figure 6.2: Results of setting referential integrity in Filemaker Pro
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 2 0
RELATIONAL DATABASE SYSTEMS (HIGHER)
Achieving referential integrity
As well as checking for referential integrity, many RDBMSs provide a wayof ensuring that the user cannot mistakenly enter an invalid value for aforeign key.
In Filemaker Pro, value lists are used to ensure referential integrity, asshown in Figures 6.3, 6.4 and 6.5. In the LOAN table, the user can onlyenter a value for Member Number which already exists in the MEMBERtable.
Figure 6.3: Selecting the value for a foreign key by defining a value listin Filemaker Pro
Figure 6.4: Specifying the values for the foreign key, Member No. inFilemaker Pro
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 2 1
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 6.5: Selecting the value for a foreign key using a lookup list inFilemaker Pro
More about validation
This section shows how to implement a number of standard validationchecks using Filemaker Pro.
Presence checkFigure 6.6: Achieving a presence check in Filemaker Pro, by checking theNot empty box). Key values can also be established by checking theUnique box.
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 2 2
RELATIONAL DATABASE SYSTEMS (HIGHER)
Range checkFigure 6.7: Achieving a range check in Filemaker Pro, by setting theIn range property
Restricted choice checkFigure 6.8: Achieving a restricted choice check using a value list inFilemaker Pro
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 2 3
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 6.9: Achieving a Boolean field. A text field is created withvalidation set to a value list of two options
Default valuesFigure 6.10: A default value setting for a number field in Filemaker Pro
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 2 4
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 6.11: A default value setting of the current date for a date fieldin Filemaker Pro
Formatting
Formatting settings affect how data is displayed. The most commonformatting options affect numeric, date and time fields. The followingscreenshots show how formatting options are set for these data types inFilemaker Pro.
Figure 6.12: Date formats in Filemaker Pro
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 2 5
RELATIONAL DATABASE SYSTEMS (HIGHER)
Figure 6.13: Time formats in Filemaker Pro
Figure 6.14: Numeric formats in Filemaker Pro
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS)1 2 6
RELATIONAL DATABASE SYSTEMS (HIGHER)
Formatting options can also be applied to some other data types, such asgraphics, as the following screenshots show.
Figure 6.15: Graphic formatting in Filemaker Pro
Queries
The term query is used to describe any process that performs searchingor sorting operations in a relational database. In Filemaker Pro, Findmode is used to perform these, and scripts can be written to carry theseout.
Searching
Searching is the process of selecting records from a table orcombination of tables. To perform the query, three items must beidentified.
1. Which fields will be used to identify the records required?2. Which tables are required to produce the data required?3. What are the criteria for identifying the records required?
Learning and Teaching Scotland
DATABASE SYSTEMS (INT 2/HIGHER INFORMATION SYSTEMS) 1 2 7
RELATIONAL DATABASE SYSTEMS (HIGHER)
Search 1: Single conditionFor example, to identify the names and telephone numbers of clubmembers with Member Number over 1000:
1. the fields required are Forename, Surname and TelephoneNumber
2. the MEMBER table is required, as it contains the fields listed3. the criteria are Member Number > 1000.
Figure 6.16: Search 1 performed using a Find request
A complex search involves more than one search condition (involvingone or more fields).
Lear