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

Đào tạo cơ bản về Oracle8i (A76965-01) - Phần 2 docx

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 (166.15 KB, 17 trang )

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)
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
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
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.
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.


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

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

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

Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
25
Truy cập đồng thời
Mối quan tâm chính của hệ quản trị CSDL nhiều ngời dùng là làm cách nào để kiểm
soát khi nhiều ngời đồng thời truy cập cùng một dữ liệu. Nếu không có sự kiểm soát
truy cập thích đáng thì dữ liệu có thể bị cập nhật sai, ảnh hởng trực tiếp đến tính toàn
vẹn dữ liệu.

Nếu nhiều ngời cùng truy cập vào một dữ liệu, một cách để kiểm soát là yêu cầu từng
ngời đợi đến lợt mình. Mục đích của hệ quản trị CSDL là giảm thiểu thời gian đợi
nói trên để làm sao nó không còn nữa hoặc có nhng không đáng kể đối với mỗi ngời
dùng. Tất cả các lệnh thao tác dữ liệu nên chú ý giảm tối thiểu sự ảnh hởng nếu có
thể, và cần hết sức tránh sự tơng tác có hại giữa các giao dịch đang đợc thực hiện.
Sự tơng tác có hại có thể là những thao tác cập nhật dữ liệu không đúng hoặc thay đổi
cấu trúc dữ liệu không đúng. Không nên hy sinh hiệu năng cũng nh tính đúng đắn
của dữ liệu


Oracle giải quyết các vấn đề đó bằng cách sử dụng các kiểu khoá khác nhau và các mô
hình đồng nhất nhiều phiên bản. Cả 2 đặc tính sẽ đợc thảo luận trong mục tiếp theo.
Các tính năng này dựa trên khái niệm giao dịch. Trách nhiệm của ngời thiết kế
chơng trình là phải đảm bảo các giao dịch tận dụng đợc tối đa các u điểm này.

Tính nhất quán
Tính nhất quán đợc Orcale hỗ trợ, nó thực hiện các nhiệm vụ sau:
Đảm bảo rằng tập các dữ liệu mà lệnh có thể xử lý là hoàn toàn nhất quán, có
nghĩa là không thay đổi trong suốt quá trình thực hiện lệnh.
Đảm bảo rằng ngời đọc dữ liệu đó không phải đợi ngời khác đọc hoặc ghi chính
dữ liệu đó.
Đảm bảo rằng ngời cập nhật dữ liệu không phải đợi ngời khác đọc xong chính
dữ liệu đó. Họ chỉ phải đợi những ngời cập nhật dữ liệu nếu nh những ngời đó
cập nhật dữ liệu trên chính các hàng dữ liệu mà học cần cập nhật.

Cách đơn giản nhất để xem xét cách giải quyết của Oracle là hãy tởng tợng mỗi
ngời dùng xử lý một bản sao riêng của CSDL, đó chính là mô hình đồng nhất nhiều
phiên bản.

Read Consistency, Rollback Segments, and Transactions
Để quản lý mô hình nhất quán nhiều phiên bản, Oracle cần phải tạo ra một tập các dữ
liệu khi một bảng đang đợc đọc và đợc cập nhật đồng thời. Khi có yêu cầu cập nhật,
giá trị dữ liệu trớc khi bị thay đổi sẽ đợc lu lại trong rollback segment. Trong khi
giao dịch này vẫn cha kết thúc, những ngời dùng khác sẽ chỉ thấy đợc dữ liệu cũ
trớc khi thay đổi. Oracle sử dụng thông tin hiện thời trong SGA và trong rollback
segment để xây dựng khung nhìn nhất quán cho dữ liệu khi truy vấn.

Chỉ sau khi kết thúc giao dịch thì các thay đổi mới đợc cập nhật chắc chắn vào
CSDL. Các lệnh đợc thực hiện sau khi kết thúc giao dịch chỉ còn thấy đợc các dữ

liệu đã bị thay đổi trong giao dịch đó.

