Tải bản đầy đủ - 0 (trang)
Thiết kế kho dữ liệu

Thiết kế kho dữ liệu

Tải bản đầy đủ - 0trang

Hình: Vùng xử lí cho dữ liệu nạp từ Moodle

Ở đây có một số chú ý đối với dữ liệu trong vùng xử lí của Moodle:

• Trường full_path_name của bảng stg_course_categories là khố tự

nhiên sinh ra trong q trình rút trích dữ liệu. Lí do là dữ liệu nguồn

khơng có khoá tự nhiên khác với định danh hệ thống. Việc tạo ra khoá

tự nhiên nhằm tránh xung đột về dữ liệu.

• Vùng xử lí chỉ bao gồm khố tự nhiên và các thuộc tính cần thiết, khơng

bao gồm khố chính, khố ngoại hay chỉ mục, nhằm tăng tốc q trình

sao chép dữ liệu từ nguồn.

• Những bảng có trường last_update là những bảng không chứa thông tin

lịch sử thay đổi của nguồn. last_update là trường do hệ thống ETL tạo ra

trong q trình rút trích nhằm ghi nhận các thay đổi này. Các bảng khác

sử dụng trường timemodified trong dữ liệu nguồn để ghi nhận thay đổi

từ nguồn.



1.1.2.



Kết quả học tập



Dữ liệu về kết quả học tập, học kỳ, năm học khơng có trong moodle. Cho nên

nếu muốn phân tích các vấn đề liên quan tới các dữ liệu này, người dùng cần phải

nhập dữ liệu bằng file excel có cấu trúc như sau (do ứng dụng bao đóng quy

định):

Dữ liệu kết quả học tập: file excel với cột 1 chứa mã khóa học (có header là

CourseID), cột 2 là mã sinh viên (có header là StudentID), cột 3 là điểm (có

header là Value)



34



Hình: Cấu trúc tập tin chứa kết quả học tập



1.1.3.



Dữ liệu học kỳ, năm học



File excel với cột 1 chứa số thứ tự học kỳ trong năm học (có header là

TermNumber), cột 2 chứa tên học kỳ (có header là TermName), cột 3 chứa năm

bắt đầu năm học (có header là AcademicYear), cột 4 chứa tên năm học (có header

là AcademicYearName), cột 5 và cột 6 chứa ngày bắt đầu và ngày kết thúc học

kỳ (có header lần lượt là BeginDate và EndDate). Ngày tháng có định dạng

năm/tháng/ngày (YYYY/mm/DD)



Hình: Cấu trúc tập tin chứa thơng tin các học kì, năm học



1.2.

Cơ sở dữ liệu chuẩn hố

1.2.1.

Lược đồ

Cơ sở dữ liệu chuẩn hoá được tổ chức dưới dạng chuẩn 3, như hình dưới đây:



35



1.2.2.



Các diễn giải liên quan đến thiết kế



Các thuộc tính category_full_path và parent_category_full_path là các

khố tự tạo trong q trình trích xuất dữ liệu từ nguồn đưa vào vùng xử

lí như đã trình bày bên trên. (Xem mục 5.3.1.1. Moodle)

• Các thuộc tính last_update của các bảng là thời gian cập nhật dòng dữ

liệu lần cuối cùng từ nguồn. Đối với các bảng mà dữ liệu nguồn có lưu

lịch sử thay đổi, last_update là giá trị thời gian của cột tương ứng trong





36



bảng đó. Đối với các bảng mà dữ liệu nguồn không lưu lịch sử thay đổi,

sử dụng thời điểm rút trích dữ liệu cho thuộc tính last_update.



1.2.3.



Đặc tả cơ sở dữ liệu



 Nds_modules: lưu trữ thông tin về các mô đun trong hệ thống



Tên thuộc tính

module_name



Kiểu giá trị

varchar



Ý nghĩa

Tên mô đun website hệ thống nguồn

(khóa chính)



module_description



text



Mơ tả mơ đun



last_update



datetime



Thời điểm cập nhật cuối cùng



 Nds_categories: lưu trữ thơng tin về nhóm các khóa học



Tên thuộc tính

category_full_path



Kiểu giá trị

varchar



Ý nghĩa

Khố tự nhiên của nhóm khố

học, tạo ra bằng cách ghép nối tên

các nhóm khố học từ nó lên đến

nút gốc trên cây phân cấp, ngăn

cách bằng dấu ‘;’



parent_category_full_pat



varchar



Khố tự nhiên của nhóm mơn học

cha.



category_name



varchar



Tên nhóm khóa học



category_description



text



Mơ tả nhóm khóa học



depth



tinyint



