Bình thường hóa một cơ sở dữ liệu mà không cần truy cập vào dữ liệu nguồn?


8

Tôi đã bắt đầu một vai trò mới liên quan đến lượng lớn dữ liệu liên quan. Nguồn của tất cả các dữ liệu này của chúng tôi là các bãi Excel khác nhau được lấy từ cơ sở dữ liệu mà chúng tôi không có quyền truy cập. Người trước đó thực hiện vai trò này đã sử dụng hàng tá tệp Excel để thu thập các tệp dữ liệu này, thao tác với chúng và tạo báo cáo.

Tôi đã bắt đầu chuyển các bãi chứa sang cơ sở dữ liệu Access. Tôi đã nhận thấy rất nhiều dữ liệu Excel có liên quan và có lẽ nên được chuẩn hóa. Những gì tôi hiện đang làm là tạo một bảng cho mỗi kết xuất dữ liệu và nhập chúng vào Access và sử dụng một số truy vấn để sao chép hàng tá thao tác và báo cáo dữ liệu.

Vẫn còn lợi ích cho việc bình thường hóa dữ liệu trong đó nguồn duy nhất của tôi là Excel bỏ ra khỏi kho?

Làm cách nào để tôi bình thường hóa dữ liệu, khi tôi không có khả năng thay đổi định dạng về cách gửi các bãi rác cho tôi?

Ngoài ra, kế hoạch của tôi (phụ thuộc vào ngân sách) là chuyển từ Access sang Cơ sở dữ liệu MS SQL.


4
Thông thường, bạn KHÔNG muốn bình thường hóa dữ liệu không phải là giao dịch và sẽ chỉ được sử dụng để báo cáo. Nếu dữ liệu được lấy ra từ một kho dữ liệu, họ đã làm việc chăm chỉ cho bạn. Chỉ cần tải nó vào Access và truy vấn đi.
HardCode

Chỉ cần làm rõ, các bãi chứa Excel có chứa dữ liệu thô hay là dữ liệu tổng hợp / báo cáo trước? Là nguồn dữ liệu đến từ một nhà cung cấp xuất khẩu thuộc loại nào đó (nghĩa là bạn có thể giao tiếp với bất kỳ ai thiết kế cấu trúc dữ liệu liên quan) không?
Jon Seigel

Các kết xuất Excel là từ nhà cung cấp hoặc kho dữ liệu của chúng tôi và do đó, đó là dữ liệu thô hoặc dữ liệu thô với số lượng chuyển đổi tối thiểu (ví dụ: 0/1 thay đổi thành Có / Không hoặc Mã Acct được ánh xạ tới Mô tả tài khoản). Tôi có thể giao tiếp với những người thiết kế cấu trúc dữ liệu nhưng không nói rõ về cách chúng được thiết kế. Để đưa ra một số bối cảnh, tôi không phải là một DBA, nhưng tôi đang cố gắng tìm giải pháp tốt nhất cho đội ngũ của chúng tôi với những hạn chế về ngân sách và chính trị.
pedram

Câu trả lời:


6

Có những lợi ích đáng kể để chuẩn hóa dữ liệu nếu bạn sẵn sàng thực hiện công việc để đạt được và duy trì nó. Hai lợi ích cơ bản để bình thường hóa là:

  • Toàn vẹn dữ liệu
  • Linh hoạt truy vấn

Cách tiếp cận đơn giản để chuẩn hóa là tạo một bảng cho mỗi người, địa điểm, sự vật, khái niệm hoặc sự kiện. Bằng cách này, bạn có từng đặc điểm của từng người, địa điểm, sự vật, khái niệm hoặc sự kiện bạn quan tâm ở một và chỉ một nơi trong cơ sở dữ liệu. Lợi ích của tính toàn vẹn dữ liệu đạt được khi bạn chèn và cập nhật dữ liệu. Vì bạn đã bình thường hóa nên bạn không có các bản sao dự phòng có cùng đặc điểm ở nhiều nơi trên cơ sở dữ liệu, mỗi nơi có một giá trị khác nhau, bạn phải nhớ cập nhật và giữ đồng bộ. Thứ hai, bạn chỉ có một nơi trong cơ sở dữ liệu để kiểm tra chương trình khi chèn hoặc cập nhật dữ liệu để đảm bảo dữ liệu hợp lệ. Vì dữ liệu của bạn đến từ nhiều bảng tính excel, bình thường hóa dữ liệu của bạn cung cấp cho bạn cơ hội để thực hiện kiểm tra tính toàn vẹn dữ liệu trên tải để đảm bảo rằng bạn phân tích dựa trên dữ liệu chính xác. Lợi ích của tính linh hoạt truy vấn đạt được khi bạn muốn đọc và phân tích dữ liệu. Vì bạn đã chuẩn hóa dữ liệu, bạn có thể kết nối các bảng một cách linh hoạt dựa trên câu hỏi về dữ liệu bạn muốn trả lời, chỉ bao gồm những gì bạn cần để trả lời câu hỏi cụ thể. Thứ hai, điều này cho phép cơ sở dữ liệu trả về các câu trả lời cho các câu hỏi của bạn nhanh hơn nhiều so với việc nó phải quét qua tất cả dữ liệu, bao gồm cả dữ liệu không liên quan đến câu hỏi của bạn, trong các bảng không chuẩn hóa của bạn. Vì bạn đã chuẩn hóa dữ liệu, bạn có thể kết nối các bảng một cách linh hoạt dựa trên câu hỏi về dữ liệu bạn muốn trả lời, chỉ bao gồm những gì bạn cần để trả lời câu hỏi cụ thể. Thứ hai, điều này cho phép cơ sở dữ liệu trả về các câu trả lời cho các câu hỏi của bạn nhanh hơn nhiều so với việc nó phải quét qua tất cả dữ liệu, bao gồm cả dữ liệu không liên quan đến câu hỏi của bạn, trong các bảng không chuẩn hóa của bạn. Vì bạn đã chuẩn hóa dữ liệu, bạn có thể kết nối các bảng một cách linh hoạt dựa trên câu hỏi về dữ liệu bạn muốn trả lời, chỉ bao gồm những gì bạn cần để trả lời câu hỏi cụ thể. Thứ hai, điều này cho phép cơ sở dữ liệu trả về các câu trả lời cho các câu hỏi của bạn nhanh hơn nhiều so với việc nó phải quét qua tất cả dữ liệu, bao gồm cả dữ liệu không liên quan đến câu hỏi của bạn, trong các bảng không chuẩn hóa của bạn.