Hãy nhớ rằng giao dịch là mấu chốt cho chiến lợc của Oracle để tạo ta tính nhất quán
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
26
của dữ liệu. Các câu lệnh SQL đợc xác nhận (hoặc không đợc xác nhận):
Tạo ra điểm đánh dấu cho khung nhìn nhất quán của dữ liệu nhân danh ngời đọc
Quyết định khi nào thì những ngời dùng khác có thể thấy đợc dữ liệu đã đợc
cập nhật
Giao dịch chỉ đọc
Theo ngầm định Oracle đảm bảo tính nhất quán dữ liệu từ mức các lệnh. Tập dữ liệu
do lệnh truy vấn trả về đảm bảo tính nhất quán tơng ứng với điểm đánh dấu ở thời
điểm đó. Tuy nhiên trong một vài trờng hợp, cũng có thể yêu cầu khả năng đọc nhất
quán ở mức giao dịch để thực hiện nhiều truy vấn trong cùng một giao dịch, tất cả
chúng đều đợc đảm bảo tính nhất quán tơng ứng với điểm đánh dấu ở thời điểm đó,
khi đó tất cả các truy vấn trong giao dịch sẽ không thấy đợc sự thay đổi của các giao
dịch khác xảy ra trong quá trình nó đang thực hiện.

Nếu muốn thực hiện một số truy vấn trên nhiều bảng khác nhau mà không có cập nhật
dữ liệu, ngời dùng thờng thích sử dụng các giao dịch chỉ đọc. Sau khi xác định rằng
giao dịch chỉ đọc dữ liệu, bạn có thể thực hiện bao nhiêu truy vấn tuỳ thích vì biết rằng
dữ liệu chắc chắn đảm bảo tính nhất quán ở thời điểm đó.

Cơ chế khoá
Oracle cũng sử dụng khoá để kiểm soát các truy cập đồng thời vào dữ liệu. Khoá là
một cơ chế với mục đích tránh những tác động có hại giữa những ngời dùng đang
truy cập dữ liệu.
Khoá sử dụng cho 2 mục đích quan trọng của CSDL:
Tính nhất quán Đảm bảo rằng dữ liệu mà một ngời dùng đang xem hoặc sửa
không bị ngời khác thay đổi cho đến khi ngời dùng đó kết thúc

công việc
Tính toàn vẹn Đảm bảo rằng dữ liệu và cấu trúc trong CSDL phản ánh tất cả
những thay đổi với chúng theo trật tự đúng đắn.
Khoá đảm bảo tính toàn vẹn dữ liệu trong khi vẫn cho phép tối đa số ngời dùng cùng
truy cập dữ liệu

Khoá tự động
Cơ chế khoá của Oracle đợc xử lý tự động mà không đòi hỏi một thao tác nào từ phía
ngời sử dụng. Oracle thực hiện việc khoá cho các lệnh SQL nếu thấy cần thiết, phụ
thuộc vào thao tác thực hiện.

Bộ điều khiển khoá tinh vi của Oracle thực hiện cơ chế khoá dữ liệu ở mức bản ghi.
Điều đó làm giảm tối đa tranh chấp dữ liệu.

Bộ điều khiển khoá duy trì vài kiểu khoá bản ghi khác nhau, tuỳ thuộc vào thao tác
nào đợc thực hiện. Nhìn chung, có 2 kiểu khoá khác nhau: khoá độc quyền và khoá
dùng chung. Chỉ có duy nhất một khoá độc quyền đợc sử dụng cho một tài nguyên
(bản ghi hoặc bảng), trong khi đó nhiều khoá dùng chung lại có thể cùng sử dụng cho
một tài nguyên. Cả hai loại luôn cho phép truy vấn trên tài nguyên đã bị khoá, nhng
không cho phép thực hiện các thao tác khác.

Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
27
Khoá do ngời sử dụng
Trong một vài trờng hợp, ngời dùng muốn tự mình khoá dữ liệu thay cho cơ chế tự
động của Oracle. Oracle cũng cho phép điều đó ở cả 2 mức: bản ghi (bằng lệnh truy
vấn đầu tiên trên các bản ghi sẽ đợc cập nhật dữ liệu) và bảng.

Distributed Processing and Distributed
Databases

Startup and Shutdown Operations
Bảo mật CSDL
Trong hệ thống CSDL nhiều ngời dùng kiểu nh Oracle có sẵn các đặc tính bảo mật
điều khiển việc truy cập và sử dụng CSDL. Ví dụ cơ cấu bảo mật:
Chống các truy cập bất hợp pháp vào CSDL
Chống các truy cập bất hợp pháp vào các đối tợng trong CSDL
Quản lý sử dụng đĩa cứng
Quản lý sử dụng tài nguyên hệ thống (kiểu nh CPU)
Lu vết các thao tác của ngời sử dụng

Gắn liền với các User của CSDL là các lợc đồ (schema) có cùng tên. Ngầm định mỗi
User CSDL tạo và truy cập đến tất cả các đối tợng trong lợc đồ tơng ứng.

Bảo mật CSDL có thể chia thành 2 lớp: bảo mật hệ thống và bảo mật dữ liệu.

