Xây dựng hệ thống bán hàng tại công ty VINDA bằng hệ quản trị cơ sở dữ liệu Oracle
Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá 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 tốn cơ bản và cốt yếu là :Làm thế nào lưu trữ thơng tin an tồ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, u cầu của bài tố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 hố. Một bài tố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 tố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 qt 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 hồn thành đồ án, tạo điều kiện để em thực hiện đồ án đúng thời gian. Cám ơn các anh chị trong cơng ty VINDA đã tận tình giúp đỡ tạo điều kiện để đồ án được hồn thành. Vì thời gian có hạn đồ án chắc còn nhiều thiếu xót, kính mong q thầy cơ, các bạn đóng góp ý kiến để đồ án hồn thiện hơn. Thành phố Hồ Chí Minh :21-5-2003. . SVTH: Đỗ Hữu Bá. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá 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 q 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 Tài liệu tham khảo THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá Trang 3 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át triển hệ này bằng C và giao tiếp SQL. Ngay sau một thời gian ngắn, họ đưa ra phiên bản một như một ngun mẫu. Năm 1979, RSI phân phối sản phẩm đầu tiê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ên Digital 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 tồ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ào năm 1985, là mốc lịch sử vì nó đưa cơng nghệ Client/ Server vào thị trường vớ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 khố ở 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ệt Oracle 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 ra mộ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ệu khi bổ sung hệ quản trị cơ sở dữ liệu quan hệ kiểu Server của nó những sản phẩ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ân tá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ủ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 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá Trang 4 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 ngun 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 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ý 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 độ 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ằm trong 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ực hiện, nhu cầu phân tích cú pháp và biên dịch PL/SQL lúc thi hành được giả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 tồ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 tồn vẹn như là một phần của định nghĩa bảng. Các ràng buộc được hỗ trợ bởi Server khi một bản ghi được chèn, sữa đổi hay xố. Tính tồn vẹn được hỗ trợ bởi Server làm số mã u cầu để kiểm tra bên client 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 tồ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. Oracle Network Manager: Quản lý cấu hình và quản lý mạng cơ sở dữ liệu phân tán được thực hiện dễ dàng với Network Manager. Network Manager được sử dụng khơng chỉ để quản lý từ điển Oracle Names mà còn tạ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. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá 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. 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 tồn tác cơ sở dữ liệu tự động. 2.CÁC ỨNG DỤNG 2.1 Các ứng dụng Oracle truyền thống Tài chính. Nhân sự. Quản lý dự án. Bán hàng. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá 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, cung cấ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 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ệu Oracle8. 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ũng cải thiện để quản lý chúng. CHƯƠNG II. CẤU TRÚC CỦA ORACLE. 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 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá 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á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 ln 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 tồ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 hồn tồ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ữ 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ản ngườ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 các đối tượng schema 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 schema khơ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ủa nó.Tuy nhiên, Oracle lưu một đối tượng schema trong một khơng gian bảng củ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ượng như: 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án cho 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. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá 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ững quy tắc này gọi là các ràng buộc tồ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ấy kế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ể xem như là bảng ảo. Ta có thể sử dụng view hầu như ở mọi chỗ có thể sử dụng bả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ệ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 khố chuyển tác.Vì vậy, sẽ giảm sự “chuỗi hố” 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ố ngun 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 qt: 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 ln có sẵn vì khơng gian bảng System ln 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 khố chính duy nhất cho dữ liệu một cách tự động và để định vị các khố 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 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ân tán đơn giản hố các lệnh SQL cho người dùng cơ sở dữ liệu THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá Trang 9 Ta có thê tạo ra cả synonym tồn cục lẫn riêng biệt. Một synonym tồn cục thuộ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ột user đặc thù mà kiểm số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ơng phâ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ũng như các Index trong một cuốn sách giúp ta định vị thơng tin nhanh hơn so với khi khơng có index, một index Oracle cung cấp một đường truy xuất dữ liệu củ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 u cầu thay đổi bất kỳ một lệ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 đã được Index, 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 xố 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 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 xố các hàng mà khơng cần thêm u cầu nào của user. Hiệu năng truy xuất dữ liệu đã index ln 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, xố, 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 tồn vẹn UNIQUE trên cột mong muốn. Oracle hỗ trợ ràng buộc tồn vẹn UNIQUE bằng cách tự động định nghĩa một index unique trên khố 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 THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Đồ Án Tốt Nghiệp GVHD:TS Nguyễn Ngọc Bình SVTH: Đỗ Hữu Bá 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 xố bằng các lệnh SQL. Ta có thể tạo ra một index để tăng nhanh sự truy xuất đến bảng dữ liệu. Key là một khái niệm hồn tồn logic. Các key tương ứng với một đặc trưng khác của Oracle gọi là ràng buộc tồn vẹn. Các ràng buộc tồn vẹn hỗ trợ các quy luật hoạt động. Do Oracle sử dụng Index để hỗ trợ một số ràng buộc tồn vẹn, thuật ngữ index và key thường dùng thay 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ùng mộ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ảng cluster Trong một cluster, một giá trị key cluster đối với mỗi hàng. Mỗi giá trị key cluster được lưu trữ chỉ một lần trong cluster và trong index cluster, khơng cầ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 cluster ln 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ác bả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ụng khơng gian và sơ đồ khối dữ liệu cần phải xem để qt một bảng. Do nhiều bả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ều khố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ãy tìm các bảng liên quan đến các ràng buộc tồn vẹn tham chiếu và các bảng thườ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, ta 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 Q TRÌNH. 1. Cấu trúc bộ nhớ: Oracle tạo ra và sử dụng cấu trúc bộ nhớ để hồ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 tồn cục hệ thống( system global area- bao gồm các buffer cơ sở THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN [...]... 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... 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 ln bao gồm các đặc trưng bảo mật kiểm số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 Ngăn cản sự truy xuất trái phép các đối tượng... khi truy xuất sẽ được xem như là một cơ sở dữ liệu duy nhất Các server chứa cơ sở dữ liệu phân tán thường được liên kết với nhau bằng data link hoặc bằng đường dẫn từ một cơ sở dữ liệu này đến một cơ sở dữ liệu khá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 SƠ ĐỒ TỔNG THỂ SƠ ĐỒ... 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ệu chí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ệu. .. 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 ngun 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ở 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 username hợp lệ của cơ sở dữ liệu Mỗi username có một password kết hợp để... 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... của cơng ty Oracle Nó được thiết kế để cung cấp khả năng bảo mật cơ sở dữ liệu cao nhằm phục vụ 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ía Client của hệ thống Bảo mật cơ sở dữ liệu. .. 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 ngun 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ơ. .. nhớ: các bộ đệm buffer cơ sở dữ liệu, các bộ đệm redo 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à database buffer cache Buffer cache chứa các khối đã biến đổi Do những dữ liệu thường được dùng... 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ằ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