Thiết kế cơ sở dữ liệu. Các phương pháp hay nhất

Dự đoán sự bắt đầu của luồng tiếp theo với tốc độ "Cơ sở dữ liệu" Chúng tôi đã chuẩn bị một tài liệu nhỏ dành cho tác giả với các mẹo quan trọng để thiết kế cơ sở dữ liệu. Chúng tôi hy vọng tài liệu này sẽ hữu ích cho bạn.

Thiết kế cơ sở dữ liệu. Các phương pháp hay nhất

Cơ sở dữ liệu có ở khắp mọi nơi: từ các blog và thư mục đơn giản nhất đến các hệ thống thông tin đáng tin cậy và các mạng xã hội rộng lớn. Cơ sở dữ liệu đơn giản hay phức tạp không quá quan trọng mà quan trọng là phải thiết kế nó một cách chính xác. Khi một cơ sở dữ liệu được thiết kế thiếu suy nghĩ và không hiểu rõ mục đích thì không những không hiệu quả mà việc tiếp tục làm việc với cơ sở dữ liệu sẽ là một cực hình thực sự, một khu rừng không thể xuyên thủng đối với người dùng. Dưới đây là một số mẹo thiết kế cơ sở dữ liệu sẽ giúp bạn tạo ra một sản phẩm hữu ích và dễ sử dụng.

1. Xác định bảng dùng để làm gì và cấu trúc của nó như thế nào

Thiết kế cơ sở dữ liệu. Các phương pháp hay nhất

Ngày nay, các phương pháp phát triển như Scrum hay RAD (Rapid Application Development) giúp các nhóm CNTT phát triển cơ sở dữ liệu một cách nhanh chóng. Tuy nhiên, trong quá trình theo đuổi thời gian, sự cám dỗ rất lớn là lao thẳng vào việc xây dựng căn cứ, mơ hồ tưởng tượng mục tiêu là gì, kết quả cuối cùng sẽ như thế nào.
 
Có vẻ như cả nhóm đang tập trung vào công việc hiệu quả và nhanh chóng, nhưng đây chỉ là ảo ảnh. Bạn càng đi sâu và tìm hiểu sâu về dự án thì càng mất nhiều thời gian để xác định và thay đổi các lỗi trong thiết kế cơ sở dữ liệu.

Vì vậy, điều đầu tiên bạn cần quyết định là xác định mục đích cho cơ sở dữ liệu của mình. Cơ sở dữ liệu đang được phát triển cho loại ứng dụng nào? Người dùng sẽ chỉ làm việc với hồ sơ và cần chú ý đến các giao dịch hay họ quan tâm hơn đến phân tích dữ liệu? Căn cứ nên được triển khai ở đâu? Nó sẽ theo dõi hành vi của khách hàng hay chỉ đơn giản là quản lý các mối quan hệ với khách hàng? 

Nhóm thiết kế trả lời những câu hỏi này càng sớm thì quy trình thiết kế cơ sở dữ liệu sẽ càng suôn sẻ.

2. Tôi nên chọn dữ liệu nào để lưu trữ?

Thiết kế cơ sở dữ liệu. Các phương pháp hay nhất

Lên kế hoạch trước. Những suy nghĩ về trang web hoặc hệ thống mà cơ sở dữ liệu đang được thiết kế sẽ hoạt động như thế nào trong tương lai. Điều quan trọng là phải vượt xa những yêu cầu đơn giản về thông số kỹ thuật. Chỉ xin vui lòng đừng bắt đầu nghĩ về tất cả các loại dữ liệu có thể có mà người dùng sẽ lưu trữ. Thay vào đó, hãy nghĩ xem liệu người dùng có thể viết bài, tải tài liệu, ảnh hoặc trao đổi tin nhắn hay không. Nếu đúng như vậy thì bạn cần phân bổ không gian cho chúng trong cơ sở dữ liệu.

