1 I. Yêu cầu bài toán Quản lý bãi đỗ xe ô
tô trong thành phố
Thành phố A
quy hoạch 10 vị trí làm bãi đỗ xe ô tô trong thành phố. Mỗi bãi đỗ được chia
thành các ô nhỏ (spot). Mỗi ô tô chỉ sử
dụng một spot cho một lần đỗ. Công dân đi vào thành phố có thể mua vé để có được
chỗ đỗ xe trong bãi. Tiền vé được tính dựa trên số giờ mà ô tô đỗ trong bãi.
2 II. Xây dựng biểu đồ quan hệ thực thể
(ER – entity relationship diagram)
Từ bài toán
có thể xác định được các thực thể liên quan như sau:
- Parking: đại diện cho các bãi đỗ xe trong thành phố.
- User: Người sử dụng dịch vụ, công dân thành phố.
- Ticket: Vé đỗ xe
- Parking: đại diện cho các bãi đỗ xe trong thành phố.
- User: Người sử dụng dịch vụ, công dân thành phố.
- Ticket: Vé đỗ xe
👉Chi tiết các thực thể và thuộc tính
- Parking entity
Tên trường
|
Mô tả
|
Parking_id
|
Mã bãi đỗ
|
ParkingSpot
|
Danh sách các điểm đỗ trong bãi(Spot1,
Spot 2… Spotn)
|
Group
|
Bãi đỗ thuộc nhóm nào: Dành cho xe
Bus, Taxi, xe tải…
|
Name
|
Tên bãi đỗ
|
Address
|
Địa chỉ bãi đỗ
|
Image_URL
|
Hình ảnh về bãi đỗ
|
- User entity
Tên trường
|
Mô tả
|
UserID
|
Định danh người dung
|
FullName
|
|
FirstName
|
|
LastName
|
|
Phone
|
|
Email
|
|
Address
|
|
Number_Plate
|
Biển số xe
|
Gender
|
Giới tính
|
- Ticket entity
Tên trường
|
Mô tả
|
ticketID
|
Mã vé
|
ParkingID
|
Vé mua thuộc Bãi đỗ nào
|
SportID
|
Điểm đỗ trong bãi
|
Start_time
|
Thời điểm được phép bắt đâù đỗ xe
|
End_time
|
Thời điểm kết thúc đỗ
|
UserID
|
ID Ngừoi đỗ
|
Number_Plate
|
Biển số xe
|
Total
|
Tổng số tiền phải trả
|
Price
|
Giá đỗ xe (5000đ/giờ)
|
- Quan hệ giữa các thực thể:
1 User có thể
mua n Ticket.
1 Parking có
thể bán nhiêù Ticket.
3 III. Chuẩn hoá lược đồ
quan hệ
3 3.1 Các dạng
chuẩn hoá :
Bao gồm: 1NF, 2NF,
3NF, Boyce-Codd (BCNF).
1NF: Lược đồ quan hệ R ở dạng chuẩn 1(1NF-First Normal Form) nếu mọi thuộc
tính của R đều chứa các giá trị nguyên tố (atomic value), giá trị này KHÔNG là
một danh sách các giá trị hoặc giá trị phức hợp (composite value).
ð Đây
là dạng chuẩn ở mức thấp nhất và là điều kiện cần cho
các dạng chuẩn cao hơn như Dạng chuẩn 2
(2NF), Dạng chuẩn 3 (3NF), Dạng chuẩn Boyce-Codd
(BCNF)...
3NF: Tất cả
thuộc tính không khoá trong 3NF được yêu cầu là phải phụ thuộc TRỰC TIẾP vào
mỗi khóa candidate của quan hệ.
3 3.2 Ví dụ áp dụng chuẩn hoá lược đồ quan hệ:
3 3.2 Ví dụ áp dụng chuẩn hoá lược đồ quan hệ:
- Parking entity
Tên trường
|
Mô tả
|
Parking_id
|
Mã bãi đỗ
|
ParkingSpot
|
Danh sách các điểm đỗ trong
bãi(Spot1, Spot 2… Spotn)
|
Group
|
Bãi đỗ thuộc nhóm nào: Dành cho xe
Bus, Taxi, xe tải…
|
Name
|
Tên bãi đỗ
|
Address
|
Địa chỉ bãi đỗ
|
Image_URL
|
Hình ảnh về bãi đỗ
|
Theo chuẩn
1NF:
- ParkingSpot: Chứa danh sách các Spot, ngươi
dung đặt chỗ dựa trên các spot này => Do đó cần tách spot thành một thực thể
mới.
- Group: Một Parking có thể chứa nhiều
Group như: Bus, Taxi, xe tải… => Các Group này cũng cần được tách ra thành một
thực thể.
ð
Vậy
từ thực thể Parking ta phân tách được thêm 02 thực thể mới là: Parking Spot và
ParkingGroup. Lược đồ quan hệ lúc này sẽ được bổ sung thêm 02 thực thể này.
Quan hệ giữa các thực thể mới và Parking:
- 1 Parking có nhiều Parking Spot
- 1 Parking có thể chứa nhiều
ParkingGroup
- 1 Parking Spot chỉ thuộc 1 Parking
Group duy nhất.
- Ticket entity
Tên trường
|
Mô tả
|
ticketID
|
Mã vé
|
ParkingID
|
Vé mua thuộc Bãi đỗ nào
|
SportID
|
Điểm đỗ trong bãi
|
Start_time
|
Thời điểm được phép bắt đâù đỗ xe (Ví dụ 14h00)
|
End_time
|
Thời điểm kết thúc đỗ (Ví dụ17h00)
|
UserID
|
ID Ngừoi đỗ
|
Number_Plate
|
Biển số xe
|
Price
|
ĐƠn giá đỗ xe (5000đ/giờ)
|
Total
|
Tổng số tiền phải trả (Số giờ * Giá đỗ xe)
|
Theo chuẩn
1NF:
- Trường Total có thể được tính qua
công thức Số giờ * Giá đỗ xe, tức là:
(End_time - Start_time)* Price
ð Trường này không nên đưa vào thực thể
Ticket.
Theo chuẩn 3NF: Các trường không
khoá phải phụ thuộc trực tiếp vào Candidate Key.
- Number_Plate: Là thong tin về biển số
xe của ngừoi dùng. Giả sử một người dung chỉ được đăng ký một biển số xe.
ð Theo 3NF ta nên tách trường này ra
vì nó không liên quan trực tiếp đến Ticket.
(Phân tích chuẩn hoá lược đồ quan hệ tương
tự trên các entity khác)
ð Sau khi hoàn thành bước
chuẩn hoá, vẽ lại lược đồ quan hệ mới.
Nhận xét