Introduction à la modélisation des données dans Snowflake
Nuno Rocha
Director of Engineering





AUTOINCREMENT : propriété d'attribut générant automatiquement, pour chaque nouvelle ligne, une valeur numérique unique croissante.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 : commande SQL pour créer ou remplacer une table.PRIMARY KEY : clause SQL définissant l'identifiant unique d'une table.AUTOINCREMENT : propriété générant automatiquement une valeur numérique unique croissante par ligne.FOREIGN KEY (...) REFERENCES (...) : clause SQL créant un lien entre deux tables.CREATE OR REPLACE TABLE table_name (
-- Créer une valeur unique auto-générée comme clé primaire
unique_key column_datatype AUTOINCREMENT PRIMARY KEY,
other_business_key column_datatype,
foreign_column column_datatype,
other_foreign_column column_datatype,
-- Ajouter des relations avec d'autres entités
FOREIGN KEY(foreign_column) REFERENCES foreign_table(PK_from_foreign_table),
FOREIGN KEY(other_foreign) REFERENCES foreign_table(PK_from_other_foreign)
);
Introduction à la modélisation des données dans Snowflake