+ All Categories
Home > Documents > Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Date post: 13-Dec-2015
Category:
Upload: dustin-clarke
View: 230 times
Download: 3 times
Share this document with a friend
40
Chapter 6 SQL
Transcript
Page 1: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Chapter 6

SQL

Page 2: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Agenda

• Data Definition Language (DDL)

• Access Control

Page 3: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

String Data Types

• Boolean data: true, false, null, unknown value (true > false)

• Character data– Fixed length: CHAR(4)– Variable length: VARCHAR(30)

• Bit data: binary string– BIT(4)

Page 4: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Numeric Data Types

• NUMERIC or NUMBER [precision, [scale]]• DECIMAL or DEC [precision, [scale]]• INTEGER or INT• SMALLINT (32,767)• FLOAT [precision]• REAL• DOUBLE PRECISION

Page 5: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Datetime data

• DATE: year, month, day

• TIME [timeprecision (for second, default=0)] [with time zone (control hour and minute)]: hour, minute, second

• TIMESTAMP [timeprecision (for second, default=6] [with time zone (control hour and minute)]: date and times

Page 6: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Integrity Enhancement Feature

• Required data

• Domain constraints

• Entity integrity

• Referential integrity

• Enterprise constraints

Page 7: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Required Data

• Position VARCHAR(10) NOT NULL

Page 8: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Domain Constraints - I

• CHECK (search condition)– sex CHAR(1) NOT NULL CHECK (sex IN

(‘m’, ‘f’))– credit AS NUMBER(3) CHECK (VALUE BETWEEN 0 AND 999)– major AS CHAR(3) DEFAULT ‘mis’ CHECK (VALUE IN (‘mis’, ‘man’, ‘act’,

‘obe’))

Page 9: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Domain Constraints - II

• CREATE DOMAIN domain name [AS] data type [DEFACULT default option] [CHECK (VALUE IN (search condition))]– CREATE DOMAIN sextype AS CHAR(1) DEFACULT ‘m’

CHECK (VALUE IN (‘m’,’f’));– sex sextype NOT NULL– CREATE DOMAIN cnumber AS CHAR(2) CHECK (VALUE IN

(SELECT cno FROM customer));– cid cnumber NOT NULL

• DROP DOMAIN domain name [RESTRICT l CASCADE]– DROP DOMAIN cnumber;

Page 10: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Entity Integrity

• PRIMARY KEY key name or key names NOT NULL– PRIMARY KEY sno NOT NULL– sno INTEGER NOT NULL UNIQUE– PRIMARY KEY (sno, classno, sdate) NOT

NULL

Page 11: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Referential Integrity

• Referential action for ON UPDATE and ON DELETE– CASCADE– SET NULL– SET DEFAULT– NO ACTION

• Examples– FOREIGN KEY hotelno REFERENCES hotel (hotelno)– FOREIGN KEY hotelno REFERENCES hotel (hotelno) ON

DELETE SET NULL– FOREIGN KEY hotelno REFERENCES hotel (hotelno) ON

UPDATE CASCADE

Page 12: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Enterprise Constraints

• Methods– CHECK clause– UNIQUE clause– CREATE ASSERTION statement

• CREATE ASSERTION assertion name CHECK (assertion condition)

• CREATE ASSERTION toomuch CHECK (NOT EXIST (SELECT sno FROM enroll GROUP BY sno HAVING COUNT (*) >10);

Page 13: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

SQL DDL

• CREATE

• ALTER

• DROP

Page 14: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

CREATE

• SCHEMA

• DOMAIN

• TABLE

• INDEX

• VIEW

Page 15: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

ALTER

• TABLE

• DOMAIN

Page 16: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

DROP

• SCHEMA

• DOMAIN

• TABLE

• INDEX

• VIEW

Page 17: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

CREATE Schema

• CREATE SCHEMA [name | AUTHORIZATION creator-id]

• DROP SCHEMA name [RESTRICT | CASCADE]

• Examples– CREATE SCHEMA mis150

AUTHORIZATION tsai;– DROP SCHEMA mis150;

Page 18: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

SQL DDL For Table

• CREATE TABLE table-name (colm data-type [NOT NULL][UNIQUE] [DEFAULT option][CHECK search-cond][,...],[PRIMARY KEY (colm [,colm])],[FOREIGN KEY (colm [,colm]) REFERENCES (parent-table)[colms])

Page 19: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Create A New Table Example

• CREATE TABLE student

(stuid NUMBER(5) NOT NULL CHECK

(stuid BETWEEN 00001 AND 99999),

stuname CHAR(10),

major CHAR(10),

credit NUMBER(3),

CONSTRAINT pkstudent PRIMARY KEY

(stuid));

Page 20: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Create A New Table Example

• CREATE TABLE faculty

(facid NUMBER (5) NOT NULL,

facname CHAR(10),

dept CHAR(10),

rank CHAR(3)

CHECK (rank IN (‘F’,’Aso’, ‘Ast’)),

CONSTRAINT pkfaculty PRIMARY

KEY (facid));

Page 21: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Create A New Table Example• CREATE TABLE class

(course# NUMBER(5) NOT NULL, facid NUMBER(5), sched CHAR(10), room CHAR(10), CONSTRAINT pkclass PRIMARY KEY

(course#), CONSTRAINT fkclassfaculty

FOREIGN KEY (facid) REFERENCES faculty (facid));

Page 22: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Create A New Table Example• CREATE TABLE enrollment

(course# NUMBER(5) NOT NULL, stuid NUMBER(5) NOT NULL, grade CHAR(10), CONSTRAINT pkenroll PRIMARY KEY

(course#, stuid),CONSTRAINT fkenrollclass

FOREIGN KEY (course#)REFERENCES class (course#),

CONSTRAINT fkenrollstudentFOREIGN KEY (stuid)REFERENCES student (stuid));

Page 23: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

SQL DDL For Table

• DROP TABLE table-name [RESTRICT | CASCADE];

• ALTER TABLE table-name [ADD][MODIFY][COLUMN] colm data-type [NOT NULL][UNIQUE] [DEFAULT option][CHECK search-cond][,...][DROP [COLUMN]colm [RESTRICT|CASCADE]

Page 24: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Examples

• ALTER TABLE enrollment

MODIFY (grade NUMBER(3));

• ALTER TABLE enrollment

ADD (datetake DATE not null);

• DROP TABLE enrollment;

Page 25: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

SQL DDL For Table

• ALTER TABLE table-name [ADD [CONSTRAINT[constrnt-name]]table-constrnt][DROP CONSTRAINT constrnt-name][RESTRICT | CASCADE]

Page 26: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

• CREATE TABLE customer(lastname CHAR(20) NOT NULL, firstname CHAR(20) NOT NULL, customerid NUMBER(5) NOT NULL, address CHAR(10));

• ALTER TABLE customerADD (CONTRAINT pkcustomer PRIMARY

KEY (lastname, firstname));• ALTER TABLE customer

DROP CONSTRAINT pkcustomer;• ALTER TABLE customer

ADD (CONTRAINT pkcustomer PRIMARY KEY (customerid));

Page 27: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Example• CREATE TABLE purchaseorder

(ponumber CHAR (5) NOT NULL, podate DATE)CONTRAINT pkpurchasorder PRIMARY KEY

(ponumber));• CREATE TABLE puchaseorderlineitem

(ponumber CHAR(5) NOT NULL, lineitem CHAR(5) NOT NULL, quantity NUMBER(5) NOT NULL, CONTRAINT pkpuchaseorderlineitem PRIMARY KEY

(ponumber, lineitem));• ALTER TABLE puchaseorderlineitem

ADD (CONSTRAINT fkpolineitemFOREIGN KEY (ponumber) REFERENCES purchaseorder (ponumber));

• ALTER TABLE puchaseorderlineitem DROP (CONSTRAINT fkpolineitem);

Page 28: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

SQL DDL For Index

• CREATE [UNIQUE] INDEX index-name ON base-table-name (column [ASC | DESC] [, ... )

• DROP INDEX index-name

Page 29: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Examples

• CREATE INDEX studentname

ON student (stuname DESC);

• CREATE INDEX majorcredit

ON student (major, credit);

• DROP INDEX majorcredit;

Page 30: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

SQL DDL For View

• CREATE VIEW view-name [(view-colm [, ...])] AS SELECT ... [WITH [CASCADE|LOCAL] CHECK OPTION]

• DROP VIEW view-name [RESTRICT | CASCADE]

Page 31: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Examples• CREATE VIEW substudent

(studentid, studentname, major)

AS

SELECT stuid, stuname, major

FROM student;• CREATE VIEW productprofit

(productid, productname, profit)

AS

SELECT productid, productname, sale-cost

FROM inventory;• DROP VIEW productprofit;

Page 32: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Advantages of Views

• Data independence

• Currency

• Improved security

• Reduced complexity

• Convenience

• Customization

• Data integrity

Page 33: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Disadvantages of Views

• Update restriction

• Structure restriction

• Performance

Page 34: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Access Control

• GRANT system-privilege TO role-name

• GRANT object-privilege ON [owner.] object-name TO role-name

• GRANT role-name TO user-name

• REVOKE privilege FROM role-name

• REVOKE role-name FROM user-name

Page 35: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

System Privileges

• CREATE TABLE

• CREATE VIEW

• CREATE USER

• ALTER INDEX

Page 36: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Object Privileges

• SELECT

• INSERT

• UPDATE

• DELETE

Page 37: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Examples

• GRANT CREATE TABLE, CREATE VIEW, CREATE USER TO manager;

• GRANT SELECT, INSERT, UPDATE, DELETEON student

TO manager;

• GRANT manger TO tsai;

Page 38: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

• REVOKE DELETEON student

FROM manager;

• REVOKE managerFROM tsai;

Page 39: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Points To Remember

• Structured Query Language (SQL)

• Data Definition Language (DDL)

• Access Control

Page 40: Chapter 6 SQL. Agenda Data Definition Language (DDL) Access Control.

Assignment

• Review chapters 1-4, 5, and appendix C

• Read chapters M-2, M-3

• Homework assignment– 6.10, 6.11(a, b, c, d), 6.12, 6.13, 6.14– Due date:


Recommended