Chương 1: Tổng Quan


1. Dữ liệu (Data)

Dữ liệu là mô tả hình thức về những sự kiện, khái niệm trong thế giới thực. Dữ liệu có thể là con số, văn bản, hình ảnh, âm thanh, v.v. — bất kỳ thứ gì có thể được lưu trữ và xử lý bởi máy tính.

Phân biệt Data → Information → Knowledge → Wisdom:

  • Data (Dữ liệu): Các sự kiện rời rạc, khách quan. VD: "SV001", "Nguyễn Minh", "1/2/1987"
  • Information (Thông tin): Dữ liệu đã được phân tích, kết nối có ý nghĩa. VD: “Sinh viên Nguyễn Minh sinh ngày 1/2/1987”
  • Knowledge (Tri thức): Thông tin được đặt trong bối cảnh, giúp ra quyết định.
  • Wisdom (Trí tuệ): Tri thức được áp dụng với giá trị và kinh nghiệm thực tiễn.

Ví dụ dữ liệu thực tế:

  • Thông tin cá nhân của sinh viên
  • Bảng điểm của sinh viên
  • Hóa đơn bán hàng
  • Báo cáo doanh thu bán hàng

2. Hệ thống tập tin (File System)

Hệ thống tập tin là tập hợp các tập tin riêng lẻ, mỗi tập tin phục vụ riêng cho một chương trình ứng dụng cụ thể.

Chương trình ứng dụng 1 ──┐
Chương trình ứng dụng 2 ──┤──▶ Hệ thống quản lý tập tin ──▶ Tập tin 1, 2, 3
Chương trình ứng dụng 3 ──┘

Ưu điểm

  • Triển khai ứng dụng nhanh chóng
  • Đáp ứng nhanh vì chỉ phục vụ mục đích hạn hẹp, cụ thể

Nhược điểm


3. Cơ sở dữ liệu (Database)

Định nghĩa: Cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu trúc, được lưu trữ trên các thiết bị lưu trữ nhằm thỏa mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với những mục đích khác nhau.

Ưu điểm

Các vấn đề cần giải quyết


4. Các đối tượng sử dụng CSDL

graph TD A[CSDL] --> B[Người dùng cuối - End User] A --> C[Chuyên viên tin học - Developer] A --> D[Quản trị viên - DBA] B --> B1["Không chuyên CNTT, cần công cụ hỗ trợ
(y tế, trường học, kinh doanh...)"] C --> C1[Xây dựng ứng dụng quản lý] D --> D1[Tổ chức CSDL, phân quyền,
sao lưu, giải quyết tranh chấp]

Chi tiết từng đối tượng


5. Hệ quản trị CSDL (DBMS)

DBMS – Database Management System là tập hợp các chương trình cho phép người sử dụng tạo ra và duy trì CSDL. DBMS đóng vai trò trung gian giữa người dùng/ứng dụng và dữ liệu thực sự được lưu trên đĩa.

Ba chức năng cốt lõi

Chức năngMô tảVí dụ
Định nghĩa (Define)Khai báo cấu trúc, kiểu dữ liệu, ràng buộcTạo bảng, định nghĩa khóa chính
Xây dựng (Build)Lưu trữ dữ liệu vào CSDLChèn bản ghi vào bảng
Xử lý (Manipulate)Truy vấn, cập nhật, xuất báo cáoSELECT, INSERT, UPDATE, DELETE

Yêu cầu của một DBMS

Các ngôn ngữ giao tiếp trong DBMS

graph LR SQL_Family["Ngôn ngữ DBMS"] --> DDL SQL_Family --> DML SQL_Family --> SQL_Q SQL_Family --> DCL DDL["DDL – Data Definition Language\nKhai báo cấu trúc, mối liên hệ, ràng buộc"] DML["DML – Data Manipulation Language\nThêm, Xóa, Sửa dữ liệu"] SQL_Q["SQL – Structured Query Language\nTruy vấn thông tin"] DCL["DCL – Data Control Language\nQuản lý bảo mật, phân quyền"]

Ví dụ minh họa:

-- DDL: Tạo bảng
CREATE TABLE SINHVIEN (
    MaSV VARCHAR(10) PRIMARY KEY,
    HoTen NVARCHAR(100),
    GioiTinh NVARCHAR(3),
    NgSinh DATE,
    NoiSinh NVARCHAR(100)
);

-- DML: Thêm dữ liệu
INSERT INTO SINHVIEN VALUES ('SV001', N'Nguyễn Minh', N'Nam', '1987-02-01', N'Tp. Hồ Chí Minh');

-- SQL: Truy vấn
SELECT HoTen, NgSinh FROM SINHVIEN WHERE GioiTinh = N'Nam';

-- DCL: Phân quyền
GRANT SELECT ON SINHVIEN TO user_readonly;

Các DBMS phổ biến


6. Các mức biểu diễn một CSDL

Một CSDL được nhìn nhận ở 3 mức khác nhau, tương ứng với 3 nhóm đối tượng khác nhau:

