You are on page 1of 71

NGÂN HÀNG NHÀ NƯỚC VIỆT NAM

TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP.HCM


˜™

TIỂU LUẬN

MÔN : HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU


TÊN ĐỀ TÀI : PHẦN MỀM QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE

THỰC HIỆN : TRẦN QUANG PHÚC


MSSV : 030235190115
LỚP : D01
GIÁO VIÊN HƯỚNG DẪN : TRỊNH HOÀNG NAM

MỤC LỤC

1
LỜI MỞ ĐẦU....................................................................................................................

1. GIỚI THIỆU TỔNG QUAN......................................................................................


1.1. MỘT SỐ KHÁI NIỆM CƠ BẢN...............................................................................5

1.1.1. Khái niệm RBDMS?...............................................................................................................

1.1.2. Khái niệm Oracle database?...................................................................................................

1.2. GIỚI THIỆU.................................................................................................................6

1.2.1. Lịch sử phát triển....................................................................................................................

1.2.2. Ưu điểm và nhược điểm.........................................................................................................

1.3. CÁC PHIÊN BẢN ORACLE HIỆN NAY.................................................................9

1.4. CÀI ĐẶT VÀ CẤU HÌNH.........................................................................................11

1.5. CÁC THÀNH PHẦN CƠ BẢN.................................................................................23

2. QUẢN TRỊ VẬN HÀNH..........................................................................................


2.1. TẠO VÀ CẤU HÌNH CƠ SỞ DỮ LIỆU..................................................................24

2.1.1. Tạo cơ sở dữ liệu..................................................................................................................

2.1.2. Cấu hình................................................................................................................................

2.2. SAO LƯU DỮ LIỆU..................................................................................................36

2.3. PHỤC HỒI DỮ LIỆU................................................................................................37

3. QUẢN TRỊ THÀNH PHẦN.....................................................................................


3.1. BẢNG (TABLE)........................................................................................................39

3.1.1. Phân loại các tablesv.............................................................................................................

3.1.2. Cấu hình................................................................................................................................

3.1.3. Sao chép một tables..............................................................................................................

3.1.4. Thay đổi trong bảng..............................................................................................................

3.2. VIEW (KHUNG NHÌN).............................................................................................42

3.2.1. Tạo View..............................................................................................................................


3.2.2. Cập nhật View......................................................................................................................

3.2.3. Xem dữ liệu trong View.......................................................................................................

3.2.4. Xóa View..............................................................................................................................

3.3. THỦ TỤC (PROCEDURE).......................................................................................43

3.3.1. Tạo thủ tục............................................................................................................................

3.3.2. Gọi chương trình Procedure..................................................................................................

3.3.3. Xóa Procedure trong Oracle.................................................................................................

3.4. HÀM (FUNCTION)...................................................................................................45

3.4.1. Tạo hàm................................................................................................................................

3.4.2. Gọi hàm................................................................................................................................

3.4.3. Lệnh xóa hàm trong Oracle..................................................................................................

3.5. CHỈ MỤC (INDEX)...................................................................................................47

3.5.1. Tạo các INDEX....................................................................................................................

3.5.2. Một số cách sử dụng index...................................................................................................

3.5.3. Tạo Index khoá ngược (reverse key index)..........................................................................

3.5.4. Tạo Bitmap index.................................................................................................................

3.5.5. Thay đổi tham số lưu trữ cho index......................................................................................

3.5.6. Xoá các index.......................................................................................................................

3.5.7. Xem thông tin về các index..................................................................................................

3.5.8. Tìm các cột trong một index.................................................................................................

3.6. RÀNG BUỘC (CONSTRAINTS).............................................................................55

3.6.1. Tạo ràng buộc.......................................................................................................................

3.6.2. Các ràng buộc sau thường được sử dụng..............................................................................

3.7. BẪY LỖI (TRIGGER)...............................................................................................56

4. QUẢN TRỊ NGƯỜI DÙNG.....................................................................................

3
4.1. TÀI KHOẢN NGƯỜI DÙNG CƠ SỞ DỮ LIỆU ORACLE..................................60

4.1.1. Các thành phần của tài khoản người dùng:...........................................................................

4.1.2. Các tài khoản quản trị ban đầu.............................................................................................

4.2. QUYỀN ĐĂNG NHẬP HỆ THỐNG........................................................................61

4.2.1. Mô hình truy cập...................................................................................................................

4.2.2. Cơ chế bảo mật.....................................................................................................................

4.2.3. Cơ chế xác thực....................................................................................................................

4.3. QUYỀN TRUY XUẤT DỮ LIỆU.............................................................................63

4.4. QUYỀN VÀ VAI TRÒ...............................................................................................63

KẾT LUẬN.......................................................................................................................

TÀI LIỆU THAM KHẢO...............................................................................................

LỜI MỞ ĐẦU

Ngày nay, thuật ngữ cơ sở dữ liệu đang ngày càng phổ biến trong lĩnh vực công nghệ thông tin
và truyền thông. Hầu hết các doanh nghiệp lớn ở lĩnh vực truyền thông ,các đài truyền hình
đều có một hệ cơ sở dữ liệu khổng lồ. Hầu hết các sản phẩm quản lý, thương mại hiện nay đều
thao tác trên cơ sở dữ liệu. Để quản trị số lượng cơ sở dữ liệu khổng lồ đó các nhà quản trị sử
dụng đến hệ thống quản lý cơ sở dữ liệu quan hệ ( RDBMS ).Trong đó, RDBMS là viết tắt của
Relational Database Management System có nghĩa là hệ quản trị cơ sỡ dữ liệu quan hệ.
RDBMS là cơ sở cho SQL, và cho tất cả các hệ thống cơ sở dữ liệu hiện đại như MS SQL
Server, IBM DB2, Oracle, MySQL và Microsoft Access.

Trong các RDBMS, Oracle Database


là một trong các hệ thống tốt và phổ
biến nhất hiện nay xếp top 1 trong
bảng xếp hạng DB-Engines1

Bài tiểu luận dưới đây sẽ cho người


đọc biết được chi tiết các thông tin về hoạt động hệ quản trị cơ sở dữ liệu Oracle .

1. GIỚI THIỆU TỔNG QUAN

1.1. MỘT SỐ KHÁI NIỆM CƠ BẢN


1.1.1. Khái niệm RBDMS?
− RDBMS là viết tắt của Relational Database Management System (Hệ thống quản lý cơ
sở dữ liệu quan hệ). Tất cả các hệ thống quản lý cơ sở dữ liệu hiện đại như SQL, MS
SQL Server, ORACLE, … là dựa trên RDBMS. Nó được gọi là RDBMS bởi vì nó dựa
trên Relational Model (Mô hình quan hệ) đã được giới thiệu bởi E.F.Codd.
− Trong RDBMS, dữ liệu được biểu diễn bởi các hàng. Relational Database là cơ sở dữ
liệu được sử dụng phổ biến nhất. Nó chứa các bảng và mỗi bảng có Primary Key riêng.
1
https://db-engines.com/en/ranking

5
Bởi vì các bảng này được tổ chức chặt chẽ nên việc truy cập dữ liệu trở nên dễ dàng
hơn trong RDBMS.

1.1.2. Khái niệm Oracle database?


− Oracle Database là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) của Tập đoàn
Oracle. Ban đầu được phát triển vào năm 1977 bởi Lawrence Ellison và các nhà phát
triển khác, Oracle DB là một trong những công cụ cơ sở dữ liệu quan hệ được tin cậy
và sử dụng rộng rãi nhất để lưu trữ, sắp xếp và truy xuất dữ liệu theo loại trong khi vẫn
duy trì mối quan hệ giữa các loại khác nhau.
− Hệ thống được xây dựng dựa trên khung cơ sở dữ liệu quan hệ trong đó các đối tượng
dữ liệu có thể được người dùng (hoặc giao diện người dùng của ứng dụng) truy cập
trực tiếp thông qua ngôn ngữ truy vấn có cấu trúc (SQL). Oracle là một kiến trúc cơ sở
dữ liệu quan hệ hoàn toàn có thể mở rộng và thường được sử dụng bởi các doanh
nghiệp toàn cầu quản lý và xử lý dữ liệu trên các mạng cục bộ và diện rộng. Cơ sở dữ
liệu Oracle có thành phần mạng riêng để cho phép truyền thông qua các mạng.
− Oracle DB còn được gọi là Oracle RDBMS.

