Powerpoint slides - Dynamic Connectome Lab

Download Report

Transcript Powerpoint slides - Dynamic Connectome Lab

Database Systems
Marcus Kaiser
School of Computing Science
Newcastle University
Requirements
Remove Redundancy – or at least control it
 Data Integrity
 Separation of data and program
 Prevent inconsistency when systems fail
 Allow multiple (simultaneous) interactions
 High level of security
 Remote access
 Access by humans and computers

Database Management
Systems: Structure
DBMS
Software
Databas
e
Query Language
Application
Program
Pre-Defined
Applications:
Report Generator
Query by Forms
User
Query
Database Management Systems
- Features


Data Centralization
 all data can be stored in one database
 all users see the same, consistent set of data
 eliminates data redundancy
 increases data integrity
clients can connect to the database irrespective of its
location.
Database Structures
Database Structures

Databases consist of a set of Tables
 A Table holds a set of Fields for each Record
Columns or fields
 e.g. Staff Table
Surname
Initial
Title
Department
Smith
A
Mr
Sales
Smith
K
Ms
Marketing
Brown
M
Mrs
Engineering
Record
Creating Tables

Data Definition Language
 Used to create tables
 Allows you to define:


Table Name
Fields


Name
Format (e.g. 20 characters of Text; Integer)
Populating Tables

Once the Tables have been defined they can be filled:
 by bulk loading from text files
 by bulk loading from other databases
 by queries
Data Independence


changes to the data can be made without changing the
programs which access it
2 Views of data
 Physical View




actual location of the computer holding the data
actual location of the data on a storage device
the actual format of the data
Logical View




view of the records and fields of data as they are seen by the
user
presented via the query language
independent of the Physical View
e.g. users can ask for all workers with the surname Smith
Querying the Database




Queries are used to:
 retrieve data
 update fields
 delete records
 insert records
The “Standard” Query Language is called SQL
 Structured Query Language
Almost all Databases support SQL
However there are other approaches
The SQL Language
SQL: Basic Select

SELECT retrieves information from a table
 Simplest form:
SELECT columns FROM table
Which columns or fields to display
The name of the table
Select Example
we want to get the names of all members of staff.
SELECT Surname, Initial FROM Staff
Staff
Surname
Initial
Title
Department
Smith
A
Mr
Sales
Smith
K
Ms
Marketing
Brown
M
Mrs
Engineering
Gives:
Surname
Initial
Smith
A
Smith
K
Brown
M
Personnel Example Revisited (1)

Recall

a Companies Personnel Address Database for the employees:
Personnel

Name
Init
Street
Town
Post_Code
Tel_Number
Smith
A
73 Dover St
Newcastle
NE2 3SR
01912234554
Jones
C.A. 25 Spring Rd Sunderland S12 7DD
01914566547
What SQL command would give you all:
 The telephone numbers?
 The addresses?
Answer (1)

The telephone numbers?

The addresses?
Where Clauses



SELECT columns FROM table
can only retrieve whole columns
a WHERE clause can be used to select only the rows (records) of
those columns which meet a particular qualifier
e.g. we want to get the names of all staff working in Sales:
SELECT Surname, Initial
FROM Staff
WHERE Department = ‘Sales’

the qualifier can contain OR or AND:
SELECT Surname, Initial
FROM Staff
WHERE Department = ‘Sales’
AND Surname = ‘Smith’
Personnel Example Revisited (2)

Recall

a Companies Personnel Address Database for the employees:
Personnel

Name
Init
Street
Town
Post_Code
Tel_Number
Smith
A
73 Dover St
Newcastle
NE2 3SR
01912234554
Jones
C.A. 25 Spring Rd Sunderland S12 7DD
01914566547
What SQL command would give you:
 The telephone number for A Smith?
 The address for C.A. Jones?
Answer (2)

The telephone number for A Smith?

The address for C.A. Jones?
Sorting

We can sort the result of the query:
SELECT Initial, Surname
FROM Staff
ORDER BY Surname ASC, Initial ASC
(ASC = ascending; DESC = descending)
Personnel Example Revisited (3)

