Làm thế nào để thiết kế một cơ sở dữ liệu [Phần 1]

1. Mở đầu

Ngày nay, dưới sự phát triển mạnh mẽ của công nghệ thông tin việc áp dụng CNTT vào các lĩnh vực đời sống ngày càng phổ biến, chính vì vậy cơ sở dữ liệu ngày càng được sử dụng và quan tâm nhiều hơn. Ví dụ trong Trường học ta cần lưu trữ thông tin sinh viên (tên, tuổi, quê quán, giới tính..), giảng viên, lớp môn học.. Trong kinh doanh cần có thông tin về các sản phẩm, khách hàng..vv..vv

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

Cơ sở dữ liệu (Database) đơn giản chỉ là một tập hợp các thông tin được tổ chức theo một cấu trúc nhất định giúp máy tính có thể dễ dàng đọc thông tin, chỉnh sửa, thêm hoặc xóa dữ liệu Ví dụ: Một danh sách sinh viên của một trường với 5 trường dữ liệu là họ và tên sinh viên, năm sinh, mã số sinh viên, lớp học và khóa học được coi là một cơ sở dữ liệu.

Mọi hệ thống đều phải sử dụng cơ sở dữ liệu, đó có thể là CSDL đã có hoặc CSDL được xây dựng mới cũng có những hệ thống sử dụng cả cơ sở dữ liệu cũ và mới. Việc thiết kế 1 CSDL rất quan trọng trong việc đảm bảo dữ liệu phù hợp, loại bỏ dữ liệu dư thừa, hiệu quả trong việc truy vấn và đem lại hiệu suất cao đồng thời dễ khôi phục và bảo trì

2. Nguyên tắc thiết kế CSDL

  • Chính xác
  • Tránh trùng lặp
  • Dễ hiểu
  • Chọn đúng thuộc tính và kiểu thuộc tính
  • Chọn đúng mối quan hệ

3. Các bước thiết kế CSDL

Trong bài viết này mình xin trình bày 2 bước đầu của thiết kế CSDL, phần 2 mình sẽ trình bày tiếp

3.1 Xác định yêu cầu, nghiệp vụ

Đây là bước đầu tiên cũng là bước quan trọng nhất. Xác định yêu cầu một cách đầy đủ, cụ thể sẽ giúp cho việc thiết kế CSDL trở lên dễ dàng hơn. Luôn đặt ra câu hỏi:

  • CSDL sẽ được sử dụng như thế nào?
  • Những thông tin gì cần được lưu vào CSDL?

Chúng ta có thể tham khảo các hệ thống dữ liệu sẵn có. Có thể là trong hoá đơn bán hàng, tập lưu trữ hồ sơ khách hàng.. vv.v.v

3.2 Xây dựng lược đồ thực thể - liên kết (ER)

Lược đồ ER được dùng để thiết kế CSDL ở mức quan niệm giúp biểu diễn 1 cách trừu tượng cấu trúc của CSDL. Hiểu nôm na là lược đồ ER cho phép chúng ta mường tượng rõ hơn về CSDL chúng ta sắp xây dựng Để xây dựng lược đồ ta cần hiểu thêm về các khái niệm:

  • Thực thể/ tập thực thể (Entity Set): Thực thể là 1 đối tượng cụ thể hoặc trừu tượng, được mô tả bởi 1 tập các thuộc tính. Tập các thực thể giống nhau tạo thành 1 tập thực thể. Ví dụ: Quản lý sinh viên trường đại học thì thực thể có thể là sinh viên.
  • Thuộc tính (Attributes): Là các đặc trưng mô tả thực thể. Mỗi thực thể cụ thể sẽ có các giá trị cho các miền thuộc tính của nó. (kiểu số nguyên, kiểu chuỗi..)
  • Mối quan hệ/ liên kết (Relationship): Là sự liên kết giữa 2 hoặc nhiều thực thể. Ví dụ: Một sinh viên tham gia nhiều môn học, mỗi một môn học có nhiều sinh viên.
  • Khóa: Là thuộc tính mà giá trị của nó khác nhau trên 2 thực thể. Dùng để phân biệt 2 thực thể đó trong 1 nhóm. Ví dụ: mỗi sinh viên có 1 mã sinh viên riêng biệt.

Có các kiểu liên kết phổ biến như: 1-1, 1-n, n-1, m-n

Lược đồ ER

Là đồ thị biểu diễn các tập thực thể, thuộc tính và mối quan hệ. Ta có thể biểu diễn nó qua:

Đỉnh

Cung : Là đường nối giữa

  • Tập thực thể và thuộc tính
  • Quan hệ và tập thực thể

Ví dụ:

Ràng buộc trên kiểu liên kết :

Là những quy định để giới hạn số các tổ hợp có thể của các thực thể tham gia kiểu liên kết phản ánh đúng ràng buộc của các thực thể trong thế giới thực. Có 2 lọai ràng buộc:

1. Ràng buộc tỉ số:

Xét mối quan hệ giữa 2 tập thực thể

Một - nhiều (1 : n):

Ví dụ: Một sinh viên có thể đăng kí nhiều môn học

Một- một (1: 1) :

Nhiều - một (n: 1)

Nhiều - Nhiều (n: m)

2. Ràng buộc min - max :

Chỉ định mỗi thực thể tham gia ít nhát và nhiều nhất vào thể hiện của R

Ví dụ: Một phòng ban có 1 hoặc nhiều nhân viên:

1 nhân viên chỉ thuộc về 1 phòng ban

Một nhân viên có hể tham gia nhiều dự án hoặc không tham gia dự án nào, một dự án có nhiều nhân viên

Ràng buộc tham gia:

Là ràng buộc khi thực thể k có thuộc tính khóa, chỉ tham gia khi có 1 thực thể chủ. Được biểu diễn bằng nét đôi trên liên kết và thực thể.

Ví dụ:

Ta đã tìm hiểu qua một số khái niệm giờ chúng ta có thể thiết kế lược đồ ER

Các bước thiết kế

  • Bước 1: Xác định tập thực thể
  • Bước 2: Xác định mối quan hệ
  • Bước 3: Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan hệ
  • Bước 4: Quyết định miền giá trị cho thuộc tính
  • Bước 5: Xác định thuộc tính khóa
  • Bước 6: Xác định ràng buộc (tỉ số, min-max, ràng buộc tham gia) cho mối quan hệ và thể hiện chúng

Ví Dụ

Chúng ta sẽ xem xét qua một ví dụ nhỏ: CSDL quản lý theo dõi nhân viên, dự án, phòng ban Công ty có nhiều phòng ban, mỗi phòng ban có một tên và mã đơn vị duy nhất, đia điểm. Mỗi dự án có một tên và mã dự án duy nhất, do một phòng ban quản lý. Mỗi dự án có nhiều nhân viên tham gia. Nhân viên có mã số NV, tên, địa chỉ, mỗi nhân viên làm việc ở một phòng ban, tham gia dự án với số giờ khác nhau. Lược đồ ER với ví dụ trên:

Sau khi xây dựng được mô hình thực thể liên kết ER chúng ta bắt đầu xây dựng lược đồ quan hệ ở Phần 2 nhé

Cảm ơn mọi người đã đọc bài viết.

*Nguồn tham khảo Bài giảng CSDL - Thầy Vũ Bá Duy - Đại học Công Nghệ - ĐHQGHN