- vừa được xem lúc

Thiết kế cơ sở dữ liệu quan hệ [phần 1]

0 0 22

Người đăng: Nguyễn Thị Mai Hương

Theo Viblo Asia

Mở đầu

Trong những năm gần đây, lượng dữ liệu được tạo ra bởi máy móc và con người tăng lên đáng kể. Ta có thể nghe hàng loạt các từ khóa về big data trên các phương tiện truyền thông đại chúng. Đã xuất hiện rất nhiều các hệ thống quản lý dữ liệu với công việc chủ yếu là thu thập, lưu trữ dữ liệu khôi phục dữ liệu và chuyển đổi chúng thành thông tin. Các thông tin thu được từ dữ liệu càng nhanh chóng và gần gũi với thực tiễn bao nhiêu thì hệ thống càng chính xác và đáng tin cậy bấy nhiêu.

Để có thể xây dựng được một hệ thống tốt thì việc thiết kế cơ sở dữ liệu phù hợp là vôcùng quan trọng. Trong bài viết này mình muốn chia sẻ với các bạn phương pháp thiết kế CSDL quan hệ đơn giản nhất giúp xây dựng 1 hệ cơ sở dữ liệu dựa trên yêu cầu của hệ thống mà có thể giảm được tối đa sự dư thừa dữ liệu và dễ dàng khôi phục, bảo trì.

Tổng quan về thiết kế cơ sở dữ liệu quan hệ

Các khái niệm quan trọng

  • Dữ liệu( Data) dữ kiện rời rạc hoặc theo một tập hợp các sự vật, sự việc xung quanh đời sống của con người như số liệu, từ ngữ, hình ảnh, âm thanh, ký tự… nhằm đo lường, quan sát hoặc chỉ đơn giản là mô tả về một sự vật nào đó. Tùy thuộc vào hoàn cảnh mà dữ liệu có ý nghĩa khác nhau và chúng được tổng hợp, lưu trữ trên các thiết bị điện tử, chủ yếu là máy tính.

  • Cơ sở dữ liệu (Database): CSDL máy tính là một kho chứa một bộ sưu tập có tổ chức các file dữ liệu, các bản ghi và các trường.

  • Mô hình( model) là dạng trừu tượng hóa nhằm biểu diễn thế giới thực theo một khía cạnh, hình thức nào đó như biểu đồ, bảng… nhằm giúp người dùng dễ dàng hiểu được nội dung mà model muốn truyền tải. Có 2 mức độ mô hình hóa chính:

    • Mức logic: Bỏ qua các yếu tố về thực hiện, cài đặt hệ thống, chỉ tập trung mô tả bản chất và mục đích hoạt động của hệ thống.
    • Mức vật lý: Tập trung vào mọi yếu tố nhằm triển khai, hiện thực hệ thống theo kiến trúc đã được làm rõ.
  • Mô hình cơ sở dữ liệu (database model) là một bản thiết kế cho kho dữ liệu nhằm mô hình hóa cách thức để lưu trữ dữ liệu. Các dữ liệu trong mô hình cơ sở dữ liệu được biểu diễn một cách có cấu trúc rõ ràng dưới dạng các khái niệm, nhằm thể hiện mối quan hệ của các đối tượng dữ liệu, ngữ nghĩa và các ràng buộc của từng đối tượng.

Những ưu điểm và nhược điểm của việc thiết kế cơ sở dữ liệu

Trước đây người ta chỉ quản lý dữ liệu bằng các file riêng biệt, cách làm này chỉ phù hợp trong điều kiện quản lý dữ liệu ở quy mô nhỏ, còn đối với những trường quản lý dữ liệu số lượng lớn thì đòi hỏi phải sử dụng đến cơ sở dữ liệu.

Việc quản lý dữ liệu bằng cơ sở dữ liệu cũng mang lại những lợi ích và hạn chế riêng.

Về ưu điểm:

  • Việc quản lý dữ liệu bằng cơ sở dữ liệu mang đến lợi ích tích cực, giúp cho việc lưu trữ, truy xuất, sử dụng dữ liệu đạt hiệu suất tốt hơn.

  • Thông tin được quản lý ở một nơi duy nhất, dễ dàng quản lý và đảm bảo việc bảo mật dữ liệu, tránh rò rỉ thông tin. Bên cạnh đó, các dữ liệu được tổ chức một cách có hệ thống, giúp việc chia sẻ CSDL dễ dàng hơn.

  • Khi cả công ty dùng chung một cơ sở dữ liệu, các phòng ban khác có thể dễ dàng truy cập vào database và lấy thông tin khi họ cần, điều này giúp tránh được việc trùng lập dữ liệu, gây lãng phí tài nguyên. Khi đã dùng chung cơ sở dữ liệu, thông tin được cập nhật trên cơ sở dữ liệu thì khi người dùng lấy dữ liệu, dữ liệu sẽ được đảm bảo đồng bộ hoàn toàn.

  • Việc tìm kiếm thông tin cũng vô vùng dễ dàng khi dữ liệu đã được quản lý bởi DBMS, chúng ta có thể thêm filter, tìm kiếm, gom nhóm các thông tin lại với nhau bằng cách dùng câu truy vấn.

