You are on page 1of 68

PHÂN TÍCH, THIẾT KẾ

HỆ THỐNG THÔNG TIN

BÀI 04. THIẾT KẾ DỮ LIỆU

Phù Khắc Anh


TÓM TẮT NỘI DUNG
I. Thiết kế dữ liệu cấp cao
II. Thiết kế dữ liệu cấp thấp
III. Thiết kế mã
IV. Thiết kế dữ liệu vật lý
V. Bài tập

3/4/2015 2
I. Thiết kế
dữ liệu cấp cao
- Giúp sinh viên nhận xác định được cách thiết kế dữ liệu
cấp cao, độc lập với mô hình cài đặt và dùng chung cho
nhiều mô hình dữ liệu, chuyển đổi tổng quát hóa và chọn
lựa khóa chính

3/4/2015 3
II. Thiết kế dữ liệu cấp thấp

o Giúp sinh viên nhận định được


cách chuyển đổi kết quả của thiết
kế luận lý cấp cao sang một mô
hình dữ liệu nhất định

3/4/2015 4
III. Thiết kế mã
• Xác định cách thiết kế mã
cho dữ liệu

IV. Thiết kế dữ liệu vật



• Chuyển các mô tả dữ liệu
luận lý sang các đặc tả kỹ
thuật nhằm lưu trữ và truy
xuất dữ liệu
3/4/2015 5
V. BÀI TẬP

3/4/2015 6
I.Thiết kế dữ liệu
• Chuyển đổi tổng quát hóa
• Lựa chọn tập con

3/4/2015 7
Chuyển đổi tổng quát hóa & tập
con
• Cần thiết khi
– Mô hình cài đặt không hỗ trợ
• Mô hình quan hệ, mạng, phân cấp…

• Xem xét
– Các đặc trưng kế thừa của thực-thể-chuyên-biệt
từ thực-thể-tổng-quát
• Thuộc tính, định danh, mối kết hợp
– Mối kết hợp tổng quát hóa

3/4/2015 8
Chuyển đổi tổng quát hóa & tập
con
• Phương án chọn lựa
– Dùng thực thể tổng quát
– Dùng thực thể chuyên biệt
– Dùng mối kết hợp

?
E’ R E

C
E1 E2
B

3/4/2015 9
Dùng thực thể tổng quát
• Các đặc trưng của thực-thể-chuyên-biệt sẽ
được chuyển sang thực-thể-tổng-quát
• Thêm thuộc tính LoạiE
– MGT(LoạiE) = {E, E1, E2, E1E2}

A
E
A
E’ R E B
C C
E1 E2
B Loại E

E’ R

3/4/2015 10
Ví dụ (1,1) Thuộc Mã BP
(1,n)
Tên BP
Mã NV (0,1) Quản
Tên NV NHÂN VIÊN BỘ PHẬN

(0,n) (t,e) (1,n) (1,1)
Phụ
Kỹ năng THƯ KÝ KỸ SƯ NV QLÝ
(0,1) trách
(0,n)
Sử Chuyên
dụng ngành SLượng NV
(0,n)
Mã PM
Tên PM PHẦN MỀM

Mã NV Loại NV (1,n)
(1,1) Thuộc
Tên NV Mã BP
SLượng NV NHÂN VIÊN (0,1) BỘ PHẬN
Tên BP
Chuyên ngành (0,n) Quản
Kỹ năng (0,n) Sử lý
(1,n)
dụng
(0,n) (0,1)
Phụ (1,1)
Mã PM PHẦN MỀM
Tên PM trách
3/4/2015 11
Dùng thực thể tổng quát (tt)
Ưu điểm Khuyết điểm

Gia
̉ i pháp đơn giả n nhất, không phát Có thê
̉ phát sinh ra 1 số lớn các giá trị
sinh thêm các mối kết hơ
̣ p rỗng cho các thuô ̣ c tı ́nh mà chı̉ dù ng
cho mô ̣ t loa
̣ i thư
̣ c thê
̉ tâ
̣ p con mà thôi

Áp du ̣ ng cho tất ca ̉ các cấu trúc tô


̉ ng Tất ca ̉ các tác vu ̣ muốn truy câ ̣ p đến
quát hóa như toà n bô ̣ (t) và bán phầ n mộ t thự c thể tâ
̣ p con pha ̉ i truy câ
̣ p toà n
(p), chồ ng lắp (o) và riêng biê
̣ t (e) bô
̣ tất ca ̉ các thự c thê
̉ tâ
̣ p con

Phát sinh thêm một số RBTV cần phải


kiểm tra

