1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn học phần hệ quản trị cơ sở dữ liệu đề tài thiết kế và quản trị cơ sở dữ liệucho cửa hàng tạp hóa

48 4 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

Định dạng
Số trang 48
Dung lượng 3,16 MB

Cấu trúc

  • PHẦN 1: GIỚI THIỆU BÀI TOÁN (7)
  • PHẦN 2: THIẾT KẾ VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU (7)
    • A- Thiết kế cơ sở dữ liệu (7)
      • I. Các bảng dữ liệu (7)
      • II. Mô hình quan hệ (11)
    • B- Cài đặt cơ sở dữ liệu (11)
      • I- Tạo bảng (11)
      • II- Chèn dữ liệu vào bảng (16)
      • III- Các lệnh T_SQL (19)
  • PHẦN 3: KẾT LUẬN VÀ ĐỀ XUẤT (47)
  • TÀI LIỆU THAM KHẢO (48)
    • YBảng 2. 1: Mô hình quan hệ quản lí bán hàng (0)

Nội dung

Chủ cửa hàng muốn cắt giảm nhân công để giảm chi phí quản lí nhưng do có quá nhiều sản phẩm nên không thể quản lí được hết thường xuyên xảy ra tình trạng không kịp thời - Các đối tượng s

GIỚI THIỆU BÀI TOÁN

- Giới thiệu đơn vị khảo sát: Cửa hàng tạp hóa Nghiệm Thu có ba nhân viên nhưng sau khi dịch Covid bùng phát thì doanh thu cửa hàng sụt giảm Chủ cửa hàng muốn cắt giảm nhân công để giảm chi phí quản lí nhưng do có quá nhiều sản phẩm nên không thể quản lí được hết thường xuyên xảy ra tình trạng không kịp thời

- Các đối tượng sử dụng cơ sở dữ liệu: chủ cửa hàng tạp hóa

- Các đối tượng cần lưu trữ: hàng hóa, khách hàng, nhà cung cấp, hóa đơn xuất nhập hàng hóa.

- Các yêu cầu thiết kế và quản trị cơ sở dữ liệu:

+ Lưu trữ các khách mua hàng thân thiết để có chương trình khuyến mãi thích hợp để kích cầu thị trường, nhà cung cấp, các hóa đơn xuất nhập hàng hóa

+ Có thông báo khi mặt hàng tồn kho đạt số lượng báo động+ Thông báo để điều chỉnh giá bán kịp thời tránh tình trạng lỗ

THIẾT KẾ VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU

Thiết kế cơ sở dữ liệu

Tên Ý nghĩa Kiểu Độ rộng

MaHH Mã hàng hóa Char 4

TenHH Tên hàng hóa nVarchar 100

DvTinh Đơn vị tính nVarchar 10

PhanTram Tỷ lệ phần trăm Real

Tên Ý nghĩa Kiểu Độ rộng

SoDH Số đơn hàng Char 4

NgayDH Ngày đặt hàng Datetime

MaNCC Mã nhà cung cấp Char 3

Tên Ý nghĩa Kiểu Độ rộng

SoDH Số đơn hàng Char 4

NgayDH Ngày đặt hàng Datetime

MaNCC Mã nhà cung cấp Char 3

Tên Ý nghĩa Kiểu Độ rộng

SoDH Số đơn hàng Char 4

MaHH Mã hàng hóa Char 4

SlDat Số lượng đặt Int

Tên Ý nghĩa Kiểu Độ rộng

SoPN Số phiếu nhập hàng Char 4

Ngaynhap Ngày nhập hàng Datetime

SoDH Số đơn đặt hàng Char 4

Tên Ý nghĩa Kiểu Độ rộng

SoPN Số phiếu nhập hàng Char 4

MaHH Mã hàng hóa Char 4

SlNhap Số lượng nhập hàng Int

DgNhap Đơn giá nhập hàng Money

Tên Ý nghĩa Kiểu Độ rộng

SoPX Số phiếu xuất hàng Char 4

Ngayxuat Ngày xuất hàng Datetime

MaKH Mã khách hàng char 3

Tên Ý nghĩa Kiểu Độ rộng

SoPX Số phiếu xuất hàng Char 4

MaHH Mã hàng hóa Char 4

SlXuat Số lượng xuất hàng Int

DgXuat Đơn giá xuất hàng Money

Tên Ý nghĩa Kiểu Độ rộng

MaHH Mã hàng hóa Char 4