Về nhược điểm:

  • Khi xảy ra sự cố, việc dùng chung cơ sở dữ liệu có thể gây ra toàn bộ dữ liệu bị mất hoàn toàn. Tuy nhiên có thể dễ dàng khắc phục nhược điểm này bằng cách sao lưu dữ liệu thường xuyên.

  • Việc dùng chung cơ sở dữ liệu khi có quá nhiều truy vấn sẽ gây tắc nghẽn, sập hệ thống. Tuy nhiên, trong thực tế, lượng truy vấn đến cơ sở dữ liệu đã được ước tính và đầu tư vào cấu hình máy chủ cho phù hợp.

Quá trình phân tích và thiết kế mô hình CSDL

  • Khi bắt đầu một dự án, nhóm thiết kế sẽ thu thập yêu cầu của khách hàng, các bên liên quan và những người trực tiếp tham gia phát triển dự án. Việc thu thập thông tin có thể tiến hành qua phỏng vấn trực tiếp, sử dụng các phiếu điều tra, qua quan sát các nghiệp vụ, quá trình, qua các báo cáo, tài liệu. Trên cơ sở đó, nhóm thiết kế sẽ phân tích các yêu cầu để nắm bắt một cách chi tiết các chức năng của cơ sở dữ liệu. nắm được tầm vực của dự án cũng như những những logic trong các chức năng, từ đó các yêu cầu của cơ sở dữ liệu được hình thành.

  • Sau khi đã có đủ yêu cầu nghiệp vụ thì người phân tích nghiệp vụ sẽ xây dựng mô hình thực thể liên kết với các liên kết giữa những thực thể và thuộc tính tương ứng. Mô hình này sẽ mô tả dữ liệu của thế giới thực gắn với hoạt động nghiệp vụ của tổ chức sử dụng nó, chỉ tập trung vào bản chất logic của việc biểu diễn dữ liệu, quan tâm đến những thứ được biểu diễn chứ không quan tâm đến cách chúng biểu diễn ra sao.

  • Khi đã có được tài liệu ERD để giao tiếp với người sử dụng nhằm xác định đúng đắn và đầy đủ các yêu cầu thông tin của hệ thống, ta sẽ cần ánh xạ qua mô hình quan hệ để cung cấp khái niệm cho người sử dụng một cách gần gũi nhất so với cách tổ chức dữ liệu trong máy tính.

  • Bước cuối cùng trong thiết kế CSDL là thiết kế CSDL ở mức vật lý dựa trên một hệ quản trị cơ sở dữ liệu nhất định qua việc xây dựng các tập tin dữ liệu, các chỉ mục, cấu trúc của chúng, sắp xếp trong các thiết bị lưu giữ. Các bảng trong CSDL quan hệ sẽ quyết định cấu trúc thực tế của các bảng lưu trữ trong mô hình quan hệ.

  • Quytrình được thể hiện như hình dưới đây:

Bài viết này được tham khảo từ nhiều nguồn và từ những gì mình được học, hi vọng sẽ hữu ích cho một vài bạn mới bắt đầu làm quen với cơ sở dữ liệu. Trong phần tiếp theo, mình sẽ viết về cách thiết kế mô hình thực thể liên kết và ánh xạ mô hình quan hệ. Cài đặt database trong hệ quản trị CSDL, tạo API, .... và tùm lum thứ nữa 😀

Bình luận

Bài viết tương tự

- vừa được xem lúc

SQL là gì? Ai nên theo học SQL?

Bạn đã từng nghe đến ngôn ngữ lập trình chưa? Bạn biết bao nhiều về các loại ngôn ngữ lập trình? Hiện nay, phổ biến nhất là ngôn ngữ lập trình SQL là gì được phát triển ở nhiều doanh nghiệp có cơ sở d

0 0 29

- vừa được xem lúc

Tổng quan về Database SQl và NoSQL

Con người bắt đầu lưu trữ thông tin từ rất lâu rồi. Từ những phương pháp thô sơ như khắc lên đá, ghi chép sổ sách, băng đĩa cassette, đĩa mềm, file .

0 0 25

- vừa được xem lúc

Cơ sở dữ liệu máy chủ SQL bị kẹt trong trạng thái Restoring

Trong SQL Server, quá trình phục hồi cơ sở dữ liệu là một quá trình quan trọng để đảm bảo tính nhất quán và an toàn của dữ liệu. Tuy nhiên, đôi khi có thể xảy ra tình huống cơ sở dữ liệu SQL Server bị

0 0 18

- vừa được xem lúc

SQL so với NoSQL: Lựa chọn cơ sở dữ liệu nào cho dự án của bạn?

Khi xây dựng một ứng dụng mới hay cải tiến một ứng dụng hiện có, việc lựa chọn cơ sở dữ liệu phù hợp là một yếu tố quan trọng cần được cân nhắc kỹ lưỡng. Trên thị trường hiện nay có rất nhiều loại cơ

0 0 21

- vừa được xem lúc

Hiểu và phân biệt 3 loại ERD notation thường gặp

ERD là một trong các bản vẽ thường thấy trong lập trình. Các trường đại học đều dạy ERD trong các môn như database hay OOAD (phân tích thiết kế hệ thống OOP).

0 0 19

- vừa được xem lúc

Cách học Top-Down, Bottom-Up và áp dụng với từng lĩnh vực trong IT

1. Học cũng có phương pháp. 1.1 Top-Down Learning (Học từ trên xuống).

0 0 4