3/4/2015 12
Dùng thực thể chuyên biệt
• Chuyển đổi tất cả đặc trưng của
thực-thể-tổng-quát xuống các
thực-thể-chuyên-biệt
A A A
E’ R E E1 B E2 C

R R
C 1 2
E1 E2
B E’

(t,e) (t,o) (p,e) (p,o)

3/4/2015 13
Ví dụ (1,1) Thuộc
(1,n)
Mã BP
Tên BP
Mã NV (0,1) Quản
Tên NV NHÂN VIÊN BỘ PHẬN

(0,n) (t,e) (1,n) (1,1)
Phụ
Kỹ năng THƯ KÝ KỸ SƯ NV QLÝ
(0,1) trách
(0,n)
Sử Chuyên
dụng ngành SLượng NV
(0,n) Mã BP
Mã PM
Tên PM PHẦN MỀM Tên BP
(1,n) (1,n)
BỘ PHẬN
Tên PM Mã PM Thuộc1 Thuộc2 (1,n)

Kỹ năng (1,1) Thuộc3 (1,1)


(0,n) (1,1)
PHẦN MỀM KỸ SƯ (1,1)
(0,1) Phụ
(0,n) THƯ KÝ (1,n) (0,1) NV QLÝ trách
(0,n) Quản (0,1)
Sử (1,n) (1,n)
Chuyên lý 2 SLượng NV
Quản Quản
dụng ngành
lý 1 (0,1) lý 3

3/4/2015 14
Dùng thực thể chuyên biệt (tt)
Ưu điểm Khuyết điểm
Thuô ̣ c tı ́nh riêng cu
̉ a thư
̣ c thê ̉ tâ
̣ p con Cách cho ̣ n lư
̣ a nà y không áp du ̣ ng đươ ̣ c
chı̉ biê
̉ u diễn riêng cho loạ i thư
̣ c thể tâ
̣ p cho cấu trúc tổ ng quát hóa loa ̣ i chồ ng
con đó chéo (o) và bán phầ n (p), chı̉ dù ng
đươ
̣ c cho toà n phầ n (t) và riêng biê ̣ t (e)
Các tác vụ liên quan đến mô ̣ t loạ i thư
̣ c Quan niê ̣ m các thư ̣ c thê ̉ tâ
̣ p con trước
thê
̉ tâ ̣ p con chı̉ truy câ
̣ p đến loạ i thư ̣ c đây cù ng là chuyên biê ̣ t hóa cu
̉ a mộ t
thể tâ
̣ p con đó thư
̣ c thể tô ̉ ng quát không cò n nữ a.
Quan niê ̣ m nà y có thê ̉ là chủ yếu liên
quan đến mô ̣ t số xử lý

Nếu thuô ̣ c tı ́nh cu ̉ a thự c thê ̉ tô


̉ ng quát
là đáng kể thı̀ sư ̣ lậ p lạ i trong lượ c đồ
đáng xem xét la ̣ i

Các tác vụ trước đây thao tác lên thư ̣ c


thể tô
̉ ng quát nay pha ̉ i thao tác lên tất
ca
̉ các thư
̣ c thê
̉ tậ p con

3/4/2015 15
Lựa chọn chuyên biệt | tổng quát
10.100
Mã NV
Tên NV NHÂN VIÊN
Số CMND

100 (t,e) 10.000


Ngày sinh
Địa chỉ Ngày bắt đầu
NV_VPHÒNG CÔNG NHÂN Bậc nghề
Trình độ văn hóa
Chuyên ngành tốt
nghiệp Ngọai ngữ

Xử lý Tần suất Chọn lựa tối ưu


(o1) Tính lương sản phẩm cho công nhân phân xưởng 2/ tháng Tách (gộp)
(o2) Tính lương cho nhân viên văn phòng 1/tháng Tách
(o3) Tìm kiếm thông tin về công nhân 1000/ngày Tách (gộp)
(o4) Tổng hợp danh sách chung của toàn bộ nhân viên 5/tháng Gộp
(o5) Truy xuất thông tin nhân viên văn phòng 20/tháng Tách

3/4/2015 16
Lựa chọn chuyên biệt | tổng quát
• Phụ thuộc
– Dung lượng
• Gộp: dung lượng lớn
• Tách: dung lượng tối ưu
– Xử lý
• Ưu tiên các xử lý có tần suất cao
• Ví dụ
• Nếu ưu tiên o4 : gộp
• Nếu ưu tiên o2, o3: tách

3/4/2015 17
Dùng mối kết hợp
• Bỏ tổng quát, chuyên biệt
• Tạo mối kết hợp từ thực-thể-tổng-quát đến
thực-thể-chuyên-biệt

