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)
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
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
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
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
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ữ
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
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ữ
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
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.
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
ứ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
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
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.
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
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,
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
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
Đố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