Độ sâu của nhóm khoá học trên



h



cây phân cấp.

last_update



datetime



Thời điểm cập nhật cuối cùng



 Nds_courses: lưu trữ thơng tin về khóa học



Tên thuộc tính

course_code



Kiểu giá trị

varchar



Ý nghĩa

Mã khóa học



category_full_name



varchar



Nhóm khố học. Khố ngoại

tham



chiếu



đến



bảng



nds_categories

term_number



tinyint



Thứ tự học kỳ

37



year_number



int



Năm học



course_name



varchar



Tên khóa học



course_description



text



Mơ tả khóa học



course_start_date



datetime



Ngày bắt đầu khóa học



course_created_date



datetime



Ngày khởi tạo khóa học trong hệ

thống



last_update



datetime



Thời điểm cập nhật cuối cùng



 Nds_terms: lưu trữ thông tin về học kỳ



Tên thuộc tính

term_number



Kiểu giá trị

int



Ý nghĩa

Thứ tự học kỳ trong năm học



year_number



tinyint



Năm học, tham chiếu đến bảng

nds_academic_years



term_name



varchar



Tên học kỳ



begin_date



date



Ngày bắt đầu học kỳ



end_date



date



Ngày kết thúc học kỳ



last_update



datetime



Thời điểm cập nhật cuối cùng



 Nds_academic_years:



Tên thuộc tính

year_number



Kiểu giá trị

int



Ý nghĩa

Năm học



academic_year_name



varchar



Tên năm học



last_update



datetime



Thời điểm cập nhật cuối cùng



 Nds_role: lưu trữ thông tin vai trò người dùng trong hệ thống



Tên thuộc tính

role_name



Kiểu giá trị

varchar



Ý nghĩa

Tên vai trò



role_description



text



Mơ tả vai trò



last_update



datetime



Thời điểm cập nhật cuối cùng



 Nds_users: lưu trữ thông tin người dùng

38



Tên thuộc tính

user_name

description

first_name

last_name

email

phone_1

phone_2

institution

department

address

city

last_update



Kiểu giá trị

varchar

text

varchar

varchar

varchar

varchar

varchar

varchar

varchar

varchar

varchar

timestamp



Ý nghĩa

Tên đăng nhập của người dùng

Mô tả người dùng

Họ người dùng

Tên thật người dùng

Email người dùng

Số điện thoại người dùng

Số điện thoại người dùng

Tên cơ quan

Tên phòng ban

Địa chỉ người dùng

Thành phố người dùng đang ở

Thời điểm sửa đổi cuối cùng



 Nds_actions:lưu trữ thông tin các thao tác trong hệ thống



Tên thuộc tính

action_name



Kiểu giá trị

varchar



Ý nghĩa

Tên thao tác



action_description



text



Mô tả thao tác



last_update



datetime



Thời điếm cập nhật cuối cùng



 Nds_logs: lưu trữ thông tin log của hệ thống



Tên thuộc tính

course_code



Kiểu giá trị

varchar



Ý nghĩa

Mã khóa học, tham chiếu đến

bảng nds_courses



user_name



varchar



Mã người dùng, tham chiếu đến

bảng nds_users



module_name



varchar



Tên mô đun, tham chiếu đến bảng

nds_modules



action_name



varchar



Tên hoạt động, tham chiếu đến

bảng nds_actions



access_time



datetime



Thời điểm truy cập vào hệ thống



last_update



datetime



Thời điểm cập nhật cuối cùng



 Nds_results: lưu trữ thông tin kết quả học tập



Tên thuộc tính

course_code



Kiểu giá trị

varchar



Ý nghĩa

Mã khóa học, tham chiếu đến

39



bảng nds_courses

user_name



varchar



Tên người dùng, tham chiếu đến

bảng nds_users



grade



float



Điếm số của người dùng với khóa

học tương ứng



last_update



datetime



Thời điểm cập nhật cuối cùng



 Nds_role_assignments: lưu thơng tin về vai trò của người dùng ở một khóa học



trong hệ thống.

Tên thuộc tính

user_name



Kiểu giá trị

varchar



Ý nghĩa

Tên người dùng, tham chiếu đến

bảng nds_users



course_code



varchar



Mã khóa học, tham chiếu đến

bảng nds_courses



role_name



varchar



Tên vai trò, tham chiếu đến bảng

nds_roles



last_update



1.3.



datetime



Thời điểm cập nhật cuối cùng



Kho dữ liệu đầu cuối



1.3.1. Lược đồ cơ sở dữ liệu



40



1.3.2. Các diễn giải liên quan đến thiết kế





Bảng category_bridge được tạo ra nhằm khử truy vấn đệ quy trên nhóm