1.2. GIỚI THIỆU


1.2.1. Lịch sử phát triển
− Phiên bản hiện tại của Cơ sở dữ liệu Oracle là kết quả của hơn 30 năm phát triển đổi
mới. Những điểm nổi bật trong sự phát triển của Cơ sở dữ liệu Oracle bao gồm:
Sáng lập Oracle
o Năm 1977, Larry Ellison, Bob Miner và Ed Oates thành lập Phòng thí nghiệm
phát triển phần mềm tư vấn, trở thành Relational Software, Inc. (RSI). Năm
1983, RSI trở thành Oracle Systems Corporation và sau đó là Oracle
Corporation.
RDBMS đầu tiên có sẵn trên thị trường
o Năm 1979, RSI giới thiệu Oracle V2 (Phiên bản 2) là RDBMS dựa trên SQL
thương mại đầu tiên, một sự kiện mang tính bước ngoặc trong lịch sử cơ sở dữ
liệu quan hệ.
Phiên bản xách tay của Cơ sở dữ liệu Oracle
o Năm 1983, Oracle phiên bản 3 được phát hành và là cơ sở dữ liệu quan hệ đầu
tiên chạy trên máy tính lớn, máy tính mini và PC. Cơ sở dữ liệu được viết bằng
code C, cho phép cơ sở dữ liệu được chuyển sang nhiều nền tảng.
Các cải tiến để kiểm soát đồng thời, phân phối dữ liệu và khả năng mở rộng
o Phiên bản 4 giới thiệu tính nhất quán đọc nhiều phiên bản. Năm 1985, phiên
bản 5 phát hành hỗ trợ tính toán máy khách / máy chủ và hệ thống cơ sở dữ liệu
phân tán. Phiên bản 6 mang đến những cải tiến cho I / O đĩa, khóa hàng, khả
năng mở rộng, sao lưu và phục hồi. Ngoài ra, Phiên bản 6 đã giới thiệu phiên
bản đầu tiên của ngôn ngữ PL / SQL, một phần mở rộng thủ tục độc quyền cho
SQL.
Các đơn vị chương trình được lưu trữ PL / SQL
o Năm 1992, Oracle7 được phát hành đã giới thiệu các thủ tục và trình kích hoạt
được lưu trữ PL / SQL.
Đối tượng và phân vùng
o Năm 1997, Oracle8 được phát hành dưới dạng cơ sở dữ liệu quan hệ đối tượng,
hỗ trợ nhiều kiểu dữ liệu mới. Ngoài ra, Oracle8 hỗ trợ phân vùng các bảng
lớn.

Điện toán Internet


o Năm 1999, cơ sở dữ liệu Oracle8i được phát hành cung cấp hỗ trợ riêng cho
các giao thức internet và hỗ trợ phía máy chủ cho Java. Oracle8i được thiết kế
cho điện toán internet, cho phép cơ sở dữ liệu được triển khai trong một môi
trường đa năng hơn.

Các cụm ứng dụng thực của Oracle (Oracle RAC)

7
o Năm 2001, cơ sở dữ liệu Oracle9i đã giới thiệu Oracle RAC cho phép nhiều
phiên bản truy cập đồng thời vào một cơ sở dữ liệu duy nhất. Ngoài ra, Cơ sở
dữ liệu XML của Oracle (Oracle XML DB) đã giới thiệu khả năng lưu trữ và
truy vấn XML.
Điện toán lưới
o Năm 2003, Oracle Database 10g giới thiệu điện toán lưới. Bản phát hành này
cho phép các tổ chức ảo hóa tài nguyên máy tính bằng cách xây dựng cơ sở hạ
tầng lưới dựa trên các máy chủ hàng hóa chi phí thấp. Mục tiêu chính là làm
cho cơ sở dữ liệu tự quản lý và tự điều chỉnh. Quản lý lưu trữ tự động Oracle
(Oracle ASM) đã giúp đạt được mục tiêu này bằng cách ảo hóa và đơn giản hóa
việc quản lý lưu trữ cơ sở dữ liệu.
Khả năng quản lý, khả năng chẩn đoán và tính khả dụng
o Năm 2007, Oracle Database 11g được phát hành đã giới thiệu một loạt các tính
năng mới cho phép quản trị viên và nhà phát triển thích ứng nhanh chóng với
các yêu cầu kinh doanh thay đổi. Chìa khóa của khả năng thích ứng là đơn giản
hóa cơ sở hạ tầng thông tin bằng cách hợp nhất thông tin và sử dụng tự động
hóa bất cứ khi nào có thể.
o Năm 2009, phát hành phiên bản database 11gR2 .
o Năm 2013, phát hành Oracle 12c, phiên bản Oracle database có rất nhiều thay
đổi để chạy trên nền tảng điện toán đám mây, là bước khởi đầu cho DaaS (Data
as a service)
o Hiện nay đã phát hành Oracle 18c, 19c và 21c

1.2.2. Ưu điểm và nhược điểm


 Ưu điểm:
Tính di động cao

− Cơ sở dữ liệu oracle được chuyển sang tất cả các nền tảng khác với tất cả các nền tảng
khác của nó. Nó dễ dàng chạy trên gần 20 giao thức mạng và trên hơn 100 nền tảng
phần cứng. Điều tương tự cũng giúp bạn dễ dàng viết một ứng dụng oracle bằng cách
thực hiện các thay đổi một cách an toàn trong hệ điều hành và phần cứng.
Khả năng sao lưu và phục hồi dễ dàng

− Nó là tốt để được sử dụng như là một bản sao lưu thích hợp của toàn bộ bản sao lưu
trực tuyến oracle của bạn cũng như phục hồi. Với sự trợ giúp của việc sử dụng cơ sở
dữ liệu oracle, người ta có thể dễ dàng thực hiện khôi phục tại mọi thời điểm nhưng
yêu cầu không gian lưu trữ lớn và có cơ chế lưu trữ.
Hiệu suất cao

− Có nghĩa là việc tạo ra một cơ sở dữ liệu oracle tốt sẽ cung cấp cho bạn tốc độ khá tốt
và cả với cơ sở dữ liệu lớn. Ngoài ra, cơ sở dữ liệu oracle cải thiện hiệu suất và tốc độ
xem xét với việc kiểm soát và khóa giao dịch.
Hỗ trợ nhiều cơ sở dữ liệu

− Lợi thế tốt nhất mà người dùng nhận được khi sử dụng cơ sở dữ liệu oracle là nó dễ
dàng quản lý nhiều cơ sở dữ liệu trong cùng một giao dịch.
Thị trường lớn

− Cho đến nay, Oracle là Nhà cung cấp RDBMS lớn nhất và chi nhiều hơn cho Nghiên
cứu và Phát triển so với các đối thủ còn lại. Về thị phần RDBMS, Oracle có thị phần
tối đa trong các lĩnh vực máy chủ VMS, UNIX và OS .
Thay đổi phiên bản tương thích

− Kể từ phiên bản V4 Beta và chưa bao giờ phải đối mặt với bất kỳ trải nghiệm khó chịu
nào về mặt cú pháp. Cho nên có thể nói khả năng tương thích rất tốt
Tính bảo mật cao

− Cơ chế độc quyền do Oracle cung cấp để giám sát và kiểm soát việc truy cập và sử
dụng dữ liệu. Bạn có thể dễ dàng ngăn chặn truy cập trái phép và cho phép người dùng
truy cập riêng biệt bằng cách triển khai cấp quyền và chỉnh sửa các hành động của
người dùng.
 Hạn chế:
Quá phức tạp

− Không đơn giản như cài đặt Oracle và bắt đầu, mà nó đòi hỏi các kỹ năng chuyên môn
để cài đặt và bảo trì vì nó là một công cụ cực kỳ phức tạp.
Chi phí của Cơ sở dữ liệu Oracle

