Wprowadzenie do modelowania danych w Snowflake
Nuno Rocha
Director of Engineering





AUTOINCREMENT: Właściwość kolumny automatycznie generująca unikalne, rosnące wartości numeryczne dla każdego nowego wiersza.CREATE OR REPLACE TABLE hub_students (
student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
CREATE OR REPLACE TABLE hub_students (
student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
student_id NUMBER(10,0)
);
CREATE OR REPLACE TABLE hub_students (
student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
student_id NUMBER(10,0),
load_date TIMESTAMP,
record_source VARCHAR(255)
);
CREATE OR REPLACE TABLE hub_classes (
class_key NUMBER(10,0)
AUTOINCREMENT
PRIMARY KEY,
class_id NUMBER(10,0),
load_date TIMESTAMP,
record_source VARCHAR(255)
);
CREATE OR REPLACE TABLE hub_schools (
school_key NUMBER(10,0)
AUTOINCREMENT
PRIMARY KEY,
school_id NUMBER(10,0),
load_date TIMESTAMP,
record_source VARCHAR(255)
);

CREATE OR REPLACE TABLE link_enrollments (
link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
CREATE OR REPLACE TABLE link_enrollments (
link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
student_key NUMBER(10,0),
class_key NUMBER(10,0),
FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
CREATE OR REPLACE TABLE link_enrollments (
link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
student_key NUMBER(10,0),
class_key NUMBER(10,0),
load_date TIMESTAMP,
record_source VARCHAR(255),
FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
CREATE OR REPLACE TABLE link_offerings (
link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
class_key NUMBER(10,0),
school_key NUMBER(10,0),
load_date TIMESTAMP,
record_source VARCHAR(255),
FOREIGN KEY (class_key) REFERENCES hub_classes(class_key),
FOREIGN KEY (school_key) REFERENCES hub_schools(school_key)
);

CREATE OR REPLACE TABLE sat_student (
name VARCHAR(255),
email VARCHAR(255)
);
CREATE OR REPLACE TABLE sat_student (
name VARCHAR(255),
email VARCHAR(255),
load_date TIMESTAMP,
record_source VARCHAR(255)
);
CREATE OR REPLACE TABLE sat_student (
student_key NUMBER(10,0),
name VARCHAR(255),
email VARCHAR(255),
load_date TIMESTAMP,
record_source VARCHAR(255),
FOREIGN KEY (student_key) REFERENCES hub_students(student_key)
);
CREATE OR REPLACE TABLE sat_class (
class_key NUMBER(10,0),
class_name VARCHAR(255),
load_date TIMESTAMP,
record_source VARCHAR(255),
FOREIGN KEY (class_key)
REFERENCES hub_classes(class_key)
);
CREATE OR REPLACE TABLE sat_school (
school_key NUMBER(10,0),
school_name VARCHAR(255),
load_date TIMESTAMP,
record_source VARCHAR(255),
FOREIGN KEY (school_key)
REFERENCES hub_schools(school_key)
);
CREATE OR REPLACE TABLE: Polecenie SQL do tworzenia lub zastępowania struktury tabeli.PRIMARY KEY: Klauzula SQL definiująca kolumnę jako unikalny identyfikator.AUTOINCREMENT: Właściwość kolumny automatycznie generująca unikalne, rosnące wartości numeryczne dla każdego nowego wiersza.FOREIGN KEY (...) REFERENCES (...): Klauzula SQL tworząca powiązanie między dwiema tabelami.CREATE OR REPLACE TABLE table_name (
-- Create an auto generated unique value as primary key
unique_key column_datatype AUTOINCREMENT PRIMARY KEY,
other_business_key column_datatype,
foreign_column column_datatype,
other_foreign_column column_datatype,
-- Adding relationship with other entities
FOREIGN KEY(foreign_column) REFERENCES foreign_table(PK_from_foreign_table),
FOREIGN KEY(other_foreign) REFERENCES foreign_table(PK_from_other_foreign)
);
Wprowadzenie do modelowania danych w Snowflake