1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án tốt nghiệp :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

89 1,1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 89
Dung lượng 19,65 MB

Nội dung

đồ án tốt nghiệp :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

Trang 1

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.

Em xin chân thành cám ơn đến Tiến sĩ Nguyễn Ngọc Bình người đã trực tiếp hướng dẫn, động viên để em hoàn thành đồ án, tạo điều kiện để em thực hiện

Trang 2

PHẦN MỘT

Chương I CƠ SỞ LÝ THUYẾT 2

I Lịch sử ORACLE 2

II Cơ sở dữ liệu ORACLE trong kiến trúc CLIENT/SERVER 4

III Hệ quản trị Cơ sở dữ liệu Quan hệ ORACLE8 SERVER 4

IV Các sản phẩm kết nối mạng 5

V Các công cụ phát triển CLIENT/SERVER 5

Chương II: CẤU TRÚC ORACLE 7

II.1 Lớp vật lý của ORACLE 7

II.2 Cấu trúc bộ nhớ và các quá trình 11

II.3 Transaction, Commit, Rollback 13

II.4 Các tác vụ khởi tạo và chấm dứt 13

II.5 Bảo mật cơ sở dữ liệu 14

Chương III ORACLE VÀ MÔ HÌNH MẠNG. I Tổng quan về Net8 20

II Các khái niệm và kiến trúc mạng của Oracle 21

III Kiến trúc của Net8 21

IV Môi trường mạng 21

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

Trang 3

Tài liệu tham khảo

PHẦN MỘT

Chương I:CƠ SỞ LÝ THUYẾT

I LỊCH SỬ ORACLE.

Vào năm 1977, Larry Ellison, Bob Miner, và Ed Oates thành lập một công ty

và đặt tên là Relation Software Incorporated(RSI) Công ty này xây dựng một

hệ quản trị cơ sở dữ liệu gọi là Oracle Ellison, Miner và Oates quyết định pháttriển hệ này bằng C và giao tiếp SQL Ngay sau một thời gian ngắn, họ đưa raphiên bản một như một nguyên mẫu Năm 1979, RSI phân phối sản phẩm đầutiên cho khách hàng: hệ quản trị cơ sở dữ liệu Oracle phiên bản 2, làm việc trênDigital PDP-11 chạy hệ điều hành RSX-11 và ngay sau đó chuyển sang hệthống DEC VAX

Năm 1983 phiên bản 3 được giới thiệu với những thay đổi trong ngôn ngữ

SQL Không như các phiên bản trước đây , phiên bản 3 được viết toàn bộ bằng

C Vào thời điểm này , RSI được đổi tên thành Oracle Corporation

Phiên bản 4 được phát hành vào năm 1984 Phiên bản 5 được giới thiệu vàonăm 1985, là mốc lịch sử vì nó đưa công nghệ Client/ Server vào thị trườngvới việc sử dụng SQL*Net

Năm 1988, Oracle đưa ra phiên bản 6, giới thiệu việc khoá ở mức thấp Oracle

7 được phát hành năm 1992 bao gồm nhiều thay đổi kiến trúc về bộ nhớ, CPU

và tiện ích xuất /nhập Năm 1997 Oracle giới thiệu Oracle8, thêm phần mởrộng đối tượng cũng như nhiều tính năng và công cụ quản trị mới đặc biệtOracle 8i phiên bản hỗ trợ nhiều tính năng mới và đặc biệt là các ứng dụng cơ

sở dữ liệu Internet

I.1 ORACLE VÀ CÔNG NGHỆ CLIENT/ SERVER.

Oracle Corporation trở thành một công ty cơ sở dữ liệu nổi tiếng nhờ tạo ramột hệ thống quản trị cơ sở dữ liệu quan hệ kiểu Server với hiệu suất cao vàđầy đủ chức năng Oracle đã vượt qua tầm vóc của một công ty cơ sở dữ liệukhi bổ sung hệ quản trị cơ sở dữ liệu quan hệ kiểu Server của nó những sảnphẩm tích hợp cao được thiết kế đặc biệt cho các ứng dụng xử lý dữ liệu phântán và công nghệ Client/ Server

II.CƠ SỞ DỮ LIỆU ORACLE TRONG KIẾN TRÚC CLIENT/SERVER.

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ủakiế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ườngGUI

 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

Trang 4

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ườngcông ty

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ácnguyên tố ngôn ngữ thủ tục có cấu trúc với SQL PL/SQL được thiết kế đặcthù để xử lý client/server, trong đó nó cho phép một khối chương trìnhPL/SQL chứa logic ứng dụng như các lệnh SQL để đệ trình đến Server vớimột yêu cầu đơn Khi sử dụng PL/SQL có thể giảm một cách đáng kể khốilượng xử lý yêu cầu bởi phần Client của ứng dụng và sự lưu chuyển trênmạ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 độlưu thông trên mạng

 Các stored procedure cung cấp một cơ chế bảo mật hiệu quả và tiện lợi

 Cả hai dạng text và đã biên dịch của các stored procedure đều nằmtrong cơ sở dữ liệu Do dạng biên dịch của thủ tục có sẵn và sẵn sàng thựchiện, nhu cầu phân tích cú pháp và biên dịch PL/SQL lúc thi hành đượcgiảm nhẹ

Database trigger: Các trigger cơ sở dữ liệu giống như các stored procedure

ở chỗ chúng là các khối PL/SQL thường trú trong cơ sở dữ liệu

Tính toàn vẹn có thể khai báo

Khi ta định nghĩa một bảng trong Oracle, các ràng buộc toàn vẹn như là mộtphần của định nghĩa bảng Các ràng buộc được hỗ trợ bởi Server khi một bảnghi được chèn, sữa đổi hay xoá

Tính toàn vẹn được hỗ trợ bởi Server làm số mã yêu cầu để kiểm tra bênclient và cũng tăng sức mạnh của mô hình giao dịch được định nghĩa bên trong

cơ sở dữ liệu

Các User-defined function: Các user- defined function cũng tương tự các

stored procedure

IV CÁC SẢN PHẨM KẾT NỐI MẠNG.

Net8: Là một phần mềm kết nối cơ sở dữ liệu dùng để cung cấp các thông

tin cơ sở dữ liệu xác thực, tối ưu trên mọi thủ tục mạng thông dụng

Oracle Names: Tạo các liên kết cơ sở dữ liệu chứa các thông tin nút mạng

trên một mạng bằng cách sử dụng từ điển toàn cục chung Oracle Names

Multi- protocol Interchange: cung cấp một nhu cầu giao tiếp trên các thủ

tục khác biệt bằng cách gửi thông điệp SQL* Net từ thủ tục này sang thủtục khác

liệu phân tán được thực hiện dễ dàng với Network Manager NetworkManager được sử dụng không chỉ để quản lý từ điển Oracle Names mà còntạo ra các file cấu hình cho các thành phần Client/Server của SQL*Net vàđịnh nghĩa cho các đường kết nối cho các nút Multi-Protocol Interchange

Trang 5

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

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

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 đượctí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

Trang 6

 Sản xuất.

Các ứng dụng OnLine Analytical Processing( OLAP).

Các ứng dụng OLAP cung cấp một giao diện đồ hoạ cho các ứng dụng kho dữliệu nhỏ Những công cụ này đưa ra mô hình đa chiều cho cơ sở dữ liệu, cungcấp các tác vụ thiết kế, dự báo và thống kê

3 CÁC HƯỚNG PHÁT TRIỂN CỦA ORACLE.

Khách/chủ không dây:Công nghệ này làm việc trên các mạng nhỏ, đặc

biệt thích hợp với người sử dụng laptop và palmtop Một dạng hơi tiên tiến

khác của công nghệ khách /chủ là Oracle Mobile Agents, sử dụng kiến trúc clien-agent-server cho phép một client làm việc offline và kết nối định kỳ

với mạng để gửi yêu cầu và nhận kết quả từ server Thành phần agent của

kiến trúc này hoạt động thay cho client khi nó vắng mặt trên mạng.

Giao diện Internet/ World Wide Web: Web interface Kit của Oracle

được dùng để tích hợp các server World Wide Web với cơ sở dữ liệuOracle8

Multimedia Server: Khi các ứng dụng sử dụng nhiều kiểu dữ liệu khác

nhau, đặc biệt là dữ liệu multimedia, công nghệ server cơ sở dữ liệu cũngcải thiện để quản lý chúng

II.1 LỚP VẬT LÝ CỦA ORACLE.

1 Lớp vật lý của Oracle bao gồm: các tập tin dữ liệu(data file), các tập tin

điều khiển( control file) và các tập tin phục hồi( redo log file)

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

