Chuẩn hoỏ quan hệ

Một phần của tài liệu Giáo trình Hệ thống thông tin quản lý- Bộ Giáo dục đào tạo (Trang 62)

4. THIẾT KẾ LOGIC CSDL

4.2.Chuẩn hoỏ quan hệ

a. Cỏc bước tiến hà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 sỏch cỏc thuộc tớnh cho quan hệ chưưa đưược chuẩn hoỏ (dạng chuẩn 0).

 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ủa biểu mẫ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ỏ x số lượng) và cỏc thuộc tớnh trỡnh bày nhưư ‘số thứ tự’ nếu cú.

 Bổ sung thờm một số thuộc tớnh định danh tương ứng với một số thuộc tớnh tờn gọi chưa cú định danh nếu cần thiết.

 Xỏc định nhúm thuộc tớnh lặp, cỏc phụ thuộc hàm giữa cỏc thuộc tớnh.

 B2. Chuẩn hoỏ về dạng chuẩn 1 (1NF): Tỏch nhúm thuộc tớnh lặp.

 Tỏch cỏc thuộc tớnh khụng nằm trong nhúm lặp thành một quan hệ (R1). Xỏc định khoỏ chớnh của quan hệ 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 trong R2)

 Vớ dụ: R{A, B, C, D, E} và khoỏ là {A}. Tồn tại nhúm thuộc tớnh lặp {C,D} thỡ tỏch thành 2 quan hệ R1{A, B, E} và R2{A,C,D}.

 B3. Chuẩn hoỏn về dạng chuẩn 2 (2NF): Loại bỏ phụ thuộc bộ phận vào khoỏ (chỉ ỏp dụng với cỏc quan hệ 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ột phần của khoỏ vào một quan hệ mới (R3). Khoỏ chớnh của quan hệ là thuộc tớnh xỏc định hàm.

 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ư quan hệ 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ỏch thành 2 quan hệ R1{A,C} và R2{A, B, D}.

 B4. Chuẩn hoỏ về dạng chuẩn 3(3NF): Loại bỏ phụ thuộc hàm giữa cỏc thuộc tớnh khụng khoỏ.

 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ộc tớnh xỏ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ờn khoỏ chớnh của quan hệ ban đầu.

 Vớ dụ: R{A, B, C, D} mà khoỏ là {A,B}. Tồn tại phụ thuộc hàm Cà D thỡ tỏch thành 2 quan hệ 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ương mại Y dưới đõy.

- Danh sỏch thuộc tớnh: số PX, ngày, số đại lý, địa chỉ, tờn hàng, đơn vị tớnh, đơn giỏ, số lượng.

- Bổ sung thờm thuộc tớnh mó hàng.

- Phụ thuộc hàm: (quy định giỏ bỏn của mặt hàng khụng thay đổ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.

− Nhúm lặp (*): mó hàng, tờn hàng, đơn vị tớnh, đơn giỏ, số lượng. Chuẩn hoỏ quan hệ:

0NF 1NF 2NF 3NF Tờn gọi số PX ngày số đại lý địa chỉ *mó hàng *tờn hàng *đơn vị tớnh *đơn giỏ *số lượng số PX ngày số đại lý địa chỉ số PX ngày số đại lý địa chỉ số đại lý địa chỉ ĐẠI Lí số PX ngày số đại lý PHIẾU XUẤT số PX mó hàng tờn hàng đơn vị tớnh đơn giỏ số lượng mó hàng tờn hàng đơn vị tớnh đơn giỏ mó hàng tờn hàng đơn vị tớnh đơn giỏ HÀNG số PX mó hàng số lượng số PX mó hàng số lượng HÀNG XUẤT

Cỏc bản ghi logic biểu diễn cỏc quan hệ: ĐẠI Lí (số đại lý, địa chỉ) PHIẾU XUẤT (số PX, ngày, số đại lý)

HÀNG (mó hàng, tờn hàng, đơn vị tớnh, đơn giỏ) HÀNG XUẤT (số PX, mó hàng, số lượng xuất) 4.3. Hoàn thiện mụ hỡnh CSDL logic (adsbygoogle = window.adsbygoogle || []).push({});

a. Một số quy tắc

Sau khi tiến hành theo hai hướng khỏc nhau: xõy dựng mụ hỡnh thực thể liờn kế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ần phải kết hợp lại để cú một mụ hỡnh CSDL logic thống nhất cho 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 cho khỏc nhau. Nếu cựng nghĩa nhưng khỏc tờn thỡ phải đặt lại tờn cho giống nhau.

 Với hai quan hệ trựng nhau thỡ lấy tất cả cỏc thuộc tớnh cú trong hai quan hệ từ hai kết quả.

b. Vớ dụ:

Trong vớ dụ phần 1 ta thu được tập cỏc bản ghi logic mụ tả cỏc quan hệ trong hệ thống cụng ty thương mại Y là:

Nhúm 1:

NHÀ CUNG CẤP ( mó NCC, tờn NCC, địa chỉ, điện thoại, fax) HÀNG (mó hàng, tờn hàng, đơn giỏ, số lượng, mụ tả, mó NCC, số kho) KHO (số kho, diện tớch, mụ tả)

PHIẾU XUẤT (số phiếu, ngày xuất, số cửa hàng)

DềNG PHIẾU XUẤT (mó hàng, số phiếu, số lượng xuất) CỬA HÀNG (số cửa hàng, địa điểm, mụ tả)

Trong vớ dụ phần 2 ta thu được tập cỏc bản ghi logic mụ tả cỏc quan hệ trong hệ thống cụng ty thương mại Y là:

Nhúm 2:

ĐẠI Lí (số đại lý, địa chỉ) PHIẾU XUẤT (số PX, ngày, số đại lý)

HÀNG (mó hàng, tờn hàng, đơn vị tớnh, đơn giỏ)

DềNG PHIẾU XUẤT (số PX, mó hàng, số lượng xuất) Ta thấy

 Trong nhúm 1 cú thực thể CỬA HÀNG và nhúm 2 cú thực thể ĐẠI Lí là hai thực thể khỏc tờn nhưng cựng nghĩa.

 Thuộc tớnh số phiếusố PX, thuộc tớnh ngày xuất ngày là cựng nghĩa.

** Kết quả thiết kế logic CSDL của hệ thống cụng ty thương mại Y là: NHÀ CUNG CẤP ( mó NCC, tờn NCC, địa chỉ, điện thoại, fax)

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ả)

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ẾT KẾ VẬT Lí CSDL

5.1. Cỏc vấn đề liờn quan khi thiết kế 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 đặt CSDL. Chỳng ta cần chuyển từ cỏc bản ghi logic với cỏc thuộc tớnh thành cỏc quan hệ được biểu diễn dưới dạng bảng vớ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ột hay nhiều thuộc tớnh).

 Mụ tả của tất cả cỏc cột (trường).

 Với mỗi cột (trường) cần phải cú:

 Một tờn duy nhất (trong bảng lưu giữ nú). (adsbygoogle = window.adsbygoogle || []).push({});

 Một mụ tả ngắn gọ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ụng cú dấu.

 Cỏc cột (trường) tuỳ chọn và cỏc cột (trường) bắt buộc:

 Nếu cột là bắt buộc thỡ người sử dụng cần phải cung cấp một giỏ 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 CSDL. 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ị 0 cho một cột tuỳ chọn khi nú khụng cú giỏ trị những cỏch này khụng phải là cỏch hay.

 Khoỏ chớnh và cỏc khoỏ ngoài

 Hầu hết cỏc HQTCSDL hiện đại cho phộp chỉ rừ khoỏ chớnh, khoỏ ngoài khi định nghĩa cỏc bả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ảng từ 1 đến 1000 (giỏ trị hợp lệ). Giỏ trị mặc định cho số lượng bỏn là 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ỏc chương trỡnh khi lập trỡnh. Đảm bảo sự thống nhất trong việc kiểm tra tớnh đỳng đắn của dữ liệu.

 Giỏ trị mặc định cú thể được sử dụng để giảm bớt việc gừ mỏy cho người sử dụng. Nú giỳp cho việc nhập dữ liệu nhanh hơn và giảm bớt lỗi.

 Khoỏ giả

 Để tăng tốc độ tỡm kiếm, tiết kiệm khụng gian nhớ và giảm lỗ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 khoỏ giả.

 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ất cho khoỏ (sinh khoỏ tự động)

Cần phải cung cấp một ràng buộc duy nhất cho cỏc định danh tự nhiờn để ngăn chặn việc lưu trữ một vài bản ghi cho cựng một thực thể cú cựng một dữ liệu nhưng chỉ khỏc nhau về giỏ trị khoỏ.

 Cỏc quan hệ

 Cỏc quan hệ giữa cỏc bảng sẽ được thiết lập bởi cỏc khoỏ ngoài.

 Cần phải đảm bảo là cỏi ràng buộc khoỏ ngoài sẽ được cài đặt. 5.2. Xem xột hiệu suất thực thi CSDL

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ỏc cõu hỏi truy vấn.

 Chạy thử CSDL với một tập đủ lớn cỏc bản ghi trong mụi trường thực tế.

người sử dụng.

 Chạy trộn lẫn một số chức năng với thời gian 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 khi thiết kế CSDL

 Theo quy luật chung cần phải cú (adsbygoogle = window.adsbygoogle || []).push({});

 Một chỉ số duy nhất cho mỗi khoỏ 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ới chỉ số ghộp trờn nhiều cột cần phải cung cấp thứ tự cỏc cột. - Ưu và nhước điểm của chỉ số

 ưu điểm

 Tăng tốc độ tỡm kiếm và khụi phục cỏc bản ghi.

 Cú hiệu suất cao trong việc truy nhập nhiề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ều mức sắp xếp bằng cỏch tạo một chỉ số trờn một số cột.

 Nhược điểm

 Cần nhiều khụng gian nhớ hơn để lưu giữ cỏc chỉ số.

 Tốn thời gian cập nhật tất cả cỏc chỉ số khi cập nhật dữ 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 độ truy vấn. Khi đú cú thể chỳng ta đó phỏ vỡ dạng chuẩn của cỏc quan hệ đó đượ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. Những cột thuộc tớnh hay dựng cho vào cựng một bảng.

