INTRODUCTION AUX BASES DE DONNEES

Documents pareils
16H Cours / 18H TD / 20H TP

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

Les bases de données

1 Introduction et installation

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

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

Rappel sur les bases de données

Bases de données relationnelles

Le langage SQL Rappels

Vincent Augusto

Langage SQL : créer et interroger une base

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

SQL Historique

Introduction aux Bases de Données

Bases de Données. Plan

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

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

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

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

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

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

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

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

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

Le Langage SQL version Oracle

COURS de BASES de DONNEES

Bases de données élémentaires Maude Manouvrier

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

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

BTS/CGO P10 SYSTEME INFORMATION Année

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

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

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

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

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

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

Bases de données relationnelles & SQL

PROJET 1 : BASE DE DONNÉES REPARTIES

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Bases de Données Avancées

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

FileMaker 13. Guide de référence SQL

OBJECTIFS ET ARCHITECTURE DES SGBD

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)

Intégrité des données

CREATION WEB DYNAMIQUE

MODE OPERATOIRE OPENOFFICE BASE

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

A QUOI SERVENT LES BASES DE DONNÉES?

Information utiles. webpage : Google+ : digiusto/

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

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

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

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

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

Cours SQL. Base du langage SQL et des bases de données

UML (Diagramme de classes) Unified Modeling Language

Chapitre 1 Généralités sur les bases de données

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

Bases de données Outils de gestion

Bases de données réparties: Fragmentation et allocation

Bases de données avancées Introduction

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

Introduction aux Bases de Données

Dossier I Découverte de Base d Open Office

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Systèmes d information et bases de données (niveau 1)

Introduction aux Systèmes de Gestion de Bases de Données Relationnelles. Olivier Losson

Compétences Business Objects

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

Cours Bases de données

Bases de données. Chapitre 1. Introduction

Introduction aux Bases de Données 2004/2005

Olivier Mondet

Le Langage De Description De Données(LDD)

IFT3030 Base de données. Chapitre 1 Introduction

LE MODELE CONCEPTUEL DE DONNEES

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

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Introduction aux Bases de Données Relationnelles Conclusion - 1

UML et les Bases de Données

La présente publication est protégée par les droits d auteur. Tous droits réservés.

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

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

SOMMAIRE. Travailler avec les requêtes... 3

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

Merise. Introduction

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

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

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

Bases de données cours 1

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

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Transcription:

PLAN DU COURS INTRODUCTION Des Fichiers aux Bases de Données SYSTEME DE GESTION DE BASE DE DONNEES SGBD, Modèle relationnel INTERROGATION DES BASES DE DONNEES RELATIONNELLES Algèbre relationnelle, langage SQL METHODE SIMPLIFIEE DE CONCEPTION D UNE BASE DE DONNEES RELATIONNELLE MANIPULATION DES BASES DE DONNEES RELATIONNELLES SQL sous-langage de mise à jour Année 2010-2011 1

INTRODUCTION INFORMATIQUE : ensemble des disciplines scientifiques et techniques spécialement applicables au traitement de l information effectué notamment par des moyens automatiques [définition AFNOR] Année 2010-2011 2

INTRODUCTION CODAGE ASCII : Année 2010-2011 3

type d entité Exemple : Client INTRODUCTION Nom prénom N compte débit crédit solde Occurrence d entité Exemple : Client DUPONT Pierre DUPONT Pierre 8610089 20.00 100.00 80.00 Année 2010-2011 4

INTRODUCTION DEFINITION AFNOR Une base de données est une structure de données permettant de recevoir, de stocker, et de fournir à la demande, des données à de multiples utilisateurs indépendants DEFINITION DU COURS Une base de données est un ensemble structuré de données partagées entre plusieurs applications, dans lequel les structures de données exploitées représentent aussi bien les données du monde réel que les associations entre ces données Année 2010-2011 5

SYSTEMES DE GESTION DE BASES DE DONNEES ARCHITECTURE ANSI/X3/SPARC Année 2010-2011 6

SYSTEMES DE GESTION DE BASES DE DONNEES Système de Gestion de Base de Données (SGBD) = ensemble de composants logiciels permettant la mise en oeuvre de bases de données dans le respect d un modèle et avec plusieurs objectifs. Année 2010-2011 7

SYSTEMES DE GESTION DE BASES DE DONNEES Principaux objectifs d un SGBD indépendance dans la définition des données du monde réel, par rapport aux structures physiques de stockage partage, qui peut être simultané, des données entre plusieurs applications indépendance logique des visions propres à chaque application non redondance des données cohérence des données sécurité des données Année 2010-2011 8

