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

Hệ thống đặt vé xe lửa cho ga hòa hưng

76 514 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 76
Dung lượng 3,52 MB

Nội dung

Hệ thống đặt vé xe lửa cho ga hòa hưng

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN



BÁO CÁO ĐỒ ÁN CUỐI KỲ

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

Trang 2

2Bảng phân công công việc: 3

3Giới thiệu tổng quan về đồ án 4

4Đặc tả hệ thống: 4

4.1Giới thiệu tổng quan về hệ thống: 4

4.2Đặc tả chi tiết các quy trình và quy đinh của hệ thống: 5

4.3Môi trường phát triển: 7

5Mô tả các phân hệ có trong hệ thống: 7

6Mô tả chi tiết các chức năng của hệ thống: 8

6.1Danh sách các chức năng: 8

6.2Sơ đồ thực hiện các chức năng: 9

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

7.1Lược đồ ER: 11

7.2Lược đồ cơ sở dữ liệu : 15

7.3Mô tả cấu trúc các bảng: 16

7.4Mô tả mối quan hệ giữa các bảng: 18

8Màn hình chính 21

9Màn hình login: 21

10Màn hình đặt vé: 23

11Màn hình hủy vé 23

Trang 3

12Màn hình Thông Tin Ga: 35

13Màn hình Thay Đổi Thông Tin Ga 38

14Màn hình xem Tuyến tàu: 39

15Màn hình thông tin Tuyến tàu: 40

16Thao Tác Trên Bảng Chuyến Tàu: 48

17Thao Tác Trên Bảng Ga Trung Gian: 64

18Màn hình xem thông tin: 71

19Màn hình thống kê: 74

1. Thông tin nhóm:

2. Bảng phân công công việc:

Khảo sát các website 100%

Trang 4

Viết bảng mô tả hệ thống

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

Viết bảng mô tả các chức năng đụng độ

Xem, xóa, sửa thông tin Ga

Báo cáo doanh thu theo chuyến trong thời gian cụ thể

Báo cáo doanh thu trong thời gian cụ thể

Khảo sát các website

Vẽ mô hình, lược đồ liên quan

Viết bảng mô tả các chức năng đụng độ

Xem, xóa, sửa Tuyến

Xem, xóa, sửa Chuyến

100%

Khảo sát các websiteViết bảng mô tả CSDLViết bảng mô tả các chức năng đụng độ

Thiết kế giao diện

Thêm, xóa các ga trung gian

100%

-3. Giới thiệu tổng quan về đồ án

− Đồ án được chúng em xây dựng trên mô hình 3 Tier có thể cài đặt CSDL trên một máy

và chạy ứng dụng gọi tới CSDL đó trên một máy khác

− Đồ án xây dựng trên nền Visual Studio 2008, hệ quản trị CSDL SQL Server 2005

− Tổng số chức năng mô tả 15 chức năng, cài trên 6 table

4. Đặc tả hệ thống:

Trang 5

− Với tình trạng hiện nay, ga xe lửa Hòa Hưng không có hệ thống giúp cho hành khách cóthể đặt vé trực tuyến mà chỉ có thể mua vé trực tiếp từ các quầy bán vé hoặc gọi điệnthoại đặt vé để được giao vé trực tiếp Điều này gây ra sự bất cập là một số nhân viên bán

vé có thể chặn vé lại để phe vé chợ đen Dưới tình trạng đó, Ban Giám Đốc ga xe lửa HòaHưng quyết định xây dựng một hệ thống đặt vé trực tiếp không thông qua nhân viên bán

vé Hệ thống các máy đặt vé này sẽ được đặt trực tiếp ở trước nhà ga phục vụ cho việcđặt vé của khách hàng

− Ga xe lửa Hòa Hưng cần quản lý việc đặt vé, hủy vé, quản lý lịch chạy các chuyến tàu.Sau đây là bảng mô tả cơ bản các hoạt động mà hệ thống thực cần thực hiện:

− Hệ thống cần lưu trữ thông tin về lịch chạy của các chuyến tàu Người ta gọi lịch chạycủa một tàu cụ thể trên một tuyến đường trong một khoảng thời gian cố định và đi quamột số lượng ga nhất định là một chuyến tàu ví dụ như tuyến Sài Gòn – Hà Nội do tàuSE2 chạy nó sẽ ghé qua các ga như: Sài Gòn, Biên Hòa, Nha Trang, nó sẽ bắt đầu đi vào19h00 và đến lúc 04h10 vào ngày 24/12/2009

− Tuyến tàu có tên tuyến thể hiện một đoạn đường mà tàu chạy xuyên suốt mà tại các thànhphố đó là nơi mà tại đó có ga lớn mà tàu có thể dừng lại để bảo trì hoặc sửa chữa Mỗi tàu

có thể chạy trên nhiều tuyến tàu khác nhau Mỗi tàu có mã tàu và tên tàu

