CHƯƠNG II

TÌM HIỂU CONTEXT CARTRIDGE TRONG ORACLE 8

1.CÁC KHÁI NIỆM CƠ BẢN CỦA ORACLE

 1.1.Giới thiệu Oracle

Oracle bao gồm một tập hợp hoàn thiện các sản phẩm xây dựng ứng dụng và người dùng cuối được trang bị các giải pháp kỹ thuật thông tin hoàn hảo. Các ứng dụng Oracle tương thích với hầu hết các hệ điều hành từ các máy tính cá nhân đến các hệ thống xử lý song song lớn.

Oracle cung cấp một hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) uyển chuyển: Oracle Server để lưu giữ và quản lý các thông tin dùng trong các ứng dụng. Phiên bản Oracle 7 quản lý cơ sở dữ liệu với tất cả các ưu điểm của cấu trúc CSDL quan hệ cộng thêm khả năng lưu giữ và thực thi các đối tượng CSDL như các procedure và các trigger.

Oracle Server là một hệ quản trị CSDL điều khiển:

-Lưu giữ dữ liệu trên các vùng dữ liệu đã thiết kế.

-Truy xuất dữ liệu cho các ứng dụng, dùng các kỹ thuật tương đối tối ưu.

-Bảo mật dữ liệu, cấp quyền khác nhau cho các user.

-Liên kết và toàn vẹn dữ liệu khi CSDL được phân bố trên mạng.

Ngoài các chức năng chuẩn cung cấp các tiện ích CSDL, Oracle Server còn có thêm một số chức năng sau:

-Procedural Option

-Distributed Option

-Parallel Server Option

-Trusted Oracle.

Các sản phẩm của Oracle bao gồm:

-Oracle TextRetrieval

-Pro* ORACLE

-Oracle Card

-Oracle CASE

-SQL * Plus

SQL, SQL * Plus và PL/SQL là các đặc tính của Oracle.

SQL:

-Là ngôn ngữ dùng để truy xuất cơ sở dữ liệu quan hệ, kể cả Oracle.

-Có thể được dùng với mỗi công cụ Oracle khi có yêu cầu truy xuất dữ liệu.

PL/SQL:

-Là ngôn ngữ thủ tục Oracle để viết các ứng dụng luận lý và thao tác dữ liệu bên ngoài CSDL.

-Có thể bao gồm một tập con các lệnh SQL khi có yêu cầu truy xuất dữ liệu.

-Sẵn có trong Oracle Server.

SQL * Plus:

-Là sản phẩm Oracle trong đó có thể dùng cả SQL và PL/SQL.

-Còn có các ngôn ngữ lệnh riêng để điều khiển hành vi của sản phẩm và định dạng output từ các truy vấn SQL.

1.2. Cấu trúc cơ sở dữ liệu (CSDL):

1.2.1. Tablespaces & Data files:

Một CSDL Oracle được lưu giữ trong một hoặc nhiều đơn vị nhớ logic gọi là tablespace.

Mỗi tablespace được lưu giữ thành một hoặc nhiều file vật lý gọi là Data file.

1.2.2. Schema Objects (đối tượng CSDL):

Schema Objects là cấu trúc logic lưu trữ dữ liệu. Schema Objects bao gồm tables, views, sequences, synonyms, indexes, clusters, database links, procedures, packages.

-Tables:

Là đơn vị nhỏ nhất của việc lưu trữ dữ liệu trong một CSDL Oracle. Dữ liệu được lưu thành dòng và cột. Mỗi table được định nghĩa bằng 1 table name và tập các cột. Mỗi cột (field) có một tên cột, kiểu, và độ lớn. Mỗi dòng là tập hợp những thông tin của các cột gọi là 1 record.

-Views:

View tương tự như Window mà qua đó dữ liệu trong table có thể được xem hoặc biến đổi. Một view chỉ được lưu giữ dưới dạng câu lệnh SELECT. View là một dạng table ảo nghĩa là table không thực sự tồn tại mà chỉ xuất hiện để user xem. Một view tự nó không có dữ liệu mà sẽ tương tác dữ liệu dựa vào các table cơ sở.

View giới hạn việc xâm nhập dữ liệu,  cho phép các users nhập các câu truy vấn đơn giản để lấy kết quả từ các câu truy vấn phức tạp thông qua 1 view, cung cấp dữ liệu độc lập cho nhiều người sử dụng hay các chương trình ứng dụng.

View được chia thành 2 loại: view đơn và view phức. View đơn là view chỉ truy xuất dữ liệu từ 1 table và không chứa bất kỳ hàm hay GROUP dữ liệu nào, ngược lại gọi là view phức.

-Synonyms:

Synonym là một bí danh của một table, view, sequence, procedure, function hay một package. Synonym được sử dụng cho việc bảo mật và tiện lợi trong truy xuất dữ liệu. Có 2 loại synonym: Public và Private.

-Index (chỉ mục):

Index của Bảng được tạo ra nhằm tăng tốc độ truy xuất, tăng hiệu quả của tính duy nhất trên một hoặc một tập của cột.