A A
E’ R E E’ R E
(0,1)
(0,1)

C R R
E1 E2
(1,1) (1,1)
B
E1 E2
B C

3/4/2015 18
Ví dụ (1,1) Thuộc
(1,n)
Mã BP
Tên BP
Mã NV (0,1) Quản
Tên NV NHÂN VIÊN BỘ PHẬN

(0,n) (t,e) (1,n) (1,1)
Phụ
Kỹ năng THƯ KÝ KỸ SƯ NV QLÝ
(0,1) trách
(0,n)
Sử Chuyên
dụng ngành SLượng NV
(0,n)
Mã PM Mã BP
Tên PM PHẦN MỀM Tên BP
(1,1) Thuộc (1,n)
Mã NV BỘ PHẬN
NHÂN VIÊN (0,1)
Tên PM Mã PM Tên NV Quản
(0,1) (0,1) lý
PHẦN MỀM (0,1)
Lquan1 Lquan2 Lquan3 (1,1)
(1,n)
(0,n) Phụ
(0,n) (1,1) (1,1) (1,1) trách
Sử THƯ KÝ KỸ SƯ NV QLÝ
dụng (0,1)

Kỹ năng Chuyên ngành SLượng NV


3/4/2015 19
Dùng mối kết hợp (tt)
Ưu điểm Khuyết điểm

Có thê
̉ mô hı̀nh tất cả các loa
̣ i cấu trúc Lươ ̣ c đồ kết qua ̉ khá phứ c ta ̣ p. Vı ́ du ̣

̉ ng quát hóa toà n bô
̣ / bán phầ n và như thêm mô ̣ t thể hiê ̣ n cho mô ̣ t thư ̣ c
chồ ng chéo / riêng biê ̣ t thê
̉ tâ ̣ p con phả i thêm mới mô ̣ t thể hiệ n
cho quan hê ̣ và mô ̣ t thể hiê
̣ n cho thư ̣ c
thể tổ ng quát hóa

Rất uyê ̉ n chuyể n khi thay đô


̉ i yêu cầ u Pha
̉ i chấp nhâ ̣ n sư
̣ dư thừ a khi biê
̉ u diễn
cu
̉ a ứ ng dụ ng mối liên kết IS-A thà nh mối kết hợ p

3/4/2015 20
II. Thiết kế luận lý dữ liệu cấp
thấp
• Chuẩn bị
– Loại bỏ định danh ngoài
– Loại bỏ thuộc tính đa trị và thuộc tính kết hợp

• Chuyển đổi mô hình thực thể kết hợp sang


mô hình quan hệ

3/4/2015 21
Loại bỏ định danh bên ngoài

A A
E1 E1
B B
(1,1)
C

C C
E2 E2
D D

3/4/2015 22
Ví dụ
Tầng Tầng
Loại phòng Loại phòng

Diện tích PHÒNG Diện tích


PHÒNG
Số phòng Số phòng
(1,1)
Mã số TN

Thuộc
(1,n)
Mã số TN Mã số TN
TÒA NHÀ TÒA NHÀ
Tên tòa nhà Tên tòa nhà
Địa chỉ Địa chỉ
Tổng số Tổng số
phòng phòng

3/4/2015 23
Loại bỏ thuộc tính kết hợp

A
E
A B1
E
B1 B2
B B3
B2
B3
A
E
B (B1+B2+B3)

3/4/2015 24
Ví dụ
Tên NK Tên NK
NHÂN KHẨU Ngày sinh NHÂN KHẨU Ngày sinh
Quê quán Quê quán
Số CMND Số CMND
Nơi cấp Ngày lập
CMND Ngày lập
Nơi cấp

Mã NV Mã NV
NHÂN VIÊN Tên NV NHÂN VIÊN Tên NV
Trình độ văn hóa Trình độ văn hóa
Số nhà Địa chỉ
Địa chỉ Đường
Phường
Quận
Thành phố

3/4/2015 25
Loại bỏ thuộc tính đa trị
• Thuộc tính đa trị ở thực thể

(0,n) (0,n) (1,1) A


E A E R EA
(1,n)

3/4/2015 26
Ví dụ
Mã NV
NHÂN VIÊN Tên NV
(0,n) Số ĐT

Tên NV Mã NV

(1,1)
NHÂN VIÊN Của ĐiỆN THOẠI
(0,n)
Số ĐT

