SlideShare a Scribd company logo
Chapter 7
SQL – Data Definition
Pearson Education © 2014
Chapter 7 - Objectives
Data types supported by SQL standard.
Purpose of integrity enhancement feature of
SQL.
How to define integrity constraints using SQL.
How to use the integrity enhancement feature
in the CREATE and ALTER TABLE statements.
Pearson Education © 2014 2
Chapter 7 - Objectives
Purpose of views.
How to create and delete views using SQL.
How the DBMS performs operations on
views.
Under what conditions views are updatable.
Advantages and disadvantages of views.
How the ISO transaction model works.
How to use the GRANT and REVOKE
statements as a level of security.
Pearson Education © 2014 3
Data Definition
SQL DDL allows database objects such as
schemas, domains, tables, views, and indexes
to be created and destroyed.
Main SQL DDL statements are:
CREATE SCHEMA DROP SCHEMA
CREATE/ALTER DOMAIN DROP DOMAIN
CREATE/ALTER TABLE DROP TABLE
CREATE VIEWDROP VIEW
Many DBMSs also provide:
CREATE INDEX DROP INDEX
Pearson Education © 2014 4
Data Definition
• Relations and other database objects exist in
an environment.
• Each environment contains one or more
catalogs, and each catalog consists of set of
schemas.
• Schema is named collection of related
database objects.
• Objects in a schema can be tables, views,
domains, assertions, collations, translations,
and character sets. All have same owner.
Pearson Education © 2014 5
CREATE SCHEMA
CREATE SCHEMA [Name |
AUTHORIZATION CreatorId ]
DROP SCHEMA Name [RESTRICT | CASCADE ]
• With RESTRICT (default), schema must be
empty or operation fails.
• With CASCADE, operation cascades to drop
all objects associated with schema in order
defined above. If any of these operations
fail, DROP SCHEMA fails.
Pearson Education © 2014 6
CREATE TABLE
CREATE TABLE TableName (
{(colName dataType [NOT NULL] [UNIQUE]
[DEFAULT defaultOption]
[CHECK searchCondition] [,...]}
[PRIMARY KEY (listOfColumns),]
{[UNIQUE (listOfColumns),] […,]}
{[FOREIGN KEY (listOfFKColumns)
REFERENCES ParentTableName [(listOfCKColumns)],
[ON UPDATE referentialAction]
[ON DELETE referentialAction ]] [,…]}
{[CHECK (searchCondition)] [,…] });
Pearson Education © 2014 7
CREATE TABLE
• Creates a table with one or more columns of
the specified dataType.
• With NOT NULL, system rejects any attempt
to insert a null in the column.
• Can specify a DEFAULT value for the column.
• Primary keys should always be specified as
NOT NULL.
• FOREIGN KEY clause specifies FK along with
the referential action.
Pearson Education © 2014 8
Example 7.1 - CREATE TABLE
CREATE TABLE PropertyForRent (
propertyNo VARCHAR(5),
rooms SMALLINT,
rent DECIMAL (6,2),
ownerNo VARCHAR(5),
staffNo VARCHAR(5),
branchNo CHAR(4),
PRIMARY KEY (propertyNo),
FOREIGN KEY (staffNo) REFERENCES Staff);
Pearson Education © 2014 9
ISO SQL Data Types
Pearson Education © 2014 10
CHAR or VARCHAR
• Data to store ‘ABCD’
– CHAR(4) 4 bytes
– VARCHAR(4) 5-6 bytes (1-2 bytes eos)
– CHAR (200) 200 bytes
– VARCHAR(200) 5-6 bytes
• So, use CHAR for short, fixed length items (e.g.,
SSN)
– Get benefits of data type checking on insert
• If input string is too long, get error message
(STRICT SQL enabled) or truncation (STRICT not
enabled)
ENUMERATIONS
• In MySQL, (if invalid insert, ‘’ empty string is
inserted instead)
CREATE TABLE Beverages (
Name VARCHAR (20)
Price DECIMAL(4,2)
Size ENUM (‘venti’, ‘grande’, ‘tall’)
);
• In Oracle
–CREATE TABLE Beverages (
•Name VARCHAR (20)
•Price DECIMAL(4,2)
•Size VARCHAR (6) CHECK Size IN (‘venti’, ‘grande’, ‘tall’)
•);
Integrity Enhancement Feature
• Consider five types of integrity constraints:
– required data
– domain constraints
– entity integrity
– referential integrity
– general constraints.
Pearson Education © 2014 13
DECIMAL/NUMERIC
• DECIMAL (precision, scale)
– DECIMAL (5,2)
• 123 -> 123.00
• ~same as NUMERIC
• Too many digits prior to ‘.’
– Throws an error (e.g., 1234)
• Too many digits after ‘.’
– Truncates (e.g., 123.456 -> 123.45)
Integrity Enhancement Feature
Required Data
position VARCHAR(10) NOT NULL
Domain Constraints
(a)CHECK
student_type CHAR NOT NULL
CHECK (student_type IN (‘U’,
‘G’))
Pearson Education © 2014 15
Integrity Enhancement Feature
(b) CREATE DOMAIN
CREATE DOMAIN DomainName [AS] dataType
[DEFAULT defaultOption]
[CHECK (searchCondition)]
For example:
CREATE DOMAIN StudentType AS CHAR
CHECK (VALUE IN (‘U’, ‘G’));
In CREATE TABLE Student:
student_type StudentType NOT NULL
Pearson Education © 2014 16
Integrity Enhancement Feature
• searchCondition can involve a table lookup:
CREATE DOMAIN BranchNo AS CHAR(4)
CHECK (VALUE IN (SELECT branchNo
FROM Branch));
• Domains can be removed using DROP
DOMAIN:
DROP DOMAIN DomainName [RESTRICT|
CASCADE];
// RESTRICT: only if empty; CASCADE: drop column
Pearson Education © 2014 17
IEF - Entity Integrity
• Primary key of a table must contain a unique,
non-null value for each row.
• ISO standard supports FOREIGN KEY clause in
CREATE and ALTER TABLE statements:
PRIMARY KEY(staffNo)
PRIMARY KEY(clientNo, propertyNo)
• Can only have one PRIMARY KEY clause per
table. Can still ensure uniqueness for
alternate keys using UNIQUE:
UNIQUE(telNo)
Pearson Education © 2014 18
IEF - Referential Integrity
• FK is column or set of columns that links each
row in child table containing foreign FK to row
of parent table containing matching PK.
• Referential integrity means that, if FK contains
a value, that value must refer to existing row
in parent table.
• ISO standard supports definition of FKs with
FOREIGN KEY clause in CREATE and ALTER
TABLE:
FOREIGN KEY(branchNo) REFERENCES Branch
Pearson Education © 2014 19
IEF - Referential Integrity
• Any INSERT/UPDATE attempting to create FK
value in child table without matching CK value
in parent is rejected.
• Action taken when update/delete a CK value
in parent table with matching rows in child is
dependent on referential action specified
using ON UPDATE and ON DELETE subclauses:
– CASCADE
– SET NULL
– SET DEFAULT
– NO ACTION Pearson Education © 2014 20
IEF - Referential Integrity
CASCADE: Delete row from parent and delete
matching rows in child, and so on in cascading
manner.
SET NULL: Delete row from parent and set FK
column(s) in child to NULL.
SET DEFAULT: Delete row from parent and set
each component of FK in child to specified
default. Only valid if DEFAULT specified for FK
columns.
NO ACTION: Reject delete from parent. Default.
Pearson Education © 2014 21
IEF - Referential Integrity
FOREIGN KEY (staffNo) REFERENCES Staff
ON DELETE SET NULL
FOREIGN KEY (ownerNo) REFERENCES Owner
ON UPDATE CASCADE
Pearson Education © 2014 22
IEF - General Constraints
• Could use CHECK/UNIQUE in CREATE and
ALTER TABLE.
• Similar to the CHECK clause, also have:
CREATE ASSERTION AssertionName
CHECK (searchCondition)
Pearson Education © 2014 23
IEF - General Constraints
CREATE ASSERTION StaffNotHandlingTooMuch
CHECK (NOT EXISTS (SELECT staffNo
FROM PropertyForRent
GROUP BY staffNo
HAVING COUNT(*) >
100));
Pearson Education © 2014 24
Example 7.1 - CREATE TABLE
CREATE DOMAIN OwnerNumber AS VARCHAR(5)
CHECK (VALUE IN (SELECT ownerNo FROM PrivateOwner));
CREATE DOMAIN StaffNumber AS VARCHAR(5)
CHECK (VALUE IN (SELECT staffNo FROM Staff));
CREATE DOMAIN PNumber AS VARCHAR(5);
CREATE DOMAIN PRooms AS SMALLINT;
CHECK(VALUE BETWEEN 1 AND 15);
CREATE DOMAIN PRent AS DECIMAL(6,2)
CHECK(VALUE BETWEEN 0 AND 9999.99);
Pearson Education © 2014 25
Example 7.1 - CREATE TABLE
CREATE TABLE PropertyForRent (
propertyNo PNumber NOT NULL, ….
rooms PRoomsNOT NULL DEFAULT 4,
rent PRentNOT NULL, DEFAULT 600,
ownerNo OwnerNumber NOT NULL,
staffNo StaffNumber
Constraint StaffNotHandlingTooMuch ….
branchNo BranchNumber NOT NULL,
PRIMARY KEY (propertyNo),
FOREIGN KEY (staffNo) REFERENCES Staff
ON DELETE SET NULL ON UPDATE CASCADE ….);
Pearson Education © 2014 26
ALTER TABLE
• Add a new column to a table.
• Drop a column from a table.
• Add a new table constraint.
• Drop a table constraint.
• Set a default for a column.
• Drop a default for a column.
Pearson Education © 2014 27
Example 7.2(a) - ALTER TABLE
Change Staff table by removing default of
‘Assistant’ for position column and setting
default for sex column to female (‘F’).
ALTER TABLE Staff
ALTER position DROP DEFAULT;
ALTER TABLE Staff
ALTER gender SET DEFAULT ‘F’;
Pearson Education © 2014 28
Example 7.2(b) - ALTER TABLE
Remove constraint from PropertyForRent
that staff are not allowed to handle more
than 100 properties at a time. Add new
column to Client table.
ALTER TABLE PropertyForRent
DROP CONSTRAINT StaffNotHandlingTooMuch;
ALTER TABLE Client
ADD prefNoRooms PRooms;
Pearson Education © 2014 29
DROP TABLE
DROP TABLE TableName [RESTRICT | CASCADE]
e.g. DROP TABLE PropertyForRent;
• Removes named table and all rows within it.
• With RESTRICT, if any other objects depend for
their existence on continued existence of this
table, SQL does not allow request.
• With CASCADE, SQL drops all dependent
objects (and objects dependent on these
objects).
Pearson Education © 2014 30
Views
View
Dynamic result of one or more relational
operations operating on base relations to
produce another relation.
• Virtual relation that does not necessarily
actually exist in the database but is produced
upon request, at time of request.
Pearson Education © 2014 31
Views
• Contents of a view are defined as a query on
one or more base relations.
• With view resolution, any operations on view
are automatically translated into operations
on relations from which it is derived.
• With view materialization, the view is stored
as a temporary table, which is maintained as
the underlying base tables are updated.
Pearson Education © 2014 32
SQL - CREATE VIEW
CREATE VIEW ViewName [ (newColumnName [,...]) ]
AS subselect
[WITH [CASCADED | LOCAL] CHECK OPTION]
• Can assign a name to each column in view.
• If list of column names is specified, it must
have same number of items as number of
columns produced by subselect.
• If omitted, each column takes name of
corresponding column in subselect.
Pearson Education © 2014 33
SQL - CREATE VIEW
• List must be specified if there is any ambiguity
in a column name.
• The subselect is known as the defining query.
• WITH CHECK OPTION ensures that if a row
fails to satisfy WHERE clause of defining
query, it is not added to underlying base
table.
• Need SELECT privilege on all tables referenced
in subselect and USAGE privilege on any
domains used in referenced columns.
Pearson Education © 2014 34
Example 7.3 - Create Horizontal View
Create view so that manager at branch B003 can
only see details for staff who work in his or her
office.
“Horizontal” i.e., a subset of the rows
CREATE VIEW Manager3Staff
AS SELECT *
FROM Staff
WHERE branchNo = ‘B003’;
Pearson Education © 2014 35
Example 7.4 - Create Vertical View
Create view of staff details at branch B003
excluding salaries.
Subset of columns (also example of dependent
View);
CREATE VIEW Staff3Staff
AS SELECT staffNo, fName, lName, position, sex
FROM Manager3Staff;
Pearson Education © 2014
36
SQL - DROP VIEW
DROP VIEW ViewName [RESTRICT | CASCADE]
• Causes definition of view to be deleted from
database.
• For example:
DROP VIEW Manager3Staff RESTRICT;
- should not be allowed due to Staff3Staff;
DROP VIEW Manager3Staff; (Default: CASCADE?]
DROP VIEW Manager3Staff CASCADE;
- will also drop Staff3Staff;
Pearson Education © 2014 37
SQL - DROP VIEW
• With CASCADE, all related dependent objects
are deleted; i.e. any views defined on view
being dropped.
• With RESTRICT (default), if any other objects
depend for their existence on continued
existence of view being dropped, command is
rejected.
Pearson Education © 2014 38
SQL - DROP VIEW
DROP VIEW Manager3Staff;
- should drop Manager3Staff, leave Staff3Staff
DROP VIEW Manager3Staff RESTRICT;
- should not be allowed due to Staff3Staff;
DROP VIEW Manager3Staff CASCADE;
- will also drop Staff3Staff;
NOTE: In mysql, CASCADE/RESTRICT are parsed and
ignored:
https://dev.mysql.com/doc/refman/8.0/en/drop-view.html
Pearson Education © 2014 39
Example 7.5 - Grouped and Joined
Views
Create view of staff who manage properties
for rent, including branch number they work
at, staff number, and number of properties
they manage.
CREATE VIEW StaffPropCnt (branchNo, staffNo, cnt)
AS SELECT s.branchNo, s.staffNo, COUNT(*)
FROM Staff s, PropertyForRent p
WHERE s.staffNo = p.staffNo
GROUP BY s.branchNo, s.staffNo;
Pearson Education © 2014 40
Example 7.3 - Grouped and Joined
Views
Pearson Education © 2014 41
View Updatability
• All updates to base table reflected in all
views that encompass base table.
• Similarly, may expect that if view is updated
then base table(s) will reflect change.
Pearson Education © 2014 42
View Updatability
• However, consider again view StaffPropCnt.
• If we tried to insert record showing that at
branch B003, SG5 manages 2 properties:
INSERT INTO StaffPropCnt
VALUES (‘B003’, ‘SG5’, 2);
• Have to insert 2 records into
PropertyForRent showing which properties
SG5 manages. However, do not know which
properties they are; i.e. do not know primary
keys! So, this is not allowed.
Pearson Education © 2014 43
Updatable View
For view to be updatable, DBMS must be
able to trace any row or column back to its
row or column in the source table.
Pearson Education © 2014 44
Advantages of Views
• Data independence
• Currency
• Improved security
• Reduced complexity
• Convenience
• Customization
• Data integrity
Pearson Education © 2014 45
Disadvantages of Views
• Update restriction
• Structure restriction
• Performance
Pearson Education © 2014 46
View Materialization
• View resolution mechanism may be slow,
particularly if view is accessed frequently.
• View materialization stores view as
temporary table when view is first queried.
• Thereafter, queries based on materialized
view can be faster than recomputing view
each time.
• Difficulty is maintaining the currency of view
while base tables(s) are being updated.
Pearson Education © 2014 47
Access Control - Authorization Identifiers and
Ownership
• Authorization identifier is normal SQL
identifier used to establish identity of a user.
Usually has an associated password.
• Used to determine which objects user may
reference and what operations may be
performed on those objects.
• Each object created in SQL has an owner, as
defined in AUTHORIZATION clause of schema
to which object belongs.
• Owner is only person who may know about it.
Pearson Education © 2014 48
Privileges
• Actions user permitted to carry out on given
base table or view:
SELECT Retrieve data from a table.
INSERT Insert new rows into a table.
UPDATE Modify rows of data in a table.
DELETE Delete rows of data from a table.
REFERENCES Reference columns of named table
in integrity constraints.
USAGE Use domains, collations, character sets,
and translations.
Pearson Education © 2014 49
Privileges
• Can restrict INSERT/UPDATE/REFERENCES to
named columns.
• Owner of table must grant other users the
necessary privileges using GRANT statement.
• To create view, user must have SELECT
privilege on all tables that make up view and
REFERENCES privilege on the named columns.
Pearson Education © 2014 50
GRANT
GRANT {PrivilegeList | ALL PRIVILEGES}
ON ObjectName
TO {AuthorizationIdList | PUBLIC}
[WITH GRANT OPTION]
• PrivilegeList consists of one or more of above
privileges separated by commas.
• ALL PRIVILEGES grants all privileges to a user.
Pearson Education © 2014 51
GRANT
• PUBLIC allows access to be granted to all
present and future authorized users.
• ObjectName can be a base table, view,
domain, character set, collation or
translation.
• WITH GRANT OPTION allows privileges to be
passed on.
Pearson Education © 2014 52
Example 7.7/8 - GRANT
Give Manager full privileges to Staff table.
GRANT ALL PRIVILEGES
ON Staff
TO Manager WITH GRANT OPTION;
Give users Personnel and Director SELECT and
UPDATE on column salary of Staff.
GRANT SELECT, UPDATE (salary)
ON Staff
TO Personnel, Director;
Pearson Education © 2014 53
Example 7.9 - GRANT Specific Privileges to
PUBLIC
Give all users SELECT on Branch table.
GRANT SELECT
ON Branch
TO PUBLIC;
Pearson Education © 2014 54
REVOKE
• REVOKE takes away privileges granted with
GRANT.
REVOKE [GRANT OPTION FOR]
{PrivilegeList | ALL PRIVILEGES}
ON ObjectName
FROM {AuthorizationIdList | PUBLIC}
[RESTRICT | CASCADE]
• ALL PRIVILEGES refers to all privileges granted
to a user by user revoking privileges.
Pearson Education © 2014 55
Example 7.10/11 - REVOKE Specific
Privileges
Revoke privilege SELECT on Branch table from
all users.
REVOKE SELECT
ON Branch
FROM PUBLIC;
Revoke all privileges given to Director on Staff
table.
REVOKE ALL PRIVILEGES
ON Staff
FROM Director;
Pearson Education © 2014 56

More Related Content

Similar to Database management system chapter seven (20)

Structured Query Language for Data Management 2 Sructu.docx
Structured Query Language for Data Management      2 Sructu.docxStructured Query Language for Data Management      2 Sructu.docx
Structured Query Language for Data Management 2 Sructu.docx
johniemcm5zt
 
chap 9 dbms.ppt
chap 9 dbms.pptchap 9 dbms.ppt
chap 9 dbms.ppt
arjun431527
 
THE DATABASE LANGUAGE SQL (Cơ sở dữ liệu).pptx
THE DATABASE LANGUAGE SQL (Cơ sở dữ liệu).pptxTHE DATABASE LANGUAGE SQL (Cơ sở dữ liệu).pptx
THE DATABASE LANGUAGE SQL (Cơ sở dữ liệu).pptx
ssuser753fad1
 
Lecture-9-10-11-12(a-b).ppt modern database
Lecture-9-10-11-12(a-b).ppt modern databaseLecture-9-10-11-12(a-b).ppt modern database
Lecture-9-10-11-12(a-b).ppt modern database
mee23nu
 
MS SQL Server
MS SQL ServerMS SQL Server
MS SQL Server
Md. Mahedee Hasan
 
SQL.ppt
SQL.pptSQL.ppt
SQL.ppt
ManishKumarSamal
 
Sql tutorial
Sql tutorialSql tutorial
Sql tutorial
amitabros
 
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docxCharles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
christinemaritza
 
hoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppthoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppt
RishabhAgarwal383497
 
hoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppthoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppt
akamkhalidmohammed
 
SQLPpt.ppt
SQLPpt.pptSQLPpt.ppt
SQLPpt.ppt
MBKRAO1
 
hoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppthoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppt
Rick134121
 
hoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppthoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppt
AYESHABIBI83
 
SQLB1.ppt
SQLB1.pptSQLB1.ppt
SQLB1.ppt
AnshumanJadhav3
 
hoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppthoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppt
AnandKonj1
 
Les10
Les10Les10
Les10
Abrianto Nugraha
 
Sql server T-sql basics ppt-3
Sql server T-sql basics  ppt-3Sql server T-sql basics  ppt-3
Sql server T-sql basics ppt-3
Vibrant Technologies & Computers
 
01 basic orders
01   basic orders01   basic orders
01 basic orders
Soufiane Hakam
 
Les01 (retrieving data using the sql select statement)
Les01 (retrieving data using the sql select statement)Les01 (retrieving data using the sql select statement)
Les01 (retrieving data using the sql select statement)
Achmad Solichin
 
Les01
Les01Les01
Les01
Sudharsan S
 
Structured Query Language for Data Management 2 Sructu.docx
Structured Query Language for Data Management      2 Sructu.docxStructured Query Language for Data Management      2 Sructu.docx
Structured Query Language for Data Management 2 Sructu.docx
johniemcm5zt
 
THE DATABASE LANGUAGE SQL (Cơ sở dữ liệu).pptx
THE DATABASE LANGUAGE SQL (Cơ sở dữ liệu).pptxTHE DATABASE LANGUAGE SQL (Cơ sở dữ liệu).pptx
THE DATABASE LANGUAGE SQL (Cơ sở dữ liệu).pptx
ssuser753fad1
 
Lecture-9-10-11-12(a-b).ppt modern database
Lecture-9-10-11-12(a-b).ppt modern databaseLecture-9-10-11-12(a-b).ppt modern database
Lecture-9-10-11-12(a-b).ppt modern database
mee23nu
 
Sql tutorial
Sql tutorialSql tutorial
Sql tutorial
amitabros
 
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docxCharles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
christinemaritza
 
SQLPpt.ppt
SQLPpt.pptSQLPpt.ppt
SQLPpt.ppt
MBKRAO1
 
hoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppthoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppt
Rick134121
 
hoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppthoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppt
AYESHABIBI83
 
hoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppthoffer_edm_pp_ch06.ppt
hoffer_edm_pp_ch06.ppt
AnandKonj1
 
Les01 (retrieving data using the sql select statement)
Les01 (retrieving data using the sql select statement)Les01 (retrieving data using the sql select statement)
Les01 (retrieving data using the sql select statement)
Achmad Solichin
 

Recently uploaded (20)

Ethical Frameworks for Trustworthy AI – Opportunities for Researchers in Huma...
Ethical Frameworks for Trustworthy AI – Opportunities for Researchers in Huma...Ethical Frameworks for Trustworthy AI – Opportunities for Researchers in Huma...
Ethical Frameworks for Trustworthy AI – Opportunities for Researchers in Huma...
Karim Baïna
 
15 Benefits of Data Analytics in Business Growth.pdf
15 Benefits of Data Analytics in Business Growth.pdf15 Benefits of Data Analytics in Business Growth.pdf
15 Benefits of Data Analytics in Business Growth.pdf
AffinityCore
 
time_series_forecasting_constructor_uni.pptx
time_series_forecasting_constructor_uni.pptxtime_series_forecasting_constructor_uni.pptx
time_series_forecasting_constructor_uni.pptx
stefanopinto1113
 
Acounting Softwares Options & ERP system
Acounting Softwares Options & ERP systemAcounting Softwares Options & ERP system
Acounting Softwares Options & ERP system
huenkwan1214
 
Lec 11.pdfgghjuuyffhkiiiiuuiiiiiiuhffghjiu
Lec 11.pdfgghjuuyffhkiiiiuuiiiiiiuhffghjiuLec 11.pdfgghjuuyffhkiiiiuuiiiiiiuhffghjiu
Lec 11.pdfgghjuuyffhkiiiiuuiiiiiiuhffghjiu
saifalroby72
 
Glary Utilities Pro 5.157.0.183 Crack + Key Download [Latest]
Glary Utilities Pro 5.157.0.183 Crack + Key Download [Latest]Glary Utilities Pro 5.157.0.183 Crack + Key Download [Latest]
Glary Utilities Pro 5.157.0.183 Crack + Key Download [Latest]
Designer
 
Introduction to information about Data Structure.pptx
Introduction to information about Data Structure.pptxIntroduction to information about Data Structure.pptx
Introduction to information about Data Structure.pptx
tarrebulehora
 
The fundamental concept of nature of knowledge
The fundamental concept of nature of knowledgeThe fundamental concept of nature of knowledge
The fundamental concept of nature of knowledge
tarrebulehora
 
Veterinary Anatomy, The Regional Gross Anatomy of Domestic Animals (VetBooks....
Veterinary Anatomy, The Regional Gross Anatomy of Domestic Animals (VetBooks....Veterinary Anatomy, The Regional Gross Anatomy of Domestic Animals (VetBooks....
Veterinary Anatomy, The Regional Gross Anatomy of Domestic Animals (VetBooks....
JazmnAltamirano1
 
Geospatial Data_ Unlocking the Power for Smarter Urban Planning.docx
Geospatial Data_ Unlocking the Power for Smarter Urban Planning.docxGeospatial Data_ Unlocking the Power for Smarter Urban Planning.docx
Geospatial Data_ Unlocking the Power for Smarter Urban Planning.docx
sofiawilliams5966
 
STRABAG SE - Investor Presentation - February 2024.pdf
STRABAG SE - Investor Presentation - February 2024.pdfSTRABAG SE - Investor Presentation - February 2024.pdf
STRABAG SE - Investor Presentation - February 2024.pdf
andrianalampka
 
apidays New York 2025 - API Platform Survival Guide by James Higginbotham (La...
apidays New York 2025 - API Platform Survival Guide by James Higginbotham (La...apidays New York 2025 - API Platform Survival Guide by James Higginbotham (La...
apidays New York 2025 - API Platform Survival Guide by James Higginbotham (La...
apidays
 
Blue Dark Professional Geometric Business Project Presentation .pdf
Blue Dark Professional Geometric Business Project Presentation .pdfBlue Dark Professional Geometric Business Project Presentation .pdf
Blue Dark Professional Geometric Business Project Presentation .pdf
mohammadhaidarayoobi
 
BADS-MBA-Unit 1 that what data science and Interpretation
BADS-MBA-Unit 1 that what data science and InterpretationBADS-MBA-Unit 1 that what data science and Interpretation
BADS-MBA-Unit 1 that what data science and Interpretation
srishtisingh1813
 
Mastering Data Science: Unlocking Insights and Opportunities at Yale IT Skill...
Mastering Data Science: Unlocking Insights and Opportunities at Yale IT Skill...Mastering Data Science: Unlocking Insights and Opportunities at Yale IT Skill...
Mastering Data Science: Unlocking Insights and Opportunities at Yale IT Skill...
smrithimuralidas
 
Lec 12.pdfghhjjhhjkkkkkkkkkkkjfcvhiiugcvvh
Lec 12.pdfghhjjhhjkkkkkkkkkkkjfcvhiiugcvvhLec 12.pdfghhjjhhjkkkkkkkkkkkjfcvhiiugcvvh
Lec 12.pdfghhjjhhjkkkkkkkkkkkjfcvhiiugcvvh
saifalroby72
 
apidays New York 2025 - Agentic AI Future by Seena Ganesh (Staples)
apidays New York 2025 - Agentic AI Future by Seena Ganesh (Staples)apidays New York 2025 - Agentic AI Future by Seena Ganesh (Staples)
apidays New York 2025 - Agentic AI Future by Seena Ganesh (Staples)
apidays
 
Understanding Large Language Model Hallucinations: Exploring Causes, Detectio...
Understanding Large Language Model Hallucinations: Exploring Causes, Detectio...Understanding Large Language Model Hallucinations: Exploring Causes, Detectio...
Understanding Large Language Model Hallucinations: Exploring Causes, Detectio...
Tamanna36
 
apidays New York 2025 - AI for All by Ananya Upadhyay (United Rentals, Inc.)
apidays New York 2025 - AI for All by Ananya Upadhyay (United Rentals, Inc.)apidays New York 2025 - AI for All by Ananya Upadhyay (United Rentals, Inc.)
apidays New York 2025 - AI for All by Ananya Upadhyay (United Rentals, Inc.)
apidays
 
Cyber Security Presentation(Neon)xu.pptx
Cyber Security Presentation(Neon)xu.pptxCyber Security Presentation(Neon)xu.pptx
Cyber Security Presentation(Neon)xu.pptx
vilakshbhargava
 
Ethical Frameworks for Trustworthy AI – Opportunities for Researchers in Huma...
Ethical Frameworks for Trustworthy AI – Opportunities for Researchers in Huma...Ethical Frameworks for Trustworthy AI – Opportunities for Researchers in Huma...
Ethical Frameworks for Trustworthy AI – Opportunities for Researchers in Huma...
Karim Baïna
 
15 Benefits of Data Analytics in Business Growth.pdf
15 Benefits of Data Analytics in Business Growth.pdf15 Benefits of Data Analytics in Business Growth.pdf
15 Benefits of Data Analytics in Business Growth.pdf
AffinityCore
 
time_series_forecasting_constructor_uni.pptx
time_series_forecasting_constructor_uni.pptxtime_series_forecasting_constructor_uni.pptx
time_series_forecasting_constructor_uni.pptx
stefanopinto1113
 
Acounting Softwares Options & ERP system
Acounting Softwares Options & ERP systemAcounting Softwares Options & ERP system
Acounting Softwares Options & ERP system
huenkwan1214
 
Lec 11.pdfgghjuuyffhkiiiiuuiiiiiiuhffghjiu
Lec 11.pdfgghjuuyffhkiiiiuuiiiiiiuhffghjiuLec 11.pdfgghjuuyffhkiiiiuuiiiiiiuhffghjiu
Lec 11.pdfgghjuuyffhkiiiiuuiiiiiiuhffghjiu
saifalroby72
 
Glary Utilities Pro 5.157.0.183 Crack + Key Download [Latest]
Glary Utilities Pro 5.157.0.183 Crack + Key Download [Latest]Glary Utilities Pro 5.157.0.183 Crack + Key Download [Latest]
Glary Utilities Pro 5.157.0.183 Crack + Key Download [Latest]
Designer
 
Introduction to information about Data Structure.pptx
Introduction to information about Data Structure.pptxIntroduction to information about Data Structure.pptx
Introduction to information about Data Structure.pptx
tarrebulehora
 
The fundamental concept of nature of knowledge
The fundamental concept of nature of knowledgeThe fundamental concept of nature of knowledge
The fundamental concept of nature of knowledge
tarrebulehora
 
Veterinary Anatomy, The Regional Gross Anatomy of Domestic Animals (VetBooks....
Veterinary Anatomy, The Regional Gross Anatomy of Domestic Animals (VetBooks....Veterinary Anatomy, The Regional Gross Anatomy of Domestic Animals (VetBooks....
Veterinary Anatomy, The Regional Gross Anatomy of Domestic Animals (VetBooks....
JazmnAltamirano1
 
Geospatial Data_ Unlocking the Power for Smarter Urban Planning.docx
Geospatial Data_ Unlocking the Power for Smarter Urban Planning.docxGeospatial Data_ Unlocking the Power for Smarter Urban Planning.docx
Geospatial Data_ Unlocking the Power for Smarter Urban Planning.docx
sofiawilliams5966
 
STRABAG SE - Investor Presentation - February 2024.pdf
STRABAG SE - Investor Presentation - February 2024.pdfSTRABAG SE - Investor Presentation - February 2024.pdf
STRABAG SE - Investor Presentation - February 2024.pdf
andrianalampka
 
apidays New York 2025 - API Platform Survival Guide by James Higginbotham (La...
apidays New York 2025 - API Platform Survival Guide by James Higginbotham (La...apidays New York 2025 - API Platform Survival Guide by James Higginbotham (La...
apidays New York 2025 - API Platform Survival Guide by James Higginbotham (La...
apidays
 
Blue Dark Professional Geometric Business Project Presentation .pdf
Blue Dark Professional Geometric Business Project Presentation .pdfBlue Dark Professional Geometric Business Project Presentation .pdf
Blue Dark Professional Geometric Business Project Presentation .pdf
mohammadhaidarayoobi
 
BADS-MBA-Unit 1 that what data science and Interpretation
BADS-MBA-Unit 1 that what data science and InterpretationBADS-MBA-Unit 1 that what data science and Interpretation
BADS-MBA-Unit 1 that what data science and Interpretation
srishtisingh1813
 
Mastering Data Science: Unlocking Insights and Opportunities at Yale IT Skill...
Mastering Data Science: Unlocking Insights and Opportunities at Yale IT Skill...Mastering Data Science: Unlocking Insights and Opportunities at Yale IT Skill...
Mastering Data Science: Unlocking Insights and Opportunities at Yale IT Skill...
smrithimuralidas
 
Lec 12.pdfghhjjhhjkkkkkkkkkkkjfcvhiiugcvvh
Lec 12.pdfghhjjhhjkkkkkkkkkkkjfcvhiiugcvvhLec 12.pdfghhjjhhjkkkkkkkkkkkjfcvhiiugcvvh
Lec 12.pdfghhjjhhjkkkkkkkkkkkjfcvhiiugcvvh
saifalroby72
 
apidays New York 2025 - Agentic AI Future by Seena Ganesh (Staples)
apidays New York 2025 - Agentic AI Future by Seena Ganesh (Staples)apidays New York 2025 - Agentic AI Future by Seena Ganesh (Staples)
apidays New York 2025 - Agentic AI Future by Seena Ganesh (Staples)
apidays
 
Understanding Large Language Model Hallucinations: Exploring Causes, Detectio...
Understanding Large Language Model Hallucinations: Exploring Causes, Detectio...Understanding Large Language Model Hallucinations: Exploring Causes, Detectio...
Understanding Large Language Model Hallucinations: Exploring Causes, Detectio...
Tamanna36
 
apidays New York 2025 - AI for All by Ananya Upadhyay (United Rentals, Inc.)
apidays New York 2025 - AI for All by Ananya Upadhyay (United Rentals, Inc.)apidays New York 2025 - AI for All by Ananya Upadhyay (United Rentals, Inc.)
apidays New York 2025 - AI for All by Ananya Upadhyay (United Rentals, Inc.)
apidays
 
Cyber Security Presentation(Neon)xu.pptx
Cyber Security Presentation(Neon)xu.pptxCyber Security Presentation(Neon)xu.pptx
Cyber Security Presentation(Neon)xu.pptx
vilakshbhargava
 

Database management system chapter seven

  • 1. Chapter 7 SQL – Data Definition Pearson Education © 2014
  • 2. Chapter 7 - Objectives Data types supported by SQL standard. Purpose of integrity enhancement feature of SQL. How to define integrity constraints using SQL. How to use the integrity enhancement feature in the CREATE and ALTER TABLE statements. Pearson Education © 2014 2
  • 3. Chapter 7 - Objectives Purpose of views. How to create and delete views using SQL. How the DBMS performs operations on views. Under what conditions views are updatable. Advantages and disadvantages of views. How the ISO transaction model works. How to use the GRANT and REVOKE statements as a level of security. Pearson Education © 2014 3
  • 4. Data Definition SQL DDL allows database objects such as schemas, domains, tables, views, and indexes to be created and destroyed. Main SQL DDL statements are: CREATE SCHEMA DROP SCHEMA CREATE/ALTER DOMAIN DROP DOMAIN CREATE/ALTER TABLE DROP TABLE CREATE VIEWDROP VIEW Many DBMSs also provide: CREATE INDEX DROP INDEX Pearson Education © 2014 4
  • 5. Data Definition • Relations and other database objects exist in an environment. • Each environment contains one or more catalogs, and each catalog consists of set of schemas. • Schema is named collection of related database objects. • Objects in a schema can be tables, views, domains, assertions, collations, translations, and character sets. All have same owner. Pearson Education © 2014 5
  • 6. CREATE SCHEMA CREATE SCHEMA [Name | AUTHORIZATION CreatorId ] DROP SCHEMA Name [RESTRICT | CASCADE ] • With RESTRICT (default), schema must be empty or operation fails. • With CASCADE, operation cascades to drop all objects associated with schema in order defined above. If any of these operations fail, DROP SCHEMA fails. Pearson Education © 2014 6
  • 7. CREATE TABLE CREATE TABLE TableName ( {(colName dataType [NOT NULL] [UNIQUE] [DEFAULT defaultOption] [CHECK searchCondition] [,...]} [PRIMARY KEY (listOfColumns),] {[UNIQUE (listOfColumns),] […,]} {[FOREIGN KEY (listOfFKColumns) REFERENCES ParentTableName [(listOfCKColumns)], [ON UPDATE referentialAction] [ON DELETE referentialAction ]] [,…]} {[CHECK (searchCondition)] [,…] }); Pearson Education © 2014 7
  • 8. CREATE TABLE • Creates a table with one or more columns of the specified dataType. • With NOT NULL, system rejects any attempt to insert a null in the column. • Can specify a DEFAULT value for the column. • Primary keys should always be specified as NOT NULL. • FOREIGN KEY clause specifies FK along with the referential action. Pearson Education © 2014 8
  • 9. Example 7.1 - CREATE TABLE CREATE TABLE PropertyForRent ( propertyNo VARCHAR(5), rooms SMALLINT, rent DECIMAL (6,2), ownerNo VARCHAR(5), staffNo VARCHAR(5), branchNo CHAR(4), PRIMARY KEY (propertyNo), FOREIGN KEY (staffNo) REFERENCES Staff); Pearson Education © 2014 9
  • 10. ISO SQL Data Types Pearson Education © 2014 10
  • 11. CHAR or VARCHAR • Data to store ‘ABCD’ – CHAR(4) 4 bytes – VARCHAR(4) 5-6 bytes (1-2 bytes eos) – CHAR (200) 200 bytes – VARCHAR(200) 5-6 bytes • So, use CHAR for short, fixed length items (e.g., SSN) – Get benefits of data type checking on insert • If input string is too long, get error message (STRICT SQL enabled) or truncation (STRICT not enabled)
  • 12. ENUMERATIONS • In MySQL, (if invalid insert, ‘’ empty string is inserted instead) CREATE TABLE Beverages ( Name VARCHAR (20) Price DECIMAL(4,2) Size ENUM (‘venti’, ‘grande’, ‘tall’) ); • In Oracle –CREATE TABLE Beverages ( •Name VARCHAR (20) •Price DECIMAL(4,2) •Size VARCHAR (6) CHECK Size IN (‘venti’, ‘grande’, ‘tall’) •);
  • 13. Integrity Enhancement Feature • Consider five types of integrity constraints: – required data – domain constraints – entity integrity – referential integrity – general constraints. Pearson Education © 2014 13
  • 14. DECIMAL/NUMERIC • DECIMAL (precision, scale) – DECIMAL (5,2) • 123 -> 123.00 • ~same as NUMERIC • Too many digits prior to ‘.’ – Throws an error (e.g., 1234) • Too many digits after ‘.’ – Truncates (e.g., 123.456 -> 123.45)
  • 15. Integrity Enhancement Feature Required Data position VARCHAR(10) NOT NULL Domain Constraints (a)CHECK student_type CHAR NOT NULL CHECK (student_type IN (‘U’, ‘G’)) Pearson Education © 2014 15
  • 16. Integrity Enhancement Feature (b) CREATE DOMAIN CREATE DOMAIN DomainName [AS] dataType [DEFAULT defaultOption] [CHECK (searchCondition)] For example: CREATE DOMAIN StudentType AS CHAR CHECK (VALUE IN (‘U’, ‘G’)); In CREATE TABLE Student: student_type StudentType NOT NULL Pearson Education © 2014 16
  • 17. Integrity Enhancement Feature • searchCondition can involve a table lookup: CREATE DOMAIN BranchNo AS CHAR(4) CHECK (VALUE IN (SELECT branchNo FROM Branch)); • Domains can be removed using DROP DOMAIN: DROP DOMAIN DomainName [RESTRICT| CASCADE]; // RESTRICT: only if empty; CASCADE: drop column Pearson Education © 2014 17
  • 18. IEF - Entity Integrity • Primary key of a table must contain a unique, non-null value for each row. • ISO standard supports FOREIGN KEY clause in CREATE and ALTER TABLE statements: PRIMARY KEY(staffNo) PRIMARY KEY(clientNo, propertyNo) • Can only have one PRIMARY KEY clause per table. Can still ensure uniqueness for alternate keys using UNIQUE: UNIQUE(telNo) Pearson Education © 2014 18
  • 19. IEF - Referential Integrity • FK is column or set of columns that links each row in child table containing foreign FK to row of parent table containing matching PK. • Referential integrity means that, if FK contains a value, that value must refer to existing row in parent table. • ISO standard supports definition of FKs with FOREIGN KEY clause in CREATE and ALTER TABLE: FOREIGN KEY(branchNo) REFERENCES Branch Pearson Education © 2014 19
  • 20. IEF - Referential Integrity • Any INSERT/UPDATE attempting to create FK value in child table without matching CK value in parent is rejected. • Action taken when update/delete a CK value in parent table with matching rows in child is dependent on referential action specified using ON UPDATE and ON DELETE subclauses: – CASCADE – SET NULL – SET DEFAULT – NO ACTION Pearson Education © 2014 20
  • 21. IEF - Referential Integrity CASCADE: Delete row from parent and delete matching rows in child, and so on in cascading manner. SET NULL: Delete row from parent and set FK column(s) in child to NULL. SET DEFAULT: Delete row from parent and set each component of FK in child to specified default. Only valid if DEFAULT specified for FK columns. NO ACTION: Reject delete from parent. Default. Pearson Education © 2014 21
  • 22. IEF - Referential Integrity FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE SET NULL FOREIGN KEY (ownerNo) REFERENCES Owner ON UPDATE CASCADE Pearson Education © 2014 22
  • 23. IEF - General Constraints • Could use CHECK/UNIQUE in CREATE and ALTER TABLE. • Similar to the CHECK clause, also have: CREATE ASSERTION AssertionName CHECK (searchCondition) Pearson Education © 2014 23
  • 24. IEF - General Constraints CREATE ASSERTION StaffNotHandlingTooMuch CHECK (NOT EXISTS (SELECT staffNo FROM PropertyForRent GROUP BY staffNo HAVING COUNT(*) > 100)); Pearson Education © 2014 24
  • 25. Example 7.1 - CREATE TABLE CREATE DOMAIN OwnerNumber AS VARCHAR(5) CHECK (VALUE IN (SELECT ownerNo FROM PrivateOwner)); CREATE DOMAIN StaffNumber AS VARCHAR(5) CHECK (VALUE IN (SELECT staffNo FROM Staff)); CREATE DOMAIN PNumber AS VARCHAR(5); CREATE DOMAIN PRooms AS SMALLINT; CHECK(VALUE BETWEEN 1 AND 15); CREATE DOMAIN PRent AS DECIMAL(6,2) CHECK(VALUE BETWEEN 0 AND 9999.99); Pearson Education © 2014 25
  • 26. Example 7.1 - CREATE TABLE CREATE TABLE PropertyForRent ( propertyNo PNumber NOT NULL, …. rooms PRoomsNOT NULL DEFAULT 4, rent PRentNOT NULL, DEFAULT 600, ownerNo OwnerNumber NOT NULL, staffNo StaffNumber Constraint StaffNotHandlingTooMuch …. branchNo BranchNumber NOT NULL, PRIMARY KEY (propertyNo), FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE SET NULL ON UPDATE CASCADE ….); Pearson Education © 2014 26
  • 27. ALTER TABLE • Add a new column to a table. • Drop a column from a table. • Add a new table constraint. • Drop a table constraint. • Set a default for a column. • Drop a default for a column. Pearson Education © 2014 27
  • 28. Example 7.2(a) - ALTER TABLE Change Staff table by removing default of ‘Assistant’ for position column and setting default for sex column to female (‘F’). ALTER TABLE Staff ALTER position DROP DEFAULT; ALTER TABLE Staff ALTER gender SET DEFAULT ‘F’; Pearson Education © 2014 28
  • 29. Example 7.2(b) - ALTER TABLE Remove constraint from PropertyForRent that staff are not allowed to handle more than 100 properties at a time. Add new column to Client table. ALTER TABLE PropertyForRent DROP CONSTRAINT StaffNotHandlingTooMuch; ALTER TABLE Client ADD prefNoRooms PRooms; Pearson Education © 2014 29
  • 30. DROP TABLE DROP TABLE TableName [RESTRICT | CASCADE] e.g. DROP TABLE PropertyForRent; • Removes named table and all rows within it. • With RESTRICT, if any other objects depend for their existence on continued existence of this table, SQL does not allow request. • With CASCADE, SQL drops all dependent objects (and objects dependent on these objects). Pearson Education © 2014 30
  • 31. Views View Dynamic result of one or more relational operations operating on base relations to produce another relation. • Virtual relation that does not necessarily actually exist in the database but is produced upon request, at time of request. Pearson Education © 2014 31
  • 32. Views • Contents of a view are defined as a query on one or more base relations. • With view resolution, any operations on view are automatically translated into operations on relations from which it is derived. • With view materialization, the view is stored as a temporary table, which is maintained as the underlying base tables are updated. Pearson Education © 2014 32
  • 33. SQL - CREATE VIEW CREATE VIEW ViewName [ (newColumnName [,...]) ] AS subselect [WITH [CASCADED | LOCAL] CHECK OPTION] • Can assign a name to each column in view. • If list of column names is specified, it must have same number of items as number of columns produced by subselect. • If omitted, each column takes name of corresponding column in subselect. Pearson Education © 2014 33
  • 34. SQL - CREATE VIEW • List must be specified if there is any ambiguity in a column name. • The subselect is known as the defining query. • WITH CHECK OPTION ensures that if a row fails to satisfy WHERE clause of defining query, it is not added to underlying base table. • Need SELECT privilege on all tables referenced in subselect and USAGE privilege on any domains used in referenced columns. Pearson Education © 2014 34
  • 35. Example 7.3 - Create Horizontal View Create view so that manager at branch B003 can only see details for staff who work in his or her office. “Horizontal” i.e., a subset of the rows CREATE VIEW Manager3Staff AS SELECT * FROM Staff WHERE branchNo = ‘B003’; Pearson Education © 2014 35
  • 36. Example 7.4 - Create Vertical View Create view of staff details at branch B003 excluding salaries. Subset of columns (also example of dependent View); CREATE VIEW Staff3Staff AS SELECT staffNo, fName, lName, position, sex FROM Manager3Staff; Pearson Education © 2014 36
  • 37. SQL - DROP VIEW DROP VIEW ViewName [RESTRICT | CASCADE] • Causes definition of view to be deleted from database. • For example: DROP VIEW Manager3Staff RESTRICT; - should not be allowed due to Staff3Staff; DROP VIEW Manager3Staff; (Default: CASCADE?] DROP VIEW Manager3Staff CASCADE; - will also drop Staff3Staff; Pearson Education © 2014 37
  • 38. SQL - DROP VIEW • With CASCADE, all related dependent objects are deleted; i.e. any views defined on view being dropped. • With RESTRICT (default), if any other objects depend for their existence on continued existence of view being dropped, command is rejected. Pearson Education © 2014 38
  • 39. SQL - DROP VIEW DROP VIEW Manager3Staff; - should drop Manager3Staff, leave Staff3Staff DROP VIEW Manager3Staff RESTRICT; - should not be allowed due to Staff3Staff; DROP VIEW Manager3Staff CASCADE; - will also drop Staff3Staff; NOTE: In mysql, CASCADE/RESTRICT are parsed and ignored: https://dev.mysql.com/doc/refman/8.0/en/drop-view.html Pearson Education © 2014 39
  • 40. Example 7.5 - Grouped and Joined Views Create view of staff who manage properties for rent, including branch number they work at, staff number, and number of properties they manage. CREATE VIEW StaffPropCnt (branchNo, staffNo, cnt) AS SELECT s.branchNo, s.staffNo, COUNT(*) FROM Staff s, PropertyForRent p WHERE s.staffNo = p.staffNo GROUP BY s.branchNo, s.staffNo; Pearson Education © 2014 40
  • 41. Example 7.3 - Grouped and Joined Views Pearson Education © 2014 41
  • 42. View Updatability • All updates to base table reflected in all views that encompass base table. • Similarly, may expect that if view is updated then base table(s) will reflect change. Pearson Education © 2014 42
  • 43. View Updatability • However, consider again view StaffPropCnt. • If we tried to insert record showing that at branch B003, SG5 manages 2 properties: INSERT INTO StaffPropCnt VALUES (‘B003’, ‘SG5’, 2); • Have to insert 2 records into PropertyForRent showing which properties SG5 manages. However, do not know which properties they are; i.e. do not know primary keys! So, this is not allowed. Pearson Education © 2014 43
  • 44. Updatable View For view to be updatable, DBMS must be able to trace any row or column back to its row or column in the source table. Pearson Education © 2014 44
  • 45. Advantages of Views • Data independence • Currency • Improved security • Reduced complexity • Convenience • Customization • Data integrity Pearson Education © 2014 45
  • 46. Disadvantages of Views • Update restriction • Structure restriction • Performance Pearson Education © 2014 46
  • 47. View Materialization • View resolution mechanism may be slow, particularly if view is accessed frequently. • View materialization stores view as temporary table when view is first queried. • Thereafter, queries based on materialized view can be faster than recomputing view each time. • Difficulty is maintaining the currency of view while base tables(s) are being updated. Pearson Education © 2014 47
  • 48. Access Control - Authorization Identifiers and Ownership • Authorization identifier is normal SQL identifier used to establish identity of a user. Usually has an associated password. • Used to determine which objects user may reference and what operations may be performed on those objects. • Each object created in SQL has an owner, as defined in AUTHORIZATION clause of schema to which object belongs. • Owner is only person who may know about it. Pearson Education © 2014 48
  • 49. Privileges • Actions user permitted to carry out on given base table or view: SELECT Retrieve data from a table. INSERT Insert new rows into a table. UPDATE Modify rows of data in a table. DELETE Delete rows of data from a table. REFERENCES Reference columns of named table in integrity constraints. USAGE Use domains, collations, character sets, and translations. Pearson Education © 2014 49
  • 50. Privileges • Can restrict INSERT/UPDATE/REFERENCES to named columns. • Owner of table must grant other users the necessary privileges using GRANT statement. • To create view, user must have SELECT privilege on all tables that make up view and REFERENCES privilege on the named columns. Pearson Education © 2014 50
  • 51. GRANT GRANT {PrivilegeList | ALL PRIVILEGES} ON ObjectName TO {AuthorizationIdList | PUBLIC} [WITH GRANT OPTION] • PrivilegeList consists of one or more of above privileges separated by commas. • ALL PRIVILEGES grants all privileges to a user. Pearson Education © 2014 51
  • 52. GRANT • PUBLIC allows access to be granted to all present and future authorized users. • ObjectName can be a base table, view, domain, character set, collation or translation. • WITH GRANT OPTION allows privileges to be passed on. Pearson Education © 2014 52
  • 53. Example 7.7/8 - GRANT Give Manager full privileges to Staff table. GRANT ALL PRIVILEGES ON Staff TO Manager WITH GRANT OPTION; Give users Personnel and Director SELECT and UPDATE on column salary of Staff. GRANT SELECT, UPDATE (salary) ON Staff TO Personnel, Director; Pearson Education © 2014 53
  • 54. Example 7.9 - GRANT Specific Privileges to PUBLIC Give all users SELECT on Branch table. GRANT SELECT ON Branch TO PUBLIC; Pearson Education © 2014 54
  • 55. REVOKE • REVOKE takes away privileges granted with GRANT. REVOKE [GRANT OPTION FOR] {PrivilegeList | ALL PRIVILEGES} ON ObjectName FROM {AuthorizationIdList | PUBLIC} [RESTRICT | CASCADE] • ALL PRIVILEGES refers to all privileges granted to a user by user revoking privileges. Pearson Education © 2014 55
  • 56. Example 7.10/11 - REVOKE Specific Privileges Revoke privilege SELECT on Branch table from all users. REVOKE SELECT ON Branch FROM PUBLIC; Revoke all privileges given to Director on Staff table. REVOKE ALL PRIVILEGES ON Staff FROM Director; Pearson Education © 2014 56