PHIẾU NHẬP

Một phần của tài liệu Một số phương pháp thiết kế logic cho cơ sở dữ liệu quan hệ (Trang 26)

3- Xác định các thao tác thường xuyên thực hiện

PHIẾU NHẬP

Số phiếu:... Ngày:

SỐ phiếu:... Ngày:... Tên khách hàng:

Địa chỉ:

Điện thoại: Mã kho:...Địa chỉ kho:

2

Tên Nhà cung cấp: Địa chỉ:

Điện thoại: Mã kho:...Địa chỉ kho: ST T Tên vật tư Số lượng Đơn vị tắnh Đơn giá Tỷ lệ VAT Thành tiền Tổng cộng tiền PHIẾU XUẤT STT Tên vật tư Số lượng Đơn vị tắnh Đơn giá Tỷ lệ VAT Thành tiền Tổng cộng tiền

2

Mã kho Makho

Địa chỉ kho (4) (bỏ)

Số thứ tự (lặp) (2) (bỏ)

Tên vật tư -> Mã vật tư (3) Mavattu*

Số lượng (xuất) (lặp) Slxuat*

Đơn vị tắnh (lặp) (4) (bỏ)

Đơn giá (xuất) (lặp) Dongiaxuat*

Tỷ lệ VAT (lặp) (4) (bỏ)

Thành tiền (lặp) (bỏ)

Tổng tiền (xuất) (5) (bỏ)

Chú thắch:

Bảng 2.1 Danh sách thuộc tắnh cần quản lý

Thưc thể -Thuôc tắnh Ễ Ễ Chắnh xác hoá dữ liệu

PHIẾU NHẬP PHIEUNHAP

Số phiếu (nhập) Sophieunhap

Ngày (nhập) Ngaynhap

Tên Nhà cung cấp TenNCC

+ Mã Nhà cung cấp (1) MaNCC (thêm)

Địa chỉ (nhà cung cấp) Đ/cNCC

Điện thoại (nhà cung cấp) TeleNCC

Mã kho Makho

Địa chỉ kho Đ/ckho

Số thứ tự (lặp) (2) (bỏ) (adsbygoogle = window.adsbygoogle || []).push({});

Tên vật tư (lặp) Tenvattu *

+ Mã vật tư (1) Mavattu* (thêm)

Số lượng (nhập) (lặp) Slnhap*

Đơn vị tỉnh (lặp) Đ/Vtinh*

Đơn giá (nhập) (lặp) Đongianhap*

T ỷ l ệ VAT (lặp) TyleVAT

Thành tiền (lặp) (bỏ)

Tổng tiền (nhập) (5) (bỏ)

PHIẾU XUẤT PHIEUXUAT

Số phiếu (xuất) Sophieuxuat

Ngày (xuất) Ngayxuat

+ Mã khách hàng (1) Makhach (thêm)

Tên khách hang Ten.kh.ach.

Địa chỉ (khách) Đ/ckhach

1. ỀTên nhà cung cấp Ể là thuộc tắnh tên gọi của thực thể ỀNhà cung cấpỂ, không xác

định mỗi nhà cung cấp cụ thể vì Nhà cung cấp có thể trùng tên. Vì vậy phải thêm thuộc tắnh ỀMấ Nhà cung cấpỂ (MaNCC) làm thuộc tắnh định danh cho ỀNhà cung cấpỂ. Tương tự thêm ỀMã vật tưỂ và Ềmã khách hàngỂ

2. Số thứ tự để đánh số mỗi dòng hoá đơn chỉ có ý nghĩa trong hoá đơn này, không cho thông tin gì khác, không càn lưu trữ.

3. Thuộc tắnh tên gọi, đã có thuộc tắnh mã hoá đi kèm, đã gặp một lần ở trên nên bỏ đi. Nếu không có thuộc tắnh mã hoá đi kèm thì thay bằng mã hoá.

4. Các thuộc tắnh mô tả, đã gặp một làn ở trên nên bỏ đi.

5. Thuộc tắnh thành tiền = (đơn giá giao) X (sổ lượng giao), hai thuộc tắnh này đã

được chọn ở trên ta có thể tắnh được Ềthành tiềnỂ nên không cần lưu trữ thuộc tắnh này. Tương tự như vậy, thuộc tắnh tổng tiền cũng không cần lưu trữ.

Thuộc tắnh có dấu (*) biểu thị các thuộc tắnh lặp.

Bước 2 - Xác định các thuộc tắnh cần quản lý và các phụ thuộc hàm

Theo bảng liệt kê trên ta có tập các thuộc tắnh cần quản lý với các phụ thuộc hàm như sau:

Rl= {Sophieunhap, Ngaynhap, MaNCC, TenNCC, Đ/cNCC, TeleNCC, Makho, Đ/ckho, Mavattu*, Tenvattu*, Slnhap*, Đ/v tắnh*, Đongianhap*, TyleVAT*}

Sophieunhap Ồữ Ngaynhap, MaNCC, TenNCC, Đ/cNCC, Makho, Đ/ckho. Mavattu Tenvattu, Đ/vtinh, TyleVAT

Sophieunhap, Mavattu Ồữ Slnhap, Đongianhap

R2= i Sophieuxuat, Ngayxuat, Makhach, tenkhach, Đ/ckhach, telekhach, makho, Mavattu*, Slxuat*, dongiaxuat* r-

F2= f Sophieuxuat Ồ> Ngayxuat, Makhach, Tenkhach, Đ/ckhach, Telekhach, Makho

Sophieuxuat, Mavattu Ồữ SLxuat, Dongiaxuat (adsbygoogle = window.adsbygoogle || []).push({});

Tù đây, ta xác định được khoá trong lược đồ quan hệ tương ứng cho RI và R2 như sau:

PHIEUNHAP ( Soyhỉeunhav , Ngaynhap, MaNCC, TenNCC, Đ/cNCC, TeleNCC, Makho, Đ/ckho, Mavattu*, Tenvattu*, Slnhap*, Đ/v tắnh*, Đongianhap*, TyleVAT*)

PHIEUXUAT ( Sophieuxuat, Ngayxuat, Makhach, Tenkhach, Đ/ckhach, Telekhach, Makho, Mavattu*, Slxuat*, dongiaxuat)

vì bao đóng \ Sophieunhap, Mavattu f- + = RI và bao đóng \ Sophieuxuat, Mavattu f1 + = R2 Khoá trong hai lược đồ chắnh là khoá tối tiểu.

Bước 3 - Tiến hành chuẩn hoá

Hai lược đồ PHIEUNHAP,PHIEƯXƯAT chưa đạt chuẩn 1 vì còn có thuộc tắnh lặp.

Để đạt chuẩn 1NF ta tách chúng thành các lược đồ con:

PHIEUNHAP1 ( Sophieunhap , Mavattu, Tenvattu, Slnhap, Đ/y tắnh, Đongianhap, TyleVAT)

2

Fl= TeleNC C,

PHIEƯNHAP 2 ( Sophieunhap . Ngaynhap, MaNCC, TenNCC, Đ/cNCC, TeleNCC, Makho, Đ/ckho)

PHIEUXUAT1 (SophỉeuxuaU Mavattu , Slxuat, Đongiaxuat)

PHIEUXUAT2 (SophỉeưxuaU Ngayxuat, Makhach, tenkhach, Đ/ckhach, telekhach, makho)

Ễ Xét chuẩn 2:

PHIEUNHAP1 (Sophieunhap, Mavattu, Tenvattu, Slnhap, Đ/v tắnh,

Đongianhap, TyleVAT)

Có Mavattu Ồ> Tenvattu, Đ/v tắnh, TyleVAT)

mà Mavattu là một phần của khoá nên PHIEUNHAP1 không đạt 2NF Để đạt 2NF ta tách nó thành các lược đồ con:

(1) VATTU (Mavattu, Tenvattu, Đ/v tắnh, TyleVAT)

(2) DONGNHAP ( Sophieunhap . Mavattu. Slnhap,Đongianhap, )

PHIEUNHAP 2 (Sophieunhap, Ngaynhap, MaNCC, TenNCC, Đ/cNCC, TeleNCC, Makho, Đ/ckho)

PHIEUNHAP 2 đương nhiên đạt chuẩn 2NF vì nhóm thuộc tắnh khoá chỉ có một thuộc tắnh. Vậy,

(3) PHIEUNHAP 2 ( Sophieunhap , Ngaynhap, MaNCC, TenNCC, Đ/cNCC, TeleNCC, Makho, Đ/ckho)

(4) DONGXUAT (Sophieuxuat, Mavattu , Slxuat, Đongiaxuat)

đạt 2NF vì không tồn tại thuộc tắnh ngoài khoá nào phụ thuộc vào một phần của khoá cả

