Trang chủTác giảLiên hệ

9 Bước để tạo một Data Model

By Anonymous
Published in Database
September 17, 2022
14 min read

9 Bước để tạo một Mô hình dữ liệu

Biết cách tạo một Mô hình dữ liệu là bước đầu tiên để xây dựng một ứng dụng thành công. Đây là nền tảng giúp bạn biến đổi các yêu cầu kinh doanh của mình thành hiện thực. Trên thực tế, tất cả các yếu tố khác của ứng dụng đều xây dựng dựa trên Mô hình dữ liệu của bạn. Tuy nhiên, việc đưa ra Mô hình dữ liệu hiệu quả đặt ra một số thách thức chính. Đây là một quá trình phức tạp, liên quan đến end-user, nhóm kỹ thuật và các bên liên quan khác của doanh nghiệp. Hôm nay, chúng ta sẽ xem cách bạn có thể tạo mô hình dữ liệu thành công. Trước tiên, hãy bắt đầu với những vấn đề cơ bản

Mô hình dữ liệu là gì?

Mô hình dữ liệu là tổng quan trừu tượng về cách ứng dụng của bạn lưu trữ, kết nối, tổ chức và quản lý dữ liệu. Điều này bao gồm các giá trị bạn cần, chúng đến từ đâu và cách chúng được cấu trúc. Điều này khác với một lược đồ cơ sở dữ liệu, theo một số cách:

  1. Mô hình dữ liệu của bạn bao gồm cách dữ liệu được cấu trúc trên tất cả các nguồn, trong khi giản đồ thường chỉ áp dụng cho một nguồn duy nhất.
  2. Mô hình dữ liệu quan tâm nhiều hơn đến cách dữ liệu được cấu trúc theo các thuật ngữ trừu tượng, hơn là các chi tiết kỹ thuật của từng nguồn riêng lẻ. Mục tiêu ở đây là xây dựng một khuôn khổ cho cách ứng dụng của bạn sẽ và xử lý dữ liệu. Sau đó, điều này tạo cơ sở cho việc xây dựng các quy trình tự động hóa của ứng dụng và giao diện người dùng.

Tại sao bạn cần một Mô hình dữ liệu?

Có lẽ câu hỏi hay hơn là “tại sao bạn cần xây dựng mô hình dữ liệu một cách rõ ràng?” Mỗi ứng dụng đều có một mô hình dữ liệu. Nó thực sự chỉ là một câu hỏi về việc bạn đã suy nghĩ về việc tạo ra một cái hiệu quả nhất cho nhu cầu của bạn hay chưa. Điều này ảnh hưởng đến bảo mật, chức năng, hiệu suất, khả năng mở rộng và khả năng sử dụng của ứng dụng của bạn, và một vài yếu tố nữa. Do đó, rất đáng để có được mô hình dữ liệu của mình đúng ngay lần đầu tiên. Điều này đặc biệt đúng khi lấy dữ liệu từ các nguồn trong một ứng dụng. Ví dụ: một số thông tin bạn cần có thể được chứa trong các nguồn bên ngoài, cùng với cơ sở dữ liệu nội bộ. Một phần lớn của việc phát triển mô hình dữ liệu là thiết lập dữ liệu bạn sẽ cần và dữ liệu đó sẽ đến từ đâu. Có sẵn một mô hình dữ liệu hiệu quả cũng cho phép bạn đảm bảo khả năng tương thích giữa nhiều nguồn, hiệu suất tối ưu, khả năng mở rộng và bảo mật hiệu quả.

Cách tạo một Mô hình dữ liệu cho app project của bạn trong 9 bước

Để đảm bảo kết quả tốt nhất, bạn nên tuân theo một khuôn khổ có thể lặp lại Dưới đây là các bước cụ thể bạn có thể làm theo để xây dựng Mô hình dữ liệu hoàn hảo cho app project tiếp theo của mình, cùng với tất cả những điều quan trọng bạn sẽ cần xem xét trong suốt quá trình.

1. Thu thập các yêu cầu nghiệp vụ