Trang 7

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áttriể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ậptin đ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ượngOracle 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ởimộ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 khungthuộ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 Oracletrong 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ồntạ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ảnngười dùng để giữ dữ liệu cho hai hệ ứng dụng khác nhau; ta sẽ có hai cơ sở dữliệu logic được cài đặt trên cùng cơ sở dữ liệu vật lý sử dụng hai tài khoảnngười dùng Oracle

3 SCHEMA cơ sở dữ liệu.

Tổng quan về các đối tượng của Schema:

Một schema kết hợp với một user cơ sở dữ liệu Một schema là một tập

sau:table,view,sequence,synonym,index,cluster,database

link,snapshot ,store procedure, function, triger, package

Các đối tượng schema là cấu trúc lưu trữ dữ liệu logic Các đối tượng schemakhông có mối tương ứng một-một với các tập tin trên đĩa lưu trữ thông tin củanó.Tuy nhiên, Oracle lưu một đối tượng schema trong một không gian bảngcủa cơ sở dữ liệu về mặt logic Dữ liệu của mỗi đối tượng được lưu trữ vật lýbên trong một hay nhiều tập tin của không gian bảng Đối với một đối tượngnhư: table, index, và cluster ta có thể chỉ định lượng không gian đĩa Oracleđịnh vị cho đối tượng bên trong tập tin dữ liệu của không gian bảng

3.1 Table

Table là đơn vị lưu trữ dữ liệu trong Oracle Dữ liệu được lưu trong các hàng

và các cột Ta định nghĩa một table với một tên bảng và một tập các cột Ta gáncho mỗi cột một tên cột, một kiểu dữ liệu một chiều dài hay độ chính xác vàscale Một hàng là một tập các thông tin cột tương ứng với một bản ghi đơn

Trang 8

Ta có thể định nghĩa tuỳ ý các quy tắc đặc thù cho mỗi cột trong bảng Nhữngquy tắc này gọi là các ràng buộc toàn vẹn.

3.2 View

Một view là sự hiển thị dữ liệu chứa trong một hay nhiều bảng Một view lấykết xuất của một query và xử lý nó như một bảng Vì vậy một view có thể xemnhư là bảng ảo Ta có thể sử dụng view hầu như ở mọi chỗ có thể sử dụngbảng

3.3 Bộ sinh mã tuần tự.

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ệthữ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ênsequence, tăng lên hay giảm xuống, bước nhảy giữa các số, và các thông tinkhá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ệtnhư 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 Systemluô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ố sequencehiệ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ộtsequence 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ữudụ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ỏ quanế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ộttable,view,snapshot ,sequence,function hay packagesequence Do mộtsynonym 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 dữ liệu

Các synonym thường được sử dụng do tính bảo mật và tiện lợi Ví dụ, chúng

ta có thể làm những việc sau:

 che tên và chủ của một đối tượng

 cung cấp vị trí trong suốt các đối tượng từ xa của cơ sở dữ liệu phântán

 đơn giản hoá các lệnh SQL cho người dùng cơ sở dữ liệu

Trang 9

Ta có thê tạo ra cả synonym toàn cục lẫn riêng biệt Một synonym toàn cụcthuộc quyền một nhóm user đặc biệt tên PUBLIC và mọi USER trong một cơ

sở dữ liệu có thể truy xuất nó Một synonym riêng nằm trong schema của mộtuser đặc thù mà kiểm soát tính sẵn dùng của nó cho user khác

Các synonym rất hữu ích cho cả môi trường cơ sở dữ liệu phân tán và khôngphân tán do chúng dấu chỉ danh của đối tượng đang được chỉ định, bao gồm

cả vị trí trong một hệ phân tán Đây là một ưu điểm vì nếu đối tượng đang chỉđịnh cần phải đổi tên hay di chuyển, chỉ cần định nghĩa lại các synonym vàcác ứng dụng dựa trên các synonym vẫn tiếp tục hoạt động mà không cần biếnđổi

3.5 Index.

Index là cấu trúc tuỳ chọn kết hợp với các table và các cluster Ta có thể tạo

ra các index tường minh để tăng tốc độ thực hiện SQL trên một bảng Cũngnhư các Index trong một cuốn sách giúp ta định vị thông tin nhanh hơn so vớikhi không có index, một index Oracle cung cấp một đường truy xuất dữ liệucủa bảng nhanh hơn Các index là các phương thức chủ yếu giảm xuất/nhậpđĩa khi sử dụng thích hợp

Sự vắng mặt hay hiện diện của một Index không yêu cầu thay đổi bất kỳ mộtlệnh SQL nào Một index đơn thuần chỉ là một đường truy xuất nhanh đến dữliệu, nó chỉ ảnh hưởng đến tốc độ thực hiện Cho một giá trị dữ liệu đã đượcIndex, index trỏ trực tiếp vào vị trí của hàng chứa giá trị đó

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ốchay 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àmviệ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 khithê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àocủ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áchà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ảmhiệ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ợpvớ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ácbả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ộctoàn vẹn UNIQUE trên cột mong muốn Oracle hỗ trợ ràng buộc toàn vẹnUNIQUE 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ộttrong một index composite có thể xuất hiện theo một thứ tự bất kỳ không cầnnằ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

Trang 10

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ự

khác nhau giữa chúng Index là các cấu trúc thật sự được lưu trong cơ sở dữliệu, mà user tạo ra, thay thế hay xoá bằng các lệnh SQL Ta có thể tạo ra mộtindex để tăng nhanh sự truy xuất đến bảng dữ liệu Key là một khái niệm hoàntoàn logic Các key tương ứng với một đặc trưng khác của Oracle gọi là ràngbuộc toàn vẹn

Các ràng buộc toàn vẹn hỗ trợ các quy luật hoạt động Do Oracle sử dụngIndex để hỗ trợ một số ràng buộc toàn vẹn, thuật ngữ index và key thường dùngthay thế cho nhau

3.6 Cluster.

Cluster là một phương pháp tùy chọn để lưu trữ dữ liệu bảng Một cluster làmột nhóm các bảng có cùng các khối dữ liệu do chúng có các cột chung vàthường sử dụng chung với nhau

Do các cluster lưu trữ các hàng liên quan của hai bảng khác nhau trong cùngmột khối dữ liệu, sử dụng cluster một cách thích hợp sẽ có hai lợi điểm sau:

 Việc xuất nhập đĩa giảm và cải thiện thời gian truy cập nhờ nối các bảngcluster

 Trong một cluster, một giá trị key cluster đối với mỗi hàng Mỗi giá trị keycluster được lưu trữ chỉ một lần trong cluster và trong index cluster, khôngcần biết có bao nhiêu hàng của các bảng khác nhau chứa giá trị đó

Vì vậy, không gian lưu trữ các bảng liên hệ và dữ liệu index trong một clusterluôn hơn khi không cluster

Cluster có thể làm giảm hiệu năng của lệnh INSERT so với việc lưu trữ cácbảng tách riêng với index của nó Khuyết điểm này liên quan đến việc sử dụngkhông gian và sơ đồ khối dữ liệu cần phải xem để quét một bảng Do nhiềubảng có dữ liệu trong mỗi khối, lưu trữ một bảng có cluster cần sử dụng nhiềukhối hơn là bảng không cluster

Để các định dữ liệu thích hợp lưu trữ ở dạng cluster hay là không cluster, hãytìm các bảng liên quan đến các ràng buộc toàn vẹn tham chiếu và các bảngthường được truy xuất với nhau thông qua việc sử dụng một kết nối

Nếu ta thực hiện cluster các bảng trên các cột sử dụng để nối dữ liệu bảng, tagiả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ớikế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ồntạ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ưutrữ 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ớiOracle: Vùng toàn cục hệ thống( system global area- bao gồm các buffer cơ sở

Trang 11

dữ liệu, các buffer redolog, và shared pool) và vùng toàn cục chươngtrì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

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ộtthể hiện Oracle Một SGA và các quá trình chạy ngầm của Oracle tạo nên mộtthể 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ệnchấm dứt Mỗi thể hiện có vùng SGA riêng của nó

Các user đang nối vào một Oracle server chia sẻ dữ liệu trong SGA Để đạthiệu năng tối ưu , toàn bộ SGA càng lớn càng tốt để trữ dữ liệu trong bộ nhớcàng nhiều càng tốt giảm truy xuất đĩa Thông tin lưu trữ trong SGA được chiathành vài loại cấu trúc bộ nhớ: các bộ đệm buffer cơ sở dữ liệu, các bộ đệmredo log, các vùng chia sẽ Những vùng này có kích thước cố định và được tạo

ra khi thể hiện setup