PHIEUXUAT2 ( Sophieuxuat' Ngayxuat, Makhach, Tenkhach, Đ/ckhach, telekhach, makho)

PHIEUXUAT2 đương nhiên đạt chuẩn 2NF vì nhóm thuộc tắnh khoá chỉ có một thuộc tắnh. Vậy

(5) PHIEUXUAT2 (SophỉeưxuaU Ngayxuat, Makhach, Tenkhach, Đ/ckhach, Telekhach, Makho)

Kết quả ta cỏ hê lươc đồ sau đat chuẩn 2NF: (1) VATTƯ (Mavattu, Tenvattu, Đ/v tắnh, TyleVAT )

(2) DONGNHAP (Sophieunhap, Mavattu, Slnhap, Đongianhap) (adsbygoogle = window.adsbygoogle || []).push({});

(3) PHIEUNHAP 2 (Sophieunhap, Ngaynhap, MaNCC, TenNCC, Đ/cNCC, TeleNCC, Makho, Đ/ckho)

(4) DONGXƯAT (Sophieuxuat, Mavattu. SLxuat, Đongiaxuat)

(5) PHIEUXUAT2 ( Sophieuxuat , Ngayxuat, Makhach, Tenkhach, Đ/ckhach, Telekhach, Makho)

Ễ Xét chuẩn 3:

Các quan hệ (1), (2), (4) đương nhiên đạt chuẩn 3NF vì không có thuộc tắnh cầu

(1) VATTU (Mavattu, Tenvattu, Đ/y tắnh, TyleVAT)

(2) DONGNHAP ( Sophieunhap , Mavattu, Slnhap, Đongianhap)

(4)DONGXUAT (Sophieuxuat, Mavattu, SLxuat, Đongiaxuat) Có quan hệ (3):

(3) PHIEUNHAP2 ( Soyhieunhav , Ngaynhap, MaNCC, TenNCC, Đ/cNCC, TeleNCC, Makho, Đ/ckho)

MaNCC-> TenNCC, D/cNCC, TeleNCC Makho Ồ> Đ/ckho

Mà MaNCC và Makho là các thuộc tắnh ngoài khoá nên nó chắnh là các thuộc tắnh cầu. Vậy quan hệ này không đạt 3NF.

Đe quan hệ này đạt được 3NF ta tách nó thành các quan hệ con: (3.1) NHACC (MaNCC. TenNCC, Đ/cNCC, TeleNCC)

(3..2) KHO (Makho , Đ/ckho)

(3.3) PHIEUNHAP (Sophieunhap , Ngaynhap, MaNCC, Makho)

Riêng quan hệ 5: PHIEƯXUAT2 (Sophieuxuat, Ngayxuat, Makhach, Tenkhach, Đ/ckhach, Telekhach, Makho) có:

Makhach Tenkhach, Đ/ckhach, Telekhach

Mà Makhach là ứiuộc tắnh ngoài khoá nên nó chắnh là thuộc tắnh cầu. Vậy quan hệ này không đạt 3NF.

Để quan hệ này đạt được 3NF ta tách nó thành các quan hệ con: (5.1) KHACH ễMakhach Tenkhach, Đ/ckhach, Telekhach) (5.2) PHIEƯXUAT (Sophieuxuat Ngayxuat, Makhach, Makho) Tổng hợp kết quả trên, ta có hệ lược đồ sau đạt chuẩn 3:

(1) VATTU (Mavattu, Tenvattu, Đ/v tắnh, TyleVAT)

(2) DONGNHAP ( Soyhieunhav , Mavattu , Slnhap, Đongianhap) (3) NHACC (MaNCC. TenNCC, Đ/cNCC, TeleNCC)

(4) KHO (Makho , Đ/ckhoì

(5) PHIEUNHAP (Sophieưnhap, Ngaynhap, MaNCC, Makho) (6) DONGXƯAT ịSophieuxuat. Mavattu . SLxuat, Đongiaxuat)

(7) KHACH ễMakhach. Tenkhach, Đ/ckhach, Telekhach) (8) PHIEƯXƯAT (Sophieuxuat, Ngayxuat, Makhach, Makho)

Bước 4 -Vẽ sơ đồ E-R

Sơ đồ E-R được vẽ theo nguyên tắc sau:

❖ Mỗi lược đồ được biểu diễn bằng một hình chữ nhật gồm tên (viết hoa) và các thuộc tắnh, thuộc tắnh khoá được gạch chân hoặc in đậm, khoá liên kết/ khoá ngoại được đánh dấu * hoặc in nghiêng hoặc dùng chữ FK (foreign key).

❖ Xác định liên kết giữa 2 thực thể: chúng có liên kết nếu đảm bảo đủ 2 dấu hiệu sau: Có nhóm thuộc tắnh chung; Tại một thực thể nào đó, nhóm thuộc tắnh chung đó là khoá chắnh.

Như vậy nhóm thuộc tắnh ở thực thể còn lại sẽ chắnh là khoá ngoại/ khoá liên kết

❖ Khi đã xác định được khoá liên kết ta có thể vẽ đường nối giữa chúng và đường ba chẽ sẽ dắnh vào thực thể có chứa khoá liên kết.

Kết quả vận dụng các nguyên tắc trên thu được sơ đồ E-R: (adsbygoogle = window.adsbygoogle || []).push({});

Hình 2.1. Sơ đồ E-R bài toán xuất nhập vật tư trong kho

Một phần của tài liệu Một số phương pháp thiết kế logic cho cơ sở dữ liệu quan hệ (Trang 26)