Tải bản đầy đủ (.pdf) (43 trang)

Đào tạo cơ bản về Oracle8i pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (515.68 KB, 43 trang )

C«ng ty FPT C27
Trung t©m gi¶i ph¸p phÇn mÒm Phßng 4








§μo t¹o c¬ b¶n vÒ Oracle8i
(A76965-01)























Hµ néi - 09/2001
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
2
Nội dung tài liệu
Giới thiệu về CSDL và hệ quản lý thông tin
Cấu trúc CSDL và quản lý không gian
Cấu trúc bộ nhớ và tiến trình
Mô hình quan hệ hớng đối tợng cho hệ quản trị CSDL
Truy cập dữ liệu đồng thời và tính nhất quán
Distributed Processing and Distributed Databases
Startup and Shutdown Operations
Bảo mật CSDL
Database Backup and Recovery
Truy nhập dữ liệu
Chi tiết về lệnh SQL


Chú ý:
Các thông tin trong tài liệu này liên quan đến cả Oracle8i và Oracle8i Enterprise
Edition. Một vài đặc tính và tuỳ chọn đợc mô tả ở đây chỉ có trong Oracle8i
Enterprise Edition. Xem tài liệu 'Getting to Know Oracle8i' để biết thêm về sự khác
biệt giữa Oracle8i và Oracle8i Enterprise Edition.







Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
3
Mục lục
Giới thiệu về CSDL và hệ quản lý thông tin 5
Oracle Server 6
Oracle Instance 6
Oracle Parallel Server, Hệ Thống Nhiều Instance (Multiple Instance System) 7
Cấu trúc CSDL và quản lý không gian 7
Cấu trúc Logic của CSDL 7
Tablespace 7
Lợc đồ (Schema) và đối tợng lợc đồ (Schema Object) 8
Khối dữ liệu, Extent, and Segment 8
Cấu trúc vật lý của CSDL 9
File dữ liệu (Datafile) 9
Các file Redo Log 10
Các file điều khiển (Control File) 10
Cấu trúc của ngôn ngữ truy vấn (SQL) 11
Các tiện ích dữ liệu (Data Utilitie) 11
Cấu trúc bộ nhớ và tiến trình 12
Cấu trúc bộ nhớ 12
Vùng dữ liệu dùng chung của hệ thống (System Global Area) 13
Vùng dùng chung cho chơng trình (PGA) 14
Cấu trúc tiến trình (Process Architecture) 14
Tiến trình User (Client) 15
Cấu trúc tiến trình Oracle (Oracle Process Architecture) 15
Các tiến trình ở Server (Server Processes) 15
Các tiến trình nền (Background Process) 15

Phần mềm giao tiếp và Net8 17
Giao diện chơng trình (The Program Interface) 18
Ví dụ hoạt động của Oracle 18
Mô hình quan hệ hớng đối tợng cho hệ quản trị CSDL 19
Mô hình quan hệ 19
Mô hình quan hệ hớng đối tợng 19
Lợc đồ (Schemas) & các đối tợng lợc đồ 20
Bảng 20
Views 20
View thực 21
Sequences 21
Đơn vị chơng trình 21
Synonyms 21
Indexes 22
Clusters and Hash Clusters 22
Dimensions 23
Database Links 24
Từ điển dữ liệu 24
Truy cập dữ liệu đồng thời và tính nhất quán 24
Truy cập đồng thời 25
Tính nhất quán 25
Read Consistency, Rollback Segments, and Transactions 25
Giao dịch chỉ đọc 26
Cơ chế khoá 26
Khoá tự động 26
Khoá do ngời sử dụng 27
Distributed Processing and Distributed Databases 27
Startup and Shutdown Operations 27
Bảo mật CSDL 27
Cơ chế bảo mật 28

Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
4
User và lợc đồ 28
Quyền 29
Roles 29
Hạn mức và tham số lu trữ 30
Profiles và giới hạn tài nguyên 31
Lu vết 31
Database Backup and Recovery 32
Truy nhập dữ liệu 32
Cấu trúc nhôn ngữ truy vấn SQL 32
Các câu lệnh SQL 32
Các giao dịch (Transaction) 33
Commit & Roll Back các giao dịch 34
Savepoints - Các điểm đánh dấu giao dịch 34
Sử dụng giao dịch để đảm bảo tính nhất quán của dữ liệu 34
PL/SQL 35
Các thủ tục và các hàm 35
Các gói (Package) 36
Những Trigger CSDL 36
Các phơng thức (Method) 36
Toàn vẹn dữ liệu (Data Integrity ) 36
Những ràng buộc toàn vẹn dữ liệu (Integrity Constraint) 37
Khoá (Key) 37
Trigger của CSDL 37
Chi tiết về lệnh SQL 38
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language (DDL)) 38
Lệnh tạo CSDL 38
Lệnh tạo bảng 38

Lệnh tạo VIEW 38
Lệnh tạo User 39
Lệnh xóa CSDL 39
Lệnh xóa một bảng 39
Lệnh xóa User của một CSDL 40
Các lệnh cấp và xóa quyền 40
Sửa đổi cấu trúc 41
Ngôn ngữ thao tác với dữ liệu (DML) 41
Các lệnh truy vấn 41
Các lệnh truy vấn lồng nhau 41
Các lệnh quản trị dữ liệu 42

Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
5
Giới thiệu về CSDL v hệ quản lý thông tin
Máy chủ CSDL giữ vị trí then chốt trong việc giải quyết các vấn đề của hệ quản lý
thông tin. Sever phải quản lý một cách tin cậy khối lợng lớn dữ liệu trong môi trờng
nhiều ngời dùng giúp User có thể truy nhập đồng thời cùng một dữ liệu. Các thao tác
phải hoàn thành với hiệu năng cao nhất. CSDL Server cũng phải ngăn chặn đợc các
truy nhập bất hợp pháp và cung cấp giải pháp phục hồi dữ liệu hiệu quả khi có lỗi.

Những đặc trng của Oracle Server

Môi trờng
client/Server
(xử lý phân tán)
Để tận dụng đợc tối đa lợi ích của hệ thống máy tính hay hệ
thống mạng, Oracle cho phép phân chia việc xử lý giữa máy chủ
và chơng trình ứng dụng ở máy trạm. Máy tính chạy

HQTCSDL chịu trách nhiệm xử lý các yêu cầu nhiệm vụ của
máy chủ trong khi các máy trạm chạy ứng dụng tập trung vào
việc hiển thị dữ liệu
Cơ sở dữ liệu lớn
quản lý không gian
trống
Oracle hỗ trợ lớn nhất về CSDL bao gồm nhiều terabyte dữ liệu.
Sử dụng hiệu quả các thiết bị phần cứng đắt tiền, Oracle cho
phép tận dụng tốt các không gian trống.
Nhiều User kết nối
đồng thời vào
CSDL
Oracle hỗ trợ số lợng lớn ngời sử dụng đồng thời kết nối và
thao tác trên cùng một dữ liệu, giảm tối đa sự tranh chấp dữ liệu.
Khả năng kết nối Phần mềm của Oracle hỗ trợ nhiều kiểu máy tính và hệ điều
hành khác nhau, chúng cùng chia sẻ thông tin trên mạng.
Thực hiện và xử lý
các giao dịch
nhanh
Oracle đảm bảo hỗ trợ đầy đủ các tính năng của phiên bản trớc
với hiệu năng tổng thể cao. Ngời sử dụng CSDL không phải
chịu đựng tốc độ xử lý chậm chạp.
Tính sẵn sàng cao Tại một số nơi, Oracle phải làm việc liên tục 24 giờ/ngày. Các
thao tác thông thờng của Hệ điều hành nh sao lu dữ liệu và
khi một vài thành phần của hệ thống bị lỗi không làm gián đoạn
CSDL đang sử dụng
Khả năng điều
khiển đợc tính
sẵn sàng của hệ
thống

ở mức cơ sở dữ liệu và mức CSDL con, Oracle có thể điều khiển
tính sẵn sàng của dữ liệu. Ví dụ nh ngời quản trị không cho
phép sử dụng một phần của ứng dụng CSDL để nạp lại dữ liệu
mà không ảnh hởng đến các phần ứng dụng khác
Chuẩn mở

Oracle áp dụng các chuẩn công nghiệp cho ngôn ngữ truy nhập
dữ liệu, hệ điều hành, giao diện ngời sử dụng và nghi thức giao
tiếp mạng. Điều đó bảo vệ đợc đầu t ban đầu của khách hàng.
Oracle cũng hỗ trợ chuẩn SNMP trong quản trị hệ thống. Giao
thức này cho phép ngời quản trị hệ thống quản lý một hệ thống
phức hợp bằng một giao diện chung đơn giản
Bảo mật có điều
khiển
Nhằm tránh những truy nhập và sử dụng trái phép đối với CSDL,
Oracle cung cấp các tính năng an toàn bảo mật để giới hạn và
theo dõi truy nhập dữ liệu. Các tính năng này làm cho việc quản
lý trở nên dễ dàng ngay cả trong hầu hết các trờng hợp thiết kế
truy cập dữ liệu phức tạp.
Toàn vẹn CSDL

Oracle buộc dữ liệu phải toàn vẹn, kiểm tra chuẩn cho dữ liệu.
Điều này giảm chi phí cho việc lập trình trong nhiều ứng dụng.
Tính khả chuyển Phần mềm Oracle làm việc với nhiều hệ điều hành khác nhau.
Những ứng dụng phát triển với Oracle có thể chuyển sang bất cứ
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
6
hệ điều hành nào mà không cần sửa hoặc chỉ sửa chút ít.
Tính tơng thích Phần mềm Oracle tơng thích với nhiều chuẩn công nghiệp, bao

gồm cả các chuẩn công nghiệp của các hệ điều hành. Những ứng
dụng phát triển với Oracle có thể sử dụng trên bất kì hệ thống
nào mà không cần sửa hoặc chỉ sửa chút ít.
Hệ thống phân tán Với mạng máy tính, môi trờng phân tán, Oracle kết hợp dữ liệu
vật lý trên các máy khác nhau vào một CSDL logic để có thể
truy nhập đợc từ tất cả những ngời dùng trong mạng. Hệ
thống phân tán cũng đợc sử dụng một cách trong suốt với đầy
đủ các u thế tơng tự nh hệ thống đơn lẻ.
Oracle cũng cho phép lựa chọn giúp những User có thể truy
nhập vào dữ liệu của những CSDL ngoài Oracle
Nhân bản dữ liệu Phần mềm Oracle giúp nhân bản nhóm các bảng và những đối
tợng hỗ trợ của nó đến nhiều nơi. Oracle hỗ trợ nhân bản cả
những thay đổi ở mức dữ liệu cũng nh mức schema. Công nghệ
nhân bản mềm dẻo của Oracle hỗ trợ cả phơng thức nhân bản
cơ bản với một CSDL chủ cũng nh phơng thức nhân bản với
mô hình động và dùng chung.


Phần sau đây giới thiệu tổng quan các kiến trúc của Oracle.

Oracle Server

Oracle server là hệ quản trị CSDL quan hệ hớng đối tợng cung cấp môi trờng mở,
toàn diện và tích hợp tiếp cận tới hệ thông tin quản lý. Oracle server bao gồm CSDL
Oracle và Oracle server instance.

Oracle Instance
Mỗi khi CSDL khởi động, hệ thống sẽ cấp không gian cho SGA, tiến trình nền của
Oracle đợc khởi động. SGA là vùng bộ nhớ sử dụng cho những thông tin dùng chung
giữa các phiên làm việc của ngời sử dụng. Tổ hợp giữa các tiến trình này với vùng

nhớ đệm đợc gọi là Oracle instance.

Có hai kiểu tiến trình của Oracle instance: Tiến trình của ngời sử dụng và tiến trình
của Oracle.

Tiến trình của ngời sử dụng: Thực hiện các lệnh của chơng trình ứng dụng (ví dụ:
ứng dụng Oracle Forms) hay của các công cụ Oracle (ví dụ: Oracle Enterprise
Manager).

Tiến trình của Oracle là tiến trình của Server thực hiện các công việc phục vụ cho tiến
trình của ngời sử dụng và các tiến trình nền của Oracle nhằm duy trì hoạt động cho
Server.

Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
7
Oracle Parallel Server, Hệ Thống Nhiều Instance (Multiple Instance
System)


Chú ý:
Oracle Parallel Server chỉ có trong Oracle8i Enterprise Edition


Một số những kiến trúc phần cứng (ví dụ nh: Hệ thống đĩa dùng chung) cho phép
nhiều máy tính cùng chia sẻ dữ liệu, phần mềm hay các thiết bị ngoại vi. Oracle với
lựa chọn Parallel Server tận dụng đợc lợi thế của kiến trúc bằng cách chạy nhiều
instance và cùng chia sẻ một CSDL vật lý. Trong một số ứng dụng thích hợp, Oracle
Parallel Server cho phép nhiều ngời dùng truy nhập vào một CSDL đơn từ nhiều máy
trạm với hiệu suất cao.


Cấu trúc CSDL v quản lý không gian
CSDL Oracle là tập hợp các đơn vị dữ liệu. Mục đích của CSDL là lu trữ và truy vấn
các thông tin liên quan với nhau. CSDL có cấu trúc vật lý và cấu trúc logic riêng biệt
do vậy lu trữ vật lý của dữ liệu có thể đợc quản lý mà không cần truy nhập vào cấu
trúc logic

Cấu trúc Logic của CSDL
Cấu trúc logic của CSDL Oracle bao gồm: Các bảng Tablespace, các đối tợng
schema, các khối dữ liệu, các extent và các segment.
Tablespace
CSDL đợc chia thành những đơn vị lu trữ logic đợc gọi là các tablespace, nó nhóm
các cấu trúc logic có liên quan vào với nhau. Ví dụ: những Tablespace thông thờng
nhóm các đối tợng ứng dụng với nhau nhằm đơn giản hoá cho việc quản trị.
CSDL, Tablespaces, v các file dữ liệu (Datafiles)
Quan hệ giữa databases, tablespaces, và datafiles đợc minh hoạ ở hình 1.1.
Hình 1-1 CSDL, Tablespaces và file dữ liệu


Hình này minh hoạ những điều sau:
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
8
Mỗi CSDL là đợc phân chia một cách logic thành một hay nhiều Tablespace.
Một hay nhiều datafile đợc tạo cho mỗi tablespace nhằm lu trữ vật lý dữ liệu của
tất cả các cấu trúc logic trong tablespace.
Tổ hợp kích thớc của các datafile trong tablespace là toàn bộ dung lợng của
tablespace (tablespace SYSTEM có dung lợng 2 MB trong khi tablespace của
USERS có 4 MB).
Tổ hợp dung lợng của các tablespaces trong CSDL là toàn bộ dung lợng lu trữ

của CSDL (6 MB).

Tablespace trực tuyến (online) v không trực tuyến (offline)
Tablespace có thể trực tuyến (truy nhập đợc) hay không trực tuyến (không truy nhập
đợc). Thông thờng thì Tablespace là trực tuyến cho phép User truy cập thông tin
trong Tablespace. Tuy nhiên, đôi khi Tablespace không trực tuyến nhằm làm cho một
phần CSDL không hoạt động để bảo trì sửa chữa trong khi các phần khác vần tiếp tục
làm việc. Điều đó làm cho công việc quản trị đợc dễ dàng.

Lợc đồ (Schema) v đối tợng lợc đồ (Schema Object)
Schema là tập các đối tợng cơ sở dữ liệu. Các đối tợng Schema là những cấu trúc
logic tham chiếu trực tiếp tới dữ liệu trong CSDL. Các đối tợng schema bao gồm các
bảng, các view, các sequence, các stored procedure, các synonym, các index, các
cluster và các database link.



Chú ý:
Không có liên quan gì giữa tablespace và lợc đồ (schema), các đối tợng trong cùng
một schema có thể ở trong những tablespace khác nhau, và tablespace có thể chứa các
đối tợng từ những schema khác

Khối dữ liệu, Extent, and Segment
Oracle cho phép điều khiển tối u không gian đĩa cứng thông qua cấu trúc logic bao
gồm: các khối dữ liệu (Data block), các extent và các segment.

Các khối dữ liệu trong Oracle (Oracle Data Block)
Là mức nhỏ nhất của không gian CSDL logic, dữ liệu trong CSDL Oracle đợc lu trữ
trong các khối dữ liệu. Mỗi khối đợc ấn định một kích thớc cụ thể theo byte của
không gian CSDL vật lý trên đĩa. Kích thớc mỗi khối đợc chỉ ra cho mỗi CSDL

