Bài giảng “Hệ quản trị Cơ sở dữ liệu Oracle là tài liệu hướng dẫn học tập dùng cho sinh viên ngành Khoa học máy tính, Sư phạm Tin học ở bậc đại học của Trường Đại học Đồng Tháp. Bài giảng này trình bày hệ quản trị cơ sở dữ liệu bằng Oracle và trọng tâm là thiết kế cơ sở dữ liệu, truy vấn dữ liệu, và kết nối dữ liệu Oracle với công cụ lập trình cơ sở dữ liệu mà cụ thể là NetBeans IDE. Các nội dung được giới thiệu một cách súc tích, có nhiều ví dụ minh họa. Cuối mỗi chương đều có câu hỏi hoặc bài tập ôn luyện để người học củng cố những vấn đề đã tìm hiểu.
Trang 1TRUGNG DAI HOC DONG THAP
KHOA SU PHAM TOAN - TIN
@
ThS NGUYEN THI MY DUNG ThS NGUYEN TRONG NHAN ThS NGUYEN THỊ THANH THẢO
BÀI GIẢNG
E QUAN TRI
CO SO DM LIEW ORACLE
Trang 2
TRUONG DAI HOC DONG THAP
KHOA SU PHAM TOAN - TIN
@®
NGUYÊN THỊ MỸ DUNG NGUYÊN THỊ THANH THẢO
Trang 3LOI NOI DAU
Bài giảng “Hệ quản trị Cơ sở dữ liệu Oracle" là tài liệu hướng dẫn học tập dùng cho
sinh viên ngành Khoa học máy tỉnh, Sư phạm Tin học ở bậc đại học của Trường Đại học
Đồng Tháp Bài giảng này trình bày hệ quản trị cơ sở dữ liệu bằng Oraclc và trọng tâm là
nhiều ví dụ minh họa Cuối mỗi chương đều có câu hỏi hoặc bải tập ôn luyện đề người
học củng cố những vấn đề đã tìm hiểu
Nội dung của bải giảng được chia thành 7 chương như sau:
- Chuong 1: Téng quan về hệ quản trị cơ sở dữ liệu Oraele Trình bày các khái niệm,
lịch sử phát triển, hướng dẫn cài đặt và cấu hinh Oracle
~_ Chương 2: Cơ bản về Oracle Trình bày ngôn ngữ thiết kế CSDL quan hệ với hệ quản
trị Oracle Hướng dẫn người dùng thao tác CSDL (tạo CSDL, backup dữ liệu, restore
dữ liệu) quan hệ trên hệ quản trị này
-_ Chương 3: Truy vấn cơ sở dữ liệu Thực hiện thao tác dữ liệu: thêm,
cập nhật, thống kê với các câu lệnh như: insert, update, delete, select from where (having) group by
-_ Chương 6: Quản trị người dùng Trình bảy phương thức quản trị người dùng, phân
quyền hệ thống, cấp phát và thu hồi các quyền hạn người dùng
-_ Chương 7: Kết nối cơ sở dữ liệu Trình bày ngôn ngữ lập trình cơ sở dữ liệu Netbeans
IDE Thực hiện kết
tìm kiếm dữ liệu
Oracle, hiển thị dữ liệu, thực thi câu truy vấn, thêm, sửa, xóa,
Nhóm biên soạn hy vọng tài liệu này sẽ có ích cho việc dạy và học môn hệ quán trị cơ
sở dữ liệu Oracle của trường ngày cảng tốt hơn Trong quá trình biên soạn có thể còn
nhiều thiếu sót, nhóm biên soạn rất mong nhận được sự góp ý của bạn đọc cũng như các
đồng nghiệp Chúng tôi chân thành cảm ơn!
Đồng Tháp, Tháng 05 năm 2022
“Nhóm biên soạn
Trang 4DANH MUC TU VIET TAT
was Distrib Databite Management System — Hé quản trị
cơ sở dữ liệu phân tán Procedural Language/Struetured Query Language - Ngôn PL/SQL ropediusal Language(s 1 Query guage - Ng
ngữ lập trình lập trình hướng thủ tục
XE Express Edition
SQL Structured Query Language — Ngôn ngữ truy vấn cấu trúc
Trang 513.2 Kétndi Oracle voi SqlDeveloper
1.4 Câu hỏi ôn tập và bài tập
CHƯƠNG2 CƠ BẢN VẺ ORACLE
2.1 Các khái niệm được sử dụng trong Oracle
2.4.3 Kiểu dữ liệu ngày tháng năm
2.4.4 Kiểu dữ liệu luận lý
2.4.5 Kiểu dữ liệu đối tượng LOB
2.4.6 Bảng tóm tắt kiểu dữ liệu cơ bản
Trang 6
2.7 Câu hỏi ôn tập
CHƯƠNG 3 _ TRUY VẤN CƠ SỞ DU LIEU SQL
3.1 Câu lệnh tạo, sửa, xóa, thêm dữ liệu bảng
3.1.1 Tạo bảng (ereate table)
3.1.2 _ Lệnh sửa cấu trúc bảng
3.13 Lệnh xóa bảng
3.1.4 Xem mối quan hệ Relationshil
3.2 Phát biểu SELECT, INSERT, UPDATE, DELETE
3.2.1 Truy vấn SELECT
3.2.2 Câu lệnh INSERT (thêm dữ liệu)
3.2.3 Câu lệnh UPDATE (Sita théng tin)
3.2.4 Câu lệnh DELETE (Xóa dòng dừ
3.3 Select lồng, Group by, Having
3.3.2 Truy vấn gom nhóm - group by
3.3.3 Truy vấn con sử dụng toán tử HAVING
Trang 7
4.6 Bai tap 6n tap
CHƯƠNG 5 PROCEDURE, FUNCTION & TRIGGER
5.3.1 Giới thiệu Trigger
S.3.2 Cit phap và các thành phần Trigger
5.3.3 Thao tac Trigger
ip nhat User
Trang 8
6.3.3 Thu hỏi quyền hệ thống
63.4 Xemqu
6.4 Quản lý quyền đối tượn;
6.4.1 Gan quyền cho đối tượng
CHUONG7 LAP TRINH KET NOI CO SO DU LIEU
7.1 Giới thiệu ngôn ngữ lập trình
7.1.1 — Điều kiện cản thị
7.1.2 Tao Project bing NetBeans IDE
7.2 Kết nối cơ sở dữ liệu Oracle
72.1 JDBC trong Java
7.2.2 Cac thanh phan trong JDBC API
7.2.3 Két ndi JDBC voi NetBeans IDE
7.3 Lập trình cập nhật dữ liệu
7.3.1 Cập nhật dữ liệu thém (insert)
7.3.2 Cập nhật dữ liệu sửa (update)
7.3.3 Cập nhật dữ liệu xóa (delete)
7.3.4 Cập nhật dữ liệu tìm kiếm (selecU)
7.3.5 Hiến thị thực thi thi tục, hàm
1.1 Cai dat Oraclel 1g Express
1.2 Két néi Oracle với SqlDeveloper
2 Cai dat Oraclel9e
2.1, Cai dat Oracle Server
2.2 Kiểm tra cài đặt và xem c:
hình Host, Port Oracle
Trang 92.3 Kết nỗi Oracle Server với SqlDeveloper
TÀI LIỆU THAM KHẢO
108
110
Trang 10
CHUONG 1 TONG QUAN VE HE QUAN TRI
CO SO DU LIEU ORACLE
.Mục tiêu của chương
Sau khi học xong chương này, người học sẽ:
- Mô tả được những khái niệm cơ bản vẻ hệ quản trị cơ sở dữ liệu, kiến trúc tổng quát của một hệ cơ sở dữ liệu Oracle, lịch sử phát triển;
- Cài đặt được hệ quản trị cơ sở dữ liệu Oracle phiên bản Express và Server,
kết nỗi được Oracle với công cụ SạlDeveloper
và phân phối bởi tập đoàn Oracle
Sau nhiều năm phát triển công ty Oracle Corp đang phát triển mạnh trong lĩnh vực
cung cấp các hệ thống quản trị Với nhiều phiên bản, Oracle đang được sử dụng pi
biến trong nhiều đơn vị, công ty, đáp ứng nhu cầu của nhiều mô hình kinh doanh Phẩn mềm này vẫn đang được phát triển lên những phiên bản cao hơn, và vẫn đang là một
trong những phần mẻm quản trị CSDL hàng đầu thế giới
1.1.2 Các tính năng nổi b
Oracle có nhiều tính năng nỗi bật, giúp người dùng dễ dàng sử dụng, quản lý hệ
thống dữ liệu Điễu này giúp hệ thông Database này trở nên phô biến và được sử dụng
rộng rãi Một số tính năng tiêu biểu như:
~ Khả năng mở rộng và hiệu suất: Oracle được thiết kế để đảm bảo đáp ứng đầy đủ các yêu cầu của hệ thống quản lý thông tin, thông qua một số cơ chế như:
¥ Tối đa hỏa hệ thống dữ liệu trong trường hợp có nhiều người sử dụng đồng thời Giúp nâng cao hiệu suất với việc cho nhiều người cùng sử dụng trên một hệ thống
+ Giúp việc sửa và đọc dữ liệu trở nên nhất quán hơn (trong trường hợp có người sử dụng đang xem thông tin, thông tin đó sẽ không thể bị thay đổi bởi một người nào khác)
~ Sao lưu và phục hồi CSDL (Backup và Recovery): Trong quả trình sử dụng hệ
Trang 11thống cơ sở, chắc chắn sẽ không thể tránh được tình trạng xảy ra lỗi Và khi gặp lỗi, người dùng có thể sẽ phải đối mặt với các rủi ro, trong đó có việc mắt dữ liệu Oracle
đã giúp khắc phục hạn chế này thông qua việc:
⁄_ Phục hồi cơ sở dữ liệu theo yêu cầu của người sử dụng
Y Vige sao lưu, phục hồi dữ liệu sẽ được tích hợp sẵn, ngay cả trong trường
hợp người dùng đang làm việc
- Tinh kha dung: Oracle cung cap tính năng Oracle Data Guard Đây là tính năng nâng cao tính khả dụng của cơ sở dữ liệu, giúp duy trì CSDL thứ cắp Người dùng sẽ
có thêm một bản sao, song song với CSDL chính Vì thế, trong quá trình sử dụng,
người dùng có thể thay thế khi cần chuyển đổi
~ Bảo mật thông tin: Oracle có tính năng bảo mật thông qua 2 giải pháp bảo vệ tại
nguồn đó là ngay cả khi đăng xuất Hệ thống Oracle luôn đảm bảo hệ thống bảo mật, đảm bảo quyền lợi của người sử dụng:
¥ TDE (Transparent Data Encryption): Ma héa dir ligu trong thai gian thuc, giúp bảo vệ thông tin nhạy cảm
Y Data Redaction: giúp mã hóa, che giấu dữ liệu
~ Tích hợp thông tin: Oracle có tính năng bổ sung dữ liệu, trao đổi dữ liệu tử xa,
giúp người dùng dễ dàng tích hợp thông tin Đặc biệt, tất cả các dữ liệu được điều
chỉnh bởi hệ thông này sẽ luôn đảm bảo tính nhất quán
~ Tỉnh năng quản lý: Oracle cho phép người dùng dễ dàng quản lý thông qua các công cụ quản lý; tự quản lý cơ sở dữ liệu thông qua các hệ thống: hỗ trợ lưu trữ tự động; sử dụng hệ ngôn ngữ SQL plus; có sẵn bộ lập trình và quản lý tài nguyên
1.1.3 Ướ và nhược điểm của cơ sở dữ liệu Oracle
Cơ sở dữ liệu Oracle đang được đa số các doanh nghiệp trên thé g
những tru điểm như sau: i tin dùng nhờ
Y Sw ôn định cao, dữ liệu luôn trong trạng thái sẵn sàng đề truy cập
*⁄ Khả năng đáp ứng nhanh: tạo ra hệ thông quản
tốc độ truy vấn nhanh, chính xác
quy mô lớn với
v⁄_ Khả năng bảo mật tốt, giám sát chống xâm nhập trái phép
v Hoạt động đa nền tảng: có khả năng hoạt động trên nhiều nền tảng khác
nhau đối với một công ty lớn vả có dữ liệu phức tạp
“_ Hỗ trợ từ nhà phát triển: các sự cô xảy ra sẽ được hãng phát hành tư vẫn, hỗ
trợ giải quyết
Bên cạnh đó, Oracle cũng đang tổn tại không ít nhược điểm như sau:
“ Rào cản lớn nhất là chưa tương thích với các công nghé và các ứng dung
Trang 12phát triển của Microsoft
“ˆ Ngôn ngữ sử dụng là Java nên khó khăn trong việc tiếp cận các công cụ thiết
kế, lập trình
1.2 Phién ban Oracle
12.1 Giới thiệu
Hiện nay Oracle có 4 phiên bản chính, đó là:
Enterprise Edion: Đây là phiên bản được xem là mạnh mẽ và bảo mật nhất, nó có đây đủ các tính năng từ căn bản đến nâng cao, bao gồm cả các tính năng về bảo mật, đương nhiên sẽ có phí
Standard Edion: Đây là gói cơ bản dành cho người dùng, gói này chứa các tính năng cơ bản cần thiết đê quản trị cơ sở dữ liệu, gói này có tinh phi
Express Edition (XE): Đây là gói tương đối nhẹ dành cho cả hai hệ điều hành Windows và Linux, nó không có đầy đủ các tính năng như hai phiên bản trên nên miễn phí Người dùng chỉ cần đăng ký vào trang chủ Oracle có thé tai về va cai di
Oracle Lite: Được thiết kế dành cho các thiết bị di động, nghĩa là dữ liệu sẽ được
lưu dành cho việc xử lý trên các thiết bị smartphone
1999: ra mắt Oracle 8i, có hỗ trợ Internet
2001: ra mat Oracle 9i, có hỗ trợ RAC (Real Application Clusters)
2003: ra mắt Oracle 10g, hỗ trợ tính toán lưới
2007: ra mắt Oracle 11g, chạy được trên cả môi trường Windows và Unix
2013: ra mắt Oracle 12c, hỗ trợ tính toán đám mây
2018: Oracle Database 18c, ting cdc tính năng bảng đa hình, tính liên tục của ứng dụng, xử lý truy vấn Top-N gần đúng
2019: Oracle Database 19¢, phat triển nhiều tính năng chuyển hướng DML bảo vệ
dữ liệu tích cực, tạo chỉ mục tự động, bảo trì thống kê thời gian thực, truy vấn SQL trên dữ liệu hướng đối tượng, bô sung bộ nhớ luồng dữ liệu IoT, quản lý sao lưu truy vấn tự động,
2020: Oracle Database 21c, tăng cường các chức năng bảng Blockchain, công cụ
đa ngôn ngữ (thực thi JavaScript trong cơ sở dữ liệu), kiểu dữ liệu JSON nhị phân,
i Vids Dar DR thaw nan ani WA han wd A® Hiếu đa Ai
OnE AA ALN Wat We han 8
Trang 13tượng), tự quản lý trong bộ nhớ, chế độ xem được thực thẻ hóa tự động, tính năng bảo
mật cũng được cải thiệt
1.3 Cài đặt Oracle Express và nối kết SQLDeveloper
1.3.1 Cai dt Oracle Express
Tải và sao chép 2 file OracleXExxx_Win64 va sqldeveloper-x.x.x.x ty theo phién ban tir trang chii Oracle
Yêu cầu cầu hình hệ thông khi cài đặt:
Y Processor: AMD64 or Intel EM64T;
Y Physical RAM: 2 GB minimum;
¥ Swap (virtual memory): at least the same size as the physical memory (2 GB minimum);
Y Available disk space: 12 GB (OS excluded);
Y Video adapter: 256 colors;
Y Display (screen resolution): 1024 x 768 minimum
Yêu cầu không gian cứng:
Trang 14~ Bước 1: Giai nén file Oracle21 XE va Run (hình 1.1)
Hinh 1.1 Buéc 1 ~ Run Setup Oracle Databse 21c Express
- Bước 2: Xác nhận cai đặt (hình 1.2)
$8) Oracte Database 21c Express Edition x
Welcome to the InstallShield Wizard for Oracle Database 21c Express Edition
‘The Instalshield(R) Wizard nil install Orade Database 21¢ Express Editon on your computer To continue, cick Next
Trang 15- Bước 3: Đọc thỏa thuận trước khi cai đặt (hình 1.3)
$8) Oracle Database 21c Express Edition x
License Agreement 21 ORACLE Please read the folowing Icense agreement carefully Dan, Edition
Inc "You" and
Trang 16
~ Bước 5: Xác nhận mật khẩu đăng nhập (hình 1.5)
$9 Oracle Database 21c Express Edition x Oracle Database Information 2 ¢ ORACLE
Database Specify the database password Barres Edition
‘This password willbe used for SYS, SYSTEM and PDBADMIN accounts
Hinh 1.5 Buée 5 — Dat mat khẩu để đăng nhập vao Database
~ Bước 6: Tiến hành cải đặt và chờ cài đặt (hình 1.6)
BP Oracle Database 21c Express Edition x
‘Summary 21° Seats
‘These are the parameters that willbe applied in this Darras instalation Express Edition Destination Folder: C:wppTHUWroduet2ic\
rade Home: C;bppTHUWroduetlZicvEhomeYE\
'(Orade Base: C:eppTHUroductl2ic\
‘Cick Install to begin the instalation
TẾ you want to review or change any of your: settings, cick Back, Click Cancel to
‘ext the wizard
Trang 17- Bước 7: Chờ cải đặt hoàn tắt (hình 1.7)
S8 Oracle Database 21c Express Edition _ x
Installing Oracle Database 21c Express Edition 21° ORACLE
‘The program features you selected are se beng netsled Express Edition Please wait while Orade Database 2c Express Editon is instaled This may
take several mnutes
seus; | _ B7: Chờ cài đặt hoàn tắt, Nhấn Next sang Bước 8
engin Orne Osan compen
Hình 1.7 Bước 7~ Chờ quá trình cài đặt hoàn tắt
~ Bước 8: Hoàn thành cài đặt (hình 1.8)
$8 Oracle Database 21c Express Edition x
Oracle Database Installed Successfully
The InstallShield Wirard has successfuly instaled Orade Database 21c Express Editon Cick Finish to exit the wizard
‘Oracle Database Express Edition Connection Information:
C ORACLE
Database ‘Maltitenant container database: localhost: 1521
Express Edition
Puggable database: localhost: 1521/NEPDB1
EM Express URL: https:/localhest:S500/em
Hình 1.8 Bước 8~ Thông tin cài đặt và xác nhận thành công
Trang 18B Kiém tra cai dat va xem cau hinh Host, Port oracle
~ Bước I: Start / All Program / Oracle Database home
Hinh 1.9 Céc buée xem cau hinh két noi Oracle
- Bude 2: Chon LISTENER / Address! / Xem Host, Port
ace Het Manager - Capp DTV pdt chee ORME NETWORE ADM - 0 x
Hinh 1.10 Cau hinh Listener
Trang 19C Tao Database user bang SQLPlus
- Bude 1: Két néi Database SYSTEM
SQL> CONNECT SYSTEM;
ENTER PASSWORD: ****** Nhap password luc cai đặt ở phần A.B5 /*ERROR at line 1: ORA-65096: invalid common user or role name
- xu ly bang dong lenh ben duoi (néu có) */
SQL> alter session set "_ORACLE_SCRIPT"=true;
- Bước 2: Tao User Database méi
SQL> CREATE USER Myconnect01 IDENTIFIED BY 123456
2 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
3 QUOTA 20M ON users PROFILE default ACCOUNT UNLOCK;
~ Bước 3: Cấp phát quyền và vai trỏ cho Database
SQL> GRANT CONNECT, RESOURCE, DBA TO Myconnect01;
SQL> GRANT UNLIMITED TABLESPACE TO Myconnect01;
1.3.2 Kết nối Oracle với SqlDeveloper
Giải nén sqldeveloper phiên bản gần nhất (19, 21, ) tại đường dẫn cài đặt (hoặc đĩa C:/) và test
Trang 20Hinh 1.12 Giao dign SqlDeveloper
1.4 Câu hỏi ôn tập và bài tập
1 Nêu các tính năng nỗi bật của oracle? Tính năng nào người dùng quan tâm nhất? Tại sao?
2 Trình bảy tóm tắt các phiên bản (Edion) của Oracle? So sánh ưu nhược điểm giữa các phiên bản?
3 Trình bày các bản phát hành (version) Oracle cho đến thời điểm hiện tại
(2022) va cai tiến nồi bât qua từng bản phát hành?
Trang 21
4 Lựa chọn bản phát hành và cài đặt theo cấu hình máy tính cá nhân?
5 Nêu một số lỗi phát thường gặp khi cài đặt Oracle và cách khắc phục (chọn l
run sql SQL> GRANT UNLIMITED TABLESPACE TO MYCONNECTO1;
run sql SQL> CONNECT MYCONNECTO1;
Trang 23CHUONG 2 CO BAN VE ORACLE
Sau khi học xong chương này người học sẽ:
- Xác định được các thành phẩn cơ bản, chỉ tiết hóa cẩu trúc một cơ sở dit
ligu Oracle;
- Dién giai duge chire nang kiêu dữ liệu, khai báo và sứ dụng thành thạo kiểu
dữ liệu cơ bản;
~ Phân biệt được vai trỏ, quyên hạn của một số user; thiết kế được cơ sở dữ
liệu Oraele và kết nổi với sạlDeveloper; Kiểm thử được chức năng impor† và
đối tượng và cũng có thể chứa các tập tin CSDL hệ thống
Thể hiện CSDL và CSDL là mối quan hệ một ~ một Chúng ta có thê cài đặt nhiều thể hiện CSDL đơn lẻ trên cùng máy chủ (server) Mỗi CSDL có một thê hiện CSDL
=1 [5 (memory and processes)
|_ Packet || Ustener}- Connects {Server | (chert process) | processes SQL +
Hình 2.1 Mô hình kiên trúc của Oracle Database Server
Trang 24Hinh 2.2 Mé hinh Oracle Database Instance
2.1.3 SGA - System Global Area
Lä một vùng bộ nhớ đề lưu trữ các thông tin điều khiên của một instance SGA bao gồm một vài cấu trúc bộ nhớ chính như:
~ Shared pool: Đề chia sẻ các cầu trúc bộ đệm khác nhau giữa nhiều người dùng; ví
dụ: chia sẻ mã SQL, PL/SQL, phân tích cú pháp, lưu trữ các tham số hệ thống và
thông tin tử điền dữ liệu
~ Database buffer cache: Là vùng nhớ đề lưu trữ bản sao của khối đữ liệu được đọc
từ tệp dữ liệu, nơi lưu trữ các dữ liệu được sử dụng gần nhất
~ Redo log buffer: Được sử dụng để lưu thông tin về những thay đổi được thực hiện
đối với CSDL và thực hiện bởi các xử lý nền (background process)
~ Large Pool: Chia sẻ các cấu trúc bộ đệm khác nhau giữa nhiều người dùng: ví dụ: chia sẻ lưu trừ mã SQL, PL/SQL được phân tích cú pháp, các tham số hệ thống và
thông tin từ điển dữ liệu, sao lưu và phục hồi hệ thống
~ Java pool: những yêu cầu về cú pháp đối với các câu lệnh Java.
Trang 25Tập hợp file hệ thống, file dữ liệu, lưu trữ và trả về các thông tin liên quan Được
lưu trữ dưới hai cấu trúc: vật lý và luận lý
~ Control files: Chứa các mục thông tin quy định cấu trúc vật lý của DB như tên
DB, noi luu trữ các datafiles hay redo log files, time stamp tao lap DB
- Datafiles: Chita toàn bộ dữ liệu trong DB, có thê tự động mở rộng kích thước mỗi
khi DB hết chỗ lưu trữ dữ liệu Một hay nhiều datafiles tạo nên một đơn vị logic của
DB gọi là không gian bảng (tablespace)
~ Redo log files: Ghỉ lại tắt cả các thay đổi dữ liệu trong DB Bảo vệ DB khỏi
những hư hỏng do sự có
Trang 26Online Redo ‘Archive Redo
Log Files Log Files
Hình 2.5 Mô hình Cắu trác vét lj; Database Oracle
2.2.2 Cấu trúc luận lý:
Mô tả vùng nhớ dùng đề lưu trữ các đối tượng như các bảng, hàm, thủ tục Gỗm
các đối tượng tablespaces, schema objects, data blocks, extents, va segments
~ Tablespaces: tablespaces lưu trữ toàn bộ cơ sở dữ liệu về mặt logic
~ Schema: Là tập hợp các đối tượng (objects) có trong DB bao gém: tables, views,
sequences, stored procedures, synonyms, indexes, clusters, va DB links
~ Extents: Phân chia các vùng không gian trong DB, bao gồm: data blocks liên tiếp
nhau, cùng được lưu trữ tại một thiết bị lưu giữ và cùng kiều
~ Segments: Cũng là phân chia các vùng không gian trong DB, bao gồm tập hợp các extents
~ Database: Là một cơ sở dữ liệu gồm I hay nhiều vùng nhớ tablespace đề lưu trữ
Trang 272.3 Không gian dữ liệu và bảng dữ liệu
Không gian dữ liệu có định: Chứa các đối tượng dữ liệu tồn tại lâu dài (datafile)
Undo tablespace: Quan lý việc hoàn tác dữ liệu có thé thay cho rollback segment
Không gian dữ liệu tạm thời: Chứa các đối tượng CSDL trong một tập tin làm việc
Bảng dữ li
+ Hàng: Mẫu tin / record
+ Cột: Có tên và kiểu dữ liệu xác định
lun If Database Oracle
'ó định danh duy nhất, gồm nhiều hàng và cột để lưu trữ dữ liệu
Trang 292.4.2 Các kiểu dữ liệu số
Cac kiểu dữ liệu số bao gồm:
NUMBER [(p [ s])]: Kiêu số với độ dài tối đa p chữ số bao gồm cả phần thập phân (tối đa 38 chữ số), trong đó phần thập phân có s chữ số (từ -84 đến 127)
FLOAT (p): Kiểu số có dấu chấm phây động, độ dài tối đa p chữ số nhị phân (VD
float(126) sẽ hỗ trợ tối đa 38 chữ số thập phân)
Ngoài ra, Oracle cũng hỗ trợ các kiểu dữ liệu theo tiêu chuẩn ANSI hay IBM Do
đó, ta cũng thường thấy các kiểu dữ liệu số khác được sử dụng như Smallint, Integer,
Real, Decimal Ta có thẻ tạo bảng (Table) với các kiểu dữ liệu trên, Oracle sẽ tự
động chuyển đồi về kiểu dữ liệu chuân của Oracle là Number hay Float
3.4.3 Kiểu dữ liệu ngày tháng năm
DATE: Dùng đẻ chứa dữ liệu ngày và thời gian Mặc dù kiểu ngày và thời gian có
thể được chứa trong kiều CHAR và NUMBER
Với giá trị kiểu DATE, những thông tin được lưu trữ gồm thể kỷ, năm, tháng, ngày, giờ, phút, giây Oracle không cho phép gán giá trị kiều ngày trực tiếp, để gán giá
trị kiểu ngày, bạn phải dùng TO_DATE để chuyển giá trị kiểu chuỗi ký tự hoặc kiểu
số sang kiểu ngày tháng
Nếu gần một giá trị kiểu ngảy mà không chỉ thời gian thi thời gian mặc định là 12 giờ đêm, nếu gán giá trị kiểu ngày mà không chỉ ra ngày thì ngày mặc định là ngày
đầu của tháng Hàm SYSDATE cho biết ngày và thời gian hệ thống
2.4.4 Kiểu dữ liệu luận lý
BOOLEAN: La kiéu dit ligu luận lý, có 3 gid tri True, False, Null
2.4.5 Kiểu dữ liệu đối trợng LOB
Trong Oracle có các kiểu dữ liệu như CLOB, BLOB, BFILE, hé trợ người dùng
có thể lưu trữ các file văn bản, hình ảnh, âm thanh, v.v vao trong Oracle Database LOB là kiểu dữ liệu dùng để lưu những dữ liệu lớn không có cấu trúc như file text, hình, phim ảnh, v.v Có 4 kiểu dit ligu LOB la:
~ BLOB: Dùng cho dữ liệu lớn ở dạng nhị phân (binary large object)
~ CLOB: Dùng cho dữ liệu lớn ở dạng text (character large object)
~ NCLOB: Tương tự như CLOB nhưng với ký tự >lbyte (multibyte character)
Trang 30- BFILE: Ding cho cdc file dang nhi phan (binary file) trong hé théng duge
nhóm thành Internal LOB (CLOB, BLOB, NCLOB) tức được lưu vào trong databasc
và External files (BFILE) lưu bên ngoài database
2.4.6 Băng tóm tắt kiểu dữ liệu cơ bản
'VARCHAR2 | Dùng đề khai báo chuỗi ký tự với chiều dài thay đôi (2000 byte)
VARCHAR | Tương tự VARCHAR2 (Oracle khuyên nên dùng Varchar2)
Dùng đẻ chửa các mục tin dạng số đương, số âm, số với dấu chấm
genes: dong Number(p, s); Number(p), Number
INTEGER | Dùng để khai báo kiểu chuỗi ký tự với độ dài bién déi, (2Gb)
DATE Dùng để chứa dữ liệu ngày, thời gian
CHAR Dùng để khai báo chuỗi ký tự với chiều dài có định (255 byte)
FLOAT Dùng để khai báo kiểu dấu chấm động
Dùng đẻ khai báo kiêu chuỗi ký tự với độ dài biển đôi (2GB) Thường
2.5.1 Privilege - Quyén han
Một quyền là một sự cho phép thực hiện một câu lệnh SQL nào đỏ hoặc được phép
truy xuất đến một đối tượng nào đó truy cập đến các đối tượng người dùng khác Bao gồm quyền trên hệ thống và quyền trên đối tượng
~ System Privileges - Quyền trên hệ thống bao gồm:
ˆ Create session: Cho phép nỗi kết và truy cập đến CSDL
ˆ Create table, view, procedure, : Cho phép tạo bảng, khung nhìn, thủ tục trong CSDL
⁄ Sysdba: Thực hiện start/stop backup/restore create database.
Trang 31~ Quyền trên đối tượng (Schema Objeet Privilege hode Object Privilege): Là quyền thực hiện một hành động cụ thẻ trên một đối tượng schema (Insert, delete, update,
select, ) Dùng để quản lý việc truy xuất đến các đối tượng schema cụ thể nà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
~ Ủser có quyền GRANT ANY OBJECT PRIVILEGE
~ User được cấp quyền đối tượng đó với tùy chọn WITH GRANT OPTION
2.5.2 Role- Vai trò
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 như: DBA, RESOURCE,
CONNECT nhưng đa phần các role là do người quản trị CSDL tạo ra
2.6 Import va Export dif ligu Oracle
2.6.1 Chức nang import vi export
Chức năng export cho phép xuất nội dung luận lý của một CSDL vào một tập tin nhị phân định nghĩa bởi Oracle được gọi là tập tin dump Chức nang import sé ding
tập tin này đê tạo lại dữ liệu trên cùng mộy CSDL hoặc trên một CSDL khác, ngay cả khi các CSDL này được cài đặt dưới những cấu hình phần cứng và phần mềm khác
nhau Ví dụ, tập tin dump của một CSDL trên hệ điều hành Windows có thể dùng đẻ
tạo lại các đối tượng CSDL trên hệ điều hành Linux
Trong Windows, để thực hiện 2 chức năng này ta dùng lệnh hệ thống exp vả imp (thực thi trong windows command console)
2.6.2 Các phương thức của chức năng import và export
2.6.2.1 Cấp độCSDL
Đây là phương thức phức tạp nhất Với chức năng export, tất cả các đối tượng của CSDL được xuất ra tập tin dump trừ các đối tượng của một số người dùng như: SYS,
ORDSYS, CTXSYS, MDSYS, và ORDPLUGINS Đồng thời, tập tin dump bao gồm
các thông tin liên quan đến cấu trúc của CSDL như định nghĩa các tablespace và các
segments, rollback Với chức nang import, tắt cả các đối tượng sẽ được tạo lại trong
Trang 32CSDL đích Tham số FULL cho phép xác định phương thức này trong các chức năng
import và export
Chú ý: Trong trường hợp import cả CSDL, cần phải tạo lại tất cả người dủng và
các quyền tương ứng trong CSDL nguồn
2.6.2.2 Cấp độ người dùng
Tắt cả các đối tượng của người dùng bao gồm các bảng dữ liệu, thủ tục, Trigger,
đều được xuất ra tập tin dump Trong các chức năng export, tham số OWNER cho
phép chỉ định các đối tượng của người dùng cần xuất Với chức năng import, tham số
EROMUSER chỉ định tạo lại các đối tượng của người dùng nào trong tập tin dump và tham số
TOUSER chỉ định người dùng đích
2.6.2.3 Cấp độ bảng dữ liệu
Tất cả các đối tượng liên quan đến bảng dữ liệu (index, rằng buộc, các quyển )
sẽ được xuất ra tập tin dump
2.6.2.4 Cấp độ không gian dữ liệu
Các metadata, tablespace và các đối tượng CSDL được xuất ra tap tin dump,
2.6.2.5 Yêu cầu về quyền
export username/password@net_service name £ile=<đường dãn/tên
file>.dump log file=<duéng dẫn/tên file>.log owner= username
Vi dy 2.1: export userid=system/admin@db1 file=c:\db1.dmp tables=(cuahang) 2.6.3.2 Cú pháp import dữ liệu
imp username/password@net_service name £ile=<đường dẫn/tên
file>.dump fromuser= username touser=username
Trang 33Vi dy 2.2: imp system/admin@db1 file=c:\db1 dump tables=(cuahang)
ignore=y 2.7 Câu hỏi ôn tập
1 Mô tả kiến trúc của một Database Server?
2 Sơ lược mô hình kiến trúc của bộ nhớ lưu trữ thông tin điều khiển Instance
(SGA)?
3 Liệt kê các thành phần cơ bản của một database trong oracle?
Trinh bay cau tric vit ly cita Oracle Database?
Trinh bay cầu trúc luận ly cla Oracle Database?
4
5
6 Nhiệm vụ của TableSpace?
7 Hãy minh họa kiểu dữ liệu ký tự trong thực tế?
8
Ví dụ về các kiểu dữ liệu số thường gặp?
9 Chức năng của Privileges và Role trong Oracle?
10 Sự cần thiết của import và export dữ liệu trong Oracle là gì? Thực hiện import
dữ liệu mẫu vào user Myconnect01?
Trang 34CHƯƠNG 3 TRUY VẤN CƠ SỞ DỮ LIEU SQL
ÄMục tiêu của chương
Sau khi học xong chương này, người học sẽ:
- Vận dụng các truy van: select, insert, update, delete, select from
where vào các bài tập quản lý cơ sở đữ liệu;
3.1 Câu lệnh tạo, sửa, xóa, thêm dữ liệu bảng,
3.1.1 Tạo bảng (creafe table)
Trong Oracle, dé tạo một bảng mới thì bạn có thể sử dụng lệnh CREATE TABLE
và phải chạy nó trong một database cụ thê Có hai thành phần quan trọng khi tạo bảng,
đó là tên của bảng và các trường (cột - thuộc tỉnh) sẽ có trong bảng Mỗi trường sẽ có tên, loại dữ liệu, giới hạn dữ liệu và các thuộc tính bỗ sung như: khóa ngoại, khóa chính, giá trị mặc định,
Cú pháp:
CREATE [GLOBAL TEMPORARY] TABLE Table name
( Column_name Datatype [CONSTRAINT constraint def
DEFAULT default_exp]
[, column_name type [CONSTRAINT constraint_def
DEFAULT default _exp] ]
~_ Global Temporary: Nếu có từ khóa này bảng được tạo sẽ là bảng tạm
~_ Table name: Tên bảng do người dùng đặt
- Column_name: Tén cét trong bang
- Datatype: Kiêu dữ liệu của cột
- Constraint: Từ khóa cho phép tạo ràng buộc trên cột
- Contraint_def: Rang buộc của cột
- Default: Từ khóa cho phép xác định giá trị mặc định cho cột
~ Default exp: Dữ liệu của cột nhận giá trị default_exp nếu người dùng không
han di Hếu vàn 2Ất
Trang 35= Table_constraint: Rang buộc của toàn bảng dữ liệu
Cho một lược đồ CSDL “Quản lý đề tài sinh viên” như bên dưới dé dùng làm ví
ĐETAI ( MADT, TENDT, CHUNHIEM, KINHPHI)
có mã để tài duy nhất để biết tên đề tài, chủ nhiệm là người hướng dẫn đề
tài và kinh phí thực hiện đề tài đó
SV_DT (MASV MADT, NOIAD, KETQUA)
Sinh viên thực hiện đề tài cùng với nơi áp dụng và kết quả thực hiện để tài
Vi du 3.1: Tao bang sinh viên, bảng đề tài và bảng sinh viên đề tài
CREATE TABLE SINHVIEN (
MASV CHAR(10) PRIMARY KEY,
HOTENSV VARCHAR2 (40) ,
NAMSINH INT,
QUEQUAN VARCHAR2 (40) ,
HOCLUC FLOAT );
CREATE TABLE DETAI(
MADT CHAR(10) PRIMARY KEY,
TENDT VARCHAR2 (40) ,
CHUNHIEM VARCHAR2 (40) ,
KINHPHI NUMBER ) ;
CREATE TABLE SVDT (
MASV CHAR(10) NOT NULL,
MADT CHAR(10) NOT NULL,
NOIAD CHAR (40),
KETQUA FLOAT,
PRIMARY KEY (MASV, MADT) ,
Trang 36CONSTRAINT SVDT_SV FOREIGN KEY (MASV)
REFERENCES SINHVIEN (MASV) ,
CONSTRAINT SVDT_DT FOREIGN KEY (MADT)
Kiểu ràng buộc Điễn giải
NULL/NOT NULL Cho phép/không cho phép cột chứa giá trị rồng
CHECK (Criteria) Giá trị nhập vào cột phải thỏa Criteria
UNIQUE Giá trị nhập vào cột phải là duy nhất
PRIMARY KEY Ràng buộc khóa chính cho cột
REFERENCES <Table_name> | Ràng buộc khóa ngoại cho cột sẽ tham chiếu tới (Column_ name) Colimm_ name đã tồn tại trong bang Table_name
ALTER TABLE <Tén_bang> ADD
<Tên cột> <Kiêu đữ liệu> [<RBTV>]
Trong đó:
- Tén_bang: Tên bảng muốn thêm cột
~_ Tên cột: Tên cột muốn thêm mới vào bảng
~_ Kiểu_ dữ liệu: Kiểu dữ liệu của cột mới được thêm vào
~_ RBTV: Ràng buộc về đữ liệu của cột được thêm
Vi du 3.2: Thêm thuộc tính Học bông cho bảng Sinhvien
ALTER TABLE SINHVIEN ADD
HOCBONG FLOAT
Trang 373.1.2.2 Thay đối kiểu dữ liệu của cột
Trong Oracle, nếu muốn thay đồi kiểu dữ liệu của một cột đã có, ta dùng cú pháp
như sau:
ALTER TABLE <Tén_bang> MODIFY
<Tên cột> <Kiêu đữ liệu :
Trong đó:
-_ Tên bảng: Tên bảng muốn thay đôi kiểu dữ liệu cột
-_ Tên cột: Tên cột muốn thay đôi kiểu dữ liệu trong bảng
ôu dữ liệu học bồng thành kiểu Long trong bảng Sinhvien
ALTER TABLE SINHVIEN
MODIFY HOCBONG LONG
3.1.2.3 Lệnh xóa cột trong bang
Để xóa một cột ra khỏi một bảng thì sử dụng cú pháp DROP COLUMN
ALTER TABLE <Tên bảng>
DROP COLUMN <Tên cột>
Trong đó:
~_ Tên bảng: Tên bảng muốn xóa bỏ
-_ Tên cột: Tên cột muốn xóa khỏi bảng
Vi du 3.4: Xóa cột học bồng trong bảng sinh viên (thay đổi cầu trúc bảng)
ALTER TABLE SINHVIEN
DROP COLUMN HOCBONG
3.1.3 Lệnh xóa bảng
Trong oracle, để xóa bảng ta sử dụng cú pháp:
DROP TABLE <Tên Ì ng>
Trang 383.1.4 Xem méi quan hé Relationship
Sau khi tạo bảng và rằng buộc giữa các bảng: thực hiện xem mô hình quan hệ (Relational Model), thực hiện:
~ Bước 1: View / Data Modeler / Browser
~ Bước 2: Trên cửa số Browser/ chọn Relational Models
~ Bước 3; Chọn user Database/ kéo thả các Table
~ Bước 4: Xuất tập tin ảnh: File/ Data Modeler /Print Diagram / To image File (To PDF file, )
EB Oracte SQL Developer : Relational_1 (Untitled_1)
@ ‘Dy DBA - @ Zoom In
a Data Miner »!@ Zoom out
® Dbms Output fase
#'| - Debugger p | & Fit Screen
# Extension Diagnostics © Default Size
Es @ Find
@B Find DB Object ————
€& Global Search
Hinh 3.1 Thue hign bwée 1: View/ Data Modeler/ Browser
Trang 39
Hình 3.2 Thực hiện bước 2, 3: Tao Relationship
3.2 Phát biểu SELECT, INSERT, UPDATE, DELETE
Để tìm thêm, xóa và chỉnh sửa dữ liệu trong bảng, chúng ta sẽ sử dụng các câu
lệnh DML (Data Manipulation Language - Ngôn ngữ thao tác dữ liệu) trong Oraclc
Về cơ bản, DML sẽ có các câu lệnh SELECT - Tìm thông tin đữ liệu, INSERT - thêm
dữ liệu, UPDATE - chỉnh sửa dữ liệu và DELETE - xóa dữ liệu
3.2.1 Truy vấn SELECT
Các câu lệnh truy vấn được biểu diễn theo các quy tắc sau:
- Các lệnh trong câu lệnh SQL thuộc loại không phân biệt chữ hoa hay thường
~ Nội dung của một câu lệnh SQL có thẻ được trải dài trên nhiều dòng
~ Các từ khoá không được phép viết tắt hay có khoảng trắng
~ _ Các mệnh để thông thường được phép đặt trên nhiều dòng khác nhau
~_ Lệnh kết thúc bởi dấu chấm phẩy (;)
s#*Seleet không có điều kiện
SELECT * | <Coll,Col2, , Coln>
FROM <Tên bảng>
Trong đỏ:
- SELECT *: Hiển thị nội dung tắt cả các cột trong bảng
~ Coll, Col2, .Coln: Tên cột dữ liệu cần trả vẻ
Tân hành: China tân hana Ait Hide ten ude,
Trang 40Vi du 3.6: Tim mã số, họ tên sinh viên
SELECT MASV, HOTENSV
FROM SINHVIEN
+ Select véi Distinct | All
~_ Distinet: Loại bỏ phần từ trùng nhau
~ ALL: Lấy tất cả các bộ kế cả phân tử trùng
SELECT DISTINCT <danh sách cột>
FROM <Tên bảng>
* Các mệnh đề điều kiện:
~ AND, OR: Kết hợp nhiều điều kiện
~_ [NOT] LIKE: So sảnh chuỗi
- BETWEEN .AND : So sánh trong khoảng
~_ I§[NOT] NULL: Tìm các bộ là (không) rỗng
~_ [NOT] IN: Tìm trong/ ngoài danh sách
Các ký tự so sánh đại diện đối với chuỗi: '%* (nhiều ký tự) `_" (một kỷ tự)
Các toán tử được dùng là (+) (-), (*), (/) Độ ưu tiên của các toán tứ giống số học
% Select cé diéu kién:
SELECT *: Hién thị nội dung tắt cả các cột trong bảng
Danh sách cột: Tên các cột dữ liệu cần trả về
Tên_ bảng: Chứa tên bảng dữ liệu truy vấn
+ kiện: Điều kiện trích lọc dữ liệu trong truy vấn
Lưu ý: Các điều kiện xuất hiện trong Having khi sử dụng Group by hoặc các hàm thong ké (Sum, Max, Min, Count, Avg)