9
− Giá của các sản phẩm Oracle có thể tăng lên đến mười lần so với giải pháp Cơ sở dữ
liệu MS SQL Server cho một giải pháp tầm trung. Hơn nữa, không có mức giá cụ thể
để có được giấy phép Oracle vì nó thường thay đổi theo thời gian tùy thuộc vào nhiều
yếu tố như thay đổi trong chính sách, bản vá và bản cập nhật của công ty.
Khó quản lý

− Khó khăn hơn rất nhiều về mặt quản lý các hoạt động nhất định.
1.3. CÁC PHIÊN BẢN ORACLE HIỆN NAY
Cơ sở dữ liệu Oracle hiện hành trong năm phiên bản dưới đây, mỗi phiên bản phù hợp với các
tình huống triển khai và phát triển khác nhau. Oracle cũng cung cấp một số tùy chọn cơ sở dữ
liệu, gói và các sản phẩm khác để nâng cao khả năng của Cơ sở dữ liệu Oracle cho các ứng
dụng cụ thể.
Cơ sở dữ liệu Oracle Standard Edition One

− Cơ sở dữ liệu Oracle Standard Edition One mang lại khả năng sử dụng, sức
mạnh và hiệu suất dễ dàng chưa từng có cho nhóm làm việc, cấp phòng ban và
các ứng dụng Web. Từ môi trường máy chủ đơn cho các doanh nghiệp nhỏ đến
môi trường chi nhánh phân tán cao, Oracle Database Standard Edition One bao
gồm tất cả các cơ sở cần thiết để xây dựng các ứng dụng quan trọng cho doanh
nghiệp.
Cơ sở dữ liệu Oracle Standard Edition

− Cơ sở dữ liệu Oracle Standard Edition mang đến sự dễ dàng sử dụng, sức mạnh
và hiệu suất chưa từng có của Standard Edition One, với sự hỗ trợ cho các máy
lớn hơn và phân cụm dịch vụ với Oracle Real Application Cluster (Oracle
RAC). Oracle RAC không có trong Phiên bản Tiêu chuẩn của các bản phát
hành trước Cơ sở dữ liệu Oracle 10g, cũng không phải là một tùy chọn khả
dụng với các bản phát hành trước đó.
Oracle Database Enterprise Edition

− Oracle Database Enterprise Edition cung cấp hiệu suất, tính khả dụng, khả năng
mở rộng và bảo mật cần thiết cho các ứng dụng quan trọng như ứng dụng xử lý
giao dịch trực tuyến khối lượng lớn (OLTP- On-Line Transactional
Processing), kho dữ liệu truy vấn chuyên sâu và các ứng dụng Internet yêu cầu.
Oracle Database Enterprise Edition chứa tất cả các thành phần của Cơ sở dữ
liệu Oracle và có thể được nâng cao hơn nữa
Oracle Database Express Edition

− Oracle Database Express Edition (Oracle Database XE) là một phiên bản cấp
độ đầu vào của Cơ sở dữ liệu Oracle, tải xuống nhanh chóng, cài đặt và quản lý
đơn giản và miễn phí để phát triển, triển khai và phân phối. Oracle Database
XE giúp bạn dễ dàng nâng cấp lên các phiên bản khác của Oracle mà không
cần di chuyển phức tạp và tốn kém. Oracle Database XE có thể được cài đặt
trên mọi kích thước máy với số lượng CPU bất kỳ, lưu trữ tối đa 4GB dữ liệu
người dùng, sử dụng bộ nhớ lên đến 1GB và chỉ sử dụng một CPU trên máy
chủ.
Oracle Database Personal Edition

− Oracle Database Personal Edition hỗ trợ các môi trường triển khai và phát triển
một người dùng yêu cầu khả năng tương thích hoàn toàn với Oracle Database
Standard Edition One, Oracle Database Standard Edition và Oracle Database
Enterprise Edition.
Ngoài ra, còn có phiên bản cá nhân bao gồm tất cả các thành phần có trong Phiên bản Doanh
nghiệp, cũng như tất cả các tùy chọn có sẵn với Phiên bản Doanh nghiệp, ngoại trừ tùy chọn
Cụm ứng dụng Thực của Oracle, không thể sử dụng với Phiên bản Cá nhân. Phiên bản Cá
nhân chỉ có sẵn trên nền tảng Windows.

1.4. CÀI ĐẶT VÀ CẤU HÌNH


− Oracle 19c là một phiên bản cập nhật của Oracle ra đời vào ngày 1/7/2013, phiên bản
này được đánh giá là có những cải tiến vượt bậc về công nghệ, nhất là lĩnh vực điện
toán đám mây (C - Cloud) với gần 500 tính năng được cải tiến.
Các bước cài đặt :
Bước 1: Truy cập vào trang web http://otn.oracle.com/windows

11
Bước 2: Chọn tab tải xuống

Bước 3: Nhấp vào phiên bản mới nhất của Cơ sở dữ liệu Oracle 12c (x64).

Bước 4: Chọn Accept the license agreement  chọn tệp tin Oracle Database 12c Release
... for Microsoft Windows (x64) để tải xuống
Bước 5: Đăng nhập vào tài khoản web Oracle của bạn. Nếu chưa có tài khoản Oracle,
hãy nhấp vào liên kết "Đăng ký" để tạo một tài khoản. Sau đó, chọn vị trí bạn muốn tải
xuống các tệp .zip

Bước 6: Giải nén file zip đầu tiên vừa tải xuống

13
Bước 7 : Truy cập thư mục database, kích chuột phải chọn “Run as administrator” để
tiến hành cài đặt.

Bước 8 : Bỏ tùy chọn “I wish to receive security updates via My Oracle Support.”
Bước 9 : Hộp thoại cảnh báo sẽ hiện lên do không điền Email, bấm “Yes” để bỏ qua.

15
Bước 10 : Chọn “Install database software only”
Bước 11 : Chọn “Single instance database installation”

17
Bước 12 : Chọn ngôn ngữ, hoặc để mặc định là English  Bấm Next để tiếp tục

Bước 13: Chọn phiên bản database để thực hiện cài đặt.
Bước 14 : Chỉ định Oracle Home User

19
Bước 15 : Bấm Yes để tiếp tục
Bước 17 : Xác nhận thông tin cài đặt  Bấm  Install  để bắt đầu cài đặt

Bước 18: Trong quá trình cài đặt có thể Oracle sẽ yêu cầu quyền truy cập ra network.
Bấm  Allow access  để Firewall không block ứng dụng.

21
Bước 19 : Kết thúc cài đặt bấm Close

Bước 20: Mở
Start Menu  Database Configuration Assitant  Kích chuột phải  Chọn “Run as
administrator”
Bước 21 : Chọn “Create Database”

23
Bước 23 : Kiểm tra thông tin Database  Bấm  Finish và đợi tạo Database
Bước 24 : Bấm Allow access

Bước
25 :
Sau
khi
tạo
xong

Database  Bấm  Close

25
1.5. CÁC THÀNH PHẦN CƠ BẢN
Có ba cấu trúc chính trong kiến trúc máy chủ Cơ sở dữ liệu Oracle: cấu trúc bộ nhớ, cấu trúc
quy trình và cấu trúc lưu trữ. Một hệ thống cơ sở dữ liệu Oracle cơ bản bao gồm một cơ sở dữ
liệu Oracle và một cá thể cơ sở dữ liệu.

Oracle Instance: bao gồm các cấu trúc bộ nhớ (memory structure) và các quy trình nền
(background processes) được liên kết với cá thể đó.
Oracle Database: Cơ sở dữ liệu Oracle là một tập hợp dữ liệu được coi như một đơn vị. Mục
đích của cơ sở dữ liệu là lưu trữ và truy xuất thông tin liên quan. Một máy chủ cơ sở dữ liệu là
chìa khóa để giải quyết các vấn đề về quản lý thông tin. Máy chủ quản lý một cách đáng tin
cậy một lượng lớn dữ liệu trong môi trường đa người dùng để nhiều người dùng có thể truy
cập đồng thời vào cùng một dữ liệu. Máy chủ cơ sở dữ liệu cũng ngăn chặn truy cập trái phép
và cung cấp các giải pháp hiệu quả để khắc phục lỗi.
2. QUẢN TRỊ VẬN HÀNH

