Giải đề OLAP
Nhiều người xem quá nên mình để link có thể edit được cho mấy bạn muốn sửa lỗi sai hoặc
giải theo cách khác(đừng xóa cái cũ mà hay làm cái mới ngay đó rồi tơ màu tím lên nha)!!
I. PHẦN CÂU HỎI TRẮC NGHIỆM (2.0 điểm, 5 câu)
1). Which type of data models are used by databases configured for OLAP?
Multidimensional
2). What is the source of the OLAP cube’s metadata?
Both Star schema and Snow flake schema
3). A data warehouse is which of the following?
Organized around important subject areas
4). Steps to create a cube in ssas?
1. Create a data source.
2. Deploy and Process the cube.
3. Create a datasource view.
4. Create a cube.
5. Create Dimensions
1 -> 3 -> 4 -> 5 -> 2(tham khảo link) B. 1-3-5-4-2 mới đúng (YUP)
5). A star schema has what type of relationship between a dimension and fact table?
One-to-many
II. PHẦN THI VIẾT (8.0 điểm)
Cho lược đồ cơ sở dữ liệu quản lý bất động sản như sau:
ChuSoHuu (MaCSH, HoTen, DiaChi, ThanhPho, DienThoai)
Tân từ: Mô tả thông tin về chủ sở hữu. Mỗi chủ sở hữu có một mã số duy nhất, họ tên, địa chỉ,
thành phố, điện thoại.
BatDongSan (MaBDS, Loai, DienTich, ThanhPho, Sophong, Sophongngu)
Tân từ: Mô tả thông tin về bất động sản. Mỗi bất động sản có một mã số duy nhất, loại (căn hộ,
nhà phố, biệt thự, ...), diện tích, thành phố, số phịng, số phòng ngủ.
KhachHang (MaKH, HoTen, NganSach, DiaChi, ThanhPho, DienThoai)
Tân từ: Mô tả thông tin về khách hàng. Mỗi khách hàng có một mã số duy nhất, họ tên, ngân
sách,
địa chỉ, thành phố, điện thoại.
CongTy (MaCT, TenCT, VanPhong, DiaChi, ThanhPho, DienThoai)
Tân từ: Mô tả thông tin về công ty. Mỗi công ty có một mã số duy nhất, tên cơng ty, văn phòng,
địa chỉ, thành phố, điện thoại.
Ban (ID, MaBDS, MaCSH, MaKH, MaCT, NgayBan, GiaDeNghi, GiaThoaThuan, TinhTrang)
Tân từ: Mô tả thông tin bán bất động sản của công ty: mã bất động sản, mã chủ sở hữu, mã
khách
hàng, mã công ty, ngày bán, giá đề nghị, giá thỏa thuận, và tình trạng bất động sản bán.
ChoThue (ID, MaBDS, MaKH, MaCT, NgayChoThue, GiaThue, TinhTrang, ThoiGian)
Tân từ: Mô tả thông tin cho thuê bất động sản của công ty: mã bất động sản, mã khách hàng,
mã
cơng ty, ngày cho th, giá th, tình trạng bất động sản cho thuê, và thời gian thuê.
1. Đề xuất thiết kế kho dữ liệu gồm bảng sự kiện và các bảng chiều theo chủ đề phù
hợp, cho tối thiểu 3 độ đo (Measures), đặt tên, định nghĩa các độ đo bằng hàm cụ thể (2.0
điểm).
Đề xuất thiết kế kho dữ liệu:
Đề xuất thiết kế kho dữ liệu (mở bằng draw.io)
Định nghĩa 3 measures:
Đếm số id trong bảng fact: Fact_Count = Count (Fact_ChoThue.ID)
Tổng giá thuê: TongGT = Sum(Fact_ChoThue.GiaThue)
Giá thuê lớn nhất: GTLonNhat = Max(Fact_ChoThue.GiaThue)
2. Đề xuất 03 truy vấn MDX trong đó có 01 truy vấn sử dụng một trong các hàm
TopCount, Having, Filter, Generate,... và 01 truy vấn Roll up hoặc Drill down (ghi rõ theo yếu tố
gì) (3.0 điểm).
a)Những câu đơn giản: Thống kê tổng tiền cho thuê theo từng mã công ty:
Select Non Empty { [Measures.TongGT] } on columns,
Non Empty [Dim_CongTy].[MaCT] on rows
From [ChoThue]
Thống kê số lượng thuê theo từng khách hàng:
Select Non Empty { [Measures.Fact_Count] } on columns,
Non Empty [Dim_KhachHang].[MaKH] on rows
From [ChoThue]
Note: nên dùng cái nào có liên quan đến thời gian vì đường nào cũng làm 1 câu liên
quan đến bảng thời gian => làm dữ liệu ít hơn, đỡ rối hơn. Pro rồi thì làm nhiều cũng k
sao :v
Thống kê giá tiền thuê lớn nhất theo từng tháng:
Select Non Empty { [Measures.GTLonNhat] } on columns,
Non Empty [Dim_ThoiGian].[Thang] on rows
From [ChoThue]
b) Câu truy vấn khó hơn:
-Having: Thống kê theo tháng số lượng cho thuê nhỏ hơn 20 lần.
Select Non Empty { [Measures].[Fact_Count] } on columns,
Non Empty [Dim_ThoiGian].[Thang].members
having [Measures].[Fact_Count]<20 on rows
From [ChoThue]
-Filter: Thống kê theo tháng số lượng cho thuê lớn hơn 20 lần.
Căn bản thì ý nghĩa của nó cũng giống như Having(Khác ở chỗ: Filter là lọc trong lúc select cịn
Having thì select xong rồi mới lọc)
Select Non Empty { [Measures].[Fact_Count] } on columns,
Non Empty filter([Dim_ThoiGian].[Thang].members,
[Measures].[Fact_Count]<20) on rows
From [ChoThue]
-TopCount: Tìm ra 5 tháng có tổng số tiền cho thue lớn nhất
Select topcount([Dim_ThoiGian].[Thang].members, 5,
[Measures].[TongGT]) on rows
From [ChoThue]
Tìm ra 3 khách hàng có số lần thuê lớn nhất
Select topcount([Dim_KhachHang].[MaKH].members, 3,
[Measures].[Fact_Count]) on rows
From [ChoThue]
-Slice and Dice: Thống kê số lượng cho thue trong tháng 1 và tháng 11
Select Non Empty { [Measures].[Fact_Count] } on columns
Non Empty { [DimThoiGian].[Thang].[1],[DimThoiGian].[Thang].[11]} on rows,
From [ChoThue]
c) Roll up & Thrill down:
Doanh thu bất động sản theo từng tháng trong năm 2017. (Cái này là Drill Down đúng k mấy bạn?)
Select [Measure].[sum_GiaThoaThuan] on 0, (Mình nghĩ roll up-drill down phải viết tối thiểu 2 câu truy
[Dim_ThoiGian].[Thang].children on 1 vấn chứ). Nghe cơ nói chỉ cần ghi 1 câu thơi, và giải
thích
From [Cube]
Where ([Dim_ThoiGian].[Nam].&[2017]);
Roll-up: Thống kế tổng doanh số cho thuê vào tháng 7 năm 2017
Select { [Measures.TongGT] } on columns,
{ [Dim_ThoiGian].[Thang].&[7], [Dim_ThoiGian].[Nam].&[2017] } on rows
From [ChoThue]
3)Cho dữ liệu và kết quả: