Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý...

28
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE GV: PH ẠM VĂN ĐĂNG 1 Tháng: 02/2009

Transcript of Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý...

Page 1: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆUORACLE

GV: PHẠM VĂN ĐĂNG1

Tháng: 02/2009

Page 2: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

NỘI DUNG MÔN HỌC(45 TIẾT LT + 30 TIẾT TH)

CHƯƠNG I : GIỚI THIỆU ORACLECHƯƠNG II : TABLECHƯƠNG III : RÀNG BUỘC DỮ LIỆUCHƯƠNG IV : CÁC LỆNH VÀ HÀM TRONG HQTCSDL ORACLECHƯƠNG V : HƯỚNG DẪN SỬ DỤNG SQLPlus Worksheet và SQL *LusCHƯƠNG VI : HƯỚNG DẪN CÀI ĐẶT ORACLE9ICHƯƠNG VII : HƯỚNG DẪN SỬ DỤNG TIỆN ÍCH EXPORT và IMPORTCHƯƠNG VIII : PL/SQLCHƯƠNG IX : EXCEPTION – VARRAY – RECORD

TRONG HQTCSDL ORACLECHƯƠNG X : CHƯƠNG TRÌNH CON TRONG PL/SQLCHƯƠNG XI : SEQUENCECHƯƠNG XII : VIEWCHƯƠNG XIII : TRIGGERCHƯƠNG XIV : CURSORCHƯƠNG XV : PACKGECHƯƠNG XVI : QUẢN LÝ NGƯỜI DÙNG

2

02/2009GV: Phạm Văn Đăng

Page 3: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

CHƯƠNG I: GIỚI THIỆU ORACLE

GV: PHẠM VĂN ĐĂNG3

Tháng: 02/2009

Page 4: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

NỘI DUNG1. Oracle là gì?

1.1 Thế nào là một hệ quản trị CSDL tốt1.2 Đặc điểm

2. Các đặc trưng của hệ quản trị CSDL Oracle2.1 Truy xuất dữ liệu2.2 Tính đồng hành2.3 Tính an toàn2.4 Backup và Restore2.5 Cơ sở dữ liệu phân tán

3. Các kiểu dữ liệu của HQTCSDL Oracle9i4. Các mô hình hoạt động của Oracle9i

4

02/2009GV: Phạm Văn Đăng

Page 5: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

1. ORACLE LÀ GÌ?1.1 Thế nào là một hệ quản trị cơ sở dữ liệu tốt

Một hệ quản trị cơ sở dữ liệu phải có khả năngquản trị một khối lượng lớn cơ sở dữ liệu một cách đángtin cậy, trong môi trường nhiều người dùng để có thểtruy xuất đồng thời đến cùng một đơn vị dữ liệu tại cùngmột thời điểm. Tất cả những yếu tố trên phải tiến hànhtrong tốc độ cao và an toàn, đồng thời có khả năng:

Chống truy xuất bất hợp pháp Khôi phục dữ liệu khi có sự cố

5

02/2009GV: Phạm Văn Đăng

Page 6: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

1.2 Đặc điểmOracle hỗ trợ việc quản trị dữ liệu có khối hợp hàng

trăm Gigabyte.Hỗ trợ mạnh cho các tính năng nhiều user truy xuất

cùng đơn vị dữ liệu trong cùng thời gian. Có thể làm việc 24/24. Tuân thủ các chuẩn công nghiệp trên các yếu tố

• Hệ điều hành.• Mạng.• Ngôn ngữ truy xuất.

6

02/2009GV: Phạm Văn Đăng

Page 7: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

Cung cấp cơ chế an toàn và bảo mật tốt. Đảm bảo tạo các ràng buộc toàn vẹn đơn giản và phức

tạp trên cơ sở dữ liệu. Hỗ trợ nhiều thuận lợi cho mô hình Client/Server. Cho phép nhiều chủng loại máy, hệ điều hành khác

nhau chia sẻ trên dữ liệu mạng. Dùng để phát triển ứng dụng và có thể sử dụng trên bất

cứ hệ thống nào.

7

02/2009GV: Phạm Văn Đăng

Page 8: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

2. Các đặc trưng của hệ quản trị CSDL Oracle2.1 Truy xuất dữ liệuSQL(SEQUEL - Structured English Query Language)

Là ngôn ngữ truy xuất dữ liệu cho hệ quản trị cơ sở dữ liệuquan hệ, SQL trong Oracle tương thích với SQL, theo chuẩn ANSI(American National Standards Institute - Viện tiêu chuẩn quốc giaMỹ)

8

02/2009GV: Phạm Văn Đăng

Page 9: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

SQL chia thành 4 lớp: Ngôn ngữ định nghĩa dữ liệu:

(DDL - Data Definition Language)o Mức quan niệm: CREATE DATABASE, TABLE,…o Mức ngoài: CREATE VIEW, GRANT,…o Mức trong: CREATE INDEX,...

