1. Trang chủ
  2. » Công Nghệ Thông Tin

Cơ sở dữ liệu phân tán Quản lý vật tư UTT

33 24 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Quản Lý Vật Tư
Tác giả Đồng Thanh Tuấn, Hoàng Trần Nguyên, Đỗ Việt Hưng
Người hướng dẫn ThS. Bùi Thị Như
Trường học Trường Đại Học Công Nghệ GTVT
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 33
Dung lượng 597,99 KB
File đính kèm Cơ sở dữ liệu phân tán - Quản lý vật tư.rar (496 KB)

Cấu trúc

  • PHẦN I: THIẾT KẾ CÁC HỆ CSDL PHÂN TÁN (6)
    • 1.1 Mô hình cơ sở dữ liệu (6)
      • 1.1.1 NhaCungCap (6)
      • 1.1.2 NhanVien (6)
      • 1.1.4 PhieuNhapKho (6)
    • 1.2 Mô hình cơ sở dữ liệu tập trung (8)
    • 1.3 Thiết lập cơ sở dữ liệu (8)
      • 1.3.1 Tạo CSDL QLVT (8)
      • 1.3.2 Tạo bảng KhoVatTu (8)
      • 1.3.3 Tạo bảng NhanVien (9)
      • 1.3.4 Tạo bảng DanhMucVatTu (9)
      • 1.3.5 Tạo bảng NhaCungCap (10)
      • 1.3.6 Tạo bảng PhieuNhapKho (10)
    • 1.4 Cơ sở dữ liệu (12)
      • 1.4.1 DanhMucVatTu (12)
      • 1.4.2 NhaCungCap (12)
      • 1.4.3 NhanVien (12)
      • 1.4.4 KhoVatTu (12)
      • 1.4.5 PhieuXuat (13)
      • 1.4.6 PhieuNhapKho (13)
  • PHẦN II: PHÂN MẢNH DỮ LIỆU (14)
    • 2.1 Phân mảnh ngang (14)
    • 2.2 Phân mảnh dọc (14)
    • 2.3 Phân mảnh hỗn hợp (15)
  • PHẦN III: TRUY VẤN PHÂN MẢNH VÀ TRUY VẤN TÁI THIẾT (16)
    • 3.1. Truy vấn phân mảnh (16)
      • 3.1.1 Truy vấn phân mảnh ngang (16)
      • 3.1.2 Truy vấn phân mảnh dọc (19)
      • 3.1.3 Truy vấn phân mảnh hỗn hợp (20)
    • 3.2 Truy vấn tái thiết (0)
  • PHẦN IV: TỐI ƯU TRUY VẤN BẰNG THUẬT TOÁN INGRES (24)
    • 4.1 Cho biết tên chi nhánh có tên kho = “Kho A” (24)
    • 4.2 Cho biết tên Miền có Mã miền= “mn” và có Mã kho= “k1” (24)
  • PHẦN V: XÂY DỰNG CÂY ĐẠI SỐ QUAN HỆ VÀ RÚT GỌN CÂU TRUY VẤN (26)
    • 5.1 Cho biết tên nhân viên có giới tính nam và có mã vật tư là MUT (28)
    • 5.2 Đưa ra tên nhân viên có mã chi nhánh là CN1 và có mã miền là mb (30)

Nội dung

Bên trên là đề tài môn cơ sở dữ liệu phân tán đề tài quản lý vật tư tại trường Đại học Công nghệ GTVT. Các bạn xem nếu cần mình support gì liên hệ email mình: matchless2003gmail.com. Cảm ơn các bạn rất nhiều

THIẾT KẾ CÁC HỆ CSDL PHÂN TÁN

Mô hình cơ sở dữ liệu

Thiết lập cơ sở dữ liệu

MaPhieuNhap INT PRIMARY KEY, MaVatTu INT,

TenNhanVien NVARCHAR(255) NOT NULL, ChucVu NVARCHAR(50) NOT NULL

(2, N'Trầ5n Thị B', N'Nhần viễn kho'),

(3, N'Đinh Văn C', N'Nhần viễn bán hàng');

