1/74 Introduction aux bases de données Formation continue Idir AIT SADOUNE idir.aitsadoune@supelec.fr École Supérieure d Électricité Département Informatique Gif sur Yvette 2013/2014
2/74 Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
2/74 Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
2/74 Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
2/74 Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
2/74 Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
3/74 Introduction Données, Bases de données et SGBD Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
4/74 Introduction Données, Bases de données et SGBD Données et bases de données Donnée Une donnée est une information quelconque Ex. "Cette personne s appelle Jean" Une donnée est une relation entre des information Ex. "Jean enseigne les mathématiques" Base de donnée (BD) Une BD est un ensemble volumineux d information mémorisé de manière permanente Une BD est un gros ensemble d informations structurées mémorisées sur un support permanent.
4/74 Introduction Données, Bases de données et SGBD Données et bases de données Donnée Une donnée est une information quelconque Ex. "Cette personne s appelle Jean" Une donnée est une relation entre des information Ex. "Jean enseigne les mathématiques" Base de donnée (BD) Une BD est un ensemble volumineux d information mémorisé de manière permanente Une BD est un gros ensemble d informations structurées mémorisées sur un support permanent.
4/74 Introduction Données, Bases de données et SGBD Données et bases de données Donnée Une donnée est une information quelconque Ex. "Cette personne s appelle Jean" Une donnée est une relation entre des information Ex. "Jean enseigne les mathématiques" Base de donnée (BD) Une BD est un ensemble volumineux d information mémorisé de manière permanente Une BD est un gros ensemble d informations structurées mémorisées sur un support permanent.
4/74 Introduction Données, Bases de données et SGBD Données et bases de données Donnée Une donnée est une information quelconque Ex. "Cette personne s appelle Jean" Une donnée est une relation entre des information Ex. "Jean enseigne les mathématiques" Base de donnée (BD) Une BD est un ensemble volumineux d information mémorisé de manière permanente Une BD est un gros ensemble d informations structurées mémorisées sur un support permanent.
5/74 Introduction SGBD Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
6/74 Introduction SGBD Système de Gestion de Bases de Données (SGBD) Gestion d une BD Solution Une organisation basée basée sur des fichiers? lourdeur d accès aux données manque de sécurité absence de contrôle de concurrence Un système chargé de gérer les fichiers constituant une base de données, de prendre en charge les fonctionnalités de protection et de sécurité et de fournir les différents types d interface nécessaires à l accès aux données Système de Gestion de Bases de Données (SGBD) Un Système de Gestion de Bases de Données (SGBD) est un logiciel de haut niveau qui permet de manipuler les informations stockées dans une base de données.
6/74 Introduction SGBD Système de Gestion de Bases de Données (SGBD) Gestion d une BD Solution Une organisation basée basée sur des fichiers? lourdeur d accès aux données manque de sécurité absence de contrôle de concurrence Un système chargé de gérer les fichiers constituant une base de données, de prendre en charge les fonctionnalités de protection et de sécurité et de fournir les différents types d interface nécessaires à l accès aux données Système de Gestion de Bases de Données (SGBD) Un Système de Gestion de Bases de Données (SGBD) est un logiciel de haut niveau qui permet de manipuler les informations stockées dans une base de données.
6/74 Introduction SGBD Système de Gestion de Bases de Données (SGBD) Gestion d une BD Solution Une organisation basée basée sur des fichiers? lourdeur d accès aux données manque de sécurité absence de contrôle de concurrence Un système chargé de gérer les fichiers constituant une base de données, de prendre en charge les fonctionnalités de protection et de sécurité et de fournir les différents types d interface nécessaires à l accès aux données Système de Gestion de Bases de Données (SGBD) Un Système de Gestion de Bases de Données (SGBD) est un logiciel de haut niveau qui permet de manipuler les informations stockées dans une base de données.
6/74 Introduction SGBD Système de Gestion de Bases de Données (SGBD) Gestion d une BD Solution Une organisation basée basée sur des fichiers? lourdeur d accès aux données manque de sécurité absence de contrôle de concurrence Un système chargé de gérer les fichiers constituant une base de données, de prendre en charge les fonctionnalités de protection et de sécurité et de fournir les différents types d interface nécessaires à l accès aux données Système de Gestion de Bases de Données (SGBD) Un Système de Gestion de Bases de Données (SGBD) est un logiciel de haut niveau qui permet de manipuler les informations stockées dans une base de données.
7/74 Introduction SGBD Utilisation d un SGBD 1/2 Éléments essentiels pour un SGBD Définition du schéma de données en utilisant les modèles de données du SGBD Le modèle conceptuel (1) : la description du système d information (Modèle entité association) Le modèle logique (2) : interface avec le SGBD Définition des données Opérations sur les données (Création, modification, destruction et recherche) Le modèle physique (3) : fichiers
8/74 Introduction SGBD Utilisation d un SGBD 2/2 Partager les données entre plusieurs utilisateurs. (Mécanisme de transaction). Gérer les conflits si les deux font des mises-à-jour. Offrir un mécanisme de retour en arrière Donner une image cohérente des données si l un fait des requêtes et l autre des mises-à-jour. Optimiser les performances, par le réglage de l organisation physique des données. L organisation physique des données
8/74 Introduction SGBD Utilisation d un SGBD 2/2 Partager les données entre plusieurs utilisateurs. (Mécanisme de transaction). Gérer les conflits si les deux font des mises-à-jour. Offrir un mécanisme de retour en arrière Donner une image cohérente des données si l un fait des requêtes et l autre des mises-à-jour. Optimiser les performances, par le réglage de l organisation physique des données. L organisation physique des données
9/74 Le modèle Entité/Association Principes généraux Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
10/74 Le modèle Entité/Association Principes généraux Introduction le modèle Entité/Association (E/A) est utilisé pour la conception de bases de données. le modèle E/A a pour caractéristiques d être simple et puissant pour représenter des structures relationnelles (représentation graphique). le schéma E/A décrit l application visée (une abstraction d un domaine d étude) une abstraction consiste à choisir certains aspects de la réalité perçue (et donc à éliminer les autres)
10/74 Le modèle Entité/Association Principes généraux Introduction le modèle Entité/Association (E/A) est utilisé pour la conception de bases de données. le modèle E/A a pour caractéristiques d être simple et puissant pour représenter des structures relationnelles (représentation graphique). le schéma E/A décrit l application visée (une abstraction d un domaine d étude) une abstraction consiste à choisir certains aspects de la réalité perçue (et donc à éliminer les autres)
11/74 Le modèle Entité/Association Principes généraux Présentation informelle des entités, représentées par des rectangles, des associations entre entités représentées par des liens entre ces rectangles.
12/74 Le modèle Entité/Association Le modèle Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
13/74 Le modèle Entité/Association Le modèle Entités, attributs et identifiants on désigne par entité tout objet identifiable et pertinent pour l application. les entités sont caractérisées par des propriétés (attributs). un attribut est désigné par un nom et prend ses valeurs dans un domaine énumérable comme les entiers, les chaînes de caractères, les dates, etc. Définition formelle d une entité Le type d une entité est composé des éléments suivants : son nom ; la liste de ses attributs avec, optionnellement le domaine où l attribut prend ses valeurs ; l indication du (ou des) attribut(s) permettant d identifier l entité.
13/74 Le modèle Entité/Association Le modèle Entités, attributs et identifiants on désigne par entité tout objet identifiable et pertinent pour l application. les entités sont caractérisées par des propriétés (attributs). un attribut est désigné par un nom et prend ses valeurs dans un domaine énumérable comme les entiers, les chaînes de caractères, les dates, etc. Définition formelle d une entité Le type d une entité est composé des éléments suivants : son nom ; la liste de ses attributs avec, optionnellement le domaine où l attribut prend ses valeurs ; l indication du (ou des) attribut(s) permettant d identifier l entité.
14/74 Le modèle Entité/Association Le modèle Identifiants Définition formelle d une clé Soit E un type d entité et A l ensemble des attributs de E. Une clé de E est un sous-ensemble minimal de A permettant d identifier de manière unique une entité parmi n importe quelle extension de E Il est possible d avoir plusieurs clés pour un même ensemble d entités. Dans ce cas on en choisit une comme clé primaire, et les autres comme clés secondaires. Les caractéristiques d une bonne clé primaire sont les suivantes : sa valeur est connue pour toute entité ; on ne doit jamais avoir besoin de la modifier ; enfin, pour des raisons de performance, sa taille de stockage doit être la plus petite possible.
14/74 Le modèle Entité/Association Le modèle Identifiants Définition formelle d une clé Soit E un type d entité et A l ensemble des attributs de E. Une clé de E est un sous-ensemble minimal de A permettant d identifier de manière unique une entité parmi n importe quelle extension de E Il est possible d avoir plusieurs clés pour un même ensemble d entités. Dans ce cas on en choisit une comme clé primaire, et les autres comme clés secondaires. Les caractéristiques d une bonne clé primaire sont les suivantes : sa valeur est connue pour toute entité ; on ne doit jamais avoir besoin de la modifier ; enfin, pour des raisons de performance, sa taille de stockage doit être la plus petite possible.
15/74 Le modèle Entité/Association Le modèle Associations binaires La représentation (et le stockage) d entités indépendantes les unes des autres est de peu d utilité Prenons l exemple de l association représentant le fait qu un réalisateur met en scène des films. certains réalisateurs mettent en scène plusieurs films ; inversement, un film est mis en scène par au plus un réalisateur.
15/74 Le modèle Entité/Association Le modèle Associations binaires La représentation (et le stockage) d entités indépendantes les unes des autres est de peu d utilité Prenons l exemple de l association représentant le fait qu un réalisateur met en scène des films. certains réalisateurs mettent en scène plusieurs films ; inversement, un film est mis en scène par au plus un réalisateur.
16/74 Le modèle Entité/Association Le modèle Associations binaires Définitions Une association binaire entre les ensembles d entités E 1 et E 2, est un ensemble de couples (e 1, e 2 ), avec e 1 E 1 et e 2 E 2. Soit une association (E 1, E 2 ) entre deux types d entités. La cardinalité de l association pour E i, i {1, 2}, est une paire [min, max] telle que : Le symbole max (min) désigne le nombre maximal (minimal) de fois où une une entité e i de E 1 peut intervenir dans l association. La clé d une association (binaire) entre un type d entité E 1 et un type d entité E 2 est le couple constitué de la clé c 1 de E 1 et de la clé c 2 de E 2.
16/74 Le modèle Entité/Association Le modèle Associations binaires Définitions Une association binaire entre les ensembles d entités E 1 et E 2, est un ensemble de couples (e 1, e 2 ), avec e 1 E 1 et e 2 E 2. Soit une association (E 1, E 2 ) entre deux types d entités. La cardinalité de l association pour E i, i {1, 2}, est une paire [min, max] telle que : Le symbole max (min) désigne le nombre maximal (minimal) de fois où une une entité e i de E 1 peut intervenir dans l association. La clé d une association (binaire) entre un type d entité E 1 et un type d entité E 2 est le couple constitué de la clé c 1 de E 1 et de la clé c 2 de E 2.
16/74 Le modèle Entité/Association Le modèle Associations binaires Définitions Une association binaire entre les ensembles d entités E 1 et E 2, est un ensemble de couples (e 1, e 2 ), avec e 1 E 1 et e 2 E 2. Soit une association (E 1, E 2 ) entre deux types d entités. La cardinalité de l association pour E i, i {1, 2}, est une paire [min, max] telle que : Le symbole max (min) désigne le nombre maximal (minimal) de fois où une une entité e i de E 1 peut intervenir dans l association. La clé d une association (binaire) entre un type d entité E 1 et un type d entité E 2 est le couple constitué de la clé c 1 de E 1 et de la clé c 2 de E 2.
17/74 Le modèle Entité/Association Le modèle Associations généralisées Définitions Une association n-aire entre n types d entités E 1, E 2,..., E n est un ensemble de n-uplets (e 1, e 2,..., e n) où chaque e i appartient à E i
18/74 Le modèle Entité/Association Avantages et inconvénients Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
19/74 Le modèle Entité/Association Avantages et inconvénients Avantages et inconvénients du modèle E/A Avantages Le modèle Entité/Association est simple et pratique. Il n y a que 3 concepts : entités, associations et attributs. Il est approprié à une représentation graphique intuitive, même s il existe beaucoup de conventions. Il permet de modéliser rapidement des structures pas trop complexes. Inconvénients non-déterminisme : il n y a pas de règle absolue pour déterminer ce qui est entité, attribut ou relation. il est difficile d exprimer des contraintes d intégrité, des structures complexes. il ne propose pas d opérations sur les données.
19/74 Le modèle Entité/Association Avantages et inconvénients Avantages et inconvénients du modèle E/A Avantages Le modèle Entité/Association est simple et pratique. Il n y a que 3 concepts : entités, associations et attributs. Il est approprié à une représentation graphique intuitive, même s il existe beaucoup de conventions. Il permet de modéliser rapidement des structures pas trop complexes. Inconvénients non-déterminisme : il n y a pas de règle absolue pour déterminer ce qui est entité, attribut ou relation. il est difficile d exprimer des contraintes d intégrité, des structures complexes. il ne propose pas d opérations sur les données.
20/74 Le modèle relationnel Définition Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
21/74 Le modèle relationnel Définition Introduction Un modèle de données définit un mode de représentation de l information selon trois composantes : Des structures de données (Langage de Définition de Données (DDL)). Des contraintes qui permettent de spécifier les règles que doit respecter une base de données (Langage de Définition de Données (DDL)) Des opérations pour manipuler les données, en interrogation et en mise à jour (Langage de Manipulation de Données (DML)) Un modèle de données doit d être indépendant de la représentation physique. Le modèle relationnel offre une totale indépendance entre les représentations logique et physique.
21/74 Le modèle relationnel Définition Introduction Un modèle de données définit un mode de représentation de l information selon trois composantes : Des structures de données (Langage de Définition de Données (DDL)). Des contraintes qui permettent de spécifier les règles que doit respecter une base de données (Langage de Définition de Données (DDL)) Des opérations pour manipuler les données, en interrogation et en mise à jour (Langage de Manipulation de Données (DML)) Un modèle de données doit d être indépendant de la représentation physique. Le modèle relationnel offre une totale indépendance entre les représentations logique et physique.
22/74 Le modèle relationnel Définition Définition d un schéma relationnel Le modèle relationnel est un modèle très simple basé sur une seule structure, la relation. Un schéma de relation est simplement un nom suivi de la liste des attributs, chaque attribut étant associé à son domaine. La syntaxe est : R(A 1 : D 1, A 2 : D 2,..., A n : D n) où les A i sont les noms d attributs et les D i les domaines. L arité d une relation est le nombre de ses attributs Une instance d une relation R, ou simplement relation se définit mathématiquement comme un sous ensemble fini du produit cartésien des domaines des attributs de R. La clé d une relation est le plus petit sous-ensemble des attributs qui permet d identifier chaque ligne de manière unique. Un tuple est une liste de n valeurs (v 1, v 2,..., v n) où chaque valeur v i est la valeur d un attribut A i de domaine D i : v i D i.
22/74 Le modèle relationnel Définition Définition d un schéma relationnel Le modèle relationnel est un modèle très simple basé sur une seule structure, la relation. Un schéma de relation est simplement un nom suivi de la liste des attributs, chaque attribut étant associé à son domaine. La syntaxe est : R(A 1 : D 1, A 2 : D 2,..., A n : D n) où les A i sont les noms d attributs et les D i les domaines. L arité d une relation est le nombre de ses attributs Une instance d une relation R, ou simplement relation se définit mathématiquement comme un sous ensemble fini du produit cartésien des domaines des attributs de R. La clé d une relation est le plus petit sous-ensemble des attributs qui permet d identifier chaque ligne de manière unique. Un tuple est une liste de n valeurs (v 1, v 2,..., v n) où chaque valeur v i est la valeur d un attribut A i de domaine D i : v i D i.
23/74 Le modèle relationnel Définition Définition d un schéma relationnel Film (titre : string, année : number, genre : string) ( Alien, 1979, Science-Fiction ) ( Vertigo, 1958, Suspense ) ( Volte-face, 1997, Thriller ) ( Pulp Fiction, 1995, Policier )
24/74 Le modèle relationnel Passage d un schéma E/A à un schéma relationnel Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
25/74 Le modèle relationnel Passage d un schéma E/A à un schéma relationnel Principe On passe d un modèle disposant de deux structures (entités et associations) à un modèle disposant d une seule structure (relations).
26/74 Le modèle relationnel Passage d un schéma E/A à un schéma relationnel Règles générales Entités On crée une relation de même nom que l entité. Chaque propriété de l entité, y compris l identifiant, devient un attribut de la relation. Les attributs de l identifiant constituent la clé de la relation. Film (idfilm, titre, année, genre, résumé) Artiste (idartiste, nom, prénom, annéenaissance) Internaute (email, nom, prénom, région) Pays (code, nom, langue)
26/74 Le modèle relationnel Passage d un schéma E/A à un schéma relationnel Règles générales Entités On crée une relation de même nom que l entité. Chaque propriété de l entité, y compris l identifiant, devient un attribut de la relation. Les attributs de l identifiant constituent la clé de la relation. Film (idfilm, titre, année, genre, résumé) Artiste (idartiste, nom, prénom, annéenaissance) Internaute (email, nom, prénom, région) Pays (code, nom, langue)
27/74 Le modèle relationnel Passage d un schéma E/A à un schéma relationnel Règles générales Associations de un à plusieurs Soit une association de un à plusieurs 1 entre A et B. Le passage au modèle logique suit les règles suivantes : On crée les relations R A et R B correspondant respectivement aux entités A et B. L identifiant de B devient un attribut de R A. Film (idfilm, titre, année, genre, résumé, idartiste, codepays) Artiste (idartiste, nom, prénom, annéenaissance) Pays (codepays, nom, langue)
27/74 Le modèle relationnel Passage d un schéma E/A à un schéma relationnel Règles générales Associations de un à plusieurs Soit une association de un à plusieurs 1 entre A et B. Le passage au modèle logique suit les règles suivantes : On crée les relations R A et R B correspondant respectivement aux entités A et B. L identifiant de B devient un attribut de R A. Film (idfilm, titre, année, genre, résumé, idartiste, codepays) Artiste (idartiste, nom, prénom, annéenaissance) Pays (codepays, nom, langue)
28/74 Le modèle relationnel Passage d un schéma E/A à un schéma relationnel Règles générales Associations de plusieurs à plusieurs Soit une association n-m entre A et B. On crée les relations R A et R B correspondant respectivement aux entités A et B. On crée une relation R A B pour l association. La clé de R A et la clé de R B deviennent des attributs de R A B. La clé de cette relation est la concaténation des clés des relations R A et R B. Les propriétés de l association deviennent des attributs de R A B Film (idfilm, titre, année, genre, résumé, idmes, codepays) Artiste (idartiste, nom, prénom, annéenaissance) Role (idfilm, idartiste, nomrôle)
28/74 Le modèle relationnel Passage d un schéma E/A à un schéma relationnel Règles générales Associations de plusieurs à plusieurs Soit une association n-m entre A et B. On crée les relations R A et R B correspondant respectivement aux entités A et B. On crée une relation R A B pour l association. La clé de R A et la clé de R B deviennent des attributs de R A B. La clé de cette relation est la concaténation des clés des relations R A et R B. Les propriétés de l association deviennent des attributs de R A B Film (idfilm, titre, année, genre, résumé, idmes, codepays) Artiste (idartiste, nom, prénom, annéenaissance) Role (idfilm, idartiste, nomrôle)
29/74 Le modèle relationnel Passage d un schéma E/A à un schéma relationnel Règles générales Points non abordés Dépendances fonctionnelles Normalisation du schéma relationnel Différentes formes normales (1 FN, 2 FN, 3 FN,...)
30/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
31/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Les types SQL
32/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Création des tables/relations CREATE TABLE CREATE TABLE Internaute (email VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motdepasse VARCHAR (60) NOT NULL, anneenaiss DECIMAL (4)) CREATE TABLE Cinéma (nom VARCHAR (50) NOT NULL, adresse VARCHAR (50) DEFAULT Inconnue )
32/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Création des tables/relations CREATE TABLE CREATE TABLE Internaute (email VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motdepasse VARCHAR (60) NOT NULL, anneenaiss DECIMAL (4)) CREATE TABLE Cinéma (nom VARCHAR (50) NOT NULL, adresse VARCHAR (50) DEFAULT Inconnue )
33/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Contraintes Les règles : contraintes d intégrité Un attribut doit toujours avoir une valeur. Un attribut (ou un ensemble d attributs) constitue(nt) la clé de la relation. Un attribut dans une table est liée à la clé primaire d une autre table (intégrité référentielle). La valeur d un attribut doit être unique au sein de la relation. Enfin toute règle s appliquant à la valeur d un attribut.
Le modèle relationnel Langage de définition de données (LDD) : SQL2 Contraintes Clé primaire : PRIMARY KEY CREATE TABLE Internaute (email VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motdepasse VARCHAR (60) NOT NULL, anneenaiss DECIMAL (4), PRIMARY KEY (email)) Clé secondaire : UNIQUE CREATE TABLE Artiste (id INTEGER NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20) NOT NULL, anneenaiss INTEGER, PRIMARY KEY (id), UNIQUE (nom, prenom)) 34/74 CREATE TABLE Cinema ( nom VARCHAR (20) NOT NULL, adresse VARCHAR (50) UNIQUE, PRIMARY KEY (nom))
Le modèle relationnel Langage de définition de données (LDD) : SQL2 Contraintes Clé primaire : PRIMARY KEY CREATE TABLE Internaute (email VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motdepasse VARCHAR (60) NOT NULL, anneenaiss DECIMAL (4), PRIMARY KEY (email)) Clé secondaire : UNIQUE CREATE TABLE Artiste (id INTEGER NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20) NOT NULL, anneenaiss INTEGER, PRIMARY KEY (id), UNIQUE (nom, prenom)) 34/74 CREATE TABLE Cinema ( nom VARCHAR (20) NOT NULL, adresse VARCHAR (50) UNIQUE, PRIMARY KEY (nom))
Le modèle relationnel Langage de définition de données (LDD) : SQL2 Contraintes Clé primaire : PRIMARY KEY CREATE TABLE Internaute (email VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motdepasse VARCHAR (60) NOT NULL, anneenaiss DECIMAL (4), PRIMARY KEY (email)) Clé secondaire : UNIQUE CREATE TABLE Artiste (id INTEGER NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20) NOT NULL, anneenaiss INTEGER, PRIMARY KEY (id), UNIQUE (nom, prenom)) 34/74 CREATE TABLE Cinema ( nom VARCHAR (20) NOT NULL, adresse VARCHAR (50) UNIQUE, PRIMARY KEY (nom))
35/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Contraintes Clé étrangère : FOREIGN KEY CREATE TABLE Film (idfilm INTEGER NOT NULL, titre VARCHAR (50) NOT NULL, annee INTEGER NOT NULL, idmes INTEGER, codepays INTEGER, PRIMARY KEY (idfilm), FOREIGN KEY (idmes) REFERENCES Artiste, FOREIGN KEY (codepays) REFERENCES Pays) CREATE TABLE Film (idfilm INTEGER NOT NULL, titre VARCHAR (50) NOT NULL, annee INTEGER NOT NULL, idmes INTEGER, codepays INTEGER, PRIMARY KEY (idfilm), FOREIGN KEY (idmes) REFERENCES Artiste ON DELETE SET NULL, FOREIGN KEY (codepays) REFERENCES Pays)
35/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Contraintes Clé étrangère : FOREIGN KEY CREATE TABLE Film (idfilm INTEGER NOT NULL, titre VARCHAR (50) NOT NULL, annee INTEGER NOT NULL, idmes INTEGER, codepays INTEGER, PRIMARY KEY (idfilm), FOREIGN KEY (idmes) REFERENCES Artiste, FOREIGN KEY (codepays) REFERENCES Pays) CREATE TABLE Film (idfilm INTEGER NOT NULL, titre VARCHAR (50) NOT NULL, annee INTEGER NOT NULL, idmes INTEGER, codepays INTEGER, PRIMARY KEY (idfilm), FOREIGN KEY (idmes) REFERENCES Artiste ON DELETE SET NULL, FOREIGN KEY (codepays) REFERENCES Pays)
36/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Contraintes CREATE TABLE Salle (nomcinema VARCHAR (30) NOT NULL, no INTEGER NOT NULL, capacite INTEGER NOT NULL, PRIMARY KEY (nomcinema, no), FOREIGN KEY (nomcinema) REFERENCES Cinema ON DELETE CASCADE ON UPDATE CASCADE)
37/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Contraintes CHECK (condition) CREATE TABLE Film (idfilm INTEGER NOT NULL, titre VARCHAR (50) NOT NULL, annee INTEGER NOT NULL CHECK (annee BETWEEN 1890 AND 2000) NOT NULL, genre VARCHAR (10) CHECK (genre IN ( Histoire, Western, Drame )), idmes INTEGER, codepays INTEGER, PRIMARY KEY (idfilm), FOREIGN KEY (idmes) REFERENCES Artiste, FOREIGN KEY (codepays) REFERENCES Pays)
38/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 Contraintes Les points non abordés : Modification du schéma Modification des attributs Création d index...
39/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 TD : Gestion (simplifiée) d un vidéo-club Le propriétaire d un vidéo-club désire conserver toutes les informations nécessaires à la bonne gestion de celui-ci. Vous l avez interrogé, et voici les notes que vous avez prises : Les films peuvent être sur différents supports (Blu_ray, DVD,...). Un même film peut être présent en plusieurs exemplaires. Les clients connaissent parfois le titre du film qu ils veulent emprunter. Les clients demandent souvent les films disponibles de tel acteur, tel réalisateur, ou portant sur tel thème. Les films sont classés par catégories (policier, comédies, etc.). Les clients sont connus par leur nom, prénom, adresse. Chaque exemplaire d un film a un numéro d inventaire. Les clients achètent des crédits avant de pouvoir emprunter. La facturation dépend de la durée de l emprunt et intervient à la restitution de l objet loué. Le tarif est de 1 crédit par tranche de 3h pour un Blu_ray et de 2 crédits par tranche de 3h pour les DVD. Les clients doivent pouvoir être fidélisés par un système de bonus. Le vidéo-club achète régulièrement des films soit parce qu ils viennent de sortir, soit parce qu ils sont empruntés souvent. Le vidéo-club aime bien sortir régulièrement des statistiques sur les films les plus empruntés du mois, les clients qui empruntent le plus,...
40/74 Le modèle relationnel Langage de définition de données (LDD) : SQL2 TD : Gestion (simplifiée) d un vidéo-club Travail à exécuter - Modéliser les données en utilisant un modèle entité/association. - Donner les relations correspondantes - Créer les tables correspondantes en précisant les contraintes d intégrité
41/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
42/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Introduction Définitions Une requête est une expression algébrique qui s applique à un ensemble de relations (la base de données) et produit une relation finale (le résultat de la requête). On peut voir l algèbre relationnelle comme un langage de programmation qui permet d exprimer des requêtes sur une base de données relationnelle. Les opérateurs de l algèbre relationnelle 1 la sélection, dénotée σ ; 2 la projection, dénotée π ; 3 le produit cartésien, dénoté ; 4 l union, dénoté ; 5 la différence, dénotée ; 6 la jointure, dénotée
42/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Introduction Définitions Une requête est une expression algébrique qui s applique à un ensemble de relations (la base de données) et produit une relation finale (le résultat de la requête). On peut voir l algèbre relationnelle comme un langage de programmation qui permet d exprimer des requêtes sur une base de données relationnelle. Les opérateurs de l algèbre relationnelle 1 la sélection, dénotée σ ; 2 la projection, dénotée π ; 3 le produit cartésien, dénoté ; 4 l union, dénoté ; 5 la différence, dénotée ; 6 la jointure, dénotée
43/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Introduction BD d un organisme de voyage Station (nomstation, capacité, lieu, région, tarif) Activite (nomstation, libellé, prix) Client (id, nom, prénom, ville, région, solde) Séjour (idclient, station, début, nbplaces)
44/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle La sélection, σ La sélection σ F (R) s applique à une relation R et extrait de cette relation les tuples qui satisfont un critère de sélection, F. Ce critère peut être : La comparaison entre un attribut de la relation, A, et une constante a. La comparaison entre deux attributs A 1 et A 2. σ region= Antilles (Station)
44/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle La sélection, σ La sélection σ F (R) s applique à une relation R et extrait de cette relation les tuples qui satisfont un critère de sélection, F. Ce critère peut être : La comparaison entre un attribut de la relation, A, et une constante a. La comparaison entre deux attributs A 1 et A 2. σ region= Antilles (Station)
44/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle La sélection, σ La sélection σ F (R) s applique à une relation R et extrait de cette relation les tuples qui satisfont un critère de sélection, F. Ce critère peut être : La comparaison entre un attribut de la relation, A, et une constante a. La comparaison entre deux attributs A 1 et A 2. σ region= Antilles (Station)
45/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle La projection, π La projection π A1,A 2,...,A n (R) s applique à une relation R et ne garde que les attributs A 1, A 2,..., A n. Donc, contrairement à la sélection, on ne supprime pas des lignes mais des colonnes. π nomstation,region (Station)
45/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle La projection, π La projection π A1,A 2,...,A n (R) s applique à une relation R et ne garde que les attributs A 1, A 2,..., A n. Donc, contrairement à la sélection, on ne supprime pas des lignes mais des colonnes. π nomstation,region (Station)
45/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle La projection, π La projection π A1,A 2,...,A n (R) s applique à une relation R et ne garde que les attributs A 1, A 2,..., A n. Donc, contrairement à la sélection, on ne supprime pas des lignes mais des colonnes. π nomstation,region (Station)
46/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle Le produit cartésien, Le produit cartésien entre deux relations R et S se note R S, et permet de créer une nouvelle relation où chaque tuple de R est associé à chaque tuple de S.
46/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle Le produit cartésien, Le produit cartésien entre deux relations R et S se note R S, et permet de créer une nouvelle relation où chaque tuple de R est associé à chaque tuple de S.
47/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle Station Activite
48/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle σ S.nomStation=A.nomStation (Station Activite)
48/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle σ S.nomStation=A.nomStation (Station Activite)
49/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle La jointure, Toutes les requêtes exprimables avec l algèbre relationnelle peuvent se construire avec les 5 opérateurs présentés. En pratique, il existe d autres opérations, très couramment utilisées, qui peuvent se construire par composition des opérations de base. La plus importante est la jointure. Une jointure R F S peut être définie étant équivalent à σ F (R S). Le critère de rapprochement F peut être n importe quelle opération de comparaison liant un attribut de R à un attribut de F.
49/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle La jointure, Toutes les requêtes exprimables avec l algèbre relationnelle peuvent se construire avec les 5 opérateurs présentés. En pratique, il existe d autres opérations, très couramment utilisées, qui peuvent se construire par composition des opérations de base. La plus importante est la jointure. Une jointure R F S peut être définie étant équivalent à σ F (R S). Le critère de rapprochement F peut être n importe quelle opération de comparaison liant un attribut de R à un attribut de F.
50/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle Station S.nomStation=A.nomStation Activite = σ S.nomStation=A.nomStation (Station Activite)
51/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle L union, L expression R S crée une relation comprenant tous les tuples existant dans l une ou l autre des relations R et S. Il existe une condition impérative : les deux relations doivent avoir le même schéma, c est-à-dire même nombre d attributs, mêmes noms et mêmes types. La différence, La différence s applique à deux relations qui ont le même schéma. L expression R S a alors pour résultat tous les tuples de R qui ne sont pas dans S.
51/74 L algèbre relationnelle Les opérateurs de l algèbre relationnelle Les opérateurs de l algèbre relationnelle L union, L expression R S crée une relation comprenant tous les tuples existant dans l une ou l autre des relations R et S. Il existe une condition impérative : les deux relations doivent avoir le même schéma, c est-à-dire même nombre d attributs, mêmes noms et mêmes types. La différence, La différence s applique à deux relations qui ont le même schéma. L expression R S a alors pour résultat tous les tuples de R qui ne sont pas dans S.
52/74 Le langage SQL Requêtes simples SQL Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
53/74 Le langage SQL Requêtes simples SQL Sélections simples La structure de base Une requête SQL de base contient trois clauses : 1 SELECT indique la liste des attributs constituant le résultat. 2 FROM indique la (ou les) tables dans lesquelles on trouve les attributs utiles à la requête. 3 WHERE indique les conditions que doivent satisfaire les n-uplets de la base pour faire partie du résultat. SELECT nomstation FROM Station WHERE region = Antilles
53/74 Le langage SQL Requêtes simples SQL Sélections simples La structure de base Une requête SQL de base contient trois clauses : 1 SELECT indique la liste des attributs constituant le résultat. 2 FROM indique la (ou les) tables dans lesquelles on trouve les attributs utiles à la requête. 3 WHERE indique les conditions que doivent satisfaire les n-uplets de la base pour faire partie du résultat. SELECT nomstation FROM Station WHERE region = Antilles
54/74 Le langage SQL Requêtes simples SQL Sélections simples La structure de base Dans une requête SQL, on peut : 1 Renommer les attributs. 2 Appliquer des fonctions aux valeurs de chaque tuple. 3 Introduire des constantes.
55/74 Le langage SQL Requêtes simples SQL Sélections simples Renommage SELECT libelle, (prix / 6.56 AS prixeneuros), Cours de l euro =, 6.56 AS cours FROM Activite WHERE nomstation = Santalba
56/74 Le langage SQL Requêtes simples SQL Sélections simples Doublons SELECT DISTINCT libelle FROM Activite
57/74 Le langage SQL Requêtes simples SQL Sélections simples Tri du résultat SELECT * FROM Activite ORDER BY Prix SELECT * FROM Activite ORDER BY Prix DESC
57/74 Le langage SQL Requêtes simples SQL Sélections simples Tri du résultat SELECT * FROM Activite ORDER BY Prix SELECT * FROM Activite ORDER BY Prix DESC
58/74 Le langage SQL Requêtes simples SQL La clause WHERE Conditions SELECT nomstation, libelle FROM Activite WHERE nomstation = Santalba AND (prix > 50 AND prix < 120) SELECT nomstation, libelle FROM Activite WHERE nomstation = Santalba AND prix BETWEEN 50 AND 120
58/74 Le langage SQL Requêtes simples SQL La clause WHERE Conditions SELECT nomstation, libelle FROM Activite WHERE nomstation = Santalba AND (prix > 50 AND prix < 120) SELECT nomstation, libelle FROM Activite WHERE nomstation = Santalba AND prix BETWEEN 50 AND 120
Le langage SQL Requêtes simples SQL La clause WHERE Chaînes de caractères Il existe des motifs de recherches à l aide de la clause LIKE. Le caractère _ désigne n importe quel caractère, et le % n importe quelle chaîne de caractères. SELECT nomstation FROM Station WHERE nomstation LIKE %a SELECT nomstation FROM Station WHERE nomstation LIKE V 59/74 Dates Une date est spécifiée par le mot-clé DATE et d une chaîne de caractères au format aaaa-mm-jj. SELECT idclient FROM Sejour WHERE debut BETWEEN DATE 1998-07-01 AND DATE 1998-07-31
Le langage SQL Requêtes simples SQL La clause WHERE Chaînes de caractères Il existe des motifs de recherches à l aide de la clause LIKE. Le caractère _ désigne n importe quel caractère, et le % n importe quelle chaîne de caractères. SELECT nomstation FROM Station WHERE nomstation LIKE %a SELECT nomstation FROM Station WHERE nomstation LIKE V 59/74 Dates Une date est spécifiée par le mot-clé DATE et d une chaîne de caractères au format aaaa-mm-jj. SELECT idclient FROM Sejour WHERE debut BETWEEN DATE 1998-07-01 AND DATE 1998-07-31
Le langage SQL Requêtes simples SQL La clause WHERE Chaînes de caractères Il existe des motifs de recherches à l aide de la clause LIKE. Le caractère _ désigne n importe quel caractère, et le % n importe quelle chaîne de caractères. SELECT nomstation FROM Station WHERE nomstation LIKE %a SELECT nomstation FROM Station WHERE nomstation LIKE V 59/74 Dates Une date est spécifiée par le mot-clé DATE et d une chaîne de caractères au format aaaa-mm-jj. SELECT idclient FROM Sejour WHERE debut BETWEEN DATE 1998-07-01 AND DATE 1998-07-31
Le langage SQL Requêtes simples SQL La clause WHERE Chaînes de caractères Il existe des motifs de recherches à l aide de la clause LIKE. Le caractère _ désigne n importe quel caractère, et le % n importe quelle chaîne de caractères. SELECT nomstation FROM Station WHERE nomstation LIKE %a SELECT nomstation FROM Station WHERE nomstation LIKE V 59/74 Dates Une date est spécifiée par le mot-clé DATE et d une chaîne de caractères au format aaaa-mm-jj. SELECT idclient FROM Sejour WHERE debut BETWEEN DATE 1998-07-01 AND DATE 1998-07-31
60/74 Le langage SQL Requêtes sur plusieurs tables Plan 1 Introduction Données, Bases de données et SGBD SGBD 2 Le modèle Entité/Association Principes généraux Le modèle Avantages et inconvénients 3 Le modèle relationnel Définition Passage d un schéma E/A à un schéma relationnel Langage de définition de données (LDD) : SQL2 4 L algèbre relationnelle Les opérateurs de l algèbre relationnelle 5 Le langage SQL Requêtes simples SQL Requêtes sur plusieurs tables Requêtes imbriquées Agrégation Mises-à-jour
Le langage SQL Requêtes sur plusieurs tables Jointures Définition La jointure permet d exprimer des requêtes portant sur des données réparties dans plusieurs tables. La syntaxe pour exprimer des jointures est une extension directe de celle étudiée précédemment dans le cas des sélections simples. BD d un organisme de voyage Station (nomstation, capacité, lieu, région, tarif) Activite (nomstation, libellé, prix) Client (id, nom, prénom, ville, région, solde) Séjour (idclient, station, début, nbplaces) 61/74 donner le nom des clients avec le nom des stations où ils ont séjourné. SELECT nom, station FROM Client, Sejour WHERE id = idclient Le nom du client est dans la table Client, l information sur le lien client/station dans la table Sejour
Le langage SQL Requêtes sur plusieurs tables Jointures Définition La jointure permet d exprimer des requêtes portant sur des données réparties dans plusieurs tables. La syntaxe pour exprimer des jointures est une extension directe de celle étudiée précédemment dans le cas des sélections simples. BD d un organisme de voyage Station (nomstation, capacité, lieu, région, tarif) Activite (nomstation, libellé, prix) Client (id, nom, prénom, ville, région, solde) Séjour (idclient, station, début, nbplaces) 61/74 donner le nom des clients avec le nom des stations où ils ont séjourné. SELECT nom, station FROM Client, Sejour WHERE id = idclient Le nom du client est dans la table Client, l information sur le lien client/station dans la table Sejour
Le langage SQL Requêtes sur plusieurs tables Jointures Définition La jointure permet d exprimer des requêtes portant sur des données réparties dans plusieurs tables. La syntaxe pour exprimer des jointures est une extension directe de celle étudiée précédemment dans le cas des sélections simples. BD d un organisme de voyage Station (nomstation, capacité, lieu, région, tarif) Activite (nomstation, libellé, prix) Client (id, nom, prénom, ville, région, solde) Séjour (idclient, station, début, nbplaces) 61/74 donner le nom des clients avec le nom des stations où ils ont séjourné. SELECT nom, station FROM Client, Sejour WHERE id = idclient Le nom du client est dans la table Client, l information sur le lien client/station dans la table Sejour
Le langage SQL Requêtes sur plusieurs tables Jointures Définition La jointure permet d exprimer des requêtes portant sur des données réparties dans plusieurs tables. La syntaxe pour exprimer des jointures est une extension directe de celle étudiée précédemment dans le cas des sélections simples. BD d un organisme de voyage Station (nomstation, capacité, lieu, région, tarif) Activite (nomstation, libellé, prix) Client (id, nom, prénom, ville, région, solde) Séjour (idclient, station, début, nbplaces) 61/74 donner le nom des clients avec le nom des stations où ils ont séjourné. SELECT nom, station FROM Client, Sejour WHERE id = idclient Le nom du client est dans la table Client, l information sur le lien client/station dans la table Sejour