Bộ đệm cơ sở dữ liệu

Bộ đệm cơ sở dữ liệu của SGA lưu trữ những khối dữ liệu thường được sửdụng nhất; tập hợp các bộ đệm cơ sở dữ liệu trong một thể hiện gọi là databasebuffer cache Buffer cache chứa các khối đã biến đổi Do những dữ liệu thườngđược dùng nhất lưu trong bộ nhớ, việc xuất nhập đĩa giảm đi và hiệu năng đượccải thiện

Bộ đệm redo log

Redo log buffer của SGA lưu trữ các mục redo-quá trình các thay đổi của cơ

sở dữ liệu Các mục redo log lưu trong các redo log buffer được ghi vào trongmột tập tin redo log online, sẽ được sử dụng khi cần khôi phục cơ sở dữ liệu.Kích thước của nó không đổi

Vùng chia sẻ

Share pool là một phần của SGA chứa các cấu trúc bộ nhớ dùng chung nhưcác vùng SQL dùng chung Một vùng SQL dùng chung được dùng để xử lýmọi lệnh SQL xác định đưa tới cơ sở dữ lịêu Một vùng SQL dùng chung chứathông tin như cây cú pháp và kế hoạch thực hiện tương ứng Một vùng SQLdùng chung được sử dụng bởi nhiều ứng dụng phát cùng lệnh, để nhiều vùngnhớ chia sẻ hơn cho các user khác

Các cán lệnh

Một currsor là một cán bộ nhớ kết hợp với một lệnh xác định Mặc dù hầu hết

các user Oracle dựa vào sự quản lý tự động các currsor của các tiện ích

Trang 12

Oracle, các yêu cầu về lập trình giao diện(GUI) đề nghị các nhà thiết kế ứngdụ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ìnhserver 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ậtngữ 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ìnhOracle

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ộtchương trình ứng dụng (như chương trình Pro*C/C++) hay một công cụ củaOracle(như Oracle Enterprise Manager) Quá trình user cũng quản lý sự giaotiế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ươngtrì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ácchứ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

Oracle tạo ra các quá trình server để quản lý các yêu cầu từ các quá trìnhkết nối của user Một quá trình Server có nhiệm vụ giao tiếp với quá trìnhuser 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ếthợ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átrình server Trong một cấu hình server chuyên dùng, một quá trình server quản

lý các yêu cầu cho một quá trình user đơn lẻ Cấu hình server đa luồng chophép nhiều quá trình user chia sẻ một số nhỏ các quá trình server, giảm thiểu sốquá trình server và tối ưu hoá giảm thiểu tài nguyên hệ thống có sẵn

Trong một số hệ thống, các quá trình user và server được tách biệt riêng, trongkhi các hệ thống khác chúng được kết hợp thành một tuyến trình đơn Nếu một

hệ thống sử dụng Server đa luồng hay nếu các quá trình user và server chạytrên các máy khác nhau, chúng cần phải tách riêng Các hệ thống client/servertách riêng các quá trình user và server và thực hiện chúng trên các máy khácnhau

Oracle tạo ra một tập các quá trình background cho mỗi thể hiện Chúng hợpnhất các chức năng mà lẻ ra sẽ được quản lý bởi nhiều chương trình Oraclechạy cho mỗi quá trình user Các quá trình background đồng bộ hoá việc thựchiện xuất nhập và giám sát các quá trình Oracle khác để cung cấp cơ chế songhành nhằm cải thiện hiệu năng và độ tin cậy

Trang 13

Một SGA và một tập các quá trình background tạo nên một thể hiện Oracle.Mỗi thể hiện Oracle có thể sử dụng một vài quá trình background.

Giao diện chương trình là cơ chế giao tiếp của một quá trình server và user Nócung cấp một phương thức giao tiếp chuẩn giữa một công cụ hay một ứng dụngclient bất kỳ (như Oracle forms) và phần mềm Oracle Nó có chức năng:

 hoạt động như một cơ chế giao tiếp bằng cách định dạng yêu cầu dữ liệu,truyền dữ liệu, bẩy và trả về lỗi

 Thực hiện việc chuyển đổi và dịch dữ liệu, đặc biệt giữa các loại máy tínhkhác nhau hay dịch sang kiểu dữ liệu chương trình user

II.3 TRANSACTION, COMMIT, ROLLBACK.

Một Transaction là một đơn vị làm việc nguyên tố bao gồm một hay nhiều

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ộtlệ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ạihế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ácvà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ếuthao 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ỉ địnhmộ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 đượcstartup và cơ sở dữ liệu được mở Những tác vụ này cần được thực hiện bởingười quản trị mạng Việc khởi động một cơ sở dữ liệu và đưa ra những bướcsau:

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ưngbả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ậtgồm:

 Ngăn cản sự truy xuất dữ liệu trái phép

 Ngăn cản sự truy xuất trái phép các đối tượng schema

 Điều khiển việc sử dụng đĩa

 Điều khiển việc sử dụng các tài nguyên hệ thống

 Giám sát các hành động của user

Trang 14

Theo mặc định,mỗi user tạo ra và có quyền đối với tất cả các đối tượng trongschema tương ứng.

Tính bảo mật cơ sở dữ liệu có thể phân làm hai loại riêng biệt: bảo mật hệ thống và bảo mật dữ liệu

Bảo mật hệ thống gồm các cơ chế điều khiển việc truy xuất và sử dụng cơ sở

dữ liệu ở mức hệ thống Ví dụ bảo mật hệ thống bao gồm:

 Sự kết hợp hợp lệ username/password

 Lượng không gian đĩa sẵn có cho mỗi đối tượng schema của user

 Giới hạn về tài nguyên cấp cho user

Cơ chế bảo mật hệ thống kiểm tra:

 User có quyền truy xuất vào cơ sở dữ liệu hay không?

 Sự giám sát dữ liệu có hoạt động hay không?

 Các tác vụ hệ thống nào user có thể thực hiện?

Bảo mật dữ liệu bao gồm các cơ chế điều khiển sự truy xuất và sử dụng cơ sở

dữ liệu ở mức đối tượng schema Ví dụ bảo mật dữ liệu bao gồm:

 Xác định quyền của user với một đối tượng schema xác định và những tác

vụ nhất định mà user có thể thực hiện trên đối tượng của schema đó( ví dụ,user SCOTT có thể phát sinh lệnh SELECT và INSERT nhưng không thểdùng lệnh DELETE đối với bảng EMP)

 Các tác vụ, nếu có, được giám sát với mỗi đối tượng hệ thống

CÁC CƠ CHẾ BẢO MẬT.

Oracle Sever cung cấp sự điều khiển truy xuất theo nhiệm ý, tức là một cáchgiới hạn sự truy xuất thông tin dựa trên đặc quyền(privilege) Một đặc quyềnthích hợp cần gán cho một user để user đó có quyền tác động/ xử lý một đốitượ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:

User

Role User

dụng

Trang 15

 Các User và các schema cơ sở dữ liệu

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ở

dữ liệu, một user cần sử dụng ứng dụng cơ sở dữ liệu và gắn với một usernamehợp lệ của cơ sở dữ liệu Mỗi username có một password kết hợp để ngăn ngừa

sự truy xuất trái phép

DOMAIN SECURIY(bảo mật vùng).

Mỗi user có một domain security- là một tập các tính chất xác định những

điều như:

 Các hoạt động(privilege và role) sẵn có cho user

 Các quote tables( không gian đĩa có sẵn) cho user

 Giới hạn tài nguyên hệ thống( ví dụ, thời gian xử lý cho CPU) cho user

PRIVILEGE (Đặc quyền)

Một privilege là quyền thực hiện một lọai lệnh SQL đặc biệt Một số privilegenhư:

 Quyền kết nối vào cơ sở dữ liệu( tạo ra một session)

 Quyền tạo bảng trong schema của mình

 Quyền chọn các hàng từ bảng của User khác

 Quyền thực hiện các store procedure của user khác

Các privilege của một cơ sở dữ liệu Oracle có thể chia thành hai lọai riêngbiệt: privilege hệ thống và privilege của các đối tượng schema

PRIVILEGE hệ thống.

Privilege hệ thống cho phép user thực hiện một hành động mức hệ thống đặcbiệt hay một hành động đặc biệt trên một loại đối tượng schema đặc biệt Vídụ., đặc quyền tạo một tablespace hay xóa các hàng trong cơ sở dữ liệu là cácđặc quyền mức hệ thống Nhiều đặc quyền hệ thống chỉ dành cho người quảntrị và các nhà phát triển ứng dụng do các đặc quyền này rất mạnh

PRIVILEGE đối tượng schema

Privilege đối tượng schema cho phép các user thực hiện một hành động đặcbiệt trên một đối tượng schema đặc biệt Ví dụ, đặc quyền xoá một số hàng củamột bảng, đặc biệt là một privilege đối tượng Privilege đối tượng được gáncho các người dùng cuối để họ có thể thực hiện một ứng dụng cơ sở dữ liệunhằm thực hiện một tác vụ xác định

CẤP PRIVILEGE.

Privilege được cấp cho các user để họ có thể truy xuất và biến đổi dữ liệutrong một cơ sở dữ liệu Một user có thể nhận một privilege theo hai cách khácnhau:

 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

Trang 16

 Các privilege có thể gán cho các role( là một nhóm các privilege được đặttên), và sau đó role có thể gán cho một hay nhiều user Ví dụ, privilege chèncá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 privilegethườ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ácrole 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 chonhiều user, người quản trị cơ sở dữ liệu có thể gán các privilege cho mộtrole, sau đó người quản trị cơ sở dữ liệu có thể gán role cho các thành viêncủ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ácuser được cấp role của một nhóm tự động phản ánh thay đổi được thực hiệntrong 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ọnlọ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

dữ liệu

DBA có thể tạo ra một role có password để ngăn cản sự sử dụng trái phép cácprivilege cấp cho role Thông thường, một ứng dụng được thiết kế sao cho khikhởi động nó cho phép một role thích hợp Do đó, user sử dụng ứng dụngkhông cần biết password của một role của ứng dụng

CÁC XÁC LẬP LƯU TRỮ QUOTA.

Oracle cung cấp các biện pháp để định hướng và giới hạn việc sử dụng khônggian của cơ sở dữ liệu trên từng User, bao gồm các tablespace, tablespace mặcđịnh, tablespace tạm thời và các quota tablespace

Tablespace tạm thời.

Mỗi user có một tablespace mặc định Khi user tạo ra một bảng index hay

cluster mà không chỉ định cụ thể một tablespace, tablespace mặc định sẽ được

sử dụng nếu user có privilege tạo ra các đối tượng schema và có quota trongtablespace mặc định Đặc trưng tablespace mặc định giúp Oracle chỉ định nơilưu trữ trong trường hợp vị trí của đối tượng schema không được chỉ định

Tablespace tạm thời.

Trang 17

Mỗi user có một tablespace tạm thời Khi một user thực hiện một lệnh SQL,

mà yêu cầu tạo ra một segment tạm thời( như tạo một index), tablespace tạmthời của các user vào một tablespace riêng, đặc trưng tablespace tạm thời cóthể giảm sự tranh chấp xuất hiện giữa các segment tạm và các loại segmentkhá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 đốitượng trong một schema Các quota có thể xác lập cho từng tablespace có sẵncủa user Đặc trưng bảo mật quota tablespace điều khiển chọn lọc lượng khônggian đĩ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ủauser 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 đốitượ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êncác đối tượng schema Sự kiểm tra lệnh có thể mở rộng và kiểm tra tất cả cácuser của hệ thống hay chỉ tập trung kiểm tra các user có lựa chọn hệ thốngKiểm tra đặc quyền: sự kiểm tra các đặc quyền hệ thống quan trọng mà khôngquan 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ựachọn hệ thống

Kiểm tra các đối tượng schema: Kiểm tra sự truy xuất đến một đối tượngschema nhất định mà không quan tâm đến user Sự kiểm tra đối tượng giám sátcác lệnh được cho phép theo đặc quyền đối tượng, như các lệnh SELECT hayDELETE trên một bảng đã cho

Đối với tất cả các loại kiểm tra, Oracle cho phép kiểm tra chọn lọc sự thựchiện lệnh thành công, sự thực hiện lệnh không thành công, hay cả hai Điều nàycho phép giám sát các lệnh khả nghi, không kể user có phát lệnh có đặc quyềnthích hợp hay không

Trang 18

TRUSTED ORACLE.

Trusted Oracle là một sản phẩm quản lý bảo mật cơ sở dữ liệu nhiều mức củacông ty Oracle Nó được thiết kế để cung cấp khả năng bảo mật cơ sở dữ liệucao nhằm phục vụ yêu cầu các tổ chức xử lý những dữ liệu tế nhị hay bảo mật.Trusted Oracle tương thích với các sản phẩm cơ bản của Oracle, và nó hỗ trợtất cả các chức năng của Oracle

II.7 BẢO MẬT ỨNG DỤNG.

1 Tổng quan

Chế độ bảo mật ứng dụng giới hạn việc truy cập cơ sở dữ liệu từ phíaClient của hệ thống Bảo mật cơ sở dữ liệu giới hạn đến việc truy xuất đến cácđối tượng cơ sở dữ liệu đặc biệt trong khi bảo mật ứng của ứng dụng giới hạnviệc truy xuất các đối tượng giao diện đặc biệt Nói rộng ra, bảo mật ứng dụngbao gồm cả việc sử dụng bất kỳ đối tượng cơ sở dữ liệu nào của ứng dụng đượcdùng để nâng cao chế độ bảo mật

 Bảo mật của ứng dụng được sử dụng để tăng cường và bổ sung chế độ bảomật của cơ sở dữ liệu Tuy thế, không nên chỉ tin vào chế độ bảo mật củaứ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ằngcá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ớihạ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ấpmột lớp trừu tượng bổ sung Nếu giới hạn cả việc truy cập các storedprocedure, function của ứng dụng và tạo thêm các role đặc biệt cho ứngdụng, ta có thể dấu các đối tượng ứng với các user đặc biệt hay các role đặcbiệ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ỉ đọcbằ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ừauser 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áchoạ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ốngchứ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ủagiao diện là sẳn dùng Các tuỳ chọn trình đơn và các forms sẽ được hiện racho 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 rolekhá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ụngkhác nhau cùng truy cập đến đến một cơ sở dữ liệu chung Khi tạo ra các đốitượ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

Trang 19

áp dụng, nhưng nếu đối tượng đó chỉ dùng cho một ứng dụng cụ thể nào đó, thì

ta có thể coi đó là ứng dụng chủ “Owner” của nó

Theo định nghĩa chung về bảo mật ứng dụng hệ thống, các đối tượng “cơbản”( cluster, tables, indexes, sequence) và các quyền cấp cho các đối tượngnày thuộc loại bảo mật cơ sở dữ liệu Các đối tượng khác như view, procedures

và function được coi là các đối tượng cơ sở dữ liệu ứng dụng và các quyền cấp

về chúng thuộc loại bảo mật ứng dụng

Thông thường, trong môi trường cơ sở dữ liệu lớn, nhà quản trị cơ sở dữ liệuchính sẽ không chịu trách nhiệm về việc tạo và bảo trì các đối tượng cơ sở dữliệu ứng dụng Một cách có thể áp dụng để tạo bảo mật cho một cơ sỏ dữ liệulớn được truy xuất từ nhiều ứng dụng là cung cấp quyền tạo sequence và viewscủa các bảng cho các nhà phát triển hay quản trị để họ đóng vai trò là nhữngnhà quản trị cơ sở dữ liệu cho các ứng dụng riêng biệt của mình

Hình 2 Vai trò của các đối tượng cơ sở dữ liệu trong bảo mật ứng dụng.

Trang 20

SEQUENCESVIEWS

Trang 21

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 Net8tấ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êncù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ỗimáy tính có ứng dụng Oracle muốn tham gia vào hệ thống mạng đều phải đượccà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ốixuấ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ộtphiên kết nối mạng đến máy mà Listener đang hoạt động, Listener sẽ tiếp nhậnnhữ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ắmgiữ 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 clientcần phải thiết lập đúng những thông số kết nối mà chương trình listener trênmáy server quy định

Trên một môi trường mạng rộng lớn đòi hỏi nhiều kết nối đến cơ sở dữ liệu đểtruy xuất cùng một dịch vụ, thay vì sử dụng cơ chế listener Net8 cho phép càiđặt bộ tiếp nhận listener và quản lý các kết nối trên một máy tính riêng biệtbằng chương trình Oracle Connection Manager Khi đó thao tác kết nối vớilistener nằm trên một máy tính trung gian không còn hoạt động chung với cácdịch vụ trên máy server nữa

II CÁC KHÁI NIỆM VÀ KIẾN TRÚC MẠNG CỦA ORACLE.

