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