Phi chuẩn hóa dữ liệu

Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Luis Silva

Solution Architect - Data & AI

Chuẩn hóa là gì?

  • Tổ chức dữ liệu để giảm dư thừa và tăng toàn vẹn
  • Dựa trên các nguyên tắc năm 1970 của nhà khoa học máy tính Tedd Codd, người sáng lập mô hình quan hệ
  • Dạng chuẩn thứ ba (3NF): Thuộc tính không khóa chỉ phụ thuộc khóa chính
Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Chuẩn hóa là gì?

  • Chuẩn hóa đạt được bằng cách dùng khóa và bảng mới để thay thuộc tính có thể gây dư thừa dữ liệu.

 

Sơ đồ minh họa tách một bảng thành ba để giảm dư thừa

Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Ví dụ chuẩn hóa

Bảng mẫu chứa tiêu đề trò chơi cùng nhà phát hành và thể loại. Ví dụ: Gran Turismo, Publisher Sony, genre Racing

  • Nhiều mục văn bản lặp lại cho các giá trị publishergenre.
Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Ví dụ chuẩn hóa

Bảng mẫu chứa tiêu đề trò chơi cùng nhà phát hành và thể loại. Mô tả văn bản cho publisher và genre đã chuyển sang bảng riêng và các mục trong bảng games được thay bằng ID số tham chiếu các bảng master publishers và genres

  • Giá trị văn bản của publishergenre giờ chỉ xuất hiện một lần.
  • Khóa số thay cho publishergenre trong bảng Games tốn ít chỗ hơn
Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Phi chuẩn hóa

  • Phi chuẩn hóa dùng dư thừa để làm phẳng mô hình dữ liệu; là đối lập của chuẩn hóa
  • Phi chuẩn hóa tạo ít bảng hơn nhưng dư thừa tăng

Sơ đồ minh họa việc join nhiều bảng thành một

Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Khi nào nên dùng Chuẩn hóa?

  • Hệ thống giao dịch OLTP

    • Tối ưu cho ghi dữ liệu (chèn, cập nhật, xóa lẻ)
    • Bảo đảm toàn vẹn dữ liệu
  • Bảng fact

    • Hàng triệu dòng
    • Giảm dung lượng lưu trữ
    • Mô hình dễ hiểu hơn
    • Nền tảng của lược đồ sao (star schema)

 

Sơ đồ lược đồ sao, làm nổi bật bảng fact

Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Khi nào nên dùng Phi chuẩn hóa?

  • Bảng dimension
    • Thường nhỏ hơn nhiều so với bảng fact
    • Dư thừa = Ít join hơn = Truy vấn nhanh hơn
    • Hiệu năng truy vấn cao hơn bù chi phí lưu trữ dữ liệu dư thừa
    • Lược đồ sao đơn giản hơn lược đồ bông tuyết

 

Sơ đồ lược đồ sao, làm nổi bật các bảng dimension

Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Triển khai phi chuẩn hóa

 

 

Biểu tượng ba công cụ: SQL, Spark và Dataflows

Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Phi chuẩn hóa với SQL

  • Câu lệnh SELECT + JOIN
-- [dim_videogames]: Videogames table
-- [dim_genres]: Genres table
-- [dim_publishers]: Publishers table

SELECT game_id, title, gen.genre, pub.publisher
FROM dim_videogames_norm vidg
JOIN dim_genres gen
  ON vidg.genre_id = gen.genre_id
JOIN dim_publishers pub
  ON vidg.publisher_id = pub.publisher_id
Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Phi chuẩn hóa với Spark

  • DataFrame join( ) và select( )
# [videogamesDF]: Videogames DataFrame
# [genresDF]: Genres DataFrame
# [publishersDF]: Publishers DataFrame

videogames1DF = videogamesDF.join(genresDF, ["genre_id"])
videogamesdenormDF = videogames1DF.join(publishersDF, ["publisher_id"])
videogamesdenormDF.select("game_id", "title", "genre_id", "publisher_id").show()
Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Phi chuẩn hóa với Dataflows

  • Dùng truy vấn để nạp dữ liệu
  • Dùng biến đổi Merge queries hoặc Merge queries as new để join các truy vấn

Ảnh chụp Dataflow dùng Merge queries as new để join các truy vấn videogames, genres và publishers

Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Ayo berlatih!

Biến đổi và Phân tích Dữ liệu với Microsoft Fabric

Preparing Video For Download...