Bảo mật hệ thống bao gồm các cơ chế quản lý truy cập và sử dụng CSDL ở mức hệ
thống. Ví dụ:
Kiểm tra tên ngời sử dụng và mật khẩu
Dung lợng lu trữ cho phép đối với các đối tợng của ngời dùng đó
Giới hạn tài nguyên đối với ngời dùng

Cơ chế bảo mật hệ thống kiểm tra ngời dùng có quyền kết nối vào CSDL hay không,
cơ chế theo dõi vết của CSDL có hoạt động hay không, những thao tác hệ thống nào
mà ngời dùng đó có thể thực hiện.

Bảo mật dữ liệu bao gồm các cơ chế kiểm soát truy cập và sử dụng CSDL ở mức các
đối tợng schema. Ví dụ:
Ngời dùng nào có thể truy cập đến các đối tợng của lợc đồ xác định nào đó, các
kiểu thao tác đợc phép đối với mỗi ngời dùng trên từng đối tợng (ví dụ: ngời dùng
SCOTT có thể thực hiện các lệnh SELECT, INSERT nhng không đợc phép

DELETE trong bảng EMP)

Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
28
Các thao tác này có thể đợc ghi lại đối với mỗi đối tợng.

Cơ chế bảo vệ
Oracle Server cho phép kiểm soát truy cập theo ý muốn, hạn chế truy cập đến các
thông tin dựa vào các quyền. Cần phải gán các quyền thích hợp cho ngời sử dụng
theo đúng trật tự để ngời dùng đó có thể truy cập đến các đối tợng. Ngời dùng với
các quyền phù hợp có thể gán cho ngời dùng khác các quyền đợc phép theo ý mình.

Oracle quản lý bảo mật CSDL bằng một số phơng tiện:
User và lợc đồ
Quyền
Roles
Hạn mức và tham số lu trữ
Giới hạn tài nguyên
Lu vết

Hình 1-4 mô tả quan hệ của các phơng tiện bảo mật khác nhau của Oracle, tiếp sau
đó là tổng quan về User, quyền và Role.

Hình 1-4 Các đặc tính bảo mật của Oracle


User v lợc đồ
Mỗi CSDL Oracle có một danh sách ngời dùng. Để truy cập CSDL, ngời dùng sử
dụng một ứng dụng CSDL và kết nối bằng một tên hợp lệ. Mỗi tên ngời dùng kèm
theo một mật khẩu để tránh sử dụng bất hợp pháp.


Vùng bảo mật
Mỗi ngời dùng có một vùng bảo mật, một tập các thuộc tính xác định vùng này:
Các thao tác đợc phép đối với ngời dùng (quyền và Role)
Hạn mức trên tablespace đối với ngời dùng đó
Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
29
Giới hạn tài nguyên hệ thống (ví dụ: thời gian xử lý của CPU)

Từng thuộc tính sẽ đợc xem xét ở các mục tiếp theo

Quyền
Đó là các quyền để thực hiện một số dạng lệnh SQL. Một số ví dụ về các quyền này:
Kết nối với CSDL (tạo một phiên làm việc mới)
Tạo một bảng mới trong schema
Truy vấn dữ liệu từ các bảng của một ngời dùng khác
Thực hiện một số thử tục của ngời dùng khác

Hệ thống quyền của Oracle có thể chia thành 2 nhóm: quyền hệ thống và quyền trên
các đối tợng schema

Quyền hệ thống
Quyền hệ thống cho phép ngời dùng thực hiện một số thao tác nhất định trong hệ
thống hoặc trên các đối tợng lợc đồ. Ví dụ: quyền tạo một tablespace hoặc xoá một
vài dòng trong bảng nào đó trong CSDL là các quyền hệ thống. Nhiều quyền hệ thống
chỉ dành cho ngời quản trị hệ thống và nhà phát triển ứng dụng vì các quyền hệ thống
rất mạnh.

Quyền đối tợng lợc đồ (schema)
Quyền đối tợng lợc đồ cho phép ngời dùng thực hiện một số thao tác trên các đối

tợng lợc đồ. Ví dụ: quyền xoá một số dòng của một bảng nào đó. Quyền đối tợng
đợc gán cho ngời sử dụng chơng trình ứng dụng để họ có thể sử dụng chơng trình
thực hiện các công việc nhất định.

