0% found this document useful (0 votes)
24 views36 pages

Less07 Schema TB3

Uploaded by

Ani Ani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views36 pages

Less07 Schema TB3

Uploaded by

Ani Ani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 36

7

Managing Schema Objects

Copyright © 2005, Oracle. All rights reserved.


Objectives

After completing this lesson, you should be able to do


the following:
• Define schema objects and data types
• Create and modify tables
• Define constraints
• View the columns and contents of a table
• Create indexes
• Create views
• Create sequences
• Explain the use of temporary tables
• Use the data dictionary

7-2 Copyright © 2005, Oracle. All rights reserved.


> Schema
What Is a Schema? Constraints
Indexes
Views
Sequences
Temp Tables
Data Dict

owns

HR schema
HR user

7-3 Copyright © 2005, Oracle. All rights reserved.


Accessing Schema Objects

7-5 Copyright © 2005, Oracle. All rights reserved.


Naming Database Objects

• The length of names must be from 1 to 30 bytes,


with these exceptions:
– Names of databases are limited to 8 bytes.
– Names of database links can be as long as 128
bytes.
• Nonquoted names cannot be Oracle-reserved
words.
• Nonquoted names must begin with an alphabetic
character from your database character set.
• Quoted names are not recommended.

7-6 Copyright © 2005, Oracle. All rights reserved.


Specifying Data Types in Tables

Common data types:


• CHAR(size [BYTE|CHAR]): Fixed-length
character data of size bytes or characters
• VARCHAR2(size [BYTE|CHAR]): Variable-length
character string having a maximum length of size
bytes or characters
• DATE: Valid date ranging from January 1, 4712 B.C.
through A.D. December 31, 9999
• NUMBER(p,s): Number with precision p and
scale s

7-8 Copyright © 2005, Oracle. All rights reserved.


Creating and Modifying Tables

Specify the table


name and schema.

Specify the column names,


data types, and lengths.

7-11 Copyright © 2005, Oracle. All rights reserved.


Schema
Understanding Data Integrity > Constraints
Indexes
Views
Sequences
Temp Tables
Data Dict

JOB_HISTORY DEPARTMENTS LOCATIONS


EMPLOYEE_ID DEPARTMENT_ID (PK) LOCATION_ID (PK)
(PK,FK) EMPLOYEES DEPARTMENT_NAME STREET_ADDRESS
START_DATE (PK) EMPLOYEE_ID (PK) MANAGER_ID POSTAL_CODE
END_DATE FIRST_NAME LOCATION_ID (FK) CITY
JOB_ID (FK) LAST_NAME STATE_PROVINCE
DEPARTMENT_ID (FK) EMAIL COUNTRY_ID (FK)
PHONE_NUMBER
HIRE_DATE
JOB_ID (FK)
SALARY
COMMISION_PCT
MANAGER_ID (FK)
DEPARTMENT_ID (FK) COUNTRIES
COUNTRY_ID (PK)
JOBS COUNTRY_NAME
JOB_ID (PK) REGION_ID (FK)
JOB_TITLE
MIN_SALARY
MAX_SALARY

REGIONS
REGION_ID (PK)
REGION_NAME

7-13 Copyright © 2005, Oracle. All rights reserved.


Defining Constraints

7-15 Copyright © 2005, Oracle. All rights reserved.


Constraint Violations

Examples of how a constraint can be violated are:


• Inserting a duplicate primary key value
• Deleting the parent of a child row in a referential
integrity constraint
• Updating a column to a value that is out of the
bounds of a check constraint
ID AGE
101 … X …

22
49
–30
102 …
101
103 … … 16
… 5

7-16 Copyright © 2005, Oracle. All rights reserved.


Constraint States

DISABLE DISABLE ENABLE ENABLE


NOVALIDATE VALIDATE NOVALIDATE VALIDATE

No
DML

New data

Existing data

7-17 Copyright © 2005, Oracle. All rights reserved.


Constraint Checking

Constraints are checked at the time of:


• Statement execution, for nondeferred constraints
• COMMIT, for deferred constraints

Case: DML statement, followed by COMMIT

1 Nondeferred constraints
checked

2 COMMIT issued

3 Deferred constraints checked

4 COMMIT complete

7-19 Copyright © 2005, Oracle. All rights reserved.


Creating Constraints with SQL: Examples

ALTER TABLE countries


a
ADD (UNIQUE(country_name) ENABLE NOVALIDATE);

ALTER TABLE employees ADD CONSTRAINT pk PRIMARY KEY


b
(employee_id)

CREATE TABLE t1 (pk NUMBER PRIMARY KEY, fk NUMBER, c1 NUMBER,


c c2 NUMBER,
CONSTRAINT ri FOREIGN KEY (fk) REFERENCES t1, CONSTRAINT ck1
CHECK (pk > 0 and c1 > 0));

7-20 Copyright © 2005, Oracle. All rights reserved.


Viewing the Columns in a Table

7-21 Copyright © 2005, Oracle. All rights reserved.


Viewing the Contents of a Table

7-22 Copyright © 2005, Oracle. All rights reserved.


Actions with Tables

7-23 Copyright © 2005, Oracle. All rights reserved.


Dropping a Table

Dropping a table removes:


• Data
DROP TABLE hr.employees PURGE;
• Table structure
• Database triggers
• Corresponding indexes
• Associated object privileges
Optional clauses for the DROP TABLE statement:
• CASCADE CONSTRAINTS: Dependent referential
integrity constraints
• PURGE: No flashback possible

7-24 Copyright © 2005, Oracle. All rights reserved.


Truncating a Table

TRUNCATE TABLE hr.employees;

• Truncating a table makes its row data unavailable,


