Chuyển đối MHYNDL thành mô hình logic dữ liệu

Một phần của tài liệu Giáo trình phân tích thiết kế hệ thống Thầy Khánh (Trang 156 - 160)

CHƯƠNG 6 XÂY DỰNG MÔ HÌNH LOGIC DỮ LIỆU

III. S ử DụNG CÁC NGÔN NGữ LậP TRÌNH

III.1. Chuyển đối MHYNDL thành mô hình logic dữ liệu

Trước khi chuyển đổi MHYNDL thành mô hình logic dữ liệu (MHLGDL), ta cần tìm hiểu cách thể hiện các tệp dữ liệu của FoxPro.

III.1.1. Các tệp dữ liệu của FoxPro

Mỗi tệp dữ liệu (DBF − DataBase File) gồm hai yếu tố : bản thân DBF và một (hoặc nhiều) tệp chỉ mục (Index File) tương ứng. Tệp chỉ mục không là tất yếu, cũng không bắt buộc phải có. Nếu như tệp chỉ mục không được tạo ra thì bản thân DBF được tổ chức theo kiểu tuần tự.

Có hai kiểu chỉ mục thường sử dụng :

Chỉ mục đơn hay chuẩn (standard index), tương tự khái niệm khoá : ứng với một giá trị chỉ mục duy nhất thì xác định được giá trị của một dữ liệu khác.

Chỉ mục kết hợp (compound index) là ghép của nhiều chỉ mục đơn (đính mục).

Mỗi DBF gồm các bản ghi (Record). Mỗi bản ghi gồm các trường (Field) là dữ liệu cơ sở, không chứa các cấu trúc con. Các trường dữ liệu tạo thành bản ghi là các thuộc tính của một thực thể,. Mỗi thuộc tính là đích của một PTH mà chỉ mục đơn (hay khóa của thực thể) là nguồn.

Sau đây là một MHYNDL trước khi chuyển :

III.1.2.Chuyển đổi MHYNDL ⎯→ MHLGDL

Để đơn giản hóa việc chuyển đổi, trước tiên ta chuyển MHYNDL đã cho thành mô hình nhị nguyên, một mô hình chỉ gồm các kết hợp phân cấp hai chiều.

a. Chuyển đổi thành mô hình nhị nguyên

Các kết hợp không phân cấp phải được đơn giản hóa (hay được cá thể hóa). Trong ví dụ MHYNDL trên đây, chỉ có kết hợp Thuê là không phân cấp, phải được đơn giản hóa.

MHYNDL sau khi chuyển đổi thành mô hình nhị nguyên : 0 − n

1 − 1 CIF

0 − n NGÀY NgàyThuê

THỂTHAO TênThểThao ĐơnVịTính

GiáTiền

0 − n 0 − n

Thuê SốĐơnVị CHỖ

ChỗSố DiệnTích SốNgMax

LƯUTRÚ LưuTrúSố TênKhách NgàyĐến NgàyĐi SốNgười

KIỂU KiểuChỗ GiáNgàyNgười

1 − 1 CIF 1 − n

Như vậy, kết hợp Thuê đã được đơn giản hóa và được thay thế bởi :

Thực thể THUÊ có khóa là khóa của kết hợp Thuê, là do ghép các khóa của các thực thể tham gia vào kết hợp này.

Kết hợp Thuê là ba chiều nên phải tạo ra ba CIF giữa thực thể mới THUÊ và các thực thể LƯUTRÚ, THỂTHAO và NGÀY.

KIỂU KiểuChỗ GiáNgàyNgười CHỖ

ChỗSố DiệnTích SốNgMax

CIF

1 − 1 1 − n

LƯUTRÚ LưuTrúSố TênKhách NgàyĐến NgàyĐi SốNgười

0 − n

1 − 1 0 − n 1 − 1

NGÀY NgàyThuê

CIF

CIF

1 − 1 1 − n

CIF

1 − 1 0 − n CIF

THỂTHAO TênThểThao ĐơnVịTính

GiáTiền THUÊ

LưuTrúSố + TênThểThao +

NgàyThuê SốĐơnVị

Ta nhận thấy rằng mô hình chỉ còn lại các CIF, và đó là mô hình nhị nguyên.

b. Nguyên tắc chuyển đổi các thực thể thành các tệp

Mỗi thực thể được tạo thành hai tệp dữ liệu là DBF và tệp chỉ mục của nó. Các thuộc tính của thực thể tạo thành các trường tin của DBF. Khóa có vai trò là giá trị chỉ mục đơn của tệp chỉ mục. Tuy nhiên, mô hình logic các tệp sẽ không đầy đủ nếu mối liên hệ giữa các thực thể (CIF) không được chuyển đổi.

c. Nguyên tắc chuyển đổi các mối liên hệ giữa các thực thể MHYNDL

Mô hình logic các tệp

Các tệp cơ sở dữ liệu (DBF) :

Các tệp chỉ mục (IDX) :

Mối liên hệ CIF giữa hai thực thể được chuyển đổi như sau : tệp ĐƠNĐHÀNG được thêm dữ liệu KHSố là khóa của thực thể KHHÀNG. Trong trường hợp xây dựng tệp chỉ mục kết hợp CMĐĐHKH thì KHSố sẽ là khoá của tệp chỉ mục này, vì từ đó có thể :

− Tìm lại các thông tin về một khách hàng từ một đơn đặt hàng,

chỉ mục đơn

1 − 1 1 − n KHHÀNG

KHSố HọTênKH ĐƠNĐHÀNG

SốĐĐH

NgàyĐĐH CIF

CMĐĐH SốĐĐH

CMKH KHSố ĐƠNĐHÀNG

SốĐĐH KHSố NgàyĐĐH

KHHÀNG KHSố HọTênKH

CMĐĐHKH KHSố

chỉ mục đơn

chỉ mục kết hợp

e. Chuyển đổi MHYNDL thành MHLGDL các tệp

Thực thể KIỂU DBF Tệp chỉ mục

KIỂU CMKIỂU Các trường :

KiểuChỗ GiáNgàyNgười

Khoá chỉ mục đơn : KiểuChỗ

Thực thể CHỖ DBF Tệp chỉ mục

CHỖ CMCHỖ

Các trường : ChỗSố

Khoá chỉ mục đơn : ChỗSố

KiểuChỗ CMCHỖKIỂU

DiệnTích SốNgMax

Khoá chỉ mục kết hợp : KiểuChỗ

Thực thể THUÊ DBF Tệp chỉ mục

THUÊ CMTHUÊ

Các trường : Khoá chỉ mục :

LưuTrúSố TênThểThao NgàyThuê

LưuTrúSố TênThểThao NgàyThuê

ghép các khoá SốĐơnVị

Khoá chỉ mục của tệp THUÊ do các khoá LưuTrúSố, TênThểThao và NgàyThuê ghép lại để từ đó xác định giá trị của dữ liệu SốĐơnVị.

Thực thể NGÀY

Thực thể NGÀY không cần chuyển thành DBF vì chỉ có mỗi dữ liệu NgàyThuê nên NgàyThuê cũng đồng thời là khoá chỉ mục của nó.

Một phần của tài liệu Giáo trình phân tích thiết kế hệ thống Thầy Khánh (Trang 156 - 160)

Tải bản đầy đủ (PDF)

(170 trang)