Introduction aux bases de données

Documents pareils
Bases de Données relationnelles et leurs systèmes de Gestion

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Langage SQL : créer et interroger une base

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Introduction au Système de Gestion de Base de Données et aux Base de Données

16H Cours / 18H TD / 20H TP

Le langage SQL Rappels

Rappel sur les bases de données

Les bases de données

I4 : Bases de Données

Cours de bases de données. Philippe Rigaux

Bases de données relationnelles

UML et les Bases de Données

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bases de Données. Plan

Olivier Mondet

1 Introduction et installation

Le Langage De Description De Données(LDD)

Évaluation et optimisation de requêtes

Création et Gestion des tables

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Bases de données - Modèle relationnel

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Cours Base de données relationnelles. M. Boughanem, IUP STRI

PHP 5. La base de données MySql. A. Belaïd 1

Vincent Augusto

Intégrité des données

Le Langage SQL version Oracle

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Bases de données. PTSI Lycée Eiffel. 28 février 2014

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

1 Modélisation d une base de données pour une société de bourse

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Bases de Données Avancées

A QUOI SERVENT LES BASES DE DONNÉES?

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

MODE OPERATOIRE OPENOFFICE BASE

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Bases de données relationnelles & SQL

TP Contraintes - Triggers

Présentation du module Base de données spatio-temporelles

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

MySQL / SQL EXEMPLES

Bases de données. Chapitre 1. Introduction

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Compétences Business Objects

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Pour les débutants. langage de définition des données

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Notes de cours : bases de données distribuées et repliquées

Bases de données élémentaires Maude Manouvrier

Bases de données avancées Introduction

TD n 10 : Ma première Base de Données

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Bases de Données Relationnelles. Le Modèle Relationnel

SQL Historique

Les BASES de DONNEES dans WampServer

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

Le langage SQL (première partie) c Olivier Caron

Modèle Entité/Association

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

Modélisation de bases de données : Le modèle relationnel

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

1 Position du problème

INTRODUCTION : Données structurées et accès simplifié

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

Systèmes de Gestion de Bases de Données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

TP3 : Creation de tables 1 seance

Bases de données et sites WEB

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Java DataBaseConnectivity

CREATION WEB DYNAMIQUE

Historisation des données

INTRODUCTION AU DATA MINING

1. Base de données SQLite

OpenPaaS Le réseau social d'entreprise

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Introduction aux Bases de Données

Conception des bases de données : Modèle Entité-Association

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

AGRÉGATION «ÉCONOMIE ET GESTION»

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Modélisation et Gestion des bases de données avec mysql workbench

Bases de données et sites WEB Licence d informatique LI345

Information utiles. webpage : Google+ : digiusto/

Administration des bases de données. Jean-Yves Antoine

Modèle conceptuel : diagramme entité-association

Intégrité sémantique dans les bases de données relationnelles

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

Bases de données cours 1

Transcription:

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