Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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)