Xây dựng và khai thác kho dữ liệu cước khách hàng tại Công ty Thông tin Viễn thông Điện lực - Pdf 25

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM THỊ ĐÀO

XÂY DỰNG VÀ KHAI THÁC
KHO DỮ LIỆU CƯỚC KHÁCH HÀNG
TẠI CÔNG TY THÔNG TIN VIỄN THÔNG ĐIỆN LỰC LUẬN VĂN THẠC SĨ

Hà Nội - 2011 3
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT 5
DANH MỤC HÌNH VẼ 6
DANH MỤC BẢNG 7
MỞ ĐẦU 8
CHƯƠNG 1 TỔNG QUAN VỀ KHO DỮ LIỆU 9
1.1 Giới thiệu bài toán xây dựng kho dữ liệu 9
1.2 Khái niệm chung về kho dữ liệu 10
1.2.1 Định nghĩa kho dữ liệu 10
1.2.2 Sự khác nhau giữa kho dữ liệu và CSDL tác nghiệp 11
1.3 Lịch sử ra đời và vai trò của kho dữ liệu 12
1.3.1 Lịch sử ra đời 12
1.3.2 Vai trò của kho dữ liệu 12
1.4 Kiến trúc tổng thể kho dữ liệu 13
1.5 Kho dữ liệu chủ đề (Datamart) 15
1.6 Các bước cơ bản xây dựng kho dữ liệu 15
1.6.1 Định dạng nguồn dữ liệu 16
1.6.2 Trích chọn dữ liệu 16
1.6.3 Làm sạch và chuyển dạng 16
1.6.4 Nạp, tích hợp vào kho dữ liệu 17
1.6.5 Xây dựng mô hình dữ liệu đa chiều 18
1.7 Ví trí của làm sạch dữ liệu trong quá trình xây dựng kho dữ liệu 22
CHƯƠNG 2 LÀM SẠCH DỮ LIỆU VÀ CÁC GIẢI PHÁP KỸ THUẬT 24

5
DANH MỤC CÁC TỪ VIẾT TẮT
STT
Từ viết tắt
Giải nghĩa
1
CSDL
Cơ Sở Dữ Liệu
2
DSS
Decision Support System
3
DWH
Data WareHouse
4
ETL
Extraction, Transformation, Loading
5
KDD
Knowledge Discovery and Data Mining
6
KDL
Kho Dữ Liệu
7
LSDL
Làm Sạch Dữ Liệu
8
OWB
Oracle Warehouse Builder
9

Hình 19. Quy trình xây dựng kho dữ liệu 43
Hình 20. Hồ sơ hóa bảng KHACH_HANG_MB 48
Hình 21. Phân tích thuộc tính CMT, GIOI_TINH 49
Hình 22. Lược đồ quan hệ giữa các bảng trong kho dữ liệu 52
Hình 23. Cấu trúc các kho dữ liệu chủ đề 53
Hình 24. Tạo đối tượng chiều 54
Hình 25. Tạo đối tượng chiều KIEUTHANHTOAN 55
Hình 26. Chọn kiểu lưu trữ 55
Hình 27. Khai báo thuộc tính cho đối tượng chiều 56
Hình 28. Hoàn thành bước tạo đối tượng chiều 56
Hình 29. Tạo các khối dữ liệu 57
Hình 30. Lược đồ hình sao khối phattrien_thuebao 58
Hình 31. Lược đồ hình sao khối doanhthu 58
Hình 32. Lược đồ hình sao khối congno 59
Hình 33. Lược đồ hình sao khối thanhkhoan 59
Hình 34. Giao diện chương trình 60
Hình 35. Báo cáo tăng trưởng thuê bao CDMA 61
Hình 36. Báo cáo tăng trưởng doanh thu CDMA 61
Hình 37. Báo cáo tăng trưởng thuê bao 3G 62
Hình 38. Báo cáo tăng trưởng doanh thu 3G 62
Hình 39. Báo cáo so sánh doanh thu giữa các tháng 63
Hình 40. Báo cáo tình hình thu nợ 63
7
DANH MỤC BẢNG
Bảng 1. Ví dụ về bài toán đơn nguồn - mức lược đồ 27
Bảng 2. Ví dụ về bài toán đơn nguồn - mức thể hiện 28
Bảng 3. Danh sách các bảng trong CSDL 46

và các nhà cung cấp viễn thông khác. Đây là nguồn dữ liệu phong phú, rất hữu ích cho
việc ra quyết định chiến lược kinh doanh. Tuy nhiên với cách tổ chức hỗn tạp và rời
rạc như hiện nay thì việc khai thác nguồn dữ liệu trên còn nhiều hạn chế.
Xuất phát từ thực tế trên tại EVNTelecom, em quyết định chọn đề tài “Xây dựng
và khai thác khai thác kho dữ liệu cước khách hàng tại Công ty Thông tin Viễn
thông Điện lực”

9
CHƯƠNG 1 TỔNG QUAN VỀ KHO DỮ LIỆU
1.1 Giới thiệu bài toán xây dựng kho dữ liệu
Ngày nay, phần lớn các công ty đều hiểu rằng việc tập hợp và lưu trữ các nguồn dữ
liệu giao dịch là vô cùng có ích. Thực tế cho thấy hầu hết các công ty đều ghi lại các
giao dịch của họ. Dữ liệu được tập hợp trong nhiều năm từ các nguồn khác nhau. Một
vài trong số chúng được lưu trữ trong các máy tính lớn, một vài được lưu trữ trong các
hệ thống cá nhân và một vài trong các ứng dụng client- server . Hơn nữa, mỗi hệ thống
này hầu như là đều được xây dựng và duy trì bởi nhiều người khác nhau. Qua thời
gian lượng dữ liệu trở nên khổng lồ, phân tán và không nhất quán…
Giải pháp tối ưu trong trường hợp này chính là xây dựng kho dữ liệu (KDL).
KDL không chỉ lưu trữ dữ liệu có tính lịch sử mà nó còn là một nền tảng để tích hợp
dữ liệu cực kỳ tốt. KDL giúp các công ty dễ dàng và nhanh chóng tìm kiếm các dữ liệu
lịch sử của họ. Đặc biệt, các công cụ xử lý phân tích trực tuyến (OLAP) trong KDL
cho phép người dùng đưa ra các báo cáo chỉ với các thao tác kích chuột và tìm kiếm
các quá trình thực thi của công ty ở những góc cạnh khác nhau, trong các khoảng thời
gian khác nhau.
Kho dữ liệu đóng vai trò cải thiện tốc độ truy vấn dữ liệu, hỗ trợ việc phân tích,
báo cáo; hỗ trợ phát hiện tri thức và ra quyết định; giúp tăng hiệu suất thực thi.
Mặc dù kho dữ liệu ra đời từ rất lâu (những năm 90 của thế kỷ trước) và có một vai

cung cấp một khung nhìn đơn giản và chính xác về một chủ đề cụ thể bằng cách loại
trừ những dữ liệu không có ích trong quá trình ra quyết định.
Tích hợp (Integrated): Một trong những đặc trưng quan trọng nhất của KDL là dữ
liệu chứa trong nó phải được tích hợp thành một thể thống nhất. Có nghĩa là một KDL
thường được xây dựng bằng cách tích hợp những nguồn dữ liệu khác nhau như: CSDL
quan hệ, các file không cấu trúc (flat files), những bản ghi giao tác trực tuyến.
Các kỹ thuật làm sạch và tích hợp dữ liệu được áp dụng nhằm đảm bảo sự nhất
quán trong việc đặt tên, mã hóa cấu trúc, đánh giá thuộc tính, Khi các nhà phân tích 11
hệ hỗ trợ quyết định (DSS) tiếp cận KDL , sự quan tâm của họ là sử dụng KDL mà
không còn băn khoăn về độ tin cậy cũng như tính nhất quán của dữ liệu.
Gắn với thời gian (Time Variant) : Tất cả dữ liệu trong một KDL là chính xác tại
một thời điểm nào đó. Đặc trưng cơ bản này của dữ liệu trong KDL rất quan trọng so
với trong môi trường tác nghiệp. Yêu cầu của một KDL là phạm vi về thời gian dài
hơn so với các hệ thống tác nghiệp. Với CSDL tác nghiệp , dữ liệu có giá trị hiện thời,
trong khoảng 60-90 ngày. Trong KDL, dữ liệu cung cấp thông tin lịch sử ( khoảng từ
5-10 năm trước).
Mặt khác, dữ liệu trong KDL một khi đã được sửa lỗi thì không thể cập nhật được.
Xét về mặt mục đích thực tế, chúng là một chuỗi dài các snapshot. Nếu một snapshot
được tạo ra chưa chính xác thì sau đó nó sẽ được cập nhật lại , bằng cách thêm một
snapshot khác. Do đó, ta giả sử rằng nó là chính xác và một khi đã được tạo ra , nó sẽ
không bị thay đổi nữa. Bởi vì nếu sửa đổi, trong một vài trường hợp sẽ dẫn đến sự trái
quy tắc thậm chí dẫn đến sai sót. Ngược lại, dữ liệu tương tác phản ánh sự chính xác
tại thời điểm truy cập có thể được cập nhật nếu cần thiết.
Ổn định (Non- Volative): KDL là một kho chứa dữ liệu , lưu trữ kiểu vật lý các
dữ liệu chuyển đổi từ môi trường tác nghiệp. Do đó, việc cập nhật tác nghiệp dữ liệu là
không tồn tại trong KDL. Trong KDL, không yêu cầu các cơ chế xử lý giao dịch, phục
hồi và điều khiển tương tranh. Nó chỉ yêu cầu hai thao tác trong quá trình truy cập dữ

thông tin. Thật ra điều này là hiển nhiên vì việc chuẩn hoá nhằm tránh sự trùng
lắp thông tin, do đó sẽ nhất quán trong việc cập nhật, thêm, xoá, sửa, tuy nhiên
DWH là Database rất lớn phục vụ cho báo cáo, truy vấn chỉ đọc nên việc trùng
lắp thông tin sẽ giúp thao tác tìm kiếm sẽ nhanh hơn. Đây cũng là một quy luật:
Càng trùng lắp thông tin thì tìm kiếm càng dễ dàng và ngược lại.
1.3 Lịch sử ra đời và vai trò của kho dữ liệu
1.3.1 Lịch sử ra đời
KDL ra đời vào những năm 90 của thế kỷ trước, được đề xướng bởi B.Inmon, là
một cách tiếp cận khác được so với hệ thống OLTP(Online Transaction Processing).
KDL là sự kết hợp của một số giải pháp kỹ thuật và được đặt tên là Data
Warehoushing - kỹ thuật xây dựng các KDL.
Những người đầu tiên đưa ra ý tưởng về KDL xác định rằng tiến hành phân tích
trực tiếp trên dữ liệu của các hệ xử lý giao dịch là không hiệu quả. Dữ liệu từ các hệ
thống OLTP được biến đổi và sau đó đưa vào một nguồn dữ liệu duy nhất là KDL
1.3.2 Vai trò của kho dữ liệu
 KDL cải thiện tốc độ truy vấn dữ liệu, hỗ trợ việc phân tích, báo cáo
KDL được thiết kế đặc trưng hỗ trợ cho các thao tác phân tích, báo cáo và truy vấn
dữ liệu.
Mô hình dữ liệu được “làm phẳng” và được cấu trúc theo các vùng chủ đề giúp
người dùng dễ dàng hơn trong việc lấy thông tin phức tạp chỉ bằng việc thực hiện phân
tích đa chiều và truy vấn tương đối đơn giản. Nó hỗ trợ quá trình phân tích đa mức và
thực hiện quyền cho người dùng cuối. 13
Mô hình dữ liệu được “làm phẳng” (flattened) giúp người dùng dễ dàng hơn trong
việc hiểu và viết các câu truy vấn có thể liên quan tới vài trăm bảng và viết các câu
truy vấn với các phép “Join” giữa các bảng và các mệnh đề phức tạp.
 KDL hỗ trợ phát hiện tri thức và ra quyết định (Knowledge Discovery and
Decision Support)

hình ROLAP (Relational OLAP), MOLAP (Multidimensional OLAP) và HOLAP
(Hybrid OLAP).
Lớp trên cùng một lớp client phía người sử dụng, nó chứa các công cụ báo cáo,
truy vấn, các công cụ phân tích, các công cụ khai phá dữ liệu… 15
1.5 Kho dữ liệu chủ đề (Datamart)
Kho dữ liệu chủ đề (Datamart-DM) là cơ sở dữ liệu có những đặc điểm giống với
kho dữ liệu nhưng với quy mô nhỏ hơn và lưu trữ dữ liệu về một lĩnh vực, một chuyên
ngành. Các Datamart có thể được hình thành từ một tập con dữ liệu của kho dữ liệu
hoặc cũng có thể được xây dựng độc lập và sau khi xây dựng xong các Datamart có
thể được kết nối, tích hợp lại với nhau tạo thành kho dữ liệu.
Datamart là một kho dữ liệu thứ cấp gồm các dữ liệu tích hợp của kho dữ liệu.
Datamart được hướng tới một phần của dữ liệu, thường được gọi là một vùng chủ đề
(SA) được ta ra danh cho một nhóm người sử dụng. Dữ liệu trong Datamart cho thong
tin về một chủ đề xác định, không phải về toàn bộ các hoạt động nghiệp vụ đang diễn
ra trong một tổ chức. Thể hiện thường xuyên nhất của Datamart là một kho dữ liệu
riêng rẽ theo phương diện vật lý, thường được lưu trữ trên một Server riêng trong một
mạng cục bộ phục vụ cho một nhóm người nhất định. Đôi khi Datamart với công nghệ
OLAP tạo ra các quan hệ theo dạng hình sao đặc biệt hoặc những siêu khối
(Hypercube) dữ liệu chọ việc phân tích của một nhóm người có cùng mối quan tâm
trên một phạm vi dữ liệu. Có thể chia Datamart thành hai loại: Datamart độc lập và
Datamart phụ thuộc.
Data mart phụ thuộc (Dependent Data Mart): Chứa những dữ liệu được lấy từ
DW và những dữ liệu này sẽ được trích lọc và tinh chế, tích hợp lại ở mức cao hơn để
phục vụ một chủ đề nhất định của Datamart
Data mart độc lập ( Independent Data Marts) không giống như Data Mart phụ
thuộc, Data mart độc lập được xây dựng trước kho dữ liệu và dữ liệu được trực tiếp
lấy từ các nguồn dữ liệu tác nghiệp. Phương pháp này đơn giản hơn và chi phí thấp

Sau đó là phải lập ra kế hoạch và tần suất tiến trình trích dữ liệu. Điều này nhằm tối
thiểu hoá các tác động lên các hệ thống và thi hành các tác vụ này trong một cửa sổ xứ
lý theo lô (batch window). Đối với các bảng dữ liệu khác nhau thì tần suất trích dữ liệu
sẽ khác nhau. Việc trích dữ liệu còn phụ thuộc vào sự ảnh hưởng từ hệ thống nguồn và
loại dữ liệu sẽ được trích. Ví dụ : Đối với dữ liệu bán hàng thì nên trích dữ liệu hàng
ngày nhưng với dữ liệu sản phẩm thì chỉ cần trích hàng tuần.
Thực tế thì đây chính là giai đoạn khó nhất. Có thể xảy ra trường hợp những người
đã từng làm việc trên các hệ thống đã được chuyển đến công việc khác. Hoặc họ đã rời
công ty hoặc họ đã chuyển sang bộ phận khác
1.6.3 Làm sạch và chuyển dạng
Làm sạch dữ liệu là quá trình
 xác định tính không chính xác, không đầy đủ/tính bất hợp lý của dữ liệu
 chỉnh sửa các sai sót và thiếu sót được phát hiện
 nâng cao chất lượng dữ liệu.
Quá trình bao gồm 17
 kiểm tra định dạng, tính đầy đủ, tính hợp lý, miền giới hạn,
 xem xét dữ liệu để xác định ngoại lai (địa lý, thống kê, thời gian hay môi
trường) hoặc các lỗi khác,
 đánh giá dữ liệu của các chuyên gia miền chủ đề.
Quá trình thường dẫn đến
 loại bỏ, lập tài liệu và kiểm tra liên tiếp và hiệu chỉnh đúng bản ghi nghi ngờ.
 Kiểm tra xác nhận có thể được tiến hành nhằm đạt tính phù hợp với các chuẩn
áp dụng, các quy luật, và quy tắc.
Cách thực hiện:
 Tìm và loại trừ các bộ trùng nhau. Ví dụ Jane Doe, Jane Q.Doe
 Kiểm tra tính nhất quán, khám phá dữ liệu sai, không nhất quán. Ví dụ số phone
không đúng, có ngòai vùng xác định không…

một ý tưởng tốt nhất.
Định dạng quan hệ tỏ ra không hiệu quả khi tiến hành xây dựng các báo cáo với
các giá trị mang tính tổng quan và kết tập. Ngược lại, phương pháp chiều (dimensional
approach) giúp cải thiện quá trình truy vấn dữ liệu mà không ảnh hưởng đến việc tích
hợp dữ liệu. Một vấn đề nảy sinh là không gian lưu trữ. CSDL chiều thì cần không
gian lưu trữ lớn hơn CSDL quan hệ. Ngày nay, không gian lưu trữ trở nên khá rẻ và
hầu hết các công ty có thể đáp ứng được dung lượng lớn các ổ đĩa cứng.
Mô hình chiều (Dimensional Model) bao gồm các bảng chiều (dimensions) và bảng
sự kiện (fact). Bảng sự kiện chứa khóa ngoài của mỗi bảng chiều và các phép đo. Các
phép đo (measures) cho phép xác định mức độ tốt hay tồi mà doanh nghiệp của bạn
đang có.(vidu : số lượng bộ phận được sản xuất trong một giờ hay số lượng ô tô cho
thuê trong một giờ…). Còn các chiều thể hiện cho cái mà nhà doanh nghiệp mong đợi
trong các báo cáo – chi tiết về các phép đo. (Vidu : chiều thời gian cho người dùng biết
có 2000 bộ phận đã được sản xuất trong khoảng từ 7h sáng đến 7h tối).
Các lược đồ cho lưu trữ dữ liệu đa chiều:
 Lược đồ hình sao (star schema)
 Lược đồ hình bông tuyết (Snowflake schema)
 Lược đồ chòm sao sự kiện (Fact constellations schema)
1.6.5.1 Lược đồ hình sao
Giản đồ hình sao được đưa ra lần đầu tiên bởi Raph Kimball như là một lựa chọn
thiết kế CSDL cho kho dữ liệu. Trong giản đồ hình sao, dữ liệu được xác định và phân
loại theo 2 kiểu: sự kiện (bảng Fact: đối tượng trung tâm) và phạm vi (các bảng
Dimension: các bảng liên kết). Trong giản đồ hình sao chỉ có một bảng liên quan trực
tiếp tới hầu hết các bảng còn lại đó là bảng Fact và là bảng chứa yếu tố cốt lõi cần
được phân tích. Nó được gọi là giản đồ hình sao bởi vì các sự kiện nằm ở trung tâm
của mô hình và được bao quanh bởi các phạm vi liên quan, rất giống với các điểm của
một ngôi sao. Các sự kiện là các đại lượng số của công việc. Các phạm vi là các bộ lọc 19

location_key
street
city
state_or_province
country
location
Sales Fact Table

time_key
item_key

branch_key

location_key

units_sold

dollars_sold

avg_sales
Measures
item_key
item_name
brand
type
supplier_type
item
branch_key
branch_name
branch_type


21

Hình 4. Ví dụ lược đồ hình bông tuyết
1.6.5.3 Lược đồ chòm sao sự kiện

Các ứng dụng phức tạp có thể đòi hỏi nhiều bảng sự kiện cùng chia sẻ các bảng
chiều. Loại lược đồ này có thể được xét như một tập hợp các lược đồ hình sao. Và vì
thế nó được gọi là lược đồ chòm sự kiện. Ví dụ một lược đồ chòm sự kiện như hình 5:

Hình 5. Ví dụ lược đồ chòm sự kiện

time_key
day
day_of_the_week
month
quarter
year
time
location_key
street
city
province_or_state
country
location
Sales Fact Table

time_key
item_key


to_location

dollars_cost

units_shipped

time_key
day
day_of_the_week
month
quarter
year
time
location_key
street
city_key
location
Sales Fact
Table

time_key
item_key

branch_key
branch_key

location_key

units_sold


Quan sát hình vẽ dưới đây, ta có một cái nhìn tổng quan về nhiệm vụ của mỗi giai
đoạn trong mô hình KDL.
Hình 6. Ví trí của làm sạch dữ liệu trong quá trình xây dựng kho dữ liệu
Giai đoạn đầu Pre-Data Warehouse làm nhiệm vụ cung cấp nguồn dữ liệu cho quá
trình xây dựng KDL. Có hai luồng dữ liệu chính.
 CSDL OLTP: đây chính là các nguồn CSDL tác nghiệp (operational data).
Chúng tồn tại trong các ứng dụng phần mềm giao dịch, Ví dụ như các hệ thống
ERP (Enterprise Resource Planning ), phần mềm dịch vụ khách hàng
(Custormer Serving Software). OLTP được thiết kế đảm bảo tốc độ và sự chính
xác cho các giao dịch
 Metadata : Metadata đảm bảo các ràng buộc và sự chính xác khi nguồn dữ liệu
được đưa vào trong chu trình xử lý. 23
Làm sạch dữ liệu (Data Cleaning) được tích hợp vào giai đoạn ETL của kỹ thuật
xây dựng kho. Đây có thể coi là giai đoạn tiền xử lý đảm bảo chất lượng dữ liệu trước
khi chúng được đưa vào trong KDL.
Các giai đoạn sau là quá trình xử lý dữ liệu khi dữ liệu đã có trong KDL. Áp dụng
các ký thuật OLAP và Data mining để phát hiện tri thức, hỗ trợ cho các hệ trợ giúp
quyết định. 24

CHƯƠNG 2 LÀM SẠCH DỮ LIỆU VÀ CÁC GIẢI PHÁP KỸ THUẬT
Trong chương trước đã đưa ra một cái nhìn tổng quan về KDL và các kỹ thuật xây

25
Ngày nay, thông tin là vấn đề quan trọng hàng đầu của các công ty, tổ chức doanh
nghiệp. Các hệ thống thông tin được duy trì tốt sẽ cho phép các công ty có được những
quyết định mang tính nghiệp vụ thành công. Ngược lại, nếu thiếu thông tin hoặc thông
tin có chứa lỗi, điều đó có thể khiến các công ty rơi vào tình trạng thua lỗ hoặc có
những quyết định mang tính chiến lược thiếu đúng đắn.
LSDL sẽ từng bước giải quyết vấn đề .LSDL duy trì, đảm bảo và cải thiện chất
lượng dữ liệu trong các hệ thống thông tin.
2.3 Các vấn đề chất lượng dữ liệu
Thông tin được định nghĩa là dữ liệu và phương thức thể hiện chúng. Thông tin
nằm ẩn trong dữ liệu . Do đó, để có thông tin tốt thì điều cơ bản là phải duy trì được
chất lượng dữ liệu – Data Quality. Chất lượng dữ liệu ở mức cao có nghĩa là nó phải
phù hợp cho sử dụng, đủ tốt và thỏa mãn các ứng dụng nghiệp vụ có liên quan. Một số
tiêu chuẩn sau đây cho phép đánh giá mức độ của chất lượng dữ liệu :
 Hoàn thiện (completeness) : Tất cả các thuộc tính cho mỗi bản ghi phải đầy đủ.
 Hợp lệ (validity) : tất cả các thuộc tính cho mỗi bản ghi phải đảm bảo giá trị
trong phạm vi cho phép.
 Nhất quán (consistency) : các thuộc tính của mỗi bản ghi không được phép mâu
thuẫn với bản ghi khác.
 Hợp thời (timeliness): Các bản ghi phải được cập nhật ở thời điểm gần nhất.
Thông tin về một đối tượng bất kì cần được cập nhật ngay khi có sự thay đổi về
nó trong thế giới thực.
 Chính xác (Accuracy) : Các bản ghi phải mô tả chính xác với các thuộc tính của
đối tượng trong thế giới thực.
 Phù hợp (Relevancy ) : CSDL chỉ nên chứa các thông tin cần thiết về đối tượng
để hỗ trợ cho chúng.
 Có thể truy cập và hiểu được : các nguồn metadata mô tả dữ liệu trong CSDL
cần có ngay khi chúng được cần đến.
Các vấn đề chất lượng dữ liệu có thể chia thành 2 loại chính : đơn nguồn (single-
source problems) và đa nguồn (multi-source problems) như được mô tả trong hình 7:


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status