Net8 sử dụng khái niệm” Nền giao tiếp mạng trong suốt”(Trasparent Net WorkSubtrate) gọi tắt là TNS, cùng với các chuẩn công nghiệp về giao tiếp mạng đểthực hiện những kết nối giữa máy client-server cũng như thiết lập các phiênlàm việc trên mạng cho ứng dụng Oracle Net8 đảm nhiệm khả năng giao tiếpgiữa nhiều máy trong hệ một hệ thống mạng thực hiện những chuyển tác phântán của Oracle bất chấp các kết nối được thực hiện dưới hình thức client-serverhay giữa các server-server với nhau Hoạt động của các dịch vụ mà Net8 cungcấp chủ yếu là ba thao tác:

 Thao tác thực hiện kết nối giữa các máy

 Thao tác trên dữ liệu

 Các tháo tác xử lý ngọai lệ

Trang 22

III KIẾN TRÚC CỦA NET8

Kiến trúc của Net8 gồm:

 Môi trường mạng

 Net8 và nền giao tiếp mạng trong suốt

 Các tầng giao tiếp mạng

 Các tầng giao tiếp mạng bên trong môi trường mạng điển hình của Oracle

 Các tầng giao tiếp mạng trong môi trường IIOP

 Tương tác giữa Server và Server

 Các tầng giao tiếp mạng trong môi trường JDBC

IV MÔI TRƯỜNG MẠNG.

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ácgiữ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ấtmộ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ồmnhữ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 thaotá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ạngtá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àinguyê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ênchỉ là những máy cần tốc độ xử lý và bộ nhớ ở mức bình thường là đủ Ngược

Server

Client

Trang 23

lại server được xem như là những máy chuyên biệt, lưu trữ tài nguyên và dữ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.

Là một cơ sở dữ liệu gồm nhiều cơ sở dữ liệu địa phương có quan hệ logicvớ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ácserver chứa cơ sở dữ liệu phân tán thường được liên kết với nhau bằng datalink hoặc bằng đường dẫn từ một cơ sở dữ liệu này đến một cơ sở dữ liệukhác

Xu thế phát triển của cơ sở dữ liệu phân tán:

 Cơ cấu tổ chức kinh tế phi tập trung

 Sự tăng trưởng

 Giảm chi phí truyền thông

Kiến trúc của cơ sở dữ liệu phân tán.

Trang 24

Mỗi quan hệ là một đối tượng của cơ sở dữ liệu phân tán và qua hệ đó đượctách thành các bộ phận không bao trùm lên nhau Mỗi bộ phận đó là một đoạn.

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 đốivớ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àmviệ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áckết nối cũng như truy xuất cơ sở dữ liệu Một Service thường có hai thao tácchính mà bạn cần quan tâm là START và STOP Khi một Service đượcSTART 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áchthức mà ứng dụng quy định Khi STOP một Service cũng đồng nghĩa với cácdị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ạngclient/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ữaclient 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ậptin LISTENER.ORA do chương trình kiểm soát Các thông số này chủ yếu baogồm địa chỉ mạng của máy Server và các giao thức dùng để kết nối Trong quátrình kết nối máy client sẽ gửi thêm thông tin về định danh của cơ sở dữ liệutrên máy chủ để LISTENER biết cách gửi những yêu cầu của bạn đến đúngService của cơ sở dữ liệu mà bạn cần truy xuất

Tập tin LISTENER.ORA dùng lưu những thông tin quy định cách ứng xử vàkiểm soát kết nối của Services listener, các thông tin này bao gồm địa chỉ mạngnơi listener muốn tiếp nhận kết nối( thường là địa chỉ máy Server), giao thức

mà Listener dùng để liên lạc và hiểu được máy Client, cổng giao tiếp( dành chogiao thức TCP/IP), định danh SID của cơ sở dữ liệu cần LISTENER phục vụ( hay chuyển giao các yêu cầu truy xuất từ phía client đưa đến) Tập tin nàythường được ORACLE đặt tại thư mục ORACL_HOME\Net80\Admin \ trênmáy server

Trang 25

Để kết nối với Server máy Client dùng Net Service Name là một chuỗi thôngtin được lấy từ tập tin TNSNAMES.ORA( trên máy client cục bộ tập tin nàythường được ORACLE lưu trong thư mục ORACLE_HOME\Net80\Admin)hoặc trên một máy Server khác(Oracle Names Server) trong trường hợp bạn cónhiều cơ sở dữ liệu và cần truy xuất trên mạng diện rộng với quy mô cơ sở dữliệu phân tán lớn Khi cấu hình máy client ( hay Server đóng vai trò client)chúng ta cần phải quan tâm đến những thông số máy kết nối này.

Tổng quát ta có hai cách thiết lập cấu hình cho Net Services Name ở máyClient là:

Địa chỉ mạng và giao thức quy định kết nối được đặt trong tập tinTNSNAMES ORA hoặc chỉ dùng tập tin WINNT\SYSTEM32\DRIVER\ETC\HOST duy nhất của Window NT Công cụ của Oracle giúp bạn thực hiện côngviệc này là Oracle Net8 Easy Config hay Net 8 Assistance

Tất cả tên Net Service Name và địa chỉ kết nối với Server được đặt trên mộtmá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 ONScho 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 tathự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 trongNet8 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ệnnay đ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ộtcá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ể giaotiế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ặcmộ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 nhauthô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 SystemInterconnection gọi tắt là OSI) Trong mô hình OSI, giao tiếp giữa các máy tínhkhác biệt nhau được thực hiện thông qua việc phân chia trách nhiệm trong việcchuyể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ầnxuố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 đếnmáy server Tại máy server gói thông tin sẽ được phân tích và chuyển xuốngthông qua các tầng giao tiếp theo hướng ngược lại

Trang 26

Điều hấp dẫn của tiếp cận OSI chính là ở chỗ nó hứa hẹn giải pháp cho vấn đềtruyền thông giữa các máy tính không giống nhau Hai hệ thống dù khác nhaunhư thế nào đi nữa, điều có thể truyền thông với nhau một cách hiệu quả nếuchúng đảm bảo những điều kiện sau đây:

 Chúng cài đặt một tập các chức năng truyền thông

 Các chức năng đó được tổ chức thành một tập các tầng Các tầng đồng mứcphải cung cấp các chức năng như nhau

 Các tầng đồng mức phải sử dụng một giao thức chung

Để đảm bảo những điều trên cần phải có các chuẩn Các chuẩn phải xác địnhcác chức năng và dịch vụ được cung cấp bởi một tầng Theo cách tiếp cận OSI,trong mỗi tầng của một hệ thống có một hoặc nhiều thực thể(entity) hoạt động.Một(N) entity (thực thể của tầng N) cài đặt các chức năng của tầng N và giaothức truyền thông với các(N) entity trong các hệ thống khác Một tiến trìnhtrong một hệ đa xử lý là một ví dụ của thực thể Hay đơn giản hơn, một thựcthể có thể là một trình con(subroutine) Mỗi thực thể truyền thông với các thựcthể ở các tầng trên và dưới nó thông qua một giao diện Giao diện này gồm mộthoặc nhiều điểm truy cập dịch vụ(Service Access Point-viết tắt là SAP) (N-1)entity cung cấp dịch vụ cho một (N) entity thông qua việc gọi các hàm nguyênthuỷ( primitive) Hàm nguyên thuỷ chỉ rỏ các chức năng thực hiện và đượcdùng để chuyển dữ liệu và thông tin điều khiển Lời gọi trình con chính là mộtdạng cài đặt cụ thể của một hàm nguyên thuỷ

Bốn hàm nguyên thuỷ được dùng để định nghĩa tương tác giữa các tầng kềnhau, đó là:

Respone( trả lời): Là hàm nguyên thủy mà Service User dùng để hoàn tất

một chức năng đã được gọi từ trước bởi một hàm nguyên thủy Indication ởSAP đó

hoàn tất một chức năng đã được gọi từ trước bởi một hàm nguyên thủyRequest tại SAP đó

Mô hình tham chiếu OSI 7 tầng:

Theo định nghĩa của ISO, tầng vật lý cung cấp các phương tiện điện,cơ,chức năng thủ tục để kích hoạt, duy trì và đình chỉ liên kết vật lý giữa các hệthống

Ở đây thuộc tính điện liên quan đến sự biểu diễn các bit và tốc độ truyền cácbit, thuộc tính cơ liên quan đến các tính chất vật lý của giao diện với mộtđường truyền( kích thước, cấu hình) Thuộc tính chức năng chỉ ra các chứcnăng được thực hiện bởi các phần tử của giao diện vật lý, giữa một hệ thống vàđường truyền và thuộc tính thủ tục liên quan đến giao thức điều khiển việctruyền các xâu bit qua đường truyền vật lý

Trang 27

