Schéma : pagila (films)

pagila, film, relationnel, pattes de corbeau, crowfoot

pagila
crowfoot
DDL
Published

September 20, 2024

Présentation de la partie film du schéma pagila, pour l’entrainement à PostGres.

Schema pagila créé par DbSchema

Contexte

Description de quelques tables from the pagila database, spécifiquement les tables liées au catalogue de filmss (sans considérer les tables liées au fichier client, à la gestion des locations, aux magasins).

Pagemaison de la base de données pagila.

Pagemaison de la base de données sakila

Table pagila.actor

Idx Name Data Type
* 🔑 ⬋ actor_id integer DEFAULT nextval(‘pagila.actor_actor_id_seq’::regclass)
* first_name varchar(45)
* 🔎 last_name varchar(45)
* last_update timestamp DEFAULT now()

actor_id sert de clé primaire. Noter le mécanisme de génération de nouvelles clés grâce au comportment par défaut et à l’usage de la fonction nextval() opérant sur une séquence associée à la table actor.

La colonne last_update sert à dater les mises à jour.

Table pagila.category

Idx Name Data Type
* 🔑 ⬋ category_id integer DEFAULT nextval(‘pagila.category_category_id_seq’::regclass)
* name varchar(25)
* last_update timestamp DEFAULT now()

Table pagila.film

Idx Name Data Type
* 🔑 ⬋ film_id integer DEFAULT nextval(‘pagila.film_film_id_seq’::regclass)
* 🔎 title varchar(255)
description text
release_year year
* 🔎 ⬈ language_id smallint
🔎 ⬈ original_language_id smallint
* rental_duration smallint DEFAULT 3
* rental_rate numeric(4,2) DEFAULT 4.99
length smallint
* replacement_cost numeric(5,2) DEFAULT 19.99
rating mpaa_rating DEFAULT ‘G’::pagila.mpaa_rating
* last_update timestamp DEFAULT now()
special_features text[]
Foreign Keys
Type Name On
film_original_language_id_fkey ( original_language_id ) ref pagila.language (language_id)
film_language_id_fkey ( language_id ) ref pagila.language (language_id)

Les colonnes film_id (clé primaire), original_language_id et language_id sont utilisées pour réaliser des (équi)-jointures avec les tables film_actor, film_category, film_language

Un film est censé n’avoir qu’une seule langue originale. L’association film a pour langue orginale la langue xxx est de un vers plusieurs. On peut la représenter à l’aide d’un attribut dans la table film.

Table pagila.film_actor

Idx Name Data Type
* 🔑 ⬈ actor_id smallint
* 🔑 ⬈ film_id smallint
* last_update timestamp DEFAULT now()

C’est une table intermédiaire qui permet de représenter/traduire l’association plusieurs à plusieurs acteur joue dans film.

Foreign Keys
Type Name On
film_actor_film_id_fkey ( film_id ) ref pagila.film (film_id)
film_actor_actor_id_fkey ( actor_id ) ref pagila.actor (actor_id)

Table pagila.film_category

Idx Name Data Type
* 🔑 ⬈ film_id smallint
* 🔑 ⬈ category_id smallint
* last_update timestamp DEFAULT now()
Foreign Keys
Type Name On
film_category_film_id_fkey ( film_id ) ref pagila.film (film_id)
film_category_category_id_fkey ( category_id ) ref pagila.category (category_id)

C’est une table intermédiaire qui permet de représenter/traduire l’association plusieurs à plusieurs film relève de catégorie.

Table pagila.language

Idx Name Data Type
* 🔑 ⬋ language_id integer DEFAULT nextval(‘pagila.language_language_id_seq’::regclass)
* name char(20)
* last_update timestamp DEFAULT now()