Mô hình cơ sở dữ liệu quan hệ là gì

Cơ sở dữ liệu là môn học cơ sở của chuyên ngành CNTT, bất kỳ sinh viên CNTT nào cũng cần nắm vững và sử dụng thành thạo Cơ sở dữ liệu để sử dụng cho công việc sau này. Tuy nhiên, đây cũng là môn học khó hiểu với nhiều sinh viên, nhất là giai đoạn thiết kế Cơ sở dữ liệu. Do vậy tôi viết chuỗi bài viết này với hy vọng sẽ giúp các bạn dễ dàng hơn trong việc tiếp cận môn học này.

Lý do cần có cơ sở dữ liệu

Chúng ta bắt đầu câu chuyện của một quán tạp hóa của dì Ba đầu ngõ, mỗi ngày bán được 3-5 bao xà phòng, 4 chai nước mắm, 6 gói Bim Bim… Để biết được lời, lỗ và đảm bảo không bị sót, mất mát, dì Ba lấy một cuốn tập làm sổ ghi chép số tiền mua hàng, số tiền bán hàng mỗi ngày và kiểm tra qua số hàng còn lại để biết lỗ lãi.

Từ ngày chung cư phía trước hình thành, dân cư đến ở đông, tiệm dì Ba tấp nập hẳn lên. Mỗi ngày bán hàng trăm mặt hàng, mỗi mặt hàng từ vài chục đến trăm cái, dì Ba không thể nào tính được việc lời lỗi hay tồn kho nữa.

May mà trong nhà có cái Tí vừa học xong khóa tin học văn phòng nên dì Ba mua cho nó cái máy tính và bảo nó giúp. Nó lập nên các bảng Excel quản lý Tồn kho, Nhập hàng, Bán hàng như sau:

Mô hình cơ sở dữ liệu quan hệ là gì

Thêm một số công thức nữa thì công việc tính toán, cộng, trừ, nhân, chia hàng ngày của dì Ba giảm hẳn, đỡ được nhiều việc.

Khi chung cư trước mặt lấp đầy thì công việc buôn bán của dì Ba trở nên vô cùng phát đạt. Bên cạnh tạp hóa dì bán thêm văn phòng phẩm và một số mặt hàng gia dụng nữa. Mấy cái bảng con Tí làm dùng trước đây cũng được nhưng bây giờ nhiều quá chạy quá chậm, đôi lúc không cẩn thận lại chạy sai (do không cập nhật công thức). Hơn nữa chỉ có mỗi nó làm được, ai đó mà đụng vô là sai tùm lum hết nên cũng bất tiện.

Hôm rồi dì hỏi thằng Tôm bên nhà, nó là dân IT hẳn hoi, nó bảo dì phải dùng phần mềm và cơ sở dữ liệu thì mới giải quyết được. Nó bảo có cơ sở dữ liệu và phần mềm dì sẽ không sợ sai công thức, không sợ nhiều dữ liệu mà ai nhập cũng được. Nghe vậy gì cũng ưng.

Vậy cơ sở dữ liệu là gì?

“Cơ sở dữ liệu là cách thức tổ chức lưu trữ dữ liệu hiệu quả để đảm bảo việc nhập và khai thác dữ liệu nhanh và chính xác”.

Cơ sở dữ liệu quan hệ là gì?

Cơ sở dữ liệu có nhiều cách tổ chức, trong đó cách hiệu quả nhất là tổ chức theo mô hình quan hệ do tiến sĩ E.F.Code người Đức đề xuất năm 1969 và người ta gọi đó là cơ sở dữ liệu quan hệ.

“Cơ sở dữ liệu quan hệ tổ chức dữ liệu theo các bảng và có quan hệ với nhau để giảm thiểu sự dư thừa dữ liệu đồng thời vẫn đảm bảo sự hiệu quả trong lưu trữ và truy xuất dữ liệu ”

Ngày nay, cơ sở dữ liệu quan hệ được dùng trong hầu hết các hệ thống phần mềm từ kế toán, ngân hàng, doanh nghiệp, …

Các thành phần cơ bản của một Cơ sở dữ liệu quan hệ

1. Bảng dữ liệu (Table)

Bảng dữ liệu là thành phần chính trong cơ sở dữ liệu quan hệ. Bảng chứa dữ liệu.

Mô hình cơ sở dữ liệu quan hệ là gì

Trong đó:

  • Cột/Trường (Field): các trường thể hiện thuộc tính của bảng dữ liệu ví dụ tên, địa chỉ
  • Dòng(row): là một dòng dữ liệu gồm các dữ liệu có liên quan với nhau hay còn gọi là bảng ghi (record).
  • Ô (cell): Giao giữa dòng và cột và là nơi chứa dữ liệu.
  • Khóa chính(Primary Key): là một trường hoặc nhiều trường gộp lại được sử dụng để định nghĩa bảng ghi. Khóa chính có 02 thuộc tính là không được trùng và không được rỗng. Ví dụ: giá trị 1 của trường CustomerID đó sẽ suy ra được tất cả dữ liệu của dòng đầu tiên. Hay nói cách khác các giá trị của dòng đầu tiên là giá trị các thuộc tính của bảng ghi có customerID = 1.

Một bảng có thể có khóa chính hoặc không, tuy nhiên để dễ quản lý người ta thường định nghĩa khóa chính cho các bảng.

2. Mối quan hệ (Relationship)

Mô hình cơ sở dữ liệu quan hệ là gì