2.1. TẠO VÀ CẤU HÌNH CƠ SỞ DỮ LIỆU


2.1.1. Tạo cơ sở dữ liệu
Bước 1 : Vào Start  nhập Database Configuration Assistant  Run as admintrator  đợi
hiển thị như hình dưới  chọn Next

Bước 2 : Chọn Create a database  Next

27
Bước 3 : chọn Transaction Processing  Next

Bước 4 : Nhập tên cơ sở dữ liệu không quá 8 ký tự  Next


Bước 5 : Chọn Next

Bước 6 : Nhập mật khẩu  Next

29
Bước 7 : Chọn Next

Bước 8 : Chọn Next


Bước 9 : Chọn Next

Bước 10 : chọn Next

Bước 11 :
Chọn

31
Character Sets  chọn Use Unicode (AL32UTF8)  ở mục National Character Set chọn
UTF8- Unicode 3.0 …  Next

Bước 12 : Chọn Next


Bước 13 : Chọn finish

33
Bước 14 : Chọn ok để xác nhận
Bước 15 : Chờ 5 – 10 p

Bước 16 : Chọn exit


35
2.1.2. Cấu hình
Bước 1 : Start Menu  nhập Net Configuration  Assistant

Bước 2 : Chọn Local Net Service Name configuration  Chọn Next


Bước 3 : Chọn Next

Bước 4 : Nhập tên cơ sở dữ liệu vừa tạo  Next

37
Bước 5 : Chọn giao thức lắng nghe thường là TCP
Bước 6 : Nhập tên máy chủ cơ sở dữ liệu. Ở đây LISTENER lắng nghe CSDL ngay trên cùng
1 máy nên có thể đặt là localhost hoặc tên máy

39
Bước 7 : Chọn Yes, perform a test

Bước 8 : Nếu hiện như hình thì đã cấu hình thành công
2.2. SAO LƯU DỮ LIỆU
Oracle Secure backup và RMAN (Recovery Manager) cung cấp giải pháp backup end-to-end
cho môi trường oracle.
− Quản lý backup lên tape tập trung giữa dữ liệu file sustem và CSDL Oracle
− Lớp quản lý lưu trữ tích hợp tốt nhất để backup lên tape với RAMN
− Backup bất kì dữ liệu nào qua mạng
− Sao lưu RMAN được thực hiện bằng cách sử dụng câu lệnh BACKUP
− Một cách khắc phục là tạo file backup gồm 2 dạng:
o Full backup: Toàn bộ tạo cơ sở dữ liệu
o Partial backup: Chỉ backup một phần file dữ liệu
Lệnh sao lưu RMAN
 Để thực hiện sao lưu cơ sở dữ liệu đầy đủ
BACKUP DATABASE;
 Để sao lưu tất cả các bản ghi lưu trữ
BACKUP ARCHIVELOG ALL;
 Để sao lưu cơ sở dữ liệu và tất cả các tệp nhật ký lưu trữ
BACKUP DATABASE PLUS ARCHIVELOG;
 Để sao lưu tệp điều khiển hiện tại
BACKUP CURRENT CONTROLFILE;
 Để sao lưu SPFILE
BACKUP SPFILE;
 Để sao lưu một tệp dữ liệu cụ thể
BACKUP DATAFILE '/u01/app/oradata/TEST/users01.dbf';
 Để sao lưu một vùng bảng
BACKUP TABLESPACE USERS;
 Sao lưu thẻ tuỳ chọn
BACKUP DATABASE TAG = 'Full_Backup';
 Để chạy một bản sao lưu gia tăng khác nhau
BACKUP INCREMENTAL LEVEL 1 DATABASE;

41
 Để chạy một bản sao lưu gia tăng tích lũy
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
 Để sử dụng sao lưu mức 0
BACKUP INCREMENTAL LEVEL 0 DATABASE;
 Để tạo một bản sao hình ảnh của toàn bộ cơ sở dữ liệu
BACKUP AS COPY DATABASE;
 Để tạo một bản sao hình ảnh của một tệp dữ liệu cụ thể
BACKUP AS COPY DATAFILE <file#>
Ví dụ:
BACKUP AS COPY DATAFILE 4 FORMAT '/u01/app/oracle/copy/users01.dbf';
Hoặc chỉ định tên tệp nguồn. Ví dụ:
BACKUP AS COPY DATAFILE '/u01/app/oradata/TEST/users01.dbf'
FORMAT '/u01/app/oracle/copy/users01.dbf';

2.3. PHỤC HỒI DỮ LIỆU


Check các datafile cần recover:
SELECT FILE#, CHANGE# FROM V$RECOVER_FILE;  

 Restore và recover toàn bộ  database


STARTUP FORCE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;

 Restore và recover 1 tablespace


SQL 'ALTER TABLESPACE users OFFLINE';
RESTORE TABLESPACE users;
RECOVER TABLESPACE users;
SQL 'ALTER TABLESPACE users ONLINE';
 Restore and recover a datafile
SQL 'ALTER DATABASE DATAFILE 64 OFFLINE';
RESTORE DATAFILE 64;   
RECOVER DATAFILE 64;
SQL 'ALTER DATABASE DATAFILE 64 ONLINE';

 Performing Recovery không đầy đủ


RECOVER DATABASE UNTIL CHANGE 10034; -- SCN 10034
ALTER DATABASE OPEN RESETLOGS;

 Recovering Block
BLOCKRECOVER CORRUPTION LIST;
BLOCKRECOVER DATAFILE 7 BLOCK 233, 235 DATAFILE 4 BLOCK 101;

43
3. QUẢN TRỊ THÀNH PHẦN

3.1. BẢNG (TABLE)


3.1.1. Phân loại các tablesv
Trong Oracle database, dữ liệu có thể được lưu trong những đối tượng sau:
o Regular Tables
o Partition Tables
o Index_Organized Tables
o Clustered Tables
3.1.2. Cấu hình bảng
Ta có thể tạo table thông qua câu lệnh SQL
Cú pháp:
CREATE TABLE [schema.] table
(column datatype[ , column datatype ].....)
[TABLESPACE tablespace]
[PCTFREE interger]
[PCTUSED interger]
[INITTRANS interger]
[MAXTRANS interger]
[STORAGE storage_clause]
[LOGGING|NOLOGGING]
[CACHE|NOCACHE]
Trong đó
schema                        tương ứng với user sở hữu table.
table                            tên của bảng tạo
column                        tên của cột trong bảng cần tạo
datatype                      kiểu dữ liệu cho cột tương ứng
TABLESPACE           tên tablespace chứa bảng                   
PCTFREE không gian dành riêng trong mỗi block (tính bằng đợn vị %). Sử
.  dụng chứa khi các hàng lớn lên do update
PCTUSED                  xác định giới hạn dưới của không gian sử dụng trong block
INITRANS                 xác định số giao dịch được thiết lập cho mỗi block
MAXTRANS             . xác định số giao dịch lớn nhất có thể thiết lập cho block mặc định
là 255
STORAGE                  quy định kích thước của không gian lưu trữ, xác định xem có bao
nhiêu extents sẽ được thiết lập cho bảng.
LOGGING                 chỉ định việc tạo bảng sẽ được ghi vào trong redo log file.
NOLOGGING            chỉ định việc tạo bảng và nạp dữ liệu vào bảng sẽ không được ghi
vào redo log file.
CACHE                      chỉ định việc truy xuất các blocks của bảng được thiết lập trong
vùng đệm khi có thực hiện full scan trên table.
NOCACHE                chỉ định các blocks được truy xuất trên bảng này không được đặt
vào trong danh sách LRU trong vùng đệm khi có thực hiện full
scan trên table.
Ví dụ:
CREATE TABLE employees(
empno NUMBER(4),
last_name VARCHAR2(30)
deptno NUMBER(2))
PCTFREE 20 PCTUSED 50
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE data01;

