DBMS (1) - Tổng quan


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

{

     "ten": "Tèo",

    "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)

-----
Cập nhật: [8/8/2022]
-----