Base de données : Principe Structured Query Language. Base de données. Simon JAILLET. 09 Janvier 2010



Documents pareils
SQL Historique

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

Le Langage SQL version Oracle

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

Langage SQL : créer et interroger une base

Olivier Mondet

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

Bases de données relationnelles

Le langage SQL Rappels

Les bases de données

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

1 Introduction et installation

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

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

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

Bases de Données Avancées

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

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

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

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

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

Le Langage De Description De Données(LDD)

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

Les BASES de DONNEES dans WampServer

Bases de données et sites WEB

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

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

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

Bases de Données. Plan

Introduction aux Bases de Données 2004/2005

Création et Gestion des tables

FileMaker 13. Guide de référence SQL

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

Devoir Data WareHouse

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Systèmes de Gestion de Bases de Données

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

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

CREATION WEB DYNAMIQUE

Vincent Augusto

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche

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

MySQL / SQL EXEMPLES

I4 : Bases de Données

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

Partie II Cours 3 (suite) : Sécurité de bases de données

Comprendre les bases de données

Mejdi BLAGHGI & Anis ASSÈS

TP3 : Creation de tables 1 seance

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

16H Cours / 18H TD / 20H TP

Information utiles. webpage : Google+ : digiusto/

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

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Optimisation SQL. Quelques règles de bases

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

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

A QUOI SERVENT LES BASES DE DONNÉES?

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

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

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Bases de données Cours 4 : Le langage SQL pour ORACLE

Cours Bases de données 2ème année IUT

Gestion des utilisateurs et de leurs droits

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

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

Compétences Business Objects

OpenPaaS Le réseau social d'entreprise

Rappel sur les bases de données

Cours: Administration d'une Base de Données

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

1. Base de données SQLite

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

Quelques aspects du Relationnel-Objet du SGBD Oracle

Bases de données Outils de gestion

BTS/CGO P10 SYSTEME INFORMATION Année

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

I. MySQL : Serveur et SGBD

Optimisation de MySQL

LE LANGAGE SQL2 1. INTRODUCTION

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Bases de données cours 1

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

Historisation des données

Bases de données élémentaires Maude Manouvrier

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

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

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)

Introduction à MySQL (ou MySQL en 3 heures montre en main)

Architecture de la plateforme SBC

Transcription:

: Principe 09 Janvier 2010

: Principe 1 : Principe 2

: Principe Définition Une base de données est un ensemble structuré de données persistantes accessibles aisément par plusieurs programmes qui les utilisent simultanément avec des objectifs différents.

: Principe Catégories des SGBD relationnels objet-relationnels objets XML

: Principe Les 6 services d un SGBD Persistance Gestion du disque Partage des données Fiabilité des données Indépendance logique/physique Langage de description, d interrogation et de traitement des données

: Principe 1 - Persistance Des données sont persistantes si elles survivent à l exécution des programmes. La persistance est obtenue en stockant les données sur disque.

: Principe 2 - Gestion du disque Toutes les données de la base ne peuvent pas en général tenir en mémoire centrale donc pour limiter les accès disques et avoir de bonnes performances les SGBD intègrent : Index, hash-coding Regroupement des données sur disque Optimisation des requêtes Cache mémoire

: Principe 3 - Partage/sécurité des données Les données doivent pouvoir être partagées par un ensemble d utilisateurs ayant des droits différents. Afin de gérer les connexions simultanées, le contrôle de la concurrence porte sur : la base de données le schéma les index

: Principe 4 - Fiabilité des données Les données doivent être fiables. Mécanismes : contraintes d intégrité (clés étrangères), atomicité des transactions (la transaction doit être complètement effectuée ou pas du tout), résistance aux pannes : en cas de panne mémoire en cas de panne disque mirroring.

: Principe 5 - Indépendance logique/physique L organisation physique de la base de données doit être transparente. 6 - Le langage SQL Pour permettre l indépendance logique/physique, il est nécessaire d avoir un langage de description, d interrogation et de traitement des données de plus haut niveau (ex : SQL)

: Principe Les principaux SGBD du marché DB2 (IBM) SQL server Mysql Oracle PostgreSQL SQLite

DB2 (IBM) : Principe Avantages Administration à base d assistants Richesse fonctionnelle du language Stockage XML Compression de données Inconvénients Interface lourde (java) Gourmand (Disque, RAM) Complexité du language procédural Gestion des utilisateurs limitative Non libre

SQL server : Principe Avantages Administration aisée Profiler de requête performant Language procédural simple (T-SQL) Réplication intégrée Inconvénients Plateforme Windows Non libre

MySQL 5 : Principe Avantages Administration aisée Libre, multiplateforme Version cluster Différents moteurs de stockage (MyISAM, InnoDB, etc.) Inconvénients Respect partiel des stadards (certification SQL-92)

Oracle : Principe Avantages Interface utilisateur riche Un des plus (voir le plus) riche en terme fonctionnelle PL-SQL Version cluster Inconvénients Prix pour obtenir de bonnes performances Failles de sécurité Complexité

PostgreSQL : Principe Avantages Administration aisée Libre, multiplateforme Respect des standards Très riche en terme fonctionnelle Reste simple Cluster possible Inconvénients Cluster par clonage Réplication

SQLite : Principe Avantages Administration aisée Libre, multiplateforme Simple, rapide, léger Inconvénients Fonctionnement en local

: Principe Conclusion MySQL, PostgreSQL : bases de données polyvalentes Oracle : pour une utilisation pro et intensive (solution lourde) DB2, SQL Server : bien y réfléchir SQLite : simple et rapide

: Principe Conclusion MySQL, PostgreSQL : bases de données polyvalentes Oracle : pour une utilisation pro et intensive (solution lourde) DB2, SQL Server : bien y réfléchir SQLite : simple et rapide

: Principe Conclusion MySQL, PostgreSQL : bases de données polyvalentes Oracle : pour une utilisation pro et intensive (solution lourde) DB2, SQL Server : bien y réfléchir SQLite : simple et rapide

: Principe Conclusion MySQL, PostgreSQL : bases de données polyvalentes Oracle : pour une utilisation pro et intensive (solution lourde) DB2, SQL Server : bien y réfléchir SQLite : simple et rapide

: Principe 1 : Principe 2

: Principe Concepts de base et diagrammes EA Remarque Le niveau d analyse conceptuel est un niveau d analyse sémantique. C est à dire qu il n est aucunement préoccupé par l aspect physique de l implantation des structures d information, mais se préoccupe plutôt du sens des choses. Un outil d analyse conceptuel : le modèle Entité-Association.

: Principe Concepts de base et diagrammes EA Le modèle Entité-Association (a) Le modèle entité-association (EA) est un modèle de données de type conceptuel. Il est comme une outils d aide à la conception des bases de données. Ce modèle se limite à la description statique son but : permettre la description conceptuelle des structures de données d une application.

: Principe Concepts de base et diagrammes EA Le modèle Entité-Association (b) Ce modèle, présenté par Chen (1976), permet une description naturelle du monde réel à partir des concepts d entité et d association. Basé sur la théorie des ensembles et des relations, ce modèle se veut universel et répond à l objectif d indépendance données-programmes.

: Principe Concepts de base et diagrammes EA Le modèle Entité-Association (c) Entité Type-entité (TE) Association Type-association (TA) Attribut

: Principe Concepts de base et diagrammes EA Entité Représentation d un objet du monde réel (concret ou abstrait), perçu par le concepteur comme ayant une existence propre, et à propos duquel on veut enregistrer des informations. Exemples : Mme Dupont, la cafetière X32, ma Ferrari, etc.

: Principe Concepts de base et diagrammes EA Type-entité (TE) Représentation d un ensemble d entités perçues comme similaires et ayant les mêmes caractéristiques. Exemples : Personne, Article, Service, etc.

: Principe Concepts de base et diagrammes EA Type-entité (TE) : Remarque Une entité est souvent nommée occurrence ou instance de son type-entité. De plus, par abus de langage, on utilise souvent le mot entité en lieu et place du mot type-entité, il faut cependant prendre garde à ne pas confondre les deux concepts.

: Principe Concepts de base et diagrammes EA Association Représentation d un lien entre plusieurs entités, lien où chaque entité liée joue un rôle déterminé. Exemples : le lien de travail entre l employé Durand et le service Comptabilité, le lien de mariage entre Mr. Durand (rôle : époux) et Mme Dupont (rôle : épouse), etc.

: Principe Concepts de base et diagrammes EA Type-association (TA) Représentation d un ensemble d associations ayant la même sémantique et décrites par les mêmes caractéristiques (liant des entités de même type avec les mêmes rôles, et possédant les mêmes propriétés). Exemples : le TA fabrique lie le TE Atelier de fabrication au TE Article

: Principe Concepts de base et diagrammes EA Attribut (a) Représentation d une propriété associée à un TE, ou à un TA. L ensemble des attributs d un TE (TA) représente l ensemble des informations inhérentes que l on souhaite conserver sur les entités (associations) du TE (TA). Exemples : nom, prénoms, salaire sont des attributs du TE Employé. date-de-mariage est un attribut du TA est-marié-avec, etc.

: Principe Concepts de base et diagrammes EA Attribut (b) Représentation d une propriété associée à un TE, ou à un TA. L ensemble des attributs d un TE (TA) représente l ensemble des informations inhérentes que l on souhaite conserver sur les entités (associations) du TE (TA). Exemples : nom, prénoms, salaire sont des attributs du TE Employé. date-de-mariage est un attribut du TA est-marié-avec, etc.

: Principe Concepts de base et diagrammes EA Identifiant ou clé Un identifiant (ou clé) d un type-entité ou d un type-association est constitué par un ou plusieurs de ses attributs qui doivent avoir une valeur unique pour chaque entité ou association de ce type. Exemples : numéro de sécurité sociale pour une personne, numéro d immatriculation pour une voiture, le code ISBN pour un livre.

: Principe Concepts de base et diagrammes EA Les cardinalités (a) La cardinalité d une patte reliant un type-association et un type-entité précise le nombre de fois minimal et maximal d interventions d une entité du type-entité dans une association du type-association. Un employé travaille dans un minimum de X services et un maximum de Y services Un service est constitué de minimum X employés et d un maximum de Y employés

: Principe Concepts de base et diagrammes EA Les cardinalités (b) Les seuls cardinalités admises sont : Minimum Maximum 0 1 1 n L expression de la cardinalité est obligatoire pour chaque patte d un type-association.

: Principe Concepts de base et diagrammes EA La cardinalité 0,1 Une occurrence du type-entité peut exister tout en étant impliquée dans aucune association et peut être impliquée dans au maximum une association. La cardinalité 0,n C est la cardinalité la plus ouverte. Une occurrence du type-entité peut exister tout en étant impliquée dans aucune association et peut être impliquée, sans limitation, dans plusieurs associations.

: Principe Concepts de base et diagrammes EA La cardinalité 1,1 Une occurrence du type-entité ne peut exister que si elle est impliquée dans exactement (au moins et au plus) une association. La cardinalité 1,n Une occurrence du type-entité ne peut exister que si elle est impliquée dans au moins une association.

: Principe Concepts de base et diagrammes EA

: Principe Concepts de base et diagrammes EA

: Principe Concepts de base et diagrammes EA Cardinalité Une cardinalité minimale de 1 doit se justifier par le fait que les entités du type-entité en questions ont besoin de l association pour exister. Dans tous les autres cas, la cardinalité minimale vaut 0. Note : Une cardinalité minimale de 0 signifie qu une entité du type-entité correspondant peut exister tout en étant impliquée dans aucune association.

: Principe Concepts de base et diagrammes EA Cardinalité Si une entité e pour exister doit participer à l association a on dit que la participation du type-entité TE au type-association TA est totale. Sinon, on parle de participation partielle.

: Principe Concepts de base et diagrammes EA Exemple (1a) Le diagramme EA suivant illustre le schéma d une base de données pour la gestion d un hypermarché. Dans ce diagramme, sont représentés quatre types d entité : Employé, d attributs nom et salaire ; Rayon, d attributs nomr et étage ; Article, d attributs noma et type ; Fournisseur, d attributs nomf et adresse.

: Principe Concepts de base et diagrammes EA Exemple (1b) Ces types d entité sont reliés par les types d association suivants : Livraison, d attribut quantité, liant Fournisseur, Article et Rayon ; Vente, d attribut quantité, liant Rayon et Article ; Emploi, liant Employé et Rayon ; Chef, cyclique, liant Employé (avec le rôle Inf) et Employé (avec le rôle Sup).

: Principe Concepts de base et diagrammes EA

: Principe Concepts supplémentaires Entité faible Une entité faible est une entité possédant un identifiant insuffisant de par lui-même pour identifier de manière unique chacune de ses occurrences. Sa caractéristique d identifiant n est valable qu à l intérieur du contexte spécifique de l occurrence d une entité principale. Exemple : Un hôtel possède des chambres Hôtel (TE) Possède (TA) Chambre (Entité faible)

: Principe Concepts supplémentaires Structures Hiérarchiques Une structure hiérarchique représente une décomposition de concepts allant du général au particulier. Il s agit d une structure où un parent peut avoir plusieurs enfants, mais où chaque enfant ne peut avoir qu un seul parent.

: Principe Concepts supplémentaires Associations plurielles Plusieurs associations entre les mêmes entités

: Principe Concepts supplémentaires Associations réflexives Un type-association est qualifié de réflexif quand il matérialise une relation entre un type-entité et lui-même.

: Principe Concepts supplémentaires Les domaines de valeurs Certaines informations ne peuvent accepter qu un ensemble déterminé et limité de valeurs. Elles sont donc restreinte à un domaine de valeurs (les valeurs permises pour le sexe par exemple). Il y a deux façons de modéliser ces domaines de valeurs : par un attribut ou par un type-entité.

: Principe Concepts supplémentaires Les domaines de valeurs : par un attribut Ajouter un attribut au sein de l entité concernée et d indiquer, dans la documentation du modèle, les valeurs permises. Cette méthode est bien adaptée aux cas où l utilisateur n a aucun contrôle sur le domaine de valeurs en question (on ne peut ni ajouter ni retirer des valeurs permises).

: Principe Concepts supplémentaires Les domaines de valeurs : par un type-entité Par un type entité : Ajouter un type-entité au modèle pour représenter le domaine de valeurs. Cette méthode doit être utilisé lorsque l utilisateur a plein contrôle sur le domaine de valeurs.

: Principe Concepts supplémentaires Conserver l historique Pour garder l historique d une relation on fait sortir l attribut Date comme type-entité.

: Principe Concepts supplémentaires Agrégation (e) Comment relier deux associations entre elles?

: Principe Concepts supplémentaires Agrégation (b) Création d un nouveau type-entité.

: Principe Concepts supplémentaires Généralisation / spécialisation Exemple : dans un hypermarché, certains traitements s appliquent à tous les articles : inventaire, recherche des caractéristiques, etc. Pour d autres usages (ventes promotionnelles), on peut vouloir séparer les articles en plusieurs classes (alimentation, habillement, etc.). Chaque classe peut avoir des caractéristiques qui lui sont propres, par exemple : date limite de vente (alimentation), taille et couleur (habillement),etc.

: Principe Concepts supplémentaires Généralisation / spécialisation Dans le modèle E-A correspondant, on sera donc amené à décrire, en plus du TE générique Article, des TE plus spécialisés, représentant les sous-classes intéressantes. Article alimentaire, Article d habillement Article Hi-Fi.

: Principe Concepts supplémentaires

: Principe Concepts supplémentaires Généralisation Regrouper les différents types d entité en faisant abstraction de leurs différences. Ce qui nous donne un type générique (mise en facteur des attributs communs). Spécialisation Pour un type donné, on définit des sous-types en mettant en évidence leurs particularités.

: Principe Les contraintes d intégrité Les contraintes d intégrité Objectif : Spécifier des propriétés sémantiques du réel perçu qui ne sont pas exprimables avec le modèle E.A. Définition : Une contrainte d intégrité (C.I.) est une propriété non représentée par les concepts de base du modèle E.A. que doivent satisfaire les données appartenant à la base de données. Effet : limiter les occurrences possibles des structures d information.

: Principe Les contraintes d intégrité Les contraintes d intégrité Contraintes d intégrité sur les attributs : (âge entre 1 et 100) Contraintes d intégrité sur les cardinalités : Nombre d enfants d un parent = nombre d occurrences de «est parent de» qui lient ce parent. Contraintes d intégrité sur les généralisations / spécialisations : des contraintes qui peuvent être définies pour les entités comme pour les associations.

: Principe Les contraintes d intégrité sur les G/S Partition l un ou l autre mais pas les deux et pas autre chose.

: Principe Les contraintes d intégrité sur les G/S Totalité l un ou l autre ou les deux et pas autre chose.

: Principe Les contraintes d intégrité sur les G/S Exclusion l un ou l autre mais pas les deux et autre chose.

: Principe Les contraintes d intégrité sur les G/S Inclusion L un est forcément inclu dans un autre.

: Principe Les contraintes d intégrité sur les G/S Unicité L association si elle existe est unique.

: Principe 1 : Principe 2

Le modèle relationnel : Principe Histoire Le modèle relationnel a été défini par E.F Codd dans les années 70 et de nombreux chercheurs ont contribué à son développement. Les premiers SGBD bâtis sur ce modèle ont été SQL/DS et DB2 de IBM, d où est né le langage de manipulation de bases relationnelles, SQL ().

Le modèle relationnel : Principe Caractéristiques Domaine : ensemble des valeurs d un attribut. Relation (table) : sous ensemble du produit cartésien d une liste de domaines. C est en fait un tableau à deux dimensions dont les colonnes correspondent aux domaines et dont les lignes contiennent des tuples. On associe un nom à chaque colonne. Attribut : une colonne d une relation, caractérisé par un nom. Tuple : liste des valeurs d une ligne d une relation.

Le modèle relationnel : Principe Domaine Un domaine est un ensemble de valeurs atomiques : Valide : Entier, Réèl, Chaînes de caractères, Salaire = 4 000..100 000, Couleur= Bleu, Blanc, Rouge Non Valide : Point = (X :REEL,Y :REEL), TRIANGLE = (P1 :POINT,P2 :POINT,P3 :POINT) et toutes autres données complexes

Le modèle relationnel : Principe Les relations Une relation est une table comportant des colonnes (appelées aussi attributs) dont le nom et le type caractérisent le contenu qui sera inséré dans la table. Exemple : Imaginons que l on veuille stocker dans notre base de données notre carnet d adresses. On va donc créer la relation Personne qui aura pour attributs : nom, prénom, adresse, téléphone. Autrement dit, c est une table nommée Personne possédant les colonnes : nom, prénom, adresse, téléphone. nom prenom tel Wallace Gary 555-152-156

Le modèle relationnel : Principe En résumé Une base relationnelle est composée de tables et est perçue par l utilisateur comme un ensemble de tables et rien d autre. Dans une table, une ligne correspond à un enregistrement et une colonne à un champ de cet enregistrement. Toute opération relationnelle sur une table génère une nouvelle table. Origine de son succès : sa simplicité.

: Principe De l EA au modèle relationnel Pourquoi? Le modèle Entité Association est un modèle conceptuel Le modèle Relationnel est un modèle logique

: Principe De l EA au modèle relationnel Entité non faible Une entité E non faible est représentée par une relation T dont les attributs simples sont les attributs de l entité E. De plus, la clé de T est l identifiant de E.

: Principe De l EA au modèle relationnel Relation 1 :n Dans le cas d une relation 1 :n (Père/fils), l association n est pas représentée par une relation, cependant ses attributs migrent vers la relation représentant le fils et la clé du père migre vers le fils comme clé.

: Principe De l EA au modèle relationnel Relation n :m Dans le cas d une relation n :n, l association A est représentée par une relation T dont les attributs sont les attributs de A et la clé est la concaténation des clés des entités participant à l association A.

: Principe De l EA au modèle relationnel Entité Faible Le passage d une entité faible à un schéma relationnel est identique à celui d une association 1-n classique. La seule nuance est que la clé étrangère est une partie de l identifiant de l entité faible.

: Principe De l EA au modèle relationnel Généralisation / spécialisation : cas 1 Dans le cas d une généralisation / spécialisation, il existe trois manières de passer au schéma relationnel.

: Principe De l EA au modèle relationnel Généralisation / spécialisation : cas 2 Le Push Down.

: Principe De l EA au modèle relationnel Généralisation / spécialisation : cas 3 Le Push Up.

: Principe De l EA au modèle relationnel Cas particuliers Les cas particuliers doivent être résolus en respectant toujours le principe de non redondance des données. Exemple : Une relation 1 :1 Un type-entité avec un seul attribut (optimisation) etc.

: Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique 1 : Principe 2 (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique

: Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Définition SQL est un langage : de définition de données (LDD) de manipulation de données (LMD) de contrôle de données (LCD) de contrôle des transactions (LCT)

: Principe SQL : définition de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Commandes CREATE : création d une table RENAME : renommage une table ALTER : modification d un champs d une table DROP : supprimer une table PS : Pour vérifier la structure d une table, on utilise la commande DESCRIBE.

: Principe SQL : définition de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande CREATE CREATE TABLE nom de table (column datatype [default expr],...) ; Exemple : SQL> CREATE TABLE dept ( deptno number ( 2 ), dname varchar ( 1 5 ), l o c varchar ( 1 4 ) ) ;

: Principe SQL : définition de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande CREATE RENAME TABLE ancien nom de table TO nouveau nom de table ; Exemple : SQL> RENAME TABLE a n c i e n TO nouveau ;

: Principe SQL : définition de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande ALTER ALTER [IGNORE] TABLE nom de table alter spec [, alter spec...] ; Exemple : SQL> ALTER TABLE d e p t ADD ( t e l varchar ( 1 5 ), d a t e h e u r e d a t e t i m e ) ; SQL> ALTER TABLE dept MODIFY t e l varchar ( 1 0 ) ; SQL> ALTER TABLE dept DROP t e l ;

: Principe SQL : définition de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande DROP DROP TABLE nom de table ; Exemple : SQL> DROP TABLE matable ;

: Principe SQL : manipulation de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Commandes SELECT : recherche de données INSERT : insére un nouvel enregistrement UPDATE : met à jour un enregistrement DELETE : supprime un enregistrement

: Principe SQL : manipulation de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande SELECT SELECT permet de faire des recherches sur les bases de données relationnelles. Exemple : SQL> SELECT FROM matable ;

: Principe SQL : manipulation de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande INSERT INSERT INTO nom de table [(liste des colonnes)] VALUES (liste des valeurs) ; Exemple : SQL> INSERT INTO matable ( id, name ) VALUES ( 2, Willy ) ;

: Principe SQL : manipulation de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande UPDATE UPDATE nom de table SET colonne = valeur [, colonne2 = valeur2...] [WHERE condition] Exemple : SQL> UPDATE matable SET value = 8 WHERE date= 1996-05-03 ;

: Principe SQL : manipulation de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande DELETE DELETE [FROM] nom de table [WHERE condition] Exemple : SQL> DELETE FROM matable WHERE value = 8 Remarque : TRUNCATE matable efface tous les éléments d une table.

: Principe SQL : contrôle de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Commandes GRANT : alloue des droits REVOKE : supprime des droits FLUSH PRIVILEGES : applique les mises à jour

: Principe SQL : manipulation de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande GRANT GRANT <privileges> TO <gratifié> [IDENTIFIED BY password ] [ WITH GRANT OPTION ] Exemple : GRANT SELECT, INSERT, DELETE ON TABLE chambre TO durand WITH GRANT OPTION

: Principe SQL : manipulation de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande GRANT REVOKE <privileges> FROM <gratifié> Exemple : REVOKE ALL PRIVILEGES ON chambre FROM d u b o i s

: Principe SQL : manipulation de données (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La commande GRANT GRANT <privileges> TO <gratifié> [, <gratifié>... ] [ WITH GRANT OPTION ] Exemple : GRANT SELECT, INSERT, DELETE ON TABLE chambre TO durand WITH GRANT OPTION

: Principe SQL : contrôle des transactions (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Commandes START TRANSACTION : démarre une transaction COMMIT : valide une transaction RALLBACK : annule la transaction courrante Remarque : Les transactions en MySQL, ne fonctionnent que sur des tables de type InnoDB.

Types des attributs : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Définition Sous MySQL les domaines des attributs sont les suivante : Nombre entier signé ou non (température, quantité commandée, âge) Nombre à virgule (prix, taille) Chaîne de caractères (nom, adresse, article de presse) Date et heure (date de naissance, heure de parution) Énumération (une couleur parmi une liste prédéfinie) Ensemble (une ou des monnaies parmi une liste prédéfinie)

: Principe Types des attributs : entiers (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique

: Principe Types des attributs : flottants (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Remarque Contrairement aux entiers, leur domaine n est pas continu du fait de l impossibilité de les représenter avec une précision absolue.

: Principe Types des attributs : chaînes (a) (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique

: Principe Types des attributs : chaînes (b) (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Remarques Les types TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT peuvent être remplacés par TINYBLOB, BLOB, MEDIUMBLOB et LONGBLOB pour obtenir des champs sensibles à la casse. Généralement les BLOB sont utilisés pour stocker des données binaires. La différence en entre VARCHAR et CHAR est que le premier est de taille variable tandis que le second et de taille fixe.

: Principe Types des attributs : dates et heures (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique

: Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique 1 : Principe 2 (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique

Algèbre relationnelle : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Définition L algèbre relationnelle regroupe toutes les opérations possibles sur les relations. Voici la liste des opérations possibles : Projection : on ne sélectionne qu un ou plusieurs attributs d une relation (ex : que les colonnes nom et prénom). Jointure : on fabrique une nouvelle relation à partir de 2 ou plusieurs autres en prenant comme pivot 1 ou plusieurs attributs. Par exemple, on concatène la table du carnet d adresse et celle des inscrits à la bibliothèque en fonction du nom de famille. Sélection : on sélectionne tous les tuples ou bien seulement une partie en fonction de critères de sélection qui portent sur les valeurs des attributs.

: Principe Algèbre relationnelle : Projection (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique

: Principe Algèbre relationnelle : Jointure (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique

: Principe Algèbre relationnelle : Sélection (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique

: Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique 1 : Principe 2 (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique

Opérateurs : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique L opérateur * (étoile) Le caractère * (étoile) récupère toutes les colonnes de la table précisée dans la clause FROM de la requête. SELECT FROM WHERE c l i e n t code = M.

Opérateurs : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique L opérateur DISTINCT (ou ALL) Lorsque le moteur construit la réponse, il rapatrie toutes les lignes correspondantes, généralement dans l ordre ou il les trouve, même si ces dernières sont en double, c est à dire qu il récupère toutes les lignes (ALL par défaut). C est pourquoi il est souvent nécessaire d utiliser le mot clef DISTINCT qui permet d éliminer les doublons dans la réponse. SELECT DISTINCT prenom FROM c l i e n t WHERE code = M.

Opérateurs : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique L opérateur AS L opérateur AS sert à donner un nom à de nouvelles colonnes créées par la requête. SELECT prenom, FROM c l i e n t WHERE c = M. code AS c

Opérateurs : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Opérateurs mathématiques de base On peut utiliser les opérateurs mathématiques de base pour combiner différentes colonnes (,+,-, *, /,). SELECT id, p r i x 1.206 AS t t c FROM p r o d u i t WHERE type = velo

Jointures : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Jointures Les jointures permettent d exploiter pleinement le modèle relationnel des tables d une base de données. Elle sont faites pour mettre en relation plusieurs tables afin d extraire les informations voulues. SELECT c l i e n t n o m, t e l e p h o n e n u m e r o FROM c l i e n t, t e l e p h o n e

Jointures : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Sélection Afin de filtrer le résultat d un SELECT, on utilise l instruction WHERE pour qui permet de définir les conditions de filtrage. SELECT c l i e n t n o m, t e l e p h o n e n u m e r o FROM c l i e n t, t e l e p h o n e WHERE c l i e n t. c l i e n t i d = t e l e p h o n e. c l i e n t i d

Jointures : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Surnommage Le surnommage est la technique permettant d attribuer un surnom à chacune des tables présente dans la partie FROM du SELECT : SELECT c l i e n t n o m, t e l e p h o n e n u m e r o FROM c l i e n t c, t e l e p h o n e t WHERE c. c l i e n t i d = t. c l i e n t i d

Jointures : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Les conditions en MySQL = : égalité > :supérieur >= : supérieur ou égal < : inférieur <= : inférieur ou égal <> : différent de IN : dans un ensemble LIKE : correspondance partielle BETWEEN... AND... : entre deux valeurs On assemble les conditions grâce aux instructions logiques (NOT, XOR, OR et AND)

Jointures : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Types de jointures Il existe différentes manières de mettre en relation plusieurs tables. Les plus connues sont les suivantes :, (produit cartésien) INNER JOIN ou JOIN LEFT JOIN RIGHT JOIN

Jointure interne : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique INNER JOIN ou JOIN Il s agit de la plus commune des jointures c est celle qui s exerce par défaut si on ne précise pas le type de jointure. Après le mot clef ON on doit préciser le critère de jointure. SELECT c l i e n t n o m, t e l e p h o n e n u m e r o FROM c l i e n t c INNER JOIN t e l e p h o n e t ON c. c l i e n t i d = t. c l i e n t i d

Jointure externe : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique LEFT JOIN Cette jointure conserve l ensemble des enregistrements de la première table. SELECT c l i e n t n o m, t e l e p h o n e n u m e r o FROM c l i e n t c LEFT JOIN t e l e p h o n e t ON c. c l i e n t i d = t. c l i e n t i d Cette jointure associe aux clients qui n ont pas de numéro de téléphone la valeur NULL en guise de numéro.

Jointure externe : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique RIGHT JOIN Cette jointure conserve l ensemble des enregistrements de la seconde table. SELECT c l i e n t n o m, t e l e p h o n e n u m e r o FROM c l i e n t c RIGHT JOIN t e l e p h o n e t ON c. c l i e n t i d = t. c l i e n t i d Cette jointure associe aux numéros de téléphone non encore attribué la valeur NULL en guise de client.

Jointures : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Jointures Il existe d autres appellations moins connues : NATURAL JOIN : Cette opérateur permet d éviter de préciser les colonnes concernées par la jointure. CROSS JOIN : identique à la virgule LEFT OUTTER JOIN : sémentiquement équivalent à un LEFT JOIN RIGHT OUTTER JOIN : sémentiquement équivalent à un RIGHT JOIN FULL JOIN : sémentiquement équivalent à un LEFT JOIN + RIGHT JOIN UNION JOIN : La jointure d union, permet de faire l union de deux tables de structures quelconque

: Principe Groupage et ensembles (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La clause GROUP BY La clause GROUP BY est nécessaire dès que l on utilise des fonctions de calculs. Cette clause regroupe les lignes sélectionnées en se basant sur une valeur de colonne. SELECT COUNT ( ) AS nombre, e t a g e FROM chambre GROUP BY e t a g e Permet d obenir le nombre de chambres de chacun des étages.

: Principe Groupage et ensembles (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La clause HAVING La clause HAVING agit comme le filtre WHERE, mais permet de filtrer non plus les données, mais les opérations résultant des regroupements, c est à dire très généralement toute expression de filtre devant introduire un calcul d agrégation. SELECT COUNT ( ) AS nombre, e t a g e FROM chambre GROUP BY e t a g e HAVING nombre>5 Permet d obenir les étages possédant un nombre de chambres supérieur à 5.

La clause finale : Principe (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique La clause ORDER BY La clause ORDER BY permet d ordonner le résultat d une requète selon la valeur d un champ. La clause ORDER BY est la clause finale, car il ne peut y en avoir qu une par requête SELECT. SELECT COUNT ( ) AS nombre, e t a g e FROM chambre GROUP BY e t a g e HAVING nombre>5 ORDER BY nombre ASC Permet d obenir les étages possédant un nombre de chambres supérieur à 5 (ordonné de manière croissante).

: Principe Groupage et ensembles (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Les opérateurs ensemblistes Les opérateurs ensemblistes permettent de réaliser des opérations sur les ensembles représentés par des tables ou des extraits de table. Les opérations ensemblistes sont : UNION, INTERSECT et EXCEPT SELECT... FROM... WHERE { UNION INTERSECT EXCEPT} SELECT... FROM... WHERE

: Principe Les fonctions dans SQL (SQL) : les bases Algèbre relationnelle L instruction SELECT : en pratique Agrégation statistique AVG : Moyenne COUNT : Nombre MAX : Maximum MIN : Minimum SUM : Somme