2.
3.
3.1.
3.1.1.
3.1.2.
3.1.3. Sao chép một tables
Ta có thể sử dụng câu lệnh CREATE TABLE để sao chép một table đang tồn tại:

45
Cú pháp:
CREATE TABLE [schema.]table
[LOGGING|NOLOGGING]
....
AS Câu truy vấn con
Ví dụ:
CREATE TABLE new_emp
STORAGE(INITTIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)
NOLOGGING
TABLESPACE data01
AS SELECT * FROM scott.emp;

3.1.4. Thay đổi trong bảng


Ta có thể thay đổi cấu trúc của table thông qua việc can thiệp vào cấu trúc của table. Sử dụng
câu lệnh ALTER TABLE để sửa đổi cấu trúc của table.
Thêm mới columns
Cú pháp:
ALTER TABLE table
ADD   (column_name datatype [DEFAULT  expr],
                        [column_nam datatype],...);
Ví dụ:
ALTER TABLE Dept
ADD (job varchar2(30));
Table altered.

Thay đổi cấu trúc một column


Cú pháp:
ALTER TABLE table
MODIFY (column_name datatype [DEFAULT  expr],
                          [column_name datatype],...);
Ví dụ:
ALTER TABLE Dept
MODIFY  (ename varchar2(50));
Table altered.
Ví dụ: Xoá cột SAL trong bảng emp:
ALTER TABLE emp DROP COLUMN sal;
Xoá cột SAL và COMM trong bảng emp:
ALTER TABLE emp DROP (sal, comm);

Xoá các column dữ liệu đã được đánh dấu Unused


Để xoá hẳn cộ dữ liệu đã đánh dấu Unused ta có thể sử dụng câu lệnh 
ALTER TABLE…DROP UNUSED COLUMNS
Ví dụ:
ALTER TABLE emp DROP UNUSED COLUMNS;

3.2. VIEW (KHUNG NHÌN)


3.2.1. Tạo View
Cú pháp
CREATE VIEW view_name AS 
SELECT columns 
FROM tables 
WHERE conditions;
− Trong đó view_name là tên view mà bạn muốn tạo
Ví dụ
CREATE VIEW sup_orders AS 
SELECT suppliers.supplier_id, orders.quantity, orders.price 
FROM suppliers 
INNER JOIN orders 
ON suppliers.supplier_id = supplier_id 
WHERE suppliers.supplier_name = 'SAM SUNG';

47
3.2.2. Cập nhật View
Cú pháp
CREATE OR REPLACE VIEW view_name AS 
  SELECT columns 
  FROM table 
  WHERE conditions;
Ví dụ :
CREATE or REPLACE VIEW sup_orders AS 
  SELECT suppliers.supplier_id, orders.quantity, orders.price 
  FROM suppliers 
  INNER JOIN orders 
  ON suppliers.supplier_id = supplier_id 
  WHERE suppliers.supplier_name = 'NOKIA';
3.2.3. Xem dữ liệu trong View
Cú pháp
SELECT * FROM view_name;
Ví dụ
SELECT * FROM sup_orders;
3.2.4. Xóa View
Cú pháp
DROP VIEW view_name;
Ví dụ
DROP VIEW sup_orders;

3.3. THỦ TỤC (PROCEDURE)


3.3.1. Tạo thủ tục.
CREATE [OR REPLACE] PROCEDURE procedure_name 
    [ (parameter [,parameter]) ] 
IS 
    [declaration_section] 
BEGIN 
    executable_section 
[EXCEPTION 
    exception_section] 
END [procedure_name];

Trong đó

procedure_name  tên của procedure

Khai báo tham số này thì nó sẽ xóa


[OR REPLACE] procedure có tên trùng với tên của procedure
đang chạy

[ (parameter [,parameter]) ]  các tham số truyền vào procedure

Mỗi tham số truyền vào được xác định bởi ba loại như sau:

 IN: Đây là kiểu mặc định, tham số này sẽ là dữ liệu đầu vào

 OUT: Tham số này sẽ là dữ liệu đầu ra

 IN OUT: Là tham số  đặc biệt, vừa là đầu vào vừa là đầu ra, và thường thì giá trị tại
đầu ra sẽ bị thay đổi.

Ví dụ
Giả sử ban đầu tạo một bảng user gồm ID và NAME như sau:

CREATE TABLE user(id number(10) primary key,name varchar2(100));

Bây giờ mình sẽ viết một thủ tục có nhiệm vụ là thêm mới một record vào bảng User.

Vì bảng user có hai column đó là id và name, vì vậy thủ tục này sẽ có hai tham số.

CREATE [OR REPLACE] PROCEDURE "INSERTUSER"   


    (id IN NUMBER,   

49
    name IN VARCHAR2)   
is   
begin   
     insert into user values(id,name);   
end;

Khi bạn chạy lệnh này mà chương trình báo "Procedure created." thì tạo thành công.

3.3.2. Gọi chương trình Procedure


BEGIN   
   insertuser(101,'Rahul'); 
   dbms_output.put_line('record inserted successfully');  ( một lệnh hiển thị tin nhắn)

END;

3.3.3. Xóa Procedure trong Oracle


Cú pháp

DROP PROCEDURE procedure_name;

Ví dụ

DROP PROCEDURE pro1;

3.4. HÀM (FUNCTION)


Hàm thực hiện chức năng trả về một giá trị ngay tại lời gọi của nó.

3.4.1. Tạo hàm


Là một hàm dùng để xử lý một chức năng nào đó và nó sẽ trả về một giá trị duy nhất phải định
nghĩa và khởi tạo function trước khi sử dụng được nó.

Cú pháp
CREATE [OR REPLACE] FUNCTION function_name 
   [ (parameter [,parameter]) ] 
RETURN return_datatype 
IS | AS 
 [declaration_section] 
BEGIN 
   executable_section 
[EXCEPTION 
   exception_section] 
END [function_name];

Trong đó

xóa function cũ nếu trùng tên với function


[OR REPLACE]
mới

[ (parameter [,parameter]) các tham số

RETURN return_datatype kiểu dữ liệu sẽ trả về của function

[declaration_section]  các biến định nghĩa dùng trong hàm

Với tham số truyền vào sẽ có 3 loại:

o IN là tham số chỉ đầu vào

o OUT là tham số đầu ra

o IN OUT là tham số vừa đầu vào, vừa đầu ra

Ví dụ

viết hàm tính tổng của hai số

CREATE OR REPLACE FUNCTION adder(n3 IN number, n4 IN number)   


RETURN number   
IS   
N5 number(9);   

51
BEGIN  
N5 :=n3+n4;   
RETURN n5;   
END;

3.4.2. Gọi hàm


DECLARE   
N4 number(2);   
BEGIN   
n3 := adder(11,22);   
dbms_output.put_line('Addition is: ' || n4);   
END;

3.4.3. Lệnh xóa hàm trong Oracle


Nếu bạn muốn xóa một function nào đó thì hãy sử dụng lệnh DROP FUNCTION nhé.

Cú pháp

DROP FUNCTION function_name;

Ví dụ

DROP FUNCTION fact;

3.5. CHỈ MỤC (INDEX)


3.5.1. Tạo các INDEX
Một index có thể tạo hoặc trên acount của user là owner của bảng hay tạo trên một acount
khác.
Cú pháp:
CREATE [ UNIQUE ]INDEX [schema.] index
ON [schema.] table
(column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...)
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ storage-clause ]
[ LOGGING| NOLOGGING ]
[ NOSORT ]