Khác với các tầng khác, tầng vật lý là tầng thấp nhất giao diện với đườngtruyền không có PDU cho tầng vật lý, không có phần header chứa thông tinđiều khiển(PCI), dữ liệu được truyền đi theo dòng bit bởi giao thức cho tầngvật lý không xuất hiện với ý nghĩa giống như đối với các tầng khác.

Trong mô hình OSI người ta phân biệt 4 tầng thấp và ba tầng cao Các tầngthấp quan tâm đến việc truyền dữ liệu giữa các hệ thống cuối qua phương tiệntruyền thông, còn các tầng cao tập trung đáp ứng các yêu cầu và các ứng dụngcủa người sử dụng Tầng giao vận là tầng cao nhất của nhóm các tầng thấp ,mục đích của nó là cung cấp các dịch vụ truyền dữ liệu sao cho các chi tiết cụthể của phương tiện truyền thông được sử dụng ở bên dưới trở nên trong suốtđối với các tầng cao Nói cách khác, có thể hình dung tầng giao vận như là một

“bức màn” che phủ toàn bộ các hoạt động ở các tầng thấp bên dưới nó Từ đó,nhiệm vụ của tầng giao vận rất phức tạp Nó phải được tính đến khả năng mộtphạm vi rất rộng các đặc trưng của mạng Chẳng hạn, một mạng có thể là cóliên kết hoặc không liên kết, có thể là tin cậy hoặc chưa đẳm bảo tin cậy,… Nóphải biết được yêu cầu về chất lượng dịch vụ của người sử dụng đồng thời cũngphải biết được khả năng cung cấp các dịch vụ của mạng bên dưới Chất lượngcủa các dịch vụ mạng tuỳ thuộc vào loại mạng khả dụng cho tầng giao vận vàcho người sử dụng cuối

Tầng phiên là tầng thấp nhất trong nhóm các tầng cao và nằm ở ranh giớigiữa hai nhóm tầng nói trên Mục tiêu của nó là cung cấp cho người sử dụngcuối các chức năng cần thiết để quản trị các phiên ứng dụng của họ, cụ thể là:

 Điều phối việc trao đổi dữ liệu giữa các ứng dụng bằng cách thiết lập vàgiải phóng một cách logic các phiên hay còn gọi là các hội thoại

 Cung cấp các điểm đồng bộ hoá để kiểm soát việc trao đổi dữ liệu

 Áp đặt các quy tắc cho các tương tác giữa các ứng dụng của người sử dụng

 Cung cấp cơ chế “lấy lượt” trong quá trình trao đổi dữ liệu

Việc trao đổi dữ liệu có thể thực hiện theo một trong 3 phương thức:

 Hai chiều đồng thời

 Hai chiều luân phiên

 Một chiều

Với phương thức hai chiều đồng thời, cả hai bên đều có thể đồng thời gửi dữliệu đi Một khi phương thức này đã được thỏa thuận thì không đòi hỏi phải có

Trang 28

nhiệm vụ quản trị tương tác đặc biệt nào đó Có lẽ đây là phương thức hội thoạiphổ biến nhất Trong trường hợp hai chiều luân phiên thì nảy sinh vấn đề: haingười sử dụng phiên” lấy lượt” để truyền dữ liệu Một ví dụ điển hình củaphương thức này là dùng cho các ứng dụng hỏi /đáp Thực thể tầng phiên duytrì tương tác luân phiên bằng cách báo cho người sử dụng khi đến lượt họ đượctruyền dữ liệu.

Trường hợp một chiều nói chung ít xảy ra, ví dụ điển hình là dữ liệu được gửitới một người sử dụng tạm thời không làm việc, chỉ có một chương trình nhậnvới nhiệm vụ duy nhất là tiếp nhận dữ liệu đến và lưu giữ lại Chuẩn của ISOkhông xét đến phương thức này

Vấn đề đồng bộ hoá trong tầng phiên được thực hiện tương tự như cơ chếđiểm kiểm tra/ phục hồi trong một hệ quản trị tệp Dịch vụ này cho phép người

sử dụng xác định các điểm đồng bộ hoá trong dòng dữ liệu và có thể khôi phụcviệc hội thoại bắt đầu từ một trong các điểm đó

Một trong những chức năng quan trọng nhất của tầng Phiên là đặt tương ứngcác liên kết phiên với các liên kết giao vận Ở một thời điểm cho trước , tồn tạimột ánh xạ giữa các liên kết phiên và các liên kết giao vận Tuy nhiên vòng đờicủa các liên kết phiên và giao vận có thể khác nhau

Mục đích của tầng trình diễn là đảm bảo cho các hệ thống cuối có thểtruyền thông có kết quả ngay cả khi chúng sử dụng các biểu diễn dữ liệu khácnhau Để đạt được điều đó nó cung cấp một biểu diễn chung để dùng trongtruyền thông và cho phép chuyển đổi từ biểu diễn cục bộ sang biểu diễn chungđó

Tồn tại 3 dạng cú pháp thông tin được trao đổi giữa các thực thể ứng dụng ,đó

là : cú pháp dùng ứng dụng thực thể nguồn, cú pháp dùng bởi thực thể ứngdụng đích và cú pháp được dùng giữa các thực thể tầng trình diễn Loại cúpháp sau gọi là cú pháp truyền Có thể cả 3 hoặc một cặp nào đó trong các cúpháp trên là giống nhau Tầng trình diễn đảm nhiệm việc chuyển đổi biểu diểncủa thông tin giữa cú pháp truyền và mỗi một cú pháp kia khi có yêu cầu Lưu ý rằng không tồn tại một cú pháp truyền xác định trước duy nhất cho mọihoạt động trao đổi dữ liệu Cú pháp truyền được sử dụng trên một liên kết cụthể của tầng trình diễn phải được thương lượng giữa các thực thể trình diễntương ứng Mỗi bên lựa chọn một cú pháp truyền sao cho có thể sẵn sàng đượcchuyển đổi sang cú pháp người sử dụng và ngược lại Ngoài ra, cú pháp truyềnđược chọn phản ánh các yêu cầu dịch vụ khác, chẳng hạn như nhu cầu nén dữliệu Việc thương lượng cú pháp truyền được tiến hành trong giai đoạn thiết lậpmột liên kết và cú pháp truyền sử dụng có thể được thay đổi trong vòng đời củaliên kết đó Tầng trình diễn chỉ liên quan đến cú pháp truyền vì thế trong giaothức sẽ không quan tâm đến các cú pháp sử dụng bởi các thực thể ứng dụng.Tuy nhiên, mỗi thực thể trình diễn phải chịu trách nhiệm chuyển đổi giữa cúpháp của người sử dụng và cú pháp truyền

Trước khi đi vào các chuẩn ISO về dịch vụ và giao thức của tầng trình diễn,chúng ta xét kỹ khái niệm liên quan đến bối cảnh của tầng trình diễn được chỉ

ra trong hình

Hình A Bối cảnh tầng trình diễn

Trang 29

Presentation Data indication

(Abs Syntax) (Abs Syntax)

Presentation protocol

(Negotiation of Tranfer Syntax Data tranfer)

Session Datarequest

Session Dataindication(Bytes)(Bytes)

Trang 30

các tầng trong một hệ thống và trong các PDU (Protocol data Unit) để chuyểngiữa các tầng đồng mức ở hai hệ thống kết nối với nhau Tuy nhiên tầng ứngdụng lại liên quan chặt chẽ với cách nhìn dữ liệu của người sử dụng Nóichung, cách nhìn đó là một tập thông tin có cấu trúc nào đó, như là văn bảntrong một tài liệu, một tệp về nhân sự, một cơ sở dữ liệu tích hợp hoặc một hiểnthị của thông tin videotext Người sử dụng chỉ liên quan đến ngữ nghĩa của dữliệu Do đó tầng trình diễn ở giữa có nhiệm vụ phải cung cấp các phương thứcbiểu diễn dữ liệu và chuyển đổi thành các giá trị nhị phân dùng cho các tầngdưới- nghĩa là tất cả những gì liên quan đến cú pháp của dữ liệu

Tuy nhiên trong thực tế không thể tách bạch hoàn toàn giữa cú pháp và ngữnghĩa của dữ liệu Nếu tầng ứng dụng không biết gì về cú pháp còn tầng trìnhdiễn không biết gì về ngữ nghĩa thì không thể nào hoàn tất được việc kết hợpngữ nghĩa với cú pháp dùng để tạo ra một biểu diễn cụ thể các giá trị dữ liệucho một dịch vụ phiên

Cách tiếp cận của ISO về việc kết hợp giữa ngữ nghĩa và cú pháp dữ liệu lànhư sau Ở tầng ứng dụng thông tin được biểu diển dưới dạng một cú pháp trừutượng liên quan đến các kiểu dữ liệu và giá trị dữ liệu Cú pháp trừu tượng nàyđặc tả một cách hình thức dữ liệu, độc lập với mọi biểu diễn cụ thể