khố học. Đây là cây phân cấp khơng giới hạn độ sâu.

Chẳng hạn:

Có cây phân cấp đệ quy khơng giới hạn độ sâu như sau:

41



Hình: Cây phân cấp khơng giới hạn độ sâu.

Bảng cầu nối được tạo ra có nội dung như sau:



Hình: Bảng cầu nối được tạo ra

Ở đây, mỗi dòng trong bảng cầu nối mơ tả một quan hệ cha con. Mỗi dòng cho

biết các thơng tin sau:

o manager_key: khoá đại diện của cha

o employee_key: khoá đại diện của con

o nest_level: độ sâu từ cha đến con.

o is_top/is_bottom: cho biết con có phải là nút gốc/nút lá của cây

hay khơng.

• Bảng dim_role_group và role_group_bridge được tạo ra để giải quyết

tình trạng dữ kiện đa trị (multivalued fact). Ở đây, mỗi một người dùng

ghé thăm một trang môn học nào đó, người dùng đó có thể đóng một

hoặc nhiều vai trò (role) trong. Chẳng hạn một người có thể vừa là sinh

viên, vừa là trưởng nhóm.

• Thuộc tính role_count cho biết số lượng vai trò trong nhóm đó. Thuộc

tính weighting_factor là trọng số, xác định mức độ tham gia của một vai

trò trong một nhóm vai trò nào đó. Thuộc tính này nhằm tránh tình trạng

thống kê kép. Được tính theo cơng thức sau:

weighting_factor = 1 / role_count



1.3.3. Đặc tả cơ sở dữ liệu

42







Các bảng chiều:

 dim_date: chiều ngày tháng, sử dụng đơn vị học kỳ, năm học



Tên thuộc tính

date_key

date_alternate_key

day_number_of_week

day_name_of_week

day_number_of_month

day_number_of_term

week_number_of_term

month_number_of_year

month_name_of_year

year_number

term_name

term_number

academic_year_name

academic_year

is_weekend

is_holiday

last_update

 dim_time: chiều thời gian



Tên thuộc tính

time_key

time_alternate_key

hour

minute

second





Kiểu giá trị

int

time

tinyint

tinyint

tinyint



Ý nghĩa

Khố chính (Khố đại diện)

Thời gian đầy đủ

Giờ

Phút

Giây



dim_user: Chiều người dùng



Tên thuộc tính

user_key



Kiểu giá trị

int



user_business_key

user_name

user_description

first_name

last_name

email

phone_1

phone_2

institution



varchar

varchar

text

varchar

varchar

varchar

varchar

varchar

varchar



Ý nghĩa

Khố chính (Khố đại diện)

Khóa tự nhiên của người dùng

trong CSDL chuẩn hóa

Tên đăng nhập của người dùng

Mô tả người dùng

Họ người dùng

Tên thật người dùng

Email người dùng

Số điện thoại người dùng

Số điện thoại người dùng

Tên cơ quan

43



department

address

city

last_update



varchar

varchar

varchar

timestamp



Tên phòng ban

Địa chỉ người dùng

Thành phố người dùng đang ở

Thời điểm sửa đổi cuối cùng



 dim_role: chiều vai trò người dùng



Tên thuộc tính

role_key



Kiểu giá trị

int



Ý nghĩa

Khố chính (Khố đại diện)



role_business_key



varchar



Khóa tự nhiên của vai trò trong

CSDL chuẩn hóa



role_name



varchar



Tên vai trò



role_description



text



Mơ tả vai trò



valid_from



date



Ngày bắt đầu có hiệu lực của vai

trò (ở trường hiện tại), dùng để

quản lý chiều thay đổi chậm loại 2



valid_to



date



Ngày kết thúc có hiệu lực của vai

trò (ở trường hiện tại), dùng để

quản lý chiều thay đổi chậm loại 2



version



tinyint



Phiên bản, dùng để quản lý chiều

thay đổi chậm loại 2



is_current



varchar



Vai trò ở trường hiện tại có đang

được sử dụng hay khơng, dùng để

quản lý chiều thay đổi chậm loại 2



last_update



datetime



Thời điểm sửa đổi cuối cùng



 dim_course: chiều học phần



Tên thuộc tính

course_key



Kiểu giá trị

int



Ý nghĩa

Khoá chính (Khố đại diện)



course_business_key



varchar



Khóa tự nhiên của khóa học trong

CSDL chuẩn hóa



course_code



varchar



Mã khóa học



course_name



varchar



Tên khóa học

44



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Thiết kế kho dữ liệu

Tải bản đầy đủ ngay(0 tr)

×