PHẦN II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Chương 3 XÂY DỰNG HỆ THỐNG MỨC LOGIC
II. Mô hình Vật lý dữ liệu
Mô hình này sẽ cung cấp khung nhìn đồ họa mà các dữ liệu sẽ được cấu trúc trong cơ sở dữ liệu đích đã được chọn. Mô hình Vật lý dữ liệu là cơ sở cho việc tạo một cơ sở dữ liệu, và dùng các giao diện khách - chủ.
1. Danh sách các bảng :
STT Tên bảng Diễn giải 1 TINHTP Tỉnh, thành phố
2 GATAU Ga tàu
3 TAU Tàu
4 LICHTRINH Lịch trình
5 GADUNG Ga dừng
6 LOAICHO Loại chỗ
7 BANGGIA Bảng giá
8 TOATAU Toa tàu
9 THIETLAPTOA (TOALOAICHO)
Thiết lập toa 10 CHUYENTAU Chuyến tàu 11 CHUYENTAUTOA Chuyến tàu - toa 12 TINHTRANGCHO Tình trạng chỗ
13 CHO Chỗ
14 HANHKHACH Hành khách
15 DATCHO Đặt chỗ
16 LOAIKHACH Loại khách
17 VETAU Vé tàu
2. Từ điển dữ liệu :
Table TINHTP
Thuộc tính Diễn giải Kiểu Ràng buộc MATTP Mã tỉnh, thành phố Nvarchar(50) Khóa chính TENTTP Tên tỉnh, thành phố Nvarchar(50)
Table GATAU
Thuộc tính Diễn giải Kiểu Ràng buộc
MAGA Mã ga Nvarchar(50) Khóa chính
TENGA Tên ga Nvarchar(50)
MATTP Mã tỉnh, thành phố Nvarchar(50) Khóa ngoại KHOANGCACH Khoảng cách int
DIACHI Địa chỉ Nvarchar(200)
Table TAU
Thuộc tính Diễn giải Kiểu Ràng buộc MATAU Mã tàu Nvarchar(50) Khóa chính TENTAU Tên tàu Nvarchar(50)
Table LICHTRINH
Thuộc tính Diễn giải Kiểu Ràng buộc MAGADI Mã ga đi Nvarchar(50)
MAGADEN Mã ga đến Nvarchar(50) MATAU Mã tàu Nvarchar(50)
Khóa chính GIODI Giờ đi Nvarchar(50) GIODEN Giờ đến Nvarchar(50) SOGIODI Số giờ đi int
Table GADUNG
Thuộc tính Diễn giải Kiểu Ràng buộc
MAGADI Mã ga đi Nvarchar(50)
MAGADEN Mã ga đến Nvarchar(50)
MATAU Mã tàu Nvarchar(50)
MAGADUNG Mã ga dừng Nvarchar(50)
Khóa chính
GIOBATDAUDUNG Giờ bắt đầu dừng Nvarchar(50) GIOKETTHUCDUNG Giờ kết thúc dừng Nvarchar(50)
THOIGIANTAUCHAY Thời gian tàu chạy int
Table LOAICHO
Thuộc tính Diễn giải Kiểu Ràng buộc MALOAICHO Mã loại chỗ Nvarchar(50) Khóa chính TENLOAICHO Tên loại chỗ Nvarchar(50)
Table BANGGIA
Thuộc tính Diễn giải Kiểu Ràng buộc MAGADI Mã ga đi Nvarchar(50)
MAGADEN Mã ga đến Nvarchar(50) MATAU Mã tàu Nvarchar(50) MALOAICHO Mã loại chỗ Nvarchar(50)
Khóa chính
GIATIEN Giá tiền int
Table TOATAU
Thuộc tính Diễn giải Kiểu Ràng buộc MATOA Mã toa Nvarchar(50) Khóa chính TENTOA Tên toa Nvarchar(50)
Table TOALOAICHO
Thuộc tính Diễn giải Kiểu Ràng buộc
MATOA Mã toa Nvarchar(50)
MALOAICHO Mã loại chỗ Nvarchar(50) Khóa chính
SOLUONGCHO Số lượng chỗ int
Table CHUYENTAU
Thuộc tính Diễn giải Kiểu Ràng buộc MACHUYENTAU Mã chuyến tàu Nvarchar(50) Khóa chính NGAYKHOIHANH Ngày khởi hành Datetime
MAGADI Mã ga đi Nvarchar(50)
MAGADEN MAGADEN Nvarchar(50)
MATAU MATAU Nvarchar(50)
Khóa ngoại GIODI Giờ đi Nvarchar(50) GIODEN Giờ đến Nvarchar(50)
Table CHUYENTAUTOA
Thuộc tính Diễn giải Kiểu Ràng buộc MACHUYENTAU Mã toa Nvarchar(50)
MATOA Mã loại chỗ Nvarchar(50) Khóa chính SOCHOSUDUNG Số chỗ sử dụng int SOCHODABAN Số chỗ đã bán int
SOCHODADAT Số chỗ đã đặt int
Table TINHTRANGCHO
Thuộc tính Diễn giải Kiểu Ràng buộc
MATINHTRANGCHO Mã tình trạng chỗ int Khóa chính TINHTRANGCHO Tình trạng chỗ Nvarchar(50)
Table CHO
Thuộc tính Diễn giải Kiểu Ràng buộc
MACHO Mã chỗ int Khóa chính
MACHUYENTAU Mã chuyến tàu Nvarchar(50)
MATOA Mã toa Nvarchar(50) Khóa ngoại
MATINHTRANGCHO Mã tình trạng chỗ int Khóa ngoại VEHANHTRINH Vé hành trình int
NGAYTRA Ngày trả Datetime
Table HANHKHACH
Thuộc tính Diễn giải Kiểu Ràng buộc SOCMND Số CMND Nvarchar(50) Khóa chính HOTEN Họ tên Nvarchar(50)
DIENTHOAI Điện thoại Nvarchar(50)
Table DATCHO
Thuộc tính Diễn giải Kiểu Ràng buộc SOCMND Số CMND Nvarchar(50)
MACHO Mã chỗ int Khóa chính
NGAYDATCHO Ngày đặt chỗ Datetime
Table LOAIKHACH
Thuộc tính Diễn giải Kiểu Ràng buộc
MALOAIKHACH Mã loại khách Nvarchar(50) Khóa chính TENLOAIKHACH Tên loại khách Nvarchar(50)
PHANTRAMGIAMGIA Phần trăm giảm giá int
Table VETAU
Thuộc tính Diễn giải Kiểu Ràng buộc
MAVE Mã vé int Khóa chính
MACHO Mã chỗ int Khóa ngoại
MAGADI Mã ga đi Nvarchar(50) Khóa ngoại MAGADEN Mã ga đến Nvarchar(50) Khóa ngoại
NGAYBAN Ngày bán Datetime
MALOAIKHACH Mã loại khách Nvarchar(50) Khóa ngoại
3. Mô tả các ràng buộc :
Ràng buộc toàn vẹn dữ liệu
STT Tên bảng Mô tả
1 TINHTP Một tỉnh, thành phố chỉ có 1 mã số duy nhất để phân biệt tỉnh, thành phố này với tỉnh, thành phố kia
2 GATAU
Một ga tàu chỉ có 1 mã ga duy nhất.
Một ga tàu chỉ thuộc duy nhất 1 tỉnh, thành phố
Mỗi ga tàu có khoảng cách được tính từ Sài Gòn đến vị trí ga tàu
Một ga tàu có một địa chỉ xác định.
3 TAU Mỗi tàu có duy nhất 1 mã tàu để phân biệt tàu này với tàu kia
4 LICHTRINH
Mỗi lịch trình được xác định bởi 1 mã số duy nhất gồm các thuộc tính sau : MAGADI, MAGADEN, MATAU Mỗi lịch trình luôn có giờ xuất phát, giờ đến nơi, và tổng thời gian tàu chạy từ nơi bắt đầu đến nơi kết thúc.
5 GADUNG
Mỗi ga dừng được xác định bởi 1 mã số gồm các thuộc tính sau : MAGADI, MAGADEN, MATAU, MAGADUNG
Mỗi ga dừng luôn có giờ bắt đầu dừng, giờ kết thúc dừng tại mỗi ga dừng; thời gian tàu chạy từ ga dừng này đến ga dừng kia.
6 LOAICHO Mỗi loại chỗ có duy nhất 1 mã loại chỗ để phân biệt loại chỗ này với loại chỗ kia
7 BANGGIA Bảng giá được xác định bởi 1 mã số gồm các thuộc tính sau : MAGADI, MAGADEN, MATAU, MALOAICHO cùng với giá tiền tương ứng
8 TOATAU Mỗi toa tàu có duy nhất 1 mã toa tàu để phân biệt toa tàu này với toa tàu kia
9 TOALOAICHO
Toa – Loại chỗ được xác định bởi 1 mã số gồm các thuộc tính sau : MATOA, MALOAICHO cùng với số lượng chỗ tương ứng.
Một toa có thể có nhiều loại chỗ, và một loại chỗ có thể có trong nhiều toa.
10 CHUYENTAU
Mỗi chuyến tàu có duy nhất 1 mã chuyến tàu để phân biệt chuyến tàu này với chuyến tàu kia
Mỗi chuyến tàu có duy nhất 1 ga đi, ga đến , loại tàu, ngày khởi hành, giờ đi và giờ đến.
11 CHUYENTAUTOA
Chuyến tàu – toa được xác định bởi 1 mã số gồm các thuộc tính sau : MACHUYENTAU, MATOA tương ứng với số chỗ, số chỗ đã bán, số chỗ đã đặt.
Một chuyến tàu có thể có nhiều toa, và một toa có thể được sắp xếp cho nhiều chuyến tàu
12 TINHTRANGCHO Mỗi tình trạng chỗ có duy nhất 1 mã tình trạng chỗ để phân biệt tình trạng chỗ này với tình trạng chỗ kia 13 CHO Mỗi chỗ có duy nhất 1 mã chỗ để phân biệt chỗ này với
chỗ kia
Mỗi chỗ chỉ được bán cho một chuyến tàu ở một toa xác định
14 HANHKHACH Mỗi hành khách có duy nhất 1 số CMND chỗ để phân biệt hành khách này với hành khách kia, cùng với họ tên và số điện thoại của hành khách.
15 DATCHO Một hành khách có thể đăng ký đặt nhiều chỗ, và 1 chỗ có thể cho phép nhiều người đặt (lộ trình)
16 LOAIKHACH
Mỗi loại khách có duy nhất 1 mã loại khách chỗ để phân biệt loại khách này với loại khách kia
Đồng thời mỗi loại khách có một phần trăm giảm giá tương ứng.
17 VETAU Mỗi vé tàu có duy nhất 1 mã vé để phân biệt vé này với vé kia
Ràng buộc khóa chính STT Tên bảng Mô tả
1 TINHTP MATTP là khóa chính của bảng TINHTP 2 GATAU MAGA là khóa chính của bảng GATAU 3 TAU MATAU là khóa chính của bảng TATAU
4 LICHTRINH MAGADI, MAGADEN, MATAU là khóa chính của bảng LICHTRINH
5 GADUNG MAGADI, MAGADEN, MATAU, MAGADUNG là
khóa chính của bảng GADUNG
6 LOAICHO MALOAICHO là khóa chính của bảng LOAICHO 7 BANGGIA MAGADI, MAGADEN, MALOAICHO, MATAU là
khóa chính của bảng BANGGIA
8 TOATAU MATOA là khóa chính của bảng TOATAU 9 TOALOAICHO MATOA, MALOAICHO là khóa chính của bảng
TOALOAICHO
10 CHUYENTAU MACHUYENTAU là khóa chính của bảng CHUYENTAU
11 CHUYENTAUTOA MACHUYENTAU, MATOA là khóa chính của bảng CHUYENTAUTOA
12 TINHTRANGCHO MATINHTRANGCHO là khóa chính của bảng TINHTRANGCHO
13 CHO MACHO là khóa chính của bảng CHO
14 HANHKHACH SOCMND là khóa chính của bảng HANHKHACH 15 DATCHO SOCMND, MACHO là khóa chính của bảng DATCHO 16 LOAIKHACH MA LOAIKHACH là khóa chính của bảng
LOAIKHACH
17 VETAU MAVE là khóa chính của bảng VETAU
Ràng buộc khóa ngoại
STT Tên bảng Mô tả
2 GATAU - MATINHTP là khóa ngoại của bảng GATAU, tham chiếu đến khóa chính của bảng TINHTP
4 LICHTRINH
- MAGADI là khóa ngoại của bảng LICHTRINH, tham chiếu đến khóa chính của bảng GATAU
- MAGADEN là khóa ngoại của bảng LICHTRINH, tham chiếu đến khóa chính của bảng GATAU
- MATAU là khóa ngoại của bảng LICHTRINH, tham chiếu đến khóa chính của bảng TAU
5 GADUNG
- MAGADI, MAGADEN, MATAU là khóa ngoại của bảng GADUNG, tham chiếu đến khóa chính của bảng LICHTRINH - MAGADUNG là khóa ngoại của bảng GADUNG, tham chiếu đến khóa chính của bảng GATAU
7 BANGGIA
- MAGADI là khóa ngoại của bảng BANGGIA, tham chiếu đến khóa chính của bảng GATAU
- MAGADEN là khóa ngoại của bảng BANGGIA, tham chiếu đến khóa chính của bảng GATAU
- MALOAICHO là khóa ngoại của bảng BANGGIA, tham chiếu đến khóa chính của bảng LOAICHO
- MATAU là khóa ngoại của bảng BANGGIA, tham chiếu đến khóa chính của bảng TAU
9 TOALOAICHO
- MATOA là khóa ngoại của bảng TOALOAICHO, tham chiếu đến khóa chính của bảng TOATAU
- MALOAICHO là khóa ngoại của bảng TOALOAICHO, tham chiếu đến khóa chính của bảng LOAICHO
10 CHUYENTAU MAGADI, MAGADEN, MATAU là khóa ngoại của bảng CHUYENTAU, tham chiếu đến khóa chính của bảng LICHTRINH
11 CHUYENTAUTOA
- MACHUYENTAU là khóa ngoại của bảng
CHUYENTAUTOA, tham chiếu đến khóa chính của bảng CHUYENTAU
- MATOA là khóa ngoại của bảng CHUYENTAUTOA, tham chiếu đến khóa chính của bảng TOATAU
13 CHO
- CHUYENTAUTOA, MATOA là khóa ngoại của bảng CHO, tham chiếu đến khóa chính của bảng CHUYENTAUTOA - MATINHTRANGCHO là khóa ngoại của bảng CHO, tham chiếu đến khóa chính của bảng TINHTRANGCHO
15 DATCHO
- SOCMND là khóa ngoại của bảng DATCHO, tham chiếu đến khóa chính của bảng HANHKHACH
- MACHO là khóa ngoại của bảng DATCHO, tham chiếu đến khóa chính của bảng CHO
17 VETAU
- MACHO là khóa ngoại của bảng VETAU, tham chiếu đến khóa chính của bảng CHO
- MAGADI là khóa ngoại của bảng VETAU, tham chiếu đến khóa chính của bảng GATAU
- MAGADEN là khóa ngoại của bảng VETAU, tham chiếu đến khóa chính của bảng GATAU
- MALOAIKHACH là khóa ngoại của bảng VETAU, tham chiếu đến khóa chính của bảng LOAIKHACH