Trong đó
được sử dụng chỉ định một unique index (non-unique index
UNIQUE                   
là mặc định).
schema                        là owner của bảng chứa index.
index               là tên của index.
table                là tên của bảng chứa index
column                        là tên cột dùng làm index
ASC/DESC                 được cung cấp để tương thích về cú pháp cho database khác.
TABLESPACE                      tên tablespace mà index sẽ được tạo trên đó
không gian dành riêng trong mỗi block, được sử dụng khi
PCTFREE                  
một có điểm vào mới của index (new entries) được tạo ra.
INITRANS                 chỉ định số giao dịch thiết lập ban đầu cho mỗi block
giới hạn số giao dịch có thể thiết lập cho mỗi block (giá trị
MAXTRANS            
mặc định là 255).
tham số lưu trữ, quy định có bao nhiêu extents sẽ cấp phát
STORAGE                
cho index.
chỉ định việc tạo các index và các hoạt đông tuần tự trên trên
LOGGING                
index sẽ được ghi vào trong các redo log file
chỉ định việc tạo và các hoạt động tuần tự trên index không
NOLOGGING          
được ghi vào các log file.
NOSORT                    chỉ định các row được lưu trong database theo trật tự tăng
dấn và vì thế oracle server không cấn sắp xếp các hàng trong

53
khi tạo index.
Ví dụ:
CREATE INDEX scott.emp_lname_idx
ON scott.employees(last_name)
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE indx01;

3.5.2. Một số cách sử dụng index


Sử dụng index một cách tường minh
Với cách này, người dùng chỉ việc tạo index một cách tường minh thông qua câu lệnh SQL.
Mệnh đề ON sẽ cho biết cột dữ liệu trong bảng được sử dụng index.
Ví dụ:
CREATE INDEX emp_ename ON emp(ename)
      TABLESPACE users
      STORAGE (INITIAL 20K
      NEXT 20k
      PCTINCREASE 75)
      PCTFREE 0;

Index được gắn liền ngay trong ràng buộc (constraint)


Khi tạo các ràng buộc UNIQUE hoặc PRIMARY KEY cho các cột dữ liệu trong table, Oracle
sẽ tự động tạo ra các index tương ứng với cột dữ liệu này.
Tuy nhiên trong một số trường hợp, user sở hữu table muốn tạo các indexes cho table nằm trên
một tablespace riêng để tiện cho việc quản trị. Khi này, việc tạo index cần được gắn liền một
cách tường minh ngay trong câu lệnh tạo bảng.
Ví dụ:
CREATE TABLE emp (
     empno NUMBER(5) PRIMARY KEY, age INTEGER)
     ENABLE PRIMARY KEY USING INDEX
     TABLESPACE users
     PCTFREE 0;

Index Online
Thông thường trong khi tạo index, các câu lệnh DML tác động lên cột dữ liệu có liên quan đều
tạm thời không thực hiện được cho đến khi hoàn tất việc tạo index.
Để có thể cho phép thực hiện câu lệnh DML tác động lên các cột dữ liệu được index, Oracle
có hỗ trợ Index online (Index trực tuyến) khi này, ta cần bổ sung thêm mệnh đề ONLINE vào
trong câu lệnh.
Ví dụ:
ALTER INDEX emp_name REBUILD ONLINE;
CREATE INDEX emp_name ON emp (mgr, emp1, emp2, emp3) ONLINE;
Index theo giá trị hàm
Không chỉ cho phép thực hiện các index trực tiếp trên các cột dữ liệu trong table, Oracle còn
cho phép thực hiện các index dựa vào giá trị các hàm áp dụng trên các cột dữ liệu của table.
Ví dụ:
CREATE INDEX idx ON t (a + b * (c - 1), a, b);
Sử dụng cho câu lệnh truy vấn
SELECT a FROM t WHERE a + b * (c - 1) < 100;

3.5.3. Tạo Index khoá ngược


Cú pháp:
CREATE [ UNIQUE ]INDEX [schema.] index
ON [schema.] table
(column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...)
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ storage-clause ]

55
[ LOGGING| NOLOGGING ]
REVERSE
Ví dụ:
CREATE UNIQUE INDEX scott.ord_ord_no_idx
ON scott.ord(ord_no) REVERSE
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE indx01;
Câu lệnh này tạo index khoá ngược tương tự như cho index thông thường ngoại trừ việc thêm
mệnh đề REVERSE.
Chú ý: từ khoá NOSORT không được sử dụng trong câu lệnh tạo index khoá ngược.

3.5.4. Tạo Bitmap index


Cú pháp:
CREATE BITMAP INDEX [schema.] index
ON [schema.] table
(column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...)
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ storage-clause ]
[ LOGGING| NOLOGGING ]
[ NOSORT ]
Ví dụ :
CREATE BITMAP INDEX scott.ord_region_id_idx
ON scott.ord(region_id)
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE indx01;
3.5.5. Thay đổi tham số lưu trữ cho index
Một số tham số lưu trữ và tham số sử dụng block có thể thay đổi bằng cách sử dụng câu
lệnh ALTER INDEX.
Cú pháp:
ALTER INDEX [schema.]index
[ storage-clause ]
[ INITRANS integer ]
[ MAXTRANS integer ]
Ví dụ:
ALTER INDEX scott.emp_lname_idx
STORAGE(NEXT 400K
MAXEXTENTS 100);

3.5.6. Xoá các index


Cú pháp:
DROP INDEX [schema.]index;

3.5.7. Xem thông tin về các index


Data dictionary có các view dùng để xem thông tin về index, hai view thông dụng nhất hay sử
dụng là DBA_INDEXES và DBA_IND_COLUMNS.

57
Hình vẽ 5.    Thông tin về Index

Sử dụng câu lệnh sau đây kiểm tra tên kiểu và trạng thái của index của user SCOTT:
SELECT index_name, tablespace_name, index_type,
uniqueness, status
FROM dba_indexes
WHERE owner='SCOTT';

3.5.8. Tìm các cột trong một index


Câu lệnh truy vấn sau đây liệt kê các index của user SCOTT và chỉ ra các bảng và cột trên đó
index được xây dựng:
SELECT index_name, table_owner, table_name, column_name
FROM dba_ind_columns
WHERE index_owner = 'SCOTT'
ORDER BY index_name, column_position;

3.6. RÀNG BUỘC (CONSTRAINTS)


3.6.1. Tạo ràng buộc
Cú pháp
CREATE TABLE table_name
 ( column1 datatype constraint,
     column2 datatype constraint,
     column3 datatype constraint, ....);

3.6.2. Các ràng buộc sau thường được sử dụng

Đảm bảo rằng một cột không thể có giá trị


NOT NULL 
NULL
Đảm bảo rằng tất cả các giá trị trong một cột
DUY NHẤT 
là khác nhau
Sự kết hợp giữa KHÔNG ĐẦY ĐỦ và DUY
PRIMARY KEY NHẤT. Xác định duy nhất từng hàng trong
bảng

Xác định duy nhất một hàng / bản ghi trong


NGOẠI KHÓA 
bảng khác

Đảm bảo rằng tất cả các giá trị trong một cột
KIỂM TRA
thỏa mãn một điều kiện cụ thể
Đặt giá trị mặc định cho một cột khi không
DEFAULT
có giá trị nào được chỉ định
Được sử dụng để tạo và truy xuất dữ liệu từ
INDEX
cơ sở dữ liệu rất nhanh chóng
3.7. BẪY LỖI (TRIGGER)
After trigger là những trigger sẽ được thực thi sau khi hành động chính hoàn thành. 
Cú pháp
CREATE [ OR REPLACE ] TRIGGER trigger_name 
AFTER INSERT OR UPDATE OR DELETE ON table_name 
  [ FOR EACH ROW ] 
DECLARE  -- variable declarations 
BEGIN -- trigger code 
EXCEPTION 

59
WHEN ... -- exception handling 
END;

Ví dụ
Đầu tiên tạo một bảng để thực hành như sau:
CREATE TABLE orders
( order_id number(5),
  quantity number(4),
  cost_per_item number(6,2),
  total_cost number(8,2));

 AFTER DELETE
CREATE OR REPLACE TRIGGER orders_after_delete
AFTER DELETE ON orders
[FOR EACH ROW]
DECLARE v_username varchar2(10);
BEGIN -- Find username of person performing the DELETE on the table
   SELECT user INTO v_username
   FROM dual;
   -- Insert record into audit table
    INSERT INTO orders_audit
   ( order_id, quantity, cost_per_item, total_cost, delete_date, deleted_by)
   VALUES
   ( :old.order_id, :old.quantity, :old.cost_per_item, :old.total_cost, sysdate, v_username );