Chỉ mục của Oracle có 2 mục đích chính là: tăng tốc độ lấy dữ liệu thông qua khóa đặc thù (particular key), bắt buộc giá trị duy nhất trên cột, thường là khóa chính.

1.2.3. Datatypes

Oracle có các kiểu dữ liệu sau đây:

-CHAR(n): Kiểu ký tự có chiều dài cố định là n.

-VARCHAR2(n): Ký tự có chiều dài thay đổi đến n ký tự.

-NUMBER: số dấu chấm động với 38 ký số.

-NUMBER(n): số nguyên có n ký số.

-NUMBER(n,m): số thập phân có n ký số và m số lẻ.

-DATE: Kiểu ngày.

-LONG: Ký tự có chiều dài thay đổi tối đa 231-1, chỉ có 1 cột kiểu LONG trong 1 table.

-RAW: tương đương VARCHAR2, nhưng dùng để lưu dữ liệu dạng byte hay nhị phân như hình ảnh, âm thanh.

-LONGRAW: tương đương LONG, nhưng dùng để lưu dữ liệu dạng byte hay nhị phân như hình ảnh, âm thanh.

1.2.4. Data Integrity (ràng buộc dữ liệu)

Dữ liệu phải thỏa mãn tập các luật được định nghĩa trước bởi người quản trị CSDL.

Oracle cho phép định nghĩa các ràng buộc toàn vẹn cho các cột trong table hay giữa các table với nhau để buộc chúng tuân theo một quy luật nào đó nhằm mục đích: Kiểm tra ràng buộc toàn vẹn dữ liệu khi thêm vào, cập nhật hay xóa dữ liệu; ngăn cản việc xóa 1 table khi có sự phụ thuộc của table này vào các table khác. Oracle có  các kiểu ràng buộc sau:

-NOT NULL: cột không được rỗng.

-UNIQUE: đánh dấu một cột hoặc một tập các cột như một khóa duy nhất, không thể có 2 dòng trong table chứa cùng giá trị cho khóa này.

-PRIMARY KEY: tương tự như khóa đơn nhất, một khóa chính bắt buộc sự duy nhất của một cột hay một tổ hợp các cột.

-FOREIGN KEY: Khóa ngoại cung cấp các luật ràng buộc tham khảo toàn vẹn không những bên trong 1 table mà còn giữa các table.

-CHECK: ràng buộc này định nghĩa một điều kiện mà mỗi dòng phải thỏa trong 1 table khi đưa 1 giá trị vào 1 cột đã được định nghĩa.

1.2.5. Từ điển dữ liệu

Từ điển dữ liệu là một trong những phần quan trọng nhất của Oracle DBMS. Từ điển dữ liệu bao gồm một tập hợp các table và view cung cấp các hướng dẫn tham khảo chỉ đọc về CSDL. Từ điển dữ liệu chứa đựng:

-Tên username của người sử dụng Oracle

-Các quyền và tập quyền được cấp.

-Tên của các đối tượng CSDL (table, view, index, synonym,…)

-Các ràng buộc được cấp cho table.

-Các thông tin cập nhật.

Từ điển dữ liệu được tạo ra khi ta tạo 1 CSDL. Từ đó bất cứ lúc nào CSDL đang hoạt động thì từ điển dữ liệu cũng luôn được Oracle RDBMS cập nhật.

Từ điển dữ liệu là một tham khảo đến toàn bộ CSDL người dùng. Đây là một tài nguyên có giá trị đối với người dùng cuối, người thiết kế ứng dụng và người quản trị CSDL. Các hoạt động của RDBMS cũng dựa trên từ điển dữ liệu để lưu và kiểm tra các thông tin về CSDL.

 1.3. Data Access

1.3.1. SQL & PL/SQL

SQL:

Một hệ quản trị CSDL cần có một ngôn ngữ cho phép các người sử dụng truy xuất dữ liệu. Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ được dùng trong hầu hết các hệ CSDL quan hệ.

-SQL là 1 ngôn ngữ tựa tiếng Anh.

-SQL là 1 ngôn ngữ phi thủ tục: bạn chỉ rõ thông tin gì bạn cần mà không cần chỉ ra cách thực hiện như thế nào. Nói cách khác, SQL không yêu cầu bạn chỉ phương pháp truy xuất dữ liệu.

-SQL xử lý các tập hợp mẫu tin hơn là một mẫu tin đơn lẻ ở 1 thời điểm. Dạng chung nhất của tập các mẫu tin là một bảng.

-SQL có thể được dùng bởi nhiều người sử dụng bao gồm người quản trị dữ liệu, các người lập trình ứng dụng, người quản lý, người dùng cuối.

-SQL cung cấp nhiều lệnh cho nhiều công việc khác nhau:

+truy vấn dữ liệu

+thêm vào, cập nhật và hủy bỏ các hàng của bảng

+tạo lập, thay đổi và hủy bỏ các đối tượng CSDL

