Download cos346day21

Document related concepts

IMDb wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Ingres (database) wikipedia , lookup

SQL wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Database wikipedia , lookup

Concurrency control wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

PL/SQL wikipedia , lookup

Clusterpoint wikipedia , lookup

Oracle Database wikipedia , lookup

ContactPoint wikipedia , lookup

Transcript
COS 346
Day 21
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-1
Agenda
• Assignment 9 Posted
– Due April 23
– 2 More to go
• Assignment 10 Posted
– Due April 26
– 1 more to go
• Quiz 2 Corrected
– 3 A’s, 2 B’s, 1 C and 1 D
– There will only be 3 exams (3 @ 10% instead of 4 @ 7.5%)
• Last Capstone Progress Reports Due April 26
• Today we will discuss
– Managing databases with Oracle
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-2
End of days? (subject to
change)
• April 19
– DP Chap 10
• April 23
– DP Chap 12
– SQL Chap 11
– Assignment 9 due
• April 26
– DP Chapter 13
– Assignment 10 due
• April 30
– DP Chap 14
• May 3
– DP Chap 15
– Review
– Assignment 11 Due
• May 9
– Quiz 3
– 10 AM
– Capstone presentations
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-3
David M. Kroenke’s
Database Processing:
Fundamentals, Design, and Implementation
Chapter Ten:
Managing Databases with
Oracle
Part One
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-4
Introduction
• Oracle is the world’s most popular DBMS - It is a
powerful and robust DBMS that runs on many different
operating systems
• Oracle DBMS engine available is several versions:
– The Personal Edition of Oracle is available with this text and
can also be downloaded from Oracle
• Example of Oracle products:
– SQL*Plus: a utility for processing SQL and creating components
like stored procedures and triggers:
• PL/SQL is a programming language that adds programming
constructs to the SQL language
– Oracle Developer (Forms & Reports Builder)
• Also third-party products - Quest Software’s TOAD
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-5
View Ridge Gallery
• View Ridge Gallery is a small art gallery that has
been in business for 30 years
• It sells contemporary European and
North American fine art
• View Ridge has one owner,
three salespeople, and two workers
• View Ridge owns all of the art that it sells;
it holds no items on a consignment basis
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-6
Application Requirements
• View Ridge application requirements:
– Track customers and their artist interests
– Record gallery's purchases
– Record customers' art purchases
– List the artists and works that have appeared
in the gallery
– Report how fast an artist's works have sold
and at what margin
– Show current inventory in a Web page
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-7
View Ridge Gallery Database Design
VRG-Answers.zip
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-8
Creating an Oracle Database
• Installing Oracle:
– Install Oracle 9i Client to use an already created
database
– Install Oracle 9i Personal Edition to create your own
databases
• Three ways to create an Oracle database:
– Via the Oracle Database Configuration Assistant
– Via the Oracle-supplied database creation procedures
– Via the SQL CREATE DATABASE command
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-9
Creating an Oracle Database:
The Oracle Database Configuration Assistant
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-10
SQL*Plus
• Oracle SQL*Plus or the Oracle Enterprise Manager
Console may be used to manage an Oracle database
• SQL*Plus is a text editor available in all Oracle
• Except inside quotation marks of strings, Oracle
commands are case-insensitive
• The semicolon (;) terminates a SQL statement
• The right-leaning slash (/) executes SQL statement
stored in Oracle buffer
• SQL*Plus can be used to:
– Enter SQL statements
– Submit SQL files created by text editors, e.g., notepad, to Oracle
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-11
SQL*Plus:
Logging In to an Oracle Database
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-12
SQL*Plus:
The SQL+Plus Window
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-13
SQL*Plus Buffer
• SQL*Plus keeps the current statements in
a multi-line buffer without executing it
• LIST is used to see the contents of the buffer:
– LIST {line_number} is used to change the current line
• CHANGE/astring/bstring/ is used to change the
contents of the current line:
– astring = the string you want to change
– bstring = what you want to change it to
• Example: change/Table_Name/*/
– ‘Table_Name’ is replaced with ‘*’
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-14
SQL*Plus Buffer
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-15
SQL*Plus LIST Command
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-16
SQL*Plus:
Changing a Line in the Buffer
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-17
Creating Tables
• Some of the SQL-92 CREATE TABLE statements we
have studied need to be modified for Oracle
– Oracle does not support a CASCADE UPDATE constraint
– Money or currency is defined in Oracle using the Numeric data
type
• Oracle sequences must be used for surrogate keys
• The DESCRIBE or DESC command is used to view
table status
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-18
Oracle Data Types
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-19
Oracle CREATE TABLE Statements
for the View Ridge Schema
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-20
Oracle CREATE TABLE Statements
for the View Ridge Schema
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-21
Oracle Sequences
• A sequence is an object that generates a sequential
series of unique numbers:
Create Sequence CustID Increment by 1 start with 1000;
• It is the best way to work with surrogate keys in Oracle
• Two sequence methods:
– NextVal provides the next value in a sequence.
– CurrVal provides the current value in a sequence.
• Using sequences does not guarantee valid surrogate key
values because it is possible to have missing, duplicate,
or wrong sequence value in the table
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-22
Using Sequences
• Creating a sequence:
CREATE SEQUENCE CustID INCREMENT BY 1 START WITH 1000;
• Entering data using a sequence:
INSERT INTO CUSTOMER
(CustomerID, Name, AreaCode, PhoneNumber)
VALUES(
CustID.NextVal, 'Mary Jones', '350', '555–1234');
• Retrieving the row just created:
SELECT
FROM
WHERE
*
CUSTOMER
CustomerID = CustID.CurrVal;
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-23
The DROP and ALTER Statements
• SQL DROP statements may be used to remove
structures from the database
– DROP TABLE Command:
• Any data in the MYTABLE table will be lost
DROP TABLE MyTable;
– DROP SEQUENCE Command:
DROP SEQUENCE MySequence;
• SQL ALTER statements may be used to drop (add) a
column:
ALTER TABLE MYTABLE DROP COLUMN MyColumn;
ALTER TABLE MYTABLE ADD C1 NUMBER(4);
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-24
The TO_DATE Function
• Oracle requires dates in a particular format.
• TO_DATE function may be used to identify the format:
TO_DATE('11/12/2002', 'MM/DD/YYYY')
• 11/12/2002 is the date value
• MM/DD/YYYY is the pattern to be used when interpreting the date
• The TO_DATE function can be used with the INSERT
and UPDATE statements to enter data:
INSERT INTO T1 VALUES(
100, TO_DATE ('01/05/02', 'DD/MM/YY');
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-25
Creating Indexes
• Indexes are created to:
– Enforce uniqueness on columns
– Facilitate sorting
– Enable fast retrieval by column values
• Good candidates for indexes are columns that
are frequently used with equal conditions in
WHERE clause or in a join
• Examples:
CREATE INDEX CustNameIdx ON CUSTOMER(Name);
CREATE UNIQUE INDEX WorkUniqueIndex ON
WORK(Title, Copy, ArtistID);
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-26
Restrictions On Column Modifications
• A column may be dropped at any time and all
data will be lost
• A column may be added at any time as long as it
is a NULL column
• To add a NOT NULL column:
– Add a NULL column
– Fill the new column in every row with data
– Change its structure to NOT NULL:
ALTER TABLE T1 MODIFY C1 NOT NULL;
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-27
Creating Views
• SQL-92 CREATE VIEW command can be used to create
views in Oracle
• Unlike SQL-92, Oracle allows the ORDER BY clause in
view definitions
• Oracle 9i and newer verions support the JOIN…ON
syntax
• Example:
CREATE VIEW CustomerInterests AS
SELECT C.Name as Customer, A.Name as Artist
FROM
CUSTOMER C JOIN CUSTOMER_ARTIST_INT I
ON
C.CustomerID = I.CustomerID JOIN ARTIST A
ON
I.ArtistID = A.ArtistID;
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-28
Oracle Enterprise Manager Console
• The Oracle Enterprise Manager Console
provides graphical facilities for managing
an Oracle database
• The utility can be used to manage:
– Database structures such as tables and views
– User accounts, passwords, roles, and
privileges
• The Manager Console includes a SQL
scratchpad for executing SQL statements
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-29
Oracle Enterprise Manager Console
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-30
Oracle Enterprise Manager Console:
ARTIST Columns and Properties
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-31
Oracle Enterprise Manager Console:
Displaying the CustomerInterests View
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-32
David M. Kroenke’s
Database Processing
Fundamentals, Design, and Implementation
(10th Edition)
End of Presentation:
Chapter Ten Part One
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-33
David M. Kroenke’s
Database Processing:
Fundamentals, Design, and Implementation
Chapter Ten:
Managing Databases with
Oracle
Part Two
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-34
Application Logic
• Oracle database application can be processed
using:
– Programming language to invoke Oracle DBMS
commands
– Stored procedures
– The SQL*Plus Start command to invoke database
commands stored in .sql files
– Triggers
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-35
Stored Procedures
• A stored procedure is a PL/SQL or Java program
stored within the database
• Stored procedures are programs that can:
–
–
–
–
Have parameters
Invoke other procedures and functions
Return values
Raise exceptions
• A stored procedure must be compiled and stored in the
database
• The Execute or Exec command is used to invoke a
stored procedure:
Exec Customer_Insert ('Michael Bench', '203',
'555-2014', 'US');
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-36
IN signifies
an input
parameter;
OUT
signifies an
output
parameter;
IN OUT is
used for
parameters
with both
functions
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
Variable are declared
after the keyword AS
10-37
Triggers
• An Oracle trigger is a PL/SQL or Java
procedures that is invoked when a specified
database activity occurs
• Triggers can be used to:
–
–
–
–
–
Set default values
Enforce a Data Constraint
Update a view
Enforce referential integrity action
Handle exceptions
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-38
Triggers
• Trigger types:
– A command trigger will be fired once per SQL
command
– A row trigger will be fired once for every row involved
in the processing of a SQL command:
• There are three types of row triggers: BEFORE, AFTER, and
INSTEAD OF
• BEFORE and AFTER triggers are placed on tables while
INSTEAD OF triggers are placed on views
• Each trigger can be fired on INSERT, UPDATE, or DELETE
commands
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-39
This is a
BEFORE trigger
on INSERT on
the table
TRANSACTION.
It is will set a
default value on
AskingPrice.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-40
Triggers:
Enforcing a Required Child Constraint
There is an M-M relationship between WORK and TRANSACTION:
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-41
Triggers:
Enforcing a Required Child Constraint
• The hard way
using two
triggers – this
one enforces
the required
child:
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-42
Triggers:
Enforcing a Required Child Constraint
• The hard way
using two
triggers – this
one deletes any
duplicate
transaction:
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-43
Triggers:
Enforcing a Required Child Constraint
A better way - Create the Work_Trans view:
CREATE VIEW
SELECT
FROM
ON
Work_Trans AS
Title, Description, Copy,
ArtistID, DateAcquired, AcquisitionPrice
WORK W JOIN TRANSACTION T
W.WorkID = T.WorkID;
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-44
Triggers:
Enforcing a Required Child Constraint
• A better way using one trigger – this one works
with the Work_Trans view:
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-45
The OracleData Dictionary
• Oracle maintains a data dictionary of metadata.
• The metadata of the dictionary itself are stored
in the table DICT:
SELECT Table_Name, Comments
FROM DICT
WHERE Table_Name LIKE ('%TABLES%');
• USER_TABLES contains information about user
or system tables:
DESC USER_TABLES;
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-46
Example Oracle Metadata
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-47
Concurrency Control
• Oracle processes database changes by maintaining a
System Change Number (SCN)
– SCN is a database-wide value that is incremented by Oracle
when database changes are made
• With SCN, SQL statements always read a consistent set
of values; those that were committed at or before the
time the statement was started
• Oracle only reads committed changes; it will never reads
dirty data
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-48
Oracle Transaction Isolation
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-49
Oracle Security
• Oracle security components:
– An ACCOUNT is a user account
– A PROFILE is a set of system resource maximums that are assigned to
an account
– A SYSTEM PRIVILEGE is the right to perform a task
– A ROLE consists of groups of PRIVILEGEs and other ROLEs
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-50
Account System Privileges
• Each ACCOUNT can be allocated many SYSTEM
PRIVILEGEs and many ROLEs
• An ACCOUNT has all the PRIVILEGEs:
– That have been assigned directly.
– Of all of its ROLEs
– Of all of its ROLEs that are inherited through ROLE connections
• A ROLE can have many SYSTEM PRIVILEGEs and it
may also have a relationship to other ROLEs
• ROLEs simplify the administration of the database:
– A set of privileges can be assigned to or removed from a ROLE
just once
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-51
Account System Privileges:
Privileges Granted to the System Account
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-52
Account Roles:
Roles Granted to the System Account
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-53
Account Authentication
• Accounts can be authenticated by:
– Passwords
– The host operating system
• Password management can be specified
via PROFILEs
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-54
Account Authentication:
Password Authentication
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-55
Account Authentication:
Password Management via a Profile
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-56
Oracle Recovery Facilities
• Three file types for Oracle recovery:
– Datafiles contain user and system data
– ReDo log files contain logs of database changes:
• OnLine ReDo files are maintained on disk and contain the
rollback segments from recent database changes
• Offline or Archive ReDo files are backups of the OnLine
ReDo files
– Control files describe the name, contents, and
locations of various files used by Oracle
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-57
Oracle Recovery Facilities
• Oracle can operate in either ARCHIVELOG or
NOARCHIVELOG mode:
– If running in ARCHIVELOG mode, Oracle logs all
changes to the database
– When the OnLine ReDo files fill up, they are copied to
the Archive ReDo files
• The Oracle Recovery Manager (RMAN) is a
utility program used to create backups and to
perform recovery.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-58
Types of Failure
• Oracle recovery techniques depend on the type of
failure:
– An application failure due to application logic errors
– An instance failure occurs when Oracle itself fails due to an
operating system or computer hardware failure
• Oracle can recover from application and instance failure
without using the archived log file
– A media failure occurs when Oracle is unable to write to a
physical file because of a disk failure or corrupted files
• The database is restored from a backup
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-59
Oracle Backup Facilities
• Two kinds of backups:
– A consistent backup: Database activity must be stopped and all
uncommitted changes have been removed from the datafiles
• Cannot be done if the database supports 24/7 operations
– An inconsistent backup: Backup is made while Oracle is
processing the database
• An inconsistent backup can be made consistent by processing an
archive log file
• http://www.oracle.com/technology/obe/obe10gdb/h
a/bar/bar.htm
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-60
David M. Kroenke’s
Database Processing
Fundamentals, Design, and Implementation
(10th Edition)
End of Presentation:
Chapter Ten Part Two
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
10-61