CÁC ĐỐI TƯỢNG TRONG CƠ SỞ DỮ LIỆU
Giảng viên: NGÔ THÙY LINH https://sites.google.com/site/linhntmisba/
Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Nội dung chính
Tablespace Schema Table Constraint Index View Synonym Data dictionary
4-2 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Tablespace - 1
Là đơn vị logic bên trong một cơ sở dữ liệu Nhóm các đối tượng để dễ quản lý Một tablespace có thể không chứa hoặc chứa nhiều segment Segment: các đối tượng lưu trữ bên ngoài data dictionary, ví dụ: table, index…
4-3 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Tablespace - 2
Có 2 loại tablespace • Bigfile tablespace:
– Mới có từ Oracle 10g – Chỉ chứa 1 datafile (dung lượng lên tới 32TB) – Phù hợp cho CSDL lớn – Ví dụ:
• Smallfile tablespace:
– Một tablespace chứa nhiều datafile – Dung lượng tối đa 32GB – Ví dụ:
4-4 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Sử dụng OMF (Oracle Managed File)
Giúp DBA quản lý các tablespace mà không cần phải quan tâm tới datafile Ví dụ:
Oracle tự động tạo datafile có tên không trùng nhau Sau khi sử dụng OMF, DBA chỉ cần khai báo tablespace một cách ngắn gọn:
4-5 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Tablespace mặc định
Khi tạo mới một CSDL, mặc định Oracle server tạo 2 tablespace SYSTEM, SYSAUX
• SYSTEM: lưu trữ data dictionary • SYSAUX: lưu trữ các đối tượng xử lý các chức năng Oracle cung cấp sẵn, ví dụ: XMLDB, …
Một DB bắt buộc phải có:
• SYSTEM, SYSAUX, TEMP
4-6 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Tablespace tạm
Dùng cho các segment tạm Segment tạm thường phát sinh khi gặp các phép toán: ORDER BY, GROUP BY, CREATE INDEX,… Ví dụ:
4-7 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Undo tablespace
Chứa các undo segment, dùng cho các trường hợp:
• Rollback transaction tường minh với câu lệnh
ROLLBACK
• Rollback transaction không tường minh (phục hồi dữ
liệu sau khi database bị lỗi) Tái cấu trúc dữ liệu
• • Phục hồi dữ liệu sau khi bị lỗi logic
Ví dụ:
4-8 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Xóa tablespace
Câu lệnh xóa:
INCLUDING CONTENTS: xóa các table, index… trong tablespace Mặc định, Oracle chỉ xóa tablespace mà không xóa datafile, muốn xóa datafile thì sử dụng câu lệnh:
4-9 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Sửa tablespace - 1
Đổi tên tablespace
Thêm datafile vào tablespace (trong trường hợp là smallfile tablespace)
Chuyển tablespace sang trạng thái read-only
Chuyển tablespace sang trạng thái read-write
4-10 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Sửa tablespace - 2
Chuyển tablespace sang trạng thái offline
Chuyển tablespace sang trạng thái online
Thay đổi đường dẫn của datafile
Chuyển tablespace sang chế độ backup
• Sau khi backup xong thì bỏ chế độ backup
4-11 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Sử dụng EM để quản lý tablespace - 1
4-12 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Sử dụng EM để quản lý tablespace - 2
4-13 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Schema
Schema là tập hợp các đối tượng trong database được sở hữu bởi user nào đó Mỗi user chỉ có 1 schema và ngược lại
owns
HR schema
HR user
4-14 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Các đối tượng của schema
4-15 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Bảng
Bảng tạm:
Lưu trữ dữ liệu dùng riêng cho 1 session
• • Dữ liệu bị xóa khi kết thúc session hoặc transaction • Có thể thao tác dữ liệu, nối với với các bảng khác
như bình thường
Tạo bảng tạm
4-16 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Sử dụng EM để tạo bảng
Xác định tên schema
Xác định tên cột, kiểu dữ liệu, độ dài.
4-17 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Constraint
4-18 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Index
Là cấu trúc dữ liệu tùy chọn, xây dựng cho một bảng xác định Tăng tốc độ truy vấn dữ liệu Có thể tạo index cho một hay nhiều cột trong bảng (giá trị khóa) … WHERE key = 22
Key
Row pointer
22
22
Index
Table
4-19 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Cấu trúc khối trong tập tin dữ liệu
Khối #1 của tập tin dữ liệu HEADER
11
Nguyễn Lan
Hà Nội
100000
12
Lê Minh
Lào Cai
200000
13
Hải Châu
Hà Giang
700000
3
2
1
250/100 150/100
50/100
3
FREE SPACE FOOTER
Chiều dài header 50 bytes Chiều dài mỗi bản ghi không đổi là 100 bytes
11
ROWID=(1,1)
12
ROWID=(1,2)
13
ROWID=(1,3)
Khóa tìm kiếm = 12
4-20 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Các loại index
Có 2 loại index:
• B-tree index (mặc định)
– Sắp xếp giá trị khóa & ROWID dưới dạng B-tree – Phù hợp với những cột có ít giá trị giống nhau – Hỗ trợ “row locking” – Có 2 loại: unique và non-unique
• Bitmap
– Khóa và ROWID lưu dưới dạng bitmap – Phù hợp với những cột có nhiều giá trị giống nhau – Không hỗ trợ “row-locking”
4-21 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
B-Tree Index
Index entry
Root
Branch
Index entry header
Key column length
Leaf
Key column value
ROWID
4-22 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
B-Tree Index
4-23 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
4-24 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Bitmap Index
File 3
Table
Block 10
Block 11
Block 12
Index
Start ROWID
End ROWID
Key
Bitmap
4-25 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Index
Tạo index
Xóa index
Quản lý index
4-26 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Sử dụng EM để tạo index
4-27 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
View
LOCATION table
COUNTRY table
View
CREATE VIEW v AS SELECT location_id, country_name FROM locations l, countries c WHERE l.country_id = c.country_id AND c.country_id in ('AU','BR');
4-28 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
VIEW
Lệnh tạo VIEW
4-29 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
VIEW
Ví dụ
4-30 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
VIEW
Tạo view ở chế độ Read - Only
4-31 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
VIEW
Tạo view với WITH CHECK OPTION
4-32 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Quản lý view
Xóa view Có thể insert, update, delete dữ liệu trên view, ngoại trừ một số trường hợp:
4-33 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Sequence
Là một đối tượng trong schema dùng để tự động sinh ra các số nguyên theo thứ tự nào đó (thường dùng cho khóa chính) Đặc điểm
• Mỗi sequence có 1 tên xác định • Không gắn với 1 cột hay 1 bảng nào • Có thể tạo ra số nguyên theo thứ tự tăng hoặc giảm
dần đều
• Khoảng cách giữa 2 số nguyên do người dùng tùy đặt • Có thể quay vòng nếu giá trị sinh ra đã đạt ngưỡng
4-34 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Sequence …
INCREMENT BY
Các thuộc tính: • START WITH • • MAXVALUE • MINVALUE • CACHE
1 3 5 7 9 11 13 15 …
4-35 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Tạo sequence
4-36 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Quản lý sequence
Sửa sequence
• Có thể sửa các thuộc tính: INCREMENT BY,
MAXVALUE, MINVALUE, CYCLE, CACHE
• Không thể sửa: START WITH • Ví dụ:
Xóa sequence
Sử dụng sequence
4-37 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Synonym
Bí danh cho mọi đối tượng trong Oracle Ưu điểm:
• Đơn giản cho câu lệnh SQL • Không tốn không gian lưu trữ •
Tăng tính bảo mật
Ví dụ:
4-38 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
Data dictionary
Tables
Indexes Views
Users
Schemas
Procedures
and so on
SELECT * FROM dictionary;
4-39 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng
4-40 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng