Chuyển đổi từ mụ hỡnh thực thể liờn kết thành cỏc bản ghi logic

Một phần của tài liệu ÐẠI CƯƠNG VỀ CÁC HỆ THỐNG THÔNG TIN QUẢN LÝ (Trang 59)

4. THIẾT KẾ LOGIC CSDL

4.1.Chuyển đổi từ mụ hỡnh thực thể liờn kết thành cỏc bản ghi logic

a. Cỏc luật chuyển đổi

 Mỗi thực thể trong mụ hỡnh thực thể liờn kết trở thành một quan hệ.

 Mỗi thuộc tớnh trong mụ hỡnh thực thể liờn kết trở thành một thuộc tớnh trong quan hệ tương ứng.

 Định danh thực thể trong mụ hỡnh thực thể liờn kết trở thành khoỏ chớnh trong quan hệ tương ứng. Nếu khoỏ chớnh khụng đỏp ứng được cỏc tiờu chuẩn về tớnh tối thiểu, tớnh xỏc định duy nhất và tớnh ổn định thỡ đưa vào một khoỏ giả làm khoỏ chớnh.

 Thi hành cỏc liờn kết thụng qua việc đặt khúa ngoài vào quan hệ

 Với liờn kết 1-1: đặt khoỏ chớnh của một trong hai quan hệ vào quan hệ kia làm khoỏ ngoài.

Vớ dụ: Với mụ hỡnh thực thể liờn kết Cụng nhõn mó CN họ tờn ngày Mỏy số mỏy mỏc cụng

Ta cú cỏc quan hệ:

CễNG NHÂN (mó CN, họ tờn, ngày sinh, số mỏy) MÁY (số mỏy, mỏc, cụng suất)

Hay: CễNG NHÂN (mó CN, họ tờn, ngày sinh)

MÁY (số mỏy, mỏc, cụng suất, mó CN)

 Với liờn kết 1-N: đặt khoỏ chớnh của quan hệ đầu một vào quan hệ đầu nhiều làm khoỏ ngoài.

Vớ dụ: Với mụ hỡnh thực thể liờn kết

Ta cú cỏc quan hệ:

SINH VIấN (mó SV, họ tờn, ngày sinh, tờn lớp) LỚP (tờn lớp, phũng học)

 Với liờn kết N-N: Cần tỏch thành quan hệ 1-N rồi mới chuyển thành quan hệ. Khi đú quan hệ tương ứng với thực thể kết hợp sẽ cú khoỏ ghộp và mỗi thuộc tớnh khoỏ của quan hệ này là một khoỏ ngoài.

Vớ dụ: Với mụ hỡnh thực thể liờn kết Sinh viờn mó SV họ tờn ngày Lớp tờn lớp phũng học

Ta cú cỏc quan hệ:

GIÁO VIấN (mó SV, tờn GV, đại chỉ, điện thoại) MễN HỌC (mó MH, tờn MH, số trỡnh)

GIẢNG DẠY (mó GV , mó MH , ngày bắt đầu)

 Một số liờn kết đặc biệt:  Tự liờn kết:

Vớ dụ: Mỗi nhõn viờn cú khụng hoặc một người quản lý (giỏm đốc khụng cú người quản lý nào). Mỗi nhõn viờn cú thể quản lý 0, 1 hay nhiều nhõn viờn.

Ta cú một quan hệ:

NHÂN VIấN (mó NV, họ tờn, ngày sinh, giới tớnh, địa chỉ, mó NV

quản lý)

Hỡnh 4.6. Mụ hỡnh liờn kết thực thể giữa Giỏo viờn – Mụn học

Trong đú Mó NV quản lý là một mó NV nào đú.  Liờn kết phụ thuộc

Vớ dụ: Một mặt hàng cú nhiều giỏ khỏc nhau trong những giai đoạn khỏc nhau.

Ta cú cỏc quan hệ:

MẶT HÀNG (Mó hàng, Tờn hàng) GIÁ (Mó hàng , Ngày bắt đầu , đơn giỏ)

b. Vớ dụ (adsbygoogle = window.adsbygoogle || []).push({});

Chuyển mụ hỡnh thực thể liờn kết sau thành cỏc bản ghi logic biểu diễn cỏc quan hệ:

Cỏc bản ghi logic mụ tả cỏc quan hệ trong cụng ty thương mại Y:

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ả) 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. (adsbygoogle = window.adsbygoogle || []).push({});

- 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

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ếu và số PX, thuộc tớnh ngày xuất và 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) (adsbygoogle = window.adsbygoogle || []).push({});

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ú).

 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ỏ. (adsbygoogle = window.adsbygoogle || []).push({});

 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ế.  Mụ phỏng một số người dựng cựng thực hiện một truy vấn trong CSDL đa

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ú

 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. (adsbygoogle = window.adsbygoogle || []).push({});

 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.

 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

Một phần của tài liệu ÐẠI CƯƠNG VỀ CÁC HỆ THỐNG THÔNG TIN QUẢN LÝ (Trang 59)