Do vậy, một cú pháp trừu tượng có nhiều điểm giống với các khía cạnh địnhnghĩa kiểu dữ liệu trong các ngôn ngữ lập trình qui ước như: Pascal, C.Ada,…

và các ngữ pháp như:BNF(Backus-Naur-Form) Các giao thức tầng ứng dụng

mô tả các PDU của chúng bằng một cú pháp trừu tượng Tầng trình diễn tươngtác với tầng ứng dụng cũng dựa trên cú pháp trừu tượng này Tầng trình diễn cónhiệm vụ dịch thuật giữa cú pháp trừu tượng của tầng ứng dụng và một cúpháp truyền mô tả các giá trị dữ liệu dưới dạng nhị phân- thích hợp cho việctương tác dịch vụ phiên Việc dịch thuật này được thực hiện nhờ các quy tắc

mã hóa chỉ rõ biểu diễn của mỗi giá trị dữ liệu thuộc một kiểu dữ liệu nào đó.Trước khi sử dụng một liên kết tầng trình diễn để trao đổi dữ liệu thì hai thựcthể trình diễn ở hai đầu phải thoả thuận về cú pháp truyền Sau khi cú pháptruyền đã được chọn thì tổ hợp cú pháp trừu tượng và cú pháp truyền được xem

là bối cảnh trình diễn được dùng để trao đổi dữ liệu

Hai yêu cầu cơ bản để lựa chọn một cú pháp truyền là nó phải yểm trợ cú pháptrừu tượng tương ứng Ngoài ra ,cú pháp truyền có thể có các thuộc tính kháckhông liên quan gì đến cú pháp trừu tượng mà nó yểm trợ

Tầng ứng dụng là ranh giới giữa môi trường kết nối các hệ thống mở và cáctiến trình ứng dụng Các tiến trình ứng dụng sử dụng môi trường OSI để traođổi dữ liệu trong quá trình thực hiện của chúng Là tầng cao nhất trong mô hìnhOSI 7 tầng, tầng ứng dụng có một số đặc điểm khác với tầng dưới nó Trướchết, nó không cung cấp các dịch vụ cho một tầng trên như trong trường hợpcủa các tầng khác Theo đó , tầng ứng dụng không có khái niệm điểm truy cậpdịch vụ tầng ứng dụng

ISO định nghĩa một tiến trình ứng dụng là” một phần tử ở trong một hệ thống

mở thực hiện việc xử lý thông tin cho một ứng dụng cụ thể”.Các tiến trình ứngdụng thuộc các hệ thống mở khác nhau muốn trao đổi thông tin phải thông quatầng ứng dụng Tầng ứng dụng bao gồm các thực thể ứng dụng, các thực thể

Trang 31

này dùng các giao thức ứng dụng và các dịch vụ trình diễn để trao đổi thôngtin Như vậy các thực thể ứng dụng cung cấp các tiến trình ứng dụng cácphương tiện cần thiết để truy cập môi trường OSI Tuy nhiên, tầng ứng dụngchủ yếu chỉ giải quyết vấn đề ngữ nghĩa chứ không giải quyết vấn đề cú phápnhư tầng trình diễn.

CHƯƠNG V NGÔN NGỮ PL/SQL.

I Tổng quan về Procedure Language/Structured Query Language(PL/SQL).

PL/SQL có nhiều ưu điểm so với ngôn ngữ lập trình khác về mặt quản lýlogic và hỗ trợ các quy luật hoạt động của các ứng dụng cơ sở dữ liệu Đó làmột ngôn ngữ dể hiểu với các cấu trúc logic chung kết hợp với một ngôn ngữlập trình và nhiều mặt khác mà các ngôn ngữ khác không có như trình quản lýlỗi rất mạnh và sự module hoá các khối mã lệnh Mã PL/SQL được sử dụng đểgiao tiếp với cơ sở dữ liệu cũng được lưu trữ trực tiếp trong cơ sở dữ liệuOracle, và là ngôn ngữ lập trình duy nhất giao tiếp với Oracle một cách tựnhiên bên trong môi trường cơ sở dữ liệu

II CẤU TRÚC CHƯƠNG TRÌNH PL/SQL.

II.1 Sự module hoá:

Trang 32

II.2 CÁC THÀNH PHẦN CỦA MỘT KHỐI PL/SQL.

II.3 CÁC KIỂU DỮ LIỆU

 NUMBER: chứa bất kỳ số nào

 CHAR( size), VARCHAR2(size): dùng để lưu trữ các chuỗi ký tự số

kiểu CHAR thêm các khoảng trắng vào lưu trữ đủ chiều dài

 DATE: dùng để lưu trữ ngày

 LONG: Lưu trữ các Text lớn, đến 2 gigabyte chiều dài

 LONG RAW: dùng lưu trữ những khối dữ liệu lớn ở khuôn dạng nhị phân

 RAW: Lưu trữ những khối dữ liệu nhỏ hơn khuôn dạng nhị phân

 MLSLABEL: Sử dụng trong Oracle Trusted

 ROWID: sử dụng để lưu trữ khuôn dạng đặc biệt của ROWID trong cơ sở

dữ liệu

 BOOLEAN: Lưu trữ giá trị True/false

 TABLE/RECORD: Các bảng có thể sử dụng để lưu các giá trị tương đươngvới một dãy, các record lưu các biến có kiểu dữ liệu composite

II.4 ĐIỀU KHIỂN LUỒNG XỬ LÝ PL/SQL.

1 Các vòng lặp:

Loop-exit: Là vòng lặp đơn giản nhất trong PL/SQL Từ khoá loop định

nghĩa bắt đầu của khối mã lệnh sẽ được lặp lại, end loop chỉ định kết thúc vòng lặp.Từ khoá exit chỉ định thoát khỏi vòng lặp.

VD:

Trang 33

2 LẶP TRÌNH VỚI CON TRỎ( CURSOR).

Có hai loại : Cursor ngầm và Cursor tường minh

 Cursor tường minh được đặt tên bỡi nhà phát triển ứng dụng Nó chính làmột lệnh select được đặt tên Bất kỳ lệnh nào cũng có thể sử dụng trong mộtcursor tường minh bằng cách sử dụng cú pháp

Cursor cursor_name is

1) XỬ LÝ EXCEPTION

Ba loại Exception trong PL/SQL là:

Predefined Exceptions: Để tiện ích việc xử lý lỗi trong PL/SQL, Oracle đã

thiết kế một số Exception xây dựng sẵn tức là các predefined exception.Những exception này được sử dụng để xử lý những tình huống chung có thểxảy ra trong cơ sở dữ liệu

User- defined Exceptions:Ngoài các Predefined Exception có thể tạo ra các

User defined Exception để quản lý các tình huống xuất hiện trong mã lệnh

Trang 34

Không như các predefined exception xảy ra ngầm khi điều kiện lỗi tươngứng phát sinh, một user defined exception cần có mã lệnh tường minh trongPL/SQL để sinh ra Cần có mã lệnh trong ba phần của một khối PL/SQL Các phần mã lệnh yêu cầu được mô tả như sau:

Khai báo exception: Trong phần khai báo của khối PL/SQL, tên exception

cần phải khai báo Tên này sẽ sử dụng để yêu cầu exception trong phần thựcthi nếu các điều kiện của exception xảy ra

Kiểm tra exception: Trong phần thực thi của một khối PL/SQL, cần có mã

lệnh kiểm tra tường minh các điều kiện lỗi user-defined để gọi exceptionnếu điều kiện được thỏa

Xử lý Exception: Trong phần exception handler của khối PL/SQL, cần có

một mệnh đề đặc biệt when gọi tên exception và mã lệnh cần thực hiện nếuexception xảy ra

2) EXCEPTION_INIT PRAGMA.

Lệnh pragma cho phép nhà phát triển ứng dụng khai báo một lỗi được đánh sốkết hợp với một exception được đặt tên trong khối Việc dùng này cho phépdùng mã lệnh xử lý các lỗi chưa được xử lý rõ ràng

4 CHỈ ĐỊNH CÁC EXCEPTION CHUNG(COMMON EXCEPTION).

Một số predefined exception:

invalid_cursor: Xảy ra khi đóng một cursor không mở.

cursor_already_open: Xảy ra khi mở một cursor chưa đóng.

dup_val_on_index:Xâm phạm ràng buộc unique hay primary key.

no_data_found: Không có hàng nào được chọn hay thay đổi bởi tác vụ

