Tổng quan về hệ quản trị csdl oracle
Giới thiệu chung về CSDL Oracle8
Oracle là một trong những công ty phần mềm hàng đầu của Mỹ, nổi bật với công nghệ quản lý cơ sở dữ liệu (CSDL) và các sản phẩm bảo mật Internet như Hệ quản trị CSDL Oracle, Developer 2000, và Designer 2000 Hệ quản trị CSDL Oracle được công nhận với các chức năng tiên tiến như phân tán, sao bản, bảo mật cao, và tính nhất quán dữ liệu Nó hỗ trợ chạy trên nhiều phần cứng và hệ điều hành khác nhau, đồng thời tích hợp các nghi thức mạng và là CSDL đầu tiên trên thế giới có khả năng tích hợp Web Sự ra mắt của Oracle8 đã mở ra kỷ nguyên mới cho CSDL quan hệ - đối tượng, cho phép quản lý các kiểu dữ liệu không quan hệ và hứa hẹn khả năng hỗ trợ CSDL quy mô lớn.
Cơ sở dữ liệu (CSDL) là tập hợp dữ liệu của một tổ chức được lưu trữ trên máy tính và có thể được nhiều người sử dụng Hệ quản trị CSDL là phần mềm giúp khai thác hiệu quả CSDL, cho phép mô tả, lưu trữ, thao tác và xử lý các tập hợp dữ liệu, đồng thời đảm bảo an toàn và bí mật cho dữ liệu trong môi trường đa người dùng.
CSDL Oracle8, hay Oracle8 Server, là hệ quản trị cơ sở dữ liệu được cài đặt trên máy chủ cho nhiều người sử dụng đồng thời, cung cấp khả năng quản lý thông tin hiệu quả Hệ thống này hỗ trợ quản trị dữ liệu cho nhiều ứng dụng phức tạp, đảm bảo phân tán dữ liệu một cách an toàn và tin cậy Oracle8 Server có khả năng mở rộng quy mô, tối ưu hóa năng lực từ các tài nguyên thiết bị hiện có Ngoài ra, hệ quản trị CSDL Oracle bao gồm các công cụ như CSDL Oracle, môi trường phát triển thiết kế phần mềm Designer 2000 và các công cụ Developer 2000, cùng với các trình ứng dụng được viết sẵn.
PL/SQL hoạt động theo mô hình Client/Server, cho phép tích hợp hiệu quả với Oracle Designer và Oracle Developer Oracle8 Server hoàn toàn tương thích với các công cụ phát triển này, nhờ vào việc sử dụng ngôn ngữ chuẩn mở rộng Oracle PL/SQL Các ứng dụng được phát triển sẽ tối ưu hóa quy trình xử lý trên cơ sở dữ liệu Oracle.
CSDL Oracle bao gồm các lớp nh sau:
- Mức ngoài cùng là lớp ứng dụng.
- Sau đó là lớp các công cụ CDE (Cooporative Development Environment) và các ngôn ngữ SQL, PL/SQL.
- Mức tiếp theo là lớp của Oracle Server và HĐH.
- Trong cùng là lớp dữ liệu.
Mô hình này đáp ứng đầy đủ các yêu cầu của hệ quản trị cơ sở dữ liệu lớn, bao gồm tính năng bảo mật và toàn vẹn dữ liệu Hơn nữa, nó tạo điều kiện thuận lợi cho việc nâng cấp và phát triển ứng dụng.
Oracle8 Server tích hợp hoàn hảo với Oracle Application Server, hỗ trợ triển khai ứng dụng Web hiệu quả Công nghệ Web không chỉ gia tăng số lượng người dùng mà còn giảm chi phí thiết bị và phần mềm, đồng thời giảm thiểu lượng thông tin truyền tải qua mạng và kết nối với các mạng diện rộng như Internet Với sự hỗ trợ của Oracle Designer Web Generator, việc phát triển các mô-đun tra cứu dựa trên trình duyệt trở nên nhanh chóng và tiết kiệm chi phí.
Oracle8 Server hỗ trợ quản lý đa dạng loại dữ liệu, bao gồm dữ liệu thông thường, dữ liệu đa phương tiện như hình ảnh và video, cũng như văn bản phức hợp (rich text) Ngoài ra, nó còn cho phép xử lý dữ liệu phi cấu trúc, rất hữu ích trong việc quản lý và tra cứu các nguồn dữ liệu văn bản lớn.
Oracle8 Server có cấu trúc quản lý tập trung và khai thác phân tán, hỗ trợ mạnh mẽ khả năng phân tán dữ liệu xuống các cơ sở trong hệ thống tương lai Phiên bản Enterprise Edition của Oracle8 Server cho phép dữ liệu được cập nhật ở mọi nơi tự động lan truyền tới cơ sở dữ liệu trung tâm và ngược lại mà không cần sử dụng các hình thức gửi tệp hay email Việc quản trị cơ sở dữ liệu trở nên dễ dàng nhờ các công cụ trực quan đi kèm Oracle Enterprise Manager, cho phép quản lý toàn bộ hệ thống thông tin một cách tập trung qua web và từ trạm làm việc.
Oracle8 Server cung cấp bảo mật dữ liệu và phân quyền chi tiết cho người sử dụng ở mức cơ sở dữ liệu, cùng với khả năng dò xét tích hợp, tin cậy và linh hoạt để ghi lại tất cả các truy cập dữ liệu nhằm phát hiện các thao tác bất hợp pháp Với tùy chọn Oracle8 Advanced Networking Option trong phiên bản Enterprise Edition, dữ liệu truyền qua mạng có thể được mã hóa bằng nhiều giao thức khác nhau Ngoài ra, Oracle8 Server còn cho phép tăng tốc độ hoạt động đáng kể nhờ vào kỹ thuật khóa mức hàng trong môi trường nhiều người sử dụng đồng thời.
Oracle8 Server là CSDL đầu tiên hỗ trợ tiếng Việt theo chuẩn đang dùng hiện nay.
KiÕn tróc Oracle Server
Oracle là hệ thống quản lý cơ sở dữ liệu (CSDL) mạnh mẽ, cho phép quản lý thông tin lớn một cách dễ dàng và đồng nhất Nó bao gồm một CSDL và một Oracle Instance, sử dụng ngôn ngữ SQL để quản lý và xử lý dữ liệu Việc định nghĩa và xử lý dữ liệu được thực hiện thông qua các bảng bằng các câu lệnh SQL, bao gồm ngôn ngữ định nghĩa dữ liệu (DDL) để thiết lập và sửa đổi CSDL cũng như các bảng, và ngôn ngữ xử lý dữ liệu (DML) để cập nhật, xoá và tìm kiếm dữ liệu Thêm vào đó, Oracle còn hỗ trợ ngôn ngữ thủ tục PL/SQL, giúp thủ tục hoá các câu lệnh SQL.
Cơ sở dữ liệu Oracle được xây dựng dựa trên hai cấu trúc chính: cấu trúc vật lý và cấu trúc logic Sự tách biệt giữa hai loại cấu trúc này cho phép việc lưu trữ dữ liệu vật lý không nhất thiết phải liên quan đến cấu trúc lưu trữ logic của cơ sở dữ liệu.
Một cấu trúc vật lý của CSDL Oracle gồm các file mà hệ điều hành đa ra để tạo nên CSDL Một CSDL Oracle bao gồm:
một hoặc nhiều file dữ liệu (data file).
hai hoặc nhiều Redo log file.
một hoặc nhiều file điều khiển (control file).
Một cấu trúc logic của CSDL Oracle gồm có:
một hoặc nhiều tablespace (Đơn vị lu trữ logic của một CSDL).
lợc đồ đối tợng (Schema object) của CSDL đó
Khi một cơ sở dữ liệu (CSDL) được khởi động, vùng hệ thống toàn cục (SGA - System Global Area) sẽ được cấp phát và các tiến trình nền của Oracle cũng được khởi động SGA là khu vực bộ nhớ dùng để chia sẻ thông tin của CSDL giữa các người sử dụng Sự kết hợp giữa các tiến trình nền và vùng đệm bộ nhớ tạo thành một Oracle Instance.
Cấu trúc của một Oracle Instance đợc miêu tả theo hình vẽ sau:
Hình 2: Cấu trúc của một Oracle Instance
Một Oracle Instance có hai tiến trình: tiến trình ngời sử dụng (user process) và tiến trình phục vụ (server process: là tiến trình của Oracle).
Tiến trình người sử dụng là quá trình thực hiện ứng dụng hoặc chạy công cụ của Oracle, chẳng hạn như Form Builder Các tiến trình phục vụ đảm nhận nhiệm vụ hỗ trợ và duy trì hoạt động cho cả tiến trình người sử dụng và tiến trình nền trong hệ thống Oracle.
Khi người sử dụng và các tiến trình phục vụ hoạt động trên các máy khác nhau trong mạng, hoặc khi các tiến trình người sử dụng chia sẻ tiến trình phục vụ thông qua tiến trình điều hành, việc truyền thông tin giữa chúng được thực hiện qua công cụ SQL*Net SQL*Net cho phép định nghĩa các nhãn giả (Alias) cho cơ sở dữ liệu (CSDL), giúp người sử dụng truy cập CSDL Oracle dễ dàng Công cụ này hỗ trợ các tiến trình người sử dụng lấy dữ liệu từ Server để thực hiện tính toán và xử lý.
Vùng hệ thống toàn cục
SGA Điều khiển hệ thống
RECO §iÒu khiÓn tiÕn tr×nh
USER USER USER Các tiến trình ng ời sử dụng USER
DBWR L u thông tin sửa đổi
Các tiến trình của ORACLE
Kiến trúc Oracle Server có thể chia làm 3 phần cơ bản: Tiến trình, cấu trúc bộ nhớ và các file Nó đợc thể hiện ở hình dới đây:
2.1 Cấu trúc của CSDL và cách quản lý không gian lu trữ dữ liệu trong
CSDL Oracle là một hệ thống lưu trữ dữ liệu, cho phép truy xuất thông tin liên quan một cách hiệu quả Mục tiêu chính của CSDL là tổ chức và quản lý dữ liệu dưới dạng các cấu trúc vật lý và logic, giúp người dùng dễ dàng tìm kiếm và xử lý thông tin.
2.1.1 Các cấu trúc logic của một CSDL a) Tablespace:
Cơ sở dữ liệu (CSDL) được tổ chức thành các đơn vị lưu trữ logic gọi là tablespace Tablespace được sử dụng để nhóm các cấu trúc dữ liệu logic có mối quan hệ với nhau, chẳng hạn như nhóm các bảng liên quan trong một chương trình ứng dụng, nhằm đơn giản hóa việc quản lý và thao tác.
Quan hệ giữa CSDL, không gian lu trữ và các file dữ liệu đợc miêu tả nh sau:
Một cơ sở dữ liệu (CSDL) được chia thành một hoặc nhiều tablespace, mỗi tablespace chứa nhiều file dữ liệu để lưu trữ vật lý tất cả các cấu trúc logic như bảng quan hệ, bảng đối tượng, kiểu đối tượng và khung nhìn trong mỗi tablespace.
Hình 3 - Kiến trúc Server dữ liệu Oracle
Shared Pool Data Buffer Cache Redo Log
Buffer PMON PMON LCKn LCKn RECO RECO SMON SMON
Kích thớc các file dữ liệu trong một tablespace bằng tổng khả năng lu trữ của tablespace.
Khả năng lưu trữ của các tablespace trong một cơ sở dữ liệu (CSDL) phải tương đương với tổng khả năng lưu trữ của toàn bộ CSDL Để tối ưu hóa việc sử dụng Oracle, người dùng cần tạo một kho chứa (Repository) cho CSDL, bao gồm ít nhất hai tablespace: một tablespace tạm thời (temporary tablespace) và một tablespace mặc định (default tablespace) Người dùng cũng cần được cấp đủ quyền để thực hiện tất cả các thao tác cần thiết trên kho chứa Các khái niệm quan trọng trong quản lý dữ liệu bao gồm data block, extent, và segment, giúp tổ chức và quản lý dữ liệu hiệu quả trong CSDL.
Oracle cung cấp một không gian cơ sở dữ liệu logic cho tất cả dữ liệu trong cơ sở dữ liệu, với các đơn vị cấp phát không gian bao gồm Data Block, Extend và Segment Mối quan hệ giữa các đơn vị này được thể hiện rõ ràng trong hình vẽ minh họa.
Tablespace của hệ thống Tablespace của ng ời sử dụng
DATA1.ORA DATA2.ORA DATA3.ORA
Oracle lưu trữ dữ liệu ở mức thấp nhất trong các khối dữ liệu (Data Block), tương đương với một số byte của không gian cơ sở dữ liệu vật lý trên đĩa Data Block được sử dụng làm đơn vị cho không gian lưu trữ trong các file dữ liệu (Datafile) và là đơn vị nhỏ nhất cho các thao tác I/O trên cơ sở dữ liệu.
Mức tiếp theo trong cấu trúc không gian CSDL logic là Extent, bao gồm các Data Block kề nhau được cấp phát để lưu trữ một loại dữ liệu nhất định Đơn vị lưu trữ logic tiếp theo là Segment, được hình thành từ tập hợp các Extent đã được cấp phát cho một kiểu cấu trúc dữ liệu cụ thể Ví dụ, dữ liệu của các bảng được lưu trữ trong các đoạn dữ liệu riêng biệt, trong khi dữ liệu của các chỉ số được lưu trong đoạn chỉ số Dữ liệu của một thuộc tính bảng nằm trong một Extent, trong khi giá trị cụ thể của thuộc tính đó được lưu trong một Data Block.
Khi cấp phát không gian cho một Segment, Oracle sẽ cấp đầy đủ các Extent cần thiết cho cấu trúc dữ liệu trong Segment Nếu các Extent hiện có trong Segment đã đầy, Oracle sẽ tiếp tục cấp thêm Extent mới cho Segment đó.
A Segment and all its Extents are stored within the same Tablespace In a Tablespace, a Segment can consist of multiple data files, with each Extent of the Segment retrieving data from several files Typically, an Extent retrieves data from a single data file Additionally, the schema and its associated objects are integral to the database structure.
Lược đồ là sự kết hợp các đối tượng trong cơ sở dữ liệu (CSDL), bao gồm các cấu trúc logic như bảng, view, sequence, thủ tục lưu trữ, synonym, bảng chỉ số, cấu trúc cluster và các liên kết CSDL Trong Oracle, không có sự liên hệ giữa một Tablespace và lược đồ, nghĩa là các đối tượng trong cùng một lược đồ có thể nằm trong các Tablespace khác nhau, và một Tablespace có thể chứa các đối tượng từ nhiều lược đồ khác nhau.
2.1.2 Các cấu trúc vật lý của một CSDL (Oracle files)
CSDL khi đang ở trạng thái tĩnh tập hợp 4 loại file: parameter file, control file, datafile, redo log file. a) Các file tham số (Parameter file)
Các tính năng của Hệ quản trị cơ sở dữ liệu Oracle
Oracle là hệ quản trị cơ sở dữ liệu do Oracle phát triển, hoạt động trong môi trường client/server, với ứng dụng chạy trên trạm làm việc và cơ sở dữ liệu trên máy chủ Hệ thống này được đánh giá là mạnh mẽ nhờ vào các tính năng vượt trội của nó.
Lu lưu trữ thông tin trong cơ sở dữ liệu và thực hiện các phép tìm kiếm, thao tác dữ liệu nhằm phục vụ hiệu quả cho các ứng dụng của hệ quản trị, sử dụng các kỹ thuật tối ưu hóa.
Oracle đã thực sự đạt được các tiêu chuẩn của hệ quản trị dữ liệu theo mô hình quan hệ, được coi là chuẩn mực cho các cơ sở dữ liệu hiện nay.
+ Bảo đảm tính nhất quán của dữ liệu, ngay cả trong môi trờng đa ngời dùng
Cơ sở dữ liệu được đảm bảo tính toàn vẹn thông qua các cơ chế như khai báo toàn vẹn tham chiếu, ràng buộc khai báo (Constraints) và Trigger Đồng thời, hệ thống cũng cung cấp cơ chế bảo mật dữ liệu phù hợp với từng quyền truy cập của người dùng khác nhau.
Cho phép thiết lập các cơ sở dữ liệu phân tán, đồng thời cung cấp các cơ chế để đảm bảo tính nhất quán và tối ưu hóa việc thực hiện các truy vấn phân tán.
- Các công cụ phát triển của Oracle cho phép thực hiện các câu lệnh SQL để tìm kiếm và thao tác dữ liệu chứa trong hệ quản trị CSDL.
Có khả năng lưu trữ các đối tượng cơ sở dữ liệu phục vụ cho ứng dụng, thường chứa chương trình ngôn ngữ thủ tục PL/SQL Đây là công cụ hữu ích giúp nhà phát triển hệ thống cài đặt quy tắc nghiệp vụ và kiểm tra tính toàn vẹn dữ liệu, đặc biệt là các ràng buộc phức tạp.
Để đảm bảo tính nhất quán của cơ sở dữ liệu trong môi trường đa người dùng, việc tối ưu hóa các thao tác trên cơ sở dữ liệu là rất quan trọng.
3.1 An toàn và bảo mật trong Oracle
Cơ sở dữ liệu Oracle cho phép nhiều người cùng truy cập đồng thời, do đó bảo mật là yếu tố quan trọng Mỗi cơ sở dữ liệu có danh sách người dùng tương ứng, và việc quản lý người dùng bao gồm khai báo tên người dùng và mật khẩu hợp lệ Chứng thực giúp người dùng truy cập vào cơ sở dữ liệu, đồng thời giới hạn không gian đĩa và thời gian CPU được cấp phát Để khai báo người dùng trong Oracle, có thể sử dụng hộp thoại của SQL*DBA hoặc câu lệnh SQL.
Sau khi tạo người dùng, quản trị viên cơ sở dữ liệu cần gán quyền truy cập để người dùng có thể truy cập vào cơ sở dữ liệu Trong Oracle, quyền truy cập được chia thành quyền hệ thống và quyền đối tượng Quyền hệ thống cho phép người dùng tác động lên các kiểu đối tượng, như tạo bảng, chỉ mục, người dùng mới, và cập nhật hoặc truy vấn dữ liệu trên bất kỳ bảng nào Oracle cung cấp hơn 60 quyền hệ thống khác nhau Quyền đối tượng cho phép người dùng tác động lên một đối tượng cụ thể, ví dụ như quyền cập nhật dữ liệu trên bảng EMP hoặc quyền đọc dữ liệu từ view XYZ.
Role là một tập hợp quyền, giúp gán quyền cho một nhóm người dùng một cách hiệu quả Để thay đổi quyền hạn của người dùng, chỉ cần thay đổi Role tương ứng Ngoài việc gán quyền cho người dùng, Role cũng có thể được gán quyền riêng Trước tiên, cần sử dụng lệnh CREATE ROLE để tạo Role trước khi gán quyền cho nó Bên cạnh đó, Role có thể được bảo vệ bằng mật khẩu ở cấp độ cơ sở dữ liệu hoặc hệ điều hành Chúng ta có thể kích hoạt (enable) hoặc vô hiệu hóa (disable) Role theo nhu cầu.
3.2 Tính toàn vẹn dữ liệu và cơ chế khoá
Oracle cung cấp các phương tiện để đảm bảo tính toàn vẹn dữ liệu trong cơ sở dữ liệu, cho phép nhiều người dùng truy cập bảng đồng thời Các ràng buộc toàn vẹn được áp đặt nhằm đảm bảo dữ liệu luôn tuân theo các quy định đã định trước, phù hợp với yêu cầu của hệ thống và nghiệp vụ Những yêu cầu chính về toàn vẹn dữ liệu trong Oracle bao gồm việc ngăn chặn giá trị Null, đảm bảo không có hai hàng giống nhau trong cùng một bảng, và duy trì tính toàn vẹn khi tham chiếu Để đáp ứng các yêu cầu này, Oracle cung cấp các công cụ như ràng buộc kiểu khai báo (Constraint), Triggers, và mã chương trình (ít được sử dụng).
Ràng buộc kiểu khai báo (Constraint) là công cụ quan trọng để đảm bảo toàn vẹn dữ liệu trong cơ sở dữ liệu Constraint có thể được khai báo khi tạo bảng hoặc thêm vào bảng đã có, nhưng không thể tham chiếu dữ liệu giữa hai bảng ở hai trạm khác nhau Các Constraint được đặt tên để dễ quản lý, và nếu không có tên, Oracle sẽ tự động gán tên cho chúng Chúng được phân thành mức cột và mức bảng, với mức cột được khai báo trong phần khai báo cột của bảng, còn mức bảng áp đặt sau phần khai báo cột và dễ dàng sửa đổi Các loại Constraint bao gồm NOT NULL, UNIQUE, CHECK, DEFAULT, PRIMARY KEY và FOREIGN KEY CHECK dùng để kiểm tra giá trị của cột trong một miền hoặc danh sách nhất định, nhưng không thể có tham chiếu con và không sử dụng các hàm như SYSDATE hay UID vì giá trị của chúng thay đổi thường xuyên.
Các Trigger trong cơ sở dữ liệu (CSDL) được sử dụng để áp đặt các ràng buộc nghiệp vụ phức tạp và được kích hoạt khi thực hiện các thao tác dữ liệu như Insert, Update, và Delete Chúng có khả năng tham chiếu đến các bảng ở xa, điều mà các ràng buộc khai báo không thể thực hiện, ngay cả khi bảng chủ và bảng tớ nằm trên hai trạm khác nhau.
Mục đích của hệ thống là đảm bảo truy cập đồng thời tới dữ liệu, cho phép người dùng đọc mà không phải chờ đợi khi có người khác thực hiện thay đổi Người muốn viết cũng không cần chờ đợi người khác đang đọc dữ liệu Hệ thống đảm bảo tính nhất quán khi đọc dữ liệu, cho phép người dùng luôn nhìn thấy dữ liệu nguyên bản trong quá trình thực hiện câu lệnh, và khi một người commit thay đổi, những thay đổi này không ảnh hưởng đến người khác đang thực hiện câu lệnh của họ.
Các lớp khoá trong cơ sở dữ liệu bao gồm khoá dữ liệu, giúp bảo vệ dữ liệu trong quá trình thực hiện các lệnh thao tác, và khoá từ điển, có chức năng bảo vệ cấu trúc của các đối tượng trong cơ sở dữ liệu.
Liên kết dữ liệu
Khi yêu cầu dữ liệu từ nhiều bảng trong cơ sở dữ liệu, điều kiện join được áp dụng để kết nối các dòng của bảng này với các dòng của bảng khác thông qua các giá trị chung trong các cột tương ứng Điều kiện join thường dựa trên các cột khóa chính và khóa ngoại.
Có hai loại điều kiện join chính là Equijoins và Non-equijoins Ngoài ra còn có các phơng pháp khác nh: Outer joins, Selfjoins, Set operators.
4.1 Equijoins Đây là cách liên kết dữ liệu giữa hai hay nhiều bảng mà quan hệ giứa hai bảng có phần bổ xung là khoá chính và khoá ngoại Điều kiện join là phép toán eqal (=).
Non-equijoins là loại phép nối xảy ra khi không có cột nào trong bảng đầu tiên khớp với cột trong bảng thứ hai, và điều kiện nối không dựa trên phép toán bằng Các điều kiện thường được sử dụng trong non-equijoins bao gồm BETWEEN, =.
Sử dụng một outer join để xem các dòng mà có các điều kiện join không chuẩn
Phép toán đợc sử dụng là dấu (+) Đặt dấu + bên cạnh của join nơi mà không có giá trị để join tới
Sử dụng để kết hợp các dòng trong một bảng với các dòng trong một bảng tương tự, nó mô phỏng hai bảng trong mệnh đề FROM bằng cách khởi tạo hai bí danh (alias) cho bảng.
Chúng ta có thể kết nối một bảng với chính nó bằng cách sử dụng các bí danh bảng, mô tả nó như hai bảng riêng biệt Điều này cho phép các dòng trong một bảng được liên kết với các dòng tương tự trong bảng đó.
Sử dụng ngôn ngữ lập trình trong CSDL Oracle
Ngôn ngữ SQL
SQL (Ngôn ngữ truy vấn có cấu trúc) là ngôn ngữ chuẩn để truy xuất và quản lý cơ sở dữ liệu quan hệ Hiện nay, SQL được sử dụng phổ biến trong ngành công nghệ thông tin để truy cập và thao tác với dữ liệu trong các hệ thống cơ sở dữ liệu quan hệ.
SQL là ngôn ngữ không module, cho phép người dùng làm việc với các mẩu tin mà không cần thao tác trực tiếp trên từng tập tin Nó hỗ trợ di chuyển tự động giữa các mục dữ liệu và làm việc với cấu trúc dữ liệu ở mức độ cao hơn Các lệnh SQL có thể nhận đầu vào và đầu ra là tập hợp các mẩu tin, cho phép kết quả của một lệnh SQL trở thành đầu vào cho lệnh tiếp theo Người dùng không cần chỉ định phương pháp truy cập cơ sở dữ liệu, giúp họ tập trung vào công việc chính Tất cả các lệnh SQL đều sử dụng phương thức tối ưu hóa, tự động nhận biết và áp dụng các chỉ mục mà không yêu cầu người dùng can thiệp.
SQL là ngôn ngữ phổ biến được sử dụng bởi nhiều đối tượng khác nhau, bao gồm quản trị hệ thống, quản trị cơ sở dữ liệu, quản trị bảo mật, lập trình viên ứng dụng, và những người hỗ trợ ra quyết định Mỗi nhóm người dùng có cách tiếp cận và ứng dụng SQL theo nhu cầu riêng của họ.
SQL là ngôn ngữ hợp nhất cho phép thực hiện nhiều tác vụ khác nhau như truy vấn dữ liệu, thêm, cập nhật và xoá các mẩu tin.
Tạo lập, thay thế, hiệu chỉnh, hủy các object; Điều khiển việc truy cập CSDL và các object; Đảm bảo tính thống nhất và toàn vẹn dữ liệu.
SQL là ngôn ngữ chung cho tất cả các hệ quản trị cơ sở dữ liệu (CSDL) quan hệ, cho phép người dùng áp dụng kiến thức về SQL khi làm việc với các hệ thống khác nhau Điều này cũng đồng nghĩa với việc các ứng dụng viết bằng SQL có thể dễ dàng chuyển đổi giữa các hệ quản trị CSDL mà không cần chỉnh sửa nhiều, tạo thuận lợi cho việc phát triển và triển khai ứng dụng.
Nhúng SQL: Nhúng SQL (Sử dụng SQL trong các ngôn ngữ lập trình có cấu trúc) là tập hợp các lệnh sau:
- Tất cả các lệnh SQL, nh: Select, Insert,
- Các lệnh điều khiển nh: Prepare, Open, nhằm kết các lệnh SQL chuẩn vào ngôn ngữ lập trình cấu trúc.
Oracle cung cấp các tiền biên dịch (Precompiler) cho các ngôn ngữ nhúng SQL, gồm: Tiền biên dịch Pro*Ada, Pro*C, Pro*Cobol, Pro*Fortran, Pro*Pascal, Pro*PL/I.
Các công cụ của Oracle chủ yếu hỗ trợ việc sử dụng SQL, nhưng mỗi công cụ lại có những đặc thù riêng khi áp dụng SQL.
1.2 Soạn thảo, thực thi một chơng trình
Thực thi chơng trình trong SQL*Plus: Dùng lệnh start hay ký tự @ để định thực thi chơng trình SQL*Plus:
SQL> start example.sql, hay SQL> @example.sql
Soạn thảo chơng trình: Để lu trữ lệnh trong buffer vào tập tin dùng lệnh SAVE, ví dụ lu nội dung buffer vào tập tin BUFFER.SQL
Trong SQL*Plus, bạn có thể thêm các ghi chú và diễn giải vào các lệnh SQL để làm rõ nội dung Đối với các comment dài cần sử dụng nhiều dòng, hãy dùng cú pháp /* */ Còn đối với các comment ngắn gọn trên một dòng, bạn có thể sử dụng dấu (–).
Để xuất kết quả ra tập tin văn bản, bạn cần bật chế độ SET SPOOL ON và chỉ định tập tin chứa kết quả Mặc định, kết quả sẽ được hiển thị trên màn hình và liên tục trôi.
Cách này rất tiện lợi cho viết chơng trình sinh chơng trình (Các chơng trình Generate)
Ngng kÕt xuÊt SET SPOOL OFF.
Các thành phần của SQL
Schema là tập hợp các cấu trúc logic của dữ liệu, được gọi là các object của schema Mỗi schema thuộc về một người sử dụng cơ sở dữ liệu (CSDL) và mang tên của người đó, với mỗi người sử dụng chỉ có một schema duy nhất Các object của schema có thể được tạo lập và thao tác thông qua các lệnh SQL, bao gồm nhiều loại object khác nhau.
In the realm of database management, various schema objects play crucial roles, including Clusters, which group related data; Data Links that establish connections between data; Stand-alone Functions and Procedures that execute specific tasks independently; and Indexes that enhance data retrieval efficiency Additionally, Packages bundle related procedures and functions, while Sequences generate unique numbers in a defined order Snapshots provide data copies at a certain point in time, and Synonyms create alternative names for database objects Other essential components include Tables for data storage, Database Triggers that automate actions in response to events, Views which represent virtual tables, Profiles for user resource management, Roles that define user permissions, Rollback Segments for transaction management, and Tablespaces that allocate storage for database objects.
The subcomponents of a Schema object include the columns within a table, integrity constraints that ensure data accuracy, and various elements such as package procedures, package functions, and other objects contained within a package.
Các quy tắc khi tham chiếu đến object
Cú pháp chung khi tham chiếu đến các object: Sơ đồ chung khi tham chiếu các object hoặc thành phần của object
Schema.Object.Part.@dblink Trong đó: object: Tên object. schema: Schema chứa object. part: Thành phần của object. dblink: Tên CSDL chứa object.
Oracle xử lý việc tham chiếu các đối tượng trong câu lệnh SQL bằng cách phân tích và xác định các đối tượng trong không gian tên Sau khi nhận diện, Oracle thực hiện các thao tác theo yêu cầu của câu lệnh Nếu tên đối tượng không thuộc không gian tên, câu lệnh sẽ không được thực hiện và sẽ xuất hiện thông báo lỗi Ví dụ, câu lệnh sau đây được sử dụng để thêm một bản ghi vào bảng DEPT.
INSERT INTO Dept VALUES (50, 'SUPPORT', 'PARIS');
Theo ngữ cảnh của câu lệnh, Oracle xác định bảng Dept có thể là
- Một table trong schema của chúng ta.
- Một view trong schema của chúng ta.
- Đồng nghĩa riêng cho table hoặc view.
- Đồng nghĩa chung cho table hoặc view.
Để tham chiếu đến các đối tượng không thuộc quyền sở hữu trong một schema hiện tại, cần chỉ định tên của schema chứa đối tượng mà bạn muốn truy cập theo cú pháp: schema.object.
Ví dụ để xoá table EMP trong schema SCOTT
Để truy cập các object từ xa trong cơ sở dữ liệu, cần chỉ định tên liên kết cơ sở dữ liệu (database link) sau tên object Database link là một đối tượng schema trong Oracle, cho phép người dùng thâm nhập và truy xuất dữ liệu từ các cơ sở dữ liệu xa.
Char: Kiểu Char dùng để khai báo một chuỗi có chiều dài cố định Chiều dài tối đa là 255 byte.
Varchar2: Dùng để khai báo chuỗi ký tự với chiều dài thay đổi Chiều dài tối đa là 2000 byte.
Varchar: Đợc xem giống Varchar2.
Số (NUMBER) được sử dụng để lưu trữ các giá trị số, bao gồm số dương, số âm và số với dấu chấm động Cú pháp NUMBER (p,s) cho phép chỉ định p là số chữ số trước dấu chấm thập phân (từ 1 đến 38) và s là số chữ số sau dấu chấm thập phân (từ -84 đến 127).
Float là kiểu dữ liệu dùng để khai báo số dấu chấm động, với độ chính xác thập phân tối đa là 38 và độ chính xác nhị phân tối đa là 126 Cú pháp FLOAT(b) cho phép khai báo kiểu dấu chấm động với độ chính xác nhị phân b, trong đó b có giá trị từ 1 đến 126 Lưu ý rằng độ chính xác thập phân được tính bằng công thức độ chính xác nhị phân nhân với 0.30103.
Kiểu LONG được sử dụng để khai báo chuỗi ký tự với độ dài thay đổi, có chiều dài tối đa lên tới 2GB Thường được áp dụng để lưu trữ văn bản.
Date: Dùng để chứa dữ liệu ngày và thời gian, mặc dù kiểu ngày và thời gian có thể đợc chứa trong kiểu Char và Number.
Raw và Long Raw là các kiểu dữ liệu dùng để lưu trữ chuỗi byte, hình ảnh và âm thanh Dữ liệu kiểu Raw chỉ có thể được gán hoặc truy cập mà không thực hiện thao tác như với chuỗi ký tự Kiểu RAW tương tự như VARCHAR2, trong khi LONG RAW giống như LONG, nhưng Oracle tự động chuyển đổi các giá trị kiểu CHAR, VARCHAR2 và LONG giữa tập hợp ký tự của cơ sở dữ liệu và các ứng dụng.
Mỗi bản ghi trong cơ sở dữ liệu (CSDL) được xác định bởi một địa chỉ có kiểu ROWID, bao gồm ba thành phần: block, row và file Trong đó, block là chuỗi hệ bát phân cho biết vị trí block chứa bản ghi; row là chuỗi hệ bát phân chỉ định vị trí bản ghi trong block; và file là chuỗi hệ bát phân xác định tệp cơ sở dữ liệu chứa block đó.
Mlslabel: Dùng chứa label dạng nhị phân mà Oracle dùng để đảm bảo hoạt động của bản thân hệ thống.
Trong Oracle, việc chuyển đổi kiểu dữ liệu giữa các giá trị khác nhau là khả thi, mặc dù thông thường một biểu thức không nên chứa các giá trị thuộc nhiều kiểu khác nhau.
Oracle tự động chuyển kiểu của dữ liệu trong một số trờng hợp sau:
- Khi INSERT hoặc UPDATE gán giá trị cho cột có kiểu khác, Oracle sẽ tự động chuyển giá trị sang kiểu của cột.
- Khi sử dụng các hàm hoặc các toán tử mà các tham số có kiểu không t- ơng thích thì Oracle sẽ tự động chuyển kiểu.
- Khi sử dụng toán tử so sánh mà các giá trị có các kiểu khác nhau, Oracle sẽ tự động chuyển kiểu.
Ngời sử dụng tự chuyển đổi
Oracle cung cấp các hàm để chuyển đổi kiểu, ví dụ:
TO_NUMBER (chuyÓn sang kiÓu sè)
TO_CHAR (chuyÓn sang kiÓu ký tù).
TO_DATE (Chuyển sang kiểu ngày).
Cột có giá trị rỗng (NULL) là cột cha đợc gán giá trị, nói cách khác nó cha đợc khởi tạo giá trị
Các cột với bất kỳ kiểu dữ liệu nào cũng có thể có giá trị NULL, trừ khi nó là khoá hay có ràng buộc toàn vẹn NOT NULL.
NULL trong các hàm SQL
Trong các hàm làm việc với từng cột hay hàm vô hớng (scalar function)
Các hàm này sẽ trả về giá trị null nếu tham số đầu vào là null, ngoại trừ hàm NVL và TRANSLATE có khả năng trả về giá trị thực Chẳng hạn, hàm NVL(comm, 0) sẽ trả về 0 khi giá trị của comm là null.
Trong các hàm làm việc với nhóm các cột (group function)
Hầu hết các hàm trong nhóm đều bỏ qua các giá trị null; ví dụ, khi sử dụng hàm AVG để tính trung bình cho một cột có giá trị 1000, null, null, null, kết quả sẽ chỉ tính dựa trên giá trị 1000 mà không xem xét đến các giá trị null.
2000 khi đó trung bình đợc tính là (1000+200)/2 = 1500, nh vậy trị null bị bỏ qua chứ không phải xem là trị 0.
Trong các biểu thức so sánh, để xác định giá trị null, bạn cần sử dụng các toán tử IS NULL hoặc IS NOT NULL Nếu một biểu thức so sánh chứa giá trị null và kết quả phụ thuộc vào giá trị này, thì kết quả sẽ là không xác định Tuy nhiên, trong biểu thức DECODE, hai giá trị null được coi là bằng nhau trong phép so sánh.
Các lệnh SQL
4.1 Tổng quan về tập lệnh
Câu lệnh SQL có thể được viết liên tục và trải dài trên nhiều dòng, với dấu kết thúc là dấu chấm phẩy (;) hoặc dấu gạch chéo (/) Lưu ý rằng các từ khóa trong câu lệnh SQL không phân biệt chữ hoa hay chữ thường.
Các lệnh định nghĩa cấu trúc dữ liệu như Create Table, Alter Table và Drop Table cho phép người dùng thực hiện các thao tác quan trọng như tạo, sửa đổi và xóa các đối tượng trong cơ sở dữ liệu Ngoài ra, chúng cũng hỗ trợ việc gán và hủy bỏ quyền, thiết lập các tùy chọn kiểm toán, cũng như thêm chú thích vào từ điển dữ liệu Lưu ý rằng các lệnh này sẽ tự động commit sau khi thực hiện.
Data manipulation commands include Select, Insert, Update, and Delete These commands only make actual updates to the database when a commit is executed.
Lệnh điều khiển giao dịch: Nhóm lệnh này gồm: Commit, Rollback, Savepoint, Set Transaction.
Lệnh điều khiển session: Nhóm lệnh này gồm: Alter Session, Set Role.
Lệnh hệ thống: Nhóm lệnh này có: Alter System.
Nhúng lệnh SQL: Nhóm lệnh này gồm: Close, Connect, Declar Cursor, Declar Database, Declar Statement, Declar Table, Describe, Execute, Execute Immediate, Fetch, Open, Prepare, Type, Var, Whenever.
Các lệnh trong SQL mở rộng (SQL* PLUS): Đa các lệnh SQL vào ngôn ngữ thủ tục và nó đợc thể hiện qua ngôn ngữ PL/SQL.
Trong câu lệnh, sử dụng dấu (&) để chỉ định phần dữ liệu thay thế Nếu bạn sử dụng (&&) chỉ để thay thế biến, thì sau khi thực hiện câu lệnh, biến thay thế vẫn sẽ tồn tại.
Lệnh Define được sử dụng để khai báo và gán giá trị cho biến trong lập trình Để loại bỏ biến khỏi bộ nhớ, bạn có thể sử dụng lệnh Undefine Nếu bạn muốn liệt kê tất cả các biến đã được khai báo, hãy sử dụng lệnh Define mà không chỉ định biến cụ thể nào.
- Lệnh Accept: Khai báo và gán giá trị cho biến với dòng hiển thị.
PL/SQL
Mỗi lệnh SQL cần kết thúc bằng dấu chấm phẩy (;) Các lệnh định nghĩa cơ sở dữ liệu (DDL) không được sử dụng trong PL/SQL Lệnh Select có thể trả về nhiều dòng và gây ra ngoại lệ, trong khi các lệnh DML có khả năng tác động đến nhiều dòng dữ liệu.
PL/SQL nổi bật với nhiều ưu điểm so với các ngôn ngữ lập trình khác, đặc biệt trong việc quản lý logic và hỗ trợ các quy luật hoạt động của ứng dụng cơ sở dữ liệu (CSDL) Mã PL/SQL được sử dụng để giao tiếp với CSDL được lưu trữ trực tiếp trong CSDL Oracle, tạo điều kiện cho việc tương tác tự nhiên trong môi trường CSDL này.
5.2 Cấu trúc chơng trình PL/SQL
PL/SQL cho phép các nhà phát triển xây dựng các module chương trình, giúp nâng cao khả năng tái sử dụng phần mềm và giảm độ phức tạp trong việc thực hiện các tác vụ đặc biệt dưới một tên gọi cụ thể.
Một trong những điểm mạnh nổi bật của PL/SQL là khả năng quản lý con trỏ (cursor) Con trỏ là một thẻ quản lý địa chỉ trong bộ nhớ, nơi lưu trữ kết quả của một lệnh SQL đã thực thi Chúng rất hữu ích trong việc thực hiện các thao tác trên các dòng dữ liệu được trả về từ lệnh select.
Trong PL/SQL, các lỗi được gọi là Exception và chúng được kiểm tra ngầm trong bất kỳ khối mã lệnh nào Khi một Exception xảy ra, sự thực thi trong khối mã lệnh sẽ dừng lại và điều khiển sẽ chuyển sang trình xử lý Exception tương ứng.
5.3Khèi PL/SQL (PL/SQL block)
Mỗi khối PL/SQL bao gồm ba thành phần chính: phần khai báo biến, phần thực thi và trình xử lý lỗi Phần khai báo biến định nghĩa các cấu trúc biến sẽ được sử dụng trong mã lệnh Phần thực thi bắt đầu bằng từ khóa Begin và kết thúc bằng từ khóa End hoặc Exceptions Cuối cùng, phần trình xử lý lỗi xác định các lỗi có thể xảy ra và cách thức xử lý chúng.
CÊu tróc mét khèi PL/SQL nh sau:
PL/SQL là phương pháp tối ưu để viết và quản lý các stored procedure trong môi trường Oracle, bao gồm bốn cấu trúc chính: Procedure, Function, Package và Trigger Procedure và Function đều chứa chuỗi chỉ thị SQL, nhưng khác nhau ở chỗ Function chỉ trả về một giá trị duy nhất, trong khi Procedure có thể trả về nhiều giá trị qua các tham số output Package là tập hợp các Procedure và Function được tổ chức lại PL/SQL bao gồm phần khai báo và phần thân chứa mã lệnh thực thi, trong khi Trigger là các khối PL/SQL đặc biệt được kích hoạt bởi các sự kiện SQL.
Tổng quan về Oracle Developer/2000
Developer/2000 là một bộ các thành phần Oracle mà chúng ta có thể tích hợp để xây dựng các ứng dụng toàn diện.
Nhóm Developer/2000 cung cấp các sản phẩm hỗ trợ thiết kế, khởi tạo và vận hành ứng dụng trên nền tảng đa dạng Bộ công cụ của Oracle bao gồm các giải pháp thiết kế, phát triển và truy cập dữ liệu hiệu quả.
I Các đặc trng phát triển
Developer/2000 cung cấp khả năng xây dựng hệ thống thao tác cao với ưu điểm về giao diện người dùng (GUI), cơ sở dữ liệu (CSDL), công nghệ client/server và Web Các công cụ trực quan trong Developer/2000 có giao diện và tính năng đồng nhất, cho phép người dùng dễ dàng chuyển đổi giữa các công cụ và thiết kế các thành phần, bao gồm thiết kế module có thể tái sử dụng.
II Các đặc trng chính của Developer/2000
Trợ giúp GUI toàn diện
Developer/2000 trợ giúp các đặc trng tự nhiên của Microsoft Windows9x và NT 4.0.
Các ứng dụng đợc phân phối
Các công cụ cung cấp các trợ giúp cục bộ, client-server, và Web với các kết nối CSDL trên một ứng dụng.
Các công cụ sản xuất và toàn diện
Developer/2000 mang đến sự linh hoạt trong thiết kế nhờ vào các công cụ như Layout Editor và Object Navigator Người dùng có thể lưu trữ các khối chương trình PL/SQL trên server CSDL, server ứng dụng hoặc trong ứng dụng client-side Ngoài ra, việc di chuyển và sao chép các đối tượng giữa các module và server CSDL trở nên dễ dàng thông qua tính năng kéo và thả (drag-and-drop).
Điều khiển nguồn mềm dẻo
Chúng ta có thể lu trữ các định nghĩa của các module ứng dụng trong các flat file hoặc trong CSDL Oracle.
Chúng ta có thể mở rộng các ứng dụng từ các ngời sử dụng đơn tới hàng nghìn ngời khác mà không làm thay đổi tới ứng dụng
Developer/2000 cung cấp một mô hình thừa kế linh hoạt, cho phép chuyển giao các thuộc tính và mã giữa các đối tượng và ứng dụng khác nhau thông qua lớp con và các thư viện đối tượng.
III Các thành phần của Developer/2000
Do yêu cầu của đồ án tôi xin đi vào giới thiệu về Form Builder và Report Builder. 3.1 Form Builder
Form Builder là công cụ tạo ứng dụng mạnh mẽ với nhiều tính năng trong một cơ sở dữ liệu, cho phép phát triển ứng dụng nhanh chóng mà không cần viết mã nhiều Đây là một thành phần quan trọng của Developer/2000, giúp người dùng dễ dàng tạo ra các ứng dụng dựa trên form để hiển thị và thao tác dữ liệu hiệu quả.
Với các ứng dụng Form Builder, chúng ta có thể thực hiện các công việc:
- Insert, Update, Delete và Query dữ liệu bằng sử dụng sự đa dạng của các item giao diện.
- Hiển thị dữ liệu bằng sử dụng các điều khiển text, sound, video, image, và ActiveX.
- Điều khiển các form thông qua một vài cửa sổ và các giao tác CSDL.
- Truy cập trực tiếp linh hoạt các ứng dụng Graphics và OLE2.
- Sử dụng các menu đợc tích hợp để truy cập linh hoạt toàn diện. Đối với việc thiết kế các ứng dụng Form Builder, chúng ta có thể:
- Thiết kế các form để sử dụng một số các nguồn dữ liệu trong CSDL Oracle.
- Sử dụng các công cụ phát triển mạnh GUI để xây dựng nhanh và dễ các ứng dụng.
- Thiết kế các ứng dụng có thể đặt ở cả trong môi trng character-mode và GUI.
- Dễ copy hoặc dịch chuyển các đối tợng và các thuộc tính giữa các ứng dụng.
- Sử dụng các đặc trng thiết kế chung và quen thuộc của các công cụ Developer/2000, chẳng hạn nh Wizards, Layout Editor, Object Navigator và PL/SQL Editor.
Các lớp trình ứng dụng và Oracle Developer
Hiện nay, xu hướng phát triển ứng dụng đang chuyển từ mô hình hai lớp sang cấu trúc ba lớp, hay còn gọi là ứng dụng nhiều lớp.
Chuẩn bị trạm làm việc để chạy Form hoặc Report Builder
Trớc khi chạy Form Builder chúng ta cần thực hiện những việc sau:
Để truy cập vào cơ sở dữ liệu Oracle, cả từ xa lẫn cục bộ, chúng ta cần cài đặt Net8 Việc kết nối thành công với cơ sở dữ liệu đòi hỏi sự hợp tác giữa chúng ta và người quản lý cơ sở dữ liệu.
Để truy cập cơ sở dữ liệu từ xa, chúng ta cần tải phần mềm mạng, trong khi việc này không cần thiết nếu sử dụng CSDL Personal Oracle8i cục bộ Đối với phát triển ứng dụng Web, Oracle cung cấp applet viewer đã được cài sẵn, giúp lập trình viên xem giao diện và chức năng của ứng dụng trên môi trường Web.
Các thành phần chính của Form Builder a) Object Navigator
Thành phần quan trọng nhất trong các công cụ Developer là Object Navigator, cho phép người dùng di chuyển nhanh chóng giữa ba giao diện khác nhau Việc nắm vững các hàm của Object Navigator sẽ giúp chúng ta dễ dàng chuyển đổi sang các công cụ khác Ngoài ra, Object Navigator còn hỗ trợ phát triển trình ứng dụng kéo và thả, đồng thời cung cấp khả năng truy cập vào các đối tượng và thư viện trên đĩa cũng như trong cơ sở dữ liệu thông qua Property Palette.
Chúng ta dành phần lớn thời gian để phát triển và xác định các thuộc tính của đối tượng Các đặc điểm này được thiết lập thông qua Property Palette, tùy thuộc vào loại đối tượng đang được thiết kế.
Có ba cách để thay đổi các đặc điểm trên các Property Palette:
Một số đặc điểm được xác định thông qua việc nhập thông tin vào hộp nhập văn bản, và hộp này sẽ tự động sáng lên khi một đặc điểm cụ thể được chọn.
- Một số đặc điểm đợc xác lập bằng cách nhấp mũi tên hớng xuống, mũi tên này xuất hiện khi đặc điểm đợc chọn.
- Một số đặc điểm đợc xác lập bằng cách nhấp vào nút More, nút này xuất hiện khi đặc điểm đợc chọn. c) Layout Editor
Layout Editor là công cụ thiết kế hình dạng và nội dung của canvas, nơi người dùng tương tác với ứng dụng Trong quá trình làm việc với canvas, chúng ta có thể điều chỉnh màu sắc, kích thước, font chữ, cũng như truy cập dữ liệu và kiểu dáng của ứng dụng Tất cả các đối tượng của ứng dụng được vẽ trên canvas, tạo nên một trải nghiệm người dùng hoàn chỉnh.
To create a new canvas in Object Navigator, enable canvases and click the Create tool on the Object Navigator tool palette.
PL/SQL Editor là công cụ quan trọng giúp người dùng kiểm soát chính xác các chức năng của chương trình Tại đây, người dùng có thể chỉnh sửa và biên dịch các trigger cũng như thủ tục của form Ngoài ra, PL/SQL Editor còn cho phép truy cập, chỉnh sửa và biên dịch các thủ tục CSDL Để sử dụng PL/SQL Editor, người dùng chỉ cần chọn menu PL/SQL Editor.
Trong môi trường phát triển, việc tuân thủ các tiêu chuẩn là rất quan trọng Object Library cung cấp một phương pháp hiệu quả để tái sử dụng các đối tượng, giúp đảm bảo sự nhất quán và tuân thủ các tiêu chuẩn trong toàn bộ tổ chức phát triển.
Report Builder là một công cụ tạo report với nhiều đặc tính cho kết xuất có chất lợng nhờ sử dụng các nguồn dữ liệu (CSDL Oracle8i)