Oracle ngay từ khi khi khởi tạo CSDL. CSDL sử dụng và cấp phát các khoảng trống
theo đơn vị là Data Block.
Extent
Mức tiếp theo của không gian CSDL logic đợc gọi là extent. Extent chứa một số cố
định của các khối dữ liệu liên tiếp, đợc sử dụng toàn bộ trong một lần cấp phát, sử
dụng để lu trữ những kiểu thông tin xác định trớc.
Segments
Mức tiếp theo của extent đợc gọi là segment. Segment là tập các extent đợc cấp phát
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
9
cho một cấu trúc logic nào đó. Ví dụ có 4 kiểu segment khác nhau gồm:
segment dữ
liệu
Mỗi bảng không phân nhóm có một data segment. Tất cả các dữ liệu
trong bảng đó đợc lu trữ trong các extent của chính segment dữ
liệu đó. Đối với các bảng đợc phân vùng thì mỗi phân vùng có một
segment dữ liệu riêng.
Mỗi cluster có một segment dữ liệu. Dữ liệu của tất cả các bảng
trong Cluster đợc lu trữ trong segment dữ liệu của cluster đó.
segment chỉ số Mỗi index có một segment chỉ số lu trữ mọi dữ liệu của nó. Đối với
các chỉ số đợc phân vùng, mỗi phân vùng có một segment cho nó.
rollback
segment
Ngời quản trị CSDL tạo một hoặc vài rollback segments để lu trữ
các thông tin tạm thời
Thông tin trong rollback segment đợc sử dụng:
Tạo dựng thông tin nhằm đảm bảo tính nhất quán cho CSDL
Phục hồi CSDL
Khôi phục lại trạng thái ban đầu của những giao dich cha hoàn

thành
Segment tạm
thời
Segment tạm thời đợc tạo bởi Oracle khi câu lệnh SQL cần vùng
làm việc tạm thời để hoàn thành công việc. Khi hoàn thành câu lệnh
thì hệ thống lại giải phóng các không gian này.

Oracle cấp phát thêm không gian khi extent hiện thời của segment bị đầy. Khi đó
Oracle cấp phát thêm extent khác cho segment đó theo yêu cầu, những extent này có
thể nằm kề nhau trên đĩa hoặc không.

Cấu trúc vật lý của CSDL
Phần sau đây sẽ giải thích cấu trúc vật lý của CSDL Oracle, bao gồm những file dữ
liệu, các file redo log, và những file điều khiển
File dữ liệu (Datafile)
Mỗi CSDL Oracle có một hay nhiều file dữ liệu (vật lý). Các file dữ liệu bao gồm mọi
dữ liệu trong CSDL, dữ liệu của cấu trúc logíc: Các bảng (table), các chỉ mục (index)
đợc lu trữ vật lý trong các file dữ liệu của CSDL

Đặc tính của các file dữ liệu là:
File dữ liệu chỉ có thể thuộc một CSDL
File dữ liệu có tập các thuộc tính cho phép chúng tự động mở rộng ra khi CSDL
hết không gian lu trữ
Một hay nhiều file dữ liệu hình thành một đơn vị lu trữ logic đợc gọi là
tablespace nh đã thảo luận ở chơng trớc

Sử dụng file dữ liệu
Dữ liệu trong file dữ liệu đợc đọc khi cần thiết trong quá trình thao tác với CSDL và
lu trữ trong vùng nhớ đệm của Oracle. Ví dụ: Giả sử rằng User muốn truy nhập vào
một số dữ liệu trong bảng của CSDL. Nếu thông tin cần thiết không có sẵn trong vùng

nhớ đệm của CSDL thì nó sẽ đợc đọc từ file dữ liệu thích hợp và lu trữ trong đó.

Sửa đổi hay tạo mới dữ liệu cha cần thiết phải ghi ngay vào file dữ liệu. Để giảm khối
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
10
lợng truy nhập đĩa và tăng hiệu năng, dữ liệu đợc lu tạm vào trong một vùng nhớ
và ghi vào file dữ liệu thích hợp cùng một lần thông qua tiến trình DBWn của Oracle.
Các file Redo Log

Mọi CSDL Oracle có tập hợp gồm hai hay nhiều file redo log. Mỗi redo log đợc cấu
thành từ nhiều bản ghi redo, mỗi bản ghi này là một nhóm vector các thay đổi miêu tả
mỗi một thay đổi của CSDL.

Chức năng chính của redo log là ghi nhận mọi sự thay đổi của dữ liệu. Trong trờng
hợp xảy ra lỗi nó sẽ tránh không cho ghi trực tiếp dữ liệu này vào các file CSDL,
chúng sẽ đợc phục hồi bằng cách đọc lại thông tin ban đầu từ redo log file và sẽ
không bị mất thông tin.

Các file Redo log rất quan trọng trong việc bảo vệ CSDL khỏi lỗi. Để ngăn ngừa
những lỗi với chính redo log, Oracle cho phép sử dụng nhiều redo log, do vậy hai hay
nhiều bản sao của redo log có thể đợc duy trì ở trên những đĩa cứng khác nhau.

Sử dụng các file Redo Log
Các thông tin trong file redo log chỉ đợc sử dụng để phục hồi CSDL từ một hệ thống
hoặc thiết bị bị lỗi tránh ghi những dữ liệu lỗi vào file dữ liệu trong CSDL.

Ví dụ: Nếu nh điện bị mất trong khi ta thao tác trong CSDL, dữ liệu cha kịp ghi từ
bộ nhớ vào các file dữ liệu và dữ liệu bị mất. Tuy nhiên dữ liệu mất có thể đợc phục
hồi khi có điện. Bằng cách cập nhật các thông tin trong các file redo log vào file dữ

liệu trong CSDL, Oracle khôi phục lại trạng thái CSDL tại thời điểm bị mất điện.

Quá trình cập nhật nh trên đợc gọi là phục hồi.

Các file điều khiển (Control File)
Mọi CSDL Oracle đều có một file điều khiển, file điều khiển chứa các điểm vào, nó
chỉ ra cấu trúc vật lý của CSDL. Ví dụ: nó chứa các kiểu thông tin sau:
Tên CSDL
Tên và vị trí của các file dữ liệu và các file redo log
Dấu thời gian của CSDL khi đợc tạo
Giống nh redo log, Oracle cho phép sử dụng nhiều file điều khiển để bảo vệ chúng.

Sử dụng các file điều khiển
Mỗi khi khởi động một instance của CSDL, các file điều khiển của nó đợc sử dụng
để xác định CSDL và các file redo log cần phải mở để làm việc. Nếu nh cấu trúc vật
lý của CSDL bị thay đổi (ví dụ nh: File dữ liệu mới hay các file redo log đợc tạo) thì
các file điều khiển tự động thay đổi tơng xứng với những sự thay đổi đó.

File điều khiển cũng đợc sử dụng, nếu nh việc hồi phục CSDL là cần thiết

Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
11
Cấu trúc của ngôn ngữ truy vấn (SQL)
SQL là ngôn ngữ lập trình dùng để định nghĩa và thao tác với CSDL. CSDL SQL là
CSDL quan hệ, có nghĩa là dữ liệu đợc lu trữ trong tập các quan hệ. CSDL có thể có
một hay nhiều bảng, mỗi bảng bao gồm các cột với các hàng.

Ta có thể định nghĩa và thao tác với dữ liệu trong bảng bằng các câu lệnh SQL, sử
dụng các câu lệnh DDL để định nghĩa dữ liệu. Các câu lệnh DDL bao gồm những câu

lệnh tạo, thay thế CSDL và các bảng

Có thể cập nhật, xoá hay lấy dữ liệu trong bảng bằng các câu lệnh DML. Các câu lệnh
DML bao gồm câu lệnh: cập nhật và lấy dữ liệu. Câu lệnh SQL hay đợc sử dụng
nhất là câu lệnh SELECT cho phép ta lấy dữ liệu từ bảng.

Cùng với các câu lệnh SQL, Oracle Server có ngôn ngữ hớng thủ tục đợc gọi là
PL/SQL cho phép lập trình viên có thể lập trình với những câu lệnh SQL, điều khiển
các luồng chơng trình SQL, sử dụng các biến nhớ hay xây dựng các thủ tục xử lý lỗi.

Các tiện ích dữ liệu (Data Utilitie)
Có ba tiện ích di chuyển tập con của CSDL Oracle từ CSDL này sang CSDL khác đó
là: Export, Import, and SQL*Loader.

Export
Tiện ích Export cung cấp cách đơn giản giúp bạn chuyển dữ liệu giữa các CSDL
Oracle ngay cả với những nền tảng hệ thống khác nhau. Export đa ra những định
nghĩa đối tợng và dữ liệu bảng từ CSDL Oracle và lu chúng đa vào dạng file nhị
phân đặt trên đĩa hay trên băng từ.

Các file có thể đợc sao lại qua FTP hay truyền thông vật lý (ví dụ đĩa từ) tới một số vị
trí khác, sau đó sử dụng tiện ích import cập nhật các file đó vào CSDL mới. Dùng
phơng thức này để truyền dữ liệu giữa các CSDL không đợc nối mạng cũng nh
backup

Khi bạn chạy Export với CSDL Oracle, nó đa ra các đối tợng nh là các bảng và các
đối tợng liên quan sau đó ghi vào các file dump.

Import
Tiện ích Import chèn các đối tợng dữ liệu lấy từ một CSDL Oracle khác bởi tiện ích

Export vào CSDL Oracle. Các file dump chỉ đợc sử dụng bởi tiện ích Import.