and optionally releases used space.
• Corresponding indexes are truncated.

7-25 Copyright © 2005, Oracle. All rights reserved.


Schema
Indexes Constraints
> Indexes
Views
Sequences
Temp Tables
Data Dict
… WHERE key = 22

Row
Key pointer

22

22

Index Table

7-26 Copyright © 2005, Oracle. All rights reserved.


Types of Indexes

These are several types of index structures available


to you, depending on the need:
• A B-tree index is in the form of a binary tree and is
the default index type.
• A bitmap index has a bitmap for each distinct
value indexed, and each bit position represents a
row that may or may not contain the indexed
value. This is best for low-cardinality columns.

7-27 Copyright © 2005, Oracle. All rights reserved.


B-Tree Index

Index entry

Root

Branch

Index entry header


Leaf Key column length
Key column value
ROWID

7-28 Copyright © 2005, Oracle. All rights reserved.


Bitmap Indexes

Table File 3
Block 10

Block 11

Index Block 12

Start End
Key ROWID ROWID Bitmap
<Blue, 10.0.3, 12.8.3, 1000100100010010100>
<Green, 10.0.3, 12.8.3, 0001010000100100000>
<Red, 10.0.3, 12.8.3, 0100000011000001001>
<Yellow, 10.0.3, 12.8.3, 0010001000001000010>

7-30 Copyright © 2005, Oracle. All rights reserved.


Index Options

• A unique index ensures that every indexed value


is unique.
• An index can have its key values stored in
ascending or descending order.
• A reverse key index has its key value bytes stored
in reverse order.
• A composite index is one that is based on more
than one column.
• A function-based index is an index based on a
function’s return value.
• A compressed index has repeated key values
removed.

7-32 Copyright © 2005, Oracle. All rights reserved.


Creating Indexes

CREATE INDEX my_index ON


employees(last_name, first_name);

7-34 Copyright © 2005, Oracle. All rights reserved.


Schema
What Is a View? Constraints
Indexes
> Views

LOCATION table

COUNTRY table
View

CREATE VIEW v AS SELECT location_id, country_name FROM


locations l, countries c
WHERE l.country_id = c.country_id AND c.country_id in
('AU','BR');

7-35 Copyright © 2005, Oracle. All rights reserved.


Creating Views

7-36 Copyright © 2005, Oracle. All rights reserved.


Schema
Sequences Constraints
Indexes
Views
> Sequences
Temp Tables
Data Dict
A sequence is a mechanism for automatically
generating integers that follow a pattern.
• A sequence has a name, which is 1
2
how it is referenced when the next 3
4
value is requested. 5

• A sequence is not associated with


any particular table or column.
• The progression can be ascending or
descending.
• The interval between numbers can be of any size.
• A sequence can cycle when a limit is reached.

7-37 Copyright © 2005, Oracle. All rights reserved.


Creating a Sequence

7-38 Copyright © 2005, Oracle. All rights reserved.


Using a Sequence

7-40 Copyright © 2005, Oracle. All rights reserved.


Schema
Temporary Tables Constraints
Indexes
Views
Sequences
> Temp Tables
Data Dict
A temporary table:
• Provides storage of data that is automatically
cleaned up when the session or transaction ends
• Provides private storage of data for each session
• Is available to all sessions for use without
affecting each other’s private data

7-41 Copyright © 2005, Oracle. All rights reserved.


Temporary Tables: Considerations

• Use the GLOBAL TEMPORARY clause to create


temporary tables:

CREATE GLOBAL TEMPORARY TABLE employees_temp


ON COMMIT PRESERVE ROWS
AS SELECT * FROM employees;

• Use the TRUNCATE TABLE command to delete the


contents of the table.
• You can create the following on temporary tables:
– Indexes
– Views
– Triggers

7-43 Copyright © 2005, Oracle. All rights reserved.


Schema
Data Dictionary: Overview Constraints
Indexes
Views
Sequences
Temp Tables
> Data Dict

Tables
Indexes
Views
Users
Schemas
Procedures
and so on

SELECT * FROM dictionary;

7-44 Copyright © 2005, Oracle. All rights reserved.


Data Dictionary Views

Who Can Contents Subset of Notes


Query
DBA_ DBA Everything N/A May have additional
columns meant for DBA
use only
ALL_ Everyone Everything DBA_ Includes user’s own
that the user views objects
has
privileges to
see
USER_ Everyone Everything ALL_ Is usually the same as
that the user views ALL_ except for the
owns missing OWNER column.
Some views have
abbreviated names as
PUBLIC synonyms.

7-45 Copyright © 2005, Oracle. All rights reserved.


Data Dictionary: Usage Examples

a SELECT table_name, tablespace_name FROM


user_tables;

SELECT sequence_name, min_value, max_value,


b increment_by FROM all_sequences WHERE
sequence_owner IN ('MDSYS','XDB');

c SELECT USERNAME, ACCOUNT_STATUS FROM


dba_users WHERE ACCOUNT_STATUS = 'OPEN';

d DESCRIBE dba_indexes;

7-47 Copyright © 2005, Oracle. All rights reserved.


Summary

In this lesson, you should have learned how to:


• Define schema objects and data types
• Create and modify tables
• Define constraints
• View the columns and contents of a table
• Create indexes
• Create views
• Create sequences
• Explain the use of temporary tables
• Use the data dictionary

7-48 Copyright © 2005, Oracle. All rights reserved.


Practice Overview:
Administering Schema Objects

This practice covers the following topics:


• Creating tables with columns
• Creating constraints:
– Primary Key
– Foreign Key
– Check constraint
• Creating indexes

7-49 Copyright © 2005, Oracle. All rights reserved.

You might also like