graph TD World["🌍 Thế giới thực"] World --> Concept["Mức quan niệm / Logic\n(Conceptual / Logical Level)"] Concept --> External["Mức ngoài\n(External Level / View)"] Concept --> Physical["Mức trong\n(Internal / Physical Level)"] External --> User1["Người dùng 1\n(Cấu trúc ngoài 1)"] External --> User2["Người dùng 2\n(Cấu trúc ngoài 2)"] External --> AppN["Chương trình ứng dụng n"] Physical --> Storage["CSDL lưu trên đĩa"]

Chi tiết 3 mức


7. Các mô hình dữ liệu

Mô hình dữ liệu là sự trừu tượng hóa của môi trường thực, biểu diễn dữ liệu ở mức quan niệm. Có 5 mô hình chính:


7.1 Mô hình dữ liệu mạng (Network Data Model)

Được xây dựng bởi Honeywell (1964–1965). Dữ liệu được biểu diễn bằng đồ thị có hướng.

Các thành phần:

Thành phầnMô tảVí dụ
Mẫu tin (Record)Mô tả 1 đối tượng cụ thể('NV001','Nguyen Lam','Nam','10/10/1970','Dong Nai')
Loại mẫu tinTập các mẫu tin cùng tính chấtNHANVIEN, CONGVIEC
Loại liên hệ (Set type)Kết nối giữa loại mẫu tin chủ và thành viênThamGia
Bản số (Cardinality)Số lượng mẫu tin tham gia liên hệ1:1, 1:n, n:1

Ví dụ đồ thị mạng:

graph TD PHONG["PHONG"] -->|"gồm (1:n)"| NHANVIEN["NHANVIEN"] NHANVIEN -->|"có (1:1)"| LYLICH["LYLICH"] NHANVIEN -->|"quản lý trực tiếp (n:1)"| NHANVIEN NHANVIEN -->|"cùng làm (1:n)"| CONGVIEC["CONGVIEC"]

7.2 Mô hình dữ liệu phân cấp (Hierarchical Data Model)

Được xây dựng bởi IBM và North American Rockwell (~1965). Dữ liệu tổ chức theo dạng cây phân cấp.

Đặc điểm:

  • Mỗi nút của cây biểu diễn một loại thực thể.
  • Mối quan hệ từ nút cha → nút con luôn là 1:n.
  • Mối quan hệ từ nút con → nút cha luôn là 1:1.
  • Giữa hai loại mẫu tin chỉ tồn tại một mối quan hệ duy nhất.

Ví dụ – Hệ thống quản lý hành chính dân số:

graph TD QG["TOÀN QUỐC"] QG --> HN["HÀ NỘI"] QG --> HCM["TP.HCM"] QG --> DN["ĐÀ NẴNG"] HCM --> Q1["QUẬN 1"] HCM --> Q2["QUẬN 2"] Q1 --> P1["P. ĐA KAO"] Q1 --> P2["P. TÂN ĐỊNH"] P1 --> DB1["ĐỊA BÀN 1"] DB1 --> H1["HỘ 1"] DB1 --> H2["HỘ 2"] H1 --> NK1["NHÂN KHẨU 1"] H1 --> NK2["NHÂN KHẨU 2"]

7.3 Mô hình thực thể mối kết hợp (ER Model)

Được Peter Pin Shan Chen giới thiệu năm 1976. Đây là mô hình được dùng rộng rãi nhất trong thiết kế CSDL ở mức quan niệm.

Nhìn thế giới thực như tập hợp các thực thểmối quan hệ giữa chúng.


7.3.1 Loại thực thể (Entity Type)

Là những loại đối tượng/sự vật của thế giới thực tồn tại cụ thể, cần được quản lý.

VD: SINHVIEN, LOP, MONHOC, NHANVIEN, PHONGBAN

Ký hiệu: Hình chữ nhật.


7.3.2 Thực thể (Entity)

Là một thể hiện cụ thể của một loại thực thể.

VD: Loại thực thể SINHVIEN có các thực thể:

  • ('SV001', 'Nguyễn Minh', 'Nam', '1/2/1987', 'Tp. HCM')
  • ('SV002', 'Trần Năm', 'Nam', '13/2/1987', 'Đồng Nai')

7.3.3 Thuộc tính (Attribute)

Là những tính chất đặc trưng của loại thực thể. Có 3 loại:


7.3.4 Khóa (Key)

Là thuộc tính (hoặc tập thuộc tính) mà giá trị của nó xác định duy nhất một thực thể trong loại thực thể.

Ký hiệu: Thuộc tính khóa được gạch chân.


7.3.5 Loại mối kết hợp (Relationship Type)

Là sự liên kết giữa hai hay nhiều loại thực thể.

Ký hiệu: Hình thoi (hoặc oval).

Ví dụ: SINHVIEN —[Thuộc]— LOP

Giữa hai loại thực thể có thể tồn tại nhiều hơn một loại mối kết hợp. VD: SINHVIENLOP có thể có: ThuộcLà lớp trưởng.


