Tải bản đầy đủ (.docx) (44 trang)

Thiết kế và cài đặt một kho dữ liệu cho một hệ thống xử lý đặt hàng của khách hàng cho một công ty

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.05 MB, 44 trang )

Đề tài : Thiết kế và cài đặt một kho dữ liệu cho
một hệ thống xử lý đặt hàng của khách hàng cho một công ty
I. Giới thiệu
Để thiết kế một kho dữ liệu cần bắt đầu xác định mục yêu cầu nghiệp vụ
của kho dữ liệu, đồng nghĩa với việc chúng ta phải xác định được mục tiêu và
phạm vi của bài toán
1. Mục tiêu
Chúng ta cần xác định lý do doanh nghiệp muốn xây dựng một kho dữ
liệu riêng thông qua các câu hỏi phỏng vấn chiến lược. Bằng việc thực hiện các
câu hỏi phỏng vấn chiến lược, chúng ta sẽ xác định được mục tiêu của doanh
nghiệp đó khi xây dựng kho dữ liệu.
- Lĩnh vực hoạt động của doanh nghiệp: Kinh doanh, cung cấp các mặt
hàng cho 2 đối tượng khách hàng chính là khách du lịch thường được dẫn
đến bởi các hướng dẫn viên các đoàn du lịch, loại hai bao gồm những
khách hàng đặt hàng qua đường bưu điện.
- Những ứng dụng nghiệp vụ đang được doanh nghiệp sử dụng: Doanh
nghiệp sử dụng nhiều hệ thống ứng dụng nghiệp vụ khác nhau như quản
lý thông tin khách hàng, quản lý cửa hàng, quản lý số lượng và lượng tiêu
thụ mặt hàng…
- Vấn đề đang gặp phải hiện nay của doanh nghiệp: Doanh nghiệp cần
quản lý thông tin khách hàng, cửa hàng và mặt hàng. Mỗi khách hàng chỉ
sống ở một thành phố và doanh nghiệp sẽ phải cố gắng đáp ứng các mặt
hàng trong đơn hàng của khách bằng cách lấy từ kho ở thành phố mà
khách hàng đó sinh sống. Nếu những yêu cầu đó không thể đáp ứng thì
công ty sẽ chuyển yêu cầu tới các thành phố khi đến khi mặt hàng có đủ
để cung cấp. Một số thông tin xử lý là rất quan trọng đối với doanh
nghiệp này. Ví dụ, tổng số lượng mỗi mặt hàng được lưu trữ tại mỗi thành
phố. Sau mỗi lần một mặt hàng được phân phối (được bán), doanh nghiệp
này cần biết tổng số lượng mỗi mặt hàng còn lại tại tất cả các cửa hàng
trong một thành phố.
Ban lãnh đạo doanh nghiệp cần giải pháp cho những vấn đề đang gặp


phải, kho dữ liệu được chọn như là phương pháp giải quyết các vấn đề.
2. Phạm vi
Một trong những nguyên nhân dẫn đến thất bại khi xây dựng một kho dữ
liệu là xác định sai phạm vi xây dựng kho dữ liệu. Việc xây dựng một kho dữ
liệu đáp ứng nhiều nghiệp vụ khác nhau là rất khó khăn với nhiều rủi ro về tiền
bạc. Trong thực tế, người ta thường bắt đầu xây dựng dữ liệu cho một vài


nghiệp vụ nhất định rồi mới mở rộng dần nếu muốn.
Trong bài toán xây dựng kho dữ liệu cho doanh nghiệp này, chúng ta xác
định phạm vi xây dựng kho dữ liệu là quản lý tổng số lượng mỗi mặt hàng được
lưu trữ tại mỗi thành phố. Sự lựa chọn này xuất phát từ các yếu tố:
- Quản lý tổng số lượng mỗi mặt hàng còn lại tại tất cả các cửa hàng trong
một thành phố đóng vai trò quan trọng trong cách điều hành kinh doanh,
nhằm cung cấp thông tin hỗ trợ lãnh đạo quyết định việc đáp ứng đầy đủ
các yêu cầu của khách hàng từ những cửa hàng nằm trong thành phố mà
khách hàng sinh sống. Mỗi đơn đặt hàng của khách có thể đặt thoải mái
về số lượng và số các mặt hàng.
- Thông tin tổng số lượng mặt hàng giúp nhà lãnh đạo ra quyết định đem
lại hiệu quả kinh doanh: giảm thiểu chi phí, luôn chủ động được cân đối,
điều độ nguồn nhập xuất đáp ứng ổn định nguồn hàng cung cấp cho
khách hàng.
- Ứng dụng kỹ thuật OLAP để xây dựng khối dữ liệu phân tích khách hàng,
mặt hàng….. của doanh nghiệp theo hướng đa chiều.
Như vậy, việc lựa chọn phạm vi xây dựng kho dữ liệu hợp lý giúp có cơ
hội kinh doanh tốt hơn.
II. Yêu cầu nghiệp vụ
Doanh nghiệp bao gồm nhiều cửa hàng
- Mỗi cửa hàng nằm tại một thành phố và có nhiều cửa hàng trong
một thành phố.

- Mỗi thành phố có một văn phòng đại diện để quản lý tất cả các cửa
hàng của thành phố đó.
- Mỗi cửa hàng có một số lượng các mặt hàng với số lượng hàng
khác nhau.
- Doanh nghiệp lưu trữ thông tin về các khách hàng bao gồm hai
loại:
+ Loại thứ nhất là khách du lịch thường được dẫn đến bởi các
hướng dẫn viên các đoàn du lịch.
+ Loại hai bao gồm những khách hàng đặt hàng qua đường
bưu điện.
- Hệ thống lưu trữ dữ liệu về thành phố sinh sống của các khách
hàng, cùng với đơn đặt hàng đầu tiên của khách hàng.
- Mỗi khách hàng chỉ sống ở một thành phố.
- Doanh nghiệp sẽ cố gắng đáp ứng các mặt hàng trong đơn hàng của
khách bằng cách lấy từ kho ở thành phố mà khách hàng đó sinh
sống. Nếu những yêu cầu đó không thể đáp ứng thì công ty sẽ
chuyển yêu cầu tới các thành phố khi đến khi mặt hàng có đủ để


cung cấp.
- Mỗi đơn đặt hàng của khách có thể đặt thoải mái về số lượng và số
các mặt hàng và mỗi đơn đặt hàng được xác định bởi một mã số
đơn đặt hàng.
Để đáp ứng được nhu cầu của khách hàng, hệ thống kho dữ liệu trích lọc
dữ liệu từ hai cơ sở dữ liệu hiện có để cho vào kho dữ liệu và cung cấp các xử lý
phân tích trực tuyến với các thao tác cuộn lên, khoan xuống, chọn và chiếu dựa
trên những yêu cầu chọn lựa của khách hàng và các bảng theo chiều để đáp ứng
yêu cầu của người sử dụng. Thiết lập một chiều thời gian, hệ thống sẽ sinh một
báo cáo Phân tích trực tuyến (OLAP) cho những yêu cầu sau:
1. Tìm tất cả các cửa hàng cùng với thành phố, bang, số điện thoại, mô tả, kích

cỡ, trọng lượng và đơn giá của tất cả các mặt hàng được bán ở kho đó.
2. Tìm tất cả các đơn đặt hàng với tên khách hàng và ngày đặt hàng được thực
hiện bởi khách hàng đó
3. Tìm tất cả các cửa hàng cùng với tên thành phố và số điện thoại mà có bán
các mặt hàng được đặt bởi một khách hàng nào đó
4. Tìm địa chỉ văn phòng đại diện với tên thành phố, bang của tất cả các cửa
hàng lưu kho một mặt hàng nào đó với số lượng trên mức cụ thể.
5. Với mỗi một đơn đặt hàng của khách, liệt kê các mặt hàng được đặt cùng với
mô tả, mã cửa hàng, tên thành phố và các cửa hàng có bán mặt hàng đó.
6. Tìm thành phố và bang mà một khách hàng nào đó sinh sống
7. Tìm mức độ tồn kho của một mặt hàng cụ thể tại tất cả các cửa hàng ở một
thành phố cụ thể nào đó
8. Tìm các mặt hàng, số lượng đặt, khách hàng, cửa hàng và thành phố của một
đơn đặt hàng.
9. Tìm các khách hàng du lịch, khách hàng đặt theo đường bưu điện và khách
hàng thuộc cả hai loại
III. Đặc tả chức năng
1.Đặc tả đầu vào
- Kho dữ liệu là cơ sở dữ liệu rất lớn, hướng về tính ổn định. Kho dữ liệu
được lấy từ các nguồn khác nhau: MS SQL Server và Oracle.
- Cơ sở dữ liệu Văn phòng đại diện:
Khách hàng (Mã KH, Tên KH, Mã Thành phố, Ngày đặt hàng đầu
tiên)
Khách hàng du lịch (*Mã KH, Hướng dẫn viên du lịch, Thời gian)
Khách hàng bưu điện (* Mã KH, Địa chỉ bưu điện, Thời gian)
- Cơ sở dữ liệu Bán hàng:


Văn phòng đại diện (Mã Thành phố, Tên Thành phố, Địa chỉ VP,
Bang, Thời gian)

Cửa hàng (Mã cửa hàng, * Mã Thành phố, Số điện thoại, Thời
gian)
Mặt hàng (Mã MH, Mô tả, Kích cỡ, Trọng lượng, Giá, Thời gian)
Mặt hàng_được lưu trữ (* Mã cửa hàng, * Mã MH, Số lượng trong
kho, Thời gian)
Đơn đặt hàng (Mã đơn, Ngày đặt hàng, Mã KH)
2. Đặc tả đầu ra
➢ Tất cả các cửa hàng cùng với thành phố, bang, số điện thoại, mô tả, kích
cỡ, trọng lượng và đơn giá của tất cả các mặt hàng được bán ở kho đó.
➢ Tất cả các đơn đặt hàng với tên khách hàng và ngày đặt hàng được thực
hiện bởi khách hàng đó
➢ Tất cả các cửa hàng cùng với tên thành phố và số điện thoại mà có bán
các mặt hàng được đặt bởi một khách hàng nào đó
➢ Địa chỉ văn phòng đại diện với tên thành phố, bang của tất cả các cửa
hàng lưu kho một mặt hàng nào đó với số lượng trên mức cụ thể.
➢ Với mỗi một đơn đặt hàng của khách, liệt kê các mặt hàng được đặt cùng
với mô tả, mã cửa hàng, tên thành phố và các cửa hàng có bán mặt hàng
đó.
➢ Thành phố và bang mà một khách hàng nào đó sinh sống
➢ Mức độ tồn kho của một mặt hàng cụ thể tại tất cả các cửa hàng ở một
thành phố cụ thể nào đó
➢ Các mặt hàng, số lượng đặt, khách hàng, cửa hàng và thành phố của một
đơn đặt hàng.
➢ Các khách hàng du lịch, khách hàng đặt theo đường bưu điện và khách
hàng thuộc cả hai loại
IV. Thiết kế kho dữ liệu
1. Chuyển đổi lược đồ dữ liệu giữa các mô hình
Bước 1: Bảng phân loại các quan hệ và các thuộc tính
Relation
name


Reltyp
e

Khách hàng PR1

Primary
key
Mã KH

KAP

KAG

FKA

NKA
Tên KH,
Mã Thành phố,
Ngày đặt hàng


đầu tiên
Khách hàng PR2
du lịch

Mã KH

Mã KH


Hướng dẫn
viên du lịch,
Thời gian

Khách hàng PR2
bưu điện

Mã KH

Mã KH

Địa chỉ bưu
điện,
Thời gian

Văn phòng
đại diện

PR1


Thành
phố

Cửa hàng

PR1

Mã cửa
hàng


Mặt hàng

PR1

Mã MH

Mặt
hàng_được
lưu trữ

SR1

Mã cửa
hàng,
Mã MH

Đơn đặt
hàng

PR1

Mã đơn

Mặt hàng
được đặt

SR1

Mã đơn,

Mã MH

Tên Thành
phố,
Địa chỉ VP,
Bang,
Thời gian

Thành
phố

Số điện thoại,
Thời gian
Mô tả,
Kích cỡ,
Trọng lượng,
Giá,
Thời gian

Mã cửa
hàng
Mã MH

Số lượng trong
kho,
Thời gian
Ngày đặt hàng,
Mã KH

Mã đơn

Mã MH

Bước 2: Ánh xạ PR1 thành thực thể

Số lượng đặt,
Giá đặt,
Thời gian


Khách
hàng
Mã KH
Tên KH
Mã Thành
phố
Ngày đặt
hàng đầu tiên
Mặt
hàng
Mã MH

Văn
phòng
đại diện

Cửa
hàng

Mã Thành
phố


Mã cửa hàng
Số điện thoại
Thời gian
Đơn đặt
hàng

Tên Thành
phố

Mã đơn

Địa chỉ VP

Ngày đặt
hàng

Bang

Mã KH

Thời gian

Mô tả
Bước 3: Ánh xạ mỗi PR2 sang một thực thể lớp con hoặc là một thực thể yếu
Kích cỡ
Mã KH

Trọng lượng Khách
Giá


Tên KH

hàng

Ngày đặt hàng đầu tiên

Thời gian

Mã thành phố

o

Khách hàng bưu
điện

Khách hàng du
lịch

Mã KH

Mã KH

Địa chỉ bưu điện

Hướng dẫn viên du lịch

Thời gian

Thời gian


Bước 4: Ánh xạ SR1 thành quan hệ hai ngôi hoặc nhiều ngôi


Bước 5: Ánh xạ SR2 thành quan hệ hai ngôi hoặc nhiều ngôi
Bước 6:Ánh xạ mỗi FKA thành một quan hệ
1
Văn phòng đại diện

n

Quản lý

Mã Thành phố
Tên Thành phố
Địa chỉ VP
Bang
Thời gian

Cửa hàng
Mã cửa hàng
Số điện thoại
Thời gian

Bước 7: Ánh xạ phụ thuộc bao hàm sang ngữ nghĩa
Các phụ thuộc bao hàm phát sinh

Ngữ nghĩa suy ra

Cửa hàng.Mã Thành phố ⊆ VP đại

diện.Mã Thành phố

Quan hệ một – nhiều giữa thực thể VP
đại diện và Cửa hàng

Mặt hàng_được lưu trữ.Mã cửa hàng
⊆ Cửa hàng. Mã cửa hàng
Mặt hàng_được lưu trữ.Mã MH ⊆
Mặt hàng.Mã MH

Quan hệ nhiều – nhiều giữa thực thể
Cửa hàng và Mặt hàng


Mặt hàng được đặt.Mã mặt hàng ⊆
Mặt hàng.Mã mặt hàng MH_được
đặt.Mã đơn ⊆ Đơn đặt hàng.Mã đơn

Quan hệ nhiều – nhiều giữa thực thể
Đơn đặt hàng và Mặt hàng

Khách hàng bưu điện.Mã KH ⊆
Khách hàng.Mã KH
Khách hàng du lịch.Mã KH ⊆
Khách hàng.Mã KH

Quan hệ khái quát hóa giao nhau giữa
thực thể Khách hàng và Khách hàng
bưu điện, Khách hàng du lịch


Bước 8: Từ kết quả của 7 bước trên ta thu được mô hình EER như hình vẽ dưới
đây:

Mã Thành Phố
Tên thành phố
Địa chỉ VP
Bang
Thời gian