SlDau Số lượng tồn đầu kỳ Int

TongSLN Tổng số lượng nhập trong kỳ

TongSLX Tống số lượng xuất trong kỳ

SlCuoi Số lượng tồn cuối kỳ Int

Tên Ý nghĩa Kiểu Độ rộng

MaKH Mã khách hàng Char 3

TenKH Tên khách hàng nVarchar 100

STT Bảng Cột Bảng tham chiếu

Bảng 1 11: Ràng buộc khóa ngoại

II.Mô hình quan hệ

Bảng 2 1: Mô hình quan hệ quản lí bán hàng

Cài đặt cơ sở dữ liệu

1.Tạo CSDL của cửa hàng

2.Tạo bảng Hàng Hóa create table HANGHOA

PhanTram real default 20, unique(TenHH), check(Phantram>=0 and PhanTram0), foreign key(MaHH) references HANGHOA(MaHH), foreign key(SoDH) references DONDH(SoDH)

6.Tạo bảng Phiếu Nhập create table PNHAP

Ngaynhap datetime default getdate(), SoDH char(4) null, primary key(SoPN), foreign key(SoDH) references DONDH(SoDH) )

7.Tạo bảng Chi Tiết Phiếu Nhập create table CTPNHAP

DgNhap money null, primary key(SoPN,MaHH), check(SlNhap>0 and DgNhap>0), foreign key(MaHH) references HANGHOA(MaHH), foreign key(SoPN) references PNHAP(SoPN)

8.Tạo bảng Phiếu Xuất create table PXUAT

Ngayxuat datetime default getdate(),MaKH char(3) null, primary key(SoPX)

9.Tạo bảng Chi tiết Phiếu Xuất create table CTPXUAT

DgXuat money null, check(SlXuat>0 and DgXuat>0), primary key(SoPX,MaHH), foreign key(MaHH) references HANGHOA(MaHH), foreign key(SoPX) references PXUAT(SoPX)

10.Tạo bảng Tồn Kho create table TONKHO

SlCuoi as SlDau+TongSLN-TongSLX, check(SlDau>=0 and TongSLN>=0 and TongSLX>=0), primary key(Namthang,MaHH), foreign key(MaHH) references HANGHOA(MaHH) )

11.Tạo bảng Khách Hàng create table KHACHHANG

TenKH nvarchar(100) not null, Diachi nvarchar(100) not null, Dienthoai varchar(20) default 'chưa có', primary key(MaKH), unique(TenKH,Diachi),

II-Chèn dữ liệu vào bảng

4.Bảng Chi Tiết Đơn Đặt Hàng

6.Bảng Chi Tiết Phiếu Nhập

8.Bảng Chi Tiết Phiếu Xuất

1.1.Thiết kế view vw_CtietNhapXuat Hiển thị chi tiết nhập xuất của hàng hóa ,các thông tin hiển thị gồm : Mã hàng hóa,Tên hàng hóa,Tổng số lượng nhập,Tổng số lượng xuất của mặt hàng

1.2 Thiết kế view vw_CtietPXuatX003 Hiển thị thông tin chi tiết của phiếu xuất X003, các thông tin hiển thị gồm: Mã vâ N t tư, số lượng xuất, đơn giá xuất, ngày xuất, tên khách hàng

1.3.Thống kê tình hình nhập hàng và đặt hàng của hàng hóa chi tiết với: Số đơn hàng, Mã hàng hóa, Tên hàng hóa,Tổng toàn bộ số lượng đặt và nhập hàng hóa

1.4.Hiển thị thông tin giá bán của các mặt hàng hóa chi tiết với: Mã hàng hóa, Tên hàng hóa, đơn vị tính , giá bán

1.5 Hiển thị thông tin giá mua của các mặt hàng hóa chi tiết với: Mã hàng hóa,Tên hàng hóa,đơn vị tính và giá mua

1.6 Hiển thị các thông tin chi tiết phiếu nhâ N p trong ngày 02/11/2021, các thông tin hiển thị gồm: Số phiếu nhâ N p, mã hàng hóa, tên hàng hóa, số lượng nhâ N p, đơn giá nhâ N p,ngày nhập

1.7.Hiển thị danh sách mã hàng hóa, tên hàng hóa của các hàng hóa được nhâ N p vào kho nhưng chưa được xuất lWn nào