Bước đầu tiên là thu thập các yêu cầu nghiệp vụ về cách ứng dụng của bạn sẽ xử lý dữ liệu. Ở giai đoạn này, các yêu cầu có thể khá chung chung và chúng ta không cần phải lo lắng về các biến cụ thể. Về cơ bản, thu thập các yêu cầu có nghĩa là tìm ra những gì ứng dụng của bạn thực sự sẽ làm và tổng quan rộng rãi về dữ liệu bạn sẽ cần để đạt được điều này. Ví dụ: nếu chúng ta đang xây dựng ứng dụng bảng chấm công cho nhân viên, các yêu cầu cấp cao của chúng ta sẽ trông giống như sau: • Nhân viên sẽ có thể ghi lại hàng giờ đối với các dự án khác nhau. • Chủ dự án có thể giám sát việc sử dụng thời gian. • Chủ sở hữu dự án có thể truy vấn và phê duyệt việc đệ trình bảng chấm công. • Ứng dụng phải tích hợp với CRM và nền tảng thanh toán. Tất nhiên, đây chỉ là một vài ví dụ minh họa về các loại yêu cầu mà chúng ta có thể giải quyết.

2. Xác định quy trình nghiệp vụ

Tiếp theo, chúng ta có thể bắt đầu bổ sung các yêu cầu của mình thành các quy trình cụ thể hơn. Điều này có nghĩa là phác thảo những gì ứng dụng nên làm để phản ứng với các sự kiện và trình kích hoạt khác nhau. Điều này bao gồm các quy trình hệ thống, cũng như phản hồi đối với hành động của người dùng. Một lần nữa, chúng ta vẫn muốn làm điều này trong các thuật ngữ trừu tượng, mà không cần lo lắng về các biến cụ thể. Bước này còn được gọi là tạo mô hình dữ liệu logic. Sau đó, chúng ta sẽ sử dụng thông tin này để xây dựng cấu trúc dữ liệu cụ thể hơn. Hiện tại, chúng ta có thể đơn giản phác thảo các quy trình mong muốn của mình bằng ngôn ngữ kinh doanh, phi kỹ thuật. Ví dụ: Chúng ta có thể phác thảo các quy trình kinh doanh sau cho ví dụ về bảng chấm công của chúng ta: • Ứng dụng sẽ tính toán chi phí lao động cho tất cả các lần nộp bảng chấm công. • Người quản lý dự án nên được thông báo khi một nhân viên nộp bảng chấm công có liên quan. • Người quản lý dự án phải có thể xem tình trạng của từng dự án, về chi phí và thời gian sử dụng. • Nhân viên chỉ có thể chỉnh sửa các bài nộp của riêng họ. Người quản lý dự án sẽ có thể chỉnh sửa bất kỳ nội dung đệ trình nào có liên quan. • Hệ thống nên tích hợp với các nền tảng bên ngoài để tạo và gửi hóa đơn, dựa trên bảng chấm công của dự án. Một lần nữa, đây chỉ là một vài ví dụ về các quy tắc kinh doanh. Mục tiêu của mô hình logic là xác định rõ các hành động khác nhau mà người dùng có thể thực hiện và cách ứng dụng của chúng tôi sẽ phản hồi, cùng với bất kỳ quy trình nào khác mà nó có thể tiến hành phía sau. Sau đó, chúng ta có thể bắt đầu lập kế hoạch dữ liệu mà ta cần để đạt được điều này.

3. Tạo một mô hình dữ liệu khái niệm

Bước tiếp theo là tạo một mô hình dữ liệu khái niệm. Đây là một kế hoạch có cấu trúc hơn cho dữ liệu mà chúng tôi sẽ cần để triển khai các quy trình mà chúng tôi đã xác định ở bước trước. Hiện tại, chúng tôi sẽ tiếp tục sử dụng thuật ngữ kinh doanh, phi kỹ thuật. Các chi tiết kỹ thuật cụ thể hơn sẽ nói sau. Tạo một mô hình khái niệm là tất cả về việc tìm ra cách các loại dữ liệu khác nhau sẽ được cấu trúc để đáp ứng các mục tiêu của chúng ta. Bước đầu tiên ở đây là quyết định các thực thể rộng mà dữ liệu của chúng ta sẽ bao gồm. Sau đó, chúng ta có thể phác thảo thông tin mà ta cần biết về từng thứ này và bắt đầu vẽ ra các liên kết chung giữa chúng. Vì vậy, trong ví dụ về ứng dụng bảng chấm công của chúng ta, các thực thể của chúng ta sẽ cần bao gồm: • Nhân viên, • Dự án, • Chủ dự án, • Bảng chấm công, • Người dùng. Tùy thuộc vào doanh nghiệp của bạn, bạn có thể thêm các thực thể bổ sung. Ví dụ: các nhiệm vụ riêng lẻ trong các dự án hoặc các nguồn lực khác mà bạn cần để thực hiện chúng. Tiếp theo, chúng tôi sẽ tạo một phác thảo ngắn gọn về các loại dữ liệu mà chúng tôi sẽ lưu trữ cho mỗi thực thể. Ví dụ: chi tiết cá nhân và nghề nghiệp của nhân viên của bạn cũng như tỷ lệ hàng giờ, hoặc các yêu cầu, ngân sách và mục tiêu của từng dự án. Cuối cùng, mô hình khái niệm của bạn nên bao gồm tổng quan về cách các thực thể khác nhau có liên quan. Ví dụ: mỗi dự án có một chủ sở hữu, mỗi nhân viên có thể gửi nhiều bảng chấm công, v.v.

4. Xác định các thực thể và thuộc tính

Khi đã xác định được các thực thể của mình, chúng ta có thể bắt đầu xác định chúng chặt chẽ hơn. Cách phổ biến nhất để làm điều này là dịch từng thực thể thành một bảng cơ sở dữ liệu riêng biệt. Ở đây, các hàng sẽ đại diện cho từng trường hợp riêng lẻ của thực thể của chúng ta, như một nhân viên hoặc dự án cụ thể. Mỗi cột sẽ đại diện cho một thuộc tính cụ thể mà ta muốn lưu trữ cho mỗi thực thể của mình. Điều này có nghĩa là chúng ta cần quyết định: • Các biến cụ thể mà chúng ta cần biết, • Chúng sẽ được định dạng như thế nào, • Ta sẽ gọi chúng là gì, • Và quy tắc nào chúng ta sẽ áp dụng cho chúng. Nếu bạn quyết định rằng bạn cần tạo một cơ sở dữ liệu mới cho ứng dụng của mình, điều này sẽ tạo thành một phần của lược đồ của bạn. Nếu bạn định dựa vào dữ liệu hiện có, bạn cần phải tính đến điều này khi chọn nguồn của mình.

5. Xác định nguồn dữ liệu

Một phần lớn mô hình dữ liệu của bạn đang tìm hiểu xem các giá trị sẽ đến từ đâu và cách chúng nên được lưu trữ để ứng dụng của bạn hoạt động bình thường. Điều này có nghĩa là xác định các nguồn dữ liệu của ứng dụng của bạn. Điều này bao gồm: • Cơ sở dữ liệu nội bộ, • Cơ sở dữ liệu bên ngoài, • API và dịch vụ web, • Các tập tin phẳng, • Các tài sản kinh doanh hiện có khác. Lưu ý rằng đây là những nguồn chính của dữ liệu hiện có mà chúng ta có thể sử dụng. Chúng ta cũng có thể thêm hoặc cập nhật các giá trị bên trong chúng bằng cách gửi các truy vấn từ ứng dụng đã hoàn thành của mình. Một trong những nhiệm vụ quan trọng ở đây là quyết định tạo nguồn dữ liệu hoàn toàn mới hay dựa vào nguồn dữ liệu hiện có. Tất nhiên, chúng ta có thể xây dựng mô hình dữ liệu của mình dựa trên sự kết hợp của cả hai. Thông thường, có các tùy chọn khác nhau có sẵn để đạt được kết quả tương tự. Hãy cùng suy nghĩ về những cách khác nhau mà chúng ta có thể cấu trúc nguồn dữ liệu cho bảng chấm công nhân viên của mình. Tùy chọn đơn giản nhất sẽ là xây dựng một cơ sở dữ liệu nội bộ chuyên dụng xung quanh các thực thể mà ta đã xác định. Điều này sẽ cung cấp cho chúng ta nhiều quyền kiểm soát nhất đối với cách các thuộc tính và thực thể được cấu trúc và lưu trữ, vì chúng ta phải tạo lược đồ cơ sở dữ liệu của riêng mình từ đầu. Tuy nhiên, điều này cũng sẽ làm cho việc tích hợp với các nền tảng khác phức tạp hơn một chút. Chúng ta cũng có thể kết nối với cơ sở dữ liệu bên ngoài hiện có, trực tiếp hoặc sử dụng API. Đó là, giả sử rằng một cơ sở dữ liệu phù hợp tồn tại. Đương nhiên, điều này tiết kiệm cho chúng ta đỡ phải tạo ra cho riêng mình. Nó cũng giúp bạn dễ dàng tích hợp với bất kỳ công cụ nào khác đã truy vấn cùng một dữ liệu. Nhược điểm là các lược đồ của cơ sở dữ liệu hiện có có thể không phù hợp với nhu cầu của chúng ta. Trong trường hợp này, ta cần chuyển đổi kết quả đầu ra truy vấn để định dạng dữ liệu theo cách đáp ứng các yêu cầu của mình. Thông thường, chúng ta sẽ cần thực hiện kết hợp cả hai. Vì vậy, trong ứng dụng bảng chấm công của mình, ta có thể lấy thông tin chi tiết về nhân viên và thông tin dự án từ các nguồn bên ngoài, nhưng tạo cơ sở dữ liệu nội bộ để lưu trữ thông tin đầu vào của người dùng cho các lần gửi bảng chấm công.

6. Thiết lập mối quan hệ giữa các thực thể

Trước đó, chúng ta đã đề cập ngắn gọn về cách xác định mối quan hệ giữa các thực thể khác nhau trong mô hình dữ liệu của chúng tôi. Bây giờ chúng ta đã có một cái nhìn kỹ thuật và vững chắc hơn về các thực thể của mình, chúng ta có thể thiết lập các mối quan hệ cụ thể hơn giữa chúng. Có một số điều khác nhau cần lưu ý ở đây. Trước hết, điều quan trọng là phải chọn đúng loại mối quan hệ cho từng nhóm thực thể. Có một số tùy chọn ở đây: • Quan hệ một-một • Quan hệ một-nhiều • Quan hệ nhiều-nhiều Chúng ta cũng sẽ cần quyết định cột nào trong mỗi bảng để xây dựng các mối quan hệ xung quanh. Các chi tiết cụ thể ở đây sẽ phụ thuộc vào DBMS của bạn. Ví dụ: trong một cơ sở dữ liệu SQL duy nhất, bạn sẽ cần xác định các primary key cho mỗi hàng trong một bảng nhất định. Đây là các giá trị duy nhất, được các bảng khác sử dụng để tham chiếu các hàng có liên quan. Khi một primary key xuất hiện trong một bảng có liên quan, nó được gọi là foreign key. Nếu mô hình dữ liệu của bạn chứa nhiều cơ sở dữ liệu, bạn sẽ cần thực hiện các bước bổ sung để thiết lập mối quan hệ. Ví dụ: xây dựng cơ sở dữ liệu nội bộ, để bạn có thể truy vấn và lưu trữ các thực thể từ các nguồn khác nhau.

7. Mô hình vật lý

Tiếp theo, đã đến lúc tạo mô hình dữ liệu vật lý. Điều này bao gồm chi tiết cụ thể hơn về cách bạn sẽ cấu trúc bất kỳ cơ sở dữ liệu nội bộ nào và cách bạn sẽ kết nối với các nguồn dữ liệu bên ngoài. Như vậy, việc tạo ra một mô hình vật lý về cơ bản có nghĩa là đưa các bước trước đó vào thực tế. Nếu bạn đang tạo thiết kế cơ sở dữ liệu của riêng mình cho ứng dụng của mình, điều này có nghĩa là xác định tên cụ thể cho tất cả các thuộc tính của bạn, cũng như các loại, định dạng, ràng buộc toàn vẹn và bất kỳ quy tắc nào khác điều chỉnh chúng. Khi làm việc với các nguồn dữ liệu bên ngoài, chúng ta cũng sẽ phải suy nghĩ về cách ta kết nối những nguồn này với ứng dụng của mình. Một cách để thực hiện việc này là trỏ đến tên, vị trí, chi tiết xác thực và thông tin khác của nguồn theo cách thủ công trong mã ứng dụng của mình. Với các công cụ mã thấp và các nền tảng xây dựng ứng dụng mới hơn khác, chúng ta cũng có thể sử dụng các trình kết nối dữ liệu chuyên dụng. Đây là các giao diện chuyên dụng để thiết lập kết nối với các loại dữ liệu bên ngoài cụ thể. Thay vì tạo mã cần thiết theo cách thủ công, bạn có thể chỉ cần nhập thông tin cần thiết vào GUI. Tùy thuộc vào công cụ và nguồn dữ liệu, sau đó bạn có thể tạo thủ công các truy vấn bạn cần hoặc nhập tất cả các truy vấn có sẵn do nguồn cung cấp.

8. Chuẩn hoá và đảm bảo tính toàn vẹn của dữ liệu