SYSTEMES DE GESTION DE BASES DE DONNEES Modèle logique de données modèle hiérarchique ne permet de représenter qu un seul type d association : père-fils (représentation du monde réel sous forme d un arbre); modèle réseau permet la représentation de tous types d associations (représentation du monde réel sous forme d un graphe) modèle RELATIONNEL permet, en s appuyant sur une théorie mathématique élaborée, de représenter de façon simple, sous forme de table aussi bien les objets du monde réel, que les associations entre ces objets modèle OBJET s appuie sur le concept d objet qui permet d associer dans une même structure les données et les traitements, et qui permet de gérer entre autres les concepts d héritage, de généralisation/spécialisation Année 2010-2011 9

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES Le modèle relationnel de Codd 3 composantes : - structures : définir les données - opérateurs : manipuler les données - règles d intégrité : contraintes résultant des structures Année 2010-2011 1

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES Le modèle relationnel de Codd CONCEPTS de STRUCTURES DOMAINE = { valeurs d une propriété } RELATION = sous-ensemble du produit cartésien de n domaines R (D1 x D2 x D3 x x Dn) Année 2010-2011 2

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES Le modèle relationnel de Codd CONCEPTS de STRUCTURES ATTRIBUT = identifie un usage donné d un domaine TUPLE = élément d une relation (a1, a2, a3,, an) R Année 2010-2011 3

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES Le modèle relationnel de Codd CONCEPTS d INTÉGRITÉ INTÉGRITÉ de DOMAINE un attribut ne peut prendre ses valeurs que dans l ensemble des valeurs de son domaine de définition Année 2010-2011 4

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES Le modèle relationnel de Codd CONCEPTS d INTÉGRITÉ INTÉGRITÉ de RELATION au moins un attribut ou ensemble d attributs particulier doit permettre d identifier sans ambiguïté chacun des éléments de la relation c est une CLÉ Année 2010-2011 5

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES Le modèle relationnel de Codd CONCEPTS d INTÉGRITÉ INTÉGRITÉ de RÉFÉRENCE Relation indépendante (statique) : valeurs des attributs indépendantes des autres relations Relation dépendante (dynamique) : Au moins un attribut (clé étrangère) prend ses valeurs dans l ensemble des valeurs d un attribut clé (clé de référence) d une autre relation Année 2010-2011 6

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES Le modèle relationnel de Codd CONCEPTS d INTÉGRITÉ RÈGLE D INTÉGRITÉ de RÉFÉRENCE La valeur d une clé étrangère doit appartenir à l ensemble des valeurs existantes de sa clé de référence. Année 2010-2011 7

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES QUELQUES DÉFINITIONS TABLE = Visualisation d une Relation comportant des lignes et des colonnes NUMEROPILOT NOMPILOT PREN_PILOT VILLE SALAIRE 004 TARTANPION Albert Paris 5500,00 007 DUPONT Jean Lyon 4700,00 010 WILSON Fred Marseille 3600,00 Année 2010-2011 8

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES QUELQUES DÉFINITIONS Clé candidate Attribut ou ensemble d attributs ayant une valeur unique pour chaque tuple Clé primaire Attribut ou ensemble d attributs ayant une valeur unique pour chaque tuple et choisi par convention comme clé de la relation Année 2010-2011 9

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES QUELQUES DÉFINITIONS Schéma d une relation Nom_Relation(Nom_Att_1,... Nom_Att_i#, Nom_Att_j,..,Nom_Att_n) Schéma relationnel Ensemble des relations modélisant un monde réel Vue = Table virtuelle = Relation non matérialisée = vision utilisateur Année 2010-2011 10

SYSTEMES DE GESTION DE BASES DE DONNEES RELATIONNELLES L EXEMPLE de MS-ACCESS SGBDR Schéma relationnel MS-ACCESS Fichier base de données Relation / Table Table Tuple / Ligne Ligne Attribut / Colonne Champ Clé primaire Clé Primaire Contraintes d intégrité référentielle Relations entre tables Année 2010-2011 11

OPÉRATEURS DU MODÈLE RELATIONNEL PROJECTION = Ensemble des lignes de la table opérande, en ne retenant qu un sousensemble des attributs Notation : R1 = Proj(R,Ap1,A p2,...a pk) où R est la relation opérande, et Ap1,Ap2,...Apk les attributs projetés Année 2010-2011 1

OPÉRATEURS DU MODÈLE RELATIONNEL PROJECTION Exemple : PILOTE(NUMPIL, NOMPIL, PRENPIL, ADRPIL, SALAIRE) NUMPIL NOMPIL PRENPIL ADRPIL SALAIRE 004 TARTAN Albert......... 6500 007 DUPONT Jean......... 5400 010 WILSON Fred......... 4700 Proj(PILOTE, NUMPIL, NOMPIL, PRENPIL) = NUMPIL 004 007 010 NOMPIL TARTAN DUPONT WILSON PRENPIL Albert Jean Fred Année 2010-2011 2

OPÉRATEURS DU MODÈLE RELATIONNEL RESTRICTION = Sous-ensemble de lignes répondant à une qualification donnée Notation : R1 = R1 = Restrict(R,Cr) où R est la relation opérande, et et Cr le critère de qualification Année 2010-2011 3

OPÉRATEURS DU MODÈLE RELATIONNEL RESTRICTION Exemple : PILOTE(NUMPIL, NOMPIL, PRENPIL, ADRPIL, SALAIRE) NUMPIL NOMPIL PRENPIL ADRPIL SALAIRE 004 TARTAN Albert......... 6500 007 DUPONT Jean......... 5400 010 WILSON Fred......... 4700 Proj( Restrict(PILOTE, SALAIRE < 5500), NUMPIL,NOMPIL,PRENPIL)= NUMPIL NOMPIL PRENPIL 007 010 DUPONT WILSON Jean Fred Année 2010-2011 4

OPÉRATEURS DU MODÈLE RELATIONNEL JOINTURE = Ensemble des lignes concaténées de 2 relations R et S de schéma non forcément identique, satisfaisant à une condition portant sur au moins un attribut de chacune des relations Notation : R1 = Join(R, S, Cj) où R et S sont les relations opérandes, et Cj le critère de jointure Année 2010-2011 5

OPÉRATEURS DU MODÈLE RELATIONNEL JOINTURE Exemple : R(A1,A2,A3) S(B1,B2,B3) A 1 A 2 A 3 B 1 B 2 B 3 4 AAAAAA 220 220 VILA VILB 7 BBBBBBB 416 416 VILC VILK 9 CCCCCC 220 804 VILD VILJ 10 DDDDDD 804 325 VILB VILK Join(R, S, A3= B1) = A 1 A 2 A 3 B 1 B 2 B 3 4 AAAAAA 220 220 VILA VILB 7 BBBBBBB 416 416 VILC VILK 9 CCCCCC 220 220 VILA VILB 10 DDDDDD 804 804 VILD VILJ Année 2010-2011 6

OPÉRATEURS DU MODÈLE RELATIONNEL UNION = Toutes les lignes de la relation R, première relation opérande, + toutes les lignes de la relation S, seconde relation opérande, R et S ayant IMPÉRATIVEMENT le même schéma. Notation : R1 = Union(R, S) où R et S sont les relations opérandes Année 2010-2011 7

OPÉRATEURS DU MODÈLE RELATIONNEL UNION Exemple : R(A1,A2,A3) S(B1,B2,B3) A 1 A 2 A 3 A 1 A 2 A 3 4 AAAAAA 22 0 6 FFFFF F 220 7 BBBBBBB 41 6 8 HHHH HH 804 9 CCCCCC 22 0 11 JJJJJJ 325 10 DDDDDD 80 4 UNION(R, S) = 4 A 1 AAAAAA A 2 220 A 3 7 BBBBBBB 416 9 CCCCCC 220 10 DDDDDD 804 6 FFFFFF 220 8 HHHHHH 804 11 JJJJJJ 325 Année 2010-2011 8

PROJECTION OPÉRATEURS DU MODÈLE RELATIONNEL Mise en œuvre graphique sous MS-Access Année 2010-2011 9

RESTRICTION OPÉRATEURS DU MODÈLE RELATIONNEL Mise en œuvre graphique sous MS-Access Année 2010-2011 10

JOINTURE OPÉRATEURS DU MODÈLE RELATIONNEL Mise en œuvre graphique sous MS-Access Année 2010-2011 11

LANGAGE SQL SQL Structured Query Language SQL LMD Manipulation des données SQL LDD Définition des données SQL LMD Interrogation SQL LMD Mise à jour Année 2010-2011 1

LANGAGE SQL PROJECTION EN SQL Algèbre relationnelle : Proj(R,Ap1,A p2,...a pk) SQL : SELECT Ap1, Ap2, Ap3,.,Apk FROM R; Exemple : Algèbre relationnelle : Proj(PILOTE, NUMPIL, NOMPIL, PRENPIL) SQL : SELECT NUMPIL, NOMPIL, PRENPIL FROM PILOTE ; Année 2010-2011 2

LANGAGE SQL RESTRICTION EN SQL Algèbre relationnelle : Restrict(R,Cr) SQL : SELECT * FROM R WHERE Cr ; Exemple : Algèbre relationnelle : Restrict(PILOTE, SALAIRE < 5500) = SQL : SELECT * FROM PILOTE WHERE SALAIRE < 5500 ; Année 2010-2011 3

LANGAGE SQL Algèbre relationnelle : Join(R, S, Cj) JOINTURE EN SQL1 SQL : SELECT * FROM R, S WHERE Cj ; Exemple : Algèbre relationnelle : Join(R, S, A3= B1) SQL : SELECT * FROM R, S WHERE A3= B1; Année 2010-2011 4

LANGAGE SQL Algèbre relationnelle : Join(R, S, Cj) JOINTURE EN SQL2 SQL : SELECT * FROM R JOIN S ON Cj ; Exemple : Algèbre relationnelle : Join(R, S, A3= B1) SQL : SELECT * FROM R JOIN S ON A3 = B1; Année 2010-2011 5

Algèbre relationnelle : Union(R, S) SQL : SELECT * FROM R UNION SELECT * FROM S ; LANGAGE SQL UNION EN SQL Exemple : Select * from avion where typav = A300 Union Select * from avion where totalheurvol > 7000 ; Année 2010-2011 6

LANGAGE SQL FORMAT GÉNÉRIQUE DE SQL1 SELECT [DISTINCT] <liste_d attributs_projetés > * <expression(attribut)> <fonction(attribut)> <constante> FROM < nom_de_table [,nom_de_table ] > [ WHERE <critère_de_qualification> et /ou <critère_de_jointure> ] [ ORDER BY < nom_attribut> [, <nom_attribut>...] [ASC DESC] ] ; Exemple : Select noav,nbpl1,nbpl2 from avion a, type t where a.typav = t.typav and a.typav = A300 order by noav ; Année 2010-2011 7

LANGAGE SQL FORMAT GÉNÉRIQUE DE SQL2 SELECT [DISTINCT] <liste_d attributs_projetés > * <expression(attribut)> fonction(attribut) constante > FROM <nom_table> join <nom_table> on <critere_de_jointure> <nom_table> join (<jointure_de_table>) on <critere_de_jointure> (<jointure_de_table>) join <nom_table> on <critere_de_jointure> (<jointure_de_table>) join (<jointure_de_table>) on <critere_de_jointure> [WHERE <critère_de_qualification et /ou critère_de_jointure>] [ORDER BY < nom_attribut [, nom_attribut...] [ASC DESC] > ]; Exemple : Select noav,nbpl1,nbpl2 from avion a join type t on atypav = t.typav where a.typav = A300 order by noav ; Année 2010-2011 8

LANGAGE SQL QUELQUES CLAUSES PARTICULIERES DE SQL Clause DISTINCT permet d obtenir une relation résultat dans laquelle tous les tuples sont différents (pas de doublons) Exemple : sur la table AVION (noav,typav,totalheurvol) NOAV 150 170 190 210 TYPAV A300 B727 B727 A300 TOTALHEURVOL 32000 40000 35000 41000 Année 2010-2011 9

LANGAGE SQL QUELQUES CLAUSES PARTICULIERES DE SQL SELECT typav from avion ; a pour résultat TYPAV A300 B727 TYPAV A300 B727 B727 A300 SELECT DISTINCT typav from avion ; a pour résultat Année 2010-2011 10

LANGAGE SQL QUELQUES CLAUSES PARTICULIERES DE SQL Clause ORDER BY ordonne les tuples résultat selon les valeurs croissantes (ASC) ou décroissante (DESC) d un ou plusieurs attributs Exemple : sur la table AVION (noav,typav,totalheurvol) NOAV 150 170 190 210 TYPAV A300 B727 B727 A300 TOTALHEURVOL 32000 40000 35000 41000 Année 2010-2011 11

LANGAGE SQL QUELQUES CLAUSES PARTICULIERES DE SQL SELECT noav,totalheurvol from avion Order by totalheurvol; a pour résultat NOAV 150 190 170 210 TOTALHEURVOL 32000 35000 40000 41000 Année 2010-2011 12

INTRODUCTION LANGAGE AUX BASES SQL DE DONNEES OPERATEURS SPECIFIQUES DE SQL IN pour sélectionner un attribut dont la valeur est présente dans un ensemble donné de valeurs attributs Attribut IN (valeur1, valeur2,.,valeurn) BETWEEN pour sélectionner un attribut dont la valeur est comprise dans un intervalle donné de valeurs Attribut BETWEEN valeurdeb AND valeurfin LIKE pour comparer la valeur d un attribut de type chaine de caractères à une chaine de caractères incluant des caractères génériques. % désigne une séquence de caractères de longueur variable (éventuellement nulle) ; _ désigne un caractère quelconque. Attribut LIKE chaine générique Année 2010-2011 13

LANGAGE SQL FACILITÉS D ÉCRITURE et PRESENTATION DE SQL Alias pour faciliter l écriture d un ordre SQL, on peut associer à une table une chaîne de caractères de longueur limitée (de 1 à 3 caractères en général). C est un «alias». Il se place après le nom de table séparé de ce dernier par au moins un espace. Exemple : alias «a» pour avion et «t» pout type dans l ordre suivant Select noav,nbpl1,nbpl2 from avion a join type t on a.typav = t.typav where a.typav = A300 order by noav ; Nom de colonne On peut, dans le résultat d un ordre select, afficher un nom de colonne différent du nom d attribut correspondant Exemple : «avion» pour la colonne de l attribut «noav», «places_affair» pour «nbpl1» et «places_eco» pour «nbpl2» Select noav,nbpl1,nbpl2 from avion a join type t on a.typav = t.typav where a.typav = A300 order by noav ; Année 2010-2011 14

LANGAGE SQL SQL sous MS-Access Année 2010-2011 15

LANGAGE SQL SQL sous MS-Access Expression de la jointure : «INNER JOIN» Année 2010-2011 16

LANGAGE SQL REQUETES IMBRIQUEES = Ordres SELECT dont le résultat est utilisé dans la clause WHERE d un SELECT englobant Exemple : SELECT NUMPIL, NOMPIL, PRENPIL FROM PILOTE WHERE NUMPIL IN ( SELECT NUMPIL FROM VOL WHERE VILDEP = PARIS ) ; Plusieurs niveaux d imbrication sont possibles. Année 2010-2011 1

LANGAGE SQL REQUETES IMBRIQUEES Le résultat du SELECT imbriqué est utilisé comme valeur de comparaison dans un critère de qualification. SELECT FROM WHERE AttributX = (SELECT.) ; Dans ce cas le SELECT ramène IMPERATIVEMENT une seule valeur SELECT FROM WHERE AttributX IN (SELECT.) ; Dans ce cas le SELECT peut ramener plusieurs valeurs Année 2010-2011 2

LANGAGE SQL FONCTIONS DE CALCUL SUR ENSEMBLE = fonctions de calcul permettant d effectuer des calculs sur une colonne (un attribut) Sum(attribut) : calcule la somme des valeurs de l attribut sur un ensemble de tuples Exemple : select sum(salaire) from pilote; Avg(attribut) : calcule la moyenne des valeurs de l attribut sur un ensemble de tuples Exemple : select avg(salaire) from pilote; Année 2010-2011 3

LANGAGE SQL FONCTIONS DE CALCUL SUR ENSEMBLE = fonctions de calcul permettant d effectuer des calculs sur une colonne (un attribut) Max(attribut) : détermine le maximum des valeurs de l attribut sur un ensemble de tuples Exemple : select max(totalheurvol) from avion; Min(attribut) : détermine le minimum des valeurs de l attribut sur un ensemble de tuples Exemple : select min(totalheurvol) from avion; Count(attribut) : compte le nombre de valeurs différentes de l attribut sur un ensemble de tuples Exemple : select count(*) from avion; Année 2010-2011 4

LANGAGE SQL AGRÉGAT (ou REGROUPEMENT) = opérateur additionnel permettant d appliquer des fonctions de calcul sur ensemble à des partitions d une relation Il effectue 1) un partitionnement de la relation opérande R en regroupant les tuples possédant les mêmes valeurs pour l attribut ou l ensemble d attributs de regroupement 2) l application sur chacune des partitions d une (ou plusieurs) fonction(s) de calcul 3) une projection finale sur les attributs de regroupement et les fonctions de calcul Notation : Rr = Agrégat(R, {ai, aj,..}, fi(ak) [,fj(ah),..] ) Année 2010-2011 5