Gán quyền
Các quyền đợc gán cho ngời sử dụng để ngời đó có thể truy cập và cập nhật dữ liệu
trong CSDL. Một ngời dùng có thể đợc gán quyền theo 1 trong 2 cách:
Quyền đợc gán tờng minh. Ví dụ: quyền chèn bản ghi vào bảng EMP đợc gán
tờng minh cho ngời dùng có tên SCOTT.
Quyền đợc gán cho các Role (nhóm các quyền), sao đó các Role này lại đợc gán
cho một hoặc nhiều ngời dùng. Ví dụ: quyền chèn bản ghi vào bảng EMP đợc
gán cho Role CLERK, sau đó Role đợc gán cho ngời dùng SCOTT & BRIAN

Vì dùng Role cho phép quản lý quyền dễ dàng và tốt hơn, nền thông thờng các quyền
đợc gán thông qua Role mà không gán trực tiếp cho ngời sử dụng. Mục sau sẽ mô tả
rõ hơn về việc sử dụng các Role.
Roles
Oracle cung cấp một phơng thức quản lý quyền một cách dễ dàng thông qua Role.
Role là tên của một nhóm các quyền liên quan sẽ đợc gán cho ngời sử dụng hoặc
gán cho các Role khác.

Ti liệu đo tạo Hệ thông tin đối tợng Cơ bản về Oracle 8i
30
Các thuộc tính sau của Role cho phép quản lý quyền dễ dàng:
Giảm nhẹ việc
gán quyền
Quản trị hệ thống gán quyền cho nhóm ngời dùng sẽ nhanh hơn
là gán riêng cho từng ngời các quyền đó.
Quản lý động Khi cần thay đổi quyền của một nhóm, chỉ cần thay đổi quyền
tơng ứng trên Role. Vùng bảo mật của tất cả những ngời dùng

đã đợc gán Role đó sẽ tự động thay đổi theo.
Tính sẵn sàng lựa
chọn của các
quyền
Các Role đã gán cho ngời dùng có thể ở trạng thái cho phép
hoặc không cho phép. Điều này cho phép quản lý riêng quyền
của từng ngời dùng trong bất cứ trờng hợp nào.
Phần mềm tự
nhận biết
ứng dụng có thể cho phép hoặc không cho phép các Role đã đợc
chọn một cách tự động khi ngời dùng sử dụng ứng dụng

Ngời quản trị CSDL thờng tạo các Role cho ứng dụng. Các Role này đã đợc gán
sẵn các quyền cần thiết để sử dụng đợc các chức năng của ứng dụng. Sau đó, chỉ cần
gán chúng cho ngời dùng hoặc cho các role khác. Một ứng dụng thờng có nhiều role
khác nhau, mỗi role có một tập các quyền cho phép truy cập với mức độ khác nhau
vào CSDL.

DBA có thể tạo mỗi role với một mật khẩu để tránh sử dụng trái phép các quyền đã
gán cho role. Thông thờng, một ứng dụng đợc thiết kế để khi đợc sử dụng nó sẽ
cho phép những role cần thiết. Do đó, ngời sử dụng chơng trình không cần phải biết
mật khẩu của các role.

Hạn mức v tham số lu trữ
Oracle cung cấp các phơng tiên để định hớng và giới hạn sử dụng không gian lu
trữ cấp cho CSDL và cho từng ngời sử dụng, bao gồm cả hạn mức cho tablespace
ngầm định và tạm thời.

Tablespace ngầm định
Mỗi ngời dùng đều gắn với một tablespace ngầm định. Khi ngời sử dụng tạo bảng,

tạo chỉ mục hoặc nhóm các bảng (cluster) mà không chỉ rõ nơi lu các đối tợng đó
thì chúng sẽ đợc đặt trong tablespace ngầm định, nếu nh họ có đủ quyền cần thiết
và vẫn còn đủ hạn mức lu trữ trên đó.

Tablespace tạm thời
Mỗi ngời dùng có một tablespace tạm thời. Khi họ thực hiện các câu lệnh SQL cần sử
dụng các segment tạm thời (chẳng hạn nh tạo chỉ mục) thì Oracle sẽ sử dụng
tablespace tạm thời. Bằng việc hớng tất cả các segment tạm thời của ngời dùng vào
tablespace tạm thời, Oracle có thể giảm đợc tranh chấp vào/ra giữa các segment tạm
thời và các loại segment khác.

Hạn mức trên các Tablespace
Oracle có thể giới hạn dung lợng lu trữ tổng cộng cho các đối tợng trong một lợc
đồ. Hạn mức (giới hạn khoảng trống) có thể đặt riêng cho từng tablespace của mỗi
ngời dùng. Đặc tính bảo vệ hạn mức cho phép điều khiển có lựa chọn tổng dung
lợng đĩa cứng đợc sử dụng cho các đối tợng của lợc đồ.

×