2010-01-31 31 views
14

Bình thường hóa cơ sở dữ liệu vẫn là "điều?"Việc chuẩn hóa cơ sở dữ liệu có cần thiết không?

Khi tôi học trong khóa học cơ sở dữ liệu, chúng tôi đã được dạy tất cả các cấp độ chuẩn hóa và được cho rằng chúng tôi phải luôn luôn làm điều đó.

Bây giờ, với tất cả các chuyển động NoSQL, có vẻ như việc bình thường hóa không còn là điều cần làm nữa?

Trả lời

10

Tùy thuộc vào loại ứng dụng đang sử dụng cơ sở dữ liệu.

Đối với các ứng dụng OLTP (nhập dữ liệu chủ yếu, với nhiều INSERT, UPDATE và DELETES, cùng với SELECT), bình thường hóa thường là một điều tốt.

Đối với các ứng dụng OLAP và báo cáo, việc chuẩn hóa không hữu ích. Các truy vấn SELECT sẽ chạy nhanh hơn nhiều so với lược đồ không chuẩn hóa, có thể đạt được với các khung nhìn.

Bạn cũng có thể tìm thấy một số thông tin hữu ích trong những câu hỏi rất phổ biến tương tự:

Should I normalize my DB or not?

In terms of databases, is “Normalize for correctness, denormalize for performance” a right mantra?

What is the resource impact from normalizing a database?

How to convince someone to normalize a database?

Is it really better to use normalized tables?

+0

Cảm ơn bạn đã phản hồi sâu sắc! Chỉ một câu hỏi - OLTP là gì? – bodacydo

+0

Xử lý giao dịch trực tuyến. Nó đề cập đến các ứng dụng mà người dùng đang thực hiện nhập dữ liệu hoặc CRUD (tạo, đọc, cập nhật, xóa). Trong các ứng dụng này, có các cuộc gọi đến cơ sở dữ liệu đến dữ liệu INSERT, UPDATE và DELETE, ngoài SELECT. Tương phản với Xử lý và báo cáo phân tích trực tuyến, nơi hầu hết tương tác cơ sở dữ liệu là CHỌN, và có rất ít INSERT, UPDATE hoặc DELETE. – DOK

6

NoSQL không phải là một viên đạn bạc: nó chỉ đơn giản là một công nghệ có thể cung cấp phù hợp hơn cho một số trường hợp nhất định. Đối với dữ liệu có hình dạng quan hệ, RDBMS sẽ không biến mất sớm.

2

có, cho một hệ thống giao dịch luôn luôn bình thường hóa, hoặc rất có thể bạn sẽ có những cơn đau đầu lớn hơn nữa trên đường. Đối với một cơ sở dữ liệu sẽ được sử dụng để báo cáo/OLAP không chuẩn hóa lược đồ có thể rất hữu ích.

1

Quy tắc chung "JOIN's Expensive on Processing Power". Tôi sử dụng là khi tạo một cơ sở dữ liệu cho một dự án lớn hay nhỏ. Các bảng chứa dữ liệu như tên người dùng, địa chỉ, vv luôn luôn được chuẩn hóa khi chúng được truy cập ít hơn gần đây như thế nào bạn được dạy bằng cách sử dụng loại ví dụ được dạy. Bây giờ trong những năm gần đây, dữ liệu web2.0, ứng dụng, dịch vụ di động v.v ... đã thực sự là một loại dữ liệu khác nhau, với sự phong phú của mã bộ nhớ thậm chí còn thấp hơn, nó có thể tiết kiệm năng lượng xử lý để giữ chúng trên cùng một "bảng" bình thường hóa nó.

Các vấn đề liên quan