− Mỗi chuyến tàu sẽ bắt đầu chạy ở một ga và kết thúc chuyến đi ở một ga khác Ngoài ratrong suốt hành trình nó sẽ dừng lại để cho khách xuống và rước khách mới ở một số ganhất định vào những khoảng thời gian cố định tùy thuộc vào loại tàu chạy chuyến đó Các

ga đó gọi là các ga trung gian Mỗi ga sẽ có tên ga, có thể trùng với tên địa phương hoặcđịa danh nơi đó, địa chỉ, điện thoại, fax và thông tin về quy mô của ga đó Mỗi chuyếntàu sẽ có thời gian đi và đến Trên chuyến tàu tùy theo chuyến đó tàu nào chạy sẽ có sốlượng ghế cố định thuộc nhiều loại khác nhau Để dễ dàng cho việc quản lý và đặt chỗ thìhành khách và cả hệ thống cần biết được tàu chạy chuyến đó còn bao nhiêu chỗ trống vànhững chỗ trống đó thuộc loại ghế nào ví dụ như ghế cứng, ghế mềm, ghế máy lạnh…

Vì mỗi loại ghế như vậy sẽ có giá khác nhau

4.2.1. Quản lý thông tin:

− Khi nhân viên của nhà ga dùng user và pass của mình đăng nhập vào hệ thống tùy theoquyền mà được cấp cho người đó thì nhân viên đó có thể thay đổi thông tin các tuyến tàunhư thêm tuyến, ngưng hoạt động của một tuyến nào đó Nếu sắp tới giờ tàu khởi hành

mà có vấn đề gì xảy ra thì nhân viên có quyền cập nhật lại thông tin của chuyến tàu nhưthay đổi giờ khởi hành, số lượng ghế trên tàu, hoặc đổi tàu chạy chuyến đó

− Các tàu chạy nếu quá thời gian được lưu hành thì các con tàu đó sẽ được liệt vào loạikhông được sử dụng nữa Khi đó các nhân viên cần cập nhật lại tình trạng của tàu đó làkhông được lưu thông nữa

Trang 6

− Khi thêm một chuyến tàu nào đó thì tùy thuộc vào tàu sẽ chạy thì nhân viên cần tra cứuthông tin và quy mô của các ga Để xác định được chuyến tàu đó có thể và cần thiết dừnglại ở những ga nào trong suốt tuyến đường

4.2.2. Đặt vé:

− Khi khách hàng muốn đặt vé thì họ muốn biết thông tin liên quan đến tuyến đường mà họmuốn đi sẽ do tàu nào chạy và chạy vào ngày nào, ghế trên chuyến tàu đó có còn trốnghay không Vì vậy, đầu tiên hành khách cần phải nhập các thông tin tra cứu về ga đi (ga

mà hành khách bắt đầu xuất phát hoặc hành khách muốn đón tàu tại đó), ga đến (ga đích

mà mình muốn đến), tàu (tàu mà hành khách muốn đi) và ngày xuất phát Dựa trên cácthông tin này hệ thống sẽ phải thông báo các gợi ý về các chuyến tàu thỏa mãn các yêucầu trên cho hành khách Ngoài các thông tin ở trên, hệ thống còn cho biết trên tàu đichuyến đó còn trống bao nhiêu ghế, ghế đó thuộc loại nào Khi khách hàng muốn đặt loạighế nào số lượng bao nhiêu thì sẽ căn cứ vào các thông tin đó

− Khách hàng sẽ chọn loại ghế mà mình muốn đặt, khi đó khách hàng cần nhập các thôngtin về họ tên, địa chỉ, số điện thoại, CMND của người đặt và mã tài khoản nếu có (để cóthể thanh toán trực tiếp qua mạng) Số chỗ mà mình muốn đặt Sau khi đặt chỗ xong bạn

sẽ được cấp một mã đặt chỗ Căn cứ vào mã đặt chỗ này mà bạn sẽ đến lấy vé trực tiếptại quầy bán vé theo đúng các thông tin mà bạn đã đặt Khi yêu cầu đặt chỗ được chấpthuận thì tình trạng các vé tương ứng với thông tin đặt chỗ ở trên sẽ được bật lên tìnhtrạng là đã được đặt

− Khi nhận được vé thì trên vé ngoài các thông tin về mã vé và loại vé thì trên đó còn cócác thông tin về vị trí chỗ ngồi của bạn như: ghế của bạn nằm ở toa nào, có số thứ tự làbao nhiêu để giúp bạn thuận tiện hơn trong việc tìm ra chỗ ngồi của mình

− Một hành khách mỗi lần đặt vé thì có thể đặt nhiều loại ghế với từng số lượng khác nhautrên cùng một chuyến tàu

− Một hành khách chỉ được đặt tối đa một lượng vé nhất định Số lượng này được quy địnhtrong quy định đặt vé của công ty

4.2.3. Đăng ký:

− Sau khi đặt vé xong nếu khách hàng có nhu cầu hủy vé hoặc hủy một số vé nào đó thìkhách hàng cần đăng nhập vào hệ thống bằng số chứng minh thư của mình Từ đây hệthống sẽ kiểm tra xử lý trả ra cho khách hàng lịch sử đặt chỗ của họ: họ đặt vào ngày nào,trên chuyến nào, số vé đặt là bao nhiêu thuộc loại nào Tất cả các thông tin đó sẽ được thểhiện lên màn hình Khi đó khách hàng có quyền hủy đặt vé dựa trên các cơ sở đó

4.2.4. Hủy vé:

Trang 7

− Khách hàng có thể chọn loại ghế và số lượng vé mà mình muốn hủy dựa trên phiếu đặtchỗ ban đầu của mình Có thể hủy toàn bộ phiếu đặt chỗ hoặc chỉ cập nhật lại số lượng vécần phải mua

− Khi yêu cầu hủy vé được chấp thuận thì hệ thống sẽ tiến hành cập nhật lại phiếu đặt chỗ

và cập nhật lại tình trạng vé là rãnh để có thể cho phép người khác đặt Khi hủy vé kháchhàng cũng sẽ chịu một số tiền phạt nhất định tùy theo quy định được quy định rõ trong hệthống quy định của nhà ga

− Hành khách chỉ được hủy vé khi thời gian tàu chạy được đăng ký còn lớn hơn 24h Sauthời gian đó thì không được hủy vé nữa

4.2.5. Phát sinh báo cáo thống kê:

Các báo cáo thống kê cần phát sinh như:

− Số lượng chuyến tàu chạy trong tháng

− Thống kê số lượng khách hàng đặt vé

− Thống kê tình hình bán vé theo tháng/quý/năm/chuyến

− Báo cáo doanh thu bán vé thu được trong tháng/quý/năm/chuyến

4.2.6. Các quy định của hệ thống:

− Số lượng vé tối đa mà mỗi hành khách được đặt mỗi lần là 5 vé

− Chỉ được trả vé trước thời gian tàu chạy 2 ngày Sau thời gian đó nếu hủy vé thì hànhkhách sẽ bị khấu trừ 20% trên đơn giá vé

− Các tàu SE chỉ dừng lại ở các ga trung gian thuộc loại lớn, không dừng lại ở các ga cóquy mô trung bình và nhỏ

− Đồ án này chúng em xây dựng trên nền Visual Studio 2008 Framework 3.5

− Sử dụng Hệ quản trị Cơ sở dữ liệu SQL 2005

− Tương thích với hệ điều hành Window

− Khi phát triển ứng dụng này chúng em phát triển theo mô hình 3 layer Mục đích củaviệc sử dụng nó là nhằm thuận tiện hơn trong việc chia nhỏ công việc để giao chocác thành viên, có thể tái sử dụng lại

5. Mô tả các phân hệ có trong hệ thống:

Các phân hệ được quy định trong hệ thống bao gồm:

− Khách vãn lai: có quyền xem các thông tin về lịch chạy các chuyến tàu, ga đi – ga đến của chuyến tàu Họ có quyền xem vé trống, đặt vé Ngoài ra họ còn có thể xem các thông tin cơ bản như: thông tin ga, tàu, tuyến, …

− Khách đã từng đặt vé: bao gồm các quyền của khách vãn lai và thêm quyền hủy vé

đã đặt

Trang 8

− User: là người chịu trách nhiệm quản lí thông tin khách đã đặt vé, hủy vé Có nhiệm vụ báo biểu thống kê

− Manager: Là người chịu trách nhiệm quản lí về nội dung thông tin trong toàn bộ

hệ thống như cập nhật thông tin về tuyến tàu, chuyến tàu, hệ thống các nhà ga…

− Admin: quản trị kiến trúc hệ thống

6. Mô tả chi tiết các chức năng của hệ thống:

Yêu cầu lưu trữ:

− Lưu trữ thông tin nhân viên trong cty (thông tin cá nhân)

− Lưu trữ thông tin ga

− Lưu trữ thông tin tàu

− Lưu trữ thông tin tuyến tàu

− Lưu trữ thông tin chuyến tàu

− Lưu trữ thông tin vé (số toa, tình trạng, …)

− Lưu trữ thông tin đặt và hủy vé của khách hàng

− Lưu trữ thông tin khách hàng

Yêu cầu xử lí nghiệp vụ:

− Tiếp nhận đặt vé của khách hàng

− Tiếp nhận hủy vé của khách hàng

− Xem thông tin vé

− Xem thông tin ga

− Sửa thông tin ga

− Xóa Ga trong hệ thống ga đang quản lí

− Xem thông tin tuyến

− Sửa thông tin của tuyến

− Xóa (ngưng khai thác) Tuyến

− Xem thông tin Chuyến

− Sửa thông tin Chuyến

− Xóa chuyến

Trang 9

− Xem thông tin đặt vé của khách hàng

− Thêm ga trung gian cho 1 chuyến

− Giảm bớt (xóa) ga trung gian nào đó của chuyến

Yêu cầu kết xuất

− Thống kê số lượng vé bán trong mỗi chuyến

− Thống kê số lượng vé bán trong mỗi tuyến

− Thống kê khách hàng đặt vé

− Thống kê các khách hủy vé

− Báo cáo doanh thu theo chuyến

− Báo cáo doanh thu theo tuyến

− Báo cáo doanh thu theo thời gian (tháng, quí, …)

Sơ đồ tổng quát:

Trang 10

Ghi nhan Khach

Ghi nhan Dat ve

Cap Nhat Ve trong

Xem thong tin ve

Xem thong tin Ga Xem thong tinh Tuyen

Khách

xem Chuyen

Nhân Viên

Xem là Tra Cuu

Thong ke vé bán theo chuyen Thong ke khach hang dat ve

Thong ke ve ban theo Tuyen

Thong ke khách huy vé

Báo cáo doanh thu thoi gian

Bao cao Doanh thu Tuyen

Báo cáo doanh thu theo Chuyen

User

Xoa Chuyen

Sua Ga Xoa Tuyen Xoa ga trong he thong quan li

Sua thong tin Tuyen

Sua Chuyen Giam Ga trung gia

them Ga trung gian Manager

Trang 12

6 7.1.2. Thuyết minh mô hình ER

Các thuộc tính của thực thể:

− Chuyến tàu: bao gồm các thông tin mô tả chuyến tàu

− Tàu: bao gồm các thông tin về tàu chạy

− Tuyến tàu: các tuyến đường mà tàu chạy

− Ga: các thông tin về nơi mà tàu dừng

Trang 13

mô của ga)

− Khách hàng: chứa các thông tin của khách hàng khi đặt mua vé

− Hủy vé: chứa các thông tin khi khách hàng hủy vé

− Phiếu đặt chỗ: chứa các thông tin khi khách hàng đặt chỗ

− Chi tiết đặt chỗ: thông tin chi tiết của phiếu đặt chỗ

mà khách hàng chọn

Vé tàu: chứa thông tin về vé

Trang 14

− Loại vé: chứa các thông tin về việc phân loại vé

Các mối kết hợp:

Stt Tên mối kết hợp Bảng kết hợp Loại kết hợp Ý nghĩa

một tàu duy nhất chạy Mỗi tàu có thể chạy nhiềuchuyện khác nhau tùy ở thời điểm khác nhau

Tuyến tàu 1 – n Mỗi chuyến tàu chạy trên một tuyến tàu nhất định

Mỗi tuyến tàu thì có nhiều chuyến tàu chạy qua

hành trình có thể dừng ở nhiều nhà ga khác nhau.Mỗi nhà ga có nhiều chuyến tàu ghé qua.Thời gian đi và đến của mỗi chuyến tàu đến ga xác định

tàu 1 – n Mỗi vé tàu chỉ thuộc về một chuyến tàu

Mỗi chuyến tàu sẽ có nhiều vé tàu

Trang 15

tàu n – n Trên mỗi chuyến tàu thì có nhiều loại vé khác

nhau

Số lượng ghế và ghế trống của mỗi loại trên mỗi chuyến tàu thì khác nhau

Loại vé – Chuyến tàu

1 - n Mỗi chi tiết đặt chỗ đặt

chỗ trên một chuyến tàu nhất định, đặt chỗ cho một loại vé nhất định.Một chuyến tàu thì có nhiều phiếu chi tiết đặt chỗ

Một loại vé cũng được đặtbởi nhiều CT phiếu đặt chỗ

đặt chỗ 1 – n Một phiếu hủy vé chỉ hủy trên một phiếu đặt chỗ

Một phiếu đặt chỗ có thể

có nhiều phiếu hủy vé

Trang 16

1) NhanVien ( MaNV, MaLoaiNV, HoTen, DiaChi, DienThoai, User, Pass)

− Mỗi nhân viên của Ga có các thông tin như họ tên, địa chỉ, điện thoại, user và pass đểđăng nhập vào hệ thống Mỗi nhân viên có một mã nhân viên duy nhất để phân biệt vớicác nhân viên khác Mỗi nhân viên có nhiệm vụ khác nhau và được quy định trong loạinhân viên

2) LoaiNhanVien ( MaLoaiNV, TenLoaiNV, Quyen)

− Mỗi loại nhân viên có một mã duy nhất để phân biệt Còn có tên nhân viên và quyền đểquy định quyền hạn của nhân viên đó lúc đăng nhập vào hệ thống

3) KhachHang ( CMND, MaTaiKhoan, HoTen, DiaChi, SDT, SoLanDi)

− Mỗi khách hàng có một số CMND duy nhất để phân biệt Ngoài ra còn có các thông tinnhư họ tên, địa chỉ, số điện thoại, mã tài khoản ngân hàng và số lần đặt vé đi tàu (ở đâyquy định người đặt vé cũng là người đi)

Trang 17

6 4) Tau ( MaTau, TenTau )

− Mỗi một con tàu có một mã duy nhất để phân biệt với các con tàu khác và có tên gọi tương ứng

5) Ga ( MaGa, TenGa, DiaChi, DienThoai, Fax, LoaiGa)

− Mỗi một ga dừng có một mã duy nhất để phân biệt ngoài ra còn có các thông tin về tên

ga, địa chỉ, điện thoại, số fax Nếu quy mô của ga dừng là ga lớn thì LoaiGa = 1, trungbình thì LoaiGa = 2 và nhỏ thì LoaiGa = 3 Thuộc tính LoaiGa này dùng trong trườnghợp mở rộng các tuyến tàu và chuyến tàu (vì chỉ có ga lớn mới được đặt là ga đi và gađến Ngoài ra một số tàu đặc biệt chỉ dừng ở các ga lớn và trung bình, không dừng ở các

ga nhỏ)

6) TuyenTau ( MaTuyen, TenTuyen)

− Mỗi tuyến tàu có một mã tuyến duy nhất để phân biệt với các tuyến khác Mỗi tuyến tàu

có tên gọi riêng

7) ChuyenTau ( MaChuyen, MaTuyen, MaTau, GaDi, GaDen, ThoiGianDi, ThoiGianDen, TongSoGhe, SoGheConTrong)

− Mỗi một chuyến tàu có một mã chuyến để phân biệt với các chuyến khác Mỗi tuyến tàuvào một ngày có thể có nhiều chuyến tàu chạy Tàu chạy ở mỗi chuyến khác nhau thì cóthể khác nhau ở cùng một tuyến tàu Mỗi chuyến tàu xuất phát từ một ga và đi đến một gakhác cố định, có thời gian đi và thời gian đến xác định, tổng số ghế và số lượng ghế còntrống của tàu chạy chuyến đó

8) GaTrungGian ( MaChuyen, MaGa, ThoiGianDen, ThoiGianDi)

− Với mỗi chuyến tàu ngoài ga đi và ga đến cố định thì trong lộ trình của nó, nó còn dừnglại ở một số ga trung gian để cho khách lên, xuống (tùy thuộc vào loại tàu chạy chuyến

đó mà số lượng ga nó ghé vào là nhiều hay ít Ví dụ như tàu SH2 chạy tuyến từ TpHCM

ra Đà Nẵng có ghé qua ga Sông Ray nhưng nếu là tàu TN2 chạy thì nó sẽ không ghé gađó) Thời gian đến và đi ở mỗi ga là khác nhau

9) VeTau ( MaVe, MaChuyen, SoToa, SoGhe, TinhTrang, MaLoaiVe)

− Mỗi chuyến tàu có số lượng vé tương ứng với tổng số ghế của chuyến đó Mỗi vé có mã

vé duy nhất để phân biệt với các vé khác Trên vé có các thông tin về vị trí của ghế tươngứng với vé đó (SoToa, SoGhe) Có nhiều loại vé khác nhau, mỗi vé thuộc về một loại vénào đó Nếu TinhTrang của vé là 1 thì nó đã được đặt, là 0 thì vị trí ghế của vé đó còntrống

10) LoaiVe ( MaLoaiVe, TenLoaiVe, DonGia)

Trang 18

− Có nhiều loại vé khác nhau, mỗi loại có mã loại duy nhất để phân biệt chúng với nhau

Có tên loại vé và đơn giá tương ứng khác nhau cho từng loại

11) PhieuDatCho ( MaDatCho, NgayDat, MaChuyen, CMNDNguoiDat,

TongSoVeDat, TongTien )

− Mỗi khách hàng khi đặt vé tàu đi sẽ phát sinh một phiếu đặt chỗ, mỗi một phiếu đặt chỗ

có một mã duy nhất để phân biệt Phiếu đặt chỗ chứa số CMND của người đặt vé, ngàyđặt, đặt vé của chuyến nào, tổng số vé đặt và tổng tiền thanh toán

12) ChiTietDatCho ( MaCTDC, MaDatCho, LoaiVe, SoLuongDat, DonGiaDat )

− Mỗi phiếu đặt chỗ bao gồm nhiều chi tiết đặt chỗ Mỗi chi tiết đặt chỗ bao gồm các thôngtin về loại vé đặt, số lượng vé đặt và đơn giá đặt hiện tại Mỗi chi tiết đặt chỗ có một mãduy nhất để phân biệt với các chi tiết khác

13) ThongTinGheChuyen ( MaChuyen, MaLoaiVe, SoLuongGhe,

SoLuongGheTrong )

− Đối với mỗi chuyến tàu thì có nhiều loại ghế tương ứng với nhiều loại vé khác nhau Mỗiloại vé trên chuyến tàu đó có số lượng nhất định và khách hàng cần biết thông tin về sốlượng ghế còn trống của loại vé đó

14) HuyVe ( MaHuy, NgayHuy, MaDatCho, LoaiVe, SoLuongHuy, SoTienPhat )

− Khi khách hàng hủy vé cần lưu lại thông tin để xác lập lịch sử đặt vé và hủy vé của kháchhàng Mỗi phiếu hủy vé có một mã duy nhất để phân biệt với các phiếu hủy vé khác.Ngoài ra còn có các thông tin về ngày hủy, phiếu hủy này là của phiếu đặt chỗ nào Loại

vé cần hủy, số lượng vé vị hủy và mức phạt phải chịu (nếu có)

15) ThamSo ( MaThamSo, TenThamSo, KieuDuLieu, GiaTri, TinhTrang )

− Mỗi thông tin quy định trong bảng tham số có một mã duy nhất để phân biệt với các quyđịnh khác Nó có tên để miêu tả ngữ nghĩa Kiểu dữ liệu cho chúng ta biết giá trị củatham số trong thuộc tính GiaTri có kiểu dữ liệu gì Và TinhTrang của tham số cho chúng

ta biết hiện tại tham số đó có còn được sử dụng nữa hay không

1) NhanVien _ LoaiNhanVien:

− Mỗi một nhân viên thuộc về một loại nhân viên nào đó được thể hiện trong thuộc tínhMaLoaiNV trong bảng nhân viên

2) Tau _ ChuyenTau:

Trang 19

6) ChuyenTau _ GaTrungGian:

− Mỗi chuyến tàu sẽ đi qua và dừng lại ở nhiều ga khác nhau (ngoài ga cố định đi và đến).Mối quan hệ này cho ta biết chuyến tàu đó dừng ở những ga nào và nó được thể hiện ởthuộc MaChuyen và MaGa trong bảng GaTrungGian

7) ChuyenTau _ ThongTinGheChuyen:

− Trên mỗi chuyến tàu có nhiều loại ghế khác nhau tương ứng với nhiều loại vé Mối quan

hệ này cho ta biết trên chuyến tàu đó, loại vé đó có bao nhiêu ghế và số lượng ghế còntrống của loại vé đó

10)LoaiVe _ ChiTietDatCho:

− Mối quan hệ này cho ta biết phiếu chi tiết đặt chỗ đó đặt loại vé nào Mỗi phiếu chi tiếtđặt chỗ chỉ được đặt một loại vé duy nhất Điều này thể hiện ở thuộc tính LoaiVe trongbảng ChiTietDatCho

11) PhieuDatCho _ ChiTietDatCho:

Trang 20

− Mối quan hệ này thể hiện trong một phiếu đặt chỗ có thể bao gồm 1 hoặc nhiều phiếu chitiết đặt chỗ Mỗi phiếu chi tiết đặt chỗ thuộc về một phiếu đặt chỗ duy nhất Điều này thểhiện ở thuộc tính MaDatCho trong bảng ChiTietDatCho

Trang 22

9.1. Chức năng:

− Khi khách hàng muốn hủy vé đã đặt cần đăng nhập vào hệ thống trước

− Khi nhân viên muốn thay đổi các thông tin liên quan đến chuyến, tuyến, tàu, ga thì cầnđăng nhập vào hệ thống trước mới thấy được các chức năng này

− Khi nhân viên muốn xem các báo cáo thống kê thì cũng cần đăng nhập

− Nhập user: hien; pass: 123

9.2. Đụng độ:

Không có

Thông tin đăng nhập

sai

Trang 24

11.1. Chức năng:

− Khi khách hàng muốn hủy các vé mà mình đã đặt thì chỉ cần nhâp thông tin CMND củamình vào sau đó nhấp nút Tìm thì tự động chương trình sẽ liệt kê ra danh sách các vé màngười đó đặt có thể hủy được ra cho khách hàng coi

− Khách hàng chọn vé nào mà mình muốn hủy sau đó nhấp vào nút Hủy vé

− Nhấp nút Thoát để đóng màn hình

4.2 Đụng độ:

TestCase0

1 Tên lỗi : mất dữ liệu cập nhật

Tình huống gây ra lỗi

Hai giao tác cùng thực hiện trên đơn vị dữ liệu là Phieudatcho: T1 thêm một dòng dữ liệu , T2 cập nhật PhieuDatCho trong cùng một thời điểm,sau đó T1 đọc lại thì giá trị không khớp với

dữ liệu đang có

Hoạt động của các store procedure trước khi sửa lỗi

Trang 25

set tran isolation level READ

Chỉnh mức cô lập thành mức REPEATABLE READ (mức 3)

cho giao tác T1, vì ở mức cô lập này sẽ giúp tránh được hiện tượng lỗi trên

Hoạt động của các store procedure sau khi đã sửa lỗi

T1 (isolation level REPEATABLE READ) T2

set tongtien=9

where madatcho=6

commit

Trang 26

select Madatcho,tongtien

from PhieuDatCho with(UPDLOCK)

where madatcho=6

commit

begintranupdate phieudatcho

set tongtien=9

where madatcho=6

commit

Nhận xét Với mức cô lập 3 theo em là hợp lí nhất có thể, đã khắc phục

được hiện tượng lost update

Áp dụng cách khóa đó theo em là hợp lí vì nó chỉ khóa dòng nó

đang đọc đối với các lệnh ghi (update, delete) còn lại việc thao

tác đọc chung dữ liệu hay thao tác ở dòng khác là được chấp nhận

TestCase02 Tên lỗi : mất dữ liệu cập nhật

Tình huống gây ra lỗi

Hai giao tác cùng thực hiện trên đơn vị dữ liệu là chitietdatcho: T1 thêm một dòng dữ liệu , T2 cập nhật chitietdatcho trong cùngmột thời điểm,sau đó T1 đọc lại thì giá trị không khớp với dữ liệu đang có

Hoạt động của các store procedure trước khi sửa lỗi

Trang 27

insertinto Chitietdatcho

(MaCTDC,Soluongdat)values(6,5)

Chỉnh mức cô lập thành mức REPEATABLE READ (mức 3)

cho giao tác T1, vì ở mức cô lập này sẽ giúp tránh được hiện tượng lỗi trên

Hoạt động của các store procedure sau khi đã sửa lỗi

T1 (isolation level REPEATABLE READ) T2

begintran

set tran isolation level REPEATABLE

READ

insertinto Chitietdatcho

(MaCTDC,Soluongdat)values(6,5)

set soluongdat=0

where MaCTDC=6

rollback

commit

Trang 28

6Cách giải quyết sử dụng

insertinto Chitietdatcho

(MaCTDC,Soluongdat)values(6,5)

set soluongdat=0

where MaCTDC=6

rollback

commit

Nhận xét Với mức cô lập 3 theo em là hợp lí nhất có thể, đã khắc phục

được hiện tượng lost update

Áp dụng cách khóa đó theo em là hợp lí vì nó chỉ khóa dòng nó

đang đọc đối với các lệnh ghi (update, delete) còn lại việc thao

tác đọc chung dữ liệu hay thao tác ở dòng khác là được chấp nhận

TestCase0

3 Tên lỗi : bóng ma

Tình huống gây ra lỗi

Hai giao tác cùng thực hiện trên đơn vị dữ liệu là Phieudatcho: T1 đọc lấy danh sách Phieudatcho, T2 thêm/xóa một

Phieudatcho trong cùng một thời điểm

Hoạt động của các store procedure trước khi sửa lỗi

Trang 29

commit

Cách giải quyết sử dụng

mức cô lập

Chỉnh mức cô lập thành mức SERIALIZABLE (mức 4) cho

giao tác T1, vì ở mức cô lập này sẽ giúp tránh được hiện tượng Bóng Ma khi xử lý đồng thời Khi đó, hai lần đọc ở T1 sẽ cho kết quả giống nhau

Hoạt động của các store procedure sau khi đã sửa lỗi

begintran

set tran isolation level SERIALIZABLE

select *from phieudatcho

waitfor delay '00:00:05'

select *from phieudatcho

commit

begintrandeletefrom phieudatcho where

Trang 30

6select *from phieudatcho with(UPDLOCK)

waitfor delay '00:00:05'

select *from phieudatcho

commit

begintrandeletefrom phieudatcho where

Madatcho=1

commit

Nhận xét Với mức cô lập 4 theo em là hợp lí nhất có thể, đã khắc phục

được hiện tượng khác nhau giữa 2 lần đọc dữ liệu

Áp dụng cách khóa đó theo em là hợp lí vì nó chỉ khóa dòng nó

đang đọc đối với các lệnh ghi (update, delete) còn lại việc thao

tác đọc chung dữ liệu hay thao tác ở dòng khác là được chấp nhận

TestCase0

4 Tên lỗi : bóng ma

Tình huống gây ra lỗi

Hai giao tác cùng thực hiện trên đơn vị dữ liệu là Chitietdatcho: T1 đọc lấy danh sách Chitietdatcho, T2 thêm/xóa một

Chitietdatcho trong cùng một thời điểm

Hoạt động của các store procedure trước khi sửa lỗi

where MaCTDC=1

commit

Cách giải quyết sử dụng Chỉnh mức cô lập thành mức SERIALIZABLE (mức 4) cho

Trang 31

6mức cô lập giao tác T1, vì ở mức cô lập này sẽ giúp tránh được hiện tượng

Bóng Ma khi xử lý đồng thời Khi đó, hai lần đọc ở T1 sẽ cho kết quả giống nhau

Hoạt động của các store procedure sau khi đã sửa lỗi

begintran

set tran isolation level SERIALIZABLE

select *from chitietdatcho

waitfor delay '00:00:05'

select *from chitietdatcho

commit

begintrandelete chitietdatcho

where MaCTDC=1

commit

Nhận xét Với mức cô lập 4 theo em là hợp lí nhất có thể, đã khắc phục

được hiện tượng khác nhau giữa 2 lần đọc dữ liệu

Áp dụng cách khóa đó theo em là hợp lí vì nó chỉ khóa dòng nó

đang đọc đối với các lệnh ghi (update, delete) còn lại việc thao

tác đọc chung dữ liệu hay thao tác ở dòng khác là được chấp

Trang 32

nhận

TestCase0

5 Tên lỗi : CONVERSION deadlock

Tình huống gây ra lỗi

