Bài 10: Cơ sở dữ liệu quan hệ

Nội dung của Bài 10: Cơ sở dữ liệu quan hệ dưới đây, các em sẽ được tìm hiểu về khái niệm mô hình dữ liệu quan hệ và các đặc trưng cơ bản của mô hình này; khái niệm CSDL quan hệ, khóa và liên kết giữa các bảng. Mời các em cùng theo dõi nội dung chi tiết của bài học.

Tóm tắt lý thuyết

1.1. Mô hình dữ liệu

Mô hình dữ liệu là một tập khái niệm dùng để mô tả cấu trúc dữ liệu, các thao tác dữ liệu, các ràng buộc dữ liệu của một CSDL.

Theo các mức mô tả chi tiết về CSDL, có thể phân chia các mô hình dữ liệu thành hai loại:

  • Mô hình lôgic (còn gọi là mô hình dữ liệu bậc cao) cho mô tả CSDL ở mức khái niệm và mức khung nhìn, mô tả bản chất lôgic của dữ liệu được lưu trữ;
  • Mô hình vật lí (còn gọi là mô hình dữ liệu bậc thấp) cho mô tả CSDL ở mức vật lí, trả lời cho câu hỏi "Dữ liệu được lưu trữ như thế nào?".

Có nhiều mô hình dữ liệu bậc cao nhưng ở đây ta chỉ đề cập đến mô hình dữ liệu quan hệ vì cho đến nay đó là mô hình phổ biến nhất trong thực tế xây dựng các ứng dụng CSDL. 

1.2. Mô hình dữ liệu quan hệ

Mô hình dữ liệu quan hệ (gọi tắt là mô hình quan hệ) được  E. F. Codd đề xuất năm 1970. Trong khoảng ba mươi năm trở lại đây, các hệ CSDL xây dựng theo mô hình quan hệ được dùng rất phổ biến.

Trong mô hình quan hệ:

  • Về mặt cấu trúc:
    • Dữ liệu được thể hiện trong các bảng.
    • Mỗi bảng bao gồm các hàngcác cột thể hiện thông tin về một chủ thể.
    • Các cột biểu thị các thuộc tính của chủ thể và tên cột thường là tên của thuộc tính.
    • Mỗi hàng biểu thị cho một cá thể, gồm một bộ các giá trị tương ứng với các cột.
  • Về mặt thao tác trên dữ liệu:
    • Có thể cập nhật dữ liệu như thêm, xóa hay sửa bản ghi trong một bảng.
    • Các kết quả tìm kiếm thông tin qua truy vấn dữ liệu có được nhờ thực hiện các thao tác trên dữ liệu.
  • Về mặt các ràng buộc dữ liệu:  Dữ liệu trong các bảng phải thoả mãn một số ràng buộc. Chẳng hạn, không được có hai bộ nào trong một bảng giống nhau hoàn toàn.

1.3. Cơ sở dữ liệu quan hệ

a. Khái niệm

  • Cơ sở dữ liệu được xây dựng dựa trên mô hình dữ liệu quan hệ gọi là cơ sở dữ liệu quan hệ.
  • Hệ QTCSDL dùng để tạo lập, cập nhật và khai thác CSDL quan hệ gọi là hệ QTCSDL quan hệ.

b. Các đặc trưng của một quan hệ

Một quan hệ trong hệ CSDL quan hệ có các đặc trưng chính sau:

  • Mỗi quan hệ có tên để phân biệt với các quan hệ khác;
  • Các bộ là duy nhất và không phân biệt thứ tự;
  • Mỗi thuộc tính có tên phân biệt và không phân biệt thứ tự;
  • Quan hệ không có thuộc tính đa trị hay phức hợp.
    • Thuộc tính đa trị: 1 thuộc tính tương ứng trong nhiều bộ giá trị;

    • Phức hợp: Một thuộc tính có 2 giá trị.

Lưu ý:

  • Quan hệ là bảng;
  • Thuộc tính là trường (cột);
  • Bộ là bản ghi (hàng).

1.4. Khóa và liên kết giữa các bảng

a. Khóa

  • Khoá của một bảng là một tập thuộc tính gồm một hay một số thuộc tính của bảng có hai tính chất:
    • Không có hai bộ (khác nhau) trong bảng có giá trị bằng nhau trên khoá.
    • Không có tập con thực sự nào của tập thuộc tính này có tính chất.

