Bài viết trình bày về cơ sở dữ liệu phân tán được sử dụng cho hệ thống bán vé tự động tại bến xe giúp cho việc truy xuất dữ liệu nhanh chóng, dễ dàng phân mục theo thời gian (tháng, năm) để tiện lưu trữ và xử lý. Mời các bạn cùng tham khảo!
THIẾT KẾ HỆ THỐNG CƠ SỞ DỮ LIỆU PHÂN TÁN TRONG KIOSK BÁN VÉ TỰ ĐỘNG TẠI BẾN XE MIỀN ĐÔN Ngu ễn Phước i, Dương inh Cảnh, uỳnh h i Bả Trân Khoa Công nghệ Thông tin, Trường Đại học Cơng nghệ TP Hồ Chí Minh GVHD Khang TĨM TẮT Cơ sở liệu phân tán sử dụng cho hệ thống bán v tự động bến xe giúp cho việc truy xuất liệu nhanh chóng, dễ dàng phân mục theo thời gian (tháng, năm để tiện lưu trữ xử lý Từ khóa: Bán v , iosk, Phân tán, SQL Ệ 1.1 Bến Xe Miền Đông (BX Đ) Bến Xe Miền Đông bến xe lớn phạm vi TP.HCM nước, BXMĐ cung cấp bến bãi, phục vụ bán vé cho hệ thống nhà xe lớn Kumho Samco Busline, Phương Trang… nhà xe khác tỉnh, thành phố thuộc miền Trung, miền Bắc Trong BXMĐ, nhà xe tham gia hai hình thức: Các nhà xe tự bán vé qua quầy vé riêng, sử dụng bến bãi BXMĐ (Nhà xe độc lập) Các nhà xe sử dụng bến bãi ủy quyền việc bán vé cho BXMĐ (Nhà xe ủy thác) Trong trình vận hành, BXMĐ yêu cầu cần phải nắm rõ thông tin: Thông tin liên hệ nhà xe; Thông tin vận hành nhà xe, bao gồm tuyến đường nhà xe hoạt động, giá vé, v.v…; Danh sách xe nhà xe, bao gồm thông tin vào bến, biển số xe v.v…; Thông tin vé bán, danh sách hành khách chuyến xe BXMĐ phát triển nhanh chóng số lượng xe, số lượng nhà xe, số lượng hành khách nhà xe dẫn đến bùng nổ liệu cần lưu trữ, xử lý bao gồm liệu vé, giao dịch v.v…; Yêu cầu phải có giải pháp quản lý, cơng nghệ áp dụng vào q trình quản lý thơng tin, bán vé v.v…; Vì việc áp dụng xây dựng hệ thống sở liệu (CSDL) phân tán tiết kiệm thời gian truy xuất liệu từ server 1.2 Hệ thống quản lý thơng tin, bán kiểm sốt vé BX Đ Hiện nay, BXMĐ có máy chủ riêng phần mềm quản lý công đoạn, tiêu biểu phần mềm quản lý vào bến liệu không quản lý tập trung, gây khó khăn cho q trình quản lý, thống kê Với việc xây dựng hệ thống CSDL phân tán, BXMĐ quản lý dễ dàng nhà xe ủy thác nhà xe độc lập tham gia vào BXMĐ 82 Hệ thống Quản lý thông tin nhà xe, thơng tin hoạt động nhà xe bán, kiểm sốt vé BXMĐ đời nhằm giải vấn đề q trình vận hành BXMĐ, kể đến giải pháp lưu trữ liệu phân tán, hỗ trợ bán kiểm soát vé, giúp giải tỏa nhân cơng, thời gian chi phí q trình quản lý thơng tin, bán vé kiểm sốt vé, bao gồm nhóm nghiệp vụ sau: Đặt chỗ, bán vé qua kênh bán vé, bao gồm: Máy bán vé tự động, nhân viên bán vé website đặt vé online; thực tốn qua hình thức: tốn qua ví điện tử, tốn tiền mặt, toán thẻ ngân hàng; Quản lý thông tin liên hệ nhà xe; Quản lý thông tin vận hành nhà xe, bao gồm tuyến đường, giá vé, thông tin vào bến; Quản lý vé hành khách nhà xe Sơ đồ hệ thống biểu diễn hình bên dưới: nh 1.1 Sơ đồ hệ thống BXMĐ Trong hệ thống BXMĐ, có hai loại nhà xe tham gia nhà xe độc lập, nhà xe ủy thác, loại nhà xe có phương thức kết nối vào hệ thống khác Cụ thể, cổng đặt vé (Máy bán vé, Nhân viên, Website) thao tác liệu qua API BXMĐ, API lấy liệu từ API nhà xe độc lập, với thông tin kết nối lưu CSDL BXMĐ, mặt khác, liệu nhà xe ủy thác lưu CSDL quản lý BXMĐ, CSDL phân tán máy khác đặt máy chủ được; q trình tốn diễn máy trạm, sau tùy vào kết toán mà máy trạm gửi kết API BXMĐ để xử lý Mô tả chi tiết thành phần: 83 – Các dịch vụ tốn: Là máy chủ hình thức tốn (Ví điện tử, tốn thẻ ngân hàng) có nhiệm vụ xử lý toán, trả kết cho hình thức tốn tương ứng – Kiosk bán vé tự động: Máy bán vé tự động đặt BXMĐ, gồm mơ- đun phần cứng: Máy tính có cấu hình tối thiểu: Hệ điều hành: Window 10, CPU: Intel Celeron J4005, RAM: 2GB, Ổ cứng: 50GB, ngõ hình (HDMI), cổng USB A, Kết nối internet (Wifi cổng LAN); hình (Khơng có cảm ứng); hình (Có cảm ứng); Máy POS toán thẻ ngân hàng; Thiết bị đọc tiền mặt; Máy in nhiệt – Nhân viên bán vé: Nhân viên bán vé BXMĐ thao tác phần mềm bán vé dành cho nhân viên – Website đặt vé: Khách hàng thao tác website đặt vé để tiến hành đặt vé toán online – API BXMĐ: Cổng giao tiếp hệ thống – API Nhà xe độc lập: Hệ thống API nhà xe độc lập – Database BXMĐ: Chứa thông tin chung hệ thống – Database Nhà xe ủy thác: Chứa thông tin vận hành nhà xe – Máy chủ: Cloud server hoăc máy chủ vật lý, đáp ứng: Hệ điều hành: Windows server 2016, CPU: Inter Xeon E5-2690 V4, RAM: 12GB, Ổ cứng: 1TB Cài đặt phần mềm: IIS, SQL Server 2014, FTP Server Phần mềm bán vé cho nhân viên: Máy tính có cấu hình tối thiểu: Hệ điều hành: Windows 10, CPU: Intel Celeron J4005, RAM: 2GB, Ổ cứng: 50GB, Kết nối internet (Wifi cổng LAN) Hệ thống gồm Kiosk bán vé tham gia, với liệu thật nhà xe lấy từ phần mềm bán vé vận hành thực tế Hệ thống vận hành đạt mục tiêu đặt giảm tải lần truy vấn liệu, cải thiện tốc độ, hiệu năng, nâng cao chất lượng dịch vụ nhà xe Ư N 2.1 Ph n N N CỨ V CÁC CÔN N Ệ n CSDL Phân v ng bảng cách để chia bảng lớn thành phần nhỏ hơn, dễ quản l mà tạo bảng riêng biệt cho phần Dữ liệu bảng phân v ng lưu trữ vật l nhóm hàng gọi phân v ng phân v ng truy cập trì riêng Ph n n ọc Phân tán dọc quan hệ dựa phép chiếu để phân chia thuộc tính vào nhóm khác Sự phân mảnh đắn thuộc tính ánh xạ vào phân mảnh phải đảm bảo tính tái thiết cách kết nối phân mảnh lại với AAttr(R), i[l,n]: AAttr(Ri), với Attr(R) tập thuộc tính R 84 Phân tán ngang Phân tán ngang chia quan hệ theo bộ, phân v ng tập uR, i[l,n]: uRi Chức ph n ng Chức phân v ng xác định cách phân v ng liệu dựa cột phân v ng Hàm phân v ng không xác định rõ ràng phân v ng hàng đặt phân v ng Thay vào đó, hàm phân v ng định giá trị biên, điểm phân v ng Tổng số phân v ng là tổng số giá trị biên +1 Minh họ chức phân tán nh 2.1 Phân tán dọc Phạ Có i ph n nh 2.2 Phân tán ngang n phạm vi phân tán: Phân tán trái có giá trị biên thuộc phân v ng bên trái phân tán phải ngược lại nh 2.3 Phạm vi phân tán 2.2 CSDL r ng hệ hống CSDL hệ thống tổ chức hệ quản trị SQL Server, gồm CSDL Bến Xe Miền Đông (QLC) tập hợp CSDL Nhà xe ủy thác (NXUT), việc tách liệu thành CSDL khác nhằm chuyên biệt hóa liệu, nâng cao hiệu xử lý; Đặc biệt, việc phân nhà xe ủy thác thành CSDL riêng nhằm phục vụ cho việc chuyển đổi hình thức tham gia nhà xe tương ứng BXMĐ, chẳng hạn chuyển từ hình thức ủy thác sang độc lập CSDL lưu trữ xử lý nhóm thơng tin khác nhau, cụ thể: 85 CSDL QLC – Thông tin vận hành hệ thống ưu trữ thông tin liên hệ nhà xe, bao gồm tên, địa chỉ, số điện thoại, địa PI…; ưu trữ thông tin nhân cá nhân tài khoản viên bán vé, nhân viên quản trị hệ thống; tài khoản thông tin vận hành máy bán vé tự động; ưu trữ thơng tin vé, phiếu kiểm sốt vé cho tất nhà xe, vé vé bán (đặt hệ thống); ưu trữ thông tin giao dịch bán vé; Xử lý liệu tương ứng qua stored procedure CSDL BXUT – Thông tin vận hành nhà xe ủy thác ưu trữ thông tin tuyến đường, thông tin liên quan đến tuyến đường, v khách hàng; ưu trữ thông tin chuyến, giá vé, tài xế, xe thông tin liên quan đến xe; Xử lý liệu tương ứng qua stored procedure Với database khác tổ chức phân tán máy chủ khác nhau, chia sẻ gánh nặng tài nguyên phần cứng máy chủ Mặt khác, liệu CSDL có tính độc lập cao, tránh tình trạng trùng lắp liệu nh 2.3 Mơ hình lưu trữ hệ thống quản l BXMĐ 2.3 Nhu cầu phân tán liệu Với số lượng nhà xe tham gia, kèm theo lượng hành khách lớn, bình quân ngày BXMĐ phục vụ 21.000 hành khách với 1.100 lượt xe xuất bến; ngày cao điểm lễ tết số lên đến 60.000 hành khách 1.800 lượt xe xuất bến, bùng nổ liệu hệ thống tránh khỏi Các đối tượng có số lượng liệu lớn hệ thống kể đến như: Hành khách, Phiếu kiểm soát, Giao dịch, Vé, Chuyến xe, Các thơng tin vận hành nhà xe Vì cần có biện pháp giảm tải áp lực truy xuất lên hệ thống phần cứng, đảm bảo tính sẵn sàng cho hệ thống 2.4 Phân tán liệu hệ thống Để giải vấn đề lưu trữ liệu lớn nêu trên, hình thức phân đoạn liệu được áp dụng, bật hình thức phân đoạn ngang (theo liệu) quan hệ: 86 – Tại CSDL QLC: Ve (Vé), PhieuKiemSoat (Phiếu kiểm soát), GiaoDich (Giao dịch) – Tại CSDL NXUT: Ve (Vé), Chuyen (Chuyến) Với cách phân đoạn liệu nhau: theo tháng; phân đoạn liệu vòng tháng (cho tất năm , với cách phân đoạn trên, quan hệ CSDL bao gồm 12 phân đoạn tương ứng với 12 tháng Mặt khác, nhà xe ủy thác quản lý BXMĐ CSDL riêng, CSDL có cấu trúc nhau, đặt chung máy chủ BXMĐ phân tán máy chủ khác ỰC N Ệ Phần mơ tả q trình thực nghiệm, bao gồm xây dựng hệ thống bán vé tự động, quản lý tập trung phân mảnh liệu cho hệ thống bán vé tự động BXMĐ Mô tả trình thực phân tán ngang bảng Như mô tả phần trên, tất bảng hệ thống có cách phân đoạn ngang giống nhau, ví dụ bước cần làm SQL Server để thực phân đoạn ngang bảng CHUYEN CSDL Nhà xe ủy thác Áp dụng phân mảnh liệu SQL Server Tạo filegroup cho 12 tháng database để lưu file chứa liệu tháng tương ứng: ALTER DATABASE NHAXEDB ADD FILEGROUP THANG1 Với filegroup tạo file để chứa liệu, xác định vị trí lưu file từ bước này: ALTER DATABASE NHAXEDB ADD FILE (NAME = N'TH1V', FILENAME = 'C:\PHANTAN\CHUYEN\THANG1C.ndf) TO FILEGROUP THANG1 Để phân tán theo tháng ta cần xác định cột mốc thời gian hiểu mốc thời gian mà liệu có mốc thời gian phân tán để lưu filegroup tương ứng Ví dụ, năm có 12 tháng, ta xác định 12 cột mốc để phân tán liệu chia thành 12 file trên, sau tạo partition function để xác định biên liệu: CREATE PARTITION FUNCTION pfChuyen(int) AS RANGE RIGHT FOR VALUES (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); Ở có 11 range cho 12 tháng: 2->3, 3->4, 4->5, 5->6, 6->7, 7->8, 8->9, 9->10, 10->11, 11->12, 12-> Với Range Right biên liệu tính biên cuối, số tính biên cuối range nhỏ ngày có tháng (từ 1-3 đến 31-3), tương tự với tháng lại, tháng lưu vào vị trí trước tháng sau tháng 12 range Với Range Left biên liệu tính biên đầu nên ta phải sửa lại values {1, 2, 3, 4, , 87 6, 7, , , 10, 11} Sau xác định biên liệu, ta xác định nơi lưu liệu thuộc biên cho filegroup tương ứng: CREATE PARTITION SCHEME psChuyens AS PARTITION pfChuyens TO (THANG1, THANG2, THANG3, THANG4, THANG5, THANG6, THANG7, THANG8, THANG9, THANG10, THANG11, THANG12) Cuối tạo bảng trống liệu để phân tán bảng đó: CREATE TABLE [CHUYEN]([MACHUYEN] BIGINT PRIMARY KEY IDENTITY(1,1) NOT NULL, [NGAYCHAY] DATE NOT NULL, [MATUYEN] CHAR(20) NOT NULL, [MAKHUNGGIO] CHAR(20) NOT NULL, [MASODOGHE] CHAR(20) NOT NULL, [MABANGGIAVE] INT NOT NULL, [SERIDAU] NVARCHAR (100) NULL, [TINHTRANG] TINYINT NOT NULL, [MATAIXE1] CHAR(20) NULL, [MATAIXE2] CHAR(20) NULL, [MAXE] CHAR(20) NULL, [MALOAIXE] TINYINT NULL, [THANG] INT NULL) ON psChuyens([THANG]); Các hình thức phân mảnh, phân tán nên giảm tải đáng kể áp lực truy vấn hệ thống, cụ thể với phương pháp phân mảnh liệu theo tháng, tháng ta thao tác file group CSDL Riêng với nhà xe ủy thác, nhà xe tùy trường hợp liệu lưu trữ BXMĐ dễ dàng dời sang máy chủ khác có nhu cầu, chẳng hạn máy chủ BXMĐ tải nhà xe có ý định tách riêng với BXMĐ Ư N P Á ỂN ĐỀ TÀI 4.1 Điểm mạnh p dụng thành cơng mơ hình phân tán cho hệ thống, tối ưu hóa tài nguyên nhớ cho máy chủ, giảm tải đáng kể cho hệ thống với lượng truy xuất liệu liên tục từ nhiều nhà xe khác p dụng thành công Code cho việc sốt v , liên kết nhiều hình thức toán khác nhau, trang bị máy toán tiền mặt có chức trả lại tiền thừa với đủ loại mệnh giá ( ND , khuyến khích người d ng áp dụng hình thức phi tiền mặt việc d ng thẻ ngân hàng ví điện tử Xây dựng core để gọi phản hồi PI cho ph p kết nối với nhà xe có phần mềm CSD từ trước muốn tham gia vào hệ thống bán v BXMĐ, tạo hiệu việc vận hành nhà xe Đối với nhà xe ủy thác chưa có phần mềm cần đăng k với BXMĐ hệ thống tự tạo sở liệu riêng cho ph p quản l liệu bán v cho nhà xe ủy thác 4.2 Điểm cần khắc phục Chưa thể lưu file phân tán máy chủ khác điều kiện nghiên cứu hồn thành nhanh chóng trang bị phần cứng đầy đủ Hệ thống phân tán chưa phân v ng liệu có sẵn CSDL 88 4.3 ướng phát triển Hệ thống bán v xe BXMĐ phát triển lên tảng web app, dịch sang nhiều ngôn ngữ để tạo thuận tiện cho khách người ngoại quốc Xây dựng core cho ph p liên kết với tất nhà xe BXMĐ TÀI LIỆU THAM KHẢO [1] https://docs.microsoft.com/en-us/sql/relational-databases/partitions [2] https://www.cathrinewilhelmsen.net/2015/04/12/table-partitioning-in-sql-server/ [3] https://www.cathrinewilhelmsen.net/2015/04/19/table-partitioning-in-sql-server-partitionswitching/ 89 ... cơng, thời gian chi phí q trình quản lý thơng tin, bán vé kiểm sốt vé, bao gồm nhóm nghiệp vụ sau: Đặt chỗ, bán vé qua kênh bán vé, bao gồm: Máy bán vé tự động, nhân viên bán vé website đặt vé. .. 2.2 Phân tán ngang n phạm vi phân tán: Phân tán trái có giá trị biên thuộc phân v ng bên trái phân tán phải ngược lại nh 2.3 Phạm vi phân tán 2.2 CSDL r ng hệ hống CSDL hệ thống tổ chức hệ quản... hệ thống BXMĐ, có hai loại nhà xe tham gia nhà xe độc lập, nhà xe ủy thác, loại nhà xe có phương thức kết nối vào hệ thống khác Cụ thể, cổng đặt vé (Máy bán vé, Nhân viên, Website) thao tác liệu