Giấu thông tin (steganography) là một kỹ thuật nhúng thông tin vào một nguồn đa phương tiện nào đó, ví dụ như file âm thanh, file ảnh, file text,... Nguồn đa phương tiện này được gọi là môi trường chứa. Mục đích của việc giấu thông tin là làm cho đối phương không thể nhận biết được sự tồn tại của thông tin đã được giấu. Mỗi kỹ thuật giấu tin gồm: Nhúng thông tin Trích rút thông tin Thuật toán giấu tin được dùng để giấu thông tin vào một phương tiện chứa bằng cách sử dụng một khóa bí mật được dùng chung bởi người gửi và người nhận. Việc giải mã thông tin chỉ có thể thực hiện được khi có khoá. Sau khi giải mã, ta được thông tin mật.
Trang 1TÌM HIỂU VỀ TRUY VẤN MDX
Ta có cơ sở dữ liệu QuanLyBanHang sau:
DimHangHoa(MaHang, TenHang, SoLuong, DonGia, MaLoai)
DimHoaDon(MaHD, MaCuaHang, TongGiaTri)
DimKhachHang(MaKH, TenKH, DiaChi, GioiTinh, ThuNhap, HocVan)
DimKhuVuc(MaKV, QuocGia, ThanhPho)
DimLoaiHang(MaLoai, TenLoai)
DimThoiGian(IDTime, Ngay, Thang, Nam)
FactBanHang(MaHang, HaHD, MaKH, MaKV, IDTime, SoLuong, DonGia,
DoanhThu)
a) Hiển thị tên các mặt hàng trong danh mục hàng hóa
Select {[DimHangHoa].[TenHang].[TenHang]} On Columns
From [QuanLyBanHang];
b) Cho biết doanh thu của từng mặt hàng
Select [Mesures].[Doanh thu] On Columns,
{[DimHangHoa].[TenHang].[TenHang]} On Rows
From [QuanLyBanHang];
c) Cho biết tổng doanh thu của năm 2017, 2018, 2019, 2020
Select{[DimThoiGian].[Nam].&[2017]:[DimThoiGian].[Nam].&[2020]}On Rows,
[Mesures].[Doanh thu] On Columns
From [QuanLyBanHang];
d) Dùng Cross Join để nối những nhóm dữ liệu cùng hoặc khác chiều
Select{[DimHangHoa].[SoLuong].[SoLuong]* [DimHangHoa].[DonGia] [DonGia]} On Rows,
[DimHangHoa].[TenHang] On Columns
From [QuanLyBanHang];
Trang 2e) Liệt kê tên hàng và thành tiền các mặt hàng của năm 2017
Chú thích: Non Empty dùng để loại bỏ khoảng trống , null trong bảng.
Select Non Empty CrossJoin{[DimHangHoa].[SoLuong].[SoLuong]*
[DimHangHoa].[DonGia].[DonGia]} On columns, [DimHangHoa].[TenHang] [TenHang] on rows
From [QuanLyBanHang]
Where [DimThoiGian].[Nam].&[2017];
f) Liệt kê tên hàng và thành tiền các mặt hàng của năm 2017 và 2020
Select Non Empty CrossJoin{[DimHangHoa].[SoLuong].[SoLuong] *
[DimHangHoa].[DonGia].[DonGia]} On columns, [DimHangHoa].[TenHang] [TenHang] on rows
From [QuanLyBanHang]
Where {[DimThoiGian].[Nam].&[2017], [DimThoiGian].[Nam].&[2020]};
g) Liệt kê số lượng và đơn giá các mặt hàng Omachi của năm 2017 và 2020 Select Non Empty ({[Mesures].[SoLuong], [Mesures].[DonGia]}) on columns From [QuanLyBanHang]
Where {[DimThoiGian].[Nam].&[2017], [DimThoiGian].[Nam].&[2020]
& [DimHangHoa].[TenHang].&[Omachi]};
h) Cho biết top 5 hàng hóa bán chạy nhất trong các năm
Select [Mesures].[SanPham] on columns,
TopCount([DimHangHoa].[TenHang].children, 5, [Mesures].[SanPham]) on
rows
From [QuanLyBanHang];
i) Cho biết tổng số tiền hàng hóa bán được trong hóa đơn theo thứ tự giảm dần
Select [Mesures].[TongTien] on columns,
Order ([DimHoaDon].[TongGiaTri].children, [Mesures].[TongGiaTri], Desc) on
rows
Trang 3From [QuanLyBanHang];
j) Cho biết tên những khách hàng mua nhiều hàng hóa nhất năm 2018
Select [Mesures].[SoLuong] on columns,
NonEmpty([DimKhachHang].[TenKH].children) on rows
From [QuanLyBanHang]
Where [DimThoiGian].[Nam].&[2018];
k) Cho biết tổng số lượng người mua trong tháng 12 năm 2018
Select [Mesures].[TongNguoiMua] on columns,
[DimThoiGian].[Thang].&[12]on rows
From [QuanLyBanHang]
Where [DimThoiGian].[Nam].&[2018];
l) Tổng doanh thu theo từng năm của cửa hàng
Select [Mesures].[TongDoanhThu] on columns,
NonEmpty([DimThoiGian].[Nam].children) on rows
From [QuanLyBanHang];
m) Cho biết tên những khách hàng mua sản phẩm Omachi với số lượng trên 500
Select Non Empty ([Mesures].[KhachHang].children) On columns,
Non Empty ([DimKhachHang].[TenKH].children)
Having ([Mesures].[KhachHang]>500) on rows
From [QuanLyBanHang]
Where [DimHangHoa].[TenHang].&[Omachi];
n)