3/4/2015 27
Loại bỏ thuộc tính đa trị (tt)
• Thuộc tính đa trị ở mối kết hợp
– (a) R là mối kết hợp 1-1
• EA sẽ có định danh của E1 hoặc E2 kết hợp với RA
– (b) R là mối kết hợp 1-N
• EA sẽ có định danh của E1 kết hợp với RA
– (c) R là mối kết hợp N-N
• EA sẽ có định danh của E1 và E2 kết hợp với RA
A A A
E1 E1 EA (a) (b)

(0,n) RA
R RA R

A
B EA (c)
E2 B E2 B
3/4/2015 RA 28
Ví dụ
Ngày sinh Tên SV Mã SV

(1,n) Tên MH
Họ
SINH VIÊN MÔN HỌC Số học phần
(0,n) c
(0,n)
Điểm

Ngày sinh Tên SV Mã SV

(1,n) Tên MH
H
SINH VIÊN MÔN HỌC Số học phần
(0,n) ọc

Tên MH
ĐiỂM Mã SV

Điểm số
3/4/2015 29
Chuyển mô hình ER → Quan hệ
• Chuyển đổi thực thể
• Chuyển đổi mối kết hợp

3/4/2015 30
Chuyển đổi thực thể
• 1 thực thể → 1 quan hệ
• Thuộc tính → thuộc tính
• Định danh → khóa chính

Ngày sinh Tên SV Mã SV

SINH VIÊN SINH_VIÊN(MA_SV, TEN_SV, NGAY_SINH)

Tên MH
MÔN HỌC MÔN_HỌC(TÊN_MH,
Số học phần SỐ_HỌC_PHẦN)

3/4/2015 31
Chuyển đổi mối kết hợp
• Qui tắc chung

A
A E1
E1

E3 R RA
R RA

C E2 B
E2 B

R(A, B, RA) R(A, B, C, RA)

3/4/2015 32
Chuyển đổi mối kết hợp (tt)
• Mối kết hợp 1-1
A A
A E1 E1
E1
(0,1) (1,1)
(0,1)
R RA R RA
R RA
(0,1) (1,1)
(1,1)
E2 B E2 B
E2 B

E1(A,…)
E1E2(A, B,…) : A là khóa
E1(A,…) B là thuộc tính
E2(B,…, A): A là
E2(B,…, A) : A khóa
Hoặc
làkhóa
Hoặc
E1E2(A, B,…): B là khóa
E1(A,…, B): B là A là thuộc tính
khóa

3/4/2015 E2(B,…) 33
Ví dụ

(0,1) Của
(1,1)
Tên NV Mã số LL
NHÂN VIÊN LÝ LỊCH
Địa chỉ Quê quán
Điện thọai Ngày sinh
Nơi sinh
Mã NV

NHÂN_VIÊN(MA_NV, TÊN_NV, ĐỊA_CHỈ, ĐiỆN_THOẠI)

LÝ_LỊCH(MÃ_SỐ_LL, QUÊ_QUÁN, NGÀY_SINH, NƠI_SINH, MA_NV)

3/4/2015 34
Ví dụ (tt)
Của
(1,1) (1,1)
Mã KH Số CNMD_ĐD
KHÁCH_HÀNG NGƯỜI ĐẠI
Tên KH DiỆN Tên NĐD
Điện thọai Địa chỉ giao dịch
Tài khoản giao dịch

KH_NĐDIỆN (MÃ_KH, TÊN_KH, ĐiỆN_THOẠI, SO_CMND_ĐD, TÊN_NĐD,


ĐỊA_CHỈ_GIAO_DỊCH, TÀI KHOẢN_GIAO_DỊCH)

3/4/2015 35
Chuyển đổi mối kết hợp (tt)
• Mối kết hợp 1-N

A
E1
(1,n)
E1(A,…)
R
(1,1) E2(B,…, A)
E2 B

3/4/2015 36
Ví dụ

Mã KH
Số ĐH
Ngày đặt ĐƠN HÀNG Của KHÁCH HÀNG Tên khách hàng
(1,1) (1,n)
Trị giá Điện thoại
đơn hàng
Địa chỉ giao hàng

KHÁCH_HÀNG(MA_KH, TEN_KH, ĐiỆNTHOẠI,


ĐỊA_CHỈ_GH)

ĐƠN_HÀNG(SO_ĐH, NGÀY_ĐẶT, TRỊ_GIÁ_ĐH, MA_KH)

3/4/2015 37
Chuyển đổi mối kết hợp (tt)
• Mối kết hợp N-N

A
E1 E1(A,…)

R RA R(A, B, RA…)

E2 B
E2(B,…)

3/4/2015 38
Ví dụ
Đơn giá Số lượng
Mã số
Số HĐ
Tên NGK
Chi tiết
Ngày HĐ HOÁ ĐƠN NGK ĐVTính
(1,n) hóa đơn (0,n)
Trị giá Loại
Hiệu
Đơn giá bán

HÓAĐƠN(SỐ_HD, NGÀY_HD, TRỊGIÁ)

CHITIET_HD(SO_HD, MÃSỐ, SỐLƯỢNG, ĐƠN_GIÁ)

NGK(MÃSỐ, TÊN_NGK, ĐVTÍNH, LoẠI, HiỆU, ĐƠNGIÁ_BÁN)

3/4/2015 39
Chuyển đổi mối kết hợp (tt)
• Mối kết hợp đa phân
Tên SV Tên MH
SINH VIÊN (0,n) MÔN HỌC
Ngày sinh Số học phần
Địa chỉ Điểm
Mã SV Học

(0,n) (0,n)
Học kỳ
HỌC KỲ Năm
Ngày BĐ
Ngày KT

SINH_VIÊN(MÃ_SV, TÊN_SV, NGÀY_SINH,


ĐỊA_CHỈ)

MÔN_HỌC(TÊN_MH, SỐ_HỌC_PHẦN)

HỌC_KỲ(HỌC_KỲ, NĂM, NGÀY_BĐ, NGÀY_KT)

HỌC(MÃ_SV,
3/4/2015 TÊN_MH, HỌC_KỲ, NĂM, ĐIỂM) 40
Chuyển đổi mối kết hợp (tt)
• Mối kết hợp mở rộng
A
B

E1 E2
R1

C
R2 E3

R1(A,B, …)

R2(A,B,C,
…)

3/4/2015 41
Ví dụ

Địa chỉ Mã SV
Số học phần Mã MH SINH VIÊN
MÔN HỌC Tên sinh viên
Tên MH
(0,n)
(0,n)

(0,n) ĐĂNG
MỞ KÝ
MH Điểm
Học kỳ
Niên học HỌC KỲ (0,n)
(0,n)
Ngày bắt đầu (0,1)
Ngày kết thúc Mã lớp
LỚP
Tên lớp

Sĩ số
Mã GV PHÂN
GIÁO VIÊN
Tên GV CÔNG
(0,n)
3/4/2015 42
Ví dụ (tt)
MÔN_HỌC(MA_MH, TÊN_MH, SỐ_HP)

HỌC_KỲ(HỌC_KỲ, NIÊN_HỌC, NGÀY_BĐ, NGÀY_KT)

GIÁO_VIÊN(MÃ_GV, TÊN_GV)

SINH_VIÊN(MÃ_SV, TÊN_SV)

LỚP(MÃ_LỚP, TÊN_LỚP, SĨ_SỐ) Khóa chính quá


phức tạp

MỞ_MH(MÃ_MH, MÃ_LỚP, HỌC_KỲ, NIÊN_HỌC)

ĐĂNG_KÝ(MÃ_MH, MÃ_LỚP, HỌC_KỲ, NIÊN_HỌC, MÃ_SV, ĐiỂM)

PHÂN_CÔNG(MÃ_MH, MÃ_LỚP, HỌC_KỲ, NIÊN_HỌC, MÃ_GV)

3/4/2015 43
III.Thiết kế mã
• Tìm các hình thức mã hóa
– Mã quận, mã bưu điện
– Mã xe
– Mã sinh viên
– …

• Dễ dàng cho việc


– Quản lý và xử lý thông tin trong máy tính
– Nhận dạng và phân loại dữ liệu
• Phải được thiết kế trên cơ sở uyển chuyển và có
khả năng mở rộng

3/4/2015 44
Thiết kế mã (tt)
• Ngữ nghĩa của mã hóa
– Duy nhất
• Mã phải duy nhất để nhận dạng đối tượng dữ liệu
– Phân loại
• Phân loại dữ liệu thành các nhóm khác nhau, dựa trên mã
phân biệt được nhóm
– Sắp xếp
• Mã hóa thể hiện thứ tự của dữ liệu
– Kiểm tra
• Kiểm soát dữ liệu có được nhập đúng hay không

3/4/2015 45
Thiết kế mã (tt)
• Một số đặc điểm
– Vùng mã hóa: phạm vi mà mã được sử dụng
• Có liên kết với các hệ thông bên ngoài, mã nên là
chuẩn công nghiệp chung
• Trong cùng 1 đơn vị, mã có phạm vi toàn công ty
– Chu kỳ sử dụng
• Ước lượng 1 lượng mã cần đủ trong chu kỳ
– Ngữ nghĩa
• Có thể hiểu mã bởi các thành phần liên quan

3/4/2015 46
Ví dụ vùng mã hóa
• Mã môn học được thiết kế khác nhau trong
cùng 1 trường

TH201 - Thiết kế Cơ Sở Dữ Liệu CNTT201 - Thiết kế Cơ Sở Dữ Liệu

Khoa CNTT Phòng Đào Tạo

Gây ra 1 số hoạt động không cần thiết như : chuyển đổi mã liên quan đến kết
quả học tập trên môn học, …

3/4/2015 47
Ví dụ chu kỳ sử dụng
• Mã số sinh viên
Không dữ trữ 9 9 X X 9 9 9

01HC012 01TC012
01HC345 01TC345
00HC365 00TC365

Có dữ trữ 9 9 X X 9 9 9 9

Dự trữ 01HC0012
9 9 X X 9 9 9 9 01HC0345
00HC0365

3/4/2015 48
Ví dụ ngữ nghĩa
• Mã số sinh viên

9 9 9 9 9 9 9 0011037
0011456

0111230
Khóa Khoa Lớp Mã số thứ tự

3/4/2015 49
Một số loại mã
Tên mã Mô tả Ví dụ
Mã tuần tự Một số được gán một cách Mã số xe của tỉnh:
tuần tự 50 Thành phố HCM
60 Đồng Nai
62 Long An
63 Tiền Giang
Mã khối Một số được gán cho mỗi khối. Mã khách hàng của từng chi nhánh
Rồi một số sẽ được gán tuần được qui định như sau:
tự trong khối đó → thuận tiện 0001 khách hàng tại trung tâm
cho phân lọai dữ liệu 1000 khách hàng chi nhánh A
2000 khách hàng chi nhánh B
3000 khách hàng chi nhánh C

3/4/2015 50
Một số loại mã (tt)
Tên mã Mô tả Ví dụ
Mã thập phân Các đối tượng sẽ được mã Mã hóa phòng ban trong một công ty:
hóa từ 0 đến 9, rồi đến lượt 00 Ban giám đốc
thành viên của mỗi đối tượng 1 Bộ phận kinh doanh
này cũng sẽ được mã hóa từ
1 Nhóm 1
0 đến 9, ….
2 Nhóm 2
2 Bộ phận phát triển
10 Chi nhánh A
20 Chi nhánh B
30 Chi nhánh C
Mã theo ký số Mỗi ký số của mã sẽ gán cho Mã SV của trường ĐHKHTN TPHCM
một ngữ nghĩa ① ② ③④
01 1 1 100
01 2 1 120
① Năm ② Khoa ③ Lớp ④ số thứ tự

3/4/2015 51
Một số loại mã (tt)
Tên mã Mô tả Ví dụ
Mã gợi nhớ Chữ viết tắt hoặc biểu tượng Mã hóa lớp học của trường đại học như
của đối tượng được dùng để sau:
mã hóa 00TC Lớp tại chức khóa 2000
01TC Lớp tại chức khóa 2001
00HC Lớp hòan chỉnh khóa 2000
01HC Lớp hoàn chỉnh khóa 2001

Mã kiểm tra Dùng một ký số kiểm tra


thêm vào sau mỗi mã số

3/4/2015 52
Thiết kế dữ liệu vật lý

• Mục đích:
– Chuyển các mô tả dữ liệu luận lý sang các đặc tả
kỹ thuật nhằm lưu trữ và truy xuất dữ liệu
– Tạo một một thiết kế cho việc lưu trữ dữ liệu
nhằm cung cấp một hiệu năng phù hợp và đảm
bảo tính toàn vẹn, an toàn và khả năng phục hồi
của CSDL

3/4/2015
53
Thiết kế dữ liệu vật lý

➢Mô hình quan hệ ➢Kiểu dữ liệu thuộc tính


➢Khối lượng dữ liệu ➢Mô tả mẫu tin vật lý
➢Định nghĩa của thuộc tính ➢Tổ chức file
➢Yêu cầu về thời gian trả lời ➢Kiến trúc chỉ mục và CSDL
➢Nhu cầu về an toàn dữ liệu ➢Tối ưu hóa truy vấn
➢Nhu cầu về backup/resotore
➢Hệ quản trị CSDL sử dụng

3/4/2015 54
Thiết kế dữ liệu vật lý
• Thiết kế field
• Phân chia dữ liệu (partition)
• Gộp dữ liệu (demormalization)
• Thiết kế file dữ liệu vật lý

3/4/2015
55
Thiết kế dữ liệu vật lý
• Thiết kế field: đơn vị dữ liệu nhỏ nhất
• Thiết kế field bao gồm:
– Chọn kiểu dữ liệu: phải thỏa các tiêu chuẩn sau:
• Tối thiểu không gian lưu trữ
• Hiển thị tất cả tình huống giá trị
• Cải tiến việc toàn vẹn dữ liệu
• Hỗ trợ cho tất cả thao tác dữ liệu

3/4/2015
56
Thiết kế dữ liệu vật lý
• Thiết kế field – Chọn lựa khoá chính:
– Việc chọn lựa khóa chính trong mô hình luận lý
đôi khi không thuận tiện trong cập nhật
– Thêm một thuộc tính khóa không có ý nghĩa thực
tế (nonintelligent key) → hỗ trợ cho các phép
toán cập nhật tốt hơn thuộc tính khóa trước đó
– Ví dụ:
Intelligent key

Modern
SẢN_PHẨM (MÃ_SP, TÊN_SP, LOAI_SP, QUYCÁCH)
Nonintelligent key
M123
3/4/2015 M234 SẢN_PHẨM (SP_ID, MÃ_SP, TÊN_SP, LOAI_SP, QUYCÁCH)
57
Thiết kế dữ liệu vật lý
• Thiết kế field bao gồm:
– Ví dụ: SANPHAM MÃ_SP của table SANPHAM có
thể bị thay đổi mà không ảnh
SP_ Mã_SP Tên_SP Loại_SP Quycách hưởng đến table HÓAĐƠN có
ID
khóa ngọai tham chiếu đến
1 M123 Sản phẩm X M 12x4
SANPHAM
2 M234 Sản phẩm Y M 15x3
3 S012 Sản phẩm M S 12x2
4 L121 Sản phẩm N L 18x6
HÓAĐƠN
HD_ Số_HD Ngày_HD SP_ID SLượng Đơn giá
ID
1 001/HD 1/1/2004 1 10 200
2 002/HD 1/1/2004 1 5 200
3 003/HD 2/1/2004 2 120 120
4 004/HD 3/1/2004 4 200 700
3/4/2015
58
Thiết kế dữ liệu vật lý
• Thiết kế field – Chọn lựa khoá chính:
– Khoá chính phức tạp sẽ làm giảm tốc độ truy cập
CSDL trong máy tính→ chọn lựa khoá chính thay
thế (nonintelligent key) đơn giản và hiệu quả hơn
– Ví dụ:
Khoá chính luận lý (intelligent key)

ĐĂNG_KÝ(MÃ_MH, MÃ_LỚP, HỌC_KỲ, NIÊN_HỌC, MÃ_SV, ĐiỂM)


Khoá chính mới (nonintelligent key)
ĐĂNG_KÝ(DKY_ID, MÃ_MH, MÃ_LỚP, HỌC_KỲ, NIÊN_HỌC, MÃ_SV, ĐiỂM)

Tổ hợp các thuộc tính này được cài đặt là một


khoá
3/4/2015
59
Thiết kế dữ liệu vật lý
• Phân chia dữ liệu (partition)
– Phân chia theo chiều ngang (horizontal partition):
phân chia các dòng trong một table thành nhiều
table khách nhau
– Tình huống áp dụng: khi nhiều người dùng khác
nhau cần truy cập các dòng dữ liệu khác nhau
– Ưu điểm:
• Tối ưu hóa tốc độ truy cập dữ liệu
– Nhược điểm
• Phức tạp khi phải truy cập toàn bộ dữ liệu

3/4/2015
60
Thiết kế dữ liệu vật lý
• Phân chia dữ liệu (partition)
– Ví dụ:
HOA_DON KL: ~10.000.000/năm
Số_HD Ngày_HD Diễn_giải Trị giá
Các xử lý truy cập dữ liệu
Hd00001 1/1/04 Xxxxxx 1.000.000
Mã Tên xử lý Tần suất
Hd00002 2/1/04 Yyyyyyy 2.000.000 số
…. O1 Tìm hóa đơn 100/ngày
Hd15000 1/1/05 Zxzxzzxzx 1.400.000 O2 Tính doanh thu tháng 1/tháng
Hd15001 2/1/05 Qqqqqqqq 2.100.000 O3 Tính doanh thu theo 100/tháng
… khách hàng
Hd30000 2/1/06 Asasasas 12.000.000 O4 Tổng hợp doanh số năm 1/năm
Hd30001 2/1/06 Dsdsdsds 1.000.000
O5 Lập biểu đồ so sánh 1/năm
doanh số theo các năm

