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

XÂY DỰNG hệ THỐNG bán HÀNG BẰNG mô HÌNH cơ sở dữ LIỆU PHÂN tán

83 200 1

Đ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 83
Dung lượng 9,46 MB

Nội dung

Trong cở sở dữ liệu phân tán việc giảm dư thừa phức tạp hơn vì ngoài hai lý do trên còn nhiều lý do để giảm dư thừa như: Làm tăng tính cục bộ của ứng dụng nếu dữ liệu được nhân bản tại t

Trang 1

HUỲNH QUỐC TUẤN

XÂY DỰNG HỆ THỐNG BÁN HÀNG BẰNG MÔ

HÌNH CƠ SỞ DỮ LIỆU PHÂN TÁN

LUẬN VĂN THẠC SĨ

Ngành: Công Nghệ Thông Tin

NGƯỜI HƯỚNG DẪN KHOA HỌC:

TS Nguyễn Gia Tuấn Anh– Trường ĐH Công Nghệ Thông Tin TP.HCM

Trang 2

Tôi xin cam đoan luận văn này do chính tôi thực hiện dưới sự hướng dẫn khoa học của TS Nguyễn Gia Tuấn Anh Các số liệu và kết quả nghiên cứu trong luận văn

là trung thực, do tôi khảo sát, phân tích, đánh giá và thực hiện Các thông tin trích dẫn trong luận văn này đều đã được chỉ rõ nguồn gốc

Tôi xin chịu trách nhiệm về lời cam đoan này

TP.Hồ Chí Minh, ngày 27 tháng 11 năm 2016

Người thực hiện

Huỳnh Quốc Tuấn

Trang 3

Tôi xin chân thành cảm ơn Bộ môn Khoa Học và Kỹ Thuật Thông Tin - Trường Đại học Công Nghệ Thông Tin – Đại Học Quốc Gia Thành Phố Hồ Chí Minh, quý Thầy, Cô đã tận tình giảng dạy, trang bị cho tôi kiến thức và tạo mọi điều kiện thuận lợi trong suốt quá trình học tập, nghiên cứu và thực hiện luận văn này

Với lòng kính trọng và biết ơn sâu sắc, tôi xin được bày tỏ lòng biết ơn đến TS Nguyễn Gia Tuấn Anh Thầy đã khuyến khích, tận tình chỉ dẫn tôi trong suốt thời gian nghiên cứu và thực hiện luận văn

Xin được gửi lời cảm ơn đến các cá nhân, doanh nghiệp đã giúp đỡ, chia sẻ thông tin, cung cấp cho tôi nguồn tư liệu, tài liệu hữu ích để phục cho quá trình nghiên cứu và thực hiện luận văn

Cuối cùng, tôi xin được gửi lời tri ân sâu sắc đến gia đình và những người bạn thân thiết đã động viên, hỗ trợ trong suốt quá trình học tập, làm việc, nghiên cứu và thực hiện luận văn

TP.Hồ Chí Minh, ngày 27 tháng 11 năm 2016

Người thực hiện

Huỳnh Quốc Tuấn

Trang 4

MỤC LỤC

MỤC LỤC 1

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 4

DANH MỤC CÁC BẢNG 5

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 6

MỞ ĐẦU 8

CHƯƠNG 1 - TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 10

1.1 Cơ sở dữ liệu phân tán 10

1.2 Hệ quản trị cơ sở dữ liệu phân tán 10

1.2.1 Định nghĩa 10

1.2.2 Các thành phần của hệ quản trị cơ sở dữ liệu phân tán 10

1.3 So sánh cơ sở dữ liệu phân tán và cơ sở dữ liệu tập trung 10

1.4 Ưu và nhược điểm của cơ sở dữ liệu phân tán 12

1.5 Thiết kế cơ sở dữ liệu phân tán 13

1.5.1 Khung thiết kế 13

1.5.2 Các phương pháp thiết kế cơ sở dữ liệu phân tán 13

1.5.3 Thiết kế phân đoạn 14

1.5.3.1 Phân đoạn đầy đủ 14

1.5.3.2 Phân đoạn cắt ngang 14

1.5.3.3 Phân đoạn cắt dọc 15

1.5.3.4 Phân đoạn hỗn hợp 16

1.6 Thiết kế phân phối các chiến lược 16

1.6.1 Tiêu chuẩn chung 16

1.6.2 Phân đoạn ngang 17

1.6.3 Phân đoạn dọc 18

Trang 5

1.7.1 Các khái niệm 19

1.7.2 Giải quyết mâu thuẫn dữ liệu trong môi trường phân tán 24

1.8 So sánh lý thuyết CSDLPT và CSDLPT trong SQL Server 25

CHƯƠNG 2 - MÔ TẢ HỆ THỐNG BÁN HÀNG 27

2.1 Bài toán thực tiễn 27

2.2 Một số nghiệp vụ quản lý bán hàng 27

2.3 Quy trình, phương pháp, thời gian thu thông tin và lập phiếu báo cáo 29

2.3.1 Mô tả các quy trình nghiệp vụ 29

2.3.2 Phát biểu bài toán 35

CHƯƠNG 3 - XÂY DỰNG HỆ THỐNG BÁN HÀNG 37

3.1 Công tác quản lý bán hàng 37

3.2 Phân tích chức năng hệ thống quản lý bán hàng 37

3.3 Thiết kế cơ sở dữ liệu phân tán cho hệ thống bán hàng 38

3.3.1 Mô tả dữ liệu mức quan niệm 38

3.3.2 Mô tả dữ liệu ở mức vật lý 42

3.3.3 Thiết kế phân mảnh 43

3.3.4 Thiết kế định vị 46

3.3.5 Thiết kế sơ đồ ánh xạ cục bộ 47

CHƯƠNG 4 - MÔ TẢ HỆ THỐNG 50

4.1 Môi trường HĐH, Database Server và Developer 50

4.2 Các chức năng hệ thống 51

4.2.1 Màn hình chính 51

4.3 So sánh chi phí thời gian giữa hai mô hình CSDLPT và CSDLTT 52

4.3.1 Phân mảnh ngang 52

Trang 6

CHƯƠNG 5 - KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 65

5.1 Kết luận 65

5.2 Hướng phát triển 65

TÀI LIỆU THAM KHẢO 67

PHỤ LỤC 69

Trang 7

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

Tiếng anh:

DBMS Database Management System

DDBMS Distributed Database Management System

Tiếng việt:

CSDLPT Cơ sở dữ liệu phân tán

CNTT Công nghệ thông tin

Trang 8

DANH MỤC CÁC BẢNG

Bảng 3.1: Bảng tần suất và nhu cầu khai thác dữ liệu 44 Bảng 3.2: Bảng danh sách các bảng tại các trạm 49 Bảng 4.1: Bảng so sánh chi phí thời gian thực thi câu lệnh SELECT giữa hai mô hình CSDLPT và CSDLTT 54 Bảng 4.2: Bảng so sánh chi phí thời gian thực thi câu lệnh INSERT giữa hai mô hình CSDLPT và CSDLTT 56 Bảng 4.3: Bảng so sánh chi phí thời gian thực thi câu lệnh UPDATE giữa hai mô hình CSDLPT và CSDLTT 59 Bảng 4.4: Bảng so sánh chi phí thời gian thực thi câu lệnh DELETE giữa hai mô hình CSDLPT và CSDLTT 61 Bảng 4.5: Bảng so sánh chi phí thời gian thực thi câu lệnh SELECT giữa hai mô hình CSDLPT ứng với phân mảnh hỗn hợp và CSDLTT 64

Trang 9

DANH MỤC CÁC HÌNH VẼ

Hình 1.1: Cách thức Snapshot Replication hoạt động 21

Hình 1.2: Cách thức Merge Replication hoạt động 22

Hình 1.3: Cách thức Transactional Replication hoạt động 23

Hình 2.1: Quy trình nhập hàng 31

Hình 2.2: Mẫu phiếu nhập hàng 31

Hình 2.3: Quy trình xuất hàng 32

Hình 2.4: Mẫu phiếu xuất hàng 33

Hình 2.5: Quy trình đổi trả hàng 34

Hình 2.6: Mẫu phiếu thu 34

Hình 2.7: Mẫu phiếu chi 35

Hình 3.1: Mô hình thực thể mối quan hệ 42

Hình 3.2: Thiết kế sơ đồ ánh xạ cục bộ 47

Hình 4.1: Mô hình hệ thống mạng triển khai 51

Hình 4.2: Màn hình chính sau khi đăng nhập 52

Hình 4.3: Kết quả thực thi câu lệnh SELECT chạy trên mô hình CSDLTT 53

Hình 4.4: Kết quả thực thi câu lệnh SELECT chạy trên mô hình CSDLPT 53

Hình 4.5: Kết quả thực thi câu lệnh INSERT chạy trên mô hình CSDLTT 54

Hình 4.6: Kết quả thực thi câu lệnh INSERT chạy trên mô hình CSDLPT 55

Hình 4.7: Kết quả SQL Server tự đồng bộ liệu từ trạm đến trung tâm khi chạy lệnh INSERT trên mô hình CSDLPT lần 1 56

Hình 4.8: Kết quả thực thi câu lệnh UPDATE chạy trên mô hình CSDLTT 57

Hình 4.9: Kết quả thực thi câu lệnh UPDATE chạy trên mô hình CSDLPT 58

Trang 10

Hình 4.10: Kết quả SQL Server tự đồng bộ liệu từ trạm đến trung tâm khi chạy lệnh UPDATE trên mô hình CSDLPT lần 1 58 Hình 4.11: Kết quả thực thi câu lệnh DELETE chạy trên mô hình CSDLTT 59 Hình 4.12: Kết quả thực thi câu lệnh DELETE chạy trên mô hình CSDLPT 60 Hình 4.13: Kết quả SQL Server tự đồng bộ liệu từ trạm đến trung tâm khi chạy lệnh DELETE trên mô hình CSDLPT lần 1 60 Hình 4.14: Kết quả thực nghiệm khác, khi thực thi câu lệnh SELECT chạy trên mô hình CSDLTT 62 Hình 4.15: Kết quả thực nghiệm khác, khi thực thi câu lệnh SELECT chạy trên mô hình CSDLPT 63

Trang 11

MỞ ĐẦU

Trong những năm gần đây với sự phát triển mạnh của nền kinh tế nước ta khi bước vào thời kỳ hội nhập, kèm theo đó là sự thay đổi về môi trường kinh doanh, các doanh nghiệp cũng dần thay đổi cách thức kinh doanh, doanh nghiệp giờ đây không còn tập trung tại một địa điểm cụ thể như trước, mà được chia thành nhiều chi nhánh được phân bố tại nhiều vị trí ở các thành phố, các quốc gia khác nhau nhằm gia tăng sức cạnh tranh Do đó việc tổ chức quản lý của các doanh nghiệp cũng trở nên khó khăn và phức tạp hơn nên đòi hỏi phải có tính chính xác, liên tục và đồng bộ giữa các

bộ phận tại các chi nhánh với nhau

Việc tổ chức quản lý dữ liệu trở nên phức tạp hơn, nó không còn là việc quản lý chỉ tập trung tại một chi nhánh duy nhất mà cần được quản lý tại tất cả các chi nhánh,

và đặc biệt các CSDL phải có mối liên hệ logic với nhau thông qua mạng máy tính

Do đó việc quản lý CSDL theo kiểu truyền thống, hay CSDL tập trung như trước đây

sẽ không giải quyết được các vấn đề nêu trên

Hiện nay công tác quản lý trong doanh nghiệp đa phần đều được tin học hóa, quản lý bán hàng là một trong các công tác quản lý quan trọng trong doanh nghiệp

nó phục vụ cho hoạt động kinh doanh, do đó cần phải theo dõi chặt chẽ, liên tục ở tất

cả các bộ phận Đối với các hệ thống lớn vấn đề xử lý thông tin cho kết quả nhanh chóng, chính xác là vấn đề được quan tâm nhiều nhất Việc xử lý thông tin được thực hiện trên môi trường mạng, do đó để tăng tốc độ xử lý thì ngoài việc xây dựng hạ tầng mạng, ta cần phải phân tán dữ liệu tại nhiều vị trí Như vậy cùng một hạ tầng mạng với tốc độ đường truyển như nhau nếu ta đặt CSDL phân tán tại nhiều vị trí thì quá trình xử lý thông tin cho kết quả nhanh hơn nhiều so với việc đặt CSDL tại một

vị trí Do đó chúng ta cần phải nghiên cứu CSDL để phân tán dữ liệu ra nhiều vị trí dựa vào tần suất sử dụng và khoảng cách địa lý của các đối tượng nhằm đáp ứng việc khai thác dữ liệu một cách nhanh chóng

Xuất phát từ những nhu cầu thực tế về công tác quản lý bán hàng tại các chi nhánh được phân tán khắp mọi nơi, cách xa về mặt địa lý đang gặp khó khăn về mặt

Trang 12

qua đó tôi sẽ xây dựng hệ thống bán hàng bằng mô hình CSDLPT để thay thế các công cụ quản lý thủ công hay CSDL theo kiểu tập trung trước đây

Mục tiêu mà đề tài hướng đến là trình bày tổng quan về CSDLPT, cách thiết kế CSDLPT, so sánh ưu và nhược điểm CSDLPT, từ đó ứng dụng CSDLPT để xây dựng

hệ thống bán hàng Trong đó đóng góp quan trọng là tập trung mạnh vào khả năng hổ trợ phân tán, cách giải quyết xung đột khi chạy phân tán trên SQL Server, đồng thời

so sánh chi phí thời gian thực thi các câu lệnh giữ hai mô hình CSDLPT và CSDL tập trung, qua đó cho biết khi nào nên dùng CSDLPT và khi nào nên dùng CSDL tập trung Để đáp ứng được mục tiêu đề ra thì cần giải quyết những vấn đề sau: tìm hiểu

lý thuyết về CSDLPT, cách phân tán dữ liệu trong SQL Server, quy trình nghiệp vụ công tác quản lý bán hàng, từ đó thiết kế CSDL phân tán cho hệ thống bán hàng

Ở đây tôi sử dụng hai phương pháp tiếp cận là nghiên cứu lý thuyết và thực nghiệm Đối với nghiên cứu lý thuyết tôi tiến hành thu thập các tài liệu liên quan đến CSDL phân tán, cách thiết kế CSDLPT, so sánh ưu và nhược điểm CSDLPT, cũng như khả năng hổ trợ phân tán trong SQL Server…Đối với nghiên cứu thực nghiệm tôi phân tích nghiệp vụ, quy trình quản lý bán hàng cho doanh nghiệp bán mặt hàng phụ tùng xe máy, từ đó vận dụng lý thuyết CSDLPT để xây dựng hệ thống quản lý bán hàng

Luận văn được tổ chức thành 5 chương, không bao gồm phần mở đầu và phụ lục thì có 4 chương chính, và chương kết luận

- Chương 1: Tổng quan về cơ sở dữ liệu phân tán

- Chương 2: Mô tả hệ thống bán hàng – Các nghiệp vụ quản lý bán hàng, mô tả quy trình nghiệp vụ

- Chương 3: Xây dựng hệ thống quản lý bán hàng – Phân tích các chức năng của

hệ thống quản lý bán hàng, từ đó thiết kế cơ sở dữ liệu phân tán

- Chương 4: Mô tả hệ thống - Phát triển ứng dụng quản lý bán hàng, so sánh chi phí thời gian giữa hai mô hình CSDLPT và CSDLTT

- Chương 5: Kết luận - Tổng kết các kết quả đạt được trong luận văn

Trang 13

CHƯƠNG 1 - TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN

Trong chương này luận văn sẽ trình bày những vấn đề liên quan đến CSDLPT như giới thiệu tổng quan về CSDLPT, các ưu và nhược điểm, cách thiết kế CSDLPT Đồng thời trình bày khả năng hổ trợ phân tán trong SQL Server, cùng cách giải quyết xung đột khi chạy phân tán dữ liệu

1.1 Cơ sở dữ liệu phân tán

Định nghĩa: Cơ sở dữ liệu phân tán là tập hợp dữ liệu logic thuộc về cùng một

hệ thống nhưng trải rộng nhiều điểm khác nhau trên mạng máy tính Định nghĩa này

nhấn mạnh hai khía cạnh quan trọng của cơ sở dữ liệu phân tán:

- Sự phân tán dữ liệu (data distribution)

- Sự tương quan logic (logical correlation)

1.2 Hệ quản trị cơ sở dữ liệu phân tán

1.2.1 Định nghĩa

Hệ quản trị cơ sở dữ liệu phân tán (DDBMS) là một hệ thống phần mềm cho phép quản lý các hệ cơ sở dữ liệu phân tán và làm cho việc phân tán trở nên vô hình đối với người sử dụng

1.2.2 Các thành phần của hệ quản trị cơ sở dữ liệu phân tán

Sự phân tán dữ liệu là trong suốt đối với người sử dụng nên việc quản lý các dữ liệu phân tán đòi hỏi mỗi trạm phải cài đặt các thành phần sau:

- Quản trị cơ sở dữ liệu (Database management – DB)

- Truyền dữ liệu (Data communication – DC)

- Từ điển dữ liệu (Data Dictionary – DD)

- Cơ sở dữ liệu phân tán (Distributed database - DDB)

1.3 So sánh cơ sở dữ liệu phân tán và cơ sở dữ liệu tập trung

Cơ sở dữ liệu phân tán không đơn giản chỉ là sự phân bố của các cơ sở dữ liệu,

vì cơ sở dữ liệu phân tán có nhiều đặc điểm khác biệt so với cơ sở dữ liệu tập trung

Ta sẽ so sánh cơ sở dữ liệu tập trung so với cơ sở dữ liệu phân tán ở một số đặc điểm

Trang 14

Điều khiển tập trung:

Điều khiển tập trung là một đặc điểm của cơ sở dữ liệu tập trung, toàn bộ dữ liệu được tập trung lại nhằm tránh sự dư thừa dữ liệu, đảm bảo tính độc lập của dữ liệu, dữ liệu được quản lý tập trung bởi người quản trị

Trong các cơ sở dữ liệu phân tán vấn đề điểu khiển tập trung không được nhấn mạnh, sự điều khiển được thực hiện theo một cấu trúc phân cấp, bao gồm người quản trị cơ sở dữ liệu toàn cục và cơ sở dữ liệu cục bộ

Tuy nhiên, những người quản trị cơ sở dữ liệu cục bộ cần phải có những quyền độc lập riêng về cơ sở dữ liệu cục bộ của mình mà những người quản trị cơ sở dữ liệu toàn cục hoàn toàn không có những quyền này

Độc lập dữ liệu:

Độc lập dữ liệu là một đặc điểm của cở sở dữ liệu, tổ chức lưu trữ dữ liệu trong suốt đối với người lập trình ứng dụng Ưu điểm của độc lập dữ liệu là các chương trình không bị ảnh hưởng bởi những thay đổi trong cấu trúc vật lý của dữ liệu

Trong cơ sở dữ liệu phân tán, độc lập dữ liệu quan trọng cũng như trong cơ sở

dữ liệu tập trung Tuy nhiên, một đặc điểm mới được đưa vào trong khái niệm thông thường của độc lập dữ liệu là sự trong suốt phân tán

Giảm dư thừa dữ liệu:

Trong cơ sở dữ liệu tập trung, sự dư thừa dữ liệu được giảm đến mức tối thiểu,

do tránh sự không nhất quán dữ liệu giữa nhiều bản sao bằng cách chỉ có một bản sao

và tiết kiệm không gian lưu trữ Việc giảm dư thừa dữ liệu có thể đạt được bằng cách chia sẽ dữ liệu cho phép nhiều ứng dụng truy xuất đến các tập tin dữ liệu

Trong cở sở dữ liệu phân tán việc giảm dư thừa phức tạp hơn vì ngoài hai lý

do trên còn nhiều lý do để giảm dư thừa như:

Làm tăng tính cục bộ của ứng dụng nếu dữ liệu được nhân bản tại tất cả các trạm mà ứng dụng cần dữ liệu Khi đó, các ứng dụng cục bộ được thực hiện nhanh hơn vì không phải truy xuất dữ liệu từ xa

Làm tăng tính sẳn sàng của ứng dụng, vì một trạm gặp sự cố sẽ không làm gián đoạn việc chạy chương trình ở những trạm khác

Biệt lập và bảo mật:

Trang 15

Trong cơ sở dữ liệu tập trung, hệ quản trị cơ sở dữ liệu tập trung có thể đảm bảo chỉ truy cập đến dữ liệu đã được ủy quyền

Trong cơ sở dữ liệu phân tán, hệ quản trị cơ sở dữ liệu cục bộ cũng phải giải quyết các vấn đề giống như hệ quản trị cơ sở dữ liệu trong cơ sở dữ liệu tập trung

Tuy nhiên, hai khía cạnh đặc biệt sau đây của cơ sở dữ liệu phân tán cần phải được xem xét là trong cơ sở dữ liệu phân tán với một mức độ độc lập cao của các trạm, người quản trị dữ liệu cục bộ quản lý dữ liệu tốt hơn là phụ thuộc vào người quản trị cơ sở dữ liệu trung tâm

1.4 Ưu và nhược điểm của cơ sở dữ liệu phân tán

Ưu điểm:

Lợi ích cơ bản của cơ sở dữ liệu phân tán là dữ liệu của các cơ sở dữ liệu vật

lý riêng biệt được tích hợp logic với nhau, do đó người sử dụng có thể truy cập dữ liệu được trên mạng

Tận dụng cơ sở dữ liệu sẵn có: Hình thành cơ sở dữ liệu phân tán từ cơ sở dữ liệu tập trung sẵn có ở các vị trí cục bộ

Tăng độ tin cậy và khả năng sẵn sàng: Khi một trạm gặp sự cố thì chỉ có dữ liệu và ứng dụng trên trạm gặp sự cố không thể truy cập được, các trạm khác vẫn hoạt động bình thường

Giảm chi phí truyền tải dữ liệu: Trong cơ sở dữ liệu phân tán ứng dụng được đặt ở trạm cục bộ nên có thể giảm bớt được chi phí truyền tải dữ liệu, bằng cách khai thác cơ sở dữ liệu tại chổ

Dễ dàng mở rộng: Việc thêm mới, tăng kích thước cơ sở dữ liệu trong môi trường phân tán có thể thực hiện một cách dễ dàng cũng như là việc thêm các cơ sở

dữ liệu thành phần

Thuận lợi cho nhu cầu phát triển: Xu hướng dùng cơ sở dữ liệu phân tán sẽ cung cấp khả năng phát triển thuận lợi hơn và giảm được xung đột về chức năng giữa các đơn vị đã tồn tại, giảm được xung đột giữa các ứng dụng khi truy cập đến cơ sở

dữ liệu

Nhược điểm:

Độ phức tạp thiết kế cơ sở dữ liệu và cài đặt hệ thống tăng

Trang 16

Khó phát hiện và khử lỗi

Bảo mật khó khăn

1.5 Thiết kế cơ sở dữ liệu phân tán

1.5.1 Khung thiết kế

Việc thiết kế cơ sở dữ liệu tập trung thường giải quyết 2 vấn đề:

- Thiết kế sơ đồ quan niệm để mô tả dữ liệu

- Thiết kế cơ sở dữ liệu vật lý tức là ánh xạ từ sơ đồ quan niệm tới không gian lưu trữ và xác định các cách thức truy cập khác nhau

Đối với việc thiết kế cơ sở dữ liệu phân tán cũng phải giải quyết 2 vấn đề nêu trên, nhưng 2 vấn đề đó giờ đây trở thành việc thiết kế sơ đồ toàn cục và thiết kế cơ

sở dữ liệu cục bộ ở mỗi trạm Những kỹ thuật giải quyết 2 vấn đề này giống như cách làm trong việc thiết kế cơ sở dữ liệu tập trung, nhưng cần giải quyết thêm 2 vấn đề nữa là [1]:

- Thiết kế phân đoạn: Xác định cách thức phân chia những quan hệ toàn bộ

thành những đoạn dữ liệu theo chiều ngang, dọc hay hỗn hợp

- Thiết kế phân phối các phân đoạn: Xác định cách thức những phân đoạn

được ánh xạ vào các ảnh vật lý

1.5.2 Các phương pháp thiết kế cơ sở dữ liệu phân tán

Có hai cách tiếp cận khi thiết kế cơ sở dữ liệu phân tán: Tiếp cận từ trên xuống (top-down) và tiếp cận từ dưới lên (bottom-up) [1]

Trong cách tiếp cận top-down, bắt đầu bằng việc thiết kế sơ đồ toàn cục, tiếp đến thiết kế phân đoạn cơ sở dữ liệu và sau đó cấp phát các đoạn này cho các trạm tạo ra hình ảnh vật lý của dữ liệu, và cuối cùng là thiết kế vật lý dữ liệu ở mỗi trạm Đối với hệ thống phát triển từ những hệ thống hỗn tạp thì phương pháp này có sức hấp dẫn lớn vì nó cho phép thực hiện thiết kế dựa trên các giải pháp hợp lý theo từng trường hợp

Khi cơ sở dữ liệu phân tán được phát triển từ những cơ sở dữ liệu đang tồn tại, không phải dễ dàng áp dụng được các tiếp cận top-down Trong trường hợp này, sơ

Trang 17

đồ toàn cục được tạo ra dưới dạng trung gian của các mô tả dữ liệu đang tồn tại Do

đó cách tiếp cận thích hợp trong trường hợp này là tiếp cận bottom-up

Tóm lại cách tiếp cận bottom-up đòi hỏi

- Chọn một mô hình dữ liệu chung để mô tả sơ đồ toàn cục của cơ sở dữ liệu

- Chuyển đổi các cơ sở dữ liệu cục bộ sang mô hình dữ liệu chung

- Hợp nhất những sơ đồ cục bộ thành sơ đồ toàn cục chung

1.5.3 Thiết kế phân đoạn

Bản chất của việc thiết kế phân đoạn là nhóm các bộ hay những thuộc tính của quan hệ toàn cục mà có cùng tính chất theo quan điểm phân phối, mỗi nhóm bộ hay thuộc tính có cùng tính chất sẽ tạo nên một phân đoạn [1]

1.5.3.1 Phân đoạn đầy đủ

Là việc tạo ra các bản sao cơ sở dữ liệu tại nhiều trạm

- Khá tốn kém do 1 bản dữ liệu tồn tại trên nhiều trạm

- Xử lý phức tạp khi cập nhật dữ liệu, do dữ liệu khác nhau về vật lý nhưng cần thống nhất về mặt logic

1.5.3.2 Phân đoạn cắt ngang

Có 2 loại phân đoạn ngang: Phân đoạn chính và phân đoạn dẫn suất Việc xây dựng phân đoạn ngang cần phải dựa vào tính chất thống kê của dữ liệu, tức số tham khảo của ứng dụng đến phân đoạn

Phân đoạn chính: Phân đoạn chính được định nghĩa bằng cách dùng các câu

chọn trên những quan hệ toàn cục, điều kiện của câu chọn được gọi là vị từ Phân đoạn chính phải bảo đảm tính đúng đắn tức là mỗi bộ của quan hệ toàn cục được chọn

Trang 18

Giả sử R là một quan hệ toàn cục mà từ đó ta muốn tạo ra các phân đoạn chính Phải xác định:

1 Vị từ p được gọi là vị từ đơn giản nếu p có dạng

<Thuộc tính>O<Giá trị>

Trong đó O là một trong các phép toán: =, >, <, ≥, ≤, ≠

2 Vị từ y được gọi là vị từ minterm của tập P các vị từ đơn giản là mối liên hệ giữa mọi vị từ xuất hiện trong P, có thể kiểu liên kết này là khẳng định hay phủ định nhưng không mâu thuẩn nhau:

y = pi p pi*

Trong đó pi*=p, pi*=NOT pi Và y  false

Một vị tự đơn giản pi được gọi là đáng kể đối với tập P các vị từ đơn giản nếu tồn tại ít nhất 2 vị từ minterm của P chỉ khác nhau ở dạng xuất hiện của pi (tức ở vị

từ thứ nhất thì pi ở dạng thường, ở vị từ thứ hai thì pi ở dạng phủ định) sao cho những phân đoạn tương ứng được tham khảo theo các cách khác nhau bởi ít nhất một ứng dụng [1]

Phân đoạn dẫn xuất: Trong một số trường hợp, việc phân đoạn quan hệ toàn

cục R không dựa trên tập các thuộc tính R, mà cần phải được dẫn suất từ phân đoạn ngang của một quan hệ toàn cục khác

Ưu điểm:

- Phù hợp tính tự nhiên

- Tăng cường tính hiệu quả do mỗi trạm chỉ chứa dữ liệu cần thiết cho mình

- Tối ưu hóa quy trình cập nhật, truy xuất dữ liệu do tính cục bộ vốn có

- An toàn dữ liệu cao do mỗi nơi chịu trách nhiệm dữ liệu mình quản lý

Trang 19

Xác định phân đoạn dọc của một quan hệ toàn cục R liên quan đến việc nhóm các thuộc tính thành tập các thuộc tính để các chương trình ứng dụng tham khảo đến Điều kiện đúng đắn của việc phân đoạn dọc quan hệ toàn cục R là mỗi thuộc tính của

R thuộc về ít nhất một tập hợp và mỗi tập hợp gồm có khóa tường minh hay một khóa

hệ thống tự tạo, mục đích là nhằm tái xây dựng lại quan hệ toàn cục R ban đầu [1] Mục đích của phân đoạn dọc là xác định những phân đoạn Ri sao cho nhiều ứng dụng có thể được thực hiện dùng chỉ một phân đoạn

Ưu điểm: Tiết kiệm không gian lưu trữ nên có tính hiệu quả

Khuyết điểm: Tốn nhiều thời gian khi truy xuất

1.5.3.4 Phân đoạn hỗn hợp

Chọn cách đơn giản nhất để phân đoạn hỗn hợp gồm có:

- Áp dụng phân đoạn ngang vào những phân đoạn dọc

- Áp dụng phân đoạn dọc vào những phân đoạn ngang

Mặc dù các thao tác này có thể được lặp lại đệ quy, tạo ra cây phân đoạn với cấp

độ phức tạp nào đó nhưng trong thực tế thường không lặp lại quá 2 mức Hai vấn đề trên cho phép cả hai cách phân đoạn được xem xét mỗi quan hệ, vì vậy không đạt được tiện lợi cần thiết [1]

1.6 Thiết kế phân phối các chiến lược

Vấn đề phân phối dữ liệu đã được phân tích rộng rãi trong phạm vi vấn đề phân phối tập tin Cách dễ nhất là xem mỗi phân đoạn là một tập tin riêng biệt, tuy nhiên cách tiếp cận như vậy không thích hợp vì nhiều lý do:

Những phân đoạn không được mô hình chính xác như những tập tin riêng biệt,

vì theo cách này không quan tâm đến cấu trúc

Có nhiều phân đoạn hơn những quan hệ toàn cục ban đầu, và nhiều mô hình phân tích không thể tính được giải pháp cho vấn đề có liên quan đến quá nhiều biến

1.6.1 Tiêu chuẩn chung

Trong công việc cấp phát phân đoạn, quan trọng cần phải xác định là mục tiêu

là thiết kế phân phối dư thừa hay không dư thừa

Trang 20

cận này cho một giải pháp mà không xem xét đến hiệu ứng lẫn nhau của việc đặt một phân đoạn ở một trạm cho trước nếu một phân đoạn có liên quan cũng được đặt ở đó [1]

Bản sao lặp lại các đoạn là phức tạp công việc thiết kế hơn vì:

- Mức độ tạo bản sao của mỗi phân đoạn trở thành một trở ngại

- Mô hình hóa chương trình ứng dụng có thuộc tính chỉ đọc sẽ phức tạp, do những ứng dụng đó bây giờ có thể chọn lựa một trong số nhiều trạm để truy cập đến các phân đoạn

Để xác định vấn đề phân phối thừa, một trong hai phương pháp sau có thể được

sử dụng:

- Xác định tập hợp tất cả các trạm mà lợi ích của việc phân phối bản sao của phân đoạn lớn hơn giá thành, và phân phối một bản sao của phân đoạn cho mỗi phần tử của tập hợp này, phương pháp này gọi là phương pháp chọn tất cả trạm sinh lợi

- Đầu tiên xác định giải pháp cho vấn đề không có bản sao, rồi dẫn tạo ra bản sao bắt đầu từ nơi có lợi ích nhất, tiến trình kết thúc khi sự tạo bản sao thêm nữa không có lợi

1.6.2 Phân đoạn ngang

Sử dụng cách tiếp cận phù hợp nhất (best-fit) cho một phân phối không có bản sao, ta đặt Ri ở trạm mà số tham khảo đến Ri là lớn nhất Số tham khảo cục bộ của Ri

ở trạm j là:

Bij = kkj kj

Bij số lượng tham khảo của các chương trình [1]

Đoạn Ri sẽ được phân phối ở trạm j* sao cho Bij* lớn nhất

Dùng phương pháp tất cả trạm sinh lợi cho phân phối có bản sao: đặt Ri ở tất cả các trạm j mà chi phí tham khảo đọc của chương trình lớn hơn chi phí tham khảo cập nhật đến đoạn Ri từ chương trình ở bất kỳ trạm khác

Bi j =kk j k i - C kj’  jk j’ uk i

Trang 21

Với C là hằng số tỉ lệ đo tỉ số giữa chi phí một lần cập nhật so với một lần đọc, nói chung chi phí cập nhật cao hơn vì nó đòi hỏi một lượng thông điệp điều khiển lớn hơn và những thao các cục bộ nhiều hơn (vì vậy C  1)

Ri sẽ được phân phối ở tất cả những trạm j* sao cho Bij* là dương, trong trường hợp tất cả Bij âm, 1 bản sao của Ri được đặt ở trạm nào mà Bij* là lớn nhất

Dùng phương pháp bản sao Ri cho các phân đoạn lặp lại: Chỉ có thể đo lợi ích đặt bản sao của đoạn Ri trong giới hạn khả năng tăng và khả năng sẵn có của hệ thống Khi bắt đầu công việc cấp phát, lợi ích này không tăng tỷ lệ với độ dư thừa của đoạn

Ri Giả sử di tương đương với cấp độ dư thừa của đoạn Ri và giả sử Fj tương đương với lợi ích với việc có đoạn Rj lặp lại đầy đủ ở mỗi trạm [1]

Hàm (di) đo lợi ích này là:

(di) = ( 1 - 21-di )Fi

Chú ý ( 1 ) = 0,  ( 2 ) = Fi/2, ( 3 ) = 3Fi Sau đó tính toán lợi ích của việc rút

ra bản sao mới của Ri ở vị trí j qua việc thay đổi công thức ở trường hợp 2 như sau:

Đo lợi ích này theo công thức sau:

Btst =  k A sksnki +  k Atktnki -  k A1krnki + 2  k A2 krnki +

 k A3k  r, s, tkjnki

Để đơn giản hóa, công thức này đếm số lượng các lần truy cập để phân biệt giữa những lần truy cập đọc và cập nhật, dựa vào những tài khoản các giá trị khác nhau, các giá trị này không hiệu quả khi dùng (rk i + C.uki) thay vì nki [1]

Trang 22

Công thức này có thể được dùng trong một giải thuật splitting toàn diện để xác định có split Ri ở trạm r thành Rs ở trạm s và Rt ở trạm t thích hợp bằng cách thử tất

cả những tổ hợp có thể của trạm s và t, cẩn thận khi r=s hay r=t

1.7 Tổng quan SQL Server trong việc hổ trợ cơ sở dữ liệu phân tán

Hệ quản trị cơ sở dữ liệu SQL Server là hệ thống quản trị lớn, hổ trợ mạnh khả năng quản lý dữ liệu, dữ liệu được phân tán trên các hệ thống lớn, phân cấp Sức mạnh vượt trội của SQL Server 2014 là khả năng quản lý dữ liệu, truy xuất dữ liệu từ

xa, phân tán, phân tích trực tuyến (OLAP) [12]

1.7.1 Các khái niệm

Liên kết server (Linked Servers): Là cơ chế cho phép kết nối từ một SQL

Server tới một database server khác (có thể là SQL Server hoặc các hệ thống khác) giúp cho việc truy vấn, cập nhật dữ liệu từ một server ở xa thuận lợi Thể hiện tính trong suốt về mặt vị trí, nhờ vậy mà trạm này có thể thấy cơ sở dữ liệu ở trạm kia

Truy cập từ xa: Là truy vấn mà chọn lựa thông tin từ một hay nhiều bảng trên

cùng một trạm từ xa

Cập nhật từ xa: Là cập nhật dữ liệu trên một hay nhiều bảng trên cùng một

trạm

Truy vấn phân tán: Là truy vấn lấy thông tin từ hai hay nhiều trạm

Cập nhật phân tán: Là cập nhật bổ sung dữ liệu từ hai hay nhiều trạm

Giao tác từ xa: Là một giao tác chứa một hay nhiều phát biểu từ xa, tất cả tham

chiếu trên cùng một trạm

Giao tác phân tán: Là bất kỳ giao tác nào bao gồm một hay nhiều phát biểu tác

động trên hai hay nhiều trạm phân biệt trong hệ phân tán

Bản sao: Nhằm đảm bảo mỗi lần cập nhật, các bản sao của đơn vị dữ liệu A sẽ

cập nhật đồng thời trên các trạm khác nhau, SQL Server dùng phương thức: Snapshot Replication

Snapshot Replication: Phân tán dữ liệu một cách chính xác tại một thời điểm

cụ thể và không cần kiểm soát quá trình cập nhật dữ liệu Khi quá trình đồng bộ xảy

ra, thực thể bản sao được phát sinh và gửi đến các Subscriber Một cách đơn giản là

Trang 23

Snapshot Replication tạo bản sao của cơ sở dữ liệu Publisher và gửi nó đến Subscriber qua sự phân tán dữ liệu

Publisher: Là một máy chủ lưu trữ cơ sở dữ liệu đóng vai trò như một nguồn

dữ liệu để phân tán giữ các cơ sở dữ liệu khác

Distributor: Là một máy chủ cơ sở dữ liệu đóng vai trò trung gian giữa

Publisher và Subscriber Nó nhận dữ liệu từ cơ sở dữ liệu Publisher và gửi dữ liệu đến cơ sở dữ liệu Subscriber

Subscriber: Là một máy chủ lưu trữ cơ sở dữ liệu nơi Publisher phân tán dữ liệu đến

Cách thức Snapshot Replication hoạt động:

Theo mặc định có ba loại nhân bản sử dụng một bản sao để khởi tạo các Subscriber

SQL Server Snapshot Agent luôn luôn tạo ra các tập tin bản sao, nhưng Agent phân phát các tập tin khác nhau tùy thuộc vào các kiểu nhân bản đang sử dụng Snapshot Replication và Transactional Replication sử dụng Distribution Agent để phân phát các tập tin, trong khi Merge Replication sử dụng SQL Server Merge Agent Snapshot Agent chạy tại Distributor Distribution Agent và Merge Agent chạy tại Distributor để đẩy dữ liệu đến các Subscription, hoặc chạy tại các Subscriber để kéo các Subscription [14]

Trang 24

Hình 1.1: Cách thức Snapshot Replication hoạt động

Cách thức Merge Replication hoạt động

Merge Replication được cài đặt bởi SQL Server Snapshot Agent và Merge Agent Nếu Publication chưa được lọc hoặc sử dụng các bộ lọc tỉnh, Snapshot Agent tạo ra một bản sao duy nhất Nếu Publication sử dụng bộ lọc tham số, Snapshot Agent tạo ra một bản sao cho mỗi phân vùng dữ liệu Merge Agent áp dụng khởi tạo các bản sao đến các Subscriber Nó cũng trộn dữ liệu thay đổi gia tăng xảy ra tại Publisher hoặc các Subscriber sau khi bản sao đã được khởi tạo, phát hiện và giải quyết bất kỳ các xung đột theo các nguyên tắc đã được cấu hình [14]

Trang 25

Hình 1.2: Cách thức Merge Replication hoạt động

Cách thức Transactional Replication hoạt động

Transactional Replication được cài đặt bởi SQL Server Snapshot Agent, Log Reader Agent và Distribution Agent Snapshot Agent chuẩn bị các tệp tin bản sao chứa đựng lược đồ và dữ liệu của các bảng được xuất bản, các đối tượng cơ sở dữ liệu lưu trữ các tập tin trong thư mục bản sao, và lưu trữ các Jobs đồng bộ trong cơ

sở dữ liệu phân tán trên Distributor

Log Reader Agent giám sát các Transaction Log của mỗi cấu hình cơ sở dữ liệu cho Transactional Replication và sao chép các transaction được đánh dấu nhân bản

từ Transaction Log vào cơ sở dữ liệu phân tán Distribution Agent sao chép các tập tin khởi tạo bản sao từ thư mục bản sao và tổ chức các transaction trong các bảng của

cở dữ liệu phân tán đến các Subscriber

Trang 26

Sự gia tăng các thay đổi tại Publisher đến các Subscriber theo lịch trình của Distribution Agent có thể chạy liên tục cho độ trễ tối thiểu hoặc trong khoảng thời gian dự kiến Bởi vì thay đổi dữ liệu phải được thực hiện tại Publisher, (khi Transactional Replication không cần cập nhật ngay lập tức hoặc xếp hàng đợi tùy chọn cập nhật), các mâu thuẩn cập nhật thì tránh được Cuối cùng, tất cả các Subscriber sẽ đạt được các giá trị tương tự như Publisher Nếu cập nhật ngay lập tức hoặc xếp hàng đợi tùy chọn cập nhật được sử dụng với Transactional Replication, cập nhật có thể được tao ra tại Subscriber và với hàng đợi cập nhật, mâu thuẩn có thể xảy

ra [14]

Trang 27

Trước một Transactional Replication Subscriber mới, có thể nhận được các thay đổi gia tăng từ một Publisher, Subscriber phải chứa đựng các bảng với lược đồ tương

tự như các bảng tại Publisher Khởi tạo dataset ban đầu thường là một bản sao được tạo ra bởi Snapshot Agent, được phân tán và được áp dụng bởi Distribution Agent Khởi tạo dataset có thể cung cấp thông qua một bản sao lưu hoặc các phương tiện khác, như là SQL Server Integration Services

Khi các bản sao phân tán và áp dụng đến các Subscriber, chỉ các Subcriber đang chời đợi các bản sao khởi tạo bị ảnh hưởng, còn các Subscriber khác đã được khởi tạo không bị ảnh hưởng

Xử lý Snapshot đồng thời

Snapshot Replication khóa việc chia sẽ trên tất cả các bảng được xuất bản tại các nơi như là một phần của nhân bản trong suốt quá trình tạo bản sao Điều này có thể ngăn ngừa các cập nhật được tạo ra trên các bảng đang xuất bản Xử lý bản sao đồng thời, mặc định với Transactional Replication, không giữ việc khóa chia sẽ tại nơi mà trong suốt quá trình thực thể bản sao tạo ra, cho phép các người dùng có thể tiếp tục làm việc mà không bị gián đoạn khi tạo ra các tập tin bản sao nhân bản ban đầu

1.7.2 Giải quyết mâu thuẫn dữ liệu trong môi trường phân tán

Khi một Publisher và một Subscriber kết nối và đồng bộ xảy ra, Merge Agent kiểm tra xem có bất kỳ xung đột nào xảy ra không Nếu xung đột được tìm thấy, Merge Agent sử dụng một trình giải quyết xung đột để xác định dữ liệu được chấp nhận và được nhân bản đến các phía khác nhau

Xung đột xảy ra bất cứ khi nào dữ liệu thay đổi cả hai Publisher và Subscriber tại thời điểm đồng bộ Ta có thể chỉ định trộn lẫn nhân bản để nhận dạng xung đột tại dòng hoặc cột theo yêu cầu cần giải quyết Khi phát hiện xung đột dòng thì kích hoạt các bảng xảy ra xung đột, thay đổi một hàng cụ thể trong bảng ở Publisher và các Subscriber sẽ được coi là một sự xung đột mặc dù các cột thay đổi có thể khác nhau Tuy nhiên, trong trường hợp phát hiện xung đột cột, thay đổi dữ liệu phải xảy ra đối với các cột tương tự trong một hàng cụ thể trên cả hai Publisher và Subscriber

Trang 28

dõi mỗi hàng trên tất cả các bảng đang sao chép Khi một thay đổi xảy ra cho một trong các bảng này, thay đổi được ghi lại trong một bảng metadata, bảng này chứa một danh sách các GUID tương ứng với các hàng đã thay đổi trên Publisher và Subscriber

Đối với các hàng thay đổi chỉ ở Publisher hoặc chỉ Subscriber, Merge Replication Agent sẽ lấy giá trị của các hàng từ bảng ở Publisher hoặc Subscriber, và sau đó chèn, xóa hay cập nhật hàng nơi hàng không có, hoặc không được cập nhật Nếu hàng đã được sửa đổi trên cả hai phía, giải pháp nhân bản giữa các Merge Agent được thực hiện, các Merge Agent sẽ phát hiện thay đổi này như là sự xung đột và sau

đó sẽ đưa ra quyết định dựa trên cách mà ta muốn các xung đột được giải quyết, theo mặc định, các Publisher sẽ giành quyền chiến thắng hầu hết các xung đột [14]

Các cách giải quyết xung đột:

Mặc định (Default Resolver): Giải quyết xung đột là dựa trên mức độ ưu tiên

giải quyết, ta sẽ gán các giá trị mức độ ưu tiên khác nhau đến các Subscriber để xác định ai được ưu tiên trong trường hợp xung đột xảy ra

Tùy chỉnh (Custom Resolver): Nếu giải quyết mặc định không đáp ứng yêu cầu công việc, ta có thể chọn sử dụng một trình giải quyết tùy chỉnh, giải quyết tùy chỉnh cụ thể đối với một bảng

COM (COM based Conflict Resolver): Nếu giải xung đột nói trên không phù

hợp với nhu cầu, ta có thể viết một COM dựa theo giải quyết tùy chỉnh bằng cách sử dụng Visual Basic hoặc VC++ và đăng ký các DLL tại máy chủ, nơi các Merge Agent chạy

Thủ tục (Stored Procedure Conflict Resolver): Ta có thể viết một thủ tục dựa

trên giải quyết xung đột tùy chỉnh được lưu trữ mà sử dụng T-SQL để thực hiện logic nghiệp vụ mà ta quyết định người sẽ chiến thắng Giả quyết xung đột bằng thủ tục luôn tạo ra trên Publisher và chỉ để cập nhật các cuộc xung đột

Giải quyết bằng thủ tục trả về một hàng duy nhất giống với sơ đồ của các bảng

sơ khai Ta cũng có thể thay đổi các giá trị trong bất kỳ cột nào khi trả lại tập kết quả cuối cùng Hàng này sẽ là hàng chiến thắng và những giá trị này sẽ được sử dụng để cập nhật cả hai Publisher và các Subscriber [14]

Trang 29

Ta sẽ so sánh các đặc trưng của cơ sở dữ liệu phân tán ở lý thuyết CSDL phân tán và CSDLPT trong SQL Server

Tính độc lập dữ liệu: Về mặt lý thuyết cả hai đều thể hiện tính độc lập dữ liệu:

Đây là dạng vô hính cơ bản cần có trong một hệ cơ sở dữ liệu, nó liên quan đến khả năng miễn nhiễm của các ứng dụng đối với những thay đổi trong định nghĩa, tổ chức

dữ liệu và ngược lại

Tính trong suốt vị trí: Về mặt lý thuyết cả hai đều thể hiện tính trong suốt, nó

che giấu sự phân tán dữ liệu đối với người dùng, làm cho người sử dụng CSDLPT cũng giống như tập trung, người sử dụng không cần biết về vị trí vật lý của dữ liệu

mà có quyền truy cập đến cơ sở dữ liệu tại bất cứ vị trí nào Các thao tác lấy dữ liệu hoặc cập nhật một dữ liệu từ xa được tự động thực hiện bởi hệ thống tại điểm đưa ra yêu cầu SQL Server sử dụng View, Alias, Procedures để tạo trong suốt vị trí

Trong suốt nhân bản: Về mặt lý thuyết cả hai đều thể hiện tính trong suốt nhân

bản, người dùng không biết sự tồn tại của các bản sao Trong SQL Server sử dụng Replication để sao chép, phân phối dữ liệu đến các SQL Server khác nhau

Trong suốt phân đoạn: Về mặt lý thuyết cả hai đều thể hiện tính trong suốt

phân đoạn, người dùng không biết sự tồn tại của các phân đoạn (phân đoạn ngang, phân đoạn dọc)

SQL Server sử dụng Replication để phân phối dữ liệu đến các SQL Server khác SQL Server sử dụng Linked Server để tạo liên kết giữa các Server cơ sở dữ liệu lại với nhau giúp ta có thể truy vấn dữ liệu giữa các Server

Trang 30

CHƯƠNG 2 - MÔ TẢ HỆ THỐNG BÁN HÀNG

Trong chương này luận văn sẽ mô tả bài toán thực tiễn của doanh nghiệp bán hàng có nhiều chi nhánh nằm phân bố tại nhiều vị trí địa lý khác nhau, cùng với các quy trình nghiệp vụ của công tác quản lý bán hàng

2.1 Bài toán thực tiễn

Ngày nay chúng ta đang sống trong thời đại mà CNTT được ứng dụng rộng khắp mọi nơi, các doanh nghiệp ngày càng chú trọng ứng dụng CNTT vào việc quản lý điều hành các hoạt động kinh doanh Trong bối cảnh đó hệ thống quản trị bán hàng được hình thành nhằm phục vục công tác quản trị bán hàng, giúp doanh nghiệp dễ dàng quản lý các hoạt động như:

- Quản lý hàng hóa, tồn kho

- Quản lý nhập hàng, xuất hàng

- Quản lý công nợ, nhân viên, khách hàng

- Thống kê báo cáo công nợ, doanh thu, tồn kho…

Đặc biệt các công ty tổ chức hoạt động theo mô hình chuổi cửa hàng, gồm một công ty mẹ đóng vai trò như trung tâm điều hành, các công ty con được phân bố trải rộng trên nhiều khu vực, địa lý khác nhau Khi đó việc tổ chức dữ liệu theo mô hình tập trung không còn phù hợp, vì nếu hệ thống trung tâm gặp sự cố thì các chi nhánh không thể kết nối và hoạt động kinh doanh bị gián đoạn Trong khi đó yêu cầu của doanh nghiệp đặt ra làm sao các chi nhánh hoạt động xuyên suốt độc lập nhau, nếu một chi nhánh hoặc trung tâm gặp sự cố các chi nhánh còn lại vẫn hoạt động bình thường

Một cách khái quát một chi nhánh đều có nhu cầu quản lý dữ liệu trực thuộc như, tự quản lý nhân viên, tồn kho, xuất nhập hàng hóa và bài toán giờ đây trở thành xây dựng hệ thống quản lý bán hàng với đặc tính cơ sở dữ liệu phân tán

2.2 Một số nghiệp vụ quản lý bán hàng

Nghiệp vụ nhập hàng: Khi nhập hàng hóa từ nhà cung cấp, nhân viên quản lý

kho tại chi nhánh sẽ lập phiếu nhập và cập nhật hàng hóa vào CSDL chi nhánh, các

Trang 31

liệu nhập hàng tại các chi nhánh là riêng biệt nhau Tại trung tâm nhân viên quản lý kho cũng có chức năng nhập hàng tương tự như chi nhánh nhưng dữ liệu nhập hàng

sẽ được lưu trữ tại CSDL trung tâm và không đồng bộ đến các chi nhánh khác Nghiệp vụ bán hàng: Khi khách hàng đến mua hàng tại chi nhánh và yêu cầu

thanh toán, kế toán sẽ thu tiền khách hàng, nhân viên bán hàng lập phiếu xuất kho và cập nhật số lượng các hàng hóa đã xuất vào CSDL chi nhánh, các dữ liệu hóa đơn xuất hàng tại chi nhánh sẽ được đồng bộ về CSDL trung tâm Tại chi nhánh nhân viên bán hàng có thể kiểm tra hoặc xem báo cáo tồn kho tại một chi nhánh bất kỳ để có thể hướng dẫn khách hàng đến chi nhánh khác mua hàng trong trường hợp cửa hàng không còn hàng hóa Việc kiểm tra hàng hóa tồn kho được thực hiện thông qua việc truy vấn phân tán đến các chi nhánh khác, do dữ liệu tại các chi nhánh là riêng biệt nhau Tại trung tâm nhân viên bán hàng cũng có chức năng xuất hàng tương tự như chi nhánh, dữ liệu xuất hàng được lưu trữ tại CSDL trung tâm và không đồng bộ đến các chi nhánh khác Nhân viên bán hàng tại trung tâm có thể kiểm tra hàng hóa tồn kho tại một chi nhánh bất kỳ, quá trình kiểm tra hàng tồn kho tại trung tâm không cần thực hiện truy vấn phân tán vì dữ liệu tại các chi nhánh đều được đồng bộ về CSDL trung tâm

Nghiệp vụ đổi hàng: Khi khách hàng mang hàng hóa đến chi nhánh để đổi,

