TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
BÁO CÁO MÔN HỌC
CƠ SỞ DỮ LIỆU NÂNG CAO
Sinh viên thực hiện: PHÙNG TRỌNG HIẾU
Lớp: Toán Tin 01-K60
MSSV: 20151366
HÀ NỘI - 2020
Mục lục
1
2
Cơ sở dữ liệu lớn
1
1.1
Cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1.1
Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1.2
Những vấn đề cần giải quyết . . . . . . . . . . . . . . . . . . . . .
2
1.2
Hệ quản trị cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3
Dữ liệu lớn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.3.1
Đặc trưng 5V của dữ liệu lớn . . . . . . . . . . . . . . . . . . . . .
3
1.3.2
Cơ sở dữ liệu NoSQL . . . . . . . . . . . . . . . . . . . . . . . . .
4
Cơ sở dữ liệu phân tán
6
2.1
Các khái niệm cơ bản . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2
Đánh giá cơ sở dữ liệu phân tán . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.1
Ưu điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.2
Nhược điểm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.3
Các vấn đề đối với cơ sở dữ liệu phân tán . . . . . . . . . . . . . .
7
Kiến trúc của một hệ cơ sở dữ liệu phân tán . . . . . . . . . . . . . . . . .
7
2.3.1
Các loại cơ sở dữ liệu phân tán . . . . . . . . . . . . . . . . . . . .
8
2.4
Tính trong suốt phân tán . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.5
12 luật của Date cho một HQTCSDL phân tán . . . . . . . . . . . . . . . .
8
2.3
3
Hệ quản trị cơ sở dữ liệu Oracle
10
3.1
Bài thực hành 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2
Bài thực hành 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2.1
Câu 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.2.2
Câu 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.2.3
Câu 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.2.4
Câu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.2.5
Câu 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
i
MỤC LỤC
3.2.6
3.3
3.4
3.5
3.6
Câu 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
Bài thực hành 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.3.1
Câu 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.3.2
Câu 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.3.3
Câu 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.3.4
Câu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.3.5
Câu 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.3.6
Câu 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
Bài thực hành 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.4.1
Câu 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.4.2
Câu 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.4.3
Câu 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.4.4
Câu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.4.5
Câu 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.4.6
Câu 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.4.7
Câu 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.4.8
Câu 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.4.9
Câu 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
Bài thực hành 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.5.1
Câu 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.5.2
Câu 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.5.3
Câu 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.5.4
Câu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.5.5
Câu 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
3.5.6
Câu 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.5.7
Câu 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.5.8
Câu 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.5.9
Câu 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.5.10 Câu 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Bài thực hành 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.6.1
Câu 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.6.2
Câu 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.6.3
Câu 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.6.4
Câu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
3.6.5
Câu 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
3.6.6
Câu 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
SVTH: Phùng Trọng Hiếu
ii
Toán Tin 01-K60
MỤC LỤC
3.6.7
Câu 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.7
Bài thực hành 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.8
Bài thực hành 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.8.1
Câu 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.8.2
Câu 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.8.3
Câu 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.8.4
Câu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
Bài thực hành 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
3.10 Bài thực hành 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.11 Bài thực hành 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.11.1 Câu 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.11.2 Câu 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3.11.3 Câu 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
3.11.4 Câu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
3.9
4
Bài tập kết thúc môn
62
4.1
Bài 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
4.1.1
Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
4.1.2
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.1.3
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.1.4
Bình luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Bài 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.2.1
Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.2.2
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
4.2.3
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
4.2.4
Bình luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
Bài 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
4.3.1
Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
4.3.2
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
4.3.3
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
4.3.4
Bình luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
Bài 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
4.4.1
Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
4.4.2
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
4.4.3
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
4.4.4
Bình luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
Bài 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
4.2
4.3
4.4
4.5
SVTH: Phùng Trọng Hiếu
iii
Toán Tin 01-K60
MỤC LỤC
4.5.1
Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
4.5.2
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
4.5.3
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
4.5.4
Bình luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
Bài 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
4.6.1
Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
4.6.2
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
4.6.3
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
4.6.4
Bình luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
Bài 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
4.7.1
Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
4.7.2
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
4.7.3
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102
4.7.4
Bình luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
Bài 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
4.8.1
Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
4.8.2
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
4.8.3
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
107
4.8.4
Bình luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
Bài 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
4.9.1
Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
4.9.2
Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
4.9.3
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
111
4.9.4
Bình luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
112
4.10 Bài 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
112
4.10.1 Đề bài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
112
4.10.2 Kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113
4.6
4.7
4.8
4.9
Tài liệu tham khảo
SVTH: Phùng Trọng Hiếu
115
iv
Toán Tin 01-K60
Chương 1
Cơ sở dữ liệu lớn
1.1
Cơ sở dữ liệu
Cơ sở dữ liệu (CSDL) là tập hợp các dữ liệu có cấu trúc và liên quan với nhau được lưu
trữ trên máy tính, được nhiều người sử dụng và được tổ chức theo một mô hình.
Trước khi CSDL ra đời, các đơn vị kinh tế, hành chính sự nghiệp, . . . thường sử dụng mô
hình hệ thống các tệp tin cổ điển. Các thông tin sẽ được tổ chức một cách riêng rẽ, phục vụ
cho một mục đích của một đơn vị hay một đơn vị con trực thuộc cụ thể.
Sự ra đời của CSDL và các sản phẩm có liên quan đã có những tác động to lớn đến việc
phát triển và vận hành máy tính điện tử. Ta có thể thấy sự xuất hiện của CSDL trong hầu
hết mọi lĩnh vực có liên quan và/hoặc có sử dụng đến máy tính như kinh doanh, giáo dục, y
tế, . . .
1.1.1
Ưu điểm
Việc sử dụng CSDL thay cho các phương pháp lưu trữ và quản lý thông tin truyền thống
cho ta những ưu điểm vượt trội sau:
– Sự trùng lặp thông tin sẽ được giảm xuống mức thấp nhất, nhờ đó đảm bảo được tính
nhất quán và toàn vẹn dữ liệu.
– Đảm bảo sự độc lập giữa dữ liệu và chương trình ứng dụng. Cho phép thay đổi cấu
trúc, dữ liệu trong cơ sở dữ liệu mà không cần thay đổi chương trình ứng dụng.
– Giúp trừu tượng hóa dữ liệu, làm ẩn đi các chi tiết về lưu trữ vật lý của dữ liệu, chỉ biểu
diễn cho người sử dụng mức khái niệm của cơ sở dữ liệu.
– Cung cấp nhiều khung nhìn khác nhau cho các đối tượng người dùng khác nhau. Đảm
bảo dữ liệu có thể được truy xuất theo nhiều cách khác nhau.
1
CHƯƠNG 1. CƠ SỞ DỮ LIỆU LỚN
– Hỗ trợ đa người dùng, cho phép chia sẻ thông tin cho nhiều người sử dụng và nhiều
ứng dụng khác nhau.
1.1.2
Những vấn đề cần giải quyết
Bên cạnh những ưu điểm không thể chối cãi của CSDL, ta có một loạt các vấn đề nảy
sinh cần phải được giải quyết như:
– Tính chủ quyền của dữ liệu: Chủ quyền của CSDL có thể bị xâm phạm do tính chất
chia sẻ của nó.
– Tính bảo mật và quyền khai thác thông tin của người sử dụng: Do có nhiều người được
phép khai thác CSDL nên cần thiết phải có một cơ chế bảo mật và phân quyền hạn
khai thác CSDL.
– Tranh chấp dữ liệu: Nhiều người được cho phép đồng thời truy cập vào CSDL với
những mục đích khác nhau như: xem, thêm, xóa, sửa dữ liệu. Cần phải có cơ chế ưu
tiên truy cập dữ liệu hoặc giải quyết tình trạng xung đột trong quá trình khai thác cạnh
tranh. Cơ chế ưu tiên có thể được thực hiện bằng cơ chế cấp quyền ưu tiên cho từng
người khai thác.
– Đảm bảo dữ liệu khi có sự cố: Việc quản lý dữ liệu tập trung có thể làm tăng nguy cơ
mất mát hoặc sai lệch thông tin khi có sự cố xảy ra như mất điện đột xuất hoặc đĩa lưu
trữ bị hỏng. Cần phải có một cơ chế khôi phục dữ liệu khi có sự cố xảy ra.
1.2
Hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (HQTCSDL) là hệ thống được thiết kế nhằm mục đích quản lý
một lượng dữ liệu nhất định một cách tự động và có trật tự.
Với sự phát triển như vũ bão của máy tính điện tử cùng các công nghệ, phần mềm như
hiện nay, nhiều quy trình, công đoạn hay các hệ thống quản trị đều được mã hóa và vận hành
bởi các thiết bị, phần mềm nhằm giúp cho các đối tượng sử dụng đạt được hiệu suất làm việc
cao nhất. Trên cơ sở đó, các hệ quản trị dữ liệu ra đời đóng vai trò quan trọng trong xử lý và
kiểm soát các nguồn thông tin, dữ liệu đơn lẻ. Ta có thể liệt kê một vài chức năng cơ bản của
HQTCSDL như sau:
– Cung cấp môi trường tạo lập cơ sở dữ liệu: Hệ quản trị CSDL đóng vai trò cung cấp
cho người dùng một ngôn ngữ định nghĩa dữ liệu để mô tả, khai báo kiểu dữ liệu, các
cấu trúc dữ liệu.
SVTH: Phùng Trọng Hiếu
2
Toán Tin 01-K60
CHƯƠNG 1. CƠ SỞ DỮ LIỆU LỚN
– Cung cấp cách cập nhật và khai thác dữ liệu: HQTCSDL cung cấp cho người dùng
ngôn ngữ thao tác với dữ liệu để diễn tả các yêu cầu, các thao tác cập nhật và khai thác
cơ sở dữ liệu. Các thao tác dữ liệu bao gồm: cập nhật (nhập, sửa, xóa dữ liệu), khai
thác (tìm kiếm, kết xuất dữ liệu).
– Cung cấp các công cụ kiểm soát, điều khiển các truy cập vào cơ sở dữ liệu: Nhằm đảm
bảo thực hiện một số yêu cầu cơ bản của HQTCSDL, bao gồm: (1) Đảm bảo an ninh,
phát hiện và ngăn chặn các truy cập bất hợp pháp. (2) Duy trì tính nhất quán của dữ
liệu. (3) Tổ chức và điều khiển các truy cập. (4) Khôi phục cơ sở dữ liệu khi có sự cố
về phần cứng hay phần mềm. (5) Quản lí các mô tả dữ liệu.
1.3
Dữ liệu lớn
Dữ liệu lớn (Big Data) là thuật ngữ dùng để chỉ một tập hợp dữ liệu rất lớn và rất phức
tạp đến nỗi những công cụ, ứng dụng xử lý dữ liệu truyền thống không thể nào đảm đương
được. Tuy nhiên, dữ liệu lớn lại chứa trong mình rất nhiều thông tin quý giá mà nếu trích
xuất thành công, nó sẽ giúp ích rất nhiều trong vô số các lĩnh vực, công việc như kinh doanh,
nghiên cứu khoa học, dự đoán các dịch bệnh sắp phát sinh và thậm chí là cả việc xác định
điều kiện giao thông theo thời gian thực. Chính vì thế, những dữ liệu này phải được thu thập,
tổ chức, lưu trữ, tìm kiếm, chia sẻ theo một cách khác so với bình thường.
1.3.1
Đặc trưng 5V của dữ liệu lớn
Dữ liệu lớn có 5 đặc trưng cơ bản sau:
1. Khối lượng dữ liệu (Volume): Đây là đặc điểm tiêu biểu nhất của dữ liệu lớn, khối
lượng dữ liệu rất lớn. Kích cỡ của Big data đang từng ngày tăng lên, và tính đến năm
2012 thì nó có thể nằm trong khoảng vài chục terabyte cho đến nhiều petabyte (1
petabyte = 1024 terabyte) chỉ cho một tập hợp dữ liệu. Dữ liệu truyền thống có thể lưu
trữ trên các thiết bị đĩa mềm, đĩa cứng. Nhưng với dữ liệu lớn chúng ta sẽ sử dụng công
nghệ “đám mây” mới đáp ứng khả năng lưu trữ được dữ liệu lớn.
2. Tốc độ (Velocity): Tốc độ có thể hiểu theo 2 khía cạnh: (a) Khối lượng dữ liệu gia tăng
rất nhanh (mỗi giây có tới 72.9 triệu các yêu cầu truy cập tìm kiếm trên web bán hàng
của Amazon); (b) Xử lý dữ liệu nhanh ở mức thời gian thực (real-time), có nghĩa dữ liệu
được xử lý ngay tức thời ngay sau khi chúng phát sinh (tính đến bằng mili giây). Các
ứng dụng phổ biến trên lĩnh vực Internet, Tài chính, Ngân hàng, Hàng không, Quân sự,
Y tế – Sức khỏe như hiện nay phần lớn dữ liệu lớn được xử lý real-time. Công nghệ xử
SVTH: Phùng Trọng Hiếu
3
Toán Tin 01-K60
CHƯƠNG 1. CƠ SỞ DỮ LIỆU LỚN
lý dữ liệu lớn ngày nay đã cho phép chúng ta xử lý tức thì trước khi chúng được lưu trữ
vào cơ sở dữ liệu.
3. Đa dạng (Variety): Đối với dữ liệu truyền thống chúng ta hay nói đến dữ liệu có cấu
trúc, thì ngày nay hơn 80% dữ liệu được sinh ra là phi cấu trúc (tài liệu, blog, hình ảnh,
video, bài hát, dữ liệu từ thiết bị cảm biến vật lý, thiết bị chăm sóc sức khỏe . . . ). Big
data cho phép liên kết và phân tích nhiều dạng dữ liệu khác nhau. Ví dụ, với các bình
luận của một nhóm người dùng nào đó trên Facebook với thông tin video được chia sẻ
từ Youtube và Twitter.
4. Độ tin cậy/chính xác (Veracity): Một trong những tính chất phức tạp nhất của Dữ liệu
lớn là độ tin cậy/chính xác của dữ liệu. Với xu hướng phương tiện truyền thông xã hội
(Social Media) và mạng xã hội (Social Network) ngày nay và sự gia tăng mạnh mẽ tính
tương tác và chia sẻ của người dùng Mobile làm cho bức tranh xác định về độ tin cậy
và chính xác của dữ liệu ngày một khó khăn hơn. Bài toán phân tích và loại bỏ dữ liệu
thiếu chính xác và nhiễu đang là tính chất quan trọng của Big data.
5. Giá trị (Value): Giá trị là đặc điểm quan trọng nhất của dữ liệu lớn, vì khi bắt đầu triển
khai xây dựng dữ liệu lớn thì việc đầu tiên chúng ta cần phải làm đó là xác định được
giá trị của thông tin mang lại như thế nào, khi đó chúng ta mới có quyết định có nên
triển khai dữ liệu lớn hay không. Nếu chúng ta có dữ liệu lớn mà chỉ nhận được 1%
lợi ích từ nó, thì không nên đầu tư phát triển dữ liệu lớn. Kết quả dự báo chính xác thể
hiện rõ nét nhất về giá trị của dữ liệu lớn mang lại. Ví dụ, từ khối dữ liệu phát sinh
trong quá trình khám, chữa bệnh sẽ giúp dự báo về sức khỏe được chính xác hơn, sẽ
giảm được chi phí điều trị và các chi phí liên quan đến y tế.
1.3.2
Cơ sở dữ liệu NoSQL
CSDL NoSQL là Cơ sở dữ liệu được xây dựng dành riêng cho mô hình dữ liệu và có sơ
đồ linh hoạt để xây dựng các ứng dụng hiện đại. CSDL NoSQL được công nhận rộng rãi vì
khả năng dễ phát triển, chức năng cũng như hiệu năng ở quy mô lớn. Các Cơ sở dữ liệu này
sử dụng nhiều mô hình dữ liệu đa dạng, trong đó có văn bản, đồ thị, khóa – giá trị, trong bộ
nhớ và tìm kiếm.
Ưu điểm
– Linh hoạt: CSDL NoSQL thường cung cấp các sơ đồ linh hoạt giúp công đoạn phát
triển nhanh hơn và có khả năng lặp lại cao hơn. Mô hình dữ liệu linh hoạt biến CSDL
SVTH: Phùng Trọng Hiếu
4
Toán Tin 01-K60
CHƯƠNG 1. CƠ SỞ DỮ LIỆU LỚN
NoSQL thành lựa chọn lý tưởng cho dữ liệu không được tổ chức thành cấu trúc hoặc
có cấu trúc chưa hoàn chỉnh.
– Khả năng mở rộng: CSDL NoSQL thường được thiết kế để mở rộng bằng cách sử dụng
các cụm phần cứng được phân phối thay vì mở rộng bằng cách bổ sung máy chủ mạnh
và tốn kém.
– Hiệu năng cao: CSDL NoSQL được tối ưu hóa theo mô hình dữ liệu (ví dụ như văn
bản, khóa–giá trị và đồ thị) và các mẫu truy cập giúp tăng hiệu năng cao hơn so với
việc cố gắng đạt được mức độ chức năng tương tự bằng cơ sở dữ liệu quan hệ.
– Cực kỳ thiết thực: CSDL NoSQL cung cấp các API và kiểu dữ liệu cực kỳ thiết thực
được xây dựng riêng cho từng mô hình dữ liệu tương ứng.
Nhược điểm
– Hỗ trợ không đồng đều cho các doanh nghiệp: Trong khi các nhà cung cấp chủ chốt
của các RDBMS như SQL Server, Oracle, IBM, . . . thường đưa ra sự hỗ trợ tốt cho
khách hàng thì các nhà cung cấp nguồn mở mới thành lập không thể được mong đợi sẽ
cung cấp hỗ tốt hơn.
– Chưa đủ “chín” cho các doanh nghiệp: Dù chúng đã được triển khai tại một số công
ty lớn thì các CSDL NoSQL vẫn đối mặt với một vấn đề về sự tin cậy chính với nhiều
doanh nghiệp. Vấn đề lớn của NoSQL là thiếu về độ chín muồi và các vấn đề về tính
không ổn định, trong khi đó tính chín muồi, hỗ trợ đầy đủ chức năng và tính ổn định
của các RDBMS được thiết lập đã từ lâu.
– Những hạn chế về tri thức nghiệp vụ: Các CSDL NoSQL không có nhiều sự đeo bám
tới các công cụ BI thường được sử dụng, trong khi những yêu cầu và phân tích hiện đại
đơn giản nhất thì cũng liên quan khá nhiều tới sự tinh thông về lập trình.
– Thiếu sự tinh thông: Tính mới mẻ của NoSQL có nghĩa là không có nhiều lập trình
viên và người quản trị biết công nghệ này. Như vậy sẽ rất khó khăn cho các công ty tìm
người có hiểu biết phù hợp.
– Những vấn đề về tính tương thích: Mỗi CSDL NoSQL có các giao diện lập trình ứng
dụng API riêng, các giao diện truy vấn riêng . . . Sự thiếu hụt các tiêu chuẩn sẽ gây ra
rất nhiều khó khăn khi chuyển từ một nhà cung cấp này sang một nhà cung cấp khác
nếu có nhu cầu.
SVTH: Phùng Trọng Hiếu
5
Toán Tin 01-K60
Chương 2
Cơ sở dữ liệu phân tán
2.1
Các khái niệm cơ bản
CSDL phân tán (Distributed Database — DDB) là một tuyển tập dữ liệu có quan hệ logic
với nhau, được phân bố trên các máy tính của một mạng máy tính.
Hệ quản trị CSDL phân tán là hệ thống phần mềm cho phép quản lý CSDL phân tán và
cung cấp các cơ chế truy xuất đảm bảo tính trong suốt (transparent) về sự phân tán đối với
người dùng.
2.2
2.2.1
Đánh giá cơ sở dữ liệu phân tán
Ưu điểm
– Phù hợp với cấu trúc của tổ chức
– Nâng cao khả năng chia sẻ và tính tự trị địa phương
– Nâng cao tính sẵn sàng
– Nâng cao tính tin cậy
– Nâng cao hiệu năng
– Dễ mở rộng
2.2.2
Nhược điểm
– Phức tạp
6
CHƯƠNG 2. CƠ SỞ DỮ LIỆU PHÂN TÁN
– Thiết kế CSDL phức tạp hơn
– Khó điều khiển tính nhất quán dữ liệu
– Khó phát hiện và khử lỗi
– Giá thành
– Bảo mật
– Thiếu chuẩn mực
– Thiếu kinh nghiệm
2.2.3
Các vấn đề đối với cơ sở dữ liệu phân tán
– Phân đoạn (Fragmentation): Các quan hệ có thể được chia thành một số quan hệ con
(sau đó phân bố trên các nút của mạng máy tính).
– Định vị (Allocation): Mỗi đoạn được lưu trữ tại nút “tối ưu” nhất về mặt phân bố.
– Nhân bản (Replication): Mỗi đoạn có thể có nhiều bản sao được duy trì trên một số
nút.
2.3
Kiến trúc của một hệ cơ sở dữ liệu phân tán
Do sự đa dạng của CSDL phân tán, không có kiến trúc nào được công nhận tương đương
với kiến trúc 3 mức ANSI/SPARC [1] được đưa ra vào năm 1975.
Một kiến trúc tham khảo bao gồm:
– Tập các lược đồ ngoài toàn cục (global external schemas).
– Lược đồ khái niệm toàn cục (Global conceptual schema — GCS).
– Lược đồ phân đoạn (Fragmentation schema) và lược đồ định vị (allocation schema).
– Tập các lược đồ cho mỗi hệ CSDL cục bộ tuân theo tiêu chuẩn 3 mức ANSI/SPARC.
SVTH: Phùng Trọng Hiếu
7
Toán Tin 01-K60
CHƯƠNG 2. CƠ SỞ DỮ LIỆU PHÂN TÁN
2.3.1
Các loại cơ sở dữ liệu phân tán
CSDL phân tán thuần nhất
– Tất cả các nút cùng sử dụng một loại HQTCSDL.
– Thuận lợi cho việc tăng trưởng và cho phép nâng cao hiệu năng.
– Có được bằng cách chia một CSDL thành một tập CSDL cục bộ.
CSDL phân tán hỗn tạp
– Các nút có thể thực hiện trên các HQTCSDL khác nhau.
– Xảy ra khi các nút đã cài đặt CSDL riêng.
– Có được bằng cách tích hợp các CSDL cục bộ đã có.
2.4
Tính trong suốt phân tán
Có tổng cộng 3 mức độ về tính trong suốt của một hệ CSDL phân tán:
1. Tính trong suốt phân đoạn (fragmentation transparency): Mức cao nhất của tính trong
suốt; người dùng cuối và người lập trình không cần biết về sự phân tán của CSDL
(không biết tên đoạn và vị trí phân bố các đoạn).
2. Tính trong suốt định vị (location transparency): người dùng cuối hoặc người lập trình
biết CSDL phân chia thành các đoạn, tên của các đoạn nhưng không biết vị trí phân bố
của các đoạn.
3. Tính trong suốt đối với ánh xạ địa phương (local mapping transparency): người dùng
cuối hoặc người lập trình biết tên các đoạn và vị trí của các đoạn.
2.5
12 luật của Date cho một HQTCSDL phân tán
1. Tính tự trị địa phương (Local Autonomy)
2. Không đặt toàn bộ sự tin cậy vào một nút trung tâm
3. Hoạt động liên tục (Tính độc lập đối với các lỗi)
4. Độc lập đối với sự định vị (Location Independence)
SVTH: Phùng Trọng Hiếu
8
Toán Tin 01-K60
CHƯƠNG 2. CƠ SỞ DỮ LIỆU PHÂN TÁN
5. Độc lập đối với sự phân đoạn (Fragmentation Independence)
6. Độc lập đối với việc nhân bản (Replication Independence) Xử lý truy vấn phân tán
7. (Distributed Query Processing)
8. Xử lý giao tác phân tán (Distributed Transaction Processing)
9. Độc lập đối với phần cứng
10. Độc lập đối với hệ điều hành
11. Độc lập đối với mạng máy tính
12. Độc lập đối với cơ sở dữ liệu
Nguyên lý cơ bản: Đối với người dùng, một hệ thống phân tán được thấy như là một hệ
không phân tán.
SVTH: Phùng Trọng Hiếu
9
Toán Tin 01-K60
Chương 3
Hệ quản trị cơ sở dữ liệu Oracle
3.1
Bài thực hành 1
Không có câu hỏi.
3.2
3.2.1
Bài thực hành 2
Câu 1
Đề bài
Create the DEPT table based on the following table instance chart. Place the syntax in
a script called lab_09_01.sql, then execute the statement in the script to create the table.
Confirm that the table is created.
Kết quả chạy
Hình 3.1: Kết quả chạy của câu 1 trong bài thực hành 2.
Mã nguồn
10
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
1 CREATE TABLE d e p t
2
( i d NUMBER( 7 ) CONSTRAINT
3
d e p t _ d e p a r t m e n t _ i d PRIMARY KEY
4
, name VARCHAR2( 2 5 )
5
);
Bình luận
Bảng đã được tạo thành công.
3.2.2
Câu 2
Đề bài
Populate the DEPT table with data from the DEPARTMENTS table. Include only columns
that you need.
Kết quả chạy
Hình 3.2: Kết quả chạy của câu 2 trong bài thực hành 2.
Mã nguồn
1 INSERT INTO d e p t
2 SELECT d e p a r t m e n t _ i d , d e p a r t m e n t _ n a m e
3 FROM d e p a r t m e n t s ;
Bình luận
Dữ liệu trong bảng DEPARTMENTS đã được thêm vào bảng DEPT thành công.
3.2.3
Câu 3
Đề bài
Create the EMP table based on the following table instance chart. Place the syntax in a
script called lab_09_03.sql, and then execute the statement in the script to create the table.
Confirm that the table is created.
SVTH: Phùng Trọng Hiếu
11
Toán Tin 01-K60
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
Kết quả chạy
Hình 3.3: Kết quả chạy của câu 3 trong bài thực hành 2.
Mã nguồn
1 CREATE TABLE emp
2
( i d NUMBER( 7 ) CONSTRAINT
3
e m p _ e m p l o y e e _ i d PRIMARY KEY
4
, l a s t _ n a m e VARCHAR2( 2 5 )
5
, f i r s t _ n a m e VARCHAR2( 2 5 )
6
, d e p t _ i d NUMBER( 7 ) CONSTRAINT e m p d e p t _ f k 1
7
REFERENCES d e p t ( i d )
8
);
Bình luận
Bảng đã được tạo thành công.
3.2.4
Câu 4
Đề bài
Create the EMPLOYEES2 table based on the structure of the EMPLOYEES table. Include only the EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY, and DEPARTMENT_ID columns. Name the columns in your new table ID, FIRST_NAME, LAST_NAME,
SALARY, and DEPT_ID, respectively.
SVTH: Phùng Trọng Hiếu
12
Toán Tin 01-K60
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
Kết quả chạy
Hình 3.4: Kết quả chạy của câu 4 trong bài thực hành 2.
Mã nguồn
1 CREATE TABLE e m p l o y e e s 2 AS
2 SELECT e m p l o y e e _ i d i d ,
3
first_name ,
4
last_name ,
5
salary ,
6
department_id dept_id
7 FROM e m p l o y e e s ;
Bình luận
Bảng đã được tạo và thêm dữ liệu thành công.
3.2.5
Câu 5
Đề bài
Drop the EMP table.
Kết quả chạy
Hình 3.5: Kết quả chạy của câu 5 trong bài thực hành 2.
Mã nguồn
SVTH: Phùng Trọng Hiếu
13
Toán Tin 01-K60
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
1 DROP TABLE e m p l o y e e s 2 ;
Bình luận
Bảng đã được xóa thành công.
3.2.6
Câu 6
Đề bài
Create a nonunique index on the DEPT_ID column in the DEPT table.
Kết quả chạy
Hình 3.6: Kết quả chạy của câu 6 trong bài thực hành 2.
Mã nguồn
1 CREATE INDEX e m p _ d e p t _ i d _ i d x ON
2
emp ( d e p t _ i d ) ;
Bình luận
Index đã được tạo thành công.
3.3
3.3.1
Bài thực hành 3
Câu 1
Đề bài
The staff in the HR department wants to hide some of the data in the EMPLOYEES
table. They want a view called EMPLOYEES_VU based on the employee numbers, employee
names, and department numbers from the EMPLOYEES table. They want the heading for
the employee name to be EMPLOYEE.
SVTH: Phùng Trọng Hiếu
14
Toán Tin 01-K60
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
Kết quả chạy
Hình 3.7: Kết quả chạy của câu 1 trong bài thực hành 3.
Mã nguồn
1 CREATE VIEW e m p l o y e e s _ v u
2 AS
3 SELECT e m p l o y e e _ i d , l a s t _ n a m e employee , d e p a r t m e n t _ i d
4 FROM e m p l o y e e s ;
Bình luận
View đã được tạo thành công.
3.3.2
Câu 2
Đề bài
Confirm that the view works. Display the contents of the EMPLOYEES_VU view.
SVTH: Phùng Trọng Hiếu
15
Toán Tin 01-K60
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
Kết quả chạy
Hình 3.8: Kết quả chạy của câu 2 trong bài thực hành 3.
Mã nguồn
1 SELECT ∗ FROM e m p l o y e e s _ v u ;
Bình luận
Kết quả trả về cho thấy đã tạo được View thỏa mãn yêu cầu của câu 1.
3.3.3
Câu 3
Đề bài
Using your EMPLOYEES_VU view, write a query for the HR department to display all
employee names and department numbers.
SVTH: Phùng Trọng Hiếu
16
Toán Tin 01-K60
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
Kết quả chạy
Hình 3.9: Kết quả chạy của câu 3 trong bài thực hành 3.
Mã nguồn
1 SELECT employee , d e p a r t m e n t _ i d
2 FROM e m p l o y e e s _ v u ;
Bình luận
Câu lệnh truy vấn được thực hiện thành công, trả về kết quả mong muốn.
3.3.4
Câu 4
Đề bài
• Department 50 needs access to its employee data. Create a view named DEPT50 that
contains the employee numbers, employee last names, and department numbers for all
employees in department 50. You have been asked to label the view columns EMPNO,
EMPLOYEE, and DEPTNO. For security purposes, do not allow an employee to be
reassigned to another department through the view.
• Display the structure and contents of the DEPT50 view.
SVTH: Phùng Trọng Hiếu
17
Toán Tin 01-K60
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
• Test your view. Attempt to reassign Mohammed to department 80.
Kết quả chạy
Hình 3.10: Kết quả chạy của câu 4 trong bài thực hành 3.
Mã nguồn
1 CREATE OR REPLACE VIEW d e p t 5 0
2 AS
3 SELECT e m p l o y e e _ i d empno , l a s t _ n a m e employee , d e p a r t m e n t _ i d d e p t n o
4 FROM e m p l o y e e s
5 WHERE d e p a r t m e n t _ i d = 50
6 WITH READ ONLY;
7
8 SELECT ∗ FROM d e p t 5 0 ;
Bình luận
View được tạo thành công. Gặp lỗi khi cố gắng thay đổi phòng làm việc của Mohammed
thông qua View vừa tạo.
SVTH: Phùng Trọng Hiếu
18
Toán Tin 01-K60
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
3.3.5
Câu 5
Đề bài
• You need a sequence that can be used with the primary key column of the DEPT table.
The sequence should start at 200 and have a maximum value of 1,000. Have your
sequence increment by 10. Name the sequence DEPT_ID_SEQ.
• To test your sequence, write a script to insert two rows in the DEPT table. Be sure to
use the sequence that you created for the ID column. Add two departments: Education
and Administration. Confirm your additions. Run the commands in your script.
Kết quả chạy
Hình 3.11: Kết quả chạy của câu 5 ý 1 trong bài thực hành 3.
SVTH: Phùng Trọng Hiếu
19
Toán Tin 01-K60
CHƯƠNG 3. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
Hình 3.12: Kết quả chạy của câu 5 ý 2 trong bài thực hành 3.
Mã nguồn
1 CREATE SEQUENCE d e p t _ i d _ s e q
2 INCREMENT BY 10
3 START WITH 280
4 MAXVALUE 1 0 0 0 ;
5
6 −−DROP SEQUENCE d e p t _ i d _ s e q
7
8 INSERT INTO d e p t ( i d , name )
9 VALUES ( d e p t _ i d _ s e q . n e x t v a l , ’ E d u c a t i o n ’ ) ;
10 INSERT INTO d e p t ( i d , name )
11 VALUES ( d e p t _ i d _ s e q . n e x t v a l , ’ A d m i n i s t r a t i o n ’ ) ;
Bình luận
Sequence được tạo thành công.
3.3.6
Câu 6
Đề bài
Create a synonym for your EMPLOYEES table. Call it EMP.
SVTH: Phùng Trọng Hiếu
20
Toán Tin 01-K60