Một trong những mục tiêu chính của bạn khi tạo mô hình dữ liệu là đảm bảo tính hợp lệ, độ tin cậy và tính toàn vẹn lâu dài của dữ liệu ứng dụng của bạn. Điều này bao gồm tránh dư thừa, giá trị xung đột, vấn đề định dạng và hơn thế nữa. Một cách để làm điều này là thông qua chuẩn hóa dữ liệu. Bản thân nó là một chủ đề. Về cơ bản, đây là một tập hợp các chiến lược bạn có thể sử dụng để ngăn chặn sự dư thừa và dị thường khi bạn duy trì dữ liệu. Có rất nhiều kỹ thuật có sẵn cho bạn ở đây. Phổ biến nhất liên quan đến cách bạn cấu trúc dữ liệu của mình ngay từ đầu. Cụ thể hơn, mục tiêu là tạo ra các thực thể, mỗi thực thể giải quyết một chủ đề hoặc ý tưởng cụ thể. Nếu bạn đã làm theo lời khuyên mà chúng tôi đã đưa ra cho đến nay, thì điều này sẽ được tích hợp vào mô hình dữ liệu của bạn. Quy tắc ở đây là bất kỳ khi nào một nhóm giá trị có thể áp dụng cho nhiều hàng trên một bảng, bạn nên cân nhắc tạo một thực thể dành riêng cho những hàng này và sử dụng các mối quan hệ để liên kết nó với bảng gốc. Điều này cải thiện hiệu suất, cũng như giảm không gian lưu trữ mà chúng ta cần. Ví dụ: trong thư mục nhân viên, chúng ta có thể có các thuộc tính được gọi là department_name, department_phone và department_head được lưu trữ dựa trên từng hàng nhân viên riêng lẻ. Điều này có nghĩa là chúng tôi phải lưu trữ cùng một thông tin chính xác nhiều lần trên bảng employee_details. Việc liệt kê tất cả các phòng ban của công ty hoặc thay đổi thông tin chi tiết của chúng cũng sẽ trở nên khó khăn một cách không cần thiết. Do đó, giải pháp tốt hơn sẽ là tạo một bảng phòng ban chuyên dụng và liên kết hàng có liên quan với mục nhập của từng nhân viên. Điều này cung cấp khả năng truy vấn và bảo trì dễ dàng hơn, cũng như giảm tải trên các máy chủ của bạn.

9. Duy trì mô hình dữ liệu của bạn

Ngay cả khi mô hình dữ liệu của bạn được triển khai, vẫn có vấn đề về việc duy trì nó. Điều này đặt ra một số thách thức, đặc biệt là khi nói đến việc mở rộng ứng dụng của bạn. Ví dụ: khi nói đến việc phát triển tập dữ liệu của bạn và thêm chức năng mới vào chính ứng dụng. Điều quan trọng là bạn có thể đáp ứng với sự thay đổi mà không làm hỏng mô hình dữ liệu của mình. Điều này có thể có nghĩa là thêm các đối tượng, thay đổi các đối tượng hiện có, sửa đổi các mối quan hệ hoặc thay đổi các thuộc tính riêng lẻ. Chìa khóa là đảm bảo rằng mô hình dữ liệu của bạn có thể dễ dàng thích ứng khi cần thay đổi. Ví dụ: nếu bạn cần thêm chức năng, thực thể, thuộc tính, quy trình hoặc mối quan hệ mới. Đó là, bạn phải có thể thực hiện các thay đổi theo yêu cầu của mình mà không ảnh hưởng đến các yếu tố khác của dữ liệu. Ví dụ: một sự thay đổi đối với một thuộc tính có thể vô tình tác động đến một thuộc tính khác, thông qua một phụ thuộc bắc cầu. Vì vậy, ví dụ: bạn có thể cần phải thay đổi định dạng của một thuộc tính cụ thể để triển khai hỗ trợ cho công cụ bên thứ ba mới. Khi làm như vậy, có một nguy cơ là bạn có thể phá vỡ bất kỳ phần tử nào khác của mô hình dữ liệu phụ thuộc vào thuộc tính này. Điều quan trọng là phải thực hiện các bước để ngăn chặn điều này. Ngoài ra, còn có thách thức là đảm bảo bạn có đủ dung lượng máy chủ để tạo điều kiện phát triển, cả về không gian lưu trữ và số lượng người dùng. Lập kế hoạch đầy đủ cho việc này trong giai đoạn mô hình hóa giúp ngăn chặn nhu cầu di chuyển dữ liệu sau này.


Anonymous

Anonymous

Related Posts

Database
Mô hình hoá dữ liệu là gì?
September 24, 2022
8 min
© 2022, All Rights Reserved.

Quick Links

Liên hệ quảng cáoThông tinLiên hệ

Social Media