nhân viên bán hàng tại chi nhánh sẽ kiểm tra đơn hàng từ CSDL tại chi nhánh, nếu khách hàng mua sản phẩm tại chi nhánh khác, nhân viên sẽ kiểm tra dữ liệu đơn hàng tại tất cả các chi nhánh thông qua việc truy vấn phân tán, do dữ liệu đơn hàng lưu trữ tại các chi nhánh là riêng biệt nhau Nếu sản phẩm khách hàng mua được chi nhánh chấp nhận đổi, quản lý kho sẽ lập phiếu nhập sau đó cập nhật hàng hóa vào trong kho, tùy vào tình trạng hàng hóa mà nhập vào kho hàng hóa hoặc kho phế liệu, sau đó thực hiện xuất kho để đổi sản phẩm cho khách hàng, các dữ liệu nhập xuất này sẽ tự động đồng bộ về CSDL trung tâm Tại trung tâm nhân viên bán hàng cũng thực hiện chức năng tương tự như tại chi nhánh, nhưng quá trình xử lý dữ liệu là cục bộ vì dữ liệu tại các chi nhánh đều được đồng bộ về CSDL trung tâm

Nghiệp vụ kế toán: Khi nhà cung cấp yêu cầu thanh toán số lượng hàng hóa

công ty đã nhập tại chi nhánh, kế toán sẽ lập phiếu chi sau đó tiến hành thanh toán

Trang 32

Đối với các hoạt động thu, chi khác tại chi nhánh kế toán sẽ lập phiếu thu và chi tương ứng, dữ liệu phiếu thu và chi sẽ được cập nhật vào CSDL chi nhánh, sau đó tự động đồng bộ về CSDL trung tâm Tại trung tâm kế toán cũng thực hiện chức năng tương

tự như chi nhánh, tuy nhiên dữ liệu sẽ được lưu trữ tại trung tâm Kế toán trung tâm

có thể kiểm tra công nợ tại một chi nhánh bất kỳ hoặc tất cả các chi nhánh để biết được tình hình thu, chi của từng chi nhánh, quá trình xử lý thống kê này được thực hiện cục bộ, do dữ liệu tại các chi nhánh được đồng bộ về CSDL trung tâm

Nghiệp vụ kiểm kê hàng hóa: Thường vào cuối mỗi ngày nhân viên quản lý

kho tại chi nhánh sẽ kiểm kê lại số lượng thực của hàng hóa trong kho, sau đó lập báo cáo tổng hợp hoặc chi tiết tồn kho của các hàng hóa tại chi nhánh, nhân viên cũng có thể kiểm tra hàng hóa tồn kho tại một chi nhánh bất kỳ thông qua việc truy vấn phân tán đến CSDL tại các chi nhánh khác Tại trung tâm quá trình xử lý dữ liệu thông kê

là cục bộ vì dữ liệu tại các chi nhánh được đồng bộ về CSDL trung tâm

Nghiệp vụ thống kê: Cuối mỗi ngày hoặc định kỳ sẽ lập các báo cáo sau:

Kế toán:

- Báo cáo tổng hợp, chi tiết xuất hàng

- Báo cáo tổng hợp, chi tiết công nợ phải thu, phải trả

- Báo cáo tổng hợp, chi tiết thu, chi tại chi nhánh

- Báo cáo tổng hợp, chi tiết doanh thu, lợi nhuận

Quản lý kho:

- Báo cáo tổng hợp, chi tiết nhập hàng

- Báo cáo tồn kho

Đối với chi nhánh nghiệp vụ thống kê chỉ thống kê dữ liệu tại chi nhánh của mình, còn trung tâm sẽ có thể thực hiện thống kê dữ liệu tại một chi nhánh bất kỳ hoặc toàn bộ chi nhánh

2.3 Quy trình, phương pháp, thời gian thu thông tin và lập phiếu báo cáo 2.3.1 Mô tả các quy trình nghiệp vụ

Một hệ thống quản lý bán hàng sẽ cho phép quản lý bán các mặt hàng khác nhau, tuy nghiên tùy mỗi mặt hàng sẽ có các thông tin chi tiết khác nhau Ở đây tôi chọn

Trang 33

mặt hàng là thiết bị phụ tùng xe máy, hệ thống bán hàng cần giải quyết được các vấn

đề sau:

Quản lý chi nhánh

Quản lý các chi nhánh trực thuộc công ty, công ty được tổ chức theo mô hình gồm 1 công ty mẹ và 2 chi nhánh Trong đó các chi nhánh và công ty mẹ hoạt động độc lập nhau, tuy nhiên khi cần truy xuất dữ liệu từ các chi nhánh công ty mẹ vẫn có thể truy xuất được, các chi nhánh sẽ sử dụng dữ liệu về thông tin hàng hóa, giá bán

từ công ty mẹ

Trong tương lai có thể phát sinh thêm các chi nhánh mới, tại các vùng miền khác nhau, cách thức quản lý vẫn theo cơ cấu cũ

Phân quyền truy cập hệ thống theo cơ cấu tổ chức

Giám đốc: Quản lý tổng thể chi nhánh, nhận các báo cáo thống kê định kỳ từ

bộ phận kế toán, kinh doanh

Kinh doanh: Nhận đơn hàng từ phòng kế toán, sau đó liên hệ đặt hàng Cập

nhật các thay đổi về các loại sản phẩm như đơn giá, thời gian bảo hành theo bảng giá

từ tổng công ty đưa xuống

Kế toán:

- Kế toán kho: Phụ trách về nhập, xuất hàng, khi nhập hàng mới về thì tiến

hành nhập vào máy tính để lưu lại, thống kê số lượng hàng nhập, xuất theo định kỳ, kiểm tra các mặt hàng hiện tại có trong kho, lập đơn đặt hàng gửi lên phòng kinh doanh

- Kế toán tài chính: Phụ trách những vấn đề về tài chính như thống kê công

nợ, chi phí

Nhập hàng:

Khi nhà cung cấp giao hàng đến chi nhánh, nhân viên quản lý kho sẽ tiếp nhận hàng hóa, đồng thời kiểm tra xem thông tin về hàng hóa và nhà cung cấp có sẳn trong danh mục chưa Nếu chưa tồn tại cả hai thì nhân viên phải nhập đầy đủ thông tin về hàng hóa lẫn nhà cung cấp, trong trường hợp thiếu thông tin về nhà cung cấp hoặc

Trang 34

thể in phiếu Khi phiếu nhập được lập xong hàng hóa mới và số lượng sẽ tự động cập nhật vào cơ sở dữ liệu

Quy trình nhập hàng:

Hình 2.1: Quy trình nhập hàng

Mẫu phiếu nhập:

Trang 35

Xuất hàng:

Khi có yêu cầu xuất hàng, nhân viên bán hàng sẽ tiến hành kiểm tra xem lượng hàng tồn kho có đáp ứng được yêu cầu xuất hay không Nếu có thể đáp ứng được yêu cầu xuất, nhân viên sẽ tiến hành lập phiếu xuất, ngược lại nhân viên sẽ thông báo đến quản lý kho để liên hệ đặt hàng từ nhà cung cấp Phiếu xuất kho sau khi lập sẽ tự động lưu trữ, số lượng hàng hóa trong kho tự động cập nhật

Quy trình xuất hàng:

Hình 2.3: Quy trình xuất hàng

Mẫu phiếu xuất:

Trang 36

Hình 2.4: Mẫu phiếu xuất hàng

Đổi hàng

Nếu hàng hóa mua bị lỗi nằm trong thời hạn được phép đổi hàng, nhân viên bán hàng sẽ kiểm tra hàng hóa nếu chấp nhận đổi hàng, quản lý kho sẽ nhập hàng hóa lại vào trong kho, tùy theo tình trạng hàng hóa sẽ nhập vào kho chính hoặc kho phế liệu, sau đó tiến hành xuất hàng như ở nghiệp vụ xuất hàng

Quy trình đổi hàng:

Trang 37

Hình 2.5: Quy trình đổi trả hàng

Công nợ phải thu: Khi khách hàng thanh toán tiền, kế toán sẽ tiến hành lập

phiếu thu tiền khách hàng và lưu trữ hoặc liên hệ đến khách hàng khi đến hạn thanh toán tiền

Mẫu phiếu thu:

Trang 38

Công nợ phải trả: Khi đến hạn thanh toán, tiến hành lập phiếu chi và thanh

toán tiền cho nhà cung cấp

Mẫu phiếu chi:

Hình 2.7: Mẫu phiếu chi

Kiểm kê hàng hóa:

Cuối mỗi ngày hoặc bất kỳ khi nào có yêu cầu kiểm kê hàng hóa, nhân viên quản lý kho sẽ tiến hành lập phiếu kiểm kê cho các mặt hàng cần kiểm kê Đồng thời đối chiếu số liệu với các phiếu nhập, phiếu xuất để thống kê số lượng hàng hóa tồn kho

Lập báo cáo thống kê:

Khi có yều cầu thống kê báo cáo thì phải xuất ra được các báo cáo tổng hợp và chi tiết nhập hàng, xuất hàng, tồn kho, doanh thu, công nợ theo ngày, tháng, năm