Trong đó:

  • Khóa ngoại (Foreign Key): là trường ở bảng này (bảng Invoice) nhưng có trường tương ứng làm khóa chính ở bảng kia (bảng Customer) để tạo ra mối quan hệ giữa hai bảng.
  • Mối quan hệ (Relationship): tạo ra mối liên kết giữa hai bảng nhằm xác định mối liên quan giữa các trường dữ liệu của hai bảng. Ví dụ: nếu bạn muốn biết khách hàng có mã khách hàng số 1 mua những đơn hàng nào thì bạn phải dựa vào mối quan hệ trên. Trong cơ sở dữ liệu quan hệ mối quan hệ thể hiện ở 03 dạng sau:
    • Quan hệ 1-1: Trong quan hệ này mỗi bảng chỉ có một và chỉ một bảng ghi tương ứng mà thôi. Ví dụ quan hệ vợ – chồng, quan hệ Thông tin cơ bản – Thông tin chi tiết …
    • Quan hệ 1-n: Là quan hệ phổ biến nhất trong cơ sở dữ liệu, trong hệ này 1 bảng ghi ở bảng này có nhiều bảng ghi tương ứng ở bảng kia. Trong ví dụ trên một bảng ghi trong bảng Customer có nhiều bảng ghi trong bảng Invoice.
    • Quan hệ n-n: trong quan hệ này một bảng ghi trong bảng này tương ứng với nhiều bảng ghi trong bảng kia và ngược lại.

Bạn hãy xem mô hình hóa bên dưới để hiểu rõ hơn về các mối quan hệ.

Mô hình cơ sở dữ liệu quan hệ là gì

3. Lược đồ thực thể quan hệ (ERD: Entity Relationship Diagram)

ERD sẽ giúp bạn hiểu nhanh hơn về cấu trúc của Cơ sở dữ liệu, từ đó giúp bạn dễ dàng thao tác hơn với chúng.

Mô hình cơ sở dữ liệu quan hệ là gì

Lược đồ quan hệ (ERD) của cơ sở dữ liệu quản lý đơn hàng

Hệ quản trị Cơ sở dữ liệu (Database Management System – DBMS)

DBMS là các phần mềm dùng để quản lý và vận hành Cơ sở dữ liệu. Các DBMS phổ biến như MySQL, SQL Server, Oracle Database, DB2 …

Bảng so sánh một số DBMS phổ biến:

DBMS Kích thước hệ thống Hệ điều hành Năm ra đời
Oracle Lớn UNIX
Windows
1979
DB2 Lớn và vừa AIX(R)

HP-UX

Linux(R)

Solaris

1985
MySQL Vừa và nhỏ All OS 1987
MS SQL Server Vừa và nhỏ Windows 2000

 Tóm lại

Chúng ta vừa tìm hiểu các khái niệm về cơ bản của Cơ sở dữ liệu và Cơ sở dữ liệu quan hệ, còn rất nhiều vấn đề cần tìm hiểu như tại sao phải sử dụng cơ sở dữ liệu quan hệ, làm thế nào để thiết kế cơ sở dữ liệu … Chúng ta sẽ tiếp tục tìm hiểu các phần tiếp theo ở các bài sau.

Bài tiếp: Thiết kế cơ sở dữ liệu – Các bước thực hiện

Nếu bạn có điều gì chưa rõ hoặc thắc mắc bạn có thể để lại bình luận bên dưới tôi sẽ sẵn sàng trao đổi với bạn.

BÀI 10: CƠ SỞ DỮ LIỆU QUAN HỆ

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

a. Khái niệm mô hình dữ liệu

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

- Các loại mô hình dữ liệu:

  • Mô hình logic: (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ô hình vật lí: (mô hình dữ liệu bậc thấp) cho biết dữ liệu được lưu trữ thế nào.

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

- Mô hình dữ liệu quan hệ được E.F.Codd đề xuất năm 1970. Trong khoảng 20 năm trở lại đây các hệ CSDL 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 (hàng, cột).
  • Về mặt thao tác trên dữ liệu: Có thể cập nhật dữ liệu : Thêm, xoá, sửa.
  • Về mặt ràng buộc dữ liệu: Dữ liệu trong một bảng phải thoả mãn một số ràng buộc.

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

a. Khái niệm

- CSDL quan hệ: CSDL được xây dựng trên mô hình dữ liệu quan hệ.

- Hệ QTCSDL quan hệ : Hệ QTCSDL quan hệ dùng để tạo lập, cập nhật và khai thác CSDL quan hệ.

- Những đặc trưng của CSDL quan hệ:

  • Mỗi quan hệ có một tên phân biệt với tên các quan hệ khác.
  • Các bộ là phân biệt và thứ tự các bộ là không quan trọng.
  • Mỗi thuộc tính có một tên phân biệt và thứ tự các thuộc tính là không quan trọng.
  • Quan hệ không có thuộc tính đa trị hay phức hợp.

b. Ví dụ

- Để quản lý học sinh mượn sách ở một trường học, thông thường quản lí các thông tin sau: 

  • Thông tin người mượn sách
  • Thông tin sách
  • Thông tin mượn sách (ai mượn sách, mượn sách gì, thời gian mượn/ trả)

Mô hình cơ sở dữ liệu quan hệ là gì

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

- Khóa: Khóa của một bảng là một tập gồm một hay một số thuộc tính của bảng phân biệt được các cá thể.

- Khoá 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 khóa chính.
  • 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.

* Chú ý:

  • Mỗi bảng có ít nhất một khóa. Việc xác định khóa 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ủa các dữ liệu.
  • Nên chọn khóa chính là khóa có ít thuộc tính nhất.

- Liên kết: 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. Chẳng hạn thuộc tính số thẻ là khóa của bảng người mượn xuất hiện lại ở bảng mượn sách đó tạo nên liên kết giữa 2 bảng này.