Vớ dụ: Quan hệ ĐIỂM THI gồm cỏc thuộc tớnh SBD, Số phỏch, điểm. Nhưng để đảm bảo bớ mật thường được tỏch thành hai bảng PHÁCH (SBD, số phỏch) và BÀI

THI (Số phỏch, điểm)

- Gộp hai hay nhiều bảng khi việc sử dụng chỳng thường đi liền với nhau. - 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ớnh 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ỏc bảng chỉ dẫn căn cứ vào đường truy nhập và theo cỏc cột thuộc tớnh 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ẽ được sử dụng lại.

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ụng tin được nhanh chúng.

Trong hệ thống bỏn hàng cú thể thờm một số bảng hỗ trợ cho việc tớnh hàng tồn, tớnh thu chi.

5.3. Điều chỉnh thực thi CSDL

 Tạo cỏc thủ tục sao lưu và phục hồi CSDL.

 Tổ chức bảo trỡ và bảo mật cho CSDL.

 Thiết lập cỏc ràng buộc toàn vẹn cho CSDL.

 Xỏc định khụng gian nhớ cho cỏc bảng CSDL và cỏc chỉ số.

 Thiết lập vựng nhớ đệm cho CSDL

 Phõn cụm CSDL, tổ chức lưu trữ vật lý tối ưu cho CSDL trờn đĩa.

 Đảm bảo điều khiển tương tranh trong CSDL đa người sử dụng.

 Tạo ra cỏc view của CSDL cho từng đối tượng người dựng. (adsbygoogle = window.adsbygoogle || []).push({});

 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ống phõn tỏn.

