fundamentals, design, and implementation, 9/e chapter 10 managing databases with oracle 9i

34
Fundamentals, Design, and Implementation, 9/e Chapter 10 Managing Databases with Oracle 9i

Post on 20-Dec-2015

237 views

Category:

Documents


0 download

TRANSCRIPT

Fundamentals, Design, and Implementation, 9/e

Chapter 10Managing Databases with Oracle 9i

Chapter 10/2 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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: Personal Oracle and

Enterprise 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)– Oracle Designer

Chapter 10/3 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Chapter 10/4 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Chapter 10/5 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Example: SQL*Plus Prompt

Chapter 10/6 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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 ‘*’

Chapter 10/7 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Example: SQL*Plus Buffer

Chapter 10/8 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Creating Tables

Some of the SQL-92 CREATE TABLE statements need to be modified for Oracle– Oracle does not support a CASCADE UPDATE

constraint– Int data type is interpreted by Oracle as Number(38)– Varchar data type is interpreted as VarChar2– Money or currency is defined in Oracle using the

Numeric data type Oracle sequences must be used for surrogate

keys DESCRIBE or DESC command is used to view

table status

Chapter 10/9 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Oracle Data Types

Chapter 10/10 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Oracle Sequences

A sequence is an object that generates a sequential series of unique numbers

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

Chapter 10/11 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Example: Sequences

Creating sequenceCREATE SEQUENCE CustID INCREMENT BY 1 START

WITH 1000;

Entering data using sequenceINSERT INTO CUSTOMER

(CustomerID, Name, AreaCode, PhoneNumber)

VALUES (CustID.NextVal, ‘Mary Jones’, ‘350’, ‘555–1234);

Retrieving the row just created SELECT *

FROM CUSTOMER

WHERE CustomerID = CustID.CurrVal

Chapter 10/12 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

DROP and ALTER Statements

Drop statements may be used to remove structures from the database– DROP TABLE MYTABLE;

• Any data in the MYTABLE table will be lost

– DROP SEQUENCE MySequence;

ALTER statement may be used to drop (add) a column– ALTER TABLE MYTABLE DROP COLUMN MyColumn;– ALTER TABLE MYTABLE ADD C1 NUMBER(4);

Chapter 10/13 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

TO_DATE function can be used with the INSERT and UPDATE statement to enter data – INSERT INTO T1 VALUES (100, TO_DATE (‘01/05/02’,

‘DD/MM/YY’);

Chapter 10/14 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Example:– CREATE INDEX CustNameIdx ON CUSTOMER(Name);– CREATE UNIQUE INDEX WorkUniqueIndex ON

WORK(Title, Copy, ArtistID);

Chapter 10/15 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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;

Chapter 10/16 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Creating Views

SQL-92 CREATE VIEW command can be used to create views in SQL*Plus

Oracle allows the ORDER BY clause in view definitions

Only Oracle 9i supports 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;

Chapter 10/17 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Chapter 10/18 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Application Logic

Oracle database application can be processed using – Programming language to invoke Oracle DBMS

commands– Stored procedures– Start command to invoke database commands

stored in .sql files– Triggers

Chapter 10/19 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Execute or Exec command is used to invoke a stored procedure– Exec Customer_Insert (‘Michael Bench’, ‘203’, ‘555-2014’,

‘US’);

Chapter 10/20 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Example: Stored Procedure

Insert Figure 10-20 IN signifies input parameters OUT signifies an output parameter IN OUT signifies a parameter used for

both input and output Variables are declared after the

keyword AS

Chapter 10/21 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Triggers

Oracle triggers are PL/SQL or Java procedures that are invoked when specified database activity occurs

Triggers can be used to – Enforce a business rule– Set complex default values– Update a view– Perform a referential integrity action– Handle exceptions

Chapter 10/22 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Triggers (cont.)

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• 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

Chapter 10/23 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Data 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;

Chapter 10/24 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Example Oracle Metadata

Chapter 10/25 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Chapter 10/26 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Oracle Transaction Isolation

Oracle supports the following transaction isolation levels– Read Committed: Oracle’s default transaction

isolation level since it never reads uncommitted data changes

– Serializable: Dirty reads are not possible, repeated reads yield the same results, and phantoms are not possible

– Read Only: All statements read consistent data. No inserts, updates, or deletions are possible

– Explicit locks: Not recommended

Chapter 10/27 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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 PRIVILEGE is the right to perform a task– A ROLE consists of groups of PRIVILEGEs and other

ROLEs

Chapter 10/28 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Chapter 10/29 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Account Authentication

Accounts can be authenticated by – Password– The host operating system

Password management can be specified via PROFILEs

Chapter 10/30 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Chapter 10/31 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

Oracle Recovery Facilities (cont.) 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

Chapter 10/32 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Chapter 10/33 Copyright © 2004

Database Processing: Fundamentals, Design, and Implementation, 9/e by David M. Kroenke

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

Fundamentals, Design, and Implementation, 9/e

Chapter 10Managing Databases with Oracle 9i

Instructor: Dragomir R. Radev

Winter 2005