END;
 AFTER INSERT
CREATE OR REPLACE TRIGGER orders_after_insert
AFTER INSERT ON orders
   FOR EACH ROW
DECLARE
   v_username varchar2(10);
BEGIN
    -- Find username of person performing the INSERT into the table
    SELECT user INTO v_username FROM dual;
    -- Insert record into audit table
    INSERT INTO orders_audit
    ( order_id, quantity, cost_per_item, total_cost, username )
    VALUES
    ( :new.order_id, :new.quantity, :new.cost_per_item, :new.total_cost, v_username );
END;
 AFTER UPDATE
CREATE OR REPLACE TRIGGER orders_after_update
AFTER UPDATE ON orders
[FOR EACH ROW]
DECLARE
v_username varchar2(10);
BEGIN
--Find username of person performing UPDATE into table
SELECT user INTO v_username FROM dual;
--Insert record into audit table
INSERT INTO orders_audit
( order_id,quantity_before,quantity_after,username )
VALUES
( :new.order_id,:old.quantity,:new.quantity,v_username );
END;
 Tắt một trigger đang hoạt động ở một table
ALTER TRIGGER trigger_name DISABLE;
 Tắt tất cả trigger đang hoạt động ở một table
ALTER TABLE table_name DISABLE ALL TRIGGERS;
 Xóa trigger vĩnh viễn.

61
DROP TRIGGER trigger_name;
 Bật một trigger đã tắt cho table
ALTER TRIGGER trigger_name ENABLE;
 Bật tất cả trigger đã tắt cho table
ALTER TABLE table_name ENABLE ALL TRIGGERS;

4. QUẢN TRỊ NGƯỜI DÙNG

4.1. TÀI KHOẢN NGƯỜI DÙNG CƠ SỞ DỮ LIỆU ORACLE


4.1.1. Các thành phần của tài khoản người dùng:
− Một username duy nhất: Username được vượt quá 30 bytes, không bao gồm các kí tự
đặc biệt và phải bắt đầu bằng một chữ cái.
− Một Tablespace mặc định: Đây là nơi lưu trữ mặc định những object mà User tạo ra
nếu không chỉ định rõ sẽ tạo trên Tablespace nào.
− Một Tablespace tạm thời: Đây là nơi lưu trữ của những Objects tạm thời như là Sorts,
Tables tạm….
− Một User Profile: Bao gồm các thiết lập về Resouce và Password áp đặt lên tài khoản.
− Một nhóm khởi đầu: Được dùng bởi Resource Manager.
− Một trạng thái tài khoản: Thiết lập trên tham số account_status với các giá trị open,
locked, và expired
4.1.2. Các tài khoản quản trị ban đầu
− SYS: Sở hữu data dictionary và Automatic Workload Repository (AWR) ,sử dụng cho
hoạt động bật, tắt instance của CSDL
− SYSTEM: Sở hữu những bảng và view phụ trợ phục vụ cho việc quản trị
− SYSBACKUP: Được sử dụng để sao lưu và phục hồi CSDL với RMAN
− SYSDG: Được sử dụng cho Oracle Data Guard
− SYSKM: Được sử dụng cho ví (chứa key) để mã hóa dữ liệu

− DBSNMP: Có role OEM_MONITOR.

− SYSMAN: Có các quyền MGMT_USER, RESOURCE và


roles SELECT_CATALOG_ROLE.

4.2. QUYỀN ĐĂNG NHẬP HỆ THỐNG


4.2.1. Mô hình truy cập

4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
Cơ chế bảo mật

63
 CSDL được bảo mật thông qua
Quyền (Permission)
− Quyền hệ thống : Cho phép người dùng thực hiện các công việc liên quan tới CSDL
− Quyền Object: Cho phép người dùng truy cập và thay đổi một object cụ thể

Role
− Bao gồm các nhóm quyền và các role khác
− Hỗ trợ khi gán nhiều quyền hay role cho người dùng
Các giải pháp bào mật :
o Oracle Advanced Security
o    Oracle Redaction and Masking
o    Oracle Database Vault & Oracle Label Security
o    Oracle Audit Vault & Oracle Database Firewall
o    Database Vault – Privilege Analysis
o    Oracle Enterprise Manager – Discover Sensitive Data and Databases
o    Oracle Database Lifecycle Management – Configuration Management
4.2.3. Cơ chế xác thực
 Oracle hỗ trợ 4 cơ chế xác thực :
1. Authentication by the Operating System
− Xác thực sử dụng tài khoản đăng nhập hệ điều hành
2. Authentication by the Network
− Xác thực Mạng
3. Authentication by Oracle Database
− Xác thực tài khoản Cơ sở dữ liệu Oracle
4. Authentication of Database Administrators
− Xác thực tài khoản quản trị viên cơ sở dữ liệu
 Oracle cho phép một cá thể cơ sở dữ liệu duy nhất sử dụng bất kỳ hoặc tất cả các
phương thức. Oracle yêu cầu các thủ tục xác thực đặc biệt cho người quản trị cơ sở dữ
liệu, vì họ thực hiện các thao tác cơ sở dữ liệu đặc biệt. Oracle cũng mã hóa mật khẩu
trong quá trình truyền để đảm bảo tính bảo mật của quá trình xác thực mạng

4.3. QUYỀN TRUY XUẤT DỮ LIỆU


Phân loại Ví dụ
STARTUP
SHUTDOWN
ALTER DATABASE OPEN | MOUNT
SYSOPER ALTER DATABASE BACKUP
CONTROLFILE
ALTER TABLESPACE BEGIN/END BACKUP
RECOVER DATABASE,
ALTER DATABASE ARCHIVELOG
RESTRICTED SESSION
SYSOPER privileges WITH ADMIN OPTION
SYSDBA CREATE DATABASE
RECOVER DATABASE UNTIL

4.4. QUYỀN VÀ VAI TRÒ


4.4.1. Quyền (privilege)
− Một quyền là 1 sự cho phép thực hiện 1 câu lệnh SQL nào đó hoặc được phép truy
xuất đến một đối tượng nào đó (vd: quyền tạo bảng CREATE TABLE, quyền connect

65
đến cơ sở dữ liệu CREATE SESSION, quyền SELECT trên một bảng cụ thể nào đó,
…).
− Chỉ cấp cho user chính xác những quyền mà user cần đến. Việc cấp dư thừa những
quyền không cần thiết có thể gây nguy hại cho việc bảo mật hệ thống.
 Có 2 loại quyền:
 Quyền hệ thống (System Privilege): Là quyền thực hiện một tác vụ CSDL cụ thể
hoặc quyền thực hiện một loại hành động trên tất cả những đối tượng schema của
hệ thống.
Ví dụ : quyền ALTER SYSTEM, quyền CREATE TABLE, quyền DELETE
ANY TABLE (xóa các hàng của bất kỳ bảng nào trong CSDL),…
− User có thể cấp 1 quyền hệ thống nếu có một trong các điều kiện sau:
o User đã được cấp quyền hệ thống đó với tùy chọn WITH ADMIN OPTION.
o User có quyền GRANT ANY PRIVILEGE.
 Quyền đối tượng (Schema Object Privilege hoặc Object Privilege): Là quyền
