Tải bản đầy đủ (.pdf) (20 trang)

cơ sở dữ liệu bài toán quản lí cho thuê phòng khách trong

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (363.53 KB, 20 trang )

MỤC LỤC
PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN..................................................................2
I.

PHÁT BIỂU BÀI TOÁN............................................................................................3

II.

THIẾT KẾ CSDL MỨC KHÁI NIỆM – MÔ HÌNH ER...........................................4
1.

Xác định thực thể - thuộc tính và phân loại thuộc tính........................................4

2.

Xác định các liên kết và kiểu liên kết..................................................................4

3.

Mô hình ER...........................................................................................................5

III.
1.

THIẾT KẾ CSDL MỨC LOGIC – MÔ HÌNH QUAN HỆ.....................................6
Chuẩn hóa quan hệ...............................................................................................6
1.1.

Quy tắc chuyển đổi đối với mỗi thực thể....................................................6

1.2.



Quy tắc chuyển đổi đối với liên kết 1 –n.....................................................6

1.3.

Quy tắc chuyển đổi đối với liên kết n – m...................................................6

1.4.

Cơ sở dữ liệu cuối cùng................................................................................7

1.5.

Mô hình dữ liệu quan hệ................................................................................7

2.

Ràng buộc toàn vẹn..............................................................................................7

3.

Chuẩn hóa cơ sở dữ liệu......................................................................................9

IV.

THIẾT KẾ CSDL MỨC VẬT LÝ.........................................................................11

V.

KHAI THÁC CƠ SỞ DỮ LIỆU..............................................................................15



PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN
STT
1
2
3
4
5

CÔNG VIỆC
Phát biểu bài toán
Thiết kế CSDL mức khái niệm – Mô hình ER
Ràng buộc toàn vẹn
Chuẩn hóa cơ sở dữ liệu
Thiết kế vật lý

NGƯỜI THỰC HIỆN
Bùi Ngọc Thắng
Ngô Hồng Quân
Vũ Văn Nam
Vũ Văn Nam
Ngô Hồng Quân

6

Khai thác cơ sở dữ liệu

Cả nhóm


2


I.

PHÁT BIỂU BÀI TOÁN

Khách sạn ABC mới bắt đầu đi vào hoạt động và c ần xây d ựng c ơ s ở d ữ li ệu đ ể
quản lý, gồm đặc tả ban đầu như sau:
Khách sạn quản lý các thông tin của khách hàng bao gồm: Tên khách hàng, gi ới tính,
địa chỉ, số điện thoại, số chứng minh thư nhân dân. Các khách hàng được phân bi ệt
thông qua số chứng minh thư nhân dân.
Khách sạn bao gồm nhiều phòng, mỗi phòng được lưu lại các thông tin: Mã phòng,
tên phòng, loại phòng, giá phòng và trạng thái hiện tại của phòng.Phòng gồm 3 loại là
phòng dành cho 4 người, phòng dành cho 6 người và phòng dành cho 10 ng ười. Các
phòng được phân biệt với nhau bởi mã phòng.
Khách hàng sau khi thuê phòng thì có thể sử dụng phòng trong thời hạn đã thuê. Một
khách hàng không thể cùng lúc sử dụng nhiều phòng, tuy nhiên một phòng có th ể cho
nhiều khách hàng cùng lúc sử dụng. Ngoài ra, khách hàng còn có đặt tr ước phòng v ới
thời hạn và số tiền đặc cọc theo quy định của khách sạn.
Ngoài ra, khách sạn còn hỗ trợ khách hàng s ử dụng các lo ại d ịch v ụ. D ịch v ụ đ ược
lưu trữ thông tin: Mã dịch vụ, tên dịch vụ và đơn giá của dịch vụ đó. Các d ịch vụ đ ược
phân biệt với nhau bởi mã dịch vụ.Khách hàng sử dụng dịch v ụ đ ều đ ược l ưu tr ữ lại
các thông tin cần thiết.
Mỗi khách hàng khi thuê phòng, sử dụng dịch vụ đều sẽ có hóa đơn đi kèm. Các hóa
đơn quản lý các thông tin ban đầu gồm: Mã hóa đơn, tên hóa đ ơn, ngày l ập, lo ại hóa
đơn và hình thức thanh toán hóa đơn. Khách hàng có thể thanh toán hóa đ ơn b ằng ti ền
mặt hoặc sử dụng quẹt thẻ. Hóa đơn này sẽ lưu trữ các thông tin cần thi ết v ề vi ệc
thuê phòng cũng như các loại dịch vụ mà khách hàng đã sử dụng.


3


II.

THIẾT KẾ CSDL MỨC KHÁI NIỆM – MÔ HÌNH ER

1. Xác định thực thể - thuộc tính và phân loại thuộc tính
-

KhachHang (Khách hàng): SoCMTND, TenKH, GioiTinh, DiaChi, SoDienThoai.
 SoCMTND là thuộc tính khóa.
Phong (Phòng): MaPhong, TenPhong, LoaiPhong, GiaPhong, TrangThai.
 MaPhong là thuộc tính khóa.
DichVu (Dịch vụ): MaDV, TenDV, DonGiaDV.
 MaDV là thuộc tính khóa.
HoaDon (Hóa đơn): MaHD, NgayLap, LoaiHD, HinhThucTTHD.
1. MaHD là thuộc tính khóa.

2. Xác định các liên kết và kiểu liên kết
KhachHang

n

m

Tienda
toc

NgayDe

n

-

Lưu trữ: ngày đến, tiền đặt cọc.
KhachHang

m

n

Lưu trữ: ngày bắt đầu, ngày kết thúc.
KhachHang

-

n

sử
dụng

1

NgayK
T

m

DichVu


NgayS
D

Lưu trữ: ngày sử dụng.
KhachHang

Phong

thuê

NgayB
D

-

Phong

đặt
trước



4

n

HoaDon


3. Mô hình ER

Loại
phòng
Giá
phòng
Mã phòng

PHONG

Trạng
thái

n

n

Ngày
đến

Ngày KT

Bắt đầu
Đặt
Trước

Thu
ê
Ngày
SD

Tiền đặt

cọc

m

m

n

1

Số
CMTND

Số ĐT

Tên KH
Mã HD

Sử
Dụn
g

KHACHHANG



Địa chỉ

Tên HĐ


Đơn giá

n

m

HOADON

Ngày
lập

Loại HĐ

Mã DV

DICHVU

Tên DV

Hình thức
TTHĐ

5


III. THIẾT KẾ CSDL MỨC LOGIC – MÔ HÌNH QUAN HỆ
1. Chuẩn hóa quan hệ
1.1. Quy tắc chuyển đổi đối với mỗi thực thể
(1) KhachHang (SoCMTND, TenKH, GioiTinh, DiaChi, SoDienThoai)
(2) Phong (MaPhong, LoaiPhong, GiaPhong, TrangThai)

(3) DichVu (MaDV, TenDV, DonGiaDV)
(4) HoaDon (MaHD, NgayLap, LoaiHD, HinhThucTTHD)
1.2.

Quy tắc chuyển đổi đối với liên kết m –n
KhachHang

n

m

Phong

đặt
trước

Tienda
toc

NgayDe
n

(5) DatPhong (SoCMTND, MaPhong, NgayDen, TienDat)
m

KhachHang

n

Phong


thuê

NgayB
D

NgayK
T

(6) ThuePhong (SoCMTND, MaPhong, NgayBD, NgayKT)
KhachHang

n

sử
dụng

m

DichVu

NgayS
D

(7)
1.3.

SuDungDV( MaKH, MaDV, NgaySD)
Quy tắc chuyển đổi đối với liên kết 1 – n
KhachHang


1



n

HoaDon

(4’) HoaDon (SoCMTND, NgayLap, LoaiHD, HinhThucTTHD, MaKH)

6


Cơ sở dữ liệu cuối cùng
(1)KhachHang (SoCMTND, TenKH, GioiTinh, DiaChi, SoDienThoai)
(2)Phong (MaPhong, LoaiPhong, GiaPhong, TrangThai)
(3)DichVu (MaDV, TenDV, DonGiaDV)
(4’)HoaDon(MaHD, NgayLap, LoaiHD, HinhThucTTHD, SoCMTND)
(5)DatPhong (SoCMTND, MaPhong, NgayDen, TienDat)
(6)ThuePhong (SoCMTND, MaPhong, NgayBD, NgayKT)
(7)SuDungDV(SoCMTND, MaDV, NgaySD)

1.4.

1.5. Mô hình dữ liệu quan hệ
KhachHang
SoCMTND
Phong


TenKH

GioiTinh

DiaChi

SoDienThoai

MaPhong
DichVu

TenPhong

LoaiPhong

GiaPhong

TrangThai

MaDV

TenDV

DonGiaDV

HoaDon
MaHD

NgayLap


LoaiHD

HinhThucTTH
D

SoCMTND

DatPhong
SoCMTND
ThuePhong

MaPhong

NgayDen

SoCMTND
SuDungDV

MaPhong

NgayBD

SoCMTND

MaDV

TienDatCoc
NgayKT
NgaySD


2. Ràng buộc toàn vẹn
● Ràng buộc: “Giới tính khách hàng chỉ có thể là nam hoặc nữ”
RBTV miền giá trị
- Bối cảnh: KhachHang
- Nội dung:
Tự nhiên: Giới tính khách hang chỉ có thể là nam hoặc nữ.
Hình thức:  kh �KhachHang: kh.GioiTinh �{“Nam”, “Nữ”}
- Bảng tầm ảnh hưởng
KhachHang

Thêm
+(GioiTinh)

Xóa
7

Sửa
+(GioiTinh)


● Ràng buộc: “Hình thức thanh toán chỉ có thể là tiền mặt hoặc quẹt thẻ”
RBTV miền giá trị
- Bối cảnh: HoaDon
- Nội dung:
Tự nhiên: Hình thức thanh toán chỉ có thể là tiền mặt hoặc quẹt thẻ
Hình thức:  x �HoaDon: x.HinhThucTTHD �{“Tien mat”, “Quet the”}
- Bảng tầm ảnh hưởng
HoaDon

Thêm

+(HinhThucTTHD)

Xóa
-

Sửa
+(HinhThucTTHD)

● Ràng buộc: “Ngày bắt đầu thuê phòng phải trước ngày kết thúc thuê phòng”
RBTV miền giá trị
- Bối cảnh: ThuePhong
- Nội dung:
Tự nhiên: ngày bắt đầu thuê phòng(NgayBD) phải trước ngày k ết thúc thuê
phòng(NgayKT)
Hình thức:  tp �ThuePhong: tp.NgayBD< tp.NgayKT
- Bảng tầm ảnh hưởng
ThuePhong

Thêm
+
(NgayBD,NgayKT)

Xóa
-

Sửa
+( NgayBD,NgayKT)

● Ràng buộc:“Các phòng cùng loại thì có giá giống nhau”
RBTV miền giá trị

- Bối cảnh: Phong
- Nội dung:
Tự nhiên: Các phòng cùng loại thì có giá giống nhau.
Hình thức:  p1,p2
p1.GiaPhong= p2.GiaPhong
- Bảng tầm ảnh hưởng
Phong

�Phong:

Thêm
+(LoaiPhong,
GiaPhong)

(p1.LoaiPhong= p2.LoaiPhong) →

Xóa
-

8

Sửa
+(LoaiPhong,
GiaPhong)


● Ràng buộc:“Phòng có thể cho 4 người , 6 người hoặc 10 người”
RBTV miền giá trị
- Bối cảnh: Phong
- Nội dung:

Tự nhiên: Phòng có thể cho 4 người, 6 người hoặc 10 người
Hình thức:  x �Phong: x.LoaiPhong �{“4 nguoi”, “6 nguoi”, “10 nguoi”}
- Bảng tầm ảnh hưởng
Phong

Thêm
+(LoaiPhong)

Xóa
-

Sửa
+(LoaiPhong)

3. Chuẩn hóa cơ sở dữ liệu
1. KhachHang (SoCMTND, TenKH, GioiTinh, DiaChi, SoDienThoai)
F1 = {1. SoCMTND TenKH, GioiTinh, DiaChi, SoDienThoai}
Khóa: SoCMTND
Quan hệ ở dạng BCNF
Chuẩn hóa VI-1
SoCMTND

TenKH
GioiTinh
DiaChi
SoDienThoai
F1 = {SoCMTND TenKH, GioiTinh, DiaChi, SoDienThoai}

2. Phong(MaPhong, LoaiPhong, GiaPhong, TrangThai)
F2 = {1. MaPhong LoaiPhong, GiaPhong, TrangThai}

Khóa: MaPhong
Quan hệ ở dạng BCNF
Chuẩn hóa VI-2
MaPhong

LoaiPhong
GiaPhong
TrangThai
F2 = {MaPhong LoaiPhong, GiaPhong, TrangThai}

3. DichVu(MaDV, TenDV, DonGiaDV)
F3 = { 1. MaDV TenDV, DonGiaDV}
Khóa: MaDV
Quan hệ ở dạng BCNF
Chuẩn hóa VI-3
MaDV

TenDV
F3 = {MaDV TenDV, DonGiaDV}
9

DonGiaDV


4. HoaDon (MaHD, NgayLap, LoaiHD, HinhThucTTHD, SoCMTND)
F4 = {1. MaHD NgayLap, LoaiHD, HinhThucTTHD; 2.MaHD SoCMTND}
Khóa: MaHD, SoCMTND
Quan hệ ở dạng 3NF
Chuẩn hóa VI-4
MaHD


NgayLap

LoaiHD

HinhThucTTH
D
F4.1 = {MaHD, NgayLap, LoaiHD, HinhThucTTHD}

Chuẩn hóa VI-5
MaHD
SoCMTND
F4.2 = {MaHDSoCMTND}
5. DatPhong(SoCMTND, NgayDen, TienDatCoc)
F5 = {1. SoCMTND, NgayDen, TienDatCoc}
Khóa: SoCMTND
Quan hệ ở dạng BCNF
Chuẩn hóa VI-6
SoCMTND

NgayDen
F5 = {SoCMTND, NgayDen, TienDatCoc}

TienDatCoc

6. ThuePhong (SoCMTND, NgayBD, NgayKT)
F6 = {1. SoCMTNDNgayBD, NgayKT}
Khóa: SoCMTND
Quan hệ ở dạng BCNF
Chuẩn hóa VI-7

SoCMTND

NgayBD
F6 = {SoCMTNDNgayBD, NgayKT}

7. SuDungDV(SoCMTND, MaDV, NgaySD)
F8 = {1. SoCMTNDMaDV, NgaySD}
Khóa: SoCMTND
Quan hệ ở dạng BCNF
Chuẩn hóa VI-9
10

NgayKT


SoCMTND

IV.

MaDV
F8 = {SoCMTNDMaDV, NgaySD}

NgaySD

THIẾT KẾ CSDL MỨC VẬT LÝ

Tạo cơ sở dữ liệu QLThuePhongKhachSanvới các bảng và ràng buộc như sau:
KhachHang: Lưu thông tin các khách hàng.
Tên trường
Mô tả

SoCMTND
Số chứng minh khách hàng
TenKH
Tên khách hàng
GioiTinh
Giới tính
DiaChi
Địa chỉ
SoDienThoai
Số điện thoại

Kiểu dữ liệu
varchar(12)
varchar(50)
nvarchar(3)
varchar(100)
varchar(11)

Ràng buộc
Khóa chính

Phong: Lưu thông tin các phòng.
Tên trường
Mô tả
MaPhong
Mã phòng
TenPhong
Tên phòng
LoaiPhong
Loại phòng

GiaPhong
Giá phòng
TrangThai
Trạng thái phòng

Kiểu dữ liệu
varchar(12)
varchar(50)
varchar(30)
int
nvarchar(30)

Ràng buộc
Khóa chính

Dịch vụ: Lưu thông tin các dịch vụ.
Tên trường
Mô tả
MaDV
Mã dịch vụ
TenDV
Tên dịch vụ
DonGiaDV
Đơn giá dịch vụ

Kiểu dữ liệu
varchar(12)
varchar(50)
int


Ràng buộc
Khóa chính

HoaDon: Lưu thông tin các hóa đơn.
Tên trường
Mô tả
MaHD
Mã phòng
TenHD
Tên phòng
NgayLap
Loại phòng
LoaiHD
Giá phòng
HinhThucTTHD
Trạng thái phòng
SoCMTND
Số chứng minh khách hàng

Kiểu dữ liệu
varchar(12)
varchar(50)
smalldatetime
nvarchar(50)
nvarchar(50)
varchar(12)

