Khi nào nên áp dụng chuẩn hóa trong thiết kế cơ sở dữ liệu


7

Xin chào các quản trị viên cơ sở dữ liệu. Gần đây, tôi đã đọc về chuẩn hóa để cải thiện kỹ năng thiết kế cơ sở dữ liệu của mình. Tuy nhiên, tôi hơi bối rối khi áp dụng kỹ thuật này. Trước khi tìm hiểu về chuẩn hóa, tôi thường đọc kịch bản / mô tả trong các yêu cầu và lập sơ đồ ER (sử dụng ký hiệu Chen) sử dụng danh từ làm thực thể và động từ làm đầu mối cho các mối quan hệ của chúng, sau đó đi thẳng vào thực hiện các câu lệnh SQL để tạo những cái bàn.

Hiện tại, dường như việc chuẩn hóa được thực hiện sau khi thiết kế sơ đồ ER sau đó áp dụng nó cho bất kỳ thực thể nào có chứa thuộc tính đa giá trị.

Tôi có đúng trong suy nghĩ này không? Hoặc tôi có nên thực hiện chuẩn hóa trước khi tạo một digram ER, có lẽ sau khi liệt kê các thuộc tính có thể có của một hệ thống?

Câu trả lời:


4

Câu hỏi hay. Chuẩn hóa cơ sở dữ liệu thường được dạy như là một quá trình Chuẩn hóa bằng phân tách - tức là bạn lấy một lược đồ hiện có và sau đó cải thiện nó bằng cách áp dụng các phân tách nonloss tạo ra một lược đồ mới từ thiết kế cũ. Trong thực tế đó thường không phải là những gì được yêu cầu.

Nếu bạn đang tạo một bảng mới hoặc tập hợp các bảng mới thì điển hình hơn là điểm bắt đầu của bạn là một danh sách các thuộc tính bạn muốn đại diện. Do đó, bạn nên xác định các phụ thuộc giữa các thuộc tính và sau đó tạo các bảng được chuẩn hóa trực tiếp dựa trên các phụ thuộc đó. Thường thì điều này có thể được thực hiện về mặt tinh thần hoặc trên giấy trước khi các bảng thậm chí được thêm vào thiết kế thực tế.

Mô hình ER không nhất thiết là cách tốt nhất để đạt được điều này. Mô hình hóa vai trò đối tượng là một cách để tạo ra một mô hình ngữ nghĩa nắm bắt chính xác nhiều khía cạnh của mô hình hóa dữ liệu và quy tắc kinh doanh hơn so với mô hình ER có thể. Bạn có thể sử dụng các công cụ như NORMA để tạo lược đồ cơ sở dữ liệu 5NF trực tiếp từ mô hình ORM mà không cần bất kỳ bước chuẩn hóa cụ thể nào.



Quản lý để làm điều này về mặt tinh thần thường là một kỹ năng có được, giống như có thể rút ra một phương trình hoặc tích hợp một phương trình trong đầu là một kỹ năng có được. Lúc đầu, bạn phải thực hiện nó một cách lâu dài, nhưng với thời gian và thực hành lặp đi lặp lại, nó trở nên dễ dàng hơn khi thực hiện.
jcolebrand

4

Nghe có vẻ như bạn tìm thấy nó ở đâu đó trong một khóa học CS hoặc tương tự (đó là một điều tốt IMO). Tôi cũng học nó ở một số lớp và tôi thích cách tiếp cận của giáo viên:

các đồng nghiệp từ các trường phổ thông khác, các khóa học, ... nói với tôi rằng họ đã được trao những bài báo lớn giải thích sự bình thường hóa theo cách rất lý thuyết (do đó khá nhàm chán) và họ không biết làm thế nào để chuyển kiến ​​thức trị liệu này vào sơ đồ ER.

Mặt khác, chúng tôi dành nhiều giờ để tìm hiểu cách thiết kế sơ đồ ER, các ý tưởng tạo nên cơ sở dữ liệu tốt và có thể bảo trì, cách giải quyết các vấn đề phát sinh trong sơ đồ cũng như trong cơ sở dữ liệu (với SQL) và hơn thế nữa . Sau khi những khái niệm này được suy nghĩ, chúng tôi đã nói "những gì bạn đã làm được gọi là" bình thường hóa ". Bạn đã làm điều này và rằng khi thiết kế ER, đây là hình thức chuẩn hóa đầu tiên .....

Một câu bị mắc kẹt trong đầu tôi đối với những câu hỏi như vậy từ giáo viên của tôi là "với mô hình ER được thiết kế tốt và hợp lý, bạn C ALNG CÓ một cơ sở dữ liệu chuẩn hóa, vì vậy bạn không cần phải suy nghĩ về tất cả các hình thức chuẩn hóa".

Vì câu hỏi của bạn không phải là về CÁCH / TẠI SAO sử dụng chuẩn hóa mà là KHI trong quá trình thiết kế, tôi nghĩ rằng văn bản dài của tôi ở trên cung cấp cho bạn một câu trả lời khả thi: khi bạn hiểu các nguyên tắc của thiết kế DB tốt, hơn là mô hình ER cuối cùng của bạn được định mức (ví dụ bạn đã tạo các bảng tham gia thích hợp, các khóa ngoại được sử dụng được áp dụng, ...). Tôi nghĩ rằng đó là một quá trình cần đi đôi với việc thiết lập các bảng, quan hệ của họ và vân vân.

Tất nhiên, bình thường hóa không phải lúc nào cũng cần hoặc muốn nhưng trong hầu hết các trường hợp, "vẽ" ER và suy nghĩ nó thông qua giúp bạn tránh áp dụng chuẩn hóa bằng cách nhìn vào mô hình và suy nghĩ: "OK, dạng thứ nhất, là giá trị của tôi là nguyên tử nhất có thể "


1

Chuẩn hóa, như một quá trình, xảy ra sau mô hình logic và trước mô hình vật lý. Quá thường xuyên, mọi người bỏ qua mô hình logic thực tế và kết thúc với một mô hình vật lý có tên thân thiện với doanh nghiệp. Mô hình logic nên xác định các thực thể và mối quan hệ dữ liệu (thường bị nhầm lẫn với các ràng buộc bảng), do đó thuật ngữ 'ERD'.

Vì các mô hình vật lý thường được thảo luận dưới dạng 'Biểu mẫu thông thường', các bảng phải đã được 'chuẩn hóa', phải không? Từ quan điểm thiết kế, quá trình biến đổi nó thành một mô hình vật lý là khi bạn áp dụng chuẩn hóa. Đó là khi các thực thể trở thành quan hệ (hoặc bảng) và các mối quan hệ được thực thi thông qua các ràng buộc, như một sản phẩm phụ của quá trình chuẩn hóa.

Nói cách khác, suy nghĩ của bạn là chính xác :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.