Đời Sống

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:

Co ban ve co so du lieu - Hinh 1

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.

Vi du ve Co so du lieu quan he

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)

Moi quan he trong co so du lieu

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ệ.

Mo ta ve cac loai quan he trong CSDL

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.

Vi du ve luoc do quan he - ERD

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.