Ràng buộc
Khóa chính


11

Khóa ngoại


DatPhong: Lưu thông tin đặt phòng của khách hàng.
Tên trường
Mô tả
Kiểu dữ liệu
SoCMTND
Số chứng minh khách hàng
varchar(12)
NgayDen
Ngày đến
smalldatetime
TienDatCoc
Tiền đặt cọc
int
ThuePhong: Lưu thông tin thuê phòng của khách hàng.
Tên trường
Mô tả
Kiểu dữ liệu
SoCMTND
Số chứng minh khách hàng
varchar(12)
NgayBD
Ngày bắt đầu
smalldatetime
NgayKT
Ngày kết thúc

smalldatetime
SuDungDV: Lưu thông tin sử dụng dịch vụ của khách hàng.
Tên trường
Mô tả
Kiểu dữ liệu
SoCMTND
Số chứng minh khách hàng
varchar(12)
MaDV
Mã dịch vụ
varchar(12)
NgaySD
Ngày sử dụng
smalldatetime

Phần mềm sử dụng: Microsoft Access
Database QLThuePhongKhachSan sau khi được tạo thành công.

12

Ràng buộc
Khóa chính

Ràng buộc
Khóa chính

Ràng buộc
Khóa chính
Khóa chính



Thực hiện thêm dữ liệu cho bảng KhachHang:

Thực hiện thêm dữ liệu cho bảng Phong:

13


Thực hiện thêm dữ liệu cho bảng DichVu:

Lưu trữ thông tin khách hàng đã đặt phòng trong bảng DatPhong:

Lưu trữ thông tin khách hàng đã thuê phòng trong bảng ThuePhong:

Lưu trữ thông tin khách hàng đã sử dụng dịch vụ trong bảng SuDungDV:

V.

KHAI THÁC CƠ SỞ DỮ LIỆU

1. Lấy dữ liệu từ 1 bảng
a.Nội dung phát biểu:Đưa ra toàn bộ thông tin khách hàng có địa chỉ ở “Ha Noi”.
Đại số quan hệ: ∂DiaChi= ‘Ha Noi’ (KhachHang)
Thực hiện:

14


Kết quả:


b.Nội dung phát biểu:Đưa ra toàn bộ thông tin dịch vụ có đơn giá lớn hơn 30000.
Đại số quan hệ:

∂DonGiaDV>30000 (DichVu)

Thực hiện:

Kết quả:

c.Nội dung phát biểu:Đưa ra toàn bộ thông tin các phòng dành cho 10 người.
Đại số quan hệ:

∂LoaiPhong=’10 nguoi’ (Phong)

Thực hiện: SELECT * FROM Phong WHERE LoaiPhong= ’10 nguoi’
Kết quả:

15


d.Nội dung phát biểu:Đưa ra toàn bộ thông tin khách hàng có giới tính là ‘Nam’.
Đại số quan hệ:

∂GioiTinh= ‘Nam’ (KhachHang)

Thực hiện:

Kết quả:

2. Lấy dữ liệu từ 2 bảng:

a.Nội dung phát biểu: In ra tên khách hàng và mã hóa đơn của khách hàng đó
Đại số quan hệ: πTenKH,MaHD(KhachHangSoCMTND*HoaDon)
Thực Hiện: SELECT tenKH, maHD
FROM KhachHang, HoaDon
WHERE KhachHang.SoCMTND=HoaDon.SoCMTND

Kết quả:

b. Nội dung phát biểu: Đưa ra tên khách hàng , ngày bắt đầu và ngày kết thúc
Đại số quan hệ: πtenKH,ngayBD,ngayKT(KHACHHANGSoCMTND*ThuePhong)
Thực Hiện: SELECT TenKH,NgayBD,NgayKT
FROM THUEPHONG,KHACHHANG
WHERE THUEPHONG.SoCMTND=KHACHHANG.SoCMTND;

Kết quả:

16


c.Nội dung phát biểu: Đưa ra ngày sử dụng, số cmnd và tên dịch vụ
Đại số quan hệ: πNgaySD,SoCMTND,tenDV(SudungDVSoCMTND*KhachHang)
Thực Hiện:
SELECT KHACHHANG.SoCMTND,DICHVU.TenDV,SUDUNGDV.NgaySD
FROM KHACHHANG INNER JOIN(DICHVU INNER JOIN SUDUNGDV ON
DICHVU.MaDV=SUDUNGDV.MaDV)
ON
KHACHHANG.SoCMTND=SUDUNGDV.SoCMTND;

