access naivasha

Download Report

Transcript access naivasha

Access Primer
UoN workshop
Naivasha, 30 July – 4 August 2006
MS Access
 Relational Database Management System


Data/information resides in series of related
tables
Principle of normalisation
 Double system (Microsoft!)


.mdb: stand-alone files
.adp: front-end to MS SQL Server database
Access elements
 Tables: to store data
 Queries: to ask questions from database
 Forms: to create a user interface
 Macros: to automate repetitive tasks
 Modules: create non-standard
functionality, using Visual Basic
Tables
 Must be defined before they can be used
 Vaguely resemble Excel sheets but:

Unit of information is a ‘record’ (line)


Consists of ‘fields’



Type must be chosen
All fields of a record remain together
No restriction on the number of lines


Saved automatically as soon as one moves to another
record
Excel: 64,000 lines
Order of records is not fixed!
Types of fields
 Text (length; max = 255)
 Memo
 Integer (normal or long)

Autonumber
 Real (single or double)
 Date
 Boolean (yes/no)
Indices
 Facilitate sorting and selective extraction
of records
 Special index: primary key


unique identifier for a record
often ‘autonumber’
 Other indices:


Unique or not
Slow data entry down
Normalisation
 All data should be in the database once
and only once


Repeated data go to separate table
Relationships between the tables are part of
the ‘model’ of the database
Link between tables defined on pair of fields, one
in each table, that are of same type
 Records of the two tables are ‘related’ if value in
the link fields is the same

Non-normalised Table
Species
Asterias rubens
Asterias rubens
Asterias rubens
Cancer pagurus
Cancer pagurus
Cancer pagurus
Asterias rubens
Asterias rubens
Cancer pagurus
# legs
5
5
5
10
10
10
5
5
10
# eyes
0
0
0
2
2
2
0
0
2
place Country
Oostende
Belgium
Zeebrugge
Belgium
Zeebrugge
Belgium
De Panne
Belgium
Oostende
Belgium
Zeebrugge
Belgium
Wimereux
France
Wimereux
France
Wimereux
France
date
12/3/2004
13/3/2005
14/3/2005
12/3/2004
12/3/2004
14/3/2004
13/3/2005
14/3/2005
12/3/2004
Normalisation
 Table with morphological characters

fields: species, number of legs, number of eyes
 Table with distribution records

fields: species, place, date
 The field ‘Species’ is common to the two
tables, and makes it possible to link records
between two tables
Creating relations
 ‘one to many’ relations
 Defined on fields of the same type

In case of text fields: same length
 On the many side: primary key
 Helps in maintaining the integrity of the data

Enforce presence of a ‘related record’ in the ‘related
table’

Avoid spelling variations (Oostende, Ostend, Ostende…)
Relations
 Best on fields that do not carry any real-world
information

Autonumber
 In the example: add field autonumber in the
species table, and use this as a code in the
distributions table; make autonumber field the
primary key
 Also best to add Autonumber as primary key in
distributions table
And more Relations…
 Also the locality of the species
distribution record should be in a
separate table

With fields for position, country…
Queries
 Select and sort records of a table
 Pull together information from related tables
 Simple statistics
 In principle: SQL

But access interface hides SQL from the user
 In pratice: query grid

Define which tables will be used, fields that have to
be shown, criteria for selection and sorting…
SQL statement
SELECT Places.PlaceName,
Species.SpeciesName
FROM Species INNER JOIN (Places INNER
JOIN distributions ON Places.PlaceID =
distributions.placeID) ON
Species.speciesID =
distributions.speciesID
ORDER BY Places.PlaceName;
Forms
 Create an interface for the users
 Hide codes/autonumbers (combobox)
 Elements of the form are linked to fields
in the tables


Can show single records at a time, or
‘repeated forms’
Entries/changes to the form are written
automatically to the table
ComboBox
 Limit possible entries into a field
 Hide codes/autonumbers from users
 Two different representations of the
same information are combined


Code, to be entered into the table
Full text equivalent, for the benefit of the
user
Subforms
 To display the content of a many-to-many
relationship


We don’t know how many related records there will
be, so impossible to solve with static, predefined
structure
A form can be repeated, showing multiple lines

Number of lines is not limited
 First create the subform
Subforms
 And then the main form
And now…
 How to decide on the structure of a database?



Which information do we want to store?
Which tables do we need? Relationships between
them?
Which indices (primary and others) do we need?
 Start from an analysis of user needs
 In principle also, decide on a platform
Task
 Create ‘model’ for
biodiversity/biogeography database


Which standard vocabularies to use?
What are important elements of
information?
Sources
 Biology

 Classification, synonymy

Geography