LANGAGE SQL AGRÉGAT (ou REGROUPEMENT) Illustration : Agrégat(R, {A 3, A 4 }, Sum(A 2 )) R(A 1,A 2,A 3,A 4 ) A1 A2 A3 A4 AAAAA 150000 004 PP AAAAA 200000 007 PR AAAAA 100000 010 PY BBBBB 200000 004 PP BBBBB 300000 007 PR CCCCC 150000 004 PP CCCCC 50000 010 PY DDDDD 200000 010 PY Partitionnement A1 A2 A3 A4 AAAAA 150000 004 PP BBBBB 200000 004 PP CCCCC 150000 004 PP AAAAA 200000 007 PR BBBBB 300000 007 PR AAAAA 100000 010 PY CCCCC 50000 010 PY DDDDD 200000 010 PY Regroupement + Projection A3 A4 sum(a2) 004 PP 500000 007 PR 500000 010 PY 350000 Année 2010-2011 6

LANGAGE SQL ORDRE SQL DE REGROUPEMENT Format générique de l ordre SELECT avec regroupement en SQL1 SELECT [DISTINCT] <liste_d attributs_projetés * expression(attribut) fonction(attribut) constante> FROM < nom_de_table [,nom_de_table ] > [ WHERE <critère_de_qualification et /ou critère_de_jointure> ] [GROUP BY < nom_attribut1 [, nom_attribut2...] > [HAVING <critère_de_qualification>] ] [ ORDER BY < nom_attribut [, nom_attribut...] [ASC DESC] > ] ; Année 2010-2011 7

LANGAGE SQL ORDRE SQL DE REGROUPEMENT Format générique de l ordre SELECT avec regroupement en SQL2 SELECT [DISTINCT] <liste_d attributs_projetés * expression(attribut) fonction(attribut) constante> FROM <nom_table> join <nom_table> on <critere_de_jointure> <nom_table> join (<jointure_de_table>) on <critere_de_jointure> (<jointure_de_table>) join <nom_table> on <critere_de_jointure> (<jointure_de_table>) join (<jointure_de_table>) on <critere_de_jointure> [ WHERE <critère_de_qualification et /ou critère_de_jointure> ] [GROUP BY < nom_attribut1 [, nom_attribut2...] > [HAVING <critère_de_qualification>] ] [ ORDER BY < nom_attribut [, nom_attribut...] [ASC DESC] > ] ; Année 2010-2011 8

LANGAGE SQL ORDRE SQL DE REGROUPEMENT Exemples : Sur la relation : avion(noav,typav,totalheurvol) SELECT typav, count(*) as Nb_avions FROM avion GROUP BY typav ; Sur la relation : pilote (nopilot,nompilot,prenpilot,date_naiss, vilpilot,salaire) SELECT vilpilot, sum(salaire) as Salaire_par_ville FROM pilote GROUP BY vilpilot ; Année 2010-2011 9

LANGAGE SQL Regroupement sous MS-Access Année 2010-2011 10

LANGAGE SQL mise à jour INSERTION Ordre INSERT INSERT INTO < nom_de_table > VALUES (<expression [, <expression> ]>) ; Ou INSERT INTO < nom_de_table > < ordre_select > ; Année 2010-2011 1

LANGAGE SQL mise à jour Exemples : INSERTION Ordre INSERT Sur la relation : avion(noav,typav,totalheurvol) INSERT INTO avion VALUES (2008022, B727, 10500); Sur la relation : pilote (nopilot,nompilot,prenpilot,date_naiss, vilpilot,salaire) INSERT INTO pilote Select nopilot, DURAND, Albert, 15/05/1960, PARIS,5200 From archiv_pilot Where nompilot= DURAND and prenpilot= Albert and date_naiss= 15/05/1960 ; Année 2010-2011 2

LANGAGE SQL mise à jour SUPPRESSION Ordre DELETE DELETE FROM <nom_de_table> [WHERE < critère_de_qualification > ]; Exemples : INTRODUCTION AUX BASES DE DONNEES Sur la relation : avion_tempo(noav,typav,totalheurvol) DELETE FROM avion_tempo ; Sur la relation : pilote (nopilot,nompilot,prenpilot,date_naiss, vilpilot,salaire) DELETE FROM pilote where date_naiss < 01/01/1948 ; Année 2010-2011 3

LANGAGE SQL mise à jour MISE A JOUR Ordre UPDATE UPDATE <nom_de_table> SET < nom_d attribut_1 > = < expression1 ordre_select > [, < nom_d attribut_2 > = < expression2 ordre_select > ] [WHERE < critère_de_qualification > ]; Exemples : INTRODUCTION AUX BASES DE DONNEES Sur la relation : avion(noav,typav,totalheurvol) UPDATE avion SET totalheurvol = totalheurvol * 1,05 ; Sur la relation : pilote (nopilot,nompilot,prenpilot,date_naiss, vilpilot,salaire) UPDATE pilote SET salaire = salaire * 1,03 where vilpilot = Paris ; Année 2010-2011 4

LANGAGE SQL mise à jour MISE A JOUR sous MS-Access Année 2010-2011 5

LANGAGE SQL mise à jour SUPPRESSION sous MS-Access Année 2010-2011 6

LANGAGE SQL mise à jour INSERTION sous MS-Access Année 2010-2011 7

LA CONCEPTION LA DÉMARCHE ÉTUDIÉE Méthode simplifiée combinant une démarche analytique à une démarche intuitive Règle primordiale Analyser la structure sémantique des données sans se soucier du mode d implantation en machine Démarche par phase comportant des étapes Première phase Établissement du Schéma conceptuel des données Deuxième phase Établissement du Schéma relationnel correspondant Année 2010-2011 1

