CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
TỔ CHỨC LƯU TRỮ CSDL
Giảng viên: Đỗ Ngọc Như Loan Biên soạn: Nguyễn Thị Uyên Nhi
K H O A C Ô N G N G H Ệ T H Ô N G T I N
Mục tiêu
● Hiểu được cách tổ chức lưu trữ CSDL trong SQLServer
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
2
NT Uyên Nhi
● Vận dụng để tổ chức CSDL
1. Tổ chức CSDL trong SQL Server
1. Tổ chức vật lý của CSDL trong SQL Server
2. Tổ chức các nhóm tập tin (File Group)
4. Database snapshot
3. Schema
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
3
NT Uyên Nhi
5. Tổ chức bảng dữ liệu phân hoạch (Partitioned Table)
1.1 Tổ chức vật lý của CSDL
– Tập tin chứa dữ liệu (Master Data File)
– Tập tin chứa sổ ghi giao dịch (Log Data File)
● Các loại tập tin
Log file: .ldf
Datafile: .mdf or .ndf
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
4
NT Uyên Nhi
1.1 Tổ chức vật lý của CSDL (tt.)
– Chứa dữ liệu của table, index, …
– Kiểu qui ước là MDF
– Khi tập tin MDF đầy, có thể bổ sung thêm các tập tin phụ có kiểu NDF
(secondary data file)
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
5
NT Uyên Nhi
● Tập tin dữ liệu
1.1 Tổ chức vật lý của CSDL (tt.)
– Ghi nhận lại tất cả các giao dịch trên CSDL
– Kiểu qui ước là LDF
– Có thể có nhiều tập tin có kiểu LDF
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
6
NT Uyên Nhi
● Tập tin sổ ghi giao dịch
1.1 Tổ chức vật lý của CSDL (tt.)
Tiến trình ghi sổ (Logging Process)
Các sửa đổi được ghi
Yêu cầu thay đổi
1
nhận vào sổ ghi giao tác
dữ liệu được trình
trên đĩa
ứng dụng gởi đi
3
Buffer cache
Khi checkpoint xảy ra các
Các trang dữ liệu được định vị
giao tác đã commit được ghi
đọc vào buffer cache
được sửa đổi.
xuống database
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
7
NT Uyên Nhi
4 2
1.1 Tổ chức vật lý của CSDL (tt.)
– Tên CSDL
– Tên tập tin dữ liệu, tên tập tin ghi sổ giao dịch: tên tham chiếu và tên vật lý
– Kích thước khởi tạo ban đầu cho tập tin
– Các khả năng tăng trưởng của tập tin khi bị đầy
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
8
NT Uyên Nhi
● Tạo CSDL: cung cấp các thông tin
1.1 Tổ chức vật lý của CSDL (tt.)
– Cho phép tăng trưởng tự động
o Khi bị đầy thì tự động tăng trưởng
o Tăng theo tỷ lệ phần trăm hoặc theo số lượng MB
o Tăng không giới hạn hoặc tăng có giới hạn
– Không cho phép tăng trưởng
o Khi bị đầy thì không thể tăng trưởng thêm nữa
o Có thể tăng kích thước khởi tạo
o Tạo thêm các tập tin phụ
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
9
NT Uyên Nhi
● Các khả năng tăng trưởng của tập tin
1.1 Tổ chức vật lý của CSDL (tt.)
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
10
NT Uyên Nhi
1.1 Tổ chức vật lý của CSDL (tt.)
CREATE DATABASE QLBanHang
ON PRIMARY
FILENAME = 'C:\Data\QLBanHang.mdf' ,
( NAME = 'QLBanHang',
SIZE = 20480KB ,
LOG ON
FILEGROWTH = 1024KB )
( NAME = 'QLBanHang_log',
SIZE = 5120KB ,
FILENAME = 'C:\Log\QLBanHang_log.ldf' ,
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
11
NT Uyên Nhi
FILEGROWTH = 10%)
1. Tổ chức CSDL trong SQL Server
1. Tổ chức vật lý của CSDL trong SQL Server
2. Tổ chức các nhóm tập tin (File Group)
4. Database snapshot
3. Schema
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
12
NT Uyên Nhi
5. Tổ chức bảng dữ liệu phân hoạch (Partitioned Table)
1.2 Tổ chức File Group
● Cách tổ chức các tập tin dữ liệu thành một nhóm (mức logic)
● Thông qua File Group dữ liệu sẽ được lưu trữ trong các tập tin đặt
● CSDL luôn tồn tại một File Group tên là PRIMARY
– Có thể tạo ra các File Group khác
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
13
NT Uyên Nhi
trong các thư mục vật lý
1.2 Tổ chức File Group (tt.)
Dữ liệu mang tính lịch sử, dữ liệu
Các đối tượng người
được phân hoạch , các đối tượng
Các đối tượng hệ thống
dùng định nghĩa
người dùng định nghĩa khác
1 2 3
Các Filegroup
Tập tin sổ ghi (.ldf)
Các đối tượng hệ thống
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
14
NT Uyên Nhi
4
1.2 Tổ chức File Group (tt.)
FILENAME = 'C:\Data\QLBanHang02.ndf' , SIZE = 20480KB ,
--Tạo filegroup FG1 ALTER DATABASE QLBanHang ADD FILEGROUP FG1 GO --Thêm datafile QLBanHang02 vào FG1 ALTER DATABASE QLBanHang ADD FILE ( NAME = 'QLBanHang02',
FILEGROWTH = 1024KB )
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
15
NT Uyên Nhi
TO FILEGROUP FG1 GO
1.2 Tổ chức File Group (tt.)
USE QLBanHang GO
--Tạo table HANG_HOA trên filegroup FG1 CREATE TABLE HANG_HOA (mahh INT PRIMARY KEY, tenhh NVARCHAR(50)
--Thêm dữ liệu INSERT INTO HANG_HOA VALUES(1, N’Máy giặt’) --Liệt kê dữ liệu SELECT * FROM HANG_HOA
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
16
NT Uyên Nhi
) ON FG1 GO
1. Tổ chức CSDL trong SQL Server
1. Tổ chức vật lý của CSDL trong SQL Server
2. Tổ chức các nhóm tập tin (File Group)
4. Database snapshot
3. Schema
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
17
NT Uyên Nhi
5. Tổ chức bảng dữ liệu phân hoạch (Partitioned Table)
1.3 Schema
● Schema là một namespace đối với các đối tượng CSDL
● 1 schema định nghĩa 1 ranh giới mà trong đó tất cả các tên là duy nhất
● Bên trong một CSDL, tên của schema là duy nhất luôn có tên với
đường dẫn đầy đủ dạng server.database.schema.object là duy nhất
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
18
NT Uyên Nhi
● Luôn có một schema mặc định tên là dbo
1.3 Schema (tt.)
USE QLBanHang --Tạo schema DanhMuc CREATE SCHEMA DanhMuc --Tạo bảng HANG_HOA CREATE TABLE DanhMuc.HANG_HOA (mahh INT PRIMARY KEY,
tenhh NVARCHAR(50)
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
19
NT Uyên Nhi
) --Thêm dữ liệu INSERT INTO DanhMuc.HANG_HOA VALUES(1, N’Máy giặt’) --Liệt kê dữ liệu SELECT * FROM DanhMuc.HANG_HOA
1. Tổ chức CSDL trong SQL Server
1. Tổ chức vật lý của CSDL trong SQL Server
2. Tổ chức các nhóm tập tin (File Group)
4. Database snapshot
3. Schema
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
20
NT Uyên Nhi
5. Tổ chức bảng dữ liệu phân hoạch (Partitioned Table)
1.4 Database snapshot
thời điểm
● Là CSDL được tạo ra bằng cách chụp một CSDL khác ngay tại một
● CSDL được chụp gọi là CSDL nguồn
● Database snapshot chỉ được đọc (read only)
● CSDL nguồn nếu có thay đổi thì CSDL chụp được vẫn có các dữ liệu
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
21
NT Uyên Nhi
không bị thay đổi (ngay thời điểm chụp)
1.4 Database snapshot (tt.)
– Không thể drop database nguồn nếu chưa dropdatabase snapshots
– SQL Server Management Studio không hỗ trợ tạo database snapshot. Bạn
chỉ có thể tạo nó bằng Transact-SQL
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
22
NT Uyên Nhi
● Các hạn chế của Database snapshot
1.4 Database snapshot (tt.)
Source DB
Snapshot DB
SELECT …
Copy-On-Write
UPDATE …
SELECT …
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
23
NT Uyên Nhi
1. Tổ chức CSDL trong SQL Server
1. Tổ chức vật lý của CSDL trong SQL Server
2. Tổ chức các nhóm tập tin (File Group)
4. Database snapshot
3. Schema
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
24
NT Uyên Nhi
5. Tổ chức bảng dữ liệu phân hoạch (Partitioned Table)
1.5 Partitioned Tables
Dữ liệu được phân hoạch theo chiều ngang
2004
>= 2005
< 2003
2003
Sales.Orders
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
25
NT Uyên Nhi
1.5 Partitioned Tables
Hàm dùng định nghĩa các biên
Biên có thể lệch trái (LEFT) hoặc phải (RIGHT)
< 2003
2003
2004
>= 2005
CREATE PARTITION FUNCTION pf_OrderDate (datetime) AS RANGE RIGHT FOR VALUES ('01/01/2003', '01/01/2004', '01/01/2005')
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
26
NT Uyên Nhi
1.5 Partitioned Tables
Hàm dùng định nghĩa các biên
Biên có thể lệch trái (LEFT) hoặc phải (RIGHT)
<= 2003
2004
2005
> 2005
CREATE PARTITION FUNCTION pf_OrderDate (datetime) AS RANGE LEFT FOR VALUES ('01/01/2003', '01/01/2004', '01/01/2005')
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
27
NT Uyên Nhi
1.5 Partitioned Tables
Khai báo gán các phân hoạch cho các File Group
Có thể định nghĩa File Group kế tiếp
< 2003
2003
2004
>= 2005
CREATE PARTITION SCHEME ps_OrderDate AS PARTITION pf_OrderDate TO (fg1, fg2, fg3, fg4, fg5)
[Các hệ CSDL- Tổ chức lưu trữ CSDL]
28
NT Uyên Nhi