2NF और 3NF

Snowflake में डेटा मॉडलिंग परिचय

Nuno Rocha

Director of Engineering

2NF परिचय

  • Second normal form (2NF): आंशिक निर्भरताएँ हटाता है; हर non-key attribute को primary key पर functionally निर्भर होना चाहिए

UNF से 3NF तक के चरण

Snowflake में डेटा मॉडलिंग परिचय

2NF परिचय (1)

  • Second normal form (2NF): आंशिक निर्भरताएँ हटाता है; हर non-key attribute को primary key पर functionally निर्भर होना चाहिए
  • Functional Dependency: primary key किसी attribute को स्पष्ट रूप से पहचानती है

कर्मचारी ID कार्ड, functional dependency दर्शाते हुए

Snowflake में डेटा मॉडलिंग परिचय

2NF परिचय (2)

  • Second normal form (2NF): आंशिक निर्भरताएँ हटाता है; हर non-key attribute को primary key पर functionally निर्भर होना चाहिए.
  • Functional Dependency: primary key किसी attribute को स्पष्ट रूप से पहचानती है.
  • Partial Dependency: किसी attribute की पहचान के लिए केवल primary key का एक भाग काफी है.

कर्मचारी ID कार्ड, partial dependency दर्शाते हुए

Snowflake में डेटा मॉडलिंग परिचय

Second normal form

Allproducts entity, 2NF के साथ product complaint

Snowflake में डेटा मॉडलिंग परिचय

Second normal form

Allproducts entity, 2NF के साथ detail issue

Snowflake में डेटा मॉडलिंग परिचय

Second normal form

Allproducts entity, manufacturer में 2NF के साथ detail issue

Snowflake में डेटा मॉडलिंग परिचय

2NF की ओर संक्रमण

  • Step 1: जिन attributes में partial dependency थी, उन्हें रखने के लिए नई entities बनाएँ.
CREATE OR REPLACE TABLE manufacturers (
    manufacturer_id NUMBER(10,0) PRIMARY KEY,
    manufacturer VARCHAR(255),
    location VARCHAR(255)
);
CREATE OR REPLACE TABLE details (
    detail_id NUMBER(10,0) PRIMARY KEY,
    detail VARCHAR(255)
);
Snowflake में डेटा मॉडलिंग परिचय

2NF की ओर संक्रमण

  • Step 2: शुरुआती unnormalized entity से डेटा लेकर entities भरें.
INSERT INTO manufacturers (manufacturer_id, manufacturer, location)
SELECT DISTINCT manufacturer_id, 
    manufacturer_name,
    location
FROM allproducts;
INSERT INTO details (detail_id, detail)
SELECT DISTINCT detail_id, 
    detail_description
FROM allproducts;
Snowflake में डेटा मॉडलिंग परिचय

2NF की ओर संक्रमण

All products डेटा, UNF से 2NF तक

Snowflake में डेटा मॉडलिंग परिचय

3NF परिचय

  • Third normal form (3NF): transitive निर्भरताएँ हटाता है; non-key attributes को सीधे primary key पर निर्भर होना चाहिए.

UNF से 3NF तक के चरण

Snowflake में डेटा मॉडलिंग परिचय

3NF परिचय

  • Third normal form (3NF): transitive निर्भरताएँ हटाता है; non-key attributes को सीधे primary key पर निर्भर होना चाहिए.
  • Transitive Dependency: कोई attribute ऐसे दूसरे attribute पर निर्भर है जो primary key नहीं है.

कर्मचारी ID कार्ड, transitive dependency दर्शाते हुए

Snowflake में डेटा मॉडलिंग परिचय

Third normal form

Location, 3NF का पालन नहीं करता

Snowflake में डेटा मॉडलिंग परिचय

3NF की ओर संक्रमण

  • Step 1: जिन attributes में transitive dependency थी, उन्हें रखने के लिए नई entity बनाएँ.
CREATE TABLE locations (
    location_id NUMBER(10,0) PRIMARY KEY,
    location VARCHAR(255)
);
Snowflake में डेटा मॉडलिंग परिचय

3NF की ओर संक्रमण

  • Step 2: शुरुआती unnormalized entity से डेटा लेकर entities भरें.
INSERT INTO locations (location_id, location)
SELECT ROW_NUMBER() OVER (ORDER BY location), 
    location
FROM manufacturers
GROUP BY location;
ALTER TABLE manufacturers
DROP COLUMN location;
Snowflake में डेटा मॉडलिंग परिचय

3NF की ओर संक्रमण

  • Step 3: unnormalized entity से बचे हुए attributes निकालने के लिए नई entity बनाएँ.
CREATE OR REPLACE TABLE products (
    product_id NUMBER(10,0) PRIMARY KEY,
    name VARCHAR(255)
);
  • Step 4: unnormalized entity में बचे unique values से entity भरें.
INSERT INTO products (product_id, name)
SELECT DISTINCT product_id,
    product_name
FROM allproducts;
Snowflake में डेटा मॉडलिंग परिचय

मॉडल को अंतिम रूप देना

UNF से 3NF तक के चरण

Snowflake में डेटा मॉडलिंग परिचय

मॉडल को अंतिम रूप देना

All products डेटा, UNF से 1NF तक

Snowflake में डेटा मॉडलिंग परिचय

मॉडल को अंतिम रूप देना

All products डेटा, UNF से 2NF तक

Snowflake में डेटा मॉडलिंग परिचय

मॉडल को अंतिम रूप देना

All products डेटा, UNF से 3NF तक

Snowflake में डेटा मॉडलिंग परिचय

मॉडल को अंतिम रूप देना

All products डेटा, संबंधों सहित UNF से 3NF तक

Snowflake में डेटा मॉडलिंग परिचय

परिभाषाएँ और functions का सार

  • Second normal form (2NF): आंशिक निर्भरताएँ हटाता है; हर non-key attribute को primary key पर functionally निर्भर होना चाहिए.
  • Third normal form (3NF): transitive निर्भरताएँ हटाता है; non-key attributes को सीधे primary key पर निर्भर होना चाहिए.
  • Functional Dependency: primary key किसी attribute को स्पष्ट रूप से पहचानती है.
  • Partial Dependency: किसी attribute की पहचान के लिए केवल primary key का एक भाग काफी है.
  • Transitive Dependency: कोई attribute ऐसे दूसरे attribute पर निर्भर है जो primary key नहीं है.
  • ROW_NUMBER() OVER (ORDER BY): अनुक्रमिक संख्या बनाने का SQL function.
  • DISTINCT: किसी attribute से unique (अलग) values लौटाने वाला SQL clause.
  • DROP: ALTER TABLE के साथ entity से elements हटाने का SQL command.
Snowflake में डेटा मॉडलिंग परिचय

Functions का सार

INSERT INTO table_name (column_name, other_columns)
SELECT DISTINCT column_name,
    other_columns
FROM another_table;
INSERT INTO table_name (column_name)
SELECT ROW_NUMBER() OVER (ORDER BY column_name)
FROM another_table
GROUP BY TRIM(column_name);
ALTER TABLE table_name
DROP COLUMN column_name;
Snowflake में डेटा मॉडलिंग परिचय

अभ्यास करते हैं!

Snowflake में डेटा मॉडलिंग परिचय

Preparing Video For Download...