2.3.2 Phát biểu bài toán

Qua những thông tin nêu trên ta có thể phát biểu bài toán như sau:

Công ty được tổ chức thành các chi nhánh, trong đó chi nhánh chính (trung tâm)

sẽ quản lý các chi nhánh con, các chi nhánh con hoạt động độc lập nhau Thông tin chi nhánh gồm mã chi nhánh, tên chi nhánh, địa chỉ, số điện thoại, fax

Công ty, chi nhánh được tổ chức thành các phòng ban, các thành viên trong mỗi phòng ban sẽ được phân công nhiệm vụ tương ứng

Trang 39

Công ty bán nhiều mặt hàng nên ta cần xây dựng cơ sở dữ liệu về các mặt hàng trong đó cần các quản lý các thông tin như nhóm hàng, loại hàng, mã hàng, tên hàng, giá nhập, giá bán, ngày nhập, số lượng tồn

Công việc nhập hàng sẽ quản lý các thông tin sau: số phiếu nhập phải tự tăng, mỗi phiếu sẽ có ký tự đầu để phân biệt các loại phiếu, ngày lập, tên nhà cung cấp, số lượng, đơn giá, loại phiếu, tên kho Trong đó nhà cung cấp gồm các thông tin như mã nhà cung cấp, tên nhà cung cấp, địa chỉ, email, fax

Công việc xuất hàng sẽ quản lý các thông tin sau: số phiếu xuất phải tự tăng, mỗi phiếu sẽ có ký tự đầu để phân biệt các loại phiếu, ngày lập, tên khách hàng, số lượng, đơn giá, giá giảm, tên kho Trong đó khách hàng gồm các thông tin như mã khách hàng, tên khách hàng, địa chỉ, điện thoại

Công việc thu tiền sẽ quản lý các thông tin sau: Số phiếu thu phải tự tăng, mỗi phiếu sẽ có ký tự đầu để phân biệt các loại phiếu, ngày lập, tên khách hàng, số tiền, thanh toán, còn lại Ngoài tra còn quản lý các nguồn thu khác, không phải từ việc bán hàng

Công việc chi tiền sẽ quản lý các thông tin sau: Số phiếu chi phải tự tăng, mỗi phiếu sẽ có ký tự đầu để phân biệt các loại phiếu, ngày lập, tên nhà cung cấp, số tiền, thanh toán Ngoài ra còn quản lý các chi phí khác trong quá trình hoạt động hằng ngày của công ty, chi nhánh

Công việc trả hàng sẽ quản lý các thông tin sau: Số phiếu tương tự cũng phải tự tăng và có ký tự phân biệt, ngày lập, tên khách hàng, tên hàng hóa

Đối với nhân viên cần quản lý các thông tin sau: mã nhân viên, họ tên, ngày sinh, giới tính, địa chỉ, điện thoại, tình trạng

Trang 40

CHƯƠNG 3 - XÂY DỰNG HỆ THỐNG BÁN HÀNG

Trong chương này luận văn sẽ tập trung phân tích các chức năng của hệ thống bán hàng từ đó thiết kế CSDLPT và sử dụng các công cụ lập trình để xây dựng hệ thống bán hàng

3.1 Công tác quản lý bán hàng

Một trong các vấn đề quan trọng đảm bảo cho công tác quản lý bán hàng hoạt động hiệu quả là ứng dụng CNTT để quản lý một cách đồng bộ Quản lý bán hàng là công tác quan trọng trong doanh nghiệp, sẽ chịu trách nhiệm quản lý không chỉ xuất, nhập kho hàng hóa , mà còn thống kê báo cáo số liệu cho ban lãnh đạo để từ đó xây dựng các chiến lược bán hàng sao cho đạt được hiệu quả cao

Hệ thống quản lý bán hàng đòi hỏi thiết kế phải hoạt động xuyên suốt, nếu có

sự cố tại bất kỳ chi nhánh nào các chi nhánh còn lại vẫn hoạt động bình thường Do vậy để hệ thống hoạt động tốt thì không chỉ đầu tư về nguồn nhân lực mà còn đầu tư

về hệ thống mạng, phần mềm chuyên dụng để phục vụ việc quản lý xuất, nhập hàng hóa, các báo cáo, thống kê…

3.2 Phân tích chức năng hệ thống quản lý bán hàng

Công việc chính của việc xây dựng hệ thống bán hàng là phải xác định yêu cầu, nhiệm vụ trọng tâm của hệ thống thông tin đang xét, xác định kiến trúc của hệ thống thông tin và chức năng cơ bản của các mức thông tin, đồng thời cũng xác định sự ảnh hưởng qua lại giữa các mức thông tin

Nhìn chung, kiến trúc và chức năng cơ bản của hệ thống thông tin phục vụ công tác quản lý bán hàng gồm các phân hệ sau:

Ngày đăng: 23/12/2018, 06:16

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
2. Nguyễn Mậu Hân (1999), Tập giáo trình Cơ sở dữ liệu phân tán, Đại học khoa học Huế Sách, tạp chí
Tiêu đề: Tập giáo trình Cơ sở dữ liệu phân tán
Tác giả: Nguyễn Mậu Hân
Năm: 1999
3. Lê Văn Sơn (2002), Hệ tin học phân tán, NXB ĐHQG TP.HCM Sách, tạp chí
Tiêu đề: Hệ tin học phân tán
Tác giả: Lê Văn Sơn
Nhà XB: NXB ĐHQG TP.HCM
Năm: 2002
4. Đồng Thị Bích Thủy (2000), Tập giáo trình Hệ thống thông tin, Đại học khoa học Tự Nhiên TP.HCM Sách, tạp chí
Tiêu đề: Tập giáo trình Hệ thống thông tin
Tác giả: Đồng Thị Bích Thủy
Năm: 2000
5. Nguyễn Bá Tường (2004), Nhập môn cơ sở dữ liệu phân tán, NXB KH&amp;KT. Tiếng anh Sách, tạp chí
Tiêu đề: Nhập môn cơ sở dữ liệu phân tán
Tác giả: Nguyễn Bá Tường
Nhà XB: NXB KH&KT. Tiếng anh
Năm: 2004
6. Bezalel Gavish, Myung W. Suh (1992), Configuration of fully replicated distributed database system over wide area networks, Springer Sách, tạp chí
Tiêu đề: Configuration of fully replicated distributed database system over wide area networks
Tác giả: Bezalel Gavish, Myung W. Suh
Năm: 1992
7. D. Bell and J. Grimson (1992). Distributed Database Systems, Reading, Addison Wesley Sách, tạp chí
Tiêu đề: Distributed Database Systems, Reading
Tác giả: D. Bell and J. Grimson
Năm: 1992
8. Tamer ệzsu, Patrick Valduriez (2011), Principles of Distributed Database Systems, Springer Sách, tạp chí
Tiêu đề: Principles of Distributed Database Systems
Tác giả: Tamer ệzsu, Patrick Valduriez
Năm: 2011
9. Ishfaq Ahmad, Yu-Kwong Kwok, Siu-Kai So (2002), Evolutionary Algorithms for Allocating Data in Distributed Database Systems, Springer Sách, tạp chí
Tiêu đề: Evolutionary Algorithms for Allocating Data in Distributed Database Systems
Tác giả: Ishfaq Ahmad, Yu-Kwong Kwok, Siu-Kai So
Năm: 2002
10. Kalman Toth (2014), SQL Server 2014 Database Design, CreateSpace Sách, tạp chí
Tiêu đề: SQL Server 2014 Database Design
Tác giả: Kalman Toth
Năm: 2014
11. Rahimi Saeed and Frank S. Haug (2010), Distributed Database Management Systems: A Practical Approach, Wiley Sách, tạp chí
Tiêu đề: Distributed Database Management Systems: A Practical Approach
Tác giả: Rahimi Saeed and Frank S. Haug
Năm: 2010
12. Ray Rankins, Paul Bertucci, Chris Gallelli, Alex T. Silverstein (2015), Microsoft SQL Server 2014 Unleashed, Sams Sách, tạp chí
Tiêu đề: Microsoft SQL Server 2014 Unleashed
Tác giả: Ray Rankins, Paul Bertucci, Chris Gallelli, Alex T. Silverstein
Năm: 2015
13. Sebastian Meine, Ph.D (2013), Fundamentals of SQL Server 2012 Replication, Red gate Sách, tạp chí
Tiêu đề: Fundamentals of SQL Server 2012 Replication
Tác giả: Sebastian Meine, Ph.D
Năm: 2013
14. Sujoy Paul (2009), Pro SQL Server 2008 Replication, Appress Sách, tạp chí
Tiêu đề: Pro SQL Server 2008 Replication
Tác giả: Sujoy Paul
Năm: 2009
1. Nguyễn Gia Tuấn Anh (1998), Luận văn nghiên cứu cài đặt một hệ cơ sở dữ liệu phân tán phục vụ việc quản lý dân cư TP. Hồ Chí Minh Khác
15. Cross-Database Transactions and Distributed Transactions for Always On Availability Groups and Database Mirroring (SQL Server) Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w