Kết quả:


d.Nội dung phát biểu: Đưa ra số điện thoại, loại hóa đơn
Đại số quan hệ: πSĐT,loaiHD(KhachHangSoCMTND*HoaDon)
Thực Hiện: SELECT SoDienThoai, LoaiHD

Kết quả:

FROM KhachHang, HoaDon
WHERE KhachHang.SoCMTND=HoaDon.SoCMTND

e.Nội dung phát biểu: Đưa ra tên khách hàng, ngày sử dụng
Đại số quan hệ: πTenKH,NgaySD(SuDungDVSoCMTND*KhachHang)
Thực Hiện:

SELECT TenKH, NgaySD
17


FROM KhachHang, SudungDV
WHERE SudungDV.SoCMTND=KhachHang.SoCMTND
Kết quả:

3. Yêu cầu tính toán từ 1 bảng
a.Nội dung phát biểu: Đếm số hóa đơn
Đại số quan hệ:

Ʈcount(MaHD) as ”số hóa đơn” (HoaDon)

Thực Hiện:

SELECT COUNT(MaHD) as “SoHoaDon”

FROM HoaDon

Kết quả:

b.Nội dung phát biểu: Đưa ra giá dịch vụ cao nhất
Đại số quan hệ: (∂max(DonGiaDV”đơn giá DV”(DichVu)
Thực Hiện:

SELECT max(DonGiaDV) as “GiaDVCaoNhat”
FROM DichVu

Kết quả:

c.Nội dung phát biểu: Đưa ra giá phòng cao nhất
Đại số quan hệ:
Thực Hiện:

∂max(DonGiaDV”đơn giá DV”(DichVu)
SELECT Max(GiaPhong) as “GiaPhongMax”
FROM Phong

Kết quả:

18


d.Nội dung phát biểu: Đếm số tên khách hàng
Đại số quan hệ:

Ʈcount(TenKH) as ”số khách hàng” (KhachHang)


Thực Hiện:

SELECT COUNT(TenKH) as “SoKhachHang”
FROM KhachHang

Kết quả:

e.Nội dung phát biểu: Đếm số loại hóa đơn
Đại số quan hệ:

Ʈcount(LoaiHD) as ”số loại hóa đơn” (HoaDon)

Thực Hiện:

SELECT COUNT(LoaiHD) as “SoHoaDon”
FROM HoaDon

Kết quả:

4. Yêu cầu tính toán từ 2 bảng
a.Nội dung phát biểu : Đếm số khách hàng đang sử dụng phòng 5
Đại số quan hệ: ΠTenPhong(δMaPhong=’5’(KhachHang*SuDungPhong*Phong))
SoCMTND

Thực Hiện:

Kết quả:

19


MaPhong


b.Nội dung phát biểu : Đếm số khách hàng đang sử dụng dịch vụ 03
Đại số quan hệ: ΠTenDV(δMaDV=’ 3’(KhachHang*SuDungDV*DichVu))
SoCMTND

Thực Hiện:

MaDV

SELECT dv.TenDV, count(kh.SoCMTND) as "So Khach Hang"
FROM KhachHang as kh INNER JOIN SuDungDV as sddv
ON kh.SoCMTND = sddv.SoCMTND
INNER JOIN DichVu as dv ON dv.MaDV = sddv.MaDV
WHERE dv.MaDV = '3'
GROUP BY dv.TenDV

Kết quả:

c. Nội dung phát biểu : Đếm số lượng khách hàng thanh toán bằng quẹt thẻ
Đại số quan hệ: δHinhThucTTHD=’Quet the’(KhachHang*HoaDon))
SoCMTND

Thực Hiện:

SELECT COUNT(KhachHang.SoCMTND) as CountofSoCMTND
FROM KHACHHANG INNER JOIN HOADON ON
KHACHHANG.SoCMTND = HOADON.SoCMTND

GROUP BY HOADON.HinhThucTTHD
HAVING (((HOADON.HinhThucTTHD)="a"));

Kết quả:

20



×