1
Tổng quan về DBMS
1.1
Dữ liệu
1.1.1
Dữ liệu là gì?
Theo wiki, trong lĩnh vực máy tính, dữ liệu được hiểu là:
– Một chuỗi gồm một hoặc nhiều kí hiệu (sequence of one or
more symbols)
– Được biểu diễn bằng hệ số nhị phân (0 và 1)
– Cần được thông dịch để trở thành thông tin
– Biểu diễn số lượng, tính chất hoặc chỉ dẫn hoạt động; được
máy tính lưu trữ trên các ổ đĩa
– Được tổ chức trong nhiều loại cấu trúc dữ liệu khác nhau,
như mảng, đồ thị và đối tượng.
Tháp xử lý thông tin: con người và máy tính giống nhau ở chỗ luôn xử lý dữ liệu (data) để có thông tin (information), tri thức (knowledge) và ra quyết định (wisdom).
Dữ liệu bên ngoài có thể ở dạng âm thanh, hình ảnh, số, văn
bản, hình vẽ; tuy nhiên khi lưu trong bộ nhớ máy tính sẽ luôn ở dạng nhị phân. Xem
hình minh họa,
[Nguồn: https://homepage.cs.uri.edu/faculty/wolfe/book/Readings/Reading02.htm]
1.1.2 Xem và đọc thêm
– Dùng các từ khóa sau để tìm kiếm trên mạng và đọc thêm: dữ
liệu, data,
– Dữ liệu: https://vi.wikipedia.org/wiki/D%E1%BB%AF_li%E1%BB%87u
– Data: https://en.wikipedia.org/wiki/Data
1.1.3 Bài tập và thực hành
Bài tập 1. Bạn hãy chuyển các dữ liệu dạng văn bản ở bảng
sau sang dạng nhị phân và thập phân.
Dữ liệu dạng văn bản |
Dữ liệu dạng nhị phân |
Giá trị hệ thập phân |
‘A’ |
|
|
‘a’ |
|
|
‘B’ |
|
|
‘b’ |
|
|
‘0’ |
|
|
‘1’ |
|
|
Hi Teo! |
|
|
[Có thể sử dụng công cụ sau: http://www.unit-conversion.info/texttools/convert-text-to-binary/]
1.1.4 Câu hỏi ôn tập
Câu 1. Dữ liệu dạng nhị phân của kí tự “B” là?
A. 00100010
B. 01000001
C. 01000010
D. 01000110
Câu 2. Theo “Tháp xử lý thông tin”, quá trình xử lý thông
tin được thực hiện theo thứ tự nào?
A. Data > Knowledge > Information > Wisdom
B. Information > Data > Knowledge > Wisdom
C. Data > Information > Wisdom > Knowledge
D. Data > Information > Knowledge > Wisdom
Đáp án: 1 (C), 2 (D)
1.2 Cơ sở dữ liệu
1.2.1 Cơ sở dữ liệu là gì?
Bạn cứ tưởng tượng, nếu cứ lưu một số lượng rất lớn các tập tin hình ảnh, âm thanh, một cách rời rạc trong đĩa cứng; hoặc lưu (không có tổ chức) danh sách hàng trăm ngàn các mặt hàng chưa bán, đã bán; giá cả từng mặt hàng, danh sách khách hàng trong các tập tin văn bản thì sẽ khó khăn tới mức nào khi bạn cần tìm kiếm, thêm, xóa, sửa từng đối tượng trong tập hợp hàng trăm, hàng ngàn đối tượng như vậy. Đó chính là lúc bạn cần nghĩ tới một giải pháp để tổ chức các đối tượng dữ liệu, giúp bạn có thể tổ chức và khai thác dữ liệu một cách tiện lợi; giải pháp đó có tên là Cơ sở dữ liệu.
Cơ sở dữ liệu là một tập hợp thông tin có tổ chức (organized). Các
thông tin này được duy trì dưới dạng một tập hợp các tập tin trong hệ điều
hành, hoặc được lưu trữ trong các hệ quản trị cơ sở dữ liệu. Cơ sở dữ liệu phản
ánh một phần của thế giới thật.
Cơ sở dữ liệu gồm
2 thành phần quan trọng: dữ liệu và cách tổ chức của dữ liệu. Việc lưu trữ, tổ
chức quản lý và truy cập là vai trò của các hệ quản trị cơ sở dữ liệu (các phần
mềm quản lý cơ sở dữ liệu).
Ưu điểm của cơ sở dữ liệu:
– Giúp người dùng dễ dàng truy cập, quản lý, khai thác và cập
nhật thông tin.
– Giảm sự trùng lặp thông tin xuống mức thấp nhất
– Có thể truy xuất thông tin theo nhiều cách
– Cho phép nhiều người cùng sử dụng một lúc
Có nhiều loại cơ sở dữ liệu, ví dụ:
Loại cơ sở dữ liệu |
Đặc điểm |
Cơ
sở dữ liệu dạng tập tin |
Dữ
liệu được lưu trữ dưới dạng các tâp tin (text, ascii, .dbf) |
Cơ
sở dữ liệu quan hệ |
Dữ
liệu được lưu trữ trong các bảng dữ liệu gọi là các thực thể, giữa các thực
thể này có mối liên hệ với nhau gọi là các quan hệ, mỗi quan hệ có các thuộc
tính, trong đó có một thuộc tính là khóa chính. Các hệ quản trị hỗ trợ cơ sở
dữ liệu quan hệ như: MS SQL server, Oracle, MySQL. |
Cơ
sở dữ liệu hướng đối tượng |
Dữ
liệu cũng được lưu trữ trong các bảng dữ liệu, nhưng các bảng có bổ sung thêm
các tính năng hướng đối tượng như lưu trữ thêm các hành vi, nhằm thể hiện
hành vi của đối tượng. Mỗi bảng xem như một lớp dữ liệu, mỗi dòng dữ liệu
trong bảng là một đối tượng. Các hệ quản trị có hỗ trợ cơ sở dữ liệu hướng
đối tượng như: MS SQL server, Oracle, PostgreSQL (viết tắt Postgres). |
Cơ
sở dữ liệu bán cấu trúc |
Dữ
liệu được lưu dưới dạng XML, với định dạng này, thông tin mô tả về đối tượng
thể hiện trong các thẻ (tag). Ngoài ra, dữ liệu còn được lưu dưới dạng JSON, BSON. |
Ví dụ dữ liệu trong cơ sở dữ liệu dạng tập tin
Danh sách câu hỏi, tập tin
question.txt
id|question
01|Bạn cảm thấy
dễ chịu nhất khi nào?
02|Bạn thường
bước đi:
03|Khi nói
chuyện với người khác, bạn:
04|Khi nghỉ
ngơi, bạn ngồi như thế nào?
05|Khi ngạc
nhiên thích thú, bạn phản ứng thế nào?
06|Khi đi dự
tiệc, bạn:
07|Bạn đang làm
việc và tập trung cao độ thì bị cắt ngang. Bạn sẽ:
08|Bạn thích
màu nào nhất trong các màu dưới đây?
09|Khi đi ngủ,
lúc sắp ngủ, bạn nằm trong tư thế nào?
10|Bạn thường mơ mình:
Ví dụ dữ liệu trong cơ sở dữ liệu quan hệ
loai_mon_an (Loại
món ăn)
# |
Name |
Type |
Collation |
Attributes |
Null |
Default |
Extra |
1 |
ma_loai |
int(11) |
|
|
No |
None |
AUTO_INCREMENT |
2 |
ten_loai |
varchar(200) |
utf8_unicode_ci |
|
No |
None |
|
3 |
mo_ta |
varchar(500) |
utf8_unicode_ci |
|
No |
None |
|
4 |
hinh |
varchar(100) |
utf8_unicode_ci |
|
No |
None |
|
Ví dụ dữ liệu trong cơ sở dữ liệu hướng đối tượng (object oriented database)
Ví dụ dữ liệu trong cơ sở dữ liệu bán cấu trúc dạng XML
<!-- question: 335 -->
<question type="truefalse">
<name>
<text>PRJ016</text>
</name>
<questiontext format="html">
<text><![CDATA[You can use the JSTL forTokens tag to loop through items in a delimited string.<p><br></p>]]></text>
</questiontext>
<generalfeedback format="html">
<text></text>
</generalfeedback>
<defaultgrade>1.0000000</defaultgrade>
<penalty>1.0000000</penalty>
<hidden>0</hidden>
<idnumber></idnumber>
<answer fraction="100" format="moodle_auto_format">
<text>true</text>
<feedback format="html">
<text></text>
</feedback>
</answer>
<answer fraction="0" format="moodle_auto_format">
<text>false</text>
<feedback format="html">
<text></text>
</feedback>
</answer>
</question>
Ví dụ, dữ liệu bán cấu trúc dạng JSON
{
"tuoi": 20,
"diem": 8,
"monHoc": [
"Toan", "tiengAnh", "lapTrinh"],
"totNghiep":
null,
"lienLac":
{
"email":
"teo@gmail.com",
"phone":
"0999.987.123"
}
}
1.1.1
Xem và đọc thêm
Object-oriented database (OOD): https://www.youtube.com/watch?v=-_L7f8OObG4&t=314s
1.2.2
Bài tập và thực hành
Mục đích: làm quen với việc tạo một số loại dữ liệu.
Bài tập 1: Thực hiện các công việc sau:
– Xem clip https://www.youtube.com/watch?v=NJknBJDwIf8&list=PLv6GftO355AsZFXlWLKob6tMsWZa4VCY1&index=32
– Thiết kế dữ liệu cho ứng dụng “Trắc nghiệm tính cách”, gồm
3 tập tin dữ liệu questions.txt để chứa
câu hỏi; options.txt để chứa các tùy
chọn trả lời cho mỗi câu hỏi; và result.txt
để chứa kết quả trả về ứng với các lựa chọn.
– Qua việc thiết kế và tạo dữ liệu ở bước trên, bạn hãy chỉ
ra: đâu là dữ liệu? đâu là cách thức tổ chức dữ liệu (mối liên hệ giữa các tập
tin, giữa các thành phần trong dữ liệu)? đâu là công cụ được sử dụng để lưu trữ,
quản lý và khai thác dữ liệu.
Bài tập 2: Đọc bài viết https://legiacong.blogspot.com/2020/10/json-1-lam-quen-voi-json.html
Tạo tập tin data.json,
chứa thông tin của một sinh viên.
Bài tập 3. Xem clip https://www.youtube.com/watch?v=0EhtyNsLOVY
Tạo tập tin data.xml,
chứa thông tin gửi về của các bộ cảm biến (sensor). Tham khảo Lab 10 (https://legiacong.blogspot.com/2021/03/web-services-3-xml.html)
1.2.3
Câu hỏi ôn tập
Câu 1. JSON là viết
tắt của?
A. Java Object
Notation
B. JavaScript
Object Notation
C. Java Object
Notion
D. Java Object
Native
Câu 2. XML là viết
tắt của?
A. Xtra Microsoft Language
B. eXtensible Makeup Language
C. eXtensible Markup Language
D. eXtension Markdown Language
Câu 3. Các loại cơ sở dữ liệu gồm:
A. Dạng tập tin, quan hệ, hướng đối tượng, bán cấu trúc
B. Dạng tập tin, liên kết, hướng đối tượng, bán cấu trúc
C. Hướng đối tượng, bán cấu trúc, văn bản, web
D. Dạng tập tin, quan hệ, văn bản, bán cấu trúc
Đáp án: 1 (B), 2 (C), 3, (A)