Import đọc các định nghĩa đối tợng và dữ liệu bảng mà tiện ích Export ghi vào từ
CSDL Oracle và lu dới dạng các file nhị phân đặt trên đĩa hay đĩa từ

Tiện ích Export và Import cũng có thể sử dụng nh một chức năng nhân bản dữ liệu
của Oracle trong trờng hợp offline.

SQL*Loader
Các file dump chỉ có thể đợc đọc với tiện ích Import. Nếu cần phải đọc dữ liệu từ các
tệp dạng text với các cột đã đợc định dạng, bạn có thể sử dụng tiện ích SQL*Loader.
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
12
SQL*Loader tải dữ liệu từ các tệp bên ngoài vào các bảng trong CSDL Oracle,
SQL*Loader chấp nhận dữ liệu vào với nhiều định dạng khác nhau, có thể lọc dữ liệu
dựa vào giá trị dữ liệu, và có thể tải dữ liệu vào nhiều bảng khác nhau trong CSDL
Oracle cùng một phiên làm việc.

Cấu trúc bộ nhớ v tiến trình
Phần này ta tập trung vào thảo luận cấu trúc bộ nhớ và tiến trình của Oracle Server để
quản lý CSDL. Cùng với nhiều thứ khác, các đặc trng kiến trúc đợc thảo luận trong
phần này cung cấp những hiểu biết cơ bản về khả năng của Oracle để hỗ trợ:
Nhiều ngời sử dụng đồng thời truy nhập vào một CSDL
Nhiều ngời sử dụng cùng một lúc, nhiều ứng dụng hoạt động đồng thời đòi hỏi hệ
thống phải có hiệu năng cao

Oracle server sử dụng các cấu trúc bộ nhớ và tiến trình nhằm quản lý và truy nhập
CSDL. Mọi cấu trúc bộ nhớ hiện hữu trong bộ nhớ chính của máy tính tạo thành hệ
thống CSDL


Tiến trình là các công việc hay nhiệm vụ đang đợc thực hiện trong bộ nhớ của máy
tính

Hình 1-2 đa ra một hô hình thờng gặp của các cấu trúc bộ nhớ và những tiến trình
của Oracle Server

Cấu trúc bộ nhớ
Oracle tạo và sử dụng các cấu trúc bộ nhớ để hoàn thành một số công việc. Ví dụ nh:
Phần bộ nhớ lu mã chơng trình đang đợc thực hiện và dữ liệu đợc chia sẻ giữa các
user. Hai cấu trúc cơ bản của Oracle là: vùng dữ liệu dùng chung của hệ thống (bao
gồm các vùng nhớ đệm của CSDL, các vùng nhớ đệm của redo log, và vùng chia sẻ
thông tin) và vùng dùng chung của chơng trình. Sau đây là các mô tả chi tiết:
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
13
Figure 1-2 Memory Structures and Processes of Oracle


Vùng dữ liệu dùng chung của hệ thống (System Global Area)
System Global Area (SGA) đợc chia sẻ vùng nhớ bao gồm dữ liệu và các thông tin
điều khiển cho một instance của Oracle, SGA và các tiến trình nền của Oracle cấu
thành nên instance của Oracle

Oracle cấp phát SGA khi instance bắt đầu và giải phóng nó khi kết thúc instance. Mỗi
instance đều có SGA riêng của nó.

User hiện thời kết nối vào Oracle server chia sẻ dữ liệu trong SGA. Để có đợc hiệu
năng tốt nhất, SGA đợc cấp phát với kích thớc lớn nhất có thể đợc để lu đợc
nhiều nhất dữ liệu trong bộ nhớ và giảm tối thiểu truy nhập đĩa cứng.


Thông tin lu trữ trong SGA đợc phận loại thành vài kiểu cấu trúc bộ nhớ bao gồm
bộ nhớ đệm CSDL, bộ nhớ đệm redo log và vùng chia sẻ. Những vùng này có kích
thớc cố định và đợc tạo ngay khi instance bắt đầu.

Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
14
Bộ nhớ đệm Cache của CSDL
Các vùng nhớ đệm CSDL của SGA lu trữ các khối dữ liệu đợc sử dụng gần nhất của
dữ liệu, tập hợp các vùng nhớ đệm của CSDL trong một instance là vùng nhớ đệm truy
cập nhanh của CSDL. Vùng nhớ đệm truy cập nhanh lu giữ các khối dữ liệu bị thay
đổi cũng nh cha đợc thay đổi. Vì các khối dữ liệu mới nhất cũng nh hay đợc
dùng nhất đợc lu giữ trong bộ nhớ nên giảm đợc thao tác truy cập đĩa cứng và nhờ
đó cải thiện đợc hiệu năng của hệ thống.
Bộ nhớ đệm Redo Log
Bộ nhớ đệm của redo log đợc lu trữ khi có sự thay đổi CSDL. Các bản ghi trong
redo log lu trữ trên bộ nhớ đệm và đợc ghi trực tiếp vào file redo log, nó đợc sử
dụng khi cần phục hồi dữ liệu ban đầu. Kích thớc của nó là cố định.

Vùng dùng chung (Shared Pool )
Vùng dùng chung là một phần của SGA bao gồm những cấu trúc bộ nhớ dùng chung
kiểu nh là vùng dùng chung cho lệnh SQL. Vùng dùng chung cho lệnh SQL cần thiết
khi xử lý mọi câu lệnh SQL riêng rẽ gửi tới CSDL. Nó còn bao gồm những thông tin
nh là phân tích cây, kế hoạch thực hiện các câu lệnh tơng ứng. Một vùng dùng
chung cho lệnh SQL đợc sử dụng bởi nhiều chơng trình ứng dụng đang yêu cầu xử
lý cùng một câu lệnh, để dành lại nhiều bộ nhớ hơn cho mục đích khác.

Vùng đệm lớn (Large Pool)
Vùng đệm lớn là một vùng tuỳ chọn trong SGA cung cấp vùng nhớ lớn cho việc thực

hiện công việc backup và khôi phục, các tiến trình vào/ra của máy chủ và vùng bộ nhớ
cho các phiên của máy chủ đa luồng

Các thẻ điều khiển lệnh (Statement Handle) hay con trỏ (Cursor)
Con trỏ là một thẻ điều khiển cho vùng nhớ liên quan tới câu lệnh cụ thể (Oracle Call
Interface - OCI tham chiếu tới nh một thẻ điều khiển câu lệnh). Mặc dù hầu hết
ngời dùng đều tin vào khả năng điều khiển con trỏ một cách tự động của Oracle, giao
diện lập trình vẫn hỗ trợ ngời thiết kế chơng trình tự điều khiển các con trỏ.

Ví dụ: Trong bộ tiền biên dịch phát triển ứng dụng, con trỏ là một tài nguyên có tên
gọi sẵn sàng để sử dụng trong chơng trình và có thể đợc sử dụng riêng cho việc
phân tích câu lệnh SQL nhúng trong ứng dụng. Ngời lập trình có thể viết mã lệnh cho
ứng dụng điều khiển từng bớc thực hiện câu lệnh SQL và nhờ đó cải thiện đợc hiệu
năng chơng trình.

Vùng dùng chung cho chơng trình (PGA)
PGA là vùng nhớ đệm bao gồm dữ liệu và các thông tin điều khiển cho những tiến
trình trên server. PGA đợc tạo bởi Oracle khi tiến trình server đợc bắt đầu. Thông
tin trong PGA phụ thuộc vào cấu hình của Oracle

Cấu trúc tiến trình (Process Architecture)
Tiến trình là một "luồng điều khiển", nó là một cơ chế trong hệ điều hành cho phép
thực hiện đợc hàng loạt các bớc. Một số HĐH sử dụng các thuật ngữ công việc (job)
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
14
Bộ nhớ đệm Cache của CSDL
Các vùng nhớ đệm CSDL của SGA lu trữ các khối dữ liệu đợc sử dụng gần nhất của
dữ liệu, tập hợp các vùng nhớ đệm của CSDL trong một instance là vùng nhớ đệm truy
cập nhanh của CSDL. Vùng nhớ đệm truy cập nhanh lu giữ các khối dữ liệu bị thay

đổi cũng nh cha đợc thay đổi. Vì các khối dữ liệu mới nhất cũng nh hay đợc
dùng nhất đợc lu giữ trong bộ nhớ nên giảm đợc thao tác truy cập đĩa cứng và nhờ
đó cải thiện đợc hiệu năng của hệ thống.
Bộ nhớ đệm Redo Log
Bộ nhớ đệm của redo log đợc lu trữ khi có sự thay đổi CSDL. Các bản ghi trong
redo log lu trữ trên bộ nhớ đệm và đợc ghi trực tiếp vào file redo log, nó đợc sử
dụng khi cần phục hồi dữ liệu ban đầu. Kích thớc của nó là cố định.

