base de libreoffice
schéma relationnel de la base de données films-realisateurs, base de libreoffice

schéma relationnel de la base de données films-realisateurs, base de libreoffice

TP Browser SQL: Base, SQLite Browser, Access

Base de données sur FILMS et REALISATEURS

Base de Libre Office

Démarrage

Lancer Libre Office > Base. Au demarrage:

  • choisir “Créer une nouvelle base de données”
  • nommer cette base de données. Par exemple films_cultes. L’extension placée par le logiciel est .obd

Structurer et renseigner les données

Commençons par créer les 2 tables films et realisateurs.

créer une nouvelle table

créer une nouvelle table

remplir les champs nom et domaine pour chaque attribut

remplir les champs nom et domaine pour chaque attribut

1: selectionner la colonne de l'attribut id_films, 2: clic droit, choisir Primary Key

1: selectionner la colonne de l'attribut id_films, 2: clic droit, choisir Primary Key

1: sauvegarder la table, 2: renseigner le nom: films

1: sauvegarder la table, 2: renseigner le nom: films

faire de même pour créer la table realisateurs

faire de même pour créer la table realisateurs

On va maintenant créer une association entre les 2 tables.

menu Tools: choisir Relationships

menu Tools: choisir Relationships

1: ajouter chacune des tables dans le canvas, 2: cliquer sur films.id_rea et le glisser sur realisateurs.id_rea

1: ajouter chacune des tables dans le canvas, 2: cliquer sur films.id_rea et le glisser sur realisateurs.id_rea

bravo! vous avez créé l'association entre les 2 tables

bravo! vous avez créé l'association entre les 2 tables

La clé secondaire films.id_rea est maintenant liée à la clé primaire realisateurs.id_rea.

Il reste maintenant à renseigner les données pour chacune des tables. Commencer par celle realisateurs. Car les tables sont liées par l’attribut realisateurs.id_rea

1: clic droit sur la table realisateurs, 2: open

1: clic droit sur la table realisateurs, 2: open

renseigner les données

renseigner les données

id_rea nom prenom annee_naissance
1 Kitano Takeshi 1947
2 Burton Tim 1958
3 Tarantino Quentin 1963
4 Tati Jacques 1907
5 Hitchcock Alfred 1899
6 Almodovar Pedro 1949
7 Kitamura Ryûhei 1969
puis ouvrir la table films

puis ouvrir la table films

id_film titre date id_rea
1 Hana-bi 1997
2 Big fish 2003
3 Edward aux mains d’argent 1990
4 Sonatine 1993
5 Pulp Fiction 1995
6 Play Time 1967
7 Vertigo 1958
8 Psychose  1960
9 Parle avec elle 2002
10 Mon oncle 1958
11 Volver 2006
12 Reservoir Dogs 1992
13 Alive 2003
14 Godzilla: Final Wars 2004
renseigner les données

renseigner les données

Requêtes sur la base de données

Les requêtes seront réalisées en mode interactif pour démarrer.

Choisir 1. Database Queries puis 2. Design View

Choisir 1. Database Queries puis 2. Design View

Ajouter les tables films et realisateurs dans le canvas

Ajouter les tables films et realisateurs dans le canvas

construire la requête comme sur l'image ci-contre

construire la requête comme sur l'image ci-contre

passer en mode SQL avec le bouton (jaune) de la barre de menu

passer en mode SQL avec le bouton (jaune) de la barre de menu

Executer la requête SQL avec le bouton (vert)

Executer la requête SQL avec le bouton (vert)

Observer la vue présentée par le logiciel (tableau). Cette vue peut être obtenue avec une instruction plus simple en SQL. Mettre les symboles -- devant l’instruction SQL pour la mettre en commentaire.

Ajouter l’instruction SQL: SELECT * FROM films

Executer. Vous obtenez le même résultats…

saisie directe d'une requête SQL

saisie directe d'une requête SQL

Tester une nouvelle requête en mode Design View

nouvelle requête

nouvelle requête

Cette fois, on ajoute une clause sur la valeur de id_rea. Mais sans afficher l’attribut (Visible non coché).

Recopier la requête SQL générée. Executer.

nouvelle requête

nouvelle requête

Pour cette nouvelle requête en mode visuel, on selectionne des attributs des 2 tables. On applique certaines clauses.

En mode SQL: Remarquer que la clause "films"."id_rea" = "realisateurs"."id_rea" s’est mise automatiquement.

Recopier cette requête SQL.

Executer.

Questions: Quelles requêtes SQL permettent d’afficher:

  1. toute la table films
  2. tous les attributs du-des film-s dont le réalisateur est le 1er de la table realisateur
  3. tous les titres des films sortis après 1970 mais avant 2002
  4. le titre du film, la date de sortie le nom du realisateur pour id_rea egal à 2
  5. tous les noms des auteurs de films qui ont sorti des films après 1960, mais pas Jacques Tati.
  6. l’année de naissance du réalisateur de Reservoir Dogs ?

SQLite Browser

La table en version sqlite se trouvi ici: films.db

  1. Tester alors les instructions SQL suivantes… Recopier ensuite l’instruction et expliquer dans chaque cas ce qui est renvoyé:
  • requête 1: SELECT * FROM films
  • requête 2:
SELECT * FROM films
where ID_rea=1
  • requête 3:
SELECT * FROM films
where ID_rea=1 or Date>2003
  • requête 4: Deux possibiltés:
select titre, date, last_name from realisateurs, films 
where films.id_rea = 2 and films.id_rea = realisateurs.id_rea

ou bien, en précisant la jointure avec INNER JOIN

SELECT titre, date, realisateurs.last_name  FROM films
INNER JOIN realisateurs on films.id_rea = realisateurs.id_rea
where films.id_rea = 2;