1.8 Tìm phWn trăm số lượng đã đặt hàng của từng vật tư trên tổng cộng các số lượng đã đặt hàng của toàn bộ vật tư Dữ liệu hiển thị gồm tên vật tư, tổng số lượng đặt theo vật tư, tổng toàn bộ số lượng đặt, phWn trăm

1.9.Thống kê số lượng nhập của các mặt hàng hóa trong từng năm tháng tương ứng(không sử dụng tồn kho),thông tin hiển thị gồm: Mã hàng hóa,Tên hàng hóa,Tổng số lượng nhập,thời gian nhập hàng

1.10.Thống kê số lượng xuất của các mặt hàng hóa trong từng năm tháng tương ứng(không sử dụng tồn kho),thông tin hiển thị gồm: Mã hàng hóa,Tên hàng hóa,Tổng số lượng xuất,thời gian xuất hàng

1.11.Hiển thị thông tin nhà cung cấp có số đơn đặt hàng cao nhất , thông tin hiển thị gồm: Mã nhà cung cấp,Tên nhà cung cấp,Số lWn đã đặt hàng

1.12 Thống kê số lWn mua hàng của khách,thông tin hiển thị :Mã khách hàng,Tên khách hàng,Địa chỉ,Số điện thoại và số lWn đã mua ở cửa hàng

1.13 Hiển thị danh sách các khách hàng gồm các thông tin mã khách hàng, tên khách hàng, địa chỉ của những khách hàng chưa có số điện thoại

1.14.Thống kê số phiếu xuất theo tháng ,thông tin hiển thị gồm năm xuất, tháng xuất và tổng số phiếu xuất theo tháng

1.15.Thống kê số phiếu nhập theo tháng ,thông tin hiển thị gồm năm xuất, tháng xuất và tổng số phiếu nhập theo tháng

1.16 In ra danh sách các hàng hóa (MaHH,TenHH) không bán được trong năm 2021

1.17 In ra doanh thu của cửa hàng bán được trong năm 2021

1.18 Hiển thị hàng hóa (MaHH, TenHH) có tổng số lượng bán ra thấp nhất trong năm 2021

_ Xây dựng trigger thêm mới dữ liệu vào bảng HANGHOA với tên tg_HANGHOA_Them Trong đó cWn kiểm tra ràng buộc dữ liệu hợp lệ: Dữ liệu thêm vào phải là duy nhất

Create trigger tg_HANGHOA_Them on HANGHOA for insert as begin declare @TenHH nvarchar(100), @dem int select @TenHH=TenHH from inserted select @dem=COUNT(TenHH) from HANGHOA where TenHH=@TenHH if @dem>=2 begin print N'Lỗi trùng tên hàng hóa!' rollback tran end end go

_ Xây dựng trigger xóa dữ liệu trong bảng HANGHOA với tên tg_HANGHOA_Xoa Trong đó cWn kiểm tra ràng buộc dữ liệu: Mã hàng hóa này không tồn tại trong bảng CTPXUAT hoặc CTPNHAP, CTDONDH

Create trigger tg_HANGHOA_Xoa on HANGHOA for delete as begin declare @MaHH char(4), @dem int select @MaHH=MaHH from deleted select @dem=COUNT(MaHH) from CTPXUAT where MaHH=@MaHH if @dem>=2 begin print N'Dữ liệu về hàng hóa này đang được sử dụng Không thể xóa!' rollback tran end select @dem=COUNT(MaHH) from CTPNHAP where MaHH=@MaHH if @dem>=2 begin print N'Dữ liệu về hàng hóa này đang được sử dụng Không thể xóa!' rollback tran end select @dem=COUNT(MaHH) from CTDONDH where MaHH=@MaHH if @dem>=2 begin print N'Dữ liệu về hàng hóa này đang được sử dụng Không thể xóa!' rollback tran end end go

_ Xây dựng trigger sửa dữ liệu trong bảng HANGHOA với tên tg_HANGHOA_Sua Trong đó cWn kiểm tra điều kiện ràng buộc dữ liệu hợp lệ: Dữ liệu đó là duy nhất

Create trigger tg_HANGHOA_Sua on HANGHOA for update as begin declare @TenHH nvarchar(100), @dem int select @TenHH=TenHH from inserted select @dem=COUNT(TenHH) from HANGHOA where TenHH=@TenHH if @dem>=2 begin print N'Lỗi trùng tên hàng hóa!' rollback tran end end go b.

Ngày đăng: 31/03/2024, 17:01

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

TÀI LIỆU LIÊN QUAN

w