thực hiện một hành động cụ thể trên một đối tượng schema cụ thế.
Ví dụ : quyền xóa các hàng dữ liệu khỏi bảng Department.
− Có nhiều quyền đối tượng khác nhau dành cho các loại đối tượng schema khác
nhau.
− Dùng để quản lý việc truy xuất đến các đối tượng schema cụ thể nào đó.
− User có thể cấp 1 quyền đối tượng nếu có một trong các điều kiện sau:
o User có tất cả mọi quyền đối tượng trên tất cả các đối tượng thuộc schema của
mình. Vì vậy user có quyền cấp bất kỳ quyền đối tượng trên bất kỳ đối tượng
nào thuộc sở hữu của mình cho bất cứ user nào khác.
o User có quyền GRANT ANY OBJECT PRIVILEGE.
o User được cấp quyền đối tượng đó với tùy chọn WITH GRANT OPTION.
4.4.2. Vai trò (role)
− Role là một tập hợp bao gồm các quyền và các role khác.
− Role được gán cho các user hoặc các role khác.
− Role giúp cho việc quản trị người dùng dễ dàng và tiết kiệm công sức hơn.
− Có một số role có sẵn do hệ thống định nghĩa(vd: DBA, RESOURCE, CONNECT,
…) nhưng đa phần các role là do người quản trị CSDL tạo ra.
− Role không phải là một đối tượng schema (schema object) nên không được lưu trữ
trong schema của user tạo ra nó. Do vậy, user tạo ra một role có thể bị xóa mà
không ảnh hưởng đến role đó.
− User có thể cấp 1 role nếu có một trong các điều kiện sau:
o User đã tạo ra role đó.
o User đã được cấp role đó với tùy chọn WITH ADMIN OPTION.
o User có quyền GRANT ANY ROLE
 Bảo mật role
− Role có thể không phải mặc định và được bật khi được yêu cầu

SET ROLE vacationdba;

− Role được bảo vệ qua cơ chế xác thực


− Role cũng được bảo mật khi cài đặt

CREATE ROLE secure_application_role IDENTIFIED USING <security


procedure_name>;

Các role được định nghĩa sẵn


Role Bao gồm các quyền

CONNECT CREATE SESSION

Toàn bộ các quyền hệ thống và nhiều role


DBA khác. Không nên gán cho người dùng bình
thường (không là DBA)

RESOURCE CREATE CLUSTER, CREATE


INDEXTYPE, CREATE OPERATOR,

67
CREATE PROCEDURE, CREATE
SEQUENCE, CREATE TABLE, CREATE
TRIGGER, CREATE TYPE

CREATE ANY JOB, CREATE


EXTERNAL JOB, CREATE JOB,
SCHEDULER_ADMIN
EXECUTE ANY CLASS, EXECUTE ANY
PROGRAM, MANAGE SCHEDULER

Quyền SELECT trên các object của data


SELECT CATALOG_ROLE
dictionary

KẾT LUẬN

Oracle là một sản phẩm phần mềm quản lý database server mạnh mẽ để phục vụ cho các tổ
chức doanh nghiệp hoặc cá nhân. Một hệ thống quản lý cơ sở dữ liệu không chỉ được sử dụng
để lưu trữ dữ liệu mà còn để quản lý nó một cách hiệu quả và cung cấp hiệu suất cao, quyền
truy cập được ủy quyền và các tính năng khôi phục lỗi. Nó bao gồm hầu hết tất cả các tính
năng cần thiết để hỗ trợ các ứng dụng hiện đại và do đó được sử dụng rộng rãi cung cấp một
giải pháp phần mềm dễ sử dụng và quản lý các hoạt động của database.

Oracle là một nhà lãnh đạo ngành công nghiệp trong cơ sở dữ liệu quan hệ. Nó giúp cho doanh
nghiệp giải quyết các vấn đề lưu trữ, cập nhật, thay đổi và quản lý dữ liệu. Các ứng dụng có
thể mua được với cơ sở dữ liệu ORACLE rất linh hoạt và mạnh mẽ và đáp ứng nhu cầu của
nhiều loại hình doanh nghiệp khác nhau. Nhưng bên cạnh đó Hệ quản trị cơ sở dữ liệu Oracle
có những khuyết điểm như : chi phí bản quuyền lớn, rào cản về công nghệ chưa có sự tương
tích, ngôn ngữ lập trình java khó khăn trong việc tiếp cận với các công cụ lập trình, thiết kế.

Sau khi tìm hiểu về hoạt động của hệ cơ sở dữ liệu Oracle, ta đã hiểu thêm vì sao Oracle có ưu
điểm đem lại như: tính ổn định, tính đáp ứng nhanh, tính bảo mật, tính đa nền tảng, cam kết hỗ
trợ từ hãng phần mềm. Nó bao gồm hầu hết tất cả các tính năng cần thiết để hỗ trợ các ứng
dụng hiện đại. Nhờ vậy, Oracle là giải pháp đúng đắn được các doanh nghiệp lựa chọn, cũng
như xứng đáng đạt top 1 DB-Engines 2019.

Thông qua bài báo cáo mong rằng nó đã cung cấp và chứng mình tính ưu việt của hoạt động
hệ cơ sở dữ liệu Oracle.

TÀI LIỆU THAM KHẢO

Khái niệm :
https://www.techopedia.com/definition/8711/oracle-database
https://hoclaptrinh.vn/tutorial/hoc-sql-server/cac-khai-niem-rdbms
Lịch sử :
https://docs.oracle.com/cd/E11882_01/server.112/e40540/intro.htm#CNCPT939
Ưu nhược điểm :
https://theninehertz.com/blog/advantages-of-using-oracle-
database#Major_Advantages_of_Oracle_Database
Các phiên bản:
https://docs.oracle.com/cd/B28359_01/license.111/b28287/editions.htm#DBLIC116
Cài đặt và cấu hình Orcale:

69
https://vinasupport.com/huong-dan-cai-dat-oracle-database-12c-tren-windows/
https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/
Windows_DB_Install_OBE/Installing_Oracle_Db12c_Windows.html
Các thành phần cơ bản :
https://csc.edu.vn/lap-trinh-va-csdl/tin-tuc/kien-thuc-lap-trinh/hoc-oracle--kien-thuc-co-ban-
cho-nguoi-moi-bat-dau-802
Tạo và cấu hình CSDL:
https://www.youtube.com/watch?v=6ksJ5iDpUWw
Sao lưu và phục hồi database:
https://www.tranvanbinh.vn/2018/09/rman-backup-command.html
https://www.youtube.com/watch?v=6Ri0RV6Ck9s
Bảng :
https://www.tranvanbinh.vn/2020/02/tutorial-dba-co-ban-chuong-14-quan-ly.html
Khung nhìn :
https://freetuts.net/cac-lenh-quan-ly-view-trong-oracle-1412.html
Thủ tục :
https://freetuts.net/tim-hieu-procedure-trong-oracle-1432.html
Hàm :
https://freetuts.net/tim-hieu-function-trong-oracle-1433.html
Chỉ mục :
https://www.tranvanbinh.vn/2020/02/tutorial-dba-co-ban-chuong-15-quan-ly.html
Ràng buộc :
https://www.tranvanbinh.vn/2021/01/sql-constraints.html
Bẫy lỗi :
https://freetuts.net/tim-hieu-trigger-trong-oracle-1435.html
Tài khoản người dùng CSDL :
https://www.youtube.com/watch?v=iJj9YSzTbnM
Mô hình truy cập :
https://www.tranvanbinh.vn/2020/02/chuong-2-cac-thanh-phan-kien-truc.html
Cơ chế bảo mật:
https://www.youtube.com/watch?v=HkZdu-Tl9XM&t=526s
https://pnh.com.vn/nhung-giai-phap-bao-mat-oracle-ban-nen-biet/
Cơ chế xác thực :
https://docs.oracle.com/cd/B19306_01/network.102/b14266/authmeth.htm#BABCGGEB
https://www.youtube.com/watch?v=iJj9YSzTbnM
https://docs.oracle.com/cd/B19188_01/doc/B15917/sqcmd.htm
https://blog.cadena-it.com/database/tao-va-phan-quyen-user-trong-oracle-database/
Quyền truy xuất dữ liệu :
https://www.tranvanbinh.vn/2020/02/tutorial-dba-co-ban-chuong-19-cac-quyen.html
Quyền:
https://www.tranvanbinh.vn/2020/02/tutorial-dba-co-ban-chuong-19-cac-quyen.html
Vai trò :

https://www.tranvanbinh.vn/2020/06/hoc-oracle-db-tu-z-bai-20-quan-ly-chuc.html

71

You might also like