SQL

too_many_rows: Nhận được hơn một hàng bỡi một subquery một hàng hay

trong một lệnh SQL mà Oracle mong đợi một hàng

zero_divide: Chia cho không.

rowtype_mismatch: Các kiểu dữ liệu của record mà dữ liệu từ cursor được

CHƯƠNG IV: 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 có cấu trúc.

Phương pháp phân tích có cấu trúc,trãi qua thời gian đã chứng tỏ được tính

kinh điển của nó Nó là phương pháp dung dị, không cầu kỳ như một sốphương pháp khác, dễ áp dụng, nhưng lại rất hữu hiệu Ngày nay nó chưa lạchậu, mà vẫn còn phát huy tác dụng tốt Bằng chứng là một hệ thống lớn và hiệnđại như ORACLE vẫn tiếp sử dụng nó

Trang 35

I.1 Phương pháp phân tích hệ thống về chức năng.

Đó là phương pháp SA(Structured Analysis) do De Macro và những những người khác như (Yourdon, Constatine…) đưa ra năm 70 nhưng vẫn còn phát

huy tác dụng cho đến ngày nay Nó vẫn là nền tảng của những phần mềm trợgiúp phân tích , thiết kế nổi tiếng như Designer 2000 của ORACLE Công cụchính là biểu đồ luồng dữ liệu

I.1.1 Biểu đồ phân cấp chức năng.

Là một loại biểu đồ diễn tả sự phân rã dần dần các chức năng từ đại thể đến

chi tiết Mỗi nút trong biểu đồ là một chức năng, và quan hệ duy nhất giữa cácchức năng, diển tả bỡi các cung nối liền các nút, là quan hệ bao hàm Như vậybiểu đồ phân cấp chức năng là một cấu trúc cây

Đặc điểm của biểu đồ phân cấp chức năng là:

 Cho một cách nhìn khái quát ,dễ hiểu, từ đại thể đến chi tiết về các chứcnăng, nhiệm vụ cần thực hiện

 Dễ thành lập, bằng cách phân rã dần các chức năng từ trên xuống

 Có tính chất tĩnh, bởi chúng chỉ cho thấy các chức năng mà không cho thấytrình tự xử lý

 Thiếu vắng sự trao đổi thông tin giữa các chức năng

Vì những đặc điểm kể trên mà biểu đồ phân cấp chức năng thường được sửdụng làm mô hình chức năng trong bước đầu phân tích, hoặc cho các hệ thốngđơn giãn Nếu hệ thống là phức tạp thì mô hình chức năng dưới dạng biểu đồphân cấp chức năng là quá sơ lược và các thiếu sót nêu trên trong hai đặc điểmcuối ở trên là không thể châm chước được Lúc đó người dùng biểu đồ luồng

dữ liệu thay cho biểu đồ phân cấp chức năng

I.1.2 Biểu đồ luồng dữ liệu.

Biểu đồ luồng dữ liệu(BLD) là một loại biểu đồ nhằm mục đích diển tả mộtquá trình xử lý thông tin với các yêu cầu sau:

 Sự diễn tả là ở mức logic, nghĩa là nhằm trả lời câu hỏi “Làm gì”, mà bỏqua câu hỏi “Làm thế nào?”

 Chỉ rõ các chức năng con phải thực hiện để hoàn tất quá trình xử lý cần môtả

 Chỉ rõ các thông tin được chuyển giao giữa các chức năng đó, và qua đóphần nào thấy được trình tự thực hiện của chúng

(1) Chức năng: Là một quá trình biến đổi dữ liệu( thay đổi giá trị, cấu trúc, vị

trí của một dữ liệu, hoặc từ một số dữ liệu đã cho, tạo ra một dữ liệu mới)

Biểu diễn: Bởi hình tròn hoặc ovan bên trong có tên chức năng.

Tên chức năng phải là động từ, có thêm bổ ngữ nếu cần, cho phép hiểu vắn tắtchức năng làm gì

(2) Các luồng dữ liệu.

Luồng dữ liệu là một tuyến truyền dẫn thông tin vào hay ra một chức năng nàođó

Tên chức năng.

Trang 36

Biểu diễn: Một luồng dữ liệu được vẽ trong một BLD dưới dạng một mũi tên,

trên đó có viết tên của luồng dữ liệu

Tên luồng dữ liệu là danh từ, kèm theo tính ngữ nếu cần, cho phép hiểu vắn tắtnội dung dữ liệu được chuyển giao

(3) Kho dữ liệu.

Một kho dữ liệu là một dữ liệu đơn hay có cấu trúc được lưu lại, để có thể truycập nhiều lần về sau

Biểu diễn: Một kho dữ liệu được vẽ trong BLD dưới dạng hai đoạn thẳng nằm

ngang, kẹp giữa tên của kho dữ liệu

để làm nhiệm vụ tham chiếu

Biểu diễn: Tác nhân trong biểu đồ luồng dữ liệu được vẽ dưới dạng một hìnhchữ nhật thiếu cạnh trên, trong đó viết tên tác nhân trong ( chức năng hay hệthống con)

Tên tác nhân trong phải là động từ, kèm theo bổ ngữ nếu cần

II Phương pháp phân tích hệ thống về dữ liệu.

Mô hình thực /thể liên kết E/A(Entity/Association Model) là mô hình dữ liệu

do P.P Chen đưa ra năm 1976 và sau đó được dùng khá phổ biến trên thế giới

Nó có ưu điểm là khá đơn giản và gần với tư duy trực quan

Mô hình thực thể liên kết kinh điển.

Xuất phát từ ba khái niệm cơ bản.: Thực thể, liên kết, và thuộc tính

Trang 37

Thì chỉ còn liên kết một -nhiều, tức là trường hợp n=1 và q>1 hoặc q=* và

được biểu diển dưới dạng mới sau:

III Phương pháp thiết kế hệ thống.

Đồ án thực hiện theo phương pháp SD(Structured design) do E Yourdon vàL.Constanie đề xuất

CHƯƠNG VI: GIỚI THIỆU ORACLE DEVELOPER 6.O

Bộ Oracle Developer 6.0 bao gồm:Form buider, Report buider , Schemabuider và Project buider

I Form Buider.

Là các mẫu nối với bảng cơ sở dữ liệu đã định Những người dùng sử dụngForm Buider để tạo các ứng dụng cung cấp cho người sử dụng đầu cuối truyxuất thông tin được lưu trong cơ sở dữ liệu Các thành phần của Form Buider

Đơn hàng-SH-đơn hàng-Ngày ĐH

Giao nộp

Trang 38

Quá trình ánh xạ dữ liệu từ bảng vào Form.

Trang 39

II Report Buider.

Report buider là chương trình ứng dụng Oracle Developer, có công dụng tạobáo biểu dựa trên dữ liệu trong cơ sở dữ liệu, vốn có thể xem trên màn hình, in

ra tập tin hoặc in lên giấy Báo biểu có thể truy xuất dữ liệu bằng SQL, thựchiện các phép toán trên dữ liệu truy xuất, và định dạng kết quả cho giống vớihoá đơn, thư mẫu hoặc tài liệu thương mại khác Report buider là khung nhìn

dữ liệu tỉnh vào thời điểm cụ thể xem hoặc in được

III Graphics buider.

Trang 40

Graphics buider là chương trình ứng dụng Oracle Developer dành để tạo đồhọa trong cơ sở dữ liệu Oracle chẳng hạn như: biểu đồ tròn, biểu đồ thanh, biểu

đồ vạch Oracle graphics buider có thể chạy như một chương trình ứng dụngđộc lập, hoặc lồng trong form, report

IV Query Buider.

Query buider là môi trường đồ họa giúp vấn tin câu lệnh SELECT được dễ

dàng hơn Thay vì phải viết vấn tin bằng tay, Query buider cho phép bạn chọnbảng muốn truy vấn rồi hiển thị bảng và cột liên quan trên màn hình Các liênkết khóa ngoài hiển thị giữa các cột trong bảng liên quan

Hiển thị dữ liệu thông qua truy vấn

Ngày đăng: 30/04/2014, 14:00

HÌNH ẢNH LIÊN QUAN

Hình 1: Các đặc trưng bảo mật của Oracle - đồ án tốt nghiệp :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
Hình 1 Các đặc trưng bảo mật của Oracle (Trang 14)
SƠ ĐỒ ÁNH XẠ ĐỊA  PHƯƠNG 1 - đồ án tốt nghiệp :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
1 (Trang 23)
Hình A. Bối cảnh tầng trình diễn - đồ án tốt nghiệp :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
nh A. Bối cảnh tầng trình diễn (Trang 29)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w