+kiểm soát truy xuất đến CSDL và các đối tượng CSDL

+bảo đảm tính  nhất quán dữ liệu.

PL/SQL: (Procedure Language)

PL/SQL là một mở rộng của SQL, kết hợp vào trong đó rất nhiều đặc tính của các ngôn ngữ lập trình gần đây. Nó cho phép các thao tác dữ liệu và các câu lệnh query SQL bao gồm các đoạn mã có cấu trúc khối và tính thủ tục, làm cho PL/SQL thành một ngôn ngữ xử lý giao dịch mạnh mẽ.

Các ưu điểm của PL/SQL:

-Cấu trúc khối: chương trình có thể chia thành các khối luận lý.

-Điều khiển theo luồng: dùng các câu lệnh có điều kiện, lặp vòng, rẽ nhánh để điều khiển luồng thủ tục của chương trình, quyết định khi nào SQL hoặc tác vụ khác được thi hành.

-Tính cơ động: chương trình có thể chuyển đổi đến bất kỳ môi trường nào mà Oracle và PL/SQL đã được hỗ trợ.

-Tính thống nhất

-Hiệu quả.

1.3.2. Transaction (giao dịch)

Giao dịch là một tác vụ thao tác CSDL bao gồm một loạt các thay đổi trên một hay nhiều table.

Có 2 lớp: DML & DDL transaction

-DML transaction: gồm có một số lệnh DML mà Oracle xem như một thực thể đơn hoặc một đơn vị công việc luận lý.

-DDL transaction: chỉ có thể chứa 1 lệnh DDL.

Đối với một giao dịch, hoặc là nó thay đổi CSDL một cách hoàn chỉnh hoặc là không thực hiện bất kỳ sự thay đổi CSDL nào. Một giao dịch bắt đầu khi thực hiện lệnh DML và DDL đầu tiên và kết thúc khi xảy ra 1 trong các trường hợp sau:

            +COMMIT / ROLLBACK

            +Lệnh DDL được đưa ra

            +Lỗi bên trong

            +Thoát khỏi chương trình SQL * Plus

 1.4. Programmatic Constructs

1.4.1.Procedures & Packages

Oracle cho phép truy xuất và xử lý thông tin CSDL bằng cách sử dụng các đối tượng CSDL thủ tục, gọi là các đơn vị chương trình PL/SQL. Ví dụ như ta có:Procedure, Function, Package.

-Oracle có thể thực hiện procedure và function giống như  thực hiện một câu lệnh SQL riêng lẻ. Procedure hoặc function là một đối tượng dữ liệu, gồm tập hợp các câu lệnh, được lưu trong CSDL, được thực thi như một unit để giải quyết một vấn đề nào đó hoặc thực hiện một số công việc có liên quan.

-Procedure và function rất giống nhau, chỉ khác là function thì luôn luôn trả về giá trị cho chương trình gọi nó, còn procedure thì không. Thông thường người ta gọi chung procedure và function là "procedure".

-Procedure cung cấp một số thuận lợi trong các mặt sau:

            +Security: bảo mật dữ liệu

            +Perfomance:

            +Memory allocation: sử dụng share memory

            +Productivity: thuận tiện cho việc thiết kế application

            +Integrity: bảo đảm được những ràng buộc và tính trong suốt

Package cung cấp phương pháp tập hợp các procedure, function như một unit trong CSDL.

Package cung cấp một số thuận lợi trong các mặt sau:

            +Nhóm các procedure và các variable

            +phân biệt định nghĩa package và thân package

            +khai báo các procedure, variable, constant và cursor

1.4.2.Database Triggers

Oracle cho phép định nghĩa các procedure, được tự động thực thi khi có một câu lệnh INSERT, UPDATE hoặc DELETE được thực hiện vào bảng. Các procedure này được gọi là các database trigger.

-Trigger tương tự như procedure, có thể chứa một số câu lệnh SQL và PL/SQL, được thực thi như một unit và có thể gọi các procedure khác. Tuy nhiên procedure và trigger khác nhau ở cách chúng được gọi. Trong khi procedure được gọi bởi user hoặc application thì trigger được thực thi trực tiếp bởi Oracle khi có 1 lệnh INSERT, UPDATE hoặc DELETE (đã có trigger) được thực hiện, không phân biệt user nào đang nối kết hay application nào đang thực thi.

-Một trigger có 3 phần chính:

            +Triggering event hoặc statement: câu lệnh SQL, xác định khi nào trigger được thực hiện (INSERT, UPDATE, DELETE).

            +Trigger restriction: là một biểu thức logic, nếu có giá trị TRUE thì trigger action sẽ được thực hiện, nếu có giá trị FALSE thì không thực hiện.

            +Trigger action: gồm một số câu lệnh SQL và PL/SQL.

-Một trigger có thể có một trong 2 dạng: enabled hoặc disabled.


PcLeHoan 1996 - 2002
Mirror : http://www.pclehoan.com
Mirror : http://www.lehoanpc.net

Mirror : http://www.ktlehoan.com