chapter 7

76
McGraw-Hill/Irwin Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved. ENTERPRISE INFORMATION SYSTEMS A PATTERN BASED APPROACH Chapter 7 Information Retrieval from Relational Databases

Upload: darryl-burns

Post on 31-Dec-2015

19 views

Category:

Documents


0 download

DESCRIPTION

Chapter 7. Information Retrieval from Relational Databases. Chapter Learning Objectives. Identify and explain the purpose of the three primary relational algebra operators Identify and explain the primary components of a Structured Query Language (SQL) statement - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 7

McGraw-Hill/Irwin Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved.

ENTERPRISE INFORMATION SYSTEMS

A PATTERN BASED APPROACH

Chapter 7

Information Retrieval from Relational Databases

Information Retrieval from Relational Databases

Page 2: Chapter 7

7-2

Chapter Learning Objectives1. Identify and explain the purpose of the three primary relational

algebra operators2. Identify and explain the primary components of a Structured

Query Language (SQL) statement3. Identify the relational algebra operations achieved by a given

SQL statement4. Create a SQL statement to retrieve requested information

from a relational database5. Examine a SQL statement and the tables to which it will be

applied and identify the query result6. Find errors in a SQL statement7. Create a Microsoft Query-by-Example (QBE) to retrieve

information from relational tables8. Examine a Microsoft Access QBE query and the tables to

which it applies and identify the query result9. Find errors in a Microsoft Access QBE query

Page 3: Chapter 7

7-3

Examples of Needs for Multiple Views of One Data Set

• Cash-basis versus Accrual Accounting• Weighted Average versus FIFO or LIFO• Double-Declining Balance Depreciation versus

Straight Line• Foreign Currency Translation

How do we get these multiple views???????

Page 4: Chapter 7

7-4

Answer: Query the Data Set

• What is Querying?– It is asking questions about the data in the

database and manipulating or combining the data in different ways

– We can isolate certain rows in tables, we can isolate certain columns in tables, we can join tables together, we can create calculations based on various data items, etc.

Page 5: Chapter 7

7-5

Querying/Information Retrieval

Several ingredients are necessary for effective querying1. A database that is well-designed

• If tables are not fully relational or incompletely specified, or if conceptual model has not been correctly converted into relational form, querying will be difficult or impossible

2. A query developer who understands the table structures and the nature of the data in the tables

3. A query developer who understands the desired query output

4. A query developer who has good logic and reasoning skills

5. A query developer who knows the querying language used to retrieve information from the enterprise database

Page 6: Chapter 7

7-6

Three Query Languages

• Relational Algebra– Three main operators: Select, Project, Join– Provides the conceptual basis for SQL and QBE

• Structured Query Language (SQL)– The user enters commands according to a pre-defined

syntax to retrieve desired data.

• Query By Example (QBE)– The user starts with a sample of the table(s) columns

and marks the fields he or she wants to include in the answer. Defaults are available for summarizing and manipulating the data.

Page 7: Chapter 7

7-7

Relational Algebra

• Select– includes only certain rows from a database

table in its “answer”. • Project

– includes only certain columns from a database table in its “answer”

• Join– combines two or more database tables on the

basis of one or more common attributes

Page 8: Chapter 7

7-8

Example Tables (Incomplete Enterprise Database)from Dunn & McCarthy (2004) working paper

Inventory-Sale Stockflow Inventory ItemID

Sale Number

Quantity

Actual Price

A-4 S-1 2 600 A-1 S-1 3 2,000 A-6 S-2 2 5,000 A-1 S-3 1 2,000 A-5 S-3 2 4,000 A-3 S-3 6 1,000 A-6 S-4 2 5,000 A-2 S-5 2 3,000 A-4 S-5 2 300 A-6 S-5 2 5,000 A-2 S-6 10 3,500 A-6 S-7 2 7,000 A-5 S-7 3 3,000