Làm việc với nhóm, bộ phận hoặc tổ chức mà cơ sở thiết kế sẽ được hỗ trợ trong tương lai. Giao tiếp với mọi người ở các cấp độ khác nhau, từ chuyên gia dịch vụ khách hàng đến trưởng bộ phận. Bằng cách này, với sự trợ giúp của phản hồi, bạn sẽ hiểu rõ hơn về các yêu cầu của công ty. 

Không thể tránh khỏi, nhu cầu của người dùng ngay cả trong cùng một bộ phận cũng sẽ xung đột với nhau. Nếu gặp phải điều này, đừng ngại dựa vào kinh nghiệm của bản thân và tìm ra giải pháp thỏa hiệp phù hợp với tất cả các bên và thỏa mãn mục tiêu cuối cùng của cơ sở dữ liệu. Hãy yên tâm: trong tương lai bạn sẽ nhận được +100500 nghiệp chướng và một núi bánh quy.

3. Dữ liệu mô hình một cách cẩn thận

Thiết kế cơ sở dữ liệu. Các phương pháp hay nhất

Có một số điểm chính cần chú ý khi lập mô hình dữ liệu. Như chúng tôi đã nói trước đó, mục đích của cơ sở dữ liệu xác định phương pháp nào sẽ được sử dụng trong mô hình hóa. Nếu chúng tôi đang thiết kế cơ sở dữ liệu để xử lý bản ghi trực tuyến (OLTP), nói cách khác là để tạo, chỉnh sửa và xóa bản ghi, chúng tôi sử dụng mô hình giao dịch. Nếu cơ sở dữ liệu phải mang tính quan hệ thì tốt nhất nên sử dụng mô hình đa chiều.

Trong quá trình lập mô hình, các mô hình dữ liệu khái niệm (CDM), vật lý (PDM) và logic (LDM) được xây dựng. 

Các mô hình khái niệm mô tả các thực thể và loại dữ liệu mà chúng bao gồm cũng như mối quan hệ giữa chúng. Chia dữ liệu của bạn thành các phần hợp lý - điều này giúp cuộc sống dễ dàng hơn nhiều.
Điều chính là điều độ, đừng lạm dụng nó.

Nếu một thực thể rất khó phân loại trong một từ hoặc cụm từ thì đã đến lúc sử dụng các kiểu con (thực thể con).

Nếu một thực thể có cuộc sống riêng, có các thuộc tính mô tả hành vi và diện mạo của nó, cũng như các mối quan hệ với các đối tượng khác, thì bạn có thể sử dụng không chỉ một kiểu con mà còn cả một siêu kiểu (thực thể mẹ) một cách an toàn. 

Nếu bạn bỏ qua quy tắc này, các nhà phát triển khác sẽ bối rối trong mô hình của bạn và sẽ không hiểu đầy đủ dữ liệu cũng như các quy tắc về cách thu thập dữ liệu đó.

Các mô hình khái niệm được thực hiện bằng cách sử dụng các mô hình logic. Những mô hình này giống như một bản đồ chỉ đường cho việc thiết kế cơ sở dữ liệu vật lý. Trong mô hình logic, các thực thể dữ liệu nghiệp vụ được xác định, các loại dữ liệu được xác định và trạng thái của khóa quy tắc được xác định để chi phối mối quan hệ giữa dữ liệu.

Sau đó, Mô hình dữ liệu logic được so sánh với nền tảng DBMS (hệ thống quản lý cơ sở dữ liệu) đã chọn trước và thu được Mô hình vật lý. Nó mô tả cách dữ liệu được lưu trữ vật lý.

4. Sử dụng đúng kiểu dữ liệu

Thiết kế cơ sở dữ liệu. Các phương pháp hay nhất

Việc sử dụng sai loại dữ liệu có thể dẫn đến dữ liệu kém chính xác hơn, khó nối các bảng, khó đồng bộ hóa các thuộc tính và kích thước tệp quá lớn.
Để đảm bảo tính toàn vẹn của thông tin, một thuộc tính chỉ được chứa các loại dữ liệu được nó chấp nhận. Nếu tuổi được nhập vào cơ sở dữ liệu, hãy đảm bảo rằng cột lưu trữ số nguyên có tối đa 3 chữ số.