Hai giao tác cùng thực hiện trên đơn vị dữ liệu là Phieudatcho: T1 thêm một dòng dữ liệu , T2 cập nhật PhieuDatCho trong cùng một thời điểm,sau đó T1 đọc lại, rồi T2 đọc lại Mà cả 2 đang ở mức cô lập 3 thì bị deadlock

Hoạt động của các store procedure trước khi sửa lỗi

T1(isolation level REPEATABLE READ) T2 (isolation level REPEATABLE READ)

READupdate phieudatcho

set tongtien=9

where madatcho=6

waitfor delay '00:00:05'select Madatcho,tongtien

from PhieuDatCho

where madatcho=6

commit

Cách giải quyết sử dụng

mức cô lập Mức cố lập vẫn như củ nhưng thêm lệnh

with(readuncommitted) sau lệnh select như sau

Hoạt động của các store procedure sau khi đã sửa lỗi

T1 (isolation level REPEATABLE READ) T2 (isolation level REPEATABLE READ)

begintran

Trang 33

6set tran isolation level REPEATABLE

READupdate phieudatcho

set tongtien=9

where madatcho=6

waitfor delay '00:00:05'select Madatcho,tongtien

from PhieuDatCho

with(readuncommitted)where madatcho=6

commit

Nhận xét Với mức cô lập 3 cộng với câu lệnh trên theo em là hợp lí nhất

có thể, đã khắc phục được hiện tượng deadlock này

TestCase0

6 Tên lỗi : CONVERSION deadlock

Tình huống gây ra lỗi

Hai giao tác cùng thực hiện trên đơn vị dữ liệu là ChiTietdatcho: T1 thêm một dòng dữ liệu , T2 cập nhật ChiTietdatcho trong cùng một thời điểm,sau đó T1 đọc lại, rồi T2 đọc lại Mà cả 2 đang ở mức cô lập 3 thì bị deadlock

Hoạt động của các store procedure trước khi sửa lỗi

T1(isolation level REPEATABLE READ) T2 (isolation level REPEATABLE READ)

Trang 34

mức cô lập Mức cố lập vẫn như củ nhưng thêm lệnh

with(readuncommitted) sau lệnh select như sau

Hoạt động của các store procedure sau khi đã sửa lỗi

T1 (isolation level REPEATABLE READ) T2 (isolation level REPEATABLE READ)

READupdate ChiTietdatcho

Trang 35

6 from ChiTietdatcho

with(readuncommitted)where MaCTDC=6

commit

Nhận xét Với mức cô lập 3 cộng với câu lệnh trên theo em là hợp lí nhất

có thể, đã khắc phục được hiện tượng deadlock này

12. Màn hình Thông Tin Ga:

5.1 Chức năng:

Trang 36

7 Tên lỗi : không đọc lại được dữ liệu

Tình huống gây ra lỗi

Hai giao tác cùng thực hiện trên đơn vị dữ liệu là Chuyến tàu: T1 liệt kê những thông tin của Chuyến tàu và số lượng vé hiện chưa được mua của một Chuyến tàu, T2 cập nhật Chuyến tàu trong cùng một thời điểm

Hoạt động của các store procedure trước khi sửa lỗi

Chỉnh mức cô lập thành mức REPEATABLE READ (mức 3)

cho giao tác T1, vì ở mức cô lập này sẽ giúp tránh được hiện tượng không đọc lại được dữ liệu khi xử lý đồng thời

Hoạt động của các store procedure sau khi đã sửa lỗi

T1 (isolation level REPEATABLE READ) T2

Trang 37

set tran isolation level REPEATABLE

Hoạt động của các store procedure sau khi đã sửa lỗi

set TongSoGhe=0

where machuyen<3

commit

Nhận xét Với mức cô lập 3 theo em là hợp lí nhất có thể, đã khắc phục

được hiện tượng khác nhau giữa 2 lần đọc dữ liệu

Áp dụng cách khóa đó theo em là hợp lí vì nó chỉ khóa dòng nó

Trang 38

đang đọc đối với các lệnh ghi (update, delete) còn lại việc thao

tác đọc chung dữ liệu hay thao tác ở dòng khác là được chấp nhận

13. Màn hình Thay Đổi Thông Tin Ga

6.1 Chức năng:

− Khi bạn muốn thêm mới một ga nào đó thì bạn nhập các thông tin cần thiết vào các

textbox sau đó nhấp vào nút Thêm Ga

− Chọn Mã ga mà bạn muốn xóa sau đó nhấp nút Xóa Ga Khi đó ga đó sẽ bị xóa khỏi

CSDL

6.2 Đụng độ:

TestCase 08 Tên lỗi : Bóng ma

Tình huống gây ra lỗi Khi một người đang xem danh sách các ga của một chuyến tàu Y

thì giao tác thêm ga của chuyến tàu này ghi xuống làm cho khách hàng sau khi đọc lại thì thấy thông tin ga của chuyến tàu này thay

Ngày đăng: 19/02/2016, 11:46

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w