Mã cửa hàng
Số điện thoại
Thời gian

1

Văn phòng đại diện

n
Quản lý

Cửa hàng

n
Số lượng trong
kho
Thời gian

Mặt hàng được lưu trữ

m

Đơn đặt hàng

Mã đơn
Ngày đặt hàng
Mã KH

n

Mặt hàng được đặt

Số lượng đặt
Giá đặt
Thời gian

m

Mặt hàng
Mã MH
Mô tả
Kích cỡ
Trọng lượng
Giá
Thời gian


2. Tích hợp các lược đồ dữ liệu
Trộn các tập thực thể bằng quan hệ hai ngôi và khái quát hóa.
Văn phòng đại diện

1


n
Quản lý

Mã Thành phố
Tên Thành phố
Địa chỉ VP
Bang
Thời gian
Khách hàng
Mã KH
Tên KH
Ngày đặt hàng đầu tiên
Mã Thành phố

Khách hàng
Mã KH
Tên KH
Ngày đặt hàng đầu tiên

1

Quản lý

n

Đơn đặt hàng
Mã đơn
Ngày đặt hàng


Tích hợp các lược đồ trên ta được lược đồ EER như sau:


Mã KH
Địa chỉ bưu điện
Thời gian

Mã KH
Hướng dẫn viên
Thời gian

Khách hàng bưu
điện

Khách hàng du lich

o
1

n

Khách hàng
Mã KH
Tên KH
Ngày đặt hàng đầu
tiên

Quản lý

1


Mã Thành phố
Tên Thành phố
Địa chỉ VP
Bang
Thời gian

Văn phòng đại diện

1

n
Mã cửa hàng
Số điện thoại
Thời gian

n

Mã đơn
Ngày đặt hàng

Số lượng đặt
Giá đặt
Thời gian

1

n

Đơn đặt hàng


1
n

Quản ly

Cửa hàng

Đặt

n

Mặt hàng được lưu trữ

Số lượng trong kho
Thời gian

1

Mặt hàng được đặt

n
1

Mặt hàng
Mã MH
Mô tả
Kích cỡ
Trọng lượng
Giá

Thời gian

3. Thiết kế lược đồ hình sao
Từ yêu cầu nghiệp vụ và mối liên hệ giữa Cửa hàng - Mặt hàng, Đơn đặt hàng Mặt hàng ta tạo được 2 bảng Fact là Fact_CuaHang và Fact_DonDatHang
Với:
● Fact_CuaHang gồm các Dimension là: Văn phòng đại diện, Mặt hàng,
Cửa hàng, Thời gian và với Measure là: Tổng số lượng trong kho.
● Fact_DonDatHang gồm các Dimension là: Khách hàng, Mặt hàng, Đơn
đặt hàng, Cửa hàng, Thời gian và với Measure là: Tổng số lượng đặt,
Tổng giá đặt, Tổng giá.


Fact_CuaHang: Để quản lý các Mặt hàng trong Cửa hàng

Fact_DonDatHang: Để quản lý các giao dịch qua các Đơn đặt hàng


Lược đồ tổng

Ý nghĩa các bảng:
- Fact_DonDatHang
Tên thuộc tính

Ý nghĩa

Kiểu dữ
liệu

Ma_CuaHang


Mã của cửa hàng

int

Ma_MatHang

Mã mặt hàng

int

Ma_KhachHang

Mã khách hàng

int

Thoigian_key

Mã thời gian

int

Ma_Don

Mã đơn hàng

int

TongSoLuongD
at


Tổng số lượng hàng được đặt

int

TongGiaDat

Tổng giá của đơn đặt hàng

float


TongGia

Tổng giá của mặt hàng

float

- Fact_CuaHang
Tên thuộc tính

Ý nghĩa

Kiểu dữ
liệu

Ma_CuaHang

Mã của cửa hàng


int

Ma_MatHang

Mã mặt hàng

int

Ma_ThanhPho

Mã thành phố

int

