Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
LỜI MỞ ĐẦU.
Cơ sở dữ liệu là một trong những ngành được quan tâm nhiều trong khoa
học máy tính, trong công nghệ thông tin. Từ khi có mô hình cơ sở dữ liệu đầu
tiên vào những năm 60 đến nay tuy không là chặng đường dài đối với các
ngành khoa học khác, nhưng với khoa học máy tính và đặc biệt với cơ sở dữ
liệu thì đó là thời gian đáng kể. Cơ sở dữ liệu đã trải qua nhiều thế hệ của hệ
quản trị cơ sở dữ liệu, và đã có nhiều ứng dụng trong khoa học và trong các
nghành kinh tế quốc dân.
Thời đại thông tin ngày nay, bài toán cơ bản và cốt yếu là :Làm thế nào lưu
trữ thông tin an toàn và chắc chắn đồng thời lại truy cập chính xác và dễ dàng.
Theo thời gian, yêu cầu của bài toán ngày càng cao với lượng thông tin cần
lưu trữ, xử lý ngày càng nhiều và đa dạng.
Hệ quản trị cơ sở dữ liệu Oracle là một trong những giải pháp tốt nhất, được
công nhận trên thị trường tin học thế giới hiện nay. Oracle đã được nghiên cứu
và phát triển, cho phép người sử dụng khai thác triệt để tiềm năng của hệ
thống quản lý cơ sở dữ liệu quan hệ một cách ưu việt và mạnh nhất hiện nay.
Nhu cầu tích lũy và xử lý các dữ liệu đã nảy sinh trong mọi công việc, trong
mọi hoạt động của con người. Một cá nhân hay một tổ chức có thể đã nhầm có
một hệ thống xử lý dữ liệu, dù cơ chế hoạt động của nó là thủ công và chưa tự
động hoá. Một bài toán nhỏ cũng cần đến dữ liệu, nhưng không nhất thiết
phải quản lý các dữ liệu theo các phương pháp khoa học. Do khả năng tổng
hợp của người xử lý, các dữ liệu ấy được lấy ra, được xử lý mà không vấp phải
khó khăn nào. Tuy nhiên khi bài toán có kích thước lớn hẳn và số lượng dữ liệu
cần phải xử lý tăng lên nhanh thì e rằng tầm bao quát của con người bình
thường khó có thể quản lý hết được! Ấy là không kể đến một số loại dữ liệu đặc
biệt; chúng đòi hỏi được quản lý tốt không phải vì kích thước mà vì sự phức
tạp của bản thân chúng tổ chức xử lý dữ liệu một cách khoa học đòi hỏi con
người sử dụng cơ sở dữ liệu.
Chính vì thế em đã chọn hệ quản trị cơ sở dữ liệu Oracle để xây dựng hệ
thống bán hàng tại công ty VINDA làm đồ án tốt nghiệp.
Chương IV. ORACLE VÀ CẤU HÌNH MẠNG
I. Service và những chức năng phục vụ của Oracle 24
II. Tổng quan về các cấu hình kết nối của Oracle 24
III. Net8 và nền giao tiếp mạng trong suốt 25
IV. Các tầng giao tiếp 25
Chương V. NGÔN NGỮ PL/SQL
I. Tổng quan về PL/QL 31
II. Cấu trúc chương trình PL/SQL 31
Chương VI. PHƯƠNG PHÁP LUẬN PHÂN TÍCH THIẾT KẾ HỆ
THỐNG
I. Phương pháp phân tích hệ thống về chức năng 34
II. Phương pháp phân tích hệ thống về dữ liệu 36
III. Phương pháp thiết kế hệ thống 37
CHƯƠNG VII. GIỚI THIỆU ORACLE DEVELOPER 6.0
I. FORM BUIDER 37
II. REPORT BUIDER 39
III. GRAPHICS BUIDER 39
IV. QUERY BUIDER 40
V. SCHEMA BUIDER 41
PHẦN HAI
I. Khảo sát hiện trạng 42
II. Phân tích hệ thống 44
II.1 Phân tích hệ thống về chức năng 44
II.2 Phân tích hệ thống về dữ liệu 61
II.3 Thiết kế hệ thống 67
III. Kết luận hướng phát triển đồ án 83
Tài liệu tham khảo
SVTH: Đỗ Hữu Bá Trang 2
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
PHẦN MỘT
Oracle Corporation đã trở thành người dẫn đầu khi đưa ra công nghệ
Client/Server tiên tiến, định hướng phát triển sản phẩm đặc trưng theo hướng
hỗ trợ thiết kế, cài đặt và quản lý các hệ thống cơ sở dữ liệu Client/Server.
Orcale đã thiết kế các sản phẩm theo một trong ba thành phần chủ yếu của
kiến trúc Client/Server:
Một hệ cơ sở dữ liệu quan hệ server hiệu suất cao, đủ tính năng, thích
ứng cho các chủng loại, từ các máy tính xách tay( laptop, notebook) cho
đến các máy mainframe.
Sự phát triển client và các sản phẩm run-time hỗ trợ nhiều môi trường
GUI
Các phần trung gian kết nối cơ sở dữ liệu cung cấp sự giao tiếp bảo mật
và hiệu quả trên nhiều lọai hình giao thức mạng. Các sản phẩm Oracle có
tính thích ứng cao, cung cấp các giải pháp Client/Server trọn vẹn cho cho
các môi trường ứng dụng từ các nhóm làm việc nhỏ đến các môi trường
công ty
SVTH: Đỗ Hữu Bá Trang 3
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
III. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU QUAN HỆ ORACLE 8
SERVER.
Ngôn ngữ PL/SQL: Một thành phần chính của Oracle8 Server là engine
xử lý PL/SQL. PL/SQL là ngôn ngữ thế hệ thứ tư của Oracle, kết hợp các
nguyên tố ngôn ngữ thủ tục có cấu trúc với SQL. PL/SQL được thiết kế đặc
thù để xử lý client/server, trong đó nó cho phép một khối chương trình
PL/SQL chứa logic ứng dụng như các lệnh SQL để đệ trình đến Server với
một yêu cầu đơn. Khi sử dụng PL/SQL có thể giảm một cách đáng kể khối
lượng xử lý yêu cầu bởi phần Client của ứng dụng và sự lưu chuyển trên
mạng để thực hiện phần logic.
Các Stored procedure: Việc xử dụng các stored procedure tăng đáng kể
hiệu quả của hệ thống Client/Server vì các lý do sau:
Gọi một stored procedure từ một ứng dụng Client giảm đáng kể mật độ
SVTH: Đỗ Hữu Bá Trang 4
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
V. CÁC CÔNG CỤ PHÁT TRIỂN CLIENT/SERVER.
1. Các hệ Server:
Oracle Unisersal Server có các thành phần tùy chọn:
Distributed Option:(Tùy chọn phân tán) cho pháp một số cơ sở dữ liệu
Oracle trên các máy tính khác nhau hoạt động như một cơ sở dữ liệu logic
đơn.
Replication Option(Tùy chọn sao lưu): cho phép một cơ sở dữ liệu
Oracle sao chép sự thay đổi lên một cơ sở dữ liệu khác.
Context Option(Tùy chọn ngữ cảnh): mở rộng khả năng cho phép
người dùng tìm nội dung của một cơ sở dữ liệu Oracle theo các từ khóa và
các chủ đề nhất định.
Spatial Data Option(Tùy chọn không gian dữ liệu) cho phép một nhà
thiết kế lựa chọn tạo ra các chỉ mục đặc biệt hỗ trợ các query tạm thời,
không gian tinh vi và các query khác.
Oracle Workgroup Server: được thiết kế cho các nhóm làm việc, có các bản
cho Netware, Window NT, SCO UNIX và Unix Ware. Oracle Workgroup
Server là một giải pháp có tính bảo trì nhỏ có kinh tế để hỗ trợ các nhóm
nhỏ người dùng.
Persernal Oracle: Là phiên bản chạy trên Windows engine của cơ sở dữ
liệu Oracle có đủ các chức năng như Oracle Universal Oracle và Oracle
Workgroup Server.
Designer 2000: phát triển các ứng dụng Oracle.
Developer/2000, Develper 6.0, Jdeveloper for Oracle 8i: Các bộ Developer
này gồm Oracle form, Report, Graphics, và Oracle Procedure Builder được
tích hợp vào môi trường phát triển
Power Object: cung cấp môi trường phát triển ứng dụng nhanh với các đặc
trưng kéo thả và quản lý các toàn tác cơ sở dữ liệu tự động.
Tập tin dữ liệu: lưu trữ thông tin chứa trong cơ sở dữ liệu. Phụ thuộc vào
kích thước, các bảng và các đối tượng khác có thể nằm trên một hay nhiều
SVTH: Đỗ Hữu Bá Trang 6
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
tập tin. Các tập tin dữ liệu có kích thước cố định và không bao giờ tự phát
triển lớn hơn kích thước ban đầu tạo ra.
Mỗi cơ sở dữ liệu cần có ít nhất một tập tin điều khiển các tập tin này ghi
tên của cơ sở dữ liệu,vị trí của tập tin dữ liệu, tập tin điều khiển và thông tin
đồng bộ để đảm bảo rằng chúng luôn hoạt động ăn khớp với nhau. Các tập
tin điều khiển cần được bảo vệ.
Các tập tin phục hồi lưu giữ thông tin để phục hồi trong trường hợp hệ
thống có sự cố. Các tập tin này ghi lại toàn bộ thay đổi của cơ sở dữ liệu,
các tập tin phục hồi có kích thước cố định.
2. Lớp Logic của Oracle gồm:
Một hay nhiều không gian bảng(tablespace).
Các khung cơ sở dữ liệu (database schema) bao gồm nhiều đối tượng
Oracle như:table, cluster, index, view, stored procedure, database trigger,
sequence,…
Mỗi khung thuộc về tài khoản người dùng gọi tắt là user, được xác định bởi
một tên người dùng và một mật khẩu(password) duy nhất đối với cơ sở dữ liệu.
Sau khi đăng nhập vào cơ sở dữ liệu bằng username và password hợp lệ, ta có
thể truy xuất các bảng cũng như các đối tượng của Oracle trong một khung
thuộc tài khoản người dùng vừa đăng nhập.
Các bảng có cùng tồn tại trên hai tài khoản người dùng khác nhau của Oracle
trong cùng một cơ sở dữ liệu vật lý. Đôi lúc, trên một cơ sở dữ liệu có thể tồn
tại nhiều phiên bản khác nhau của các bảng trong các tài khoản khác nhau để
người phát triển có thể thử nghiệm hệ thống.
Thông thường, người ta hay xem tài khoản người dùng Oracle như một cơ sở
dữ liệu, nhưng điều này không đúng hoàn toàn. Ta có thể sử dụng hai tài khoản
người dùng để giữ dữ liệu cho hai hệ ứng dụng khác nhau; ta sẽ có hai cơ sở dữ
Bộ sinh mã tuần tự cung cấp một chuỗi số tuần tự. Bộ sinh mã tuần tự đặc biệt
hữu ích trong môi trường nhiều người dùng để tạo ra những số tuần tự duy nhất
mà không phải tốn công truy xuất I/O đĩa hay khoá chuyển tác.Vì vậy, sẽ giảm
sự “chuỗi hoá” mà các lệnh của hai chuyển tác cần phải thực hiện để tạo ra các
số tuần tự đồng thời. Nhờ đó, bộ sinh mã tuần tự cải thiện năng suất chuyển tác
và giảm đáng kể thời gian chờ đợi của một user.
Các sequence là các số nguyên Oracle có 38 chữ số được định nghĩa trong cơ
sở dữ liệu. Một định nghĩa sequence sẽ định hướng thông tin tổng quát: tên
sequence, tăng lên hay giảm xuống, bước nhảy giữa các số, và các thông tin
khác. Một phần quan trọng trong của một định nghĩa sequence là Oracle có trữ
trong bộ nhớ một tập các sequence đã tạo ra hay không.
Oracle lưu trữ định nghĩa tất cả các sequence của một cơ sở dữ liệu riêng biệt
như là các hàng của một bảng từ điển dữ liệu trong không gian bảng System.
Vì vậy tất cả các định nghĩa sequence luôn có sẵn vì không gian bảng System
luôn mở sẵn.
Các số sequence được sử dụng bởi các lệnh SQL tham chiếu sequence. Ta có
thể phát ra một lệnh tạo một số sequence mới hay sử dụng một số sequence
hiện hành. Khi một lệnh trong một phiên làm việc của user tạo ra một số
sequence đặc thù chỉ có sẵn cho session đó; mỗi user tham chiếu đếm một
sequence hiện hành của mình.
Các số sequence được tạo ra độc lập với các bảng.Vì vậy cùng một bộ sinh mã
tuần tự có thể sử dụng cho một hay nhiều bảng. Sự tạo ra các số sequence hữu
dụng để tạo các khoá chính duy nhất cho dữ liệu một cách tự động và để định
vị các khoá qua nhiều hàng của bảng. Các sequence riêng biệt có thể bỏ qua
nếu chúng được tạo ra và sử dụng trong một chuyển tác đã roll back xong. Các
ứng dụng có thể cung cấp và sử dụng lại những sequence này, nếu cần.
3.4 Synonym
Một synonym là một bí danh của bất kỳ một table,view,snapshot
,sequence,function hay packagesequence. Do một synonym chỉ đơn giản là một
bí danh, nó không chiếm nhiều bộ nhớ mà chỉ là một định nghĩa trong từ điển
Các index độc lập về mặt vật lý và logic với dữ liệu trong bảng kết hợp. Ta có
thể tạo ra hay xoá một index bất cứ lúc nào mà không ảnh hưởng đến bảng gốc
hay các index khác. Nếu ta bỏ một index, tất cả các ứng dụng vẫn tiếp tục làm
việc; tuy nhiên, sự truy xuất đến dữ liệu đã được truy xuất trước đây có thể
chậm hơn. Các index là một cấu trúc độc lập yêu cầu không gian lưu trữ .
Oracle tự động duy trì và sử dụng các Index một khi chúng đã được tạo ra.
Oracle tự động phản ánh sự thay đổi đến dữ liệu trong các index, tương ứng khi
thêm các hàng mới, cập nhật hay xoá các hàng mà không cần thêm yêu cầu nào
của user.
Hiệu năng truy xuất dữ liệu đã index luôn là hằng số, thậm chí khi thêm các
hàng mới vào. Tuy nhiên, sự hiện diện của nhiều index trên một bảng giảm
hiệu năng sửa đổi, xoá, và chèn vì Oracle cũng cần cập nhật các index kết hợp
với bảng.
Các index Unique và Non-Unique
Các Index có thể duy nhất hay không duy nhất Các index duy nhất trên các
bảng tính duy nhất là một khái niệm logic nghiêm ngặt và chỉ nên kết hợp với
định nghĩa một bảng. Ta nên thay vào đó bằng cách định nghĩa các ràng buộc
toàn vẹn UNIQUE trên cột mong muốn. Oracle hỗ trợ ràng buộc toàn vẹn
UNIQUE bằng cách tự động định nghĩa một index unique trên khoá unique.
Một index composite là một index tạo ra trên nhiều cột của một bảng. Các cột
trong một index composite có thể xuất hiện theo một thứ tự bất kỳ không cần
nằm kế nhau trong một bảng.
Các index composite có thể tăng tốc độ lấy dữ liệu cho các lệnh SELECT mà
mệnh đề WHERE tham trỏ đến tất cả hay những cột đầu trong index
SVTH: Đỗ Hữu Bá Trang 9
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
composite, Vì vậy, thứ tự các cột xuất hiện trong định nghĩa rất quan trọng;
thông thường, các cột được truy xuất nhiều nhất nên để đầu tiên trong index.
Index và key
Mặc dù hai thuật ngữ index và key thường dùng như nhau, ta nên hiểu sự
giảm số khối dữ liệu cần truy xuất để xử lý query; tất cả các hàng cần thiết để
nối trên một cluster key nằm trong cùng một khối. Vì vậy, hiệu năng đối với
kết nối được cải thiện.
Cũng như index, các cluster không ảnh hưởng đến thiết kế ứng dụng. Sự tồn
tại của một cluster trong suốt đối với user và ứng dụng. Ta truy xuất dữ liệu lưu
trữ trong một bảng có cluster bằng lệnh SQL như bảng không cluster.
II.2. CẤU TRÚC BỘ NHỚ VÀ CÁC QUÁ TRÌNH.
1. Cấu trúc bộ nhớ: Oracle tạo ra và sử dụng cấu trúc bộ nhớ để hoàn thành
một số công việc. Ví dụ, bộ nhớ lưu trữ mà chương trình đang được thực hiện
và dữ liệu dùng chung của các user. Các cấu trúc bộ nhớ cơ bản kết hợp với
Oracle: Vùng toàn cục hệ thống( system global area- bao gồm các buffer cơ sở
SVTH: Đỗ Hữu Bá Trang 10
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
dữ liệu, các buffer redolog, và shared pool) và vùng toàn cục chương
trình( program global areas).
Một thể hiện của Oracle(Oracle Instance): Mỗi lúc một cơ sở dữ liệu được
tạo ra, một SGA được định vị và các quá trình chạy ngầm (background)
của Oracle được khởi tạo. Sự kết hợp giữa các quá trình background và các
bộ nhớ đệm gọi là một thể hiện của Oracle.
Một thể hiện của Oracle gồm hai loại: các quá trình User và các quá trình
Oracle.
Một quá trình user thực hiện mã của một chương trình ứng dụng hay
một công cụ Oracle.
Các quá trình Oracle gồm: các quá trình Server thực hiện các quá trình
của user và các quá trình chạy ngầm để duy trì công việc của Oracle Server.
1. System Global Area(SGA).
Là một vùng nhớ dùng chung chứa dữ liệu và các thông tin điều khiển của một
thể hiện Oracle. Một SGA và các quá trình chạy ngầm của Oracle tạo nên một
thể hiện của Oracle.
Oracle định vị SGA khi một thể hiện khởi động và giải phóng nó khi thể hiện
Oracle, các yêu cầu về lập trình giao diện(GUI) đề nghị các nhà thiết kế ứng
dụng điều khiển các currsor nhiều hơn.
Program Global Area(PGA)
PGA là một bộ nhớ đệm chứa dữ liệu và kiểm soát thông tin của một quá
trình server. Một PGA được tạo ra bởi Oracle khi một quá trình Server khởi
tạo. Thông tin trong một PGA phụ thuộc vào cấu hình của Oracle.
2. Cấu trúc các quá trình.
Một quá trình là một tuyến đoạn điều khiển hay một cơ chế trong hệ điều hành
mà có thể thực hiện một chuỗi các bước. Một số hệ điều hành sử dụng thuật
ngữ công việc hay tác vụ. Một tiến trình thường có một vùng nhớ riêng để
chạy.
Một Oracle server có hai loại quá trình chính: quá trình user và quá trình
Oracle.
Quá trình user:
Một quá trình user được tạo ra và duy trì để thực hiện mã phần mềm của một
chương trình ứng dụng (như chương trình Pro*C/C++) hay một công cụ của
Oracle(như Oracle Enterprise Manager). Quá trình user cũng quản lý sự giao
tiếp với các quá trình Server.
Các quá trình user giao tiếp với các quá trình server qua giao diện chương
trình.
Cấu trúc quá trình của Oracle.
Các quá trình của Oracle được gọi bởi các quá trình khác để để thực hiện các
chức năng của quá trình gọi.Chúng bao gồm các quá trình server và các quá
trình chạy ngầm.
Các quá trình Server:
Oracle tạo ra các quá trình server để quản lý các yêu cầu từ các quá trình
kết nối của user. Một quá trình Server có nhiệm vụ giao tiếp với quá trình
user và tương tác với Oracle để thực hiện các yêu cầu của quá trình user kết
hợp.
Oracle có thể cấu hình để thích nghi với một số các quá trình user trên một quá
lệnh SQL; nó bắt đầu khi user kết nối vào cơ sở dữ liệu và kết thúc khi một
lệnh COMMIT hay ROLLBACK được phát ra.
Sau lệnh COMMIT hay ROLLBACK, một chuyển tác mới tự động bắt đầu.
Tất cả các lệnh trong một chuyển tác hoặc là được lưu hết hay đều hồi phục lại
hết.
Việc COMMIT một chuyển tác tạo sự thay đổi thường trực từ toàn chuyển tác
vào cơ sở dữ liệu, và khi đã COMMIT, sự thay đổi không thể thay đảo lại. Sự
rollback đảo lại sự thêm, sửa đổi, xoá trong chuyển tác; và khi đã roll back,
những thay đổi này không thể COMMIT.
Ở bên trong, quá trình COMMIT có nghĩa là ghi những thay đổi đã ghi ở bộ
đệm chương redo log của SGA vào các tập tin redo log on line lên đĩa. Nếu
thao tác xuất nhập đĩa này thành công, ứng dụng nhận một thông báo chỉ định
một commit thành công
II.4. CÁC TÁC VỤ KHỞI TẠO VÀ CHẤM DỨT.
Một cơ sở dữ liệu Oracle có chỉ có sẵn cho user khi Oracle server được
startup và cơ sở dữ liệu được mở. Những tác vụ này cần được thực hiện bởi
người quản trị mạng. Việc khởi động một cơ sở dữ liệu và đưa ra những bước
sau:
♦ Khởi động một thể hiện của Oracle server.
♦ Mount cơ sở dữ liệu.
♦ Mở cơ sở dữ liệu.
Việc chấm dứt một cơ sở dữ liệu mà nó kết nối gồm:
Đóng cơ sở dữ liệu.
Dismount cơ sở dữ liệu.
Shutdown thể hiện của Oracle server.
II.5 BẢO MẬT CƠ SỞ DỮ LIỆU.
Các hệ thống cơ sở dữ liệu nhiều user như Oracle luôn bao gồm các đặc trưng
bảo mật kiểm soát được truy xuất và sử dụng cơ sở dữ liệu. Các cơ chế bảo mật
gồm:
Ngăn cản sự truy xuất dữ liệu trái phép.
tượng schema. Các user có đặc quyền thích hợp có thể gán cho các user khác
đặc quyền tuỳ ý; do đó, loại bảo mật này được gọi là “nhiệm ý”(discretionary).
Oracle quản lý sự bảo mật bằng các phương tiện sau:
SVTH: Đỗ Hữu Bá Trang 14
Hình 1: Các đặc trưng bảo mật của Oracle
Đặc quyền thực hiện ứng dụng
ACCTS_PAY
Đặc quyền thực hiện
ứng dụng ACCTS_REC
Đặc quyền
ứng dụng
User
PAY_CLERK Role
MANAGER
Role
REC_CLERK Role
Role
User
ACCTS_PAY Role ACCTS_REC Role Role ứng
dụng
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
Các User và các schema cơ sở dữ liệu
Các đặc quyền(privilege)
Các vai trò(role)
Chỉ định bộ nhớ và quota.
Giới hạn tài nguyên.
Kiểm tra.
II.6. USER CƠ SỞ DỮ LIỆU VÀ SCHEMA.
Mỗi cơ sở dữ liệu Oracle có một danh sách username. Để truy xuất một cơ sở
CẤP PRIVILEGE.
Privilege được cấp cho các user để họ có thể truy xuất và biến đổi dữ liệu
trong một cơ sở dữ liệu. Một user có thể nhận một privilege theo hai cách khác
nhau:
Các privilege có thể cấp cho user một cách tường minh. Ví dụ, privilege để
chèn các record vào bảng EMP có thể gán tường minh cho user scott.
Các privilege có thể gán cho các role( là một nhóm các privilege được đặt
tên), và sau đó role có thể gán cho một hay nhiều user. Ví dụ, privilege chèn
SVTH: Đỗ Hữu Bá Trang 15
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
các record vào bảng EMP có thể gán cho một role tên CLERK, và sau đó
role này sẽ được cấp cho các user SCOTT và BRIAN.
Do các role cho phép quản lý các privilege dễ dàng và tốt hơn , các privilege
thường được gán cho các role chứ không cho một user xác định.
ROLE
Cung cấp việc quản lý privilege một cách dễ dàng qua các role. Các role là
một nhóm các privilege có liên quan được đặt tên để cấp cho các user hay các
role khác. Các tính chất sau cho phép quản lý các role dễ dàng hơn:
Giảm việc cấp privilege-Thay vì cấp tường minh cùng một tập privilege cho
nhiều user, người quản trị cơ sở dữ liệu có thể gán các privilege cho một
role, sau đó người quản trị cơ sở dữ liệu có thể gán role cho các thành viên
của nhóm.
Quản lý privilege động- Khi các privilege của một nhóm cần thay đổi, chỉ
cần biến đổi privilege của role cần biến đổi. Domain bảo mật của tất cả các
user được cấp role của một nhóm tự động phản ánh thay đổi được thực
hiện trong role.
Tính sẵn có chọn lọc của privilege- Các role được cấp cho một user có thể
cho phép, sẵn dùng, hay không cho phép, không sẵn dùng, một cách chọn
lọc. Điều này cho phép điều khiển đặc quyền của một user trong tình huống
đã cho.
khác.
Các quota tablespace.
Oracle có thể giới hạn lượng không gian đĩa sẵn để cung cấp cho các đối
tượng trong một schema. Các quota có thể xác lập cho từng tablespace có sẵn
của user. Đặc trưng bảo mật quota tablespace điều khiển chọn lọc lượng không
gian đĩa tiêu tốn bởi các đối tượng của các schema xác định.
CÁC PROFILE VÀ GIỚI HẠN TÀI NGUYÊN.
Mỗi user được gán một profile chỉ định các giới hạn tài nguyên trên một số
tài nguyên hệ thống có sẵn cho user, bao gồm.
Số session có thể được thiết lập đồng thời bởi user.
Thời gian truy xuất CPU.
Sẵn có cho session của user.
Sẵn có cho lần gọi Oracle của một lệnh SQL.
Lượng xuất nhập logic:
Sẵn có cho session của user.
Sẵn có cho một lần gọi Oracle của một lệnh SQL.
Lượng thời gian rỗi cho phép của một session của user.
Lượng thời gian kết nối cho phép của một session của user.
Các giới hạn password:
Khóa account sau nhiều lần cố gắng login thất bại.
Sự hết hạn của password và chu kỳ gia hạn
Sự sử dụng lại password và các hạn chế phức tạp.
SỰ KIỂM TRA
Oracle cho phép kiểm tra chọn lọc( giám sát có đăng ký) các hành động của
user nhằm điều tra các sử dụng cơ sở dữ liệu không rõ ràng. Sự giám sát có thể
được thực hiện ở ba mức: kiểm tra lệnh, kiểm tra đặc quyền, kiểm tra các đối
tượng schema.
Kiểm tra lệnh: sự kiểm tra các lệnh SQL xác định mà không quan tâm đến tên
các đối tượng schema. Sự kiểm tra lệnh có thể mở rộng và kiểm tra tất cả các
user của hệ thống hay chỉ tập trung kiểm tra các user có lựa chọn hệ thống
ứng dụng, vì không ai tin rằng user chỉ truy cập đến dữ liệu thông qua dữ
liệu đã viết.
Bảo mật của ứng dụng có thể nâng cao mức bảo mật cơ sở dữ liệu bằng
cách giới hạn hơn nữa việc truy xuất đối tượng cơ sở dữ liệu bằng cách giới
hạn hơn nữa việc truy xuất đối tượng cơ sở dữ liệu và bằng cách cung cấp
một lớp trừu tượng bổ sung. Nếu giới hạn cả việc truy cập các stored
procedure, function của ứng dụng và tạo thêm các role đặc biệt cho ứng
dụng, ta có thể dấu các đối tượng ứng với các user đặc biệt hay các role đặc
biệt khi truy xuất hệ thống. Tương tự như chế độ bảo mật cơ bản, ứng dụng
có thể giới hạn việc truy xuất đến các cột hay chỉ định cột nào đó là chỉ đọc
bằng cách sử dụng các view khác nhau ứng với các role khác nhau của user.
Trong các ứng dụng thông thường, giao diện cho phép user làm việc với cơ
sở dữ liệu thông qua các trình đơn, các forms tương ứng với các tiến trình
và các đối tượng hoạt động. Đó là một lớp thuận lợi cho việc ngăn ngừa
user hiểu biết tên các bảng và các cột được truy xuất.
Trong nhiều trường hợp, thông tin của cơ sở dữ liệu sẽ dùng để quản lý các
hoạt động của giao diện, dựa trên các role của user. Các bảng của hệ thống
chứa các thông tin bảo mật cho ứng dụng sẽ điều khiển các khả năng của
giao diện là sẳn dùng. Các tuỳ chọn trình đơn và các forms sẽ được hiện ra
cho các user có đặc quyền và sẻ ẩn đi nếu user không được phép.
Một lý do nữa để cần phải sử dụng bảo mật ứng dụng là ta có thể truy xuất
cơ sở dữ liệu từ nhiều ứng dụng khác nhau. Lúc này user có thể có các role
khác nhau ứng với các ứng dụng khác nhau.
SỬ DỤNG ĐỐI TƯỢNG CƠ SỞ DỮ LIỆU CỦA ỨNG DỤNG.
Sự phân biệt giữa bảo mật ứng dụng và bảo mật cơ sở dữ liệu đôi lúc mập mờ
như khi ta dùng các đối tượng cơ sở dữ liệu của ứng dụng. Khi các ứng dụng
khác nhau cùng truy cập đến đến một cơ sở dữ liệu chung . Khi tạo ra các đối
tượng để dùng cho một ứng dụng cụ thể thì bảo mật ứng dụng là dùng chung.
Dù cho đối tượng tồn tại trong cơ sở dữ liệu, và bảo mật cơ sở dữ liệu đã được
áp dụng, nhưng nếu đối tượng đó chỉ dùng cho một ứng dụng cụ thể nào đó, thì
VIEWS
PROCEDURE VÀ FUNCTION BÊN TRONG LỚP ĐỐI TƯỢNG ỨNG
DỤNG CLIENT
Đối tượng ứng dụng
Đối tượng CSDL
Sequences
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
CHƯƠNG III: ORACLE VÀ MÔ HÌNH MẠNG.
I. Tổng quan về NET8.
Net8 là nền tảng cho các họ sản phẩm mà Oracle xây dựng nên. Nhờ vào Net8
tất cả mọi dịch vụ và ứng dụng của Oracle nằm trên các máy tính khác nhau
đều có thể dễ dàng truy cập và trao đổi dữ liệu với nhau như đang làm việc trên
cùng một máy. Chức năng chủ yếu là thiết lập các phiên chuyển tác mạng và
trao đổi giữa các máy client/server hay giữa các server-server với nhau. Mỗi
máy tính có ứng dụng Oracle muốn tham gia vào hệ thống mạng đều phải được
cài Net8 trên đó.
Các phiên kết nối mạng được thiết lập thông qua cơ chế lắng nghe và phản hồi.
Một chương trình trên máy chủ được gọi là listener sẽ chạy thường xuyên như
là một dịch vụ, tiếp nhận tất cả các kết nối từ các máy khác( máy client) đến cơ
sở dữ liệu( máy server, nơi chứa cơ sở dữ liệu và cũng là nơi Listener
đang hoạt động ).
Bộ tiếp nhận đóng vai trò như một môi giới hướng dẫn các yêu cầu kết nối
xuất phát từ máy client đến máy server. Mỗi khi có một máy client yêu cầu một
phiên kết nối mạng đến máy mà Listener đang hoạt động, Listener sẽ tiếp nhận
những thông tin kết nối do máy client đưa đến.
Nếu những thông tin này phù hợp với những thông tin mà mà Listener nắm
giữ thì máy client sẽ được listener cấp cho quyền kết nối vào máy server. Như
vậy muốn kết nối với cơ sở dữ liệu của Oracle một ứng dụng trên máy client
cần phải thiết lập đúng những thông số kết nối mà chương trình listener trên
máy server quy định.
Môi trường mạng của Oracle được xây dựng trên hai khái niệm:
• Tiến trình xử lý phân tán
• Cơ sở dữ liệu phân tán.
*Tiến trình xử lý phân tán
Cơ sở dữ liệu của Oracle và các ứng dụng phía client hoạt động theo cách
của một môi trường xử lý phân tán. Tiến trình xử lý phân tán là sự tương tác
giữa hai hay nhiều máy cùng truy xuất vào cơ sở dữ liệu khác nhau để hoàn tất
một thao tác chuyển tác về xử lý và truy xuất dữ liệu. Các ứng dụng bao gồm
những công cụ của Oracle như SQL*Plus, Schema Manager chẳng hạn đều có
khả năng yêu cầu nhiều Server chứa cơ sở dữ liệu đồng thời thực hiện các thao
tác khác nhau để trả về một kết quả truy vấn duy nhất.
Trong một cấu hình mạng điển hình, máy client và server được cài đặt như là
những thực thể tách biệt nhau về mặt vật lý cũng như logic. Cấu hình mạng
tách biệt này cho phép thể hiện sự phân công lao động giữa các và phân bổ tài
nguyên một cách hiệu quả. Những ,máy này không đòi hỏi cấu hình mạnh nên
chỉ là những máy cần tốc độ xử lý và bộ nhớ ở mức bình thường là đủ. Ngược
lại server được xem như là những máy chuyên biệt, lưu trữ tài nguyên và dữ
SVTH: Đỗ Hữu Bá Trang 22
Server
Client
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình
liệu để phân bố cho các client. Máy server thường trang bị cấu hình tối đa về
dung lượng đĩa, tốc độ xử lý, bộ nhớ, cơ chế bảo mật và sao lưu dữ liệu… Và
như vậy giữa client và Server đã có sự phân công và cùng hợp tác để phục vụ
cho mục đích xử lý dữ liệu của các chương trình.
• Cơ sở dữ liệu phân tán:
Là một cơ sở dữ liệu gồm nhiều cơ sở dữ liệu địa phương có quan hệ logic
với nhau mà được phân tán trên nhiều trạm làm việc của một mạng máy tính.
Đối với người dùng tập hợp cơ sở dữ liệu nằm rãi rác trên mạng có liên quan
đến nhau khi truy xuất sẽ được xem như là một cơ sở dữ liệu duy nhất. Các
Mỗi đoạn là một đơn vị logic của cơ sở dữ liệu phân tán mà nó được định
vị tại một hoặc nhiều trạm làm việc.
CÁC MỨC TRONG SUỐT KHÁC NHAU
* Mức trong suốt phân đoạn:
Người sử dụng biểu diễn ứng dụng trên các quan hệ tổng thể mà không hề
biết về sự phân đoạn cũng như sự sắp chỗ của quan hệ tổng thể.
Sự phân đoạn là hoàn toàn trong suốt đối với người sử dụng.
• Mức trong suốt ánh xạ định vị
Người sử dụng biểu diển trên các đoạn do vậy người sử dụng biết sự phân
đoạn của quan hệ tổng thể. Tuy nhiên sự định vị của các đọan là trong suốt đối
với người sử dụng.
• Mức trong suốt ánh xạ địa phương
Người sử dụng biểu diễn ứng dụng trên các đọan mà còn phải chỉ rõ làm
việc trên bản sao nào của đoạn.
CHƯƠNG IV: ORACLE VÀ CẤU HÌNH MẠNG
I. SERVICE VÀ NHỮNG CHỨC NĂNG PHỤC VỤ CỦA ORACLE.
Oracle xây dựng rất nhiều loại service để hỗ trợ và phục vụ cho các thao tác
kết nối cũng như truy xuất cơ sở dữ liệu. Một Service thường có hai thao tác
chính mà bạn cần quan tâm là START và STOP. Khi một Service được
START nó sẽ ở trạng thái sẵn sàng phục vụ cho mọi yêu cầu gửi đến theo cách
thức mà ứng dụng quy định. Khi STOP một Service cũng đồng nghĩa với các
dịch vụ hay ứng dụng mà bạn yêu cầu phục vụ không còn có sẵn nữa.
Chương trình listener của Oracle là một Service dễ hình dung nhất.
II. TỔNG QUAN VỀ CÁC CẤU HÌNH VÀ KẾT NỐI CỦA ORACLE.
Do cơ sở dữ liệu và các ứng dụng của Oracle hoạt động theo mô hình mạng
client/server nên hầu hết các cấu hình cần thiết lập cần phải ăn khớp nhau giữa
client với server.
Muốn cơ sở dữ liệu trên máy Server chấp nhận kết nối máy client cần phải
được cấu hình thiết lập các thông số cho Net Service Name các thông số mà
Net Service Name nắm giữ phải phù hợp với những thông số thiết lặp trong tập
Cấu hình quản lý tập trung.
Tất cả tên Net Service Name và địa chỉ kết nối với Server được đặt trên một
máy chủ khác(ONS- Oracle Name Server). Máy client chỉ cần quan tâm đến
địa chỉ máy ONS các thông tin khác về Server chứa cơ sở dữ liệu sẽ được ONS
cho biết. Công cụ hỗ trợ cấu hình này của Oracle là Oracle Net8 Assistance.
III. NET8 VÀ “NỀN GIAO TIẾP MẠNG TRONG SUỐT”.
Khái niệm “trong suốt” thường để chỉ những phần mềm trung gian giúp ta
thực hiện một thao tác nào đó mà không cần biết đến cơ chế hoạt động hay sự
hiện diện của thành phần trung gian. Oracle cung cấp mô hình hoạt động và
giao tiếp mạng tương tự như vậy. Tất cả các lời gọi kết nối đều với mạng đều
do TNS( Transaparent Network Subtrate) hay “Nền giao tiếp mạng trong suốt”
quản lý và chuyển tải. Kỹ thuật và nền tảng của TNS được xây dựng bên trong
Net8 cung cấp một cách giao tiếp duy nhất cho tất cả các giao thức mạng hiện
nay đang được sử dụng rộng rãi như: TCP/IP, IPX, Pies…
Với TNS mọi ứng dụng ngang hàng đều có thể kết nối được với nhau một
cách tự nhiên. Trong kiến trúc mạng ngang hàng gồm hai hay nhiều máy tính
( mỗi máy tính được xem như là một node hay là một nút mạng) có thể giao
tiếp trực tiếp với nhau không cần thông qua một thiết bị trung gian nào khác.
Với hệ thống ngang hàng mỗi node đều có thể đóng vai trò là một client hoặc
một server.
IV. CÁC TẦNG GIAO TIẾP.
Khái niệm xử lý các tiến trình phân tán mà ta đã nêu trước đây dựa vào khả
năng của nhiều máy tính tách biệt nhau có thể giao tiếp và tương tác với nhau
thông qua những tầng giao tiếp được thiết kế khác nhau về mặt vật lý.
Các tầng giao tiếp này được thiết kế theo mô hình hệ thống mở (Open System
Interconnection gọi tắt là OSI). Trong mô hình OSI, giao tiếp giữa các máy tính
khác biệt nhau được thực hiện thông qua việc phân chia trách nhiệm trong việc
chuyển và xử lý một gói thông tin xuyên qua nhiều tầng tách rời.
Phía máy client thông tin từ tầng cao nhất sẽ được phân tích và chuyển dần
xuống các tầng dưới. Tầng vật lý cuối cùng sẽ chuyển thông tin qua mạng đến