Vùng dùng chung (Shared Pool )
Vùng dùng chung là một phần của SGA bao gồm những cấu trúc bộ nhớ dùng chung
kiểu nh là vùng dùng chung cho lệnh SQL. Vùng dùng chung cho lệnh SQL cần thiết
khi xử lý mọi câu lệnh SQL riêng rẽ gửi tới CSDL. Nó còn bao gồm những thông tin
nh là phân tích cây, kế hoạch thực hiện các câu lệnh tơng ứng. Một vùng dùng
chung cho lệnh SQL đợc sử dụng bởi nhiều chơng trình ứng dụng đang yêu cầu xử
lý cùng một câu lệnh, để dành lại nhiều bộ nhớ hơn cho mục đích khác.

Vùng đệm lớn (Large Pool)
Vùng đệm lớn là một vùng tuỳ chọn trong SGA cung cấp vùng nhớ lớn cho việc thực
hiện công việc backup và khôi phục, các tiến trình vào/ra của máy chủ và vùng bộ nhớ
cho các phiên của máy chủ đa luồng

Các thẻ điều khiển lệnh (Statement Handle) hay con trỏ (Cursor)
Con trỏ là một thẻ điều khiển cho vùng nhớ liên quan tới câu lệnh cụ thể (Oracle Call
Interface - OCI tham chiếu tới nh một thẻ điều khiển câu lệnh). Mặc dù hầu hết
ngời dùng đều tin vào khả năng điều khiển con trỏ một cách tự động của Oracle, giao
diện lập trình vẫn hỗ trợ ngời thiết kế chơng trình tự điều khiển các con trỏ.

Ví dụ: Trong bộ tiền biên dịch phát triển ứng dụng, con trỏ là một tài nguyên có tên
gọi sẵn sàng để sử dụng trong chơng trình và có thể đợc sử dụng riêng cho việc
phân tích câu lệnh SQL nhúng trong ứng dụng. Ngời lập trình có thể viết mã lệnh cho

ứng dụng điều khiển từng bớc thực hiện câu lệnh SQL và nhờ đó cải thiện đợc hiệu
năng chơng trình.

Vùng dùng chung cho chơng trình (PGA)
PGA là vùng nhớ đệm bao gồm dữ liệu và các thông tin điều khiển cho những tiến
trình trên server. PGA đợc tạo bởi Oracle khi tiến trình server đợc bắt đầu. Thông
tin trong PGA phụ thuộc vào cấu hình của Oracle

Cấu trúc tiến trình (Process Architecture)
Tiến trình là một "luồng điều khiển", nó là một cơ chế trong hệ điều hành cho phép
thực hiện đợc hàng loạt các bớc. Một số HĐH sử dụng các thuật ngữ công việc (job)
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
15
hay nhiệm vụ (task). Tiến trình thông thờng tự quản lý một vùng nhớ riêng mà nó
chạy trong đó.

Oracle server có hai kiểu chính: Tiến trình user và tiến trình Server
Tiến trình User (Client)
Tiến trình user đợc tạo ra và duy trì nhằm thực hiện các mã lệnh của chơng trình
ứng dụng (kiểu nh Pro*C/C++) hay công cụ của Oracle (nh là Oracle Enterprise
Manager). Tiến trình user cũng quản lý giao tiếp với các tiến trình server

Tiến trình user giao tiếp với tiến trình server qua giao diện chơng trình, đợc mô tả ở
phần dới

Cấu trúc tiến trình Oracle (Oracle Process Architecture)
Các tiến trình Oracle đợc gọi bởi các tiến trình khác để thực hiện các chức năng thay
cho các tiến trình đã gọi nó. Các kiểu khác của tiến trình Oracle cùng với các chức
năng của nó đợc thảo luận trong phần sau. Chúng bao gồm tiến trình Server và tiến

trình nền

Các tiến trình ở Server (Server Processes)
Oracle khởi tạo các tiến trình server để xử lý các yêu cầu từ các tiến trình user. Tiến
trình server phụ trách việc giao tiếp với các tiến trình của User và Oracle để thực hiện
các yêu cầu. Ví dụ: nếu nh user truy vấn một số dữ liệu mà nó không có sẵn trong
những bộ nhớ đệm CSDL của SGA, tiến trình server liên quan sẽ đọc khối dữ liệu cần
thiết từ các file dữ liệu vào SGA.

Oracle có thể đợc cấu hình cho phù hợp với số tiến trình của user trên một tiến trình
Server. Trong cấu hình server dành riêng, một tiến trình server điều khiển các yêu cầu
cho một tiến trình của user. Trong khi cấu hình server đa luồng lại cho phép nhiều tiến
trình của user chia sẻ một số lợng nhỏ các tiến trình của server, giảm thiểu số lợng
các tiến trình của server và tăng tối đa khả năng phục vụ của tài nguyên hệ thống hiện
có.

ở một số hệ thống, tiến trình user và tiến trình của Server là riêng biệt trong khi ở một
số hệ thống khác chúng hợp nhất vào một tiến trình đơn. Nếu nh hệ thống sử dụng
cấu hình Server đa luồng hoặc nếu nh tiến trình user và tiến trình server chạy trên các
máy khác nhau thì chúng cần phải tách biệt. Các hệ thống Client/Server tách riêng tiến
trình server và tiến trình user, thực hiện chúng trên những máy khác nhau

Các tiến trình nền (Background Process)
Oracle tạo tập các tiến trình nền cho mỗi instance. Chúng hợp nhất các chức năng
đáng ra sẽ đợc thực hiện bởi nhiều chơng trình ứng dụng của Oracle chạy cho mỗi
tiến trình user. Các tiến trình nền không thực hiện đồng thời với những thao tác vào/ra
và theo dõi các tiến trình khác của Oracle nhằm tăng cờng tính song song để tăng
hiệu năng và độ tin cậy.

Một SGA và tập hợp các tiến trình nền cấu thành nên một Instance của Oracle. Mỗi

Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
16
instance có thể sử dụng vài tiến trình nền. Các tiến trình này là: DBWn, LGWR,
CKPT, SMON, PMON, ARCn, RECO, Dnnn, LCK0, SNPn, và QMNn.

Tiến trình ghi của CSDL (DBWn)
Tiến trình ghi của CSDL ghi những khối dữ liệu có sự thay đổi từ bộ nhớ đệm của
CSDL vào các file dữ liệu. Mặc dù một tiến trình ghi của CSDL (DBW0) đáp ứng đầy
đủ các yêu cầu đối với hầu hết các hệ thống, chúng ta vẫn có thể thêm vào các tiến
trình ghi mới (từ DBW1 tới DBW9) để nâng cao hiệu năng ghi dữ liệu cho hệ thống
mà dữ liệu thay đổi nhiều. Sử dụng tham số DB_WRITER_PROCESSES để chỉ ra số
lợng của các tiến trình ghi DBWn.

Vì Oracle sử dụng phơng thức ghi trớc nhật ký, DBWn không cần thiết phải ghi các
khối dữ liệu khi hoàn thành một giao dịch. Thay vào đó, DBWn đợc thiết kế để ghi
cả gói gồm nhiều khối dữ liệu với hiệu quả cao. Trong hầu hết các trờng hợp, DBWn
chỉ ghi khi dữ liệu cần phải đọc vào vùng SGA lớn hơn vùng nhớ đệm của CSDL còn
rỗi. Những dữ liệu ít đợc dùng đến sẽ đợc ghi vào file dữ liệu trớc tiên. DBWn
cũng ghi cho các chức năng khác kiểu nh chức năng kiểm soát giao dịch.

Tiến trình ghi nhật ký (LGWR)
Bộ ghi nhật ký ghi các bản ghi redo log vào đĩa. Các bản ghi này đợc sinh ra trong
vùng đệm redo log của SGA và LGWR ghi chúng một cách tuần tự vào file redo log
đang hoạt động. Nếu nh CSDL có nhiều redo log, LGWR ghi chúng vào nhóm các
file redo log đang hoạt động.

Tiến trình kiểm soát giao dịch (CKPT)
Vào những thời điểm xác định, mọi thay đổi trong các vùng đệm CSDL của SGA đợc
DBWn ghi vào các file dữ liệu, sự kiện này đợc gọi là kiểm soát giao dịch. ở những

thời điểm đó, tiến trình kiểm soát giao dịch chịu trách nhiệm phát tín hiệu cho DBWn
cập nhật các file dữ liệu và các file điều khiển của CSDL nhằm ghi nhận các điểm
kiêm soát mới nhất.