Sale Sale# Amount Date Cust# SalesRep# S-1 7,200 1 July C-1 E-12 S-2 10,000 21 July C-2 E-10 S-3 16,000 22 July C-5 E-10 S-4 10,000 26 July C-2 E-10 S-5 16,600 31 July C-5 E-10 S-6 35,000 15 Aug C-3 E-10 S-7 23,000 21 Aug C-4 E-99 Sale-CashRecDuality Sale# RA# Applied S-2 RA-1 1,666 S-4 RA-2 10,000 S-1 RA-3 7,200 S-3 RA-4 16,000 S-5 RA-4 16,600 S-2 RA-5 1,666 Customer Customer# Name A/R Amt SP# C-1 Bill E-12 C-2 Mick E-10 C-3 Keith E-10 C-4 Charlie E-99 C-5 Ron E-10

Cash Receipt Remittance Advice#

Amount

Bank Account#

Date

Customer Number

Cashier Number

RA-1 1,666 BA-6 25 July C-2 E-39 RA-2 10,000 BA-7 26 July C-2 E-39 RA-3 7,200 BA-7 15 Aug C-1 E-39 RA-4 32,600 BA-7 15 Aug C-5 E-39 RA-5 1,666 BA-6 25 Aug C-2 E-39

Cash Account# Type Bank Balance BA-6 Checking Boston5 BA-7 Checking Shawmut BA-8 Draft Shawmut 75,000 BA-9 Checking MassNat 0

Salesperson Employee Number

Quarterly Sales $

Comm rate

E-12 .12 E-10 .10 E-99 .10 E-78 0 .15

Page 9: Chapter 7

7-9

Relational Algebra SELECT

Find the cash receipts from Customer #2 (keeping all the details of those cash receipts)

Answer Remittance Advice#

Amount

Bank Account#

Date

Customer Number

Cashier Number

RA-1 1,666 BA-6 25 July C-2 E-39 RA-2 10,000 BA-7 26 July C-2 E-39 RA-5 1,666 BA-6 25 Aug C-2 E-39

Customer Customer# Name A/R Amt SP# C-1 Bill E-12 C-2 Mick E-10 C-3 Keith E-10 C-4 Charlie E-99 C-5 Ron E-10

Select Cash Receipt Where Customer Number = C-2 Giving Answer

Cash Receipt Remittance Advice#

Amount

Bank Account#

Date

Customer Number

Cashier Number

RA-1 1,666 BA-6 25 July C-2 E-39 RA-2 10,000 BA-7 26 July C-2 E-39 RA-3 7,200 BA-7 15 Aug C-1 E-39 RA-4 32,600 BA-7 15 Aug C-5 E-39 RA-5 1,666 BA-6 25 Aug C-2 E-39

Page 10: Chapter 7

7-10

Relational Algebra PROJECT

Find the customer number, name, and salesperson number for all customersCustomer Customer# Name A/R Amt SP# C-1 Bill E-12 C-2 Mick E-10 C-3 Keith E-10 C-4 Charlie E-99 C-5 Ron E-10

Salesperson Employee Number

Quarterly Sales $

Comm rate

E-12 .12 E-10 .10 E-99 .10 E-78 0 .15

Project Customer Over (Customer#, Name, SP#) Giving Answer

Page 11: Chapter 7

7-11

Join Types

• Inner join– includes only the records from both tables that

have the exact same values in the fields that are joined

– I.e.,

• Outer join– includes all records from one table, and

matches those records from the other table for which values in the joined fields are equal

– I.e., Left Outer Join Right Outer Join

Page 12: Chapter 7

7-12

Relational Algebra Inner Join

Find all details of all customers and all available details of each customer’s salesperson

Join Customer, Salesperson Where Customer.SP# = [Salesperson.Employee Number] Giving Answer

Customer Customer# Name A/R Amt SP# C-1 Bill E-12 C-2 Mick E-10 C-3 Keith E-10 C-4 Charlie E-99 C-5 Ron E-10

Salesperson Employee Number

Quarterly Sales $

Comm rate

E-12 .12 E-10 .10 E-99 .10 E-78 0 .15

Page 13: Chapter 7

7-13

Relational Algebra Left Outer Join

Answer Sale# Amount Date Cust# SalesRep# Sale# RA# Applied S-1 7,200 1 July C-1 E-12 S-1 RA-3 7,200 S-2 10,000 21 July C-2 E-10 S-2 RA-1 1,666 S-2 10,000 21 July C-2 E-10 S-2 RA-5 1,666 S-3 16,000 22 July C-5 E-10 S-3 RA-4 16,000 S-4 10,000 26 July C-2 E-10 S-4 RA-2 10,000 S-5 16,600 31 July C-5 E-10 S-5 RA-4 16,600 S-6 35,000 15 Aug C-3 E-10 S-7 23,000 21 Aug C-4 E-99

Find all details of all sales and the cash receipt number and amount applied of any cash receipts related to those sales

Left Outer Join Sale, [Sale - CashRecDuality] Where [Sale.Sale#] = [Sale - CashRecDuality.Sale#] Giving Answer

Page 14: Chapter 7

7-14

SQL (Structured Query Language)

• Each query statement follows the same structure:SELECT attribute name(s)FROM table name(s)WHERE criteria is met;

Page 15: Chapter 7

7-15

SQL Statements and Relational Algebra• SQL’s SELECT component isolates columns

– i.e., relational algebra’s project

• SQL’s FROM component is used for identifying the table(s) involved– if >1 table, helps accomplish relational algebra’s join

(together with WHERE component that specifies equal fields)

• SQL’s WHERE component isolates rows– i.e., relational algebra’s select– also helps accomplish relational algebra’s join– may be left blank for single-table queries that retrieve all

rows

Page 16: Chapter 7

7-16

Find the cash receipts from Customer #2 (keeping all the details of those cash receipts)

SQL and Relational Algebra SELECT

Query Result Remittance Advice#

Amount

Bank Account#

Date

Customer Number

Cashier Number

RA-1 1,666 BA-6 25 July C-2 E-39 RA-2 10,000 BA-7 26 July C-2 E-39 RA-5 1,666 BA-6 25 Aug C-2 E-39

Customer Customer# Name A/R Amt SP# C-1 Bill E-12 C-2 Mick E-10 C-3 Keith E-10 C-4 Charlie E-99 C-5 Ron E-10

Cash Receipt Remittance Advice#

Amount

Bank Account#

Date

Customer Number

Cashier Number

RA-1 1,666 BA-6 25 July C-2 E-39 RA-2 10,000 BA-7 26 July C-2 E-39 RA-3 7,200 BA-7 15 Aug C-1 E-39 RA-4 32,600 BA-7 15 Aug C-5 E-39 RA-5 1,666 BA-6 25 Aug C-2 E-39

Select *From [Cash Receipt]Where [Customer Number] = C-2;

(note: the brackets are needed because of spaces in the table and field names; also note * is a wild card indicating all columns should be included)

Page 17: Chapter 7

7-17

SQL and Relational Algebra PROJECT

Query Result Customer# Name SP# C-1 Bill E-12 C-2 Mick E-10 C-3 Keith E-10 C-4 Charlie E-99 C-5 Ron E-10

Select Customer#, Name, SP#

From Customer;

Find the customer number, name, and salesperson number for all customersCustomer Customer# Name A/R Amt SP# C-1 Bill E-12 C-2 Mick E-10 C-3 Keith E-10 C-4 Charlie E-99 C-5 Ron E-10

Salesperson Employee Number

Quarterly Sales $

Comm rate

E-12 .12 E-10 .10 E-99 .10 E-78 0 .15

Page 18: Chapter 7

7-18

SQL and Relational Algebra Inner Join

Select *From Customer, SalespersonWhere Customer.SP# = [Salesperson.Employee Number];

Query Result Customer# Name A/R Amt SP# Employee

Number Quarterly

Sales$ Comm

rate C-1 Bill E-12 E-12 .12 C-2 Mick E-10 E-10 .10 C-3 Keith E-10 E-10 .10 C-4 Charlie E-99 E-99 .10 C-5 Ron E-10 E-10 .10

Find all details of all customers and all available details of each customer’s salesperson

Page 19: Chapter 7

7-19

SQL and Relational Algebra Outer Join

Query Result Sale# Amount Date Cust# SalesRep# Sale# RA# Applied S-1 7,200 1 July C-1 E-12 S-1 RA-3 7,200 S-2 10,000 21 July C-2 E-10 S-2 RA-1 1,666 S-2 10,000 21 July C-2 E-10 S-2 RA-5 1,666 S-3 16,000 22 July C-5 E-10 S-3 RA-4 16,000 S-4 10,000 26 July C-2 E-10 S-4 RA-2 10,000 S-5 16,600 31 July C-5 E-10 S-5 RA-4 16,600 S-6 35,000 15 Aug C-3 E-10 S-7 23,000 21 Aug C-4 E-99

Find all details of all sales and the cash receipt number and amount applied of any cash receipts related to those sales

Select *From Sale LeftJoin [Sale-CashRecDuality]Where [Sale.Sale#]=[Sale-CashRecDuality.Sale#];

Page 20: Chapter 7

7-20

Mathematical Comparison Operators

• SQL Queries may include mathematical comparison operators such as – = equal to– < less than– <= less than or equal to– > greater than– >= greater than or equal to– <> not equal to (or != in some software)

• Mathematical comparison operators are typically included in the WHERE clause of the SQL statement, and may be used on all types of fields– For date fields, dates that are earlier in time are “less than”

dates that are later in time.– For text fields, A < B < C, etc.

Page 21: Chapter 7

7-21

SQL Mathematical Comparison Operators

Select Account#, BalanceFrom CashWhere Balance>=50000;

Query Result Account# Type Bank Balance BA-8 Draft Shawmut 75,000

Cash Account# Type Bank Balance BA-6 Checking Boston5 BA-7 Checking Shawmut BA-8 Draft Shawmut 75,000 BA-9 Checking MassNat 0

Page 22: Chapter 7

7-22

SQL Mathematical Comparison Operators on Character Attributes

Select Sale#, AmountFrom SaleWhere SalesRep# <> E-10;

Query Result Sale# Amount S-1 7,200 S-7 23,000

Page 23: Chapter 7

7-23

Queries with Logical Operators

• Queries may include logical operators AND, OR, and NOT– AND accomplishes a set intersection – answer

includes all instances that meet BOTH conditions

– OR accomplishes a set union – answer includes all instances that meet one condition and all instances that meet the other condition

– NOT identifies instances that do not meet one or more conditions

Page 24: Chapter 7

7-24

Queries with Special Operators

• BETWEEN is used to define the range limits.– The end points of the range are included

Query Result Sale# Amount Date S-1 7,200 1 July S-2 10,000 21 July S-3 16,000 22 July S-4 10,000 26 July S-5 16,600 31 July

Select Sale#, Amount, DateFrom SaleWhere Date BETWEEN 7/1 and 7/31;

Page 25: Chapter 7

7-25

Queries with Special Operators• IS NULL is used to retrieve attributes for

which the value is null.

Query Result Account# Type Bank Balance BA-6 Checking Boston5 BA-7 Checking Shawmut

Select *From CashWhere Balance IS NULL;

Cash Account# Type Bank Balance BA-6 Checking Boston5 BA-7 Checking Shawmut BA-8 Draft Shawmut 75,000 BA-9 Checking MassNat 0

Page 26: Chapter 7

7-26

Queries with Special Operators• EXISTS is used to retrieve attributes for

which the value is not null.

Query Result Account# Type Bank Balance BA-8 Draft Shawmut 75,000 BA-9 Checking MassNat 0

Cash Account# Type Bank Balance BA-6 Checking Boston5 BA-7 Checking Shawmut BA-8 Draft Shawmut 75,000 BA-9 Checking MassNat 0

Select *From CashWhere Balance EXISTS;

Page 27: Chapter 7

7-27

Aggregation Functions in Queries

• An aggregation function summarizes the data values within a field (column)– COUNT summarizes the number of rows that contain

a given value in the field– AVERAGE computes the arithmetic mean value of all

rows included in the answer– SUM computes the arithmetic sum of all rows included

in the answer– MIN identifies the minimum (lowest) attribute value for

the field– MAX identifies the maximum (greatest) attribute value

for the field

Page 28: Chapter 7

7-28

Queries with Horizontal Calculations

• “Horizontal” calculations mathematically combine values from different fields for each row– Horizontal calculations should NOT be

included in the same query as an aggregation function

• One query may perform a horizontal calculation and another query that builds on the first query may perform the aggregation function, or vice versa

– The “correct” order for the queries depends on the goal

Page 29: Chapter 7

7-29

Relational Algebra SELECT in QBE Cash Receipts from Customer C-2

Page 30: Chapter 7

7-30

Relational Algebra “Select” QBE Example: Cash Receipts from Customer C-2

Page 31: Chapter 7

7-31

Relational Algebra SELECT in QBE Cash Receipts from Customer C-2

Page 32: Chapter 7

7-32

Relational Algebra SELECT in QBE Cash Receipts from Customer C-2

Enter =“C-2” as Criteria in the Customer Number field

Page 33: Chapter 7

7-33

Result

Relational Algebra SELECT in QBE Cash Receipts from Customer C-2

Page 34: Chapter 7

7-34

Relational Algebra PROJECT in QBECustomer#, name, salesperson#

Page 35: Chapter 7

7-35

Relational Algebra PROJECT in QBECustomer#, name, salesperson#

Page 36: Chapter 7

7-36

Relational Algebra PROJECT in QBECustomer#, name, salesperson#

Page 37: Chapter 7

7-37

Relational Algebra PROJECT in QBECustomer#, name, salesperson#

Result

Page 38: Chapter 7

7-38

Relational Algebra Inner Join in QBE: All details of customers and their salespeople

Page 39: Chapter 7

7-39

Relational Algebra Inner Join in QBE: All details of customers and their salespeople

Page 40: Chapter 7

7-40

Relational Algebra Inner Join in QBE: All details of customers and their salespeople

Page 41: Chapter 7

7-41

Relational Algebra Inner Join in QBE: All details of customers and their salespeople

Result

Page 42: Chapter 7

7-42

Relational Algebra Outer Join in QBE Details of all sales, related cash receipts

Page 43: Chapter 7

7-43

Double-click on the join line

Relational Algebra Outer Join in QBE Details of all sales, related cash receipts

Page 44: Chapter 7

7-44

Click OK

Click on appropriate join type

Relational Algebra Outer Join in QBE Details of all sales, related cash receipts

Page 45: Chapter 7

7-45

Notice change in join line

Relational Algebra Outer Join in QBE Details of all sales, related cash receipts

Page 46: Chapter 7

7-46

Relational Algebra Outer Join in QBE Details of all sales, related cash receipts

Page 47: Chapter 7

7-47

Relational Algebra Outer Join in QBE Details of all sales, related cash receipts

Result

Page 48: Chapter 7

7-48

QBE with Mathematical Comparison OperatorCash Account# and Balances >=$50,000

Page 49: Chapter 7

7-49

QBE with Mathematical Comparison OperatorCash Account# and Balances >=$50,000

Page 50: Chapter 7

7-50

QBE with Mathematical Comparison OperatorCash Account# and Balances >=$50,000

Result

Page 51: Chapter 7

7-51

QBE with Mathematical Comparison on Character Attribute: Sales Not made by E-10

Page 52: Chapter 7

7-52

QBE with Mathematical Comparison on Character Attribute: Sales Not made by E-10

Page 53: Chapter 7

7-53

QBE with Mathematical Comparison on Character Attribute: Sales Not made by E-10

Result

Page 54: Chapter 7

7-54

AND operator in QBE: Sales made before July 31 by Sales Rep E-10

Page 55: Chapter 7

7-55

AND operator in QBE: Sales made before July 31 by Sales Rep E-10

Page 56: Chapter 7

7-56

Enter selection criteria on same line to accomplish logical “AND”

AND operator in QBE: Sales made before July 31 by Sales Rep E-10

Page 57: Chapter 7

7-57

AND operator in QBE: Sales made before July 31 by Sales Rep E-10

Result

Page 58: Chapter 7

7-58

OR operator in QBE: Sales made before July 31 OR by Sales Rep E-10

Page 59: Chapter 7

7-59

OR operator in QBE: Sales made before July 31 OR by Sales Rep E-10

Page 60: Chapter 7

7-60

Enter selection criteria on separate lines to accomplish logical “OR”

OR operator in QBE: Sales made before July 31 OR by Sales Rep E-10

Page 61: Chapter 7

7-61

OR operator in QBE: Sales made before July 31 OR by Sales Rep E-10

Result

Page 62: Chapter 7

7-62

Aggregation SUM and Special Operator BETWEEN in QBE: Total Sales between July 15 and July 31

Page 63: Chapter 7

7-63

Bring only the fields you need into the query grid

Aggregation SUM and Special Operator BETWEEN in QBE: Total Sales between July 15 and July 31

Page 64: Chapter 7

7-64

Enter Criteria with BETWEEN operator

Click on summation symbol to add “Total” line to query grid (used for aggregations)

Aggregation SUM and Special Operator BETWEEN in QBE: Total Sales between July 15 and July 31

Page 65: Chapter 7

7-65

Total line defaults to “Group By” for each field; Change the Amount field to “Sum” and change the Date field to “Where”

Aggregation SUM and Special Operator BETWEEN in QBE: Total Sales between July 15 and July 31

Page 66: Chapter 7

7-66

Aggregation SUM and Special Operator BETWEEN in QBE: Total Sales between July 15 and July 31

Page 67: Chapter 7

7-67

Aggregation SUM and Special Operator BETWEEN in QBE: Total Sales between July 15 and July 31

Result

Page 68: Chapter 7

7-68

Horizontal Calculation in QBE: Inventory-Sale Line Item Extension

Page 69: Chapter 7

7-69

Save query so that fields will be available to the Expression Builder; then click on the magic wand to start the Expression Builder

Horizontal Calculation in QBE: Inventory-Sale Line Item Extension

Page 70: Chapter 7

7-70

Horizontal Calculation in QBE: Inventory-Sale Line Item Extension

Page 71: Chapter 7

7-71

Horizontal Calculation in QBE: Inventory-Sale Line Item Extension

Page 72: Chapter 7

7-72

Horizontal Calculation in QBE: Inventory-Sale Line Item Extension

Page 73: Chapter 7

7-73

Horizontal Calculation in QBE: Inventory-Sale Line Item Extension

Page 74: Chapter 7

7-74

Horizontal Calculation in QBE: Inventory-Sale Line Item Extension

Result

Page 75: Chapter 7

7-75

Querying Summary• Querying provides the power of the relational database model

– Once you unlock the mystery of query construction, you can tap into the wealth of information that is at your fingertips in a well-designed relational database

• Querying requires organized thinking and logic– You must understand the structure of the database tables and the

nature of the data in those tables.– You must identify which table(s) are needed for each query, and

determine the appropriate manipulations that need to be made in the appropriate sequence

• Some people find it helpful to organize their thinking by considering what relational algebra operators are needed even though the relational algebra language is rarely used

• Manually calculating the query result using a representative data sample is also very helpful for identifying query errors

• Remember to separate horizontal calculations from vertical aggregations

• Comprehensive testing of queries is crucial before releasing queries for use by general users

Page 76: Chapter 7

McGraw-Hill/Irwin Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved.

ENTERPRISE INFORMATION SYSTEMS

A PATTERN BASED APPROACH

Chapter 7

End of ChapterEnd of Chapter