Recall

a Companies Personnel Address Database for the employees:
Personnel
Nam
e
Init
Street
Town
Post_Code
Tel_Number
73 Dover St
Newcastle
NE2 3SR
01912234554
Jones C.A. 25 Spring Rd Sunderland S12 7DD
01914566547
Smith A

What SQL command would give you:
 Name and Town sorted in reverse alphabetical order
of Town?
Answer (3)

Name and Town sorted in reverse alphabetical order
of Town?
Set Functions

We can also perform operations on sets of data
 count (column) counts the number of entries in a column
SELECT count(Surname)
FROM staff
Column or field
 WHERE Department = ‘Sales’

returns:
Number
1

count(*) returns the number of records in a table
Personnel Example Revisited (4)

Recall

a Companies Personnel Address Database for the employees:
Personnel
Nam
e
Init
Street
Town
Post_Code
Tel_Number
73 Dover St
Newcastle
NE2 3SR
01912234554
Jones C.A. 25 Spring Rd Sunderland S12 7DD
01914566547
Smith A

What SQL command would give you:
 The number of members of staff who live in
Newcastle?
Answer (4)

The number of members of staff who live in
Newcastle?
Renaming Fields

Sometimes we want to rename a field
 We can use the AS operation
SELECT Surname AS Family_Name
FROM staff

Column or field
returns:
Family_Name
Smith
Smith
Brown
Multi-Table Retrieval



We can query more than one table:
e.g. Where does Every Member of Staff Work ?
SELECT Staff.Initial,Staff.Surname,Place.City
FROM Staff,Place
WHERE Staff.Dept = Place.Dept
e.g. Who Works at Hull ?
SELECT Staff.Initial,Staff.Surname
FROM Staff,Place
WHERE Staff.Dept = Place.Dept
AND Place.City = ‘Hull’
Why Place.Dept = Staff.Dept?


To distinguish between Fields in different tables with the same name
we prepend the Field with the name of the Table
 Place.Dept
 Staff.Dept
But why Place.Dept = Staff.Dept?
 When we join the two tables together each record from Place is
matched with each record from Staff
 So we have every member of Staff Matched with every Place
 But we only want the ones that represent real ‘matches’
Sales
Marketing
Engineering
Marketing
Sales
Sales
Marketing
Engineering
Sales
Marketing
Engineering
Marketing
Marketing
Marketing
Sales
Sales
Sales
Multi-Table Retrieval


What does this do ? What is the Result of the Query ?
SELECT Place.City
FROM
Staff,Place
WHERE
Staff.Surname = ‘Smith’
AND
Staff.Initial = ‘C’
AND
Staff.Dept = Place.Dept
Write a Query to Find out the Initial and Department of
Jones, who works in Leeds
 Write a Query to Find out how many people work in
Leeds
Answer (5)

What does this do ? What is the Result of the Query ?
SELECT Place.City
FROM Staff,Place
WHERE Staff.Surname = ‘Smith’ AND Staff.Initial = ‘C’
AND
Staff.Dept = Place.Dept

Write a Query to Find out the Initial and Department of Jones, who
works in Leeds

people work in Leeds
Inserting Rows
INSERT INTO Staff (Name,Initial,Dept)
VALUES (‘Green’,’D’,’Eng’)
INSERT INTO Place (Dept,City)
VALUES (‘Manufacturing’,’Bristol’)
Updating Rows
UPDATE Place
SET
City = ‘Coventry’
WHERE
Dept = ‘Sales’
UPDATE Staff
SET
Dept = ‘Systems’
WHERE
Dept = ‘Eng’
Deleting Rows
DELETE
FROM Staff
WHERE Name = ‘Smith’
AND
Initial = ‘C’
Summary




Database Management Systems
 Centralize data
 Provide remote access
Data is stored in tables
 With fields for each piece of data
 A set of fields makes a record
Data has physical and logical views
Access data through SQL (Structured Query
Language)