Tiến trình theo dõi hệ thống (SMON)
Tiến trình theo dõi hệ thống thực hiện việc phục hồi ngay khi instance bị lỗi khởi động
lại. Trong hệ thống chạy nhiều Instance thì tiến trình SMON của một Instance có thể
phục hồi cho các Instance bị lỗi khác. SMON cũng dọn dẹp những segment tạm thời
không còn sử dụng nữa và khôi phục lại các giao dịch lỗi đã bị bỏ qua do lỗi đọc file
hay offline. Các giao dịch này cuối cùng cũng đợc SMON khôi phục lại khi
tablespace hoặc file dữ liệu làm việc trở lại. SMON cũng tập hợp các extent rỗi lại với
nhau nhằm tạo ra các khoảng trống liên tục để cấp phát về sau.

Theo dõi các tiến trình (PMON)
Tiến trình theo dõi tiến hành phục hồi các tiến trình khi tiến trình của user bị lỗi.
PMON chịu trách nhiệm dọn dẹp bộ nhớ đệm và giải phóng tài nguyên mà tiến trình
đó sử dụng. Nó cũng kiểm tra tiến trình phân phối (Xem mục dới) và những tiến trình
của server và khởi động lại chúng nếu nh chúng bị lỗi.
Tiến trình lu trữ (ARCn)
Tiến trình lu trữ sao lại tất cả những file redo log đang hoạt động vào kho lu trữ khi
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
17
chúng đầy hoặc xuất hiện một khoá nhật ký. Mặc dù cấu hình có một tiến trình đơn
ARCn phù hợp với hầu hết các hệ thống, bạn vẫn có thể chỉ ra đến 10 tiến trình ARCn
bằng cách thay đổi tham số hệ thống LOG_ARCHIVE_MAX_PROCESSES. Nếu khối
lợng công việc trở nên quá tải với số lợng tiến trình ARCn hiện thời, LGWR tự
động khởi tạo thêm tiến trình ARCn cho đến khi đạt số lợng tối đa. ARCn chỉ hoạt
động khi CSDL ở chế độ ARCHIVELOG và chế độ sao lu tự động.


Tiến trình khôi phục (RECO)
Tiến trình khôi phục đợc dùng để xử lý các giao dịch phân tán bị lỗi do hệ thống
hoặc do đờng truyền trong hệ thống CSDL phân tán. Sau những khoảng thời gian xác
định, RECO cục bộ sẽ thử kết nối vào CSDL ở xa và tự động commit hay rollback
phần giao dịch cục bộ của các giao dịch phân tán đang bị treo.

Dispatcher - Tiến trình phân phối (Dnnn)
Tiến trình phân phối là một tiến trình nền tuỳ chọn, chỉ có trong cấu hình server đa
luồng. ít nhất có một tiến trình phân phối đợc tạo cho mỗi phơng thức giao tiếp đang
đợc sử dụng (D000, . . ., Dnnn). Mỗi tiến trình phân phối chịu trách nhiệm phân
luồng các yêu cầu nhận đợc từ các tiến trình của ngời sử dụng và gửi đến một trong
những tiến trình Server còn rỗi và trả lại kết quả về các tiến trình của ngời sử dụng.

Tiến trình khoá (LCK0)
Tiến trình khoá đợc sử dụng để khoá bản ghi lẫn nhau giữa các instance trong hệ
thống xử lý song song của server Oracle. Instance A khoá bản ghi của Instance B và
ngợc lại trong cấu hình Parallel Server.

Hng đợi công việc( Job Queue (SNPn) )
Trong cấu hình CSDL phân tán, có tới 36 tiến trình hàng đợi (SNP0, , SNP9, SNPA,
, SNPZ) có thể tự động làm tơi lại những ảnh chụp snapshot. Những tiến trình này
xử lý định kì và làm tơi lại những snapshot đã đợc đặt tự động. Nếu có hơn 1 tiến
trình hàng đợi đợc sử dụng thì các tiến trình chia sẻ những công việc làm tơi các
ảnh chụp snapshot. Những tiến trình này cũng thực hiện những yêu cầu công việc đợc
tạo bởi gói DBMS_JOB và lan truyền các thông báo hàng đợi đến các CSDL khác

Queue monitor - Tiến trình theo dõi hng đợi (QMNn)
Đây là loại tiến trình nền tuỳ chọn, theo dõi hàng đợi thông báo Oracle AQ. Có thể đặt
cấu hình đến 10 tiến trình theo dõi hàng đợi.


Phần mềm giao tiếp v Net8
Nếu nh tiến trình của User và Server chạy trên những máy khác nhau trong mạng hay
nếu nh tiến trình User kết nối vào các tiến trình Server dùng chung qua tiến trình
phân phối thì chúng giao tiếp với nhau bằng Net8. Tiến trình phân phối là một tiến
trình nền tuỳ chọn, chỉ có trong cấu hình server đa luồng. Net8 là giao diện của Oracle
với các giao thức truyền thông chuẩn cho phép truyền dữ liệu chính xác giữa các máy
tính.
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
18
Giao diện chơng trình (The Program Interface)
Giao diện chơng trình là cơ chế qua đó cho phép tiến trình user giao tiếp với tiến
trình Server. Nó phục vụ nh một phơng thức giao tiếp chuẩn giữa bất kì công cụ nào
của Oracle hay ứng dụng của ngời sử dụng (nh Oracle Forms) với phần mềm của
Oracle. Chức năng của nó là:
Làm nhiệm vụ của cơ cấu truyền tin bằng cách định dạng các yêu cầu dữ liệu,
chuyển dữ liệu, bẫy lỗi và trả lại mã lỗi.
Chuyển hoá và biến đổi dữ liệu, đặc biệt giữa những kiểu máy tính khác nhau hay
với những kiểu dữ liệu ngoài chơng trình ngời sử dụng

Ví dụ hoạt động của Oracle
Ví dụ sau minh hoạ một cấu hình của Oracle khi user và các tiến trình server chạy trên
những máy khác nhau (kết nối qua mạng)

Một Instance đang chạy trên máy tính cài đặt phần mềm Oracle (thờng đợc gọi là
máy chủ hay máy chủ CSDL)

Một máy tính chạy ứng dụng (cài trên máy trạm) chạy ứng dụng trong tiến trình của
ngời sử dụng. ứng dụng Client cố gắng thiết lập kết nối tới máy chủ qua Net8.


Server đang chạy với cùng chuẩn Net8. Nó nhận đợc yêu cầu kêt nối từ ứng dụng và
tạo một tiến trình server dành riêng thay cho tiến trình của User.

ứng dụng thực hiện một câu lệnh SQL và kết thúc giao dịch. Ví dụ: User thay đổi tên
trong một dòng dữ liệu.

Tiến trình server nhận câu lệnh và kiểm tra vùng dùng chung để tìm xem đã có câu
lệnh SQL đó cha. Nếu tìm thấy, tiến trình Server kiểm tra quyền truy nhập của ngời
dùng đó với dữ liệu đợc yêu cầu và vùng dùng chung câu lệnh SQL đó sẽ đợc sử
dụng để xử lý câu lệnh này. Nếu không tìm thấy thì một vùng dùng chung câu lệnh
SQL mới sẽ đợc cấp phát cho câu lệnh để có thể phân tích và xử lý.

Tiến trình server đọc các giá trị dữ liệu cần thiết từ file dữ liệu hoặc trong SGA.

Nó tiến hành sửa đổi dữ liệu trong SGA. Tiến trình DBWn ghi những khối thay đổi
này lên đĩa. Vì giao dịch đã đợc hoàn thành, tiến trình LGWR ngay lập tức ghi giao
dịch trong file redo log đang hoạt động.

Nếu nh giao dịch thành công, tiến trình Server gửi một thông báo qua mạng tới ứng
dụng, nếu nh không thành công thì thông báo lỗi tơng ứng sẽ đợc gửi.

Trong toàn bộ thủ tục, các tiến trình nền khác vẫn chạy và đợi các yêu cầu khác.
Ngoài ra, máy chủ CSDL quản lý các giao dịch khác của ngời sử dụng hạn chế những
tranh chấp giữa các giao dịch yêu cầu cùng một dữ liệu.

Trên đây chỉ mô tả những thao tác hết sức cơ bản của Oracle.


Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i

