Oracle Server là một tập hợp các tập tin vật lý, tiến trình và những cấu trúc bộ nhớ dùng để thực hiện các yêu cầu truy xuất dữ liệu, thực hiện các thao tác phục hồi và lưu trữ dữ liệu k
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP HCM
KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ
BÀI TIỂU LUẬN
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
ORACLE
GVHD: Trịnh Hoàng Nam
SV thực hiện: Nguyễn Thị Quế Anh
Tô Mỹ Minh Khôi
Lê Văn Long Lớp: D02
TP Hồ Chí Minh, tháng 12 năm 2019
Trang 2MỞ ĐẦU
- Trong thời đại thông tin ngày nay, bài toán cơ bản và cốt yếu là: làm thế nào để lưu trữ thông tin an toàn, chắc chắn, đồng thời lại truy cập chính xác và dễ dàng chúng Theo thời gian, yêu cầu của bài toán càng nâng cao với lượng thông tin cần lưu trữ, xử
- Đối với các CSDL lớn thì việc sử dụng Oracle là hoàn toàn hợp lí Nó được thừa nhận là đảm bảo tính an toàn dữ liệu cao Quản lý lưu trữ rất mềm dẻo nó không chỉ cung cấp các khả năng quản lý hệ thống dữ liệu phức tạp cho các doanh nghiệp lớn
mà còn cung cấp các công cụ hữu hiệu để bảo trì hệ thống, dễ dàng cho việc phân tán
dữ liệu đến người dùng, quản lí tốt các tài nguyên có sẵn của hệ thống.
- Với ý nghĩa phát triển như vậy nhóm chúng em đã chọn đề tài “ Tìm hiểu về
Hệ quản trị cơ sở dữ liệu Oracle” để làm tiểu luận cho môn học
- Trong quá trình thực hiện tiểu luận với đề tài Tìm Hiểu Về Oracle Chúng em
đã phần nào nắm được những phần cơ bản của Oracle về cách cài đặt và gỡ bỏ một chương trình Oracle
- Tìm hiểu và trình bày các nội dung cơ bản về Oracle: Lịch sử phát triển, quản trị người dùng, quản trị thành phần, quản trị vận hành v.v
Trang 3MỤC LỤC
Mở đầu
I Tổng quan về Hệ quản trị cơ sở dữ liệu Oracle 4
1 Lịch sử ra đời và phát triển 4
2 Giới thiệu chung về ORACLE Server 5
II Cài đặt Oracle 9
III Quản trị người dùng 15
1 Truy xuất Oracle 15
2 Quản lí, tạo mới, xóa User 15
3 User Profile 19
IV Quản trị thành phần 21
1 Tạo bảng đối tượng 21
2 Bảng lồng (Nested table) 22
3 Kiểu mảng (Varray Type) 23
4 Kiểu tham chiếu Ref (Reference) 24
5. Câu lệnh tạo VIEW 26
6. Trigger 26
7. Cấp phát và thu hồi các extents 28
8. Các loại Segments 29
9. Index 29
V Quản trị vận hành 30
VI Các tính năng và ưu điểm nổi bật của Oracle 34
Kết luận
Trang 4Hệ quản trị cơ sở dữ liệu Oracle
I. Giới thiệu tổng quan, lịch sử ra đời của Oracle
1 Lịch sử ra đời và phát triển:
Oracle là mô ̣t trong số các hệ quản trị cơ sở dữ liệu quan hệ ra đời vào thâ ̣p niên 70 và đến ngày nay nó trở thành mô ̣t trong những hệ quản trị cơ sở dữ liệu dẫn đầu trong “làng” cơ sở dữ liệu trên thế giới như IBM DB2, Informix, SQL Server…
Vào năm 1977, Larry Ellison, Bod Miner và Ed Otaes thành lập một công ty và đặt tên là Relational Software Incorporation (RSI) Công ty này xây dựng một hệ quản trị cơ sở dữ liệu gọi là Oracle Larry Ellison, Bod Miner và Ed Otaes quyết định phát triển hệ này bằng ngôn ngữ
C và giao tiếp SQL
Năm 1979, RSI phân phối sản phẩm đầu tiên cho khách hàng là hệ quản trị cơ sở dữ liệu Oracle phiên bản 2 Năm 1983, phiên bản 3 được giới thiệu với những thay đổi trong ngôn ngữ SQL, mở rộng hiệu suất và các cải tiến khác Không như các phiên bản trước đây, phiên bản 3 hầu như được viết toàn bộ bằng ngôn ngữ C
Đến năm 1984 phiên bản 4 được ra đời, đây được xem là phiên bản hợp nhất tính nhất quán trong đọc dữ liệu
Phiên bản 5 được giới thiệu vào năm 1985 là một mốc lịch sử vì nó đã đưa công nghệ khách chủ vào thị trường với việc sử dụng SQL*.net
Năm 1988 Oracle đưa ra phiên bản 6, chạy được trên nhiều nền và hê ̣ điều hành khác nhau.Oracle 7 được phát hành vào năm 1992 bao gồm nhiều thay đổi về tiện ích nhập/ xuất Oracle
7 là hệ quản trị cơ sở dữ liệu quan hệ đầy đủ chức năng nhất được sử dụng trong nhiều năm Nó
có nhiều ưu điểm nhờ tính năng dễ sử dụng, công cụ SQL* DBA và các tiện ích khác
Năm 1997, Oracle 8 giới thiệu thêm phần mở rộng đối tượng (Object Extension) cũng như tính năng và công cụ quản trị mới Gần đây, Oracle 8.1.5 với tên gọi Oracle 8.i, phiên bản hỗ trợnhiều tính năng mới và đặc biệt là các ứng dụng cơ sở dữ liệu Internet Phiên bản Oracle 8.0 được cải tiến nhiều trong lĩnh vực quản trị dữ liê ̣u Mă ̣c dù sự cải tiến Oracle 8i nhằm hỗ trợ cho
sự phát triển Java Oracle 8.i đã hoàn chỉnh trong việc quản trị dữ liệu đối tượng mà phiên bản 8.0 đã khởi xướng
Từ phiên bản Oracle 8i đến nay đã hoàn thiện hơn với sự xuất hiện của Oracle 9i, 10g hỗ trợcác chức năng quản trị và xây dựng cơ sở dữ liệu hướng đối tượng
Trang 52 Giới thiệu chung về ORACLE Server
Oracle Server là một hệ quản trị CSDL cung cấp nhiều công cụ trong việc quản lý thông tin Oracle Server là một tập hợp các tập tin vật lý, tiến trình và những cấu trúc bộ nhớ dùng để thực hiện các yêu cầu truy xuất dữ liệu, thực hiện các thao tác phục hồi và lưu trữ dữ liệu khi cần thiết.Phần mềm này vẫn đang được phát triển tiếp lên những version cao hơn, và vẫn đang là 1 trong những phần mềm quản trị database hàng đầu thế giới Theo thông tin từ Wikipedia thì phần mềm này được viết bằng Assembly, C và C++ Có lẽ đó là cốt lõi chính của Oracle Database Sau này những công cụ liên quan như emctl, dbca, netca… thì được viết bằng Java
Phần mềm này hỗ trợ nhiều ngôn ngữ, được phân phối rộng khắp thế giới
- Giới thiệu tổng quan
Oracle Server có thể chạy trên một hay nhiều máy tính với những mô hình khác nhau:
+ Client – Application Server – Server: đây là mô hình 3 lớp, người dùng truy cập từ máy đơn (Client) vào máy chứa dữ liệu (Server) thông qua một trạm trung gian gọi là Application Server, dùng để thực hiện việc xử lý các yêu cầu của ứng dụng khi cần truy xuất dữ liệu
+ Client – Server: thông qua hệ thống mạng, người dùng sẽ dùng máy tính (Client) để truy xuất CSDL được đặt trên một máy tính khác (Server) trong hệ thống mạng, truy xuất dữ liệu theo dạng này được gọi là mô hình 2 lớp
+ Host – Base: người dùng truy xuất dữ liệu ngay tại máy dùng làm Server lưu trữ CSDL
Những thành phần chính của Oracle Server
Oracle Server gồm có một Oracle Instance và một Oracle Database.
+ Oracle Instance
Trang 6Hệ quản trị cơ sở dữ liệu Oracle
Là thành phần liên kết giữa người dùng và thông tin trong Oracle Database Một Oracle Instance chỉ được mở cho duy nhất một Oracle Database cần truy xuất
Oracle Instance được tạo nên bởi sự kết hợp của hai thành phần là cấu trúc bộ nhớ và các tiến trình nền (Background Process) dùng để quản lý CSDL
Vùng nhớ của Oracle Instance gọi là SGA (System Global Area) có vai trò lưu trữ thông tin của Oracle Database và được chia sẻ cho những người đang truy xuất vào cơ sở dữ liệu
Tiến trình trong Oracle có 2 loại: tiến trình của người dùng (User Process) và tiến trình của Oracle (Oracle Process)
User Process được hình thành khi người dùng sử dụng công cụ hay ứng dụng kết nối vào Oracle Instance Khi đó, trên máy tính chứa Oracle Server sẽ phát sinh một tiến trình gọi là Server Process dùng để giao tiếp giữa User
Process và Oracle Instance Những xử lý bên trong Oracle Instance sẽ do các tiến trình nền (Background Process) thực hiện
Tổ chức dữ liệu trên CSDL Oracle
Vai trò quan trọng nhất của Oracle Server là lưu trữ và cung cấp thông tin cho người dùng thông qua Oracle Database
Oracle Database quản lý thông tin lưu trữ thông qua hai thành phần lưu trữ vật lý và logic
Trang 7Thành phần lưu trữ vật lý là các tập tin Thành phần lưu trữ logic là các không gian bảng (table space).
Thành phần vật lý
Thành phần vật lý dùng để lưu trữ dữ liệu trong Oracle Database là tập hợp một số tập tin tồn tại trên máy tính cài đặt Oracle Server, các tập tin này sẽ được sử dụng khi Oracle Database đang được mở
Dữ liệu trong Oracle Database sẽ được tổ chức lưu trữ và quản lý bởi ba loại tập tin sau:
- Data File
- Redo Log File
- Control File
Thành phần Logic
Dữ liệu trong Oracle Database được tổ chức và quản lý dựa vào những thành phần Logic,
là những thành phần hỗ trợ DBA và người dùng trong việc lưu trữ và sử dụng thông tin trên Oracle Server
Thành phần Logic trong Oracle Database bao gồm 2 đơn vị lưu trữ là Tablespace và các Schema Object
Tablespace
Một Database được chia thành nhiều đơn vị lưu trữ ở mức Logic, những đơn vị lưu trữ
đó gọi là Tablespace
Phân loại tablespace
Kiểu dữ liệu hướng đối tượng
Phần này trình bày các kiểu dữ liệu hướng đối tượng cung cấp bởi Oracle và ngôn ngữ định nghĩa đối tượng ODL (Object Definied Language), ngôn ngữ truy vấn đối tượng OQL (Object Query Language)
Đối tượng là kiểu dữ liệu rất mạnh có trong phiên bản Oracle 8.i trở đi Đối tượng đưa ra khả năng đóng gói dữ liệu, che dấu thông tin, thiết lập các thuộc tính, hành vi ứng xử cho đối
Trang 8Hệ quản trị cơ sở dữ liệu Oracle
tượng Với Oracle, bạn có thể xây dựng các đối tượng thật sự mô phỏng các thực thể của thế giới mà chúng ta đang sống Đối tượng mang tính trừu tượng hoá cao Cấu trúc dữ liệu và mã lệnh được kết hợp với nhau để tạo nên một tổng thể duy nhất là đối tượng Sử dụng đối tượng trong thiết kế cơ sở dữ liệu là yêu cầu của các ứng dụng đa dạng hiện nay Bạn có thể dễ dàng lưu chúng vào một bảng, chèn thêm, xoá, sửa hay truy vấn đối tượng như các lệnh SQL thông thường Thế giới quanh ta là một tập hợp đa dạng của nhiều đối tượng, Oracle và các công cụ phần mềm khác cũng không phải ngoại lệ Oracle 8.i là một hệ quản trị cơ sở dữ liệu hướng đối tượng, nó trải qua nhiều năm từ hệ thống quan hệ thuần tuý truyền thống thành một hệ thống mở rộng các tính năng hướng đối tượng
Trong Oracle có một ngôn ngữ đặc biệt, hoàn thiện cho phép kết hợp ngôn ngữ thủ tục truyền thống với truy xuất các đối tượng cơ sở dữ liệu thông qua SQL là PL/ SQL Lập trình hướng đối tượng thực hiện dựa trên cơ sở các kiểu đối tượng (Object Type)
Các kiểu dữ liệu phức hợp định nghĩa sẵn
- Đối tượng lớn nhị phân lưu trong cơ sở dữ liệu (Binary Large Object - BLOB)
Kiểu dữ liệu BLOB là đối tượng lớn nhị phân lưu trữ dữ liệu nhị phân không có cấu trúc trong cơ sở dữ liệu, có thể lưu trữ tối đa bốn GB (Gigabyte) dữ liệu nhị phân
- Đối tượng lớn ký tự lưu trong cơ sở dữ liệu (Character Large Object - CLOB)
Kiểu dữ liệu CLOB là đối tượng lớn ký tự lưu trữ tối đa bốn GB ký tự trong cơ sở dữ liệu
- Đối tượng lớn ký tự chiều dài cố định (Fixed - Width Multibyte Character Large Object - NCLOB)
Kiểu dữ liệu NCLOB là đối tượng lớn ký tự chiều dài cố định lưu trữ tối đa bốn GB ký tự trong cơ sở dữ liệu Các NCLOB lưu trữ dữ liệu có chiều dài dữ liệu cố định
- Đối tượng lớn nhị phân lưu ngoài cơ sở dữ liệu (Binary Large File Object - BFile)
Kiểu dữ liệu BFILE là đối tượng lớn nhị phân lưu trữ dữ liệu nhị phân không có cấu trúc trong các tập tin của hệ điều hành ngoài cơ sở dữ liệu Cột BFILE hoặc thuộc tính lưu trữ một
bộ định vị tập tin chỉ đến tập tin bên ngoài chứa dữ liệu Các BFILE có thể lưu trữ tối đa bốn
GB dữ liệu Các BFILE là chỉ đọc, bạn không thể sửa đổi chúng Chúng chỉ hỗ trợ đọc ngẫu nhiên và chúng không tham gia vào các giao dịch
Kiểu đối tượng (Object Type)
Khác với những dữ liệu tĩnh thông thường, một kiểu đối tượng sẽ biết cách tác động lên chính dữ liệu mà nó thể hiện thông qua các phương thức được xây dựng bên trong đối tượng
Để đưa một đối tượng vào dùng bạn chỉ cần biết chúng làm được những gì không cần phải biếtchúng được cài đặt như thế nào
Các kiểu đối tượng là các khái niệm trừu tượng hoá của các đối tượng trong thế giới khách quan Một kiểu đối tượng là khuôn mẫu của đối tượng Đơn vị dữ liệu có cấu trúc so khớp khuôn mẫu được gọi là đối tượng Đối tượng là thể hiện của kiểu đối tượng
II Cài đặt Oracle
Trang 9Để cài đặt Oracle 12c Realease 1 thì bạn thực hiện các bước sau.
Bước 1: Bạn hãy vào trang download Oracle để tải về, bạn cần tạo một tài khoản để đăng nhập thì mới tải được Hãy chắc chắn rằng bạn tải cả hai file Part 1 và Part2
c
Bước 2: Giải nén hai file vừa tải về với tên là winx64_12102_database_1of2.zip và
winx64_12102_database_2of2.zip Sau khi giải nén xong chúng ta sẽ có 2 folder tương ứng
Bước 3: mở thư mục winx64_12102_database_2of2 và tìm đến folder database và copy tất cả các
file và folder ở đây sang thư mục winx64_12102_database_1of2.
Trang 10Hệ quản trị cơ sở dữ liệu Oracle
Bước 4: Trong các file bạn vừa copy sang có file setup.ext, hãy nhấn double vào đó để bắt đầu cài
đặt
Bước 5: Hãy chờ một vài giây để hệ thống bắt đầu cài đặt, lúc này bạn sẽ thấy trang Configure Security Updates.
Trang 11Bước 6: Hãy nhập email của bạn vào, sau đó nó sẽ xuất hiện một ô checkbox, bạn hãy bỏ dấu
check đó đi, nếu không bạn sẽ nhận các email về tin tức của Oracle gửi trong tương lai
Bước 7: Chọn Create and configure a database và click Next.
Trang 12Hệ quản trị cơ sở dữ liệu Oracle
Bước 8: Chọn Desktop class và click Next.
Bước 9: Chọn Create New Windows User, nhập Username và Password sau đó click Next.
Trang 13Bước 10: Nhập mật khẩu mới cho administrative gồm 8 ký tự trong đó phải có vừa chữ vừa số.
Bước 11:Chờ một vài giây để hệ thống tạo, sau đó bạn click Next.
Trang 14Hệ quản trị cơ sở dữ liệu Oracle
Bước 12: Quá trình cài đặt có thể mất một vài phút, bạn hãy chờ cho tới khi nó báo đã cài xong.
Như vậy việc hướng dẫn xong cách cài đặt Oracle 12c trên máy tính của các bạn, việc cài đặt này tương đối đơn giản, bạn chỉ cần làm theo các bước trong bài hướng dẫn là được
III Quản trị người dùng
Trang 151 Truy xuất Oracle
Có ít nhất 4 tool để truy xuất sử dụng Oracle:
Oracle SQL*Plus
Command Prompt
Oracle iSQL*Plus
Oracle SQL Developer (theo đánh giá là dễ sử dụng vì có giao diện)
Đăng nhập với user-name: system, password như lúc cài Oracle (thường để là 123456 cho dễ nhớ) Nhớ đây là tài khoản admin, cứ nhớ đây là tài khoản admin hệ thống
Sau khi đã log in vào hệ thống, mỗi khi muốn log out/log in chuyển qua các tài khoản khác, ta dùng các lệnh sau:
Log in vào 1 account: CONNECT <username>/<password> hoặc CONNECT
<username>
Log in vào tài khoản SYS: CONNECT SYS/<password> AS SYSDBA hoặc CONNECT /
AS SYSDBA (dùng câu này với điều kiện đang ở trong tài khoản có quyền administration
của Windows)
Log out khỏi 1 account: DISCONNECT
Có thể thay CONNECT bằng CONN Khi muốn đổi account, chỉ cần gõ lệnh log in vào accountkhác, không cần phải gõ lệnh log out
2 Quản lý user
Một CSDL Oracle được chia thành những đơn vị lưu trữ luận lý được gọi là các tablespace,
nhằm mục đích gom nhóm các cấu trúc luận lý có liên quan với nhau
Trang 16Hệ quản trị cơ sở dữ liệu Oracle
CSDL này có 2 tablespace SYSTEM và USERS
Mỗi tablespace này chứa một hoặc nhiều các datafile Như ở trên Tablespace SYSTEM chứa 2
datafile là DATA1.ORA và DATA2.ORA
Datafile là các cấu trúc vật lý tương thích với hệ điều hành bên dưới, dùng để lưu trữ dữ liệu
của các cấu trúc luận lý trong tablespace chứa nó Kích thước tổng cộng của các datafile bằng kích
thước lưu trữ tổng cộng của tablespace đó
Một tablespace này chứa 2 datafile
Có thể thấy rằng: các đối tượng trong tablespace có thể nằm trên vài datafile ví dụ như đối tượng table (giữa) được lưu trên 2 datafile.
kỹ thuật là người chủ yếu can thiệp vào cái này
Chú ý: Không nên chứa dữ liệu người dùng trong loại tablespace này mặc dù có thể
Trang 17 Non-system tablespace: Dùng để chứa các loại dữ liệu còn lại, đặc biệt là các dữ liệu của
người dùng (như name, age, job, status,…)
Một cách phân loại khác của tablespace:
Temporary tablespace: được sử dụng để dành riêng cho các thao tác sắp xếp dữ liệu
Permanent tablespace: Các tablespaces không phải là temporary tablespaces được gọi là các permanent tablespaces và nó được sử dụng để lưu trữ dữ liệu trong database
Cần biết thêm 1 khái niệm khác là Schema
là một tập hợp các đối tượng cơ sở dữ liệu (vd: table, view, index,…)
Mỗi schema được sở hữu bởi một user và có cùng tên với user Không có mối quan hệ nào giữa schema và tablespace ↔ các đối tượng thuộc 1 schema có thể nằm trên các tablespace khác nhau và
1 tablespace có thể chứa các đối tượng thuộc nhiều schema khác nhau
2.1 Tạo mới User
Tạo mới 1 user với user tên là “usera” và mật khẩu là “123456” với câu lệnh như sau:
CREATE USER usera IDENTIFIED BY 123456;
Một số phiên bản Oracle cũ với cú pháp như trên sẽ ok, còn những version mới (hiện tại là 12C)
thì sẽ báo lỗi ORA-65096: invalid common user or role name Để khắc phục thì cần phải thêm tiền tố C## hay c## đứng trước tên user Cú pháp đầy đủ như sau:
CREATE USER c##usera IDENTIFIED BY 123456;
hoặc có cách khác là set tham số "_oracle_script"=true, như vậy sẽ không cần tiền
tố c## hay C## trước user ID Cú pháp đầy đủ như sau:
alter session set "_ORACLE_SCRIPT"=true;
create user usera identified by 123456;
Ngoài ra, ta có thể quy định về default tablespace, temporary tablespace, quota trên các
tablespace, thời hạn hiệu lực của password,… ngay trong câu lệnh tạo user trên hoặc sẽ chỉ định cụ thể về sau
Hiển thị tablespace của user vừa mới tạo với câu lệnh
SELECT default_tablespace, temporary_tablespace
FROM dba_users
WHERE username='USERA'; //user id phải viết hoa mới được
Trang 18Hệ quản trị cơ sở dữ liệu Oracle
Nhưng logout user ‘system’ và log in bằng user vừa mới tạo ở trên connect usera/123456 sẽ báo lỗi Ora-01045: user SALAPATI lacks CREATE SESSION privilege; logon denied
Lý do: user vừa mới tạo chưa được cấp quyền cho phép kết nối đến database Để user vừa mới
tạo có thể login được, ta phải login vào user ‘system’ như ban đầu và cấp quyền grant session với cúpháp sau
grant create session to USERA; // kết quả 'Grant succeeded'
Khi user mới được tạo ra, nếu ta không cấp các quyền tạo các loại object (table, index,…) thì user đó không thể tạo được các object Tùy thuộc vào nhu cầu của từng user, ta chỉ nên cấp những quyền cần thiết chứ không nên cấp dư Thử cấp quyền tạo table object cho user:
GRANT CREATE TABLE TO usera;
Nhưng khi dùng tài khoản “usera” tạo mới table CREATE TABLE student (name
VARCHAR2(30)); thì sẽ báo lỗi ORA-01950: no privileges on tablespace 'USERS' vì chưa có
quota
Một điều kiện bắt buộc khác để user có thể tạo được các object là ta phải cấp quota cho user
trên các tablespace tương ứng Một user có thể được cấp quota sử dụng trên 1 hoặc nhiều
tablespace Quota có thể limited hoặc unlimited
ALTER USER usera QUOTA 100M ON users;
Nếu muốn user có thể sử dụng tối đa 1 tablespace nào đó thì dùng cú pháp sau:
ALTER USER usera QUOTA UNLIMITED ON users;
Có “quota” rồi, giờ đã có thể tạo bảng mới Vì một user có thể được cấp quota trên
nhiều tablespace khác nhau, nên khi tạo các đối tượng, user có thể chỉ định cụ thể tablespace mà
mình muốn tạo đối tượng trên đó Nếu không chỉ định, hệ thống sẽ tự động tạo trên default
tablespace của user đó
CREATE TABLE student (name varchar(30));
Nếu muốn user có thể tạo object trên bất kỳ tablespace nào thì cấp quyền sau:
GRANT UNLIMITED TABLESPACE TO usera;
Có thể xem thông tin về quota được cấp cho các user thông qua view DBA_TS_QUOTAS
SELECT tablespace_name, username, bytes
FROM DBA_TS_QUOTAS;
Có thể gán tablespace lúc tạo mới user, cú pháp một cách như sau:
CREATE USER usera IDENTIFIED BY 123456
TEMPORARY TABLESPACE TEMPTBS01
DEFAULT TABLESPACE USERS