Thoigian_key

Mã thời gian

int

TongSoLuong
TrongKho

Tổng số lượng mặt hàng trong kho

int

TongGia

Tổng giá mặt hàng


float

Ý nghĩa

Kiểu dữ
liệu

Ma_CuaHang

Mã của cửa hàng

int

Sodienthoai

Số điện thoại cửa hàng

varchar

Ý nghĩa

Kiểu dữ
liệu

Ma_Mathang

Mã mặt hàng

int


Mota

Mô tả mặt hàng

varchar

Kichco

Kích cỡ của mặt hàng

float

Trongluong

Trọng lượng của mặt hàng

float

- CuaHang
Tên thuộc tính

- MatHang
Tên thuộc tính


- ThoiGian
Tên thuộc tính

Ý nghĩa


Kiểu dữ
liệu

Thoigian_key

Mã thời gian

int

Ngay

Ngày

int

Tuan

Tuần

int

Thang

Tháng

int

Quy


Quý

int

Nam

Năm

int

- KhachHang
Tên thuộc tính

Ý nghĩa

Kiểu dữ
liệu

Ma_KhachHang

Mã khách hàng

int

TenKhachHang

Tên khách hàng

varchar


Ma_ThanhPho

Mã thành phố

int

NgayDatHangDauTien

Ngày đặt hàng đầu tiên của khách
hàng

date

- DonDatHang
Tên thuộc tính

Ý nghĩa

Kiểu dữ
liệu

Ma_Don

Mã đơn đặt hàng

int

NgayDatHang

Ngày đặt hàng


date

- VanPhongDaiDien


Tên thuộc tính

Ý nghĩa

Kiểu dữ
liệu

Ma_ThanhPho

Mã thành phố

int

TenThanhPho

Tên thành phố

varchar

DiaChiVP

Địa chỉ văn phòng

varchar


Bang

Bang

varchar

4. Các hàm nguyên thủy định nghĩa lược đồ
define cube DonDatHang_star[KhachHang, MatHang, DonDatHang, CuaHang,
ThoiGian]:
define dimension KhachHang as (Ma_KhachHang, TenKhachHang,
Ma_ThanhPho, NgayDatHangDauTien)
define dimension MatHang as (Ma_Mathang, Mota, Kichco, Trongluong)
define dimension DonDatHang as (Ma_Don, NgayDatHang)
define dimension CuaHang as (Ma_CuaHang, Sodienthoai)
define dimension Thoigian as (Thoigian_key, Ngay, Tuan, Thang, Quy, Nam)
TongSoLuongDat = sum(SoLuongDat), TongGiaDat = sum(GiaDat), TongGia
= sum(Gia)
define cube CuaHang_star[CuaHang, MatHang, ThanhPho, ThoiGian]:
define dimension CuaHang as (Ma_CuaHang, Sodienthoai)
define dimension MatHang as (Ma_Mathang, Mota, Kichco, Trongluong)
define dimension VanPhongDaiDien as (Ma_ThanhPho, TenThanhPho,
DiaChiVP, Bang)
define dimension Thoigian as (Thoigian_key, Ngay, Tuan, Thang, Quy, Nam)
TongSoLuongTrongKho = sum(SoLuongTrongKho), TongGia = sum(Gia)
5. Cơ sở dữ liệu


6. Sinh dữ liệu và dữ liệu các bảng sau khi sinh
a. Sinh dữ liệu

- Sử dụng tool có sẵn: mockaroo
- Một số bảng không sử dụng được tool: Viết code insert SQL
b. Dữ liệu các bảng sau khi sinh

DonDatHang: 100 bản ghi



CuaHang: 100 bản ghi


MatHang: 100 bản ghi


ThoiGian: 100 bản ghi


KhachHang: 100 bản ghi


VanPhongDaiDien: 100 bản ghi


KhachHangDuLich: 100 bản ghi


KhachHangBuuDien: 100 bản ghi


Fact_DonDatHang: 42 bản ghi



×