19
Mô hình quan hệ hớng đối tợng cho hệ quản trị
CSDL
Hệ QTCSDL đã đợc phát triển từ cấu trúc cho đến mạng đều theo mô hình quan hệ.
Mô hình CSDL đợc sử dụng rộng rãi nhất là mô hình quan hệ. Oracle mở rộng mô
hình quan hệ lên thành mô hình quan hệ hớng đối tợng làm cho nó có thể lu trữ
các dạng thức nghiệp vụ phức tạp trong CSDL quan hệ.
Mô hình quan hệ
Mô hình quan hệ có 3 hình thức chính:
Cấu trúc Cấu trúc là các đối tợng đã đợc định nghĩa trớc (bảng, view,
index hoặc những đối tợng khác) dùng lu trữ hoặc truy cập dữ liệu
trong CSDL. Cấu trúc và dữ liệu chứa trong đó có thể xử lý bằng các
thao tác
Thao tác Các thao tác là các hành động đợc định nghĩa rõ ràng cho phép
ngời sử dụng xử lý dữ liệu và cấu trúc trong CSDL. Các thao tác
trên một CSDL cần gắn với một tập hợp các luật toàn vẹn dữ liệu đã
đợc định nghĩa trớc.
Luật toàn vẹn
dữ liệu
Luật toàn vẹn dữ liệu là những luật đảm bảo cho các thao tác đợc
phép trên dữ liệu và cấu trúc của CSDL. Luật toàn vẹn dữ liệu bảo vệ
dữ liệu và cấu trúc trong CSDL

Hệ quản trị CSDL quan hệ có những u điểm nổi bật:
Tính độc lập giữa lu trữ dữ liệu vật lý và cấu trúc lô gic của CSDL
Dễ dàng truy cập dữ liệu
Hoàn toàn mềm dẻo trong thiết kế CSDL
Giảm khối lợng lu trữ và d thừa dữ liệu

Mô hình quan hệ hớng đối tợng

Mô hình quan hệ hớng đối tợng cho phép ngời sử dụng tự định nghĩa các đối
tợng, chỉ ra cả cấu trúc dữ liệu cùng với thao tác xử lý dữ liệu và sử dụng các kiểu dữ
liệu này ngay trong mô hình quan hệ.
Đối tợng là sự trừu tợng hoá của các thực thể trong thế giới thực, ví dụ các đơn hàng
mà các chơng trình ứng dụng thờng xử lý. Một kiểu đối tợng thờng có 3 thành
phần:
Tên để xác định duy nhất đối tợng đó
Các thuộc tính đợc xây dựng bên trong các kiểu dữ liệu hoặc kiểu do ngời dùng
định nghĩa. Các thuộc tính mô hình hoá cấu trúc của thực thể trong thực tế.
Phơng thức xử lý là các hàm hoặc các thủ tục đợc viết dới dạng PL/SQL và lu
trữ trong CSDL, hoặc viết dới dạng ngồn ngữ khác kiểu nh C và đợc lu trữ
bên ngoài. Các phơng thức thực hiện các thao tác định trớc mà ứng dụng cần
phải thực hiện để xử lý dữ liệu. Mọi kiểu đối tợng đều có một phơng thức
constructor để tạo ra một đối tợng mới phù hợp với kiểu dữ liệu đã định.
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
20
Lợc đồ (Schemas) & các đối tợng lợc đồ
Schema là một tập hợp các đối tợng của CSDL mà ngời dùng có thể sử dụng. Các
đối tợng schema là những cấu trúc logic tham chiếu trực tiếp đến dữ liệu của CSDL.
Chúng bao gồm các cấu trúc nh: bảng, view, sequence, stored procedure, synonym,
index, cluster và database link. (Không có liên hệ gì giữa một tablespace và một
schema; các đối tợngt rong cùng một schema có thể tồn tại trong các tablespace khác
nhau và một tablespace có thể chứa nhiều đối tợng của nhiều schema khác nhau).

Bảng
Bảng là một đơn vị lu trữ dữ liệu cơ bản trong CSDL Oracle. Các bảng của CSDL lu
giữ tất cả những dữ liệu mà ngời dùng có thể sử dụng.
Bảng dữ liệu đợc lu trong các hàng và các cột. Mỗi bảng đợc định nghĩa với một
tên và tập hợp các cột. Mỗi cột đều có tên, kiểu dữ liệu (kiểu nh: CHAR, DATE,

NUMBER) và độ rộng (cũng có thể đợc xác định trớc nhờ kiểu dữ liệu nh trong
kiểu DATE) và phần thập phân (đối với kiểu số). Ngay sau khi tạo ra một bảng, các
hàng dữ liệu hợp lệ có thể chèn vào bảng. Các hàng dữ liệu sau đó có thể truy vấn, xoá
hoặc cập nhật.
Để đảm bảo các ràng buộc nghiệp vụ đối với dữ liệu trong bảng, các ràng buộc dữ liệu
và trigger có thể đợc định nghĩa cho bảng đó.

Views
View là một dạng trình diễn dữ liệu do ngời sử dụng tự định nghĩa, dữ liệu có thể lấy
từ một hoặc nhiều bảng khác nhau. View cũng có thể coi là "stored query".
View không thực sự chứa dữ liệu, thay vào đó, chúng nhận dữ liệu từ các bảng nguồn.
Các bảng nguồn có thể là bảng hoặc cũng lại là một view khác.
Cũng giống nh các bảng, view cũng có thể truy vấn, chèn và xoá dữ liệu trong một số
điều kiện nhất định. Tất cả các thao tác dữ liệu tác động lên view thực tế đều thực hiện
trên các bảng nguồn.
View thờng đợc sử dụng để làm các công việc sau:
Mở rộng khả năng bảo mật cho các bảng bằng cách hạn chế truy cập đến một số
hàng và cột của bảng. Ví dụ, có thể tạo view của một bảng trong đó không có các
cột dữ liệu nhạy cảm (nh thông tin về lơng chẳng hạn)
ẩn giấu những dữ liệu phức tạp. Ví dụ, một view có thể chứa dữ liệu bán hàng 12
tháng trong năm để phân tích và báo cáo. Cũng có thể tạo view liên kết từ một số
cột có quan hệ trong nhiều bảng khác nhau. Tuy nhiên, view giấu đi quan hệ giữa
dữ liệu gốc trong các bảng nguồn.
Đơn giản cho ngời sử dụng. Ví dụ, view cho phép nhiều ngời cùng truy cập
thông tin từ nhiều bảng nguồn mà không yêu cầu ngời dùng phải biết cách làm
thế nào để thu thập từ các nguồn số liệu đó.
Hiển thị dữ liệu khác với bảng dữ liệu nguồn. Ví dụ, nó cho phép đổi tên các cột
mà không làm ảnh hởng đến bảng dữ liệu nguồn.
Lu giữa các câu lệnh truy vấn phức tạp. Ví dụ, một query có thể thực hiện một số
phép tính mở rộng từ các thông tin trong bảng. Bằng cách lu lại query này dới

dạng view, các phép tính sẽ đợc thực hiện khi truy vấn dữ liệu trên các view này.

Các view liên kết dữ liệu từ nhiều bảng khác nhau chỉ có thể cập nhật đợc trong một
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
21
số điều kiện nhất định.

View thực
View thực cho phép truy cập dữ liệu gián tiếp đến dữ liệu trong bảng bằng cách lu lại
kết quả truy vấn trong một đối tợng schema khác. Không giống nh các view tầm
thờng khác không chiếm không gian lu trữ dữ liệu, view thực có chứa các dòng kết
quả của truy vấn từ một vài bảng hoặc view nguồn. Các view này có thể lu trong
cùng CSDL hoặc trong một CSDL khác.
View thực khi đợc lu cùng CSDL với các bảng nguồn có thể tăng tốc độ xử lý nhờ
ghi lại kết quả truy vấn. Đối với các truy vấn thực hiện tổng hợp dữ liệu hoặc liên kết,
cơ chế tối u hoá có thể ghi lại kết quả truy vấn để truy cập đến những kết quả đã
đợc tính toán lu trong các view thực. Quá trình này rất hữu dụng trong môi trờng
Datawarehouse.
View thực còn đợc gọi là ảnh chụp (snapshot). Khái niệm này thờng đợc sử dụng
trong việc nhân bản dữ liệu với CSDL ở xa. Trong các phát biểu SQL, từ khoá
SNAPSHOT và MATERIALIZED VIEW là đồng nghĩa.

Sequences
Sequence tạo ra một dãy các số duy nhất cho các cột kiểu số của một bảng nào đó.
Sequence làm đơn giản hoá cho việc lập trình bằng cách tự động sinh ra các số duy
nhất cho các dòng dữ liệu của một hoặc nhiều bảng.
ví dụ, giả sử 2 ngời sử dụng cùng chèn một dòng mới vào bảng EMP. Bằng cách sử
dụng sequence để tạo ra số khoá duy nhất cho cột EMPNO của các dòng dữ liệu đó,
không ngời nào phải đợi để nhận đợc số EMPNO tiếp theo. Sequence tự động sinh

ra số phù hợp cho mỗi ngời.
Các số sequence độc lập với các bảng, vì vây một sequence có thể sử dụng cho nhiều
bảng khác nhau. Sau khi tạo, một sequence có thể đợc nhiều ngời dùng truy cập để
tạo ra dãy các số thực tuần tự.

Đơn vị chơng trình
Đơn vị chơng trình đợc sử dụng trong tài liệu này là các stored procedure, hàm,
package, trigger và các khối nặc danh.

Synonyms
Synonym là một bí danh cho bảng, view, sequence hoặc đơn vị chơng trình. Một
synonym thực tế không phải là một đối tợng của schema nhng nó dùng để tham
chiếu đến các đối tợng của schema. Synonym đợc sử dụng để:
Che giấu tên thật và chủ sở hữu của đối tợng
Cung cấp khả năng truy cập chung đến các đối tợng
Cung cấp khả năng truy cập trong suốt đến các bảng, view hoặc đơn vị chơng
trình của các CSDL ở xa mà không phải quan tâm đến vị trí vật lý của nó.
Đơn giản hoá các câu lệnh SQL

Một synonym có thể là chung hoặc riêng. Mỗi cá nhân ngời sử dụng có thể tạo các
synonym riêng chỉ cho riêng ngời đó. Quản trị CSDL có thể tạo các synonym chung
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
22
để có thể truy cập rộng rãi đến các đối tợng trong toàn hệ thống.

Indexes
Index là các cấu trúc tuỳ chọn gắn với các bảng, đợc tạo ra để tăng tốc độ truy vấn dữ
liệu. Cũng giống nh chỉ mục của tài liệu này giúp cho bạn nhanh chóng tìm đợc
thông tin trong tài liệu, index của Oracle cũng giúp truy cập dữ liệu nhanh hơn.


Khi xử lý một yêu cầu, Oracle có thể sử dụng một vài hoặc toàn bộ các index hiện có
để tìm đợc dữ liệu một cách hiệu quả. Index rất hữu dụng khi các ứng dụng thờng
xuyên truy vấn một bảng để tìm một số dòng dữ liệu (ví dụ, tất cả nhân viên có lơng
trên 1000 USD) hoặc một dòng dữ liệu nào đó.

Các index đợc tạo dựa trên một vài cột trong bảng. Ngay sau khi tạo, index tự động
đợc Oracle quản lý và sử dụng. Mọi thay đổi tác động lên dữ liệu (thêm dòng mới,
cập nhật dữ liệu, hoặc xoá dữ liệu) đều đợc tự động phản ánh vào tất cả các index
tơng ứng và hoàn toàn trong suốt với ngời sử dụng.

Các index độc lập cả về vật lý và logic đối với dữ liệu. Chúng có thể bị xoá và tạo lại
bất cứ lúc nào mà không ảnh hởng đến dữ liệu và các index khác. Nếu một index bị
xoá, tất cả các ứng dụng vẫn làm việc bình thờng, tuy nhiên việc truy cập đến các dữ
liệu mà trớc đó có index sẽ chậm hơn.

Bạn có thể phân mảnh các index.

Clusters and Hash Clusters
Cluster và hash cluster là những cấu trúc tuỳ chọn cho việc lu trữ dữ liệu. Chúng
đợc tạo để tăng tốc độ truy vấn dữ liệu.

Clustered Tables
Cluster là một nhóm của vài bảng vật lý đợc lu trữ cùng nhau vì chúng có một số
cột dữ liệu dùng chung và thờng xuyên đợc sử dụng cùng với nhau. Vì các hàng liên
quan với nhau đợc lu trữ cùng nhau về mặt vật lý nên giảm đợc thời gian truy cập.

Các cột liên quan đến nhau của các bảng trong một cluster đợc gọi là các khoá. Các
khoá đợc chỉ số hoá nên các dòng dữ liệu đợc truy vấn với thao tác truy cập vào/ra
là ít nhất. Vì dữ liệu của các khoá trong cluster chỉ mục chỉ đợc lu một bản duy nhất

cho các bảng trong nhóm, nên cluster có thể lu chúng một cách hiệu quả hơn khi các
bảng đợc lu riêng rẽ (không cluster).

Cluster cũng làm tăng tốc độ truy vấn dữ liệu, phụ thuộc vào sự phân tán dữ liệu và
thao tác SQL nào thờng đợc thực hiện. Cá biệt, các bảng cluster còn đợc lợi vì các
dòng dữ liệu chung đợc truy vấn với cùng một thao tác vào/ra.

Giống nh index, cluster không ảnh hởng đến thiết kế của ứng dụng. Nó hoàn toàn
trong suốt với ngời sử dụng và ứng dụng. Dữ liệu trong đó đợc truy cập qua SQL với
cùng phơng thức nh khi không có cluster.

Hình 1-3 mô tả lu trữ dữ liệu khi có và không có cluster.

Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
23
Figure 1-3 Clustered and Non-clustered Tables


Hash Clusters
Hash cluster cũng nhóm dữ liệu của bảng vào cùng một chỗ tơng tự nh cluster chỉ
số. Tất cả các dòng dữ liệu với cùng một khoá đợc lu cùng với nhau trên đĩa.

Hash cluster tốt hơn sử dụng bảng có đánh chỉ mục hoặc cluster chỉ mục khi một bảng
thờng xuyên đợc truy vấn với một query ngang bằng (ví dụ: query tất cả nhân viên
của phòng 10). Đối với những truy vấn nh vậy, giá trị khoá cluster đợc phân mảnh
(băm). Kết quả là giá trị khoá phân mảnh chỉ thẳng đến vùng dữ liệu có chứa bản ghi.
Dimensions
Mảng định nghĩa quan hệ hình cây (quan hệ cha/con) giữa các cặp của các cột hoặc
tập hợp cột. Mỗi giá trị ở mức con đợc gắn với một và chỉ một giá trị ở mức cha.


Đối tợng mảng là một vật chứa của các quan hệ logic giữa các bảng và không có bất
cứ dữ liệu nào gắn với nó. Lệnh CREATE DIMENSION chỉ ra:
Các mệnh đề có nhiều LEVEL, mỗi mệnh đề xác định một cột hoặc một tập hợp
Simpo PDF Merge and Split Unregistered Version -
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
24
các cột trong mảng
Một hoặc nhiều mệnh đề HIERARCHY chỉ ra quan hệ cha/con giữa các LEVEL
kề nhau
Mỗi mệnh đề tuỳ chọn ATTRIBUTE xác định một cột hoặc một tập hợp các cột
gắn với mỗi LEVEL riêng.

Các cột trong một mảng có thể thuộc cùng một bảng (phi chuẩn) hoặc thuộc nhiều
bảng (chuẩn hoá hoàn toàn hoặc từng phần). Để định nghĩa một mảng dựa trên nhiều
cột thuộc nhiều bảng khác nhau, liên kết các bảng đó bằng mệnh đề JOIN của mệnh
đề HIERARCHY.

Database Links
Liên kết CSDL là một đối tợng đợc đặt tên dùng để xác lập đờng dẫn từ một CSDL
đến một CSDL khác. Liên kết đợc sử dụng khi tham chiếu đến một đối tợng toàn
cục trong CSDL phân tán.

Từ điển dữ liệu
Mỗi CSDL Oracle có một từ điển dữ liệu. Từ điển dữ liệu là một tập hợp các bảng và
view đợc sử dụng theo kiểu chỉ đọc (read-only) để tham chiếu đến các thành phần
CSDL. Ví dụ, một từ điển dữ liệu lu thông tin về cấu trúc vật lý và logic của CSDL.
Bổ sung thêm cho những thông tin quý giá này, từ điển dữ liệu cũng lu trữ cả những
thông tin nh:
Những ngời dùng hợp lệ của CSDL

Thông tin về ràng buộc toàn vẹn dữ liệu đợc định nghĩa cho các bảng trong CSDL
Không gian đã sử dụng và không gian còn trống của các đối tợng

Từ điển dữ liệu đợc tạo khi tạo CSDL. Để phản ánh đúng trạng thái của CSDL trong
mọi lúc, từ điển dữ liệu đợc Oracle tự động cập nhật khi thực hiện một số thao tác
(chẳng hạn nh khi thay đổi cấu trúc của CSDL). Từ điển dữ liệu rất quan trọng đối
với các thao tác CSDL, Oracle dựa vào đó để lu trữ, kiểm tra và chỉ đạo các công
việc. Ví dụ: trong khi CSDL đang thao tác, Oracle đọc từ điển dữ liệu để kiểm tra sự
tồn tại của các đối tợng trong schema và quyền truy cập của ngời sử dụng đối với
đối tợng đó.

Truy cập dữ liệu đồng thời v tính nhất quán
Phần này mô tả về cơ cấu mà Oracle sử dụng để thực hiện các yêu cầu quan trọng của
một hệ quản trị thông tin:
Dữ liệu phải đợc đọc và cập nhật trong môi trờng đảm bảo tính nhất quán
Cho phép tối đa số truy cập đồng thời của ngời sử dụng
Hiệu năng cao để đảm bảo năng suất lao động tối đa trong môi trờng có nhiều
ngời sử dụng

Simpo PDF Merge and Split Unregistered Version -

×