3/4/2015
61
Thiết kế dữ liệu vật lý
• Phân chia dữ liệu
(partition) Tách table HOA_DON theo năm
– Ví dụ: Các phép tóan o1, o2, o4 hiệu quả
hơn
HD004
Số_HD Ngày_HD Diễn_giải Trị giá
HOA_DON KL: ~10.000.000/năm Hd00001 1/1/04 Xxxxxx 1.000.000
Số_HD Ngày_HD Diễn_giải Trị giá Hd00002 2/1/04 Yyyyyyy 2.000.000
Hd00001 1/1/04 Xxxxxx 1.000.000
Hd00002 2/1/04 Yyyyyyy 2.000.000 HD005
…. Số_HD Ngày_HD Diễn_giải Trị giá
Hd15000 1/1/05 Zxzxzzxzx 1.400.000 Hd15000 1/1/05 Zxzxzzxzx 1.400.000
Hd15001 2/1/05 Qqqqqqqq 2.100.000 Hd15001 2/1/05 Qqqqqqqq 2.100.000

Hd30000 2/1/06 Asasasas 12.000.000 HD006
Hd30001 2/1/06 Dsdsdsds 1.000.000 Số_HD Ngày_HD Diễn_giải Trị giá
Hd30000 2/1/06 Asasasas 12.000.000
Hd30001 2/1/06 Dsdsdsds 1.000.000
62
3/4/2015
Thiết kế dữ liệu vật lý
• Phân chia dữ liệu (partition)
– Phân chia theo chiều dọc (vertical partition):
• Phân chia một cấu trúc luận lý thành những cấu trúc
lưu trữ vật ký khác nhau
• Ví dụ:

KHÁCH_HANG(MÃ_KH, TÊN_KH, DCHI, DT, TAIKHOAN, MASOTHUE,


PTTTOAN, MUC_NO, CONG_NO)

KH1(MA_KH, TEN_KH, DCHI) KH2(MA_KH,DT, TAIKHOAN, MASOTHUE,


PTTTOAN, MUC_NO, CONG_NO)

Cấu trúc truy cập thường xuyên Cấu trúc truy cập không thường xuyên

3/4/2015
63
Thiết kế dữ liệu vật lý
• Gộp dữ liệu (denormalization)
– Mục tiêu:
• Tối ưu hóa truy vấn dữ liệu
– Hạn chế:
• Phát sinh trùng lắp dữ liệu
• Kiểm soát tính nhất quán dữ liệu

3/4/2015
64
Thiết kế dữ liệu vật lý
• Gộp dữ liệu (denormalization)
– Gộp 2 quan hệ liên kết 1-1
SINH_VIÊN(MÃ_SV, TEN_SV, CHUYEN_NGANH)

HỒSƠ_HBỔNG(MÃ_HS, NGÀY_HS, KHẢ_NĂNG,MA_SV)

Xử lý Dữ liệu liên quan


O1 MÃ_SV, TEN_SV, CHUYEN_NGANH, NGÀY_SINH,
KHẢ_NĂNG
O2 TEN_SV, NGÀY_HS, KHẢ_NĂNG

SINH_VIÊN(MÃ_SV, TEN_SV, CHUYEN_NGANH, NGÀY_HS, KHẢ_NĂNG)

3/4/2015
65
Thiết kế dữ liệu vật lý
• Gộp dữ liệu (denormalization)
– Gộp 2 quan hệ liên kết 1-N

Mã_SV Tên_SV … MA_CN Mã_CN Tên_CN


991100 N.V. A … HTTT HTTT Hệ thống thông tin
991101 N.T.B … CNPM CNPM Công nghệ phần mềm
991112 P.V.C … CNPM MMT Mạng máy tính
991120 T.T.N … HTTT CNTT Công nghệ tri thức
991200 T.V.M … CNPM

Truy vấn thường xuyên:


- Q1 (Mã_SV, TÊN_SV, TÊN_CN)

3/4/2015
66
Thiết kế dữ liệu vật lý
• Gộp dữ liệu (denormalization)
– Gộp 2 quan hệ liên kết 1-N
Mã_SV Tên_SV … MA_CN Tên_CN
991100 N.V. A … HTTT Hệ thống thông tin
991101 N.T.B … CNPM Công nghệ phần mềm
991112 P.V.C … CNPM Công nghệ phần mềm
991120 T.T.N … HTTT Hệ thống thông tin
991200 T.V.M … CNPM Công nghệ phần mềm

Truy vấn thường xuyên:


- Q1 (Mã_SV, TÊN_SV, TÊN_CN) Trùng lắp thông tin

Cấu trúc gộp trên sẽ tối ưu hơn cho truy vấn Q1, nhưng sẽ dẫn đến
trùng lắp thông tin 67
3/4/2015
CÂU HỎI ?

3/4/2015 68

You might also like