b. Khóa chính

  • Một bảng có thể có nhiều khóa. Trong các khóa của một bảng người ta thường chọn (chỉ định) một khóa làm khoá chính (primary key). 
  • Trong một hệ QTCSDL quan hệ, khi nhập dữ liệu cho một bảng, giá trị của mọi bộ tại khóa chính không được để trống
  • Các hệ QTCSDL quan hệ kiểm soát điều đó và đảm bảo sự nhất quán dữ liệu, tránh trường hợp thông tin về một đối tượng xuất hiện hơn một lần sau những cập nhật dữ liệu. Trong mô hình quan hệ, ràng buộc như vậy về dữ liệu còn được gọi là ràng buộc toàn vẹn thực thể (hay gọi ngắn gọn là ràng buộc khóa).

Chú ý:

  • Mỗi bảng có ít nhất một khóa. Việc xác định khoá phụ thuộc vào quan hệ lôgic của các dữ liệu chứ không phụ thuộc vào giá trị các dữ liệu.
  • Nên chọn khoá chính là khoá có ít thuộc tính nhất.

c. Liên kết giữa các bảng

Thực chất sự liên kết giữa các bảng là dựa trên thuộc tính khóa.

Bài tập minh họa

 
 

Dạng 1: Mô hình dữ liệu quan hệ

Câu 1

Chỉ ra các điều kiện trong mô hình dữ liệu quan hệ Ql_hoctap

Hình 1. Mô hình dữ liệu quan hệ Ql_hoctap

Gợi ý trả lời:

  • Cấu trúc dữ liệu: là các bảng dữ liệu, bảng hoc_sinh, Mon_hoc, Bang_diem gồm có các trường dữ liệu, các bản ghi.
  • Các ràng buộc: khoá chính, trong bảng hoc_sinh thì dữ liệu trong trường khoá chính là duy nhất.
  • Các thao tác cập nhật dữ liệu (thêm, sửa, xoá), khai thác dữ liệu, thống kê dữ liệu theo một điều kiện nào đó, có thể thực hiện trên một bảng hoặc nhiều bảng.

Dạng 2: Cơ sở dữ liệu quan hệ

Câu 2

Trong CSDL quan hệ Ql_hoctap ở ví dụ trên (ví dụ 1)xác định quan hệ, thuộc tínhbộ.

Gợi ý trả lời:

  • Quan hệ Hoc_sinh
  • Có các thuộc tính: ma_hoc_sinh, Ho_dem, Ten.
  • Vì lớp có 50HS nên có 50 bộ, bộ thứ 10 là {12A9, Nguyễn Thị Thanh, An}

Câu 3

Trong CSDL quan hệ Ql_thuvien dưới đây, xác định thuộc tính đa trị và phức hợp.

Hình 2. Cơ sở dữ liệu quan hệ Ql_thuvien

Gợi ý trả lời:

  • Bảng có thuộc tính đa trị
Số thẻ Mã số sách Ngày mượn Ngày trả
TV_02

TO-012

TN-102

5/9/07

24/9/07

30/9/07

5/10/07

.....      

Bảng 1. Bảng có thuộc tính đa trị

Vì giá trị Số thẻ TV_02 có 2 bộ giá trị

  • Bảng có thuộc tính phức hợp

Số thẻ Mã số sách Ngày mượn trả
Ngày mượn Ngày trả
.....      

Bảng 2. Bảng có thuộc tính phức hợp

Ngày mượn trả có 2 cột Ngày mượnNgày trả.

3. Luyện tập Bài 10 Tin học 12

Sau khi học xong Bài 10: Cơ sở dữ liệu quan hệ, các em cần nắm vững các nội dung trọn tâm:

  • Khái niệm mô hình dữ liệu;
  • Khái niệm mô hình dữ liệu quan hệ và các đặt trưng cơ bản của mô hình dữ liệu quan hệ;
  • Hai loại mô hình dữ liệu: mô hình lôgic và mô hình vật lí;
  • Khái niệm CSDL quan hệ, khóa, khóa chính và liên kết giữa các bảng.

3.1. Trắc nghiệm

Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 12 Bài 10 cực hay có đáp án và lời giải chi tiết. 

Câu 5-Câu 10: Xem thêm phần trắc nghiệm để làm thử Online

3.2. Bài tập SGK

Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 12 Bài 10 để giúp các em nắm vững bài học và các phương pháp giải bài tập.

Bài tập 1 trang 86 SGK Tin học 12

Bài tập 2 trang 86 SGK Tin học 12

Bài tập 3 trang 86 SGK Tin học 12

4. Hỏi đáp Bài 10 Tin học 12

Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học Chúng tôi sẽ hỗ trợ cho các em một cách nhanh chóng!

Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!

-- Mod Tin Học 12 Chúng tôi

MGID

Tham khảo thêm

Bình luận

Có Thể Bạn Quan Tâm ?