Ngôn ngữ thao tác dữ liệu(DML - Data Manipulation Language)

Truy xuất: SELECTCập nhật: INSERT, UPDATE, DELETE

Ngôn ngữ điều khiển dữ liệu(DCL - Data Control Language)

Ngôn ngữ điều khiển hệ thống(SYCL - System Control Language) 9

02/2009GV: Phạm Văn Đăng

Page 10: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

PL/SQL(Procedure Language/SEQUEL - Structured English Query Language)

Là ngôn ngữ mở rộng của SQL, kết hợp SQLvới ngônngữ lập trình có cấu trúc.

Chú ý: Code của PL/SQL lưu trữ tập trung tại hệ quản trị cơ sở dữ liệu,

làm việc lưu thông giữa ứng dụng và cơ sở dữ liệu. Thậm chí nếu PL/SQL không nằm tại cơ sở dữ liệu việc gởi

PL/SQL Block thuận lợi hơn gởi các câu SQL rời rạc.

10

02/2009GV: Phạm Văn Đăng

Page 11: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

2.2. TÍNH ĐỒNG HÀNH

Các yêu cầu sau đây cần thỏa mãn:Dữ liệu đọc và bổ sung nhất quán, thực hiện tốt các yêucầu của người dùng.2.2.1 Đồng hành (Concurrency)Vấn đề cần điều khiển tính ra vào, với các người dùngkhi truy xuất cùng một đơn vị dữ liệu, sao cho tại cùngmột thời điểm cho giản ước thời gian chờ là tối thiểuđến mức gần bằng 0.

11

02/2009GV: Phạm Văn Đăng

Page 12: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

2.2.2 Tính nhất quánĐảm bảo dữ liệu nhất quán trong thời gian đọc.Đảm bảo người đọc không chờ người viết và ngược lại.Đảm bảo người viết phải chờ người viết khác nếu cùng

cập nhật đến một đơn vị dữ liệu.

12

02/2009GV: Phạm Văn Đăng

Page 13: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

2.3 TÍNH AN TOÀN

Đảm bảo tính an toàn nhờ các kiểm soát:Quyền truy cập vào cơ sở dữ liệu.Quyền trên cơ sở dữ liệu nào.Quyền trên đối tượng nào trong cơ sở dữ liệu, bao gồm: Quyền hệ thống: Cho phép tác động đến hệ thống là

quyền rất mạnh. Quyền đối tượng: Cho phép tác động lên một đối

tượng cụ thể.

13

02/2009GV: Phạm Văn Đăng

Page 14: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

2.4 BACKUP VÀ RESTORE DỮ LIỆU

2.4.1 Backup Trong khi Backup, cơ sở dữ liệu vẫn có thể hoạt động,cơ chế backup cần uyển chuyển.Người ta cần backup với những lý do sau:

Xóa (Delete) nhầm dữ liệu Phát biểu nhầm các lệnh: Insert, Update Lỗi đĩa cứng. Mất mát do trộm cắp.

14

02/2009GV: Phạm Văn Đăng

Page 15: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

Một cách khắc phục là tạo file backup gồm 2 dạng: Full backup: Toàn bộ file tạo cơ sở dữ liệu. Partial backup:Chỉ backup một phần file dữ liệu.

2.4.2 Restore Là quá trình khôi phục lại cơ sở dữ liệu ban đầu từ cơ

sở dữ liệu được backup.Thứ tự Restore phụ thuộc vào:

Kiểu backup. Thời gian biểu (schedule).

15

02/2009GV: Phạm Văn Đăng

Page 16: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

2.5 CƠ SỞ DỮ LIỆU PHÂN TÁN

2.5.1 Xử lý phân tánDùng nhiều bộ xử lý chia tiến trình thành các tập công

việc có liên quan, phân chia công việc cho các bộ xử lýkhác cùng hợp tác làm việc. Oracle hỗ trợ cho côngviệc xử lý phân tán bằng kiến trúc Client/Server.

Client tập trung cho công việc ra yêu cầu trình bày dữliệu.

Server tiếp nhận các yêu cầu (Request) từ Client, xử lývà trả về kết quả cho Client.

16

02/2009GV: Phạm Văn Đăng

Page 17: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

2.5.2 Cơ sở dữ liệu phân tán Cơ sở dữ liệu phân tán là một mạng cơ sở dữ liệu quản

lý bởi nhiều server cơ sở dữ liệu, xuất hiện tới ngườidùng như là một cơ sở dữ liệu duy nhất. Dữ liệu trongcơ sở dữ liệu phân tán có thể truy xuất bổ sung đồngthời tại một thời điểm.

Một số khái niệm: Cơ sở dữ liệu(CSDL) mà người dùng kết nối

(Connect) trực tiếp gọi là Local Database. CSDL còn lại gọi là Remove Database. Khi một CSDL cục bộ truy xuất CSDL từ xa gọi là

Client Database.17

02/2009GV: Phạm Văn Đăng

Page 18: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

3. CÁC KIỂU DỮ LIỆU CỦA HQTCSDL ORACLE9I

3.1 Char (n) n <= 2000 bytesBiểu diễn chuỗi có độ dài cố định. Nếu dữ liệu có chiềudài lớn hơn n hệ thống sẽ báo lỗi. Dữ liệu có chiều dàinhỏ hơn n hệ thống sẽ thêm khoảng trắng.

3.2 Varchar2 (n) n < = 4000 bytesBiểu diễn chuỗi có độ dài thay đổiNếu insert dữ liệu lớn hơn n hệ thống báo lỗiNếu insert dữ liệu nhỏ hơn n hệ thống không thêmkhoảng trắng.

18

02/2009GV: Phạm Văn Đăng

Page 19: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

3.3 NChar (n) n <= 2000 bytesSử dụng cho mã Unicode. Biểu diễn chuỗi có độ

dài cố định. Nếu dữ liệu có chiều dài lớn hơn n hệ thốngsẽ báo lỗi.Dữ liệu có chiều dài nhỏ hơn n hệ thống tự động thêmkhoảng trắng.3.4 NVarchar2 (n) n < = 4000 bytes

Sử dụng cho mã Unicode. Biểu diễn chuỗi có độdài thay đổi.Nếu insert dữ liệu lớn hơn n hệ thống báo lỗi.Nếu insert dữ liệu nhỏ hơn n hệ thống không thêmkhoảng trắng.

19

02/2009GV: Phạm Văn Đăng

Page 20: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

3.5 Number (p,s)p: phần nguyêns: phần thập phân

Ví dụ:

20

Giá trị thật Khai báo Kết quả7456123.89 number 7456123.897456123.89 number(9) 74561247456123.89 number(9,1) 7456123.97456123.89 number(9,2) 7456123.897456123.89 number(8,1) 7456123.9

02/2009GV: Phạm Văn Đăng

Page 21: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

3.6 Long n < =2 GigabyteLưu trữ chuẩnChú ý: Một table không thể có nhiều hơn 2 cột kiểu long Cột kiểu long không thể tạo ràng buộc (trừ NULL, NOT NULL) Không thể index. Một chương trình con không thể có tham số long hay trả về kiểu

long.

21

02/2009GV: Phạm Văn Đăng

Page 22: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

3.7 DateLưu trữ kiểu dữ liệu ngày tháng, bao gồm các thành phần: Thế kỷ Năm, tháng, ngày Giờ, phút, giây.Miền giá trị từ January 1, 4712 B.C đến December 31,

9999 A.D.

22

02/2009GV: Phạm Văn Đăng

Page 23: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

3.8 Raw (n) n <= 255 bytesLưu dữ liệu thuộc nhóm nhị phân

Ví dụ: Hình ảnh, âm thanh.3.9 Long Raw

Giống Raw nhưng miền giá trị <=2 Gigabyte(GB).3.10 ROWIDChuỗi cơ số 16 cho biết địa chỉ một dòng trong tableVí dụ:

23

000 0000F 0008 0002Khối DL chứa file Địa chỉ dùng trong

Khối DLTập tin CSDL

02/2009GV: Phạm Văn Đăng

Page 24: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

3.11 CLOBLưu trữ kiểu dữ liệu chuỗi, và có chiều dài dưới 4 Gigabyte

3.12 NCLOBCũng giống như CLOB, nhưng có kiểu lưu trữ mã Unicode.

3.13 BLOBLưu dữ liệu thuộc nhóm nhị phân, và có chiều dài dưới 4

GigabyteVí dụ: Hình ảnh, âm thanh.

24

02/2009GV: Phạm Văn Đăng

Page 25: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

4. Các mô hình hoạt động của Oracle9iOracle Server có thể chạy trên nhiều máy khác nhau

theo các dạng thức sau: Host Based Client Server Client - Application Server - Server

25

02/2009GV: Phạm Văn Đăng

Page 26: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

Host – Based(Máy đơn)User kết nối trực tiếp đến Database đặt trên cùngmáy.

Client Server(2 Lớp)

User truy xuất Database từ máy tính củamình thông qua mạng (Network) và Database đượcđặt trên một máy khác (Server).

26

02/2009GV: Phạm Văn Đăng

Page 27: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

Client - Application Server – Server(Ba lớp)

User truy xuất Database từ máy tính của mình thông quaApplication Server. Đây là nơi xử lý các yêu cầu của ứng dụng.

27

02/2009GV: Phạm Văn Đăng

Page 28: Hệ Quản Trị Cơ Sở Dữ Liệu Oracle · 2.5 . CƠSỞDỮLIỆUPHÂN TÁN. 2.5.1 Xửlý phân tán Dùng nhiềubộxửlý chia tiếntrình thành các tậpcông việccó

Email: [email protected] 28

Chúc Bạn Thành Công