Tạo tối thiểu các cột trống có giá trị NULL. Nếu bạn tạo tất cả các cột là NULL thì đây là một sai lầm lớn. Nếu bạn cần một cột trống để thực hiện một chức năng kinh doanh cụ thể, khi dữ liệu chưa xác định hoặc chưa có ý nghĩa, thì hãy thoải mái tạo nó. Suy cho cùng, chúng ta không thể điền trước vào các cột “Ngày mất” hoặc “Ngày sa thải”; chúng ta không phải là những người dự đoán chỉ tay lên trời :-).

Hầu hết các phần mềm mô hình hóa (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) data cho phép bạn tạo nguyên mẫu của vùng dữ liệu. Điều này đảm bảo không chỉ kiểu dữ liệu chính xác, logic ứng dụng và hiệu suất tốt mà còn yêu cầu giá trị.

5. Hãy tự nhiên

Thiết kế cơ sở dữ liệu. Các phương pháp hay nhất

Khi quyết định sử dụng cột nào trong bảng làm khóa, hãy luôn xem xét những trường nào người dùng có thể chỉnh sửa. Đừng bao giờ chọn chúng làm chìa khóa - một ý tưởng tồi. Bất cứ điều gì cũng có thể xảy ra, nhưng bạn phải đảm bảo rằng nó là duy nhất.

Tốt nhất là sử dụng chìa khóa tự nhiên hoặc doanh nghiệp. Nó có ý nghĩa ngữ nghĩa nên bạn sẽ tránh được sự trùng lặp trong cơ sở dữ liệu. 

Trừ khi khóa doanh nghiệp là duy nhất (tên, họ, vị trí) và được lặp lại ở các hàng khác nhau của bảng hoặc nó phải thay đổi, thì khóa nhân tạo được tạo phải được chỉ định làm khóa chính.

6. Bình thường hóa ở mức độ vừa phải

Thiết kế cơ sở dữ liệu. Các phương pháp hay nhất

Để tổ chức dữ liệu trong cơ sở dữ liệu một cách hiệu quả, bạn cần tuân theo một bộ nguyên tắc và chuẩn hóa cơ sở dữ liệu. Có năm hình thức bình thường để làm theo.
Với tính năng chuẩn hóa, bạn tránh được sự dư thừa và đảm bảo tính toàn vẹn của dữ liệu được sử dụng trong ứng dụng hoặc trang web của bạn.

Như mọi khi, mọi thứ nên ở mức độ vừa phải, thậm chí là bình thường hóa. Nếu có quá nhiều bảng trong cơ sở dữ liệu có cùng khóa duy nhất thì bạn đã quá chuẩn hóa cơ sở dữ liệu quá mức. Chuẩn hóa quá mức ảnh hưởng tiêu cực đến hiệu suất cơ sở dữ liệu.

7. Kiểm tra sớm, kiểm tra thường xuyên

Thiết kế cơ sở dữ liệu. Các phương pháp hay nhất

Kế hoạch kiểm tra và kiểm tra thích hợp phải là một phần của thiết kế cơ sở dữ liệu.

Cách tốt nhất để kiểm tra cơ sở dữ liệu của bạn là thông qua Tích hợp liên tục. Mô phỏng kịch bản “một ngày trong vòng đời của cơ sở dữ liệu” và kiểm tra xem tất cả các trường hợp biên có được xử lý hay không và khả năng tương tác của người dùng là gì. Bạn càng tìm thấy lỗi sớm thì bạn càng tiết kiệm được cả thời gian và tiền bạc.

Đây chỉ là bảy mẹo bạn có thể sử dụng để thiết kế cơ sở dữ liệu có năng suất và hiệu quả cao. Nếu bạn làm theo chúng, bạn sẽ tránh được hầu hết những cơn đau đầu trong tương lai. Những lời khuyên này chỉ là phần nổi của tảng băng trôi trong mô hình cơ sở dữ liệu. Có rất nhiều mẹo vặt trong cuộc sống. Bạn sử dụng cái nào?

Nguồn: www.habr.com

Thêm một lời nhận xét