7.3.6 Số ngôi (Degree)

Là số lượng loại thực thể tham gia vào một loại mối kết hợp.

graph LR SV["SINHVIEN"] --- Thuoc{"Thuộc"} --- LOP["LOP"]

Mối kết hợp Thuộc: 2 ngôi (binary)

graph LR GV["GIANGVIEN"] --- Day{"Dạy"} --- MH["MONHOC"] Day --- LP["LOP"]

Mối kết hợp Dạy: 3 ngôi (ternary)


7.3.7 Bản số (Cardinality)

Thể hiện số lượng tối thiểu và tối đa các thực thể tham gia vào mối kết hợp.

Ký hiệu: (min, max)

Bản sốÝ nghĩa
(1,1)Tham gia đúng 1 lần
(0,1)Có thể không tham gia hoặc tham gia tối đa 1 lần
(1,n)Tham gia ít nhất 1, nhiều không giới hạn
(0,n)Có thể không tham gia, hoặc nhiều không giới hạn

Ví dụ:

erDiagram SINHVIEN }o--|| LOP : "Thuộc (1,1)-(1,n)" SINHVIEN |o--o| LOP : "Là lớp trưởng (0,1)-(1,1)" HOADON }|--|{ SANPHAM : "ChiTiet (1,n)-(0,n)"

7.4 Mô hình ER mở rộng (Extended ER)

Chuyên biệt hóa / Tổng quát hóa (Specialization / Generalization)

Tương tự kế thừa trong OOP: loại thực thể con kế thừa thuộc tính của loại thực thể cha, và có thêm thuộc tính riêng.

graph TD NV["NHANVIEN\n(MaNV, HoTen, GioiTinh)"] -->|Is a| QL["QUANLY\n(ChucVu)"] NV -->|Is a| CN["CONGNHAN\n(Bac)"] SP["SANPHAM\n(MaSP, TenSP, Gia)"] -->|Is a| DT["DIENTHOAI\n(TheSim)"] SP -->|Is a| LT["LAPTOP\n(ManHinh, RAM, CPU, OCung, VGA)"]

Mối kết hợp đệ quy (Recursive Relationship)

Loại thực thể có mối kết hợp với chính nó.

VD: Mỗi nhân viên có một người quản lý trực tiếp, và người quản lý đó cũng là một nhân viên.

graph LR NV["NHANVIEN"] -->|"Quản lý (0,1)/(0,n)"| NV

Loại thực thể yếu (Weak Entity)

VD: THANNHAN của NHANVIEN — thân nhân không có mã định danh riêng, phải gắn với nhân viên cụ thể.

erDiagram NHANVIEN ||--|{ THANNHAN : "Có (1,n)-(1,1)" THANNHAN { string TenTN string QuanHe string GioiTinh date NgSinh }

7.5 Mô hình dữ liệu quan hệ (Relational Data Model)

Là mô hình được sử dụng phổ biến nhất hiện nay. Dữ liệu được tổ chức thành các bảng (table/relation).

Ví dụ:

NHANVIEN    (MaNV, HoTen, NgaySinh, DiaChi)
KHACHHANG   (MaKH, HoTen, NgaySinh, DiaChi, DoanhSo)
SANPHAM     (MaSP, TenSP, NuocSX, DonGia)
HOADON      (SoHD, NgayHD, MaKH, TriGia, MaNV)
CTHD        (SoHD, MaSP, SL)

Các bảng liên kết với nhau qua khóa ngoại (Foreign Key):

  • HOADON.MaKHKHACHHANG.MaKH
  • HOADON.MaNVNHANVIEN.MaNV
  • CTHD.SoHDHOADON.SoHD
  • CTHD.MaSPSANPHAM.MaSP

7.6 Mô hình dữ liệu hướng đối tượng (Object-Oriented Data Model)

Ra đời vào cuối những năm 1980 – đầu 1990, dựa trên cách tiếp cận hướng đối tượng.

Các khái niệm cốt lõi: Lớp (Class), Thuộc tính (Attribute), Phương thức (Method/Operator).

Bốn đặc trưng:

Đặc trưngMô tả
Kế thừa (Inheritance)Lớp con kế thừa thuộc tính và phương thức của lớp cha
Đóng gói (Encapsulation)Ẩn chi tiết cài đặt, chỉ lộ giao diện
Đa hình (Polymorphism)Cùng một phương thức có thể hành xử khác nhau tùy lớp
Tái sử dụng (Reusability)Dễ dàng tái sử dụng các lớp đã định nghĩa

Tổng kết

mindmap root((Cơ sở dữ liệu - Chương 1)) Khái niệm cơ bản Dữ liệu Hệ thống tập tin Định nghĩa CSDL Đối tượng sử dụng DBMS 3 mức biểu diễn Mô hình dữ liệu Mạng Phân cấp ER Model Thực thể Thuộc tính Mối kết hợp Bản số ER mở rộng Quan hệ Hướng đối tượng