Access là một DBMS được đơn giản hóa và bao gồm một bộ xử lý SQL cơ bản cho phép bạn viết các truy vấn và do đó tận dụng lợi ích của dữ liệu được chuẩn hóa. Nếu cuối cùng bạn sẽ chuyển sang SQL Server, một DBMS đầy đủ tính năng, thì việc bình thường hóa dữ liệu của bạn bây giờ sẽ dễ dàng chuyển đổi và cho phép bạn tận dụng các khả năng đầy đủ của SQL Server và triển khai SQL rất phong phú của nó.

Như tôi đã đề cập lúc đầu, để đạt được những lợi ích này, bạn phải sẵn sàng lập trình trước để dịch dữ liệu từ các bãi excel khác nhau của bạn và ánh xạ các hàng và cột trong các bảng tính đó sang các bảng được chuẩn hóa của bạn. Đây không phải là một bài tập tầm thường nhưng có thể thực hiện được bằng cách sử dụng lập trình Access. Một cách tiếp cận sẽ là tạo các bảng sao chép dữ liệu như trong nguồn và tải dữ liệu vào chúng. Chúng được gọi là giai đoạnnhững cái bàn. Khi bạn có dữ liệu chưa được chuẩn hóa trong các bảng Access, bạn có thể dễ dàng viết mã truy cập bằng SQL để trích xuất dữ liệu từ các bảng giai đoạn đó, chuẩn hóa nó, xác định các vấn đề về chất lượng dữ liệu (nói cùng một đặc điểm trong hai kết xuất excel khác nhau cần có cùng một giá trị nhưng không) và tải nó vào các bảng được chuẩn hóa của bạn. Đây là phương pháp phổ biến để chuẩn hóa dữ liệu đến từ nguồn không chuẩn hóa rất phổ biến trong kho dữ liệu dựa trên khu vực chủ đề.

Bạn sẽ thấy mức độ nỗ lực bổ sung này rất xứng đáng mặc dù một khi bạn có dữ liệu chuẩn hóa, chất lượng cao trong cơ sở dữ liệu truy cập của mình. Bạn báo cáo người tiêu dùng sẽ thấy rằng bạn là một chuyên gia dữ liệu thực sự khi bạn đưa cho họ xem các ví dụ về chất lượng dữ liệu kém và bạn phát hiện ra thực tế đó để có thể sửa nó trong các nguồn. Tương tự, khi họ yêu cầu một báo cáo mới phân tích dữ liệu theo một cách rất khác, bạn có thể nhanh chóng tạo báo cáo mới bằng SQL để kết hợp dữ liệu trong các bảng được chuẩn hóa theo cách rất khác mà không được dự đoán trước. Họ sẽ rất ấn tượng rằng bạn có thể làm điều này một cách nhanh chóng và dễ dàng!

Tôi hy vọng điều này sẽ giúp giải thích tại sao bình thường hóa sẽ có ích cho bạn.


Cảm ơn rât nhiều! Một câu trả lời hay đã được tôi thuyết phục để đưa vào nỗ lực trả trước để dọn dẹp mớ hỗn độn này. Tôi tự hỏi nếu bạn có bất kỳ cuốn sách được đề xuất hoặc các nguồn khác để đọc về các thực tiễn tốt nhất để chuẩn hóa cơ sở dữ liệu và các khái niệm quan trọng khác?
pedram

3
Vui mừng tôi có thể được giúp đỡ. Đây là một liên kết tốt về thiết kế cơ sở dữ liệu và chuẩn hóa nói chung - sqa.org.uk/e-learning/MDBS01CD/page_01.htm . Điều này là khá tốt vì nó giữ cho mọi thứ đơn giản và dễ hiểu nhất trong nhiều ví dụ tôi đã thấy. Một cuốn sách hay, đặc biệt là khi bạn có thể chuyển sang SQL Server, là "Thiết kế và triển khai cơ sở dữ liệu quan hệ Pro SQL Server 2012" của Louis Davidson. Cuốn sách này chứa các thực tiễn tốt nhất ngoài việc chuẩn hóa và đưa ra các ví dụ cho SQL Server. Để dàn dựng, hãy xem "Bộ công cụ kho dữ liệu ETL" của Ralph Kimball. Chúc may mắn!
Todd Everett
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.