LA CONCEPTION ETABLISSEMENT DU SCHÉMA CONCEPTUEL ÉTAPE 1 Recenser dans le Dictionnaire des données, les types de données élémentaires qui représentent les propriétés des entités du monde réel, en spécifiant les éventuelles règles auxquelles sont soumises ces données élémentaires Données élémentaires = plus petit élément d information Exemple : nom d un pilote, type d un avion Année 2010-2011 2

LA CONCEPTION ETABLISSEMENT DU SCHÉMA CONCEPTUEL ÉTAPE 1 Dictionnaire des données élémentaires Données élémentaires Nom abrégé Type Contrainte Entité logique Numéro Numxx Entier > 0 et < 99999 Nom nomxx Chaine de 50 caractères alphabétiques max - - - - - - - - - - - - - - Adresse Adrxx Chaine de 70 caractères alphabétiques max - - - - - - - - - - - - - - - propriétéλ Propλxx Réel - - - - - - - - Année 2010-2011 3

LA CONCEPTION ETABLISSEMENT DU SCHÉMA CONCEPTUEL ÉTAPE 2 Recenser les types de données composées, i.e. les types d entités en regroupant les propriétés permettant de caractériser les entités du monde réel Exemple : pilote, avion 2-1 repérer la propriété identifiante celle dont la connaissance d une valeur donnée permet d identifier sans ambiguïté une et une seule occurrence de l entité 2-2 repérer les propriétés qui caractérisent vraiment une entité Une propriété caractéristique Px d une entité est une propriété telle que la connaissance d une valeur donnée de la propriété identifiante Pi, permet de déduire une et une seule valeur de Px Les entités recensées sont enregistrées dans le dictionnaire des données. Année 2010-2011 4

LA CONCEPTION ETABLISSEMENT DU SCHÉMA CONCEPTUEL ÉTAPE 3 Recenser les associations entre les entités précédemment définies Exemple : «départ» qui associe l entité «pilote» à l entité «vol» Une association est caractérisée au moins par les propriétés identifiantes des deux entités associées. Elle peut également posséder en plus des propriétés qui lui sont intrinsèques. Un tableau à double entrée et utilisé comme aide à la spécification des associations recensées Année 2010-2011 5

LA CONCEPTION ETABLISSEMENT DU SCHÉMA CONCEPTUEL ÉTAPE 3 Tableau recensant les associations entre entités Entités recensées XXXX YYYY ZZZZ XXXX Expression de l association éventuelle Expression de l association éventuelle YYYY Expression de l association éventuelle Expression de l association éventuelle ZZZZ Expression de l association éventuelle Expression de l association éventuelle Année 2010-2011 6

LA CONCEPTION ETABLISSEMENT DU SCHÉMA CONCEPTUEL ÉTAPE 4 Représentation du monde réel étudié par un «schéma conceptuel des données» Les conventions de représentation sont inspirées de la méthode Merise -Entité représenté par un rectangle - Association représentée par un ovale -Cardinalités représentées par un couple de valeurs Cardinalités = nombre minimum et nombre maximum d occurrences de l association pour une occurrence de chaque entité concernée Année 2010-2011 7

LA CONCEPTION ETABLISSEMENT DU SCHÉMA CONCEPTUEL Le formalisme est le suivant : ÉTAPE 4 Année 2010-2011 8

LA CONCEPTION ETABLISSEMENT DU SCHÉMA RELATIONNEL Les règles de passage du conceptuel au relationnel R1 - Chaque Entité est traduite par une Relation avec : Clé primaire Relation =Identifiant Entité { attributs Relation } = {propriétés entité} R2 - Chaque Association sans Cardinalité (1,1) ou (0,1), avec ou sans propriétés intrinsèques, est traduite par une Relation avec : - Clé primaire composite Relation = { clé de Entité_1#, clé de Entité_2#, } clé de Entité_1 et clé de Entité_2 sont des clés étrangères, puisque référençant chacune la clé primaire d une autre relation - { attributs Relation } = {propriétés intrinsèques association} R3 - Chaque Association avec au moins une Cardinalité (1,1) ou (0,1), se traduit par l ajout d une clé étrangère dans la Relation Dépendante (celle représentant l entité avec les cardinalités (1,1) ou (0,1)) qui référence la clé primaire de la relation paire (dans l association) Année 2010-2011 9

LA CONCEPTION ETABLISSEMENT DU SCHÉMA RELATIONNEL Normalisation du Schéma relationnel Pour éviter les redondances et faciliter les évolutions de la base de données, il faut s assurer que les relations soient normalisées, i.e conforme à 3FN. 1FN 1 ère Forme Normale une relation est en 1FN si tous les attributs sont atomiques, i.e aucun attribut n est lui-même décomposable sous forme de relation 2FN 2ème Forme Normale une relation est en 2FN si elle est en 1FN et si tous les attributs autres que la clé dépendent de l intégralité de la clé et pas d une partie seulement 3FN 3ème Forme Normale une relation est en 3FN si elle est en 2FN et si aucun attribut non clé ne dépend d un autre attribut non clé Année 2010-2011 10

LA CONCEPTION UNE ILLUSTRATION SIMPLE Présentation de l univers Gestion du personnel d une petite entreprise dans laquelle un employé est identifié par un N, et caractérisé par ses nom, prénom, date de naissance, grade et salaire. Le salaire n étant pas une fonction directe du grade. Un service est identifié par un N et caractérisé par un nom La gestion du personnel consiste à gérer - l organisation des services : connaissance du directeur, de la secrétaire qui sont des employés - les affectations : type d affectation caractérisé par un pourcentage de temps de l employé dans le service Année 2010-2011 11

LA CONCEPTION UNE ILLUSTRATION SIMPLE ÉTAPE 1 Recensement des données élémentaires Données élémentaires Nom abrégé Type Contrainte Entité logique N d un employé NUMEMP Entier >= 1 et <= 99 Nom d un employé NOMEMP Ch. Car (50) Date de naissance d un employé NAISSEMP Date Grade d un employé GRADEMP Entier Salaire d un employé SALEMP Réel N d un service NOSERV Entier >= 1 et <= 9 Nom d un service NOMSERV Ch. Car (30) Taux d affectation à un service AFFECT Entier >= 25 et <= 100 Année 2010-2011 12

LA CONCEPTION UNE ILLUSTRATION SIMPLE ÉTAPE 2 Recensement des Entités Données élémentaires Nom abrégé Type Contrainte Entité logique N d un employé NUMEMP Entier >= 1 et <= 99 EMPLOYE Nom d un employé NOMEMP Ch. Car (50) EMPLOYE Date de naissance d un employé NAISSEMP Date EMPLOYE Grade d un employé GRADEMP Entier EMPLOYE Salaire d un employé SALEMP Réel EMPLOYE N d un service NOSERV Entier >= 1 et <= 9 SERVICE Nom d un service NOMSERV Ch. Car (30) SERVICE Taux d affectation à un service AFFECT Entier >= 25 et <= 100 Année 2010-2011 13

LA CONCEPTION UNE ILLUSTRATION SIMPLE ÉTAPE 3 Tableau recensant les associations entre entités Entités recensées EMPLOYE SERVICE EMPLOYE SERVICE Utilise l employé à Affect % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A l employé pour directeur - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A l employé pour secrétaire Est Affecté à Affect % au service - - - - - - - - - - - - - - - - - - - - - - - - - - - Est directeur du service - - - - - - - - - - - - - - - - - - - - - - - - - - - - Est Secrétaire du service Année 2010-2011 14

LA CONCEPTION Schéma conceptuel des données UNE ILLUSTRATION SIMPLE ÉTAPE 4 Année 2010-2011 15

LA CONCEPTION UNE ILLUSTRATION SIMPLE Schéma relationnel EMPLOYE ( NumEmp, NomEmp, DatNaiss,Grade, Salair ) SERVICE ( NumServ, NomServ, Directeur#, Secrétaire#) AFFECTATION ( NumEmp#, NumServ#, TypAffect ) Année 2010-2011 16