การ Normalize ข้อมูลเชิงสัมพันธ์

Data Modeling ใน Snowflake เบื้องต้น

Nuno Rocha

Director of Engineering

ทำความเข้าใจข้อมูลที่ไม่ได้ Normalize

  • ข้อมูลที่ไม่ได้ Normalize (UNF): ข้อมูลที่อาจขาดโครงสร้าง ไม่เป็นระเบียบ มีการซ้ำซ้อน และ/หรือมีความผิดปกติ

เอนทิตี allproducts ทั้งหมด

Data Modeling ใน Snowflake เบื้องต้น

ทำความเข้าใจข้อมูลที่ไม่ได้ Normalize

ความผิดปกติในเอนทิตี allproducts

Data Modeling ใน Snowflake เบื้องต้น

ทำความเข้าใจข้อมูลที่ไม่ได้ Normalize

ความผิดปกติของกล้วยที่ถูกไฮไลต์

Data Modeling ใน Snowflake เบื้องต้น

ทำความเข้าใจข้อมูลที่ไม่ได้ Normalize (3)

ความผิดปกติของผู้ผลิตที่ถูกไฮไลต์

Data Modeling ใน Snowflake เบื้องต้น

ทำความเข้าใจข้อมูลที่ไม่ได้ Normalize (4)

ความผิดปกติของคำอธิบายรายละเอียดที่ถูกไฮไลต์

Data Modeling ใน Snowflake เบื้องต้น

ทำความเข้าใจข้อมูลที่ไม่ได้ Normalize (5)

ความผิดปกติของ Products ที่ถูกไฮไลต์

Data Modeling ใน Snowflake เบื้องต้น

ปัญหาของข้อมูลที่ไม่ได้ Normalize

  • ความซ้ำซ้อนของข้อมูล: การที่ข้อมูลปรากฏซ้ำโดยไม่จำเป็น
  • ความผิดปกติของข้อมูล: ความไม่สม่ำเสมอหรือไม่สอดคล้องในข้อมูล

ความผิดปกติในเอนทิตี allproducts

Data Modeling ใน Snowflake เบื้องต้น

การระบุข้อมูลที่ไม่ได้ Normalize

SELECT manufacturer_id, 
       manufacturer_name, 
       location, 
       COUNT(*) AS repetitions
FROM allproducts
GROUP BY manufacturer_id, 
    manufacturer_name, 
    location
HAVING COUNT(*) > 1;

รายการผู้ผลิตพร้อมจำนวนการซ้ำของสินค้า

Data Modeling ใน Snowflake เบื้องต้น

การระบุข้อมูลที่ไม่ได้ Normalize

SELECT DISTINCT category 
FROM allproducts;

รายการหมวดหมู่

Data Modeling ใน Snowflake เบื้องต้น

การระบุข้อมูลที่ไม่ได้ Normalize

SELECT DISTINCT product_name,
    category
FROM allproducts
WHERE category = 'L';

รายการสินค้าในหมวดหมู่ L

Data Modeling ใน Snowflake เบื้องต้น

การระบุข้อมูลที่ไม่ได้ Normalize

SELECT DISTINCT product_name,
    category
FROM allproducts
WHERE category = 'L';

รายการสินค้าทั้งหมดที่มีหมวดหมู่ L

Data Modeling ใน Snowflake เบื้องต้น

ข้อมูลที่ผ่านการ Normalize

  • ข้อมูลที่ผ่านการ Normalize: ข้อมูลที่จัดระเบียบเป็นเอนทิตีที่ชัดเจนและเป็นหน่วยย่อย
  • ประโยชน์:
    • เพิ่มความถูกต้องและความน่าเชื่อถือของข้อมูล
    • ยกระดับประสิทธิภาพการ Query
    • ใช้ทรัพยากรได้อย่างเหมาะสม
    • รองรับการขยายตัว
Data Modeling ใน Snowflake เบื้องต้น

ภาพรวมคำศัพท์และฟังก์ชัน

  • ข้อมูลที่ไม่ได้ Normalize (UNF): ข้อมูลที่อาจขาดโครงสร้าง ไม่เป็นระเบียบ หรือมีการซ้ำซ้อนหรือความผิดปกติ
  • ข้อมูลที่ผ่านการ Normalize: ข้อมูลที่จัดระเบียบเป็นเอนทิตีที่ชัดเจนและเป็นหน่วยย่อย
  • SELECT FROM: คำสั่ง SQL สำหรับดึงข้อมูลจากเอนทิตีที่ระบุ
  • DISTINCT: คำสั่ง SQL สำหรับคืนค่าที่ไม่ซ้ำกันจากแอตทริบิวต์
  • COUNT: คำสั่ง SQL ที่นับจำนวนแถวที่ตรงตามเงื่อนไขที่กำหนด
  • GROUP BY: คำสั่ง SQL ที่จัดกลุ่มแถวที่มีค่าเหมือนกันตามแอตทริบิวต์ที่ระบุ
  • HAVING: คำสั่ง SQL ที่ใช้ร่วมกับ GROUP BY เพื่อกรองกลุ่มตามเงื่อนไข
  • WHERE: คำสั่ง SQL สำหรับกรองระเบียนตามเงื่อนไขที่กำหนด
  • AS: คำสั่ง SQL สำหรับตั้งชื่อแทน (alias) ให้กับคอลัมน์หรือตาราง
Data Modeling ใน Snowflake เบื้องต้น

ภาพรวมฟังก์ชัน

-- Querying unique values while being filtered by a specific condition
SELECT DISTINCT column_name
FROM table_name
WHERE column_name  condition  value;
-- Counting the values aggregated by a specific column while filtering the results
SELECT column_name, 
    COUNT(*) AS alias_name
FROM table_name
GROUP BY column_name
HAVING COUNT(*)  condition  value;
Data Modeling ใน Snowflake เบื้องต้น

มาฝึกกันเถอะ!

Data Modeling ใน Snowflake เบื้องต้น

Preparing Video For Download...