4. THIẾT KẾ LOGIC CSDL
4.2. Chuẩn hoỏ quan hệ
a.Cỏcbước tiếnhành:
B1. Từ một biểu mẫu (tài liệu xuất: hoỏ đơn, chứng từ,…) lấy ra một danh
Mỗi tiờu đề trong biểu mẫu là một thuộc tớnh.
Bỏ qua phần đầu đề và phần dưưới cựng (một số ghi chỳ, chữ ký …)
củabiểumẫu.
Khụng lấy cỏc thuộc tớnh đưược suy diễn từ những thuộc tớnh khỏc
(như thành tiền =đơn giỏ xsốlượng)và cỏc thuộc tớnhtrỡnh bày nhưư
‘số thứtự’nếucú.
Bổ sung thờm mộtsốthuộc tớnhđịnh danhtương ứng với mộtsốt huộc
tớnhtờngọichưa cúđịnhdanhnếucầnthiết.
Xỏcđịnhnhúmthuộc tớnhlặp,cỏcphụ thuộchàmgiữacỏc thuộctớ nh.
B2.Chuẩnhoỏ vềdạngchuẩn1(1NF):Tỏchnhúmthuộc tớnhlặp.
Tỏch cỏc thuộc tớnh khụng nằm trong nhúm lặp thành một qua n hệ
(R1).Xỏcđịnhkhoỏchớnhcủaquanhệnày.
Cỏc thuộc tớnh của nhúm lặp và khoỏ chớnh của quan hệ trờn (R1 ) tạo
thành một quan hệ (R2). Xỏc định khúa chớnh cho quan hệ R2 ( khoỏ
chớnh của R2 sẽ là một khoỏ ghộp giữa khoỏ của R1 và một thuộc tớnh
khỏc trongR2)
Vớ dụ: R{A, B, C, D, E} vàkhoỏ là {A}. Tồn tại nhúm thuộc tớn h lặp
{C,D}thỡtỏchthành2quanhệR1{A,B, E}vàR2{A,C,D}. B3.Chuẩn hoỏnvềdạngchuẩn 2(2NF): Loại bỏphụ thuộcbộ phậnvào khoỏ
(chỉỏpdụngvới cỏcquanhệcúkhoỏghộp.
Tỏch cỏc thuộc tớnh tham gia vào phụ thuộc hàm được xỏc định bởi
mộtphầncủa khoỏvào mộtquanhệmới (R3).Khoỏ chớnh củaqua n hệ
Phần cũn lại với khoỏ chớnh của quan hệ trờn (R3) là một quan hệ giữ
nguyờn khoỏchớnh nhưquanhệbanđầu.
Vớ dụ: R{A, B, C, D} và khoỏ là {A,B}. Tồn tại phụ thuộc hàm Aà C
thỡtỏchthành2quanhệR1{A,C}vàR2{A, B,D}.
B4.Chuẩn hoỏ vềdạngchuẩn3(3NF): Loại bỏphụ thuộc hàm giữacỏc t huộc
tớnhkhụngkhoỏ.
Tỏch cỏc thuộc tớnh tham gia vào phụ thuộc hàm giữa cỏc thuộc tớnh
khụng khoỏ vào một quan hệ mới (R4). Khoỏ chớnh của quan hệ là
thuộctớnhxỏcđịnh hàm.
Phần cũn lại và khoỏ chớnh của quan hệ trờn (R4) là một quan hệ giữ
nguyờnkhoỏchớnh củaquanhệban đầu.
Vớdụ: R{A, B, C, D} mà khoỏ là {A,B}. Tồntạiphụ thuộc hàm CàD
thỡtỏchthành2quanhệR1{C,D}vàR2{A,B, C}
b.Vớdụ
Hóy xõy dựng mụ hỡnh dữ liệu cho hệ thống từ mẫu phiếu xuất của cụ ng ty
thươngmạiYdưới đõy.
-Danh sỏchthuộc tớnh: sốPX,ngày,số đạilý, địachỉ,tờn hàng,đơn vịtớnh, đơn
giỏ,sốlượng.
-Bổsung thờmthuộc tớnhmó hàng.
-Phụthuộchàm:(quy địnhgiỏ bỏncủamặt hàngkhụngthayđổi) số PX -> ngày, mó KH
số đại lý -> địa chỉ
mó hàng -> tờn hàng, đơn vị tớnh, đơn giỏ {sốPX,mó hàng}->sốlượng
-Khoỏchớnh: sốPX.
Chuẩn hoỏ quan hệ:
Cỏc bản ghi logic biểu diễn cỏc quan hệ: ĐẠILí(sốđạilý,địa chỉ) PHIẾU XUẤT(sốPX, ngày,số đạilý)
HÀNG (móhàng,tờn hàng,đơnvịtớnh,đơngiỏ) HÀNG XUẤT (số PX, mó hàng, số lượng xuất) 4.3.Hoàn thiệnmụhỡnhCSDLlogic
a. Một số quy tắc
Sau khitiến hànhtheo haihướngkhỏc nhau: xõy dựngmụ hỡnh thực thể liờ nkết
và chuẩn hoỏ dữ liệu chỳng ta sẽ cú hai tập bản ghi logic khỏc nhau của cựng m ột hệ
thống.Khi đúcầnphảikết hợplạiđểcúmộtmụhỡnh CSDLlogicthốngnhấtch o hệ
thống.
Một số nguyờn tắc kết hợp:
Kiểm tra sự thống nhất về tờn gọi của cỏc quan hệ và cỏc thuộc tớnh
trong hai kết quả. Nếu cựng tờn những khỏc nghĩa thỡ phải đặt lạ i tờn 0NF 1NF 2NF 3NF Tờn gọi sốPX ngày sốđạilý địa chỉ *móhàng *tờnhàng *đơn vị tớnh *đơngiỏ *sốlượng số PX ngày sốđạilý địa chỉ số PX ngày sốđạilý địa chỉ số đại lý địa chỉ ĐẠI Lí số PX ngày sốđạilý PHIẾUXUẤT số PX mó hàng tờn hàng đơnvịtớnh đơngiỏ sốlượng mó hàng tờn hàng đơn vị tớnh mó hàng tờn hàng đơn vị tớnh HÀNG sđốơnPXgiỏ mó hàng sốlượng sđốơnPXgiỏ mó hàng sốlượng HÀNG XUẤT
cho khỏc nhau. Nếu cựngnghĩa nhưng khỏc tờn thỡ phải đặtlại tờn cho
giống nhau.
Lấy tất cả cỏc quan hệ khỏc nhau từ hai kết quả.
Với hai quan hệ trựng nhau thỡ lấy tất cả cỏc thuộc tớnh cú tron
g hai
quanhệtừ haikết quả.
b.Vớdụ:
Trong vớ dụ phần1 ta thuđược tập cỏc bản ghilogic mụ tả cỏcquan hệtron ghệ
thốngcụngty thươngmạiYlà: Nhúm1:
NHÀCUNG CẤP( mó NCC,tờnNCC, địa chỉ,điện thoại,fax) HÀNG (móhàng,tờn hàng,đơngiỏ,sốlượng, mụtả,móNCC,sốkho) KHO (sốkho, diệntớch,mụtả)
PHIẾU XUẤT (số phiếu, ngày xuất, số cửa hàng)
DềNG PHIẾUXUẤT(mó hàng, số phiếu,số lượng xuất) CỬAHÀNG(số cửa hàng, địađiểm, mụtả)
Trong vớ dụ phần2 ta thuđược tập cỏc bản ghilogic mụ tả cỏcquan hệtron g hệ
thốngcụngty thươngmạiYlà: Nhúm2:
ĐẠILí(sốđạilý,địa chỉ) PHIẾU XUẤT (số PX, ngày, số đại lý)
HÀNG (móhàng,tờn hàng,đơnvịtớnh,đơngiỏ)
DềNG PHIẾUXUẤT(số PX, mó hàng,số lượngxuất) Tathấy
Trongnhúm1cúthựcthể CỬAHÀNG vànhúm2cúthựcthể ĐẠ I Lí
làhai thựcthểkhỏc tờn nhưngcựngnghĩa.
Thuộc tớnh số phiếu và số PX, thuộc tớnh ngày xuất và ngày là c ựng
nghĩa.
NHÀ CUNG CẤP ( NCC, tờn NCC, địa chỉ, điện thoại, fax)mó
HÀNG (mó hàng, tờn hàng, đơn vị tớnh, đơn giỏ, số lượng, mụ tả, mó NCC, s ố
kho)
KHO (số kho, diện tớch, mụ tả)
PHIẾUXUẤT(sốphiếu, ngàyxuất,sốđạilý)
DềNG PHIẾU XUẤT (mó hàng, số phiếu, số lượng xuất) ĐẠI Lí (số đại lý, địa chỉ đại lý, mụ tả)
5.THIẾTKẾVẬTLíCSDL
5.1.Cỏcvấnđềliờn quankhithiếtkếvật lýCSDL
Phần thiết kế vật lý CSDL sẽ phụ thuộc vào một HQTCSDL mà bạn sẽ sử dụng
đểcài đặtCSDL.Chỳngta cầnchuyển từcỏc bảnghi logicvới cỏcthuộc tớnht hành
cỏcquan hệđược biểu diễndưới dạngbảngvới cỏc trường hay cỏc cột được cà iđặt
trong một HQTCSDL cụ thể.
Với mỗi bảng cần chỉ rừ:
Khoỏchớnh (cúthểgồm mộthaynhiềuthuộc tớnh). Mụtảcủa tấtcảcỏccột (trường).
Với mỗi cột (trường) cần phải cú:
Mộttờn duynhất(trongbảnglưugiữnú). Mộtmụtảngắngọn.
Một kiểu dữ liệu (vớ dụ: integer, char, date, logical,… phụ thuộc
vào
HQTCSDL cụ thể cài đặt CSDL)
Một kớch thước (mặc định hay chỉ rừ tuỳ từng kiểu dữ liệu)
Chỳ ý: tờn của bảng, cột khụng nờn quỏ dài, cần đủ nghĩa và th ường
khụngcúdấu.
Cỏc cột(trường)tuỳchọnvàcỏccột (trường)bắt buộc:
Nếucột làbắt buộcthỡ ngườisử dụngcầnphải cungcấpmộtgiỏ trị cho
cột này trong mỗi dũng (bản ghi) thờm vào bảng khi cập nhật C SDL.
Cột sẽ cần phải được chỉ rừ là NOT NULL
Nếu cột là tuỳ chọn thỡ nú cú thể nhận giỏ trị null.
Chỳ ý : cú thể lưu trữ một giỏ trị 0cho một cột tuỳ chọn khi nú k hụng
cúgiỏtrịnhữngcỏch nàykhụng phảilàcỏch hay. Khoỏchớnh vàcỏckhoỏngoài
Hầu hết cỏc HQTCSDL hiện đại cho phộp chỉ rừ khoỏ chớnh, khoỏ
ngoàikhiđịnh nghĩacỏcbảng.
Nếu cỏc HQTCSDL khụng cho phộp định nghĩa tự động thỡ cần phải
chỉ rừ. Khoỏ chớnh cần phải duy nhất và not null. Khoỏ ngoài cần phải
liờn quan tới một thể hiện của khoỏ chớnh đó cú hoặc là nhận gi ỏ trị
null.
Giỏ trị hợp lệ và giỏ trị mặc định
Vớ dụ:Một mó KH đượcđịnh nghĩa nằm trong khoảngtừ 1 đến 1000 (giỏ
trịhợp lệ).Giỏtrịmặcđịnh chosốlượng bỏnlà1(giỏtrịmặcđịnh). Thuận lợi của việc chỉ rừ giỏ trị hợp lệ là nú sẽ được gắn vào trong t ất cả
cỏcchương trỡnh khilập trỡnh.Đảm bảo sự thống nhất trong việckiể m tra
tớnhđỳngđắn củadữliệu.
Giỏ trị mặcđịnh cú thể được sử dụngđể giảm bớt việc gừmỏy cho n gười
sửdụng.Nú giỳp choviệcnhậpdữliệunhanhhơnvàgiảmbớt lỗi. Khoỏgiả
Đểtăngtốc độtỡmkiếm,tiếtkiệmkhụnggiannhớvàgiảmlỗi cỏc khoỏ
cần phải ngắn. Nếu một vài khoỏ quỏ dài cần phải thay chỳng bằng một
Cú hai vấn đề khi đưa ra một khoỏ giả:
Cần phải thiết lập một kỹ thuật để sinh tự động cỏc giỏ trị duy
nhấtchokhoỏ(sinhkhoỏtựđộng)
Cần phải cung cấp một ràng buộc duy nhất cho cỏc định dan h tự
nhiờn đểngănchặn việc lưutrữ mộtvài bảnghi cho cựngmột thực
thểcúcựngmộtdữliệunhưng chỉkhỏc nhauvềgiỏtrịkhoỏ. Cỏcquanhệ
Cỏcquanhệgiữacỏcbảngsẽđược thiếtlậpbởi cỏckhoỏngoài.
Cầnphải đảmbảolàcỏi ràngbuộckhoỏngoàisẽ đượccàiđặt. 5.2.Xemxột hiệusuấtthựcthiCSDL
Cần phải đỏnh giỏ việc thực thi CSDL, đú là tớnh hợp lý của thời gian đỏp ứng
cỏccõuhỏitruyvấn.
ChạythửCSDLvới mộttập đủlớn cỏcbản ghitrongmụitrườngthựctế.
Mụ phỏng một số người dựng cựng thực hiện một truy vấn trong CSD
L đa
người sửdụng.
Chạytrộnlẫn mộtsố chứcnăngvớithờigian quyđịnh.
a.Chỉsố
- Xỏc định một số chỉ số trong CSDL là một vấn đề quan trọng cần phải quan
tõm khithiết kếCSDL
Theoquyluật chungcầnphảicú
Mộtchỉ sốduynhấtcho mỗikhoỏchớnh
Một chỉ số trờn mỗi khoỏ ngoài
Những dữ liệu được truy nhập thường xuyờn cũng cần phải tạ o chỉ
số
Vớichỉ sốghộptrờn nhiềucột cầnphảicungcấpthứtựcỏccột. -Ưuvànhướcđiểmcủachỉsố
ưu điểm
Tăngtốc độtỡmkiếmvàkhụi phụccỏcbảnghi.
Cú hiệusuấtcaotrongviệctruynhậpnhiều bảng.
Tạo cỏc cỏch sắp xếp khỏc nhau trờn cựng một bảng.
Tạo nhiềumứcsắpxếp bằngcỏch tạomộtchỉ sốtrờnmộtsốcột .
Nhược điểm
Cầnnhiềukhụng giannhớhơnđểlưugiữcỏcchỉsố.
Tốnthờigiancậpnhậttấtcả cỏcchỉ sốkhicập nhậtdữliệu.
b. Phỏ vỡ chuẩn
Đụi khi chỳng ta cần cõn nhắc đưa một số dư thừa dữ liệu vào cơ sở dữ liệ u để
tăng tốc độ truyvấn. Khi đú cúthể chỳng tađó phỏ vỡ dạngchuẩn của cỏc qua nhệ
đó được chuẩn hoỏ.
- Phõn ró: Căn cứ vào yờu cầu sử dụng nếu cú những cột thuộc tớnh hay dựng
và ớt dựng hoặc vỡ một lý do nào đú(vớ dụ để bảo mật) thỡ phõn ró chỳng ra. N hững
cộtthuộc tớnhhaydựngchovàocựngmộtbảng.
Vớdụ:QuanhệĐIỂM THIgồmcỏcthuộctớnhSBD,Số phỏch,điểm.Nhưng để
đảmbảobớ mật thườngđượctỏchthànhhai bảngPHÁCH(SBD,sốphỏch)vàB ÀI
THI(Sốphỏch,điểm)
-Gộphai haynhiều bảngkhiviệcsử dụngchỳngthườngđiliền vớinhau. - Lặp lại cỏc cột thuộc tớnh từ cỏc bảng khỏc nhau, thờm một số cột thuộc tớn h
suy diễn vào bảng(vớ dụ: thành tiền, tổng tiền) nếu nú được truy vấn thường xuy ờn.
-Lập cỏcbảngchỉdẫn căncứvào đườngtruynhập vàtheocỏc cột thuộc tớn h cú
tần số sử dụng cao. Thờm một số bảng để lưu trữ cỏc thụng tin kết quả truy vấ n sẽ
Vớ dụ: Trong hệ thống tuyển sinh vỡ yờu cầu xem điểm nhiều nờn cú th ể tạo
ra một tệp cú cỏc thuộc tớnh SBD và điểm để giỳp cho việc tỡm kiếm thụn g tin
đượcnhanhchúng.
Tronghệthốngbỏn hàngcúthể thờmmộtsốbảnghỗtrợchoviệctớnhhàngt ồn,
tớnhthuchi.
5.3.Điềuchỉnhthực thiCSDL
Tạocỏcthủtục saolưuvàphụchồiCSDL. Tổchức bảotrỡvàbảo mậtcho CSDL. Thiếtlập cỏcràngbuộctoànvẹnchoCSDL.
Xỏcđịnhkhụnggiannhớ chocỏcbảngCSDLvàcỏcchỉ số. Thiếtlập vựngnhớđệmchoCSDL
PhõncụmCSDL,tổchứclưutrữ vậtlý tốiưuchoCSDLtrờn đĩa. Đảmbảođiềukhiểntương tranhtrongCSDLđangười sử dụng. Tạora cỏcviewcủaCSDL chotừng đốitượngngườidựng.
Xỏc định sự phõn tỏn dữ liệu và xử lý giữa cỏc client và server trong m
ột hệ
thốngphõntỏn. 5.4.Vớdụmộtmẫuthiếtkế
NHÀ CUNG CẤP ( NCC, tờn NCC, địa chỉ, điện thoại, fax)mó
HÀNG (móhàng,tờn hàng,đơnvị tớnh,đơngiỏ,sốlượng,mụtả,mó NCC,s ố
kho)
KHO (sốkho, diệntớch,mụtả)
PHIẾU XUẤT(sốphiếu, ngàyxuất,số đạilý)
DềNG PHIẾUXUẤT(móhàng, số phiếu,sốlượng xuất) ĐẠILí (sốđạilý,địa chỉđạilý,mụtả)
*Chỳ ý:
Kiểu dữ liệu và kớch thước của cỏc cột khoỏ ngoài cần phải giốn g hệt
kiểudữliệu vàkớchthước củacỏccột khoỏchớnh tươngứng. Khi tạo bảng, nếu bảngAcú cột thuộc tớnhlàm khoỏngoài trong bảng
BthỡbảngAcầnphảiđượctạo trướcbảngB.
Khi cài đặt, cỏc đặc tớnh như khuụn dạng, giỏ trị hợp lệ , khoỏ c hớnh,
khoỏ ngoài,…chớnh là cỏc ràng buộc của CSDL. Cỏc HQTCSDL hiện
đại hỗ trợ rất nhiều cho việc cài đặt cỏc ràng buộc này. Nếu một
HQTCSDL nào đú mà khụng hỗ trợ việc cài đặt cỏc ràng buộc nà y thỡ
cầnphảitạo cỏcthủtụcđểkiểmtra dữliệunhậpvào.
Đụi khitrong thực tế người ta khụng sử dụng ràng buộc khoỏ ngo ài vỡ
một số lý do:vớ dụ để biết hoỏ đơn là do nhõn viờn nào lập,thuộc tớnh
mó NV được đặt làm khoỏ ngoài trong bảng HOÁ ĐƠN. Ràng buộc
khoỏ ngoài đũi hỏi thụng tin về nhõn viờn chỉ được xoỏ khi tất cả cỏc
hoỏđơn liờn quanđếnnhõnviờn đúđóbị xoỏ hết.Nhưngthựctế n gười
ta lại cần lưu trữ cỏc hoỏ đơn liờn quan đến nhõn viờn, trong khi nhõn
viờn đú đó rời khỏi cụng ty. Vỡ vậy trong trường hợp này phải dựng một
thủtụckiểm trakhỏcthay choràngbuộckhoỏngoài.
5.BÀITẬPỨNG DỤNG
Thiết kế CSDL cho hệ thống quản lý khoa CNTT.
CHƯƠNG 5 THIẾT KẾ GIAO DIỆN GIỮA NGƯỜI VÀ MÁY 1TỔNGQUAN
1.1.Mục đớch
Tờnbảng Tờncột Nộidung Kiểu dữ liệu Kớch thước Khuụn dạng Giỏ trị mặcđịnh Giỏtrịhợp lệ NOtnull KhOỏ chớnh KhOỏ ngOài tham chiếu bảng Chỉsố BNcc MaNcc Mónhà
cungcấp Text 5 N-AAA x x Incc_Ma
TenNcc cungTờnnhàcấp Text 30 x
Incc_Te n
DiaChi Địachỉ Text 50 x
Phone Điệnthoại Text 15 999-999 9999 Fax Fax Text 15
BHang maHang Móhàng Integer 2 x x IH_Ma
tenHang Tờnhàng Text 50 x dvt đơnvịtớnh Text 10 “cỏi” x donGia đơngiỏ LongInteger 4 >0 x soLuong sốlượng Integer 2 0<=x<=
3000 x moTa mụtả Text 100
maNcc móNCC Text 5 x bNcc IH_Ncc soKho Sốkho Integer 2 x bKho IH_Kho bKho soKho …
dienTich … moTa …
Thiếtkếmụitrườnggiaotiếpgiữa ngườisử dụngvàmỏythoảmónđiềukiện: -Dễsử dụng:Giaodiệndễsửdụngngaycả vớinhững ngườikhụngcúkinh nghiệm
-Dễhọc :Cỏcchức nănggần gũivớitư duycủangườisử dụngđểhọcúthể nắmbắtdễdàngnhanhchúng.
-Tốcđộthaotỏc: Giaodiệnkhụng đũihỏicỏc thaotỏcphứctạphay dài dũng,hỗtrợcỏcphớmtắt,phớmnúng.
-Dễphỏttriển :Giao diệnđượcxõydựngdễdàng,sẵnsàng đỏpứngcỏcyờu cầu thay đổi của người sử dụng.
1.2.Cỏcloạigiaodiện
- Hộp thoại: Là cỏc giao diện phục vụ cho việc kiểm soỏt hệ thống, trao đổi thụngtingiữangười sử dụngvàhệthống,kiểmtra quyềntruynhập(Tờn,mật khẩu), cỏc hướng dẫn sử dụng hệ thống, cỏc thụng bỏo lỗi sử dụng hay lỗi hệ thốngnếucú...
-Mànhỡnh nhậpdữliệu: Đúlà cỏckhungnhậpliệuchophộpngườisử dụng tiếnhànhnhậpdữliệuchohệthốnghaycungcấpthụngtin choviệctỡmkiếm dữliệu,đưa racỏcbỏocỏotheo yờucầu.
-Mànhỡnh bỏocỏo:Đú làcỏcbiểumẫu hiểnthị cỏcthụngtinđượcthuthập vàtổng hợptheoyờucầucủa ngườisử dụng.