FOREIGN KEY (MaPhieuNhap) REFERENCES KhoVatTu(MaPhieuNhap),

FOREIGN KEY (MaNhaCungCap) REFERENCES NhaCungCap(MaNhaCungCap)

FOREIGN KEY (MaVatTu) REFERENCES DanhMucVatTu(MaVatTu)

Cơ sở dữ liệu

PHÂN MẢNH DỮ LIỆU

Phân mảnh ngang

- Phân mảnh ngang quan hệ PhieuXuat được phân mảnh 3 mảnh theo SoLuongXuat:

- Phân mảnh ngang quan hệ DanhMucVatTu được phân mảnh 3 mảnh theo DonViTinh:

- Phân mảnh ngang quan hệ NhanVien được phân mảnh 3 mảnh theo ChucVu:

NhanVien1 = σ ChucVu=Quản lý ( NhanVien)

NhanVien2 = σ ChucVu= Nhân viên kho ( NhanVien )

NhanVien3 = σ ChucVu=Nhân viên bán hàng ( NhanVien)

Phân mảnh dọc

- Quan hệ NhanVien được phân thành 2 mảnh dọc

Phân mảnh hỗn hợp

- Quan hệ PhieuXuat phân mảnh hỗn hợp thành 3 mảnh:

TRUY VẤN PHÂN MẢNH VÀ TRUY VẤN TÁI THIẾT

Truy vấn phân mảnh

3.1.1 Truy vấn phân mảnh ngang

Truy vấn trên bảng PhieuXuat

Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt

PhieuXuat1 ⊆ PhieuXuat, PhieuXuat2 ⊆ PhieuXuat, PhieuXuat3 ⊆ PhieuXuat PhieuXuat1 ∩ PhieuXuat2 = ∅ , PhieuXuat1 ∩ PhieuXuat3

Truy vấn trên bảng DanhMucVatTu

Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt

DanhMucVatTuA ⊆ DanhMucVatTu, DanhMucVatTuAB⊆ DanhMucVatTu, DanhMucVatTuC⊆ DanhMucVatTu

DanhMucVatTu = DanhMucVatTuA ∪ DanhMucVatTuB ∪ DanhMucVatTuC ∪ DanhMucVatTuD

Truy vấn trên bảng NhanVien

WHERE ChucVu = ‘Nhân viên kho’

WHERE ChucVu = ‘Nhân viên bán hàng’

Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt

NhanVien1 ⊆ NhanVien, NhanVien2 ⊆ NhanVien, NhanVien3 ⊆ NhanVien

NhanVien1 ∩ NhanVien2 = ∅ , NhanVien1 ∩ NhanVien3= ∅ , NhanVien2 ∩

3.1.2 Truy vấn phân mảnh dọc

Truy vấn trên bảng NhanVien

SELECT MaNhanVien, TenNhanVien into NhanVienD1

SELECT MaNhanVien, ChucVu into NhanVienD2

Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt

3.1.3 Truy vấn phân mảnh hỗn hợp

SELECT MaPhieuXuat, MaVatTu into PhieuXuatHH1

SELECT MaLop, SoLuongXuat into PhieuXuatHH2

SELECT MaLop, NgayXuat into PhieuXuatHH3

Dễ thấy cách mảnh thỏa mãn được tính tái thiết, đầy đủ và tách biệt

PhieuXuat1 ⊆ PhieuXuat, PhieuXuat2 ⊆ PhieuXuat, PhieuXuat3 ⊆ PhieuXuat PhieuXuat = PhieuXuat1 ⋈ PhieuXuat2⋈ PhieuXuat3

3.2 Truy v n tái thi t ấn tái thiết ết

/* Lấy thông tin về số lượng tồn kho của từng vật tư: */

SELECT dv.MaVatTu, dv.TenVatTu, dv.DonViTinh,

COALESCE(SUM(kvt.SoLuongNhap), 0) - COALESCE(SUM(px.SoLuongXuat),

LEFT JOIN KhoVatTu kvt ON dv.MaVatTu = kvt.MaVatTu

LEFT JOIN PhieuXuat px ON dv.MaVatTu = px.MaVatTu

GROUP BY dv.MaVatTu, dv.TenVatTu, dv.DonViTinh;

/* Lấy thông tin về các phiếu nhập kho và nhà cung cấp: */

SELECT pnk.MaPhieuNhapKho, dv.TenVatTu, kvt.SoLuongNhap, ncc.TenNhaCungCap

JOIN KhoVatTu kvt ON pnk.MaPhieuNhap = kvt.MaPhieuNhap

JOIN DanhMucVatTu dv ON kvt.MaVatTu = dv.MaVatTu

JOIN NhaCungCap ncc ON pnk.MaNhaCungCap = ncc.MaNhaCungCap;

/* Lấy thông tin về các phiếu xuất kho và nhân viên thực hiện: */

SELECT px.MaPhieuXuat, dv.TenVatTu, px.SoLuongXuat, nv.TenNhanVien, nv.ChucVu, px.NgayXuat

JOIN DanhMucVatTu dv ON px.MaVatTu = dv.MaVatTu

JOIN NhanVien nv ON px.MaVatTu = nv.MaNhanVien;

Truy vấn tái thiết

4.1 Cho biết tên chi nhánh có tên kho = “Kho A” p: SELECT ChiNhanh.TenChiNhanh

WHERE ChiNhanh.MaKho = Kho.Makho AND Kho.TenKho = “ Kho A” p1: SELECT Kho.Makho into Kho1

WHERE Kho.TenKho = “Kho A” p2: SELECT TenChiNhanh

WHERE ChiNhanh.MaKho = Kho1.MaKho

Truy vấn p đã được rút gọn thành chuỗi truy vấn p1p2.

4.2 Cho biết tên Miền có Mã miền= “mn” và có Mã kho= “k1” q: SELECT TenMien

WHERE Mien.MaMien = ChiNhanh.MaMien AND makho= “k1” AND Mien.MaMien = “mn”

TỐI ƯU TRUY VẤN BẰNG THUẬT TOÁN INGRES

Cho biết tên chi nhánh có tên kho = “Kho A”

WHERE ChiNhanh.MaKho = Kho.Makho AND Kho.TenKho = “ Kho A” p1: SELECT Kho.Makho into Kho1

WHERE Kho.TenKho = “Kho A” p2: SELECT TenChiNhanh

WHERE ChiNhanh.MaKho = Kho1.MaKho

Truy vấn p đã được rút gọn thành chuỗi truy vấn p1p2.

Cho biết tên Miền có Mã miền= “mn” và có Mã kho= “k1”

WHERE Mien.MaMien = ChiNhanh.MaMien AND makho= “k1” AND Mien.MaMien = “mn” q1: SELECT ChiNhanh.MaMien into ChiNhanh1

WHERE Mien.MaMien = ChiNhanh1.MaMien AND MaMien= “mn” q2: SELECT TenMien into ChiNhanh2

WHERE Mien.MaMien = ChiNhanh1.MaMien q3: SELECT TenMien

Truy vấn q đã được rút gọn thành chuỗi truy vấn q1 q2q3.

XÂY DỰNG CÂY ĐẠI SỐ QUAN HỆ VÀ RÚT GỌN CÂU TRUY VẤN

Cho biết tên nhân viên có giới tính nam và có mã vật tư là MUT

WHERE NV.MANV = XuatHang.MANV AND GioiTinh = “1” AND MaVatTu =

Cây đại số quan hệ ban đầu

=> Câu truy vấn sau khi rút gọn

WHERE XuatHang2.MANV = NV32.MANV AND GioiTinh = “1” AND MaVatTu= “MUT”

Đưa ra tên nhân viên có mã chi nhánh là CN1 và có mã miền là mb

WHERE NV.MACN= ChiNhanh.MACN

AND ChiNhanh.MaMien = Mien.MaMien

Cây đại số quan hệ ban đầu

Cây đại số quan hệ rút gọn

=> Câu truy vấn sau khi rút gọn

Ngày đăng: 12/01/2024, 12:11

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w