5.4. Vớ dụ một mẫu thiết kế

NHÀ CUNG CẤP ( mó NCC, tờn NCC, địa chỉ, điện thoại, fax)

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ẾU XUẤT (số phiếu, ngày xuất, số đại lý)

ĐẠI Lí (số đại lý, địa chỉ đại lý, 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ống hệt kiểu dữ liệu và kớch thước của cỏc cột khoỏ chớnh tương ứng.

 Khi tạo bảng, nếu bảng A cú cột thuộc tớnh làm khoỏ ngoài trong bảng B thỡ bảng A cần phải được tạo trước bảng B.

 Khi cài đặt, cỏc đặc tớnh như khuụn dạng, giỏ trị hợp lệ , khoỏ chớ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ần phải tạo cỏc thủ tục để kiểm tra dữ liệu nhập vào.

 Đụi khi trong 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 đến nhõn viờn đú đó bị xoỏ hết. Nhưng thực tế ngườ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ục kiểm tra khỏc thay cho ràng buộc khoỏ ngoài.

Tờn bảng Tờn cột Nội dung Kiểu dữ liệu Kớch thước Khuụn dạng Giỏ trị mặc định Giỏ trị hợp lệ Not null Khoỏ chớnh Khoỏ ngoài tham chiếu bảng

Chỉ số

BNcc MaNcc cung cấpMó nhà Text 5 N-AAA x x Incc_Ma

TenNcc cung cấpTờn nhà Text 30 x

Incc_Te n

DiaChi Địa chỉ Text 50 x

Phone Điện thoại Text 15 999-9999999

Fax Fax Text 15

BHang maHang Mó hàng Integer 2 x x IH_Ma

tenHang Tờn hàng Text 50 x dvt đơn vị tớnh Text 10 “cỏi” x donGia đơn giỏ 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 …

5. BÀI TẬP ỨNG DỤNG

CHƯƠNG 5 THIẾT KẾ GIAO DIỆN GIỮA NGƯỜI VÀ MÁY 1 TỔNG QUAN

1.1. Mục đớch (adsbygoogle = window.adsbygoogle || []).push({});

Thiết kế mụi trường giao tiếp giữa người sử dụng và mỏy thoả món điều kiện: - Dễ sử dụng : Giao diện dễ sử dụng ngay cả với những người khụng cú kinh nghiệm

- Dễ học : Cỏc chức năng gần gũi với tư duy của người sử dụng để họ cú thể nắm bắt dễ dàng nhanh chúng.

- Tốc độ thao tỏc : Giao diện khụng đũi hỏi cỏc thao tỏc phức tạp hay dài dũng, hỗ trợ cỏc phớm tắt, phớm núng.

- Dễ phỏt triển : Giao diện được xõy dựng dễ dàng, sẵn sàng đỏp ứng cỏc yờu cầu thay đổi của người sử dụng.

1. 2. Cỏc loại giao diệ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ụng tin giữa người sử dụng và hệ thống, kiểm tra quyền truy nhậ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ống nếu cú...

- Màn hỡnh nhập dữ liệu: Đú là cỏc khung nhập liệu cho phộp người sử dụng tiến hành nhập dữ liệu cho hệ thống hay cung cấp thụng tin cho việc tỡm kiếm dữ liệu, đưa ra cỏc bỏo cỏo theo yờu cầu.

- Màn hỡnh bỏo cỏo : Đú là cỏc biểu mẫu hiển thị cỏc thụng tin được thu thập và tổng hợp theo yờu cầu của người sử dụng.

1.3. Cỏc nguyờn tắc chung khi thiết kế giao diện

- Luụn cung cấp thụng tin phản hồi về cụng việc đang tiến hành cho người sử dụng.

- Thụng tin trạng thỏi : cung cấp cho người sử dụng thụng tin về phần hệ

Một phần của tài liệu Giáo trình Hệ thống thông tin quản lý- Bộ Giáo dục đào tạo (Trang 62)