CHAPTER 4 - SQL

37
1 CHAPTER 4 THE RELATIONAL MODEL 3 – ADVANCED TOPICS

Transcript of CHAPTER 4 - SQL

Page 1: CHAPTER 4 - SQL

1

CHAPTER 4

THE RELATIONAL MODEL 3 – ADVANCED TOPICS

Page 2: CHAPTER 4 - SQL

2

VIEWS

• MS ACCESS• SAVED QUERIES• SQL• VIEWS• QUERY• ANALYZED – RUN• VIEW• ANALYZED ONCE

Page 3: CHAPTER 4 - SQL

3

VIEW

• SNAPSHOT OF DATA• REPORTS, CHARTS, FORMS• QUERIES

Page 4: CHAPTER 4 - SQL

4

EXAMPLE – PETER’S WORLD

• ITEM CLASS “HW”• PART NUMBER• PART DESCRIPTION• UNITS ON HAND• UNIT PRICE

• VIEW

Page 5: CHAPTER 4 - SQL

5

SQL SYNATX

• CREATE VIEW view name (col1, col2,..)• AS• SELECT STATEMENT;• CREATE VIEW Housewares AS• SELECT PartNum, Description, OnHand, Price• FROM Part• WHERE Class = ‘HW’;

Page 6: CHAPTER 4 - SQL

6

Housewares View

Page 7: CHAPTER 4 - SQL

7

Premiere Products Sample Data

Page 8: CHAPTER 4 - SQL

8

CONCEPTUAL DATABASE VS. USER’S VIEW

• NO TEMPORARY TABLE• WINDOW

Page 9: CHAPTER 4 - SQL

9

RUNNING QUERIES ON VIEW

• SELECT * • FROM Housewares• WHERE OnHand > 10;

• SELECT PartNum, Description, OnHand, Price• FROM Part• WHERE Class = ‘HW’ AND OnHand > 10;

Page 10: CHAPTER 4 - SQL

10

RENAMING COLUMNS

• CREATE VIEW Housewares • (Pnum, Dsc, OnHd, Price) AS• SELECT PartNum, Description, OnHand,

Price• FROM Part• WHERE Class = ‘HW’;

Page 11: CHAPTER 4 - SQL

11

VIEW ON JOINED TABLES

• CREATE VIEW SalesCust• (Cnum, Cname, Snum, Slast, Sfirst )• AS• SELECT CustomerNum, Customer.CustomerName, Rep.RepNum• Rep.LastName, Rep.FirstName• FROM Customer• INNER JOIN Rep• ON Customer.RepNum = Rep.RepNum;

Page 12: CHAPTER 4 - SQL

12

Sales Cust View

Page 13: CHAPTER 4 - SQL

13

ALL CUSTOMERS REPRESENTED BY SALES

REP 20• SELECT Cnum, Cname• FROM SalesCust• WHERE Snum = ’20’;• SELECT CustomerNumber,

Customer.CustomerName FROM Customer• INNER JOIN Rep• ON Customer.RepNum = Rep.RepNum • WHERE RepNum = ’20’;

Page 14: CHAPTER 4 - SQL

14

ADVANTAGES OF USING VIEWS

• 1. SIMPLICITY FOR BUSINESS MANAGERS• COMPLEXITY & SIZE DISGUISED• JOIN TRANSPARENT• 2. SECURITY• OTHER DATA NOT ACCESSIBLE’• 3. USER PERSONALIZATION• 4. DATA INDEPENDENCE• DATABASE STRUCTURE MODIFICATION• EXTRA COLUMNS• RELATIONSHIP

Page 15: CHAPTER 4 - SQL

15

INDEX

• FASTER ACCESS TO DATA• EXTRA COLUMN• RECORD NUMBER

Page 16: CHAPTER 4 - SQL

16

Customer Table with Record Numbers

Page 17: CHAPTER 4 - SQL

17

INDEX

• NATURAL INDEX• PRIMARY KEY

Page 18: CHAPTER 4 - SQL

18

Index for Customer Table on Customer Number Column

Page 19: CHAPTER 4 - SQL

19

NON PRIMARY KEY INDEX

• CRITERIA• CREDIT LIMIT• SALES REP

Page 20: CHAPTER 4 - SQL

20

Indexes for Customer Table onCredit Limit and Sale Rep Number Columns

Page 21: CHAPTER 4 - SQL

21

SQL to Create Index

CREATE INDEX CustomerNameON Customer (CustomerName);

Page 22: CHAPTER 4 - SQL

22

SQL to Delete Index

DROP INDEX RepBal;

Page 23: CHAPTER 4 - SQL

23

INDEX

• MULIPLE COLUMNS• FAST ACCESS ON MULIPLE CRITERIA• AUTOMATIC INDEXES BY DBMS• DISADVANTAGES• SPACE• OVERHEAD PROCESSING

Page 24: CHAPTER 4 - SQL

24

WHEN TO USE INDEXES?

• TRADE-OFF• ADD AND DROP AT WILL• MS ACCESS• NO• YES – WITH DUPLICATES• YES – NO DUPLICATES

Page 25: CHAPTER 4 - SQL

25

DATA RULES AND INTEGRITY RULES

• DATA INTEGRITY CONSTRAINT• ACCURACY• PRICE > 0• SALARY <= $100,000• DATE-HIRED > COMPANY-FOUNDING-

DATE• CONDITION ENFORCED – OPERTAION• CHANGE IN CONDITION• SET OF PREDEFINED OPTIONS• GENDER – MALE, FEMALE,

UNAVAILABLE• CREDIT LIMIT – 5000, 7500, 10000, 15000

Page 26: CHAPTER 4 - SQL

26

DATA INTEGRITY CONSTRAINT

• ALTER TABLE Rep• MODIFY LastName NOT NULL;• ALTER TABLE Customer• ADD CreditLimit CHECK IN (5000, 7500,

10000,15000)’

Page 27: CHAPTER 4 - SQL

27

ENTITY INTEGRI TY

• COLUMNS• ALLOW NULL• PRIMARY KEY• NULL NOT ALLOWED• RESTRICTION• ENTITY INTEGRITY RULE• COLUMN• PART OF PRIMARY KEY• NOT NULL

Page 28: CHAPTER 4 - SQL

28

REFERENTIAL INTEGRITY

• CONSTRAINT• SALES REP NUMBER – SALES REP TABLE• SALES REP NUMBER – CUSTOMER• MATCHING COLUMN• NOT NECESSARILY – SAME NAME• MECHANISM – CONNECTING TABLES• CORRESPONDING COLUMN• MATCHING VALUE• FOREIGN KEY

Page 29: CHAPTER 4 - SQL

29

FOREIGN KEY

• COLUMN(S)• PRIMARY KEY• - ANOTHER TABLE

Page 30: CHAPTER 4 - SQL

30

REFERENTIAL INTEGRITY• FOREIGN KEY• CORRESPONDING PRIMARY KEY• IMPLEMENTATION – DBMS• - NO PROVISION• - INTERNALLY• - TRIGGERS• MS ACCESS• - AUTOMATIC• - DEFINE RELATIONSHIP• CONNECTING LINE• CASCADE DELETE• CASCADE UPDATE• CONSISTENCY

Page 31: CHAPTER 4 - SQL

31

INTEGRITY IN SQL

• NO PROVISION IN ANSI• INTEGRITY ENHANCEMENT FEATURE

Page 32: CHAPTER 4 - SQL

32

Integrity in SQL

• Integrity Enhancement Feature (IEF) provides three types of integrity support:– Legal values. CHECK – Primary keys. PRIMARY KEY – Foreign keys. FOREIGN KEY

Page 33: CHAPTER 4 - SQL

33

SQL CODE

• CREATE TABLE Customer• ( CustomerNum CHAR(2),• CustomerName CHAR(15),• Street CHAR(15),• City CHAR(15),• State CHAR(2),• ZipCode CHAR(5),• Balance DECIMAL(7,2),• CreditLimit DECIMAL(3,20)• RepNum CHAR(2))• CHECK (CreditLimit IN (5000, 7500, 10000,15000))• PRIMARY KEY (CustomerNum),• FOREIGN KEY (RepNum) REFERENCES SalesRep);

Page 34: CHAPTER 4 - SQL

34

CHANGING THE STRUCTURE OF A

RELATIONAL DATABASE• ALTER TABLE table name

ADD COLUMN column name data type (size)

DELETE / DROP COLUMN column name

CHANGE COLUMN column name data type (size);

• DROP TABLE (table name);

Page 35: CHAPTER 4 - SQL

35

FOREIGN KEY CONSTRAINT• ALTER TABLE Customer• ADD FOREIGN KEY (RepNum)

REFERENCES Rep;• ALTER TABLE Parttable• ADD (Allfield DECIMAL (4,0));• ALTER TABLE Partable• MODIFY (Allfield CHAR(2));• ALTER TABLE Part• DROP COLUMN Allfield;

Page 36: CHAPTER 4 - SQL

36

EXAMPLES

• ALTER TABLE Customer• ADD CustType CHAR (1)• (DEFAULT = ‘R’)• ALTER TABLE Customer• DELETE CustType;• ALTER TABLE Customer• CHANGE COLUMN CustName• TO CHAR (20)• DROP TABLE Part;

Page 37: CHAPTER 4 - SQL

37

ORACLE STATEMENTS

• ALTER TABLE Customer• ADD Cust_Type CHAR(1);

• UPDATE Customer• SET Cust_Type = 'R';