Download 10 - Text Summarization

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

IMDb wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Functional Database Model wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Ingres (database) wikipedia , lookup

Concurrency control wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

SQL wikipedia , lookup

Database wikipedia , lookup

Navitaire Inc v Easyjet Airline Co. and BulletProof Technologies, Inc. wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Clusterpoint wikipedia , lookup

ContactPoint wikipedia , lookup

PL/SQL wikipedia , lookup

Oracle Database wikipedia , lookup

Transcript
Chapter 10
Managing Databases with Oracle 9i
Fundamentals, Design,
and Implementation, 9/e
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/2
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/3
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/4
Example: SQL*Plus Prompt
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/5
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 ‘*’
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/6
Example: SQL*Plus Buffer
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/7
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/8
Oracle Data Types
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/9
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/10
Example: Sequences
 Creating sequence
CREATE SEQUENCE CustID INCREMENT BY 1 START
WITH 1000;
 Entering data using sequence
INSERT 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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/11
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);
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/12
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’);
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/13
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);
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/14
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;
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/15
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;
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/16
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/17
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/18
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’, ‘5552014’, ‘US’);
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/19
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/20
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/21
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/22
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;
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/23
Example Oracle Metadata
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/24
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/25
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/26
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/27
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/28
Account Authentication
 Accounts can be authenticated by
– Password
– The host operating system
 Password management can be
specified via PROFILEs
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/29
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/30
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/31
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/32
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
Copyright © 2004 Database Processing: Fundamentals, Design, and Implementation, 9/e
by David M. Kroenke
Chapter 10/33
Chapter 10
Managing Databases with Oracle 9i
Instructor: Dragomir R. Radev
Winter 2005
Fundamentals, Design,
and Implementation, 9/e