CHƯƠNG 2: QUẢN TRỊ CSDL

1

GVPT: NGUYỄN THỊ MỸ DUNG SỐ TC: 2 SỐ TIẾT: LT: 20; TH: 20

Biên soạn: Nguyễn Thị Mỹ Dung

Chương 1: Tổng quan về SQL Server (LT: 2) Chương 2: Tạo và quản trị CSDL (LT: 6; TH: 6) Chương 3: Transact-SQL và truy vấn dữ liệu

(LT: 6: TH: 8)

Chương 4: Lập trình với Transact-SQL (LT: 4:

TH: 4)

Chương 5: Bảo Mật và Phân Quyền (LT: 2;

TH: 2)

2

Chương 6: Kết nối CSDL (Tự học)

Biên soạn: Nguyễn Thị Mỹ Dung

1

CHƯƠNG 2: QUẢN TRỊ CSDL

3

I. Cấu trúc các file của database II. Một số vấn đề thiết kế CSDL III. Thiết kế CSDL IV. Thiết kế bảng dữ liệu V. Import/ Export CSDL Bài tập chương 2

Biên soạn: Nguyễn Thị Mỹ Dung

1. Cấu trúc CSDL

SQL Server quản lý trực tiếp các CSDL, danh sách mỗi Server sẽ gồm danh sách các tên CSDL, tên các CSDL là duy nhất, không trùng nhau.

Cơ sở dữ liệu trong SQL Server lưu trữ theo 2

phần: phần dữ liệu (gồm một tập tin bắt buộc *.mdf [và các tập tin phụ *.ndf ]) và phần nhật ký (*.ldf). Như vậy một cơ sở dữ liệu có ít nhất 2 tập tin.

Cấu trúc logic trong CSDL gồm các table, view

4

và các object khác.

Biên soạn: Nguyễn Thị Mỹ Dung

2

CHƯƠNG 2: QUẢN TRỊ CSDL

5

Cấu trúc một CSDL như sau:

Biên soạn: Nguyễn Thị Mỹ Dung

2. Sơ đồ quản trị CSDL của SQL Server SQL Server chia thành 2 loại:

Lưu trữ các thông tin login, cấu hình hệ thống, thông tin quản trị CSDL,...

6

- CSDL hệ thống (do hệ thống tạo ra) Lưu trữ các tab le tạm thời, - CSDL người dùng (do người dùng tạo ra) các thủ tục,... phục vụ cho các User

Biên soạn: Nguyễn Thị Mỹ Dung

3

CHƯƠNG 2: QUẢN TRỊ CSDL

3. Cấu trúc File Database Tập tin lưu trữ một CSDL trong SQL Server có 2

7

loại: -- Primary Primary datadata filefile: Là file chính lưu trữ dữ liệu (*.mdf = Master Data File), mỗi CSDL có một file primary, lưu trữ điểm bắt đầu của một CSDL và các điểm kết nối đến các file lưu trữ tiếp theo. -- LogLog filefile: Là loại tập tin lưu trữ thông tin nhật ký của CSDL.

Biên soạn: Nguyễn Thị Mỹ Dung

1. Phân loại dữ liệu Có ba loại: dữ liệu cơ sở (chỉ thêm vào nhưng không thay đổi), dữ liệu gốc (phát sinh rất nhiều), và dữ liệu tạm thời (có thể xóa khi không cần).

2. Thiết kế các bảng trong CSDL Xác định tên CSDL, tên bảng, tên thuộc tính,

kiểu dữ liệu, khóa chính, khóa ngoại, RBTV

8

3. Nơi lưu trữ dữ liệu 4. Cách thức trao đổi và truyền dữ liệu

Biên soạn: Nguyễn Thị Mỹ Dung

4

CHƯƠNG 2: QUẢN TRỊ CSDL

1/ Tạo CSDL

Để tạo một cơ sở dữ liệu người dùng, các

 Người sở hữu hoặc người tạo cơ sở dữ liệu  Kích thước của cơ sở dữ liệu  Các tập tin và nhóm các tập tin được sử dụng

thông tin sau được yêu cầu:  Tên của cơ sở dữ liệu

9

để lưu trữ cơ sở dữ liệu

Biên soạn: Nguyễn Thị Mỹ Dung

Cú pháp để tạo một cơ sở dữ liệu người dùng là:

10

CREATE DATABASE database_name [ ON [ PRIMARY ] [ [ ,...n ] [ , [ ,...n ] ] [ LOG ON { [ ,...n ] } ] ] [ COLLATE collation_name ] ] [;]

Biên soạn: Nguyễn Thị Mỹ Dung

5

CHƯƠNG 2: QUẢN TRỊ CSDL

Ví dụ để tạo một CSDL:

CREATE DATABASE Customer_DB ON PRIMARY ( NAME = N’Customer_DB’, FILENAME = N’ C:\Program Files\Microsoft SQL Server\MSSQL.1\ MSSQL\Data\Customer_DB.mdf’) LOG ON ( NAME = N’Customer_DB_log’, FILENAME = N’ C:\Program Files\Microsoft SQL Server\MSSQL.1 \MSSQL\Data\Customer_DB_log.ldf’) COLLATE SQL_Latin1_General_CP1_CI_AS

11

Biên soạn: Nguyễn Thị Mỹ Dung

2/ Sao lưu CSDL

 Khái niệm

Sao lưu là công việc sao chép thông tin của database vào một thời điểm nhất định vào nơi lưu trữ khác.  Vấn đề

– Thật sự có nhu cầu cần sao lưu dữ liệu? – Chiến lược sao lưu dữ liệu?

 Phân loại

Có 4 loại sao lưu: Sao lưu toàn phần; Sao lưu một phần; Sao lưu bảng lưu vết của giao tác (transaction log); Sao lưu các bảng sao trong dữ liệu phân tán (duplicate data).

12

Biên soạn: Nguyễn Thị Mỹ Dung

6

CHƯƠNG 2: QUẢN TRỊ CSDL

 Cú pháp

BACKUP DATABASE TO DISK = ‘.bak’

DIFFERENTIAL: Sao lưu một phần, mặc định [ WITH {DIFFERENTIAL | } ] Trong đó: - DIFFERENTIAL là sao lưu toàn phần.

+ DESCRIPTION: ghi chú sao lưu + NAME: tên bảng lưu + PASSWORD: mật khẩu sao lưu + RETAINDAYS: ngày hết hạn của sao lưu tính từ thời điểm sao lưu + EXPIREDATE: hạn cuối của sao lưu + STOP_ON_ERROR|CONTINUE_AFTER_ERROR: ngừng khi gặp lỗi

v à ngược lại

+ STATS: phần trăm thể hiện trong quá trình sao lưu

13

- Các tham số có thể có (cách nhau dấu “,”):

Biên soạn: Nguyễn Thị Mỹ Dung

Ví dụ

VD1: Sao lưu toàn phần

BACKUP DATABASE qldiemsv TO DISK = 'E:\qldiemsv.bak' --WITH NAME = 'qldiemsv', STATS = 10

VD2: Sao lưu một phần

BACKUP DATABASE qldiemsv TO DISK = 'E:\qldiemsv.bak'

14

--WITH DIFFERENTIAL, NAME = 'qldiem', STATS = 10

Biên soạn: Nguyễn Thị Mỹ Dung

7

CHƯƠNG 2: QUẢN TRỊ CSDL

VD3: BACKUP DATABASE QUANLYBANHANG TO DISK= 'D:\ Hoadon_BK.bak' [WIT H DESCRIPTION = 'Backup database

Hoadon vào ổ đĩa D', STATS,

15

PASSWORD = 'sa', NAME = 'QLHANGHOA']

Biên soạn: Nguyễn Thị Mỹ Dung

3/ Khôi phục CSDL - Phục hồi hệ thống khi có sự cố hoặc thời điểm

bất kỳ nào đó, dù không có sự cố xảy ra.

- Tiết kiệm chi phí và thời gian.

Cú pháp:

RESTORE DATABASE FROM

+ STOP_ON_ERROR|CONTINUE_AFTER_ERROR + FILE + PASSWORD + RECOVERY | NORECOVERY

16

DISK = ‘path\filename.bak’ [WITH {}] - Các tham số:

Biên soạn: Nguyễn Thị Mỹ Dung

8

CHƯƠNG 2: QUẢN TRỊ CSDL

 Ví dụ VD1: RESTORE DATABASE qldiemsv FORM DISK =

'D:\qldiemsv.BAK‘

VD2: RESTORE DATABASE QLHANGHOA FROM DISK= 'D:\HANGHOA.bak' WITH FILE = 1, NORECOVERY, PASSWORD =

'sa', REPLACE

VD3: RESTORE DATABASE QLHANGHOA FROM DISK= 'D:\HANGHOA.bak' WITH RECOVERY, PASSWORD = 'sa', REPLACE

17

Biên soạn: Nguyễn Thị Mỹ Dung

4/ Sửa CSDL

 Sửa tên Database

ALTER DATABASE MODIFY

NAME =

VD: ALTER DATABASE QLDIEMSV MODIFYNAME

= QLDSV

 Ví dụ thay đổi quyền sở hữu của CSDL:

18

USE QLDIEMSV EXEC sp_changedbowner ‘sa’

Biên soạn: Nguyễn Thị Mỹ Dung

9

CHƯƠNG 2: QUẢN TRỊ CSDL

5/ Xoá CSDL

DROP DATABASE TênCSDL

Ví dụ:

DROP DATABASE QLBANHANG

6/ Chọn và mở database

USE TênCSDL

Ví dụ:

19

USE QLDSV

Biên soạn: Nguyễn Thị Mỹ Dung

Ví dụ: Cho các lược đồ quan hệ sau

 Sinhvien (MaSV, Hoten, Namsinh, QQ, Hocluc)  Detai (MaDT, TenDT, Chunhiem, Kinhphi)  SV_DT (MaSV, MaDT, Noi_AD, KQ)

Bảng dữ liệu mẫu như sau:

Sinhvien MaSv

Hoten

Namsinh

QQ

Hocluc

SV001 SV001

Thái Bình An Thái Bình An

19831983

Cần Thơ Cần Thơ

7.57.5

SV002 SV002

Lê Văn Khang Lê Văn Khang

19851985

Vĩnh Long Vĩnh Long

7.17.1

SV003 SV003

Trần Đức Thịnh Trần Đức Thịnh

19831983

Đồng Tháp Đồng Tháp

8.18.1

SV004 SV004

Bùi Quốc Vượng Bùi Quốc Vượng

19841984

Đồng Tháp Đồng Tháp

9.29.2

SV005 SV005

Lâm Nhân Nghĩa Lâm Nhân Nghĩa

19851985

Tiền Giang Tiền Giang

6.56.5

SV006 SV006

Hà Công Sự Hà Công Sự

19821982

Cần Thơ Cần Thơ

6.06.0

SV007 SV007

Hồ Phương Thanh Hồ Phương Thanh

19851985

An giang An giang

8.28.2

SV008 SV008

Vũ Thị Hảo Ý Vũ Thị Hảo Ý

19861986

Bạc Liêu Bạc Liêu

5.85.8

20

Biên soạn: Nguyễn Thị Mỹ Dung

10

CHƯƠNG 2: QUẢN TRỊ CSDL

Detai

MaDT

TenDT

Chunhiem

Kinhphi

DT001 DT001

Quản lý Nhân sự Quản lý Nhân sự

Nguyễn Thị Xuân Nguyễn Thị Xuân

1010

DT002 DT002

Web site Bán hàng qua mạng Web site Bán hàng qua mạng

Hồ Văn Quang Hồ Văn Quang

1515

DT003 DT003

Bảo mật trong thương mại điện tử Bảo mật trong thương mại điện tử

Trần Hiếu Hạnh Trần Hiếu Hạnh

2020

DT004 DT004

Quản lý lịch công tác trên mạng Quản lý lịch công tác trên mạng

Lê Đức Phúc Lê Đức Phúc

88

DT005 DT005

Bộ soạn thảo công thức toán học Bộ soạn thảo công thức toán học

Trần Hiếu Hạnh Trần Hiếu Hạnh

99

DT006 DT006

Web site đào tạo từ xa Web site đào tạo từ xa

Lê Đức Phúc Lê Đức Phúc

2525

SV_DT

MaSV

MaDT

Noi_AD

KQ

SV001 SV001

DT001 DT001

Đồng Tháp Đồng Tháp

9.59.5

SV002 SV002

DT002 DT002

Vĩnh Long Vĩnh Long

9.09.0

SV003 SV003

DT001 DT001

Trà Vinh Trà Vinh

9.09.0

SV004 SV004

DT002 DT002

Đồng Tháp Đồng Tháp

10.010.0

SV007 SV007

DT004 DT004

Trà Vinh Trà Vinh

9.09.0

SV008 SV008

DT003 DT003

Bạc Liêu Bạc Liêu

10.010.0

SV001 SV001

DT004 DT004

Đồng Tháp Đồng Tháp

9.59.5

SV008 SV008

DT002 DT002

Trà Vinh Trà Vinh

9.09.0

SV002 SV002

DT005 DT005

Cà Mau Cà Mau

8.58.5

SV001 SV001

DT005 DT005

Tiền Giang Tiền Giang

8.08.0

SV006 SV006

DT003 DT003

Đồng Tháp Đồng Tháp

9.59.5

21

Biên soạn: Nguyễn Thị Mỹ Dung

1/ Tạo bảng (Table)

CREATE TABLE (

[], [], … []

)

Các RBTV:

 NOT NULL  NULL  UNIQUE  PRIMARY KEY  FOREIGN KEY / REFERENCES

22

Biên soạn: Nguyễn Thị Mỹ Dung

11

CHƯƠNG 2: QUẢN TRỊ CSDL

Ví dụ: Lấy CSDL “sinh viên thực hiện đề tài”

CREATE TABLE SINHVIEN (

MASV CHAR(10) PRIMARY KEY, HOTENSV CHAR(40), NAMSINH INT, QUEQUAN CHAR(40), HOCLUC FLOAT

) CREATE TABLE DETAI(

MADT CHAR(10) PRIMARY KEY, TENDT CHAR(40), CHUNHIEM CHAR(40), KINHPHI INT

)

23

Biên soạn: Nguyễn Thị Mỹ Dung

CREATE TABLE SV_DT (

MASV CHAR(10) NOT NULL, MADT CHAR(10) NOT NULL, NOIA_D CHAR(40), KETQUA FLOAT, PRIMARY KEY (MASV, MADT), CONSTRAINT SVDT_SV FOREIGN KEY

(MASV) REFERENCES SINHVIEN(MASV),

CONSTRAINT SVDT_DT FOREIGN KEY

(MADT) REFERENCES DE_TAI(MADT)

)

24

Biên soạn: Nguyễn Thị Mỹ Dung

12

CHƯƠNG 2: QUẢN TRỊ CSDL

2/ Thay đổi thuộc tính bảng

Thêm cột: ALTER TABLE ADD

[]

Xóa cột: ALTER TABLE

DROP COLUMN

Mở rộng cột: ALTER TABLE

25

ALTER COLUMN

Biên soạn: Nguyễn Thị Mỹ Dung

Thêm RBTV: ALTER TABLE ADD CONSTRAINT , CONSTRAINT ,

Xóa RBTV:

ALTER TABLE DROP

Ví dụ:

CREATE TABLE HANGHOA(

MAHG CHAR(10), TENHANG CHAR(50), DVT CHAR(5),

26

Biên soạn: Nguyễn Thị Mỹ Dung

13

CHƯƠNG 2: QUẢN TRỊ CSDL

 Thêm thuộc tính bảng:

ALTER TABLE HANGHOA ADD

DONGIA FLOAT

 Mở rộng kiểu dữ liệu cho thuộc tính bảng:

ALTER TABLE HANGHOA

ALTER COLUMN DONGIA BIGINT

 Xóa thuộc tính bảng:

ALTER TABLE HANGHOA

27

DROP COLUMN DVT

Biên soạn: Nguyễn Thị Mỹ Dung

3/ Xóa bảng

DROP TABLE

Ví dụ:

28

DROP TABLE HANGHOA DROP TABLE SINHVIEN

Biên soạn: Nguyễn Thị Mỹ Dung

14

CHƯƠNG 2: QUẢN TRỊ CSDL

Sinh viên tự học LưuLưu ýý:: - Import/ Export:

thực hiện đối với phiên bản SQL Enterprise,… không hỗ trợ cho phiên bản Express.

- Import/Export dữ liệu sang Excel và Access. - Import/Export dữ liệu thao tác bằng lệnh và

29

click chọn.

Biên soạn: Nguyễn Thị Mỹ Dung

- Cấu trúc file CSDL (các thành phần trong

CSDL)

- Thiết kế CSDL

+ Tạo, sửa, xóa CSDL + Backup/ Restore CSDL

- Thiết kế bảng dữ liệu

+ Tạo, thêm, sửa, xóa bảng + Tạo, thêm, sửa xóa RBTV

30

- Import/ Export dữ liệu (Excel, Access)

Biên soạn: Nguyễn Thị Mỹ Dung

15