Éléments de bases de données IFT187

Dimension: px
Commencer à balayer dès la page:

Download "Éléments de bases de données IFT187"

Transcription

1 Université de Sherbrooke Département d informatique Éléments de bases de données IFT187 Notes complémentaires et synthétiques Marc Frappier, Ph.D. professeur UNIVERSITÉ DE SHERBROOKE

2 i

3 Avertissement Ce document n est pas un substitut au livre de référence du cours ni aux manuels de référence des différents langages utilisés dans le cadre du cours. ii

4 Contents 1 Les bases de données et leurs usages Introduction Rôle des BDs Définitions de concepts de base Un exemple de BD Services offerts par une BD Description des données Encapsulation des données Partage des données entre plusieurs utilisateurs Intervenants dans les systèmes de BD Conséquences de l usage de SGBD Bref historique des BD Usage inapproprié des BDs Concepts et architecture des bases de données Modèles de BD Catégories de modèle de données Schéma Architecture Langages Composantes d un SGBD Le langage SQL Langage de définition des données Table Types en SQL Définition des tables Syntaxe générale Définition des attributs Définition des contraintes Clé primaire Clé unique Clé étrangère Modification des tables Ajout d attributs iii

5 Modification d attributs Suppression d attributs Ajout de contraintes Suppression de contraintes Suppression des tables L exemple de la bibliothèque Langage de manipulation des données Insert Update Delete Select Syntaxe générale Sémantique La valeur spéciale NULL Expressions Conditions (Expressions booléennes) Autres expressions (arithmétique, caractères, dates) Fonctions d agrégation Opérations ensemblistes Jointures Quelques exemples de SELECT Divers Table virtuelle : vue Contraintes d intégrité Index Schéma Oracle et la norme SQL Le modèle entité-association Définition des concepts Convention nominative Notation de Chen Notation UML adaptée Exemples Gestion des cours Gestion de projets Gestion des statistiques au hockey Erreurs fréquentes dans la modélisation entité-association Traduction d un schéma E-R en un schéma relationnel Algorithmes de traduction Exemples de traduction iv

6 10 Conception et normalisation d une BD Critères informels de conception de schéma Sémantique des relations Information redondantes Valeur nulle Tuples erronés Dépendance fonctionnelle Définition Règles d inférence pour les dépendances fonctionnelles Équivalence de dépendances fonctionnelles Formes normales Introduction Première forme normale (1NF) Deuxième forme normale (2NF) Troisième forme normale (3NF) Forme normale de Boyce-Codd (BCNF) Autres formes normales Quatrième forme normale Cinquième forme normale Décomposition et préservation Algorithmes de décomposition de schéma Algorithme 13.1 : décomposition en 3NF avec préservation des dépendances fonctionnelles Algorithme 13.3 : décomposition en BCNF avec jointure non additive Algorithme 13.4 : décomposition en 3NF avec préservation des dépendances fonctionnelles et jointure non additive Algorithme 13.5 : décomposition en 4NF avec jointure non additive Algorithme de décomposition en 5NF avec jointure non additive A Diapositives de patrons de traduction 74 B Diapositives de normalisation 83 C Exercices de normalisation 118 v

7 Chapter 1 Les bases de données et leurs usages 1.1 Introduction Rôle des BDs les BD jouent un rôle central dans les systèmes informatiques systèmes d information traditionnels gouvernement banque assurances commerce de détail nouveaux domaines d application systèmes téléphoniques systèmes multimédias (image, son, video) géomatique (base de données géographiques) entrepôt de données concepts de base communs à tous débute l étude avec les systèmes traditionnels Définitions de concepts de base données : information pertinente pour un utilisateur du système. base de données (BD) : collection de données structurée de manière à être exploitée. taille d une BD varie beaucoup, de bytes à gigabytes (2 30 bytes), et même térabytes (2 40 bytes) 1 KB = 1024 bytes = 2 10 bytes 1 MB = 1024 KB = bytes = 2 20 bytes 1

8 1 GB = 1024 MB = bytes = 2 30 bytes 1 TB = 1024 GB = bytes = 2 40 bytes de type manuelle (Exemple: registre de naissance d une paroisse) de type automatisée (Exemple: nouveau système québécois d enregistrement des naissances) système de gestion de BD (SGBD) : collection de programmes qui permettent de créer et de maintenir une base de données. ex: Oracle (relationnel), Object Store (orienté objets), MS Access (relationnel), Informix (relationnel), IMS (hiérarchique), IDMS (réseau). concevoir une BD : consiste à définir la structure des données (regroupement, type, contraintes). construire une BD : consiste à stocker les données dans la BD. manipuler une BD : ajouter, modifier, supprimer, interroger les données de la BD. naviguer dans une BD : parcourir les données en utilisant leurs liens. Exemple: À partir d un étudiant, accéder aux cours où il est inscrit, ensuite accéder à la description de ces cours, aux professeurs qui les enseignent, aux locaux utilisés, aux notes de l étudiants. application : programme qui fournit des services à l utilisateur d un système. Il ne fait pas partie du SGBD. Il est développé par des informaticiens d une organisation. Il utilise les services du SGBD pour accéder à une BD. Synonyme : système d information Exemple: programme qui permet de gérer les inscription des étudiants, programme de préparation des payes, système de gestion des comptes d une banque système de BD : comprend l application, le SGBD et la BD. Voir figure Un exemple de BD Voir figure Services offerts par une BD percevoir les distinctions entre le traitement de fichier et les bases de données 2

9 1.3.1 Description des données catalogue : partie d un SGBD; contient une description des données (méta-données : données à propos des données); leur regroupement (structure); leur type; leur contrainte Encapsulation des données le SGBD encapsule les données (masque la manière dont les données sont stockées sur disque); le SGBD offre des services (interface) pour accéder facilement aux données et les maintenir; interface : ensemble d opérations avec leurs paramètres et leurs types; les programmes d une application utilisent les services du SGBD; les utilisateurs peuvent aussi utiliser directement les services d une BD (ex; requête SQL). les programmes sont indépendants de la manière dont les données sont stockées sur disque (BD locale, répartie, réseau local, réseau internet, etc); facilite la maintenance des programmes d une application; permet de présenter les données de plusieurs manières (vues ( view )); Voir figure 1.4 permet de définir des contraintes d intégrité sur les données; permet d assurer la persistence des objets des programmes d application (BD orientée objets); facilite l archivage des données et les copies de sécurité Partage des données entre plusieurs utilisateurs une BD doit typiquement être utilisée par plusieurs personnes en même temps; le SGBD permet à plusieurs utilisateurs d accéder (lecture et écriture) aux données en même temps, tout en préservant l intégrité des données; le SGBD assure la sécurité et la confidentialité des données. 3

10 1.4 Intervenants dans les systèmes de BD administrateur de BDs (DBA) : s occupe de la sécurité des données; la coordination et du contrôle de l usage de la BD; la gestion du matériel et du logiciel du SGBD. concepteur de BDs : s occupe de définir la structure des données. analystes et programmeurs : développent les systèmes de BD. utilisateur : accède à la DB pour l interroger et la modifier. plusieurs niveaux de familiarité avec la BD paramétrique : utilise les programmes d application pour accéder à la BD. sophistiqué : utilise directement les services du SGBD pour accéder à la BD. autonome : développe et utilise de manière autonome ses propres systèmes de BD. 1.5 Conséquences de l usage de SGBD normalisation; facilite la communication entre les systèmes et les utilisateurs; nom des données type des données contraintes réduction des coûts et des délais de développement des applications; flexibilité : plus facile de modifier la structure des données pour répondre aux changements des besoins des utilisateurs; accès aux données en temps réel; économies d échelle. 1.6 Bref historique des BD fichier indexé : fichier permettant un accès direct à un enregistrement en fonction d une clef, qui est un sous-ensemble des attributs de l enregistrement. Accès très rapide à un enregistrement pour la mise à jour et l interrogation. Peu souple pour l interrogation à partir d un attribut autre que la clef, ou pour joindre plusieurs fichiers ensemble. Utilisé aujourd hui dans l implémentation des bases de données relationnelles et objets. 4

11 BD hiérarchique : stockage efficace des données pour favoriser certains accès, en utilisant les liens de hiérarchie entre les données. Moins souple pour l interrogation des données et la navigation à travers les données. Encore en opération aujourd hui dans plusieurs grandes organisation (banques, assurances, gouvernement), à cause de leur efficacité, mais aussi à cause des investissements majeurs requis pour les remplacer. BD réseau : les liens entre les données sont prédéterminés et spécifié dans le schéma de base de données. Navigation plus souple que dans les BD hiérarchiques, mais moins flexible que celles des BD relationnelles. BD relationnelle : les données sont regroupées sous formes de relations (tables). La navigation est très souple; les liens entre les tables ne sont pas prédéfinis; ils sont établis de manière dynamique, directement dans la requête d interrogation. En contre-partie, si les requêtes ne sont pas optimisées, elles peuvent être très longues à exécuter. BD orientée objets : les données sont représentées par des objets. Plus souple que les BD relationnelles au niveau des structures de données admises. On peut y stocker les objets d un programme orienté objets. Permet le partage des données entre plusieurs programmes à la fois. Simplifie la programmation orientée objets pour assurer la persistance des données, par rapport à une BD relationnelle. Navigation parfois plus compliquée qu une BD relationnelle. Moins standardisée que les BD relationnelles. Dépendante des languages de programmation. BD relationnel objets : BD relationnel offrant en plus des mécanismes pour stocker des objets, ou pour stocker des structures plus complexes. Par exemple, une table peut contenir une autre table, ou stocker un objet d un programme Java ou C++. Toutefois, les mécanismes d accès aux objets sont moins souples que ceux des bases de données orientées objets. XML : Extensible Markup Language fichier texte ordinaire contenant des données structurées sous forme de balises que l on peut imbriquer les unes dans les autres. On peut visualiser son contenu, à l aide d outils, sous forme d un arbre. Issu de SGML Standard Generalised Markup Language, et frère de HTML HyperText Makup Language. On peut l utiliser pour échanger des données entre des applications, ou pour stocker de manière simple des données d une application. 1.7 Usage inapproprié des BDs coûts fixes importants (SGBD, matériel, DBA); il faut que ce soit un investissement rentable; faire une analyse coûts-bénéfices temps de réponse très rapide requis : on peut obtenir un temps de réponse plus court en implantant le système à l aide de traitement de fichiers séquentiels indexés; très haute fiabilité requise : centrale nucléaire, avion, train, navette spatiale, etc.; peut-on garantir la fiabilité du SGBD? 5

12 Chapter 2 Concepts et architecture des bases de données 2.1 Modèles de BD modèle de données : collection de concepts qui permettent de caractériser la structure d une BD type de données relation entre les groupe de données contraintes sur les données services offerts (opérations, commandes du SGBD). 2.2 Catégories de modèle de données conceptuel : représentation abstraite de l information; utilise, entre autres, les notions d entité, d attribut et de relations pour décrire la structure d une BD; représentationnel : représentation fréquemment utilisée dans les SGBD commerciaux; synonyme : modèle logique. Exemple: modèle relationnel, modèle hiérarchique, modèle réseau modèle objet : plus près des modèles conceptuels; représente une BD en terme d objets, de relations entre les objets et de méthodes. modèle physique : plus près de l implémentation; décrit la structure interne de la BD: ses index, sa répartition physique sur les processeurs, etc. 2.3 Schéma établir une distinction entre la description de la structure de la BD et du contenu de la BD. 6

13 schéma : description de la structure d une BD; typiquement représenté en partie par un diagramme; stocké dans le catalogue du SGBD. Voir figure 2.1 état d une BD : l ensemble des données contenues dans une BD à un moment particulier aussi appelé instance du schéma de BD; les opérations de mise à jour modifient l état d une BD. 2.4 Architecture Architecture peut être décrite à trois niveaux. interne : stockage physique des données; conceptuel : décrit les entités, les relations, les opérations, les contraintes; externe : décrit les vues des utilisateurs (pour une classe d utilisateurs, on définit et regroupe les entités désirées). Cette séparation en trois facilite la maintenance du SGBD et des BDs. Voir figure Langages langage de définition des données (LDD) : permet de définir un schéma de BD; Exemple: SQL (relationnel), ODL (orienté objets) langage de manipulation des données (LMD) : l état d une BD; Exemple: SQL (relationnel) permet de modifier ou d interroger langage hôte (host language) : expression utilisée pour dénoter les langages externes aux LMD qui permettent de programmer des applications; Exemple: Java, C++, COBOL, Visual Basic, PL/SQL langage de requête (query language) : expression utilisée pour dénoter un LMD lorsqu il est utilisé de manière autonome; Exemple: SQL avec SQL/PLUS d Oracle (relationnel), OQL (orienté objets). 7

14 2.6 Composantes d un SGBD compilateur pour le LDD : met à jour le catalogue du SGBD en traitant un schéma; compilateur pour le LMD : génère le code pour modifier l état de la BD; pré-compilateur pour un langage hôte : génère le code en langage hôte pour les énoncés de LMD d un programme d application; compilateur de requête : génère le code pour exécuter une requête d interrogation de la BD; processeur de requête : exécute les requêtes de mise à jour et d interrogation de la BD; gestionnaire des données stockées : gère les accès au disque pour le SGBD; utilitaires : divers programmes permettant d archiver, de prendre des copies de sécurité, de charger une BD à partir de fichiers séquentiels, de réorganiser l espace physique d une BD, de faire le suivi de la performance; outils d aide au développement : permettent de générer des schémas à partir de modèles de haut niveau (Exemple: modèle relationnel à partir du modèle E-R) et de développer des applications utilisant la BD (Exemple: Designer 2000 et Developper 2000 d Oracle). Voir figure 2.3 8

15 Chapter 8 Le langage SQL le langage SQL est une norme de l ANSI et de l ISO pour les SGBD relationnels il comporte à la fois des énoncés de définitions des données (LDD) et de manipulation des données (LMD). les fabricants de SGBD essaient de se conformer à cette norme, mais ils le font chacun à des niveaux différents de conformité; la version Oracle 10 est conforme à plusieurs éléments de la norme SQL, mais pas complètement; dans le cours, nous utilisons Oracle et Postgres; il est possible que des requêtes SQL exécutant sur d autres SGBD (comme Microsoft Access) ne puisse être exécutées sous Oracle, et vice-versa; pour maximiser la portabilité des applications, il est préférable de se limiter au SQL normalisé et ne pas utiliser de caractéristiques spécifiques à Oracle ou un autre SGBD. 8.1 Langage de définition des données Table une table est un ensemble de tuples; on utilise aussi relation comme synonyme de table, et ligne ou enregistrement comme synonymes de tuple; tous les tuples d une table ont le même format; ce format est défini par un ensemble d attributs; on peut représenter graphiquement une table par une matrice ou les colonnes sont les attributs; la première ligne comporte les noms des attributs, et les autres lignes représentent les tuples; l ordre d énumération des tuples ou des attributs n a pas d importance; la définition en SQL d une table comporte les éléments suivants: 9

16 son nom ses attributs ses contraintes d intégrité; il y a plusieurs types de contraintes d intégrité: clé primaire, clé unique, clé étrangère condition sur les valeurs des attributs (check(...), [not] null) Types en SQL La norme ANSI SQL définit des types de données. Il appartient aux fabricant de bases de données (comme Oracle, IBM, Microsoft) de suivre cette norme. Le tableau 8.1 donne les principaux types ANSI SQL. char(n) représente une chaîne de caractères de longueur fixe n; une chaîne de caractères est mise entre des apostrophes simples ( ); pour inclure un dans une chaîne de caractères, on utilise deux. Exemple 8.1 La chaîne abc12 est une valeur du type char(5). La chaîne ab 12 contient un au milieu. numeric(p,s) p indique le nombre total de chiffres stockés pour un nombre; la valeur de p doit être entre 1 et 38; s > 0 indique le nombre total de chiffres après la virgule; s < 0 indique un arrondissement du nombre de s chiffre avant la virgule; Exemple 8.2 numeric(5,2) peut contenir une valeur comportant 5 chiffres, dont 3 avant la virgule (soit 5-2) et 2 chiffres après la virgule; exemple de valeur : 123,45 numeric(2,5) peut contenir une valeur comportant de 2 chiffres; comme p < s dans ce cas, on a seulement des chiffres après la virgule; les 3 premiers (soit 5-2) ont comme valeur 0; exemple de valeur : 0,00012 numeric(5,-2) peut contenir une valeur comportant de 7 chiffres avant la virgule (soit 5 2), mais seulement les 5 premiers chiffres sont stockés, les 2 derniers sont toujours 0; il n y aucun chiffre après la virgule; exemple de valeur : ;lorsqu on stocke une valeur dans la base de données, elle est toujours arrondie à deux chiffres avant la virgule; exemple est stockée comme et est stocké comme

17 real numeric(2,-5) peut contenir une valeur comportant de 7 chiffres avant la virgule (soit 2 5), mais seulement les 2 premiers chiffres sont stockés, les 5 derniers sont toujours 0; il n y aucun chiffre après la virgule; exemple de valeur : ; permet de stocker un nombre en virgule flottant (c-a-d une valeur représentée par une mantisse et un exposant) varchar(n) permet de stocker une chaîne de caractères de longueur maximale n; par rapport à char(n), permet de mieux gérer l espace disque si les chaînes de caractères ne sont pas toujours de longueur n; date et heure le type date de la norme SQL2 comprend seulement une date en format YYYY-MM-DD; le type time de la norme SQL2 comprend seulement une heure en format HH:MM:SS; le type timestamp de la norme SQL2 comprend la date et l heure en format (YYYY-MM-DD HH:MM:SS.ffffff), où ffffff représente une fraction de seconde; le type date d Oracle est presque équivalent au type timestamp de SQL2; il comprend la date et l heure (YYYY-MM-DD HH:MM:SS), mais sans fraction de seconde; la valeur d une date varie entre le 1 er janvier 4712 avant J-C et 31 décembre 4712 après J-C. la date sous Oracle est affichée selon le format donné par le paramètre global nls_date_format; il existe plusieurs fonctions pour manipuler des dates en Oracle; Exemple 8.3 to_date( , DD-MM-YYYY ) retourne la valeur de la date 29 février 2000 selon le type DATE d Oracle. Le tableau 8.2 donne les types spécifique à Oracle qui ne font pas partie de la norme et qu il faut éviter d utiliser par souci de portabilité; il est préférable d utiliser les type ANSI SQL supportés par Oracle. 11

18 Types de la norme SQL Nom Espace Description Valeurs Exemples de constantes smallint 2 bytes entier to et -312 integer bigint 4 bytes entier 8 bytes entier numeric(p,s) et decimal(p,s)! variable virgule fixe (ie, nombre fixe de positions décimales) to à jusqu à chiffres avant la virgule et après real 4 bytes virgule flottante 6 chiffres de précision double precision char(n) varchar(n) date time timestamp 8 bytes virgule flottante 15 chiffres de précision n bytes n+2 bytes 4 bytes 8 bytes 8 bytes chaine de caractères de longueur fixe n chaine de caractères de longueur variable maximum n YYYY-MM-DD (année, mois, jour) HH:MM:SS (heures,mins,secs) YYYY-MM-DD HH:MM:SS.ffffff 4713 avant JC, après JC ffffff représente une fraction de seconde 518 et et et e 3 (ie, 0, x 10 3 ) e-3 (ie, -0,515 x 10-3 ) e3 (ie, 0, x 10 3 ) e-3 (ie, -0,515 x 10-3 ) 'coucou' 'aujourd''hui' 'coucou' 'aujourd''hui' date ' ' time '23:59:59' timestamp ' :59:59.123' boolean 1 bit booléen true et false! Table 8.1: Les types de la norme SQL 12

19 Type de données ANSI SQL Type spécifique à Oracle (à éviter si possible, car non standard) char(n) varchar(n) varchar2(n) numeric(p, s), decimal(p, s) number(p, s) integer, int, smallint number(38) real, double precision number date date contient une date et une heure; pas d autre choix pour représenter une date en Oracle time inexistant timestamp boolean inexistant Définition des tables Table 8.2: Types spécifiques à Oracle à éviter Notation utilisée pour décrire la syntaxe du langage SQL mot_cle : mot réservé du langage SQL; symbole terminal : peut être remplacé par un identificateur ou une constante (nombre, chaîne de caractère, etc); symbole non terminal : doit être remplacé par sa définition; symbole non terminal ::=... : définition d un symbole non terminal; "{" et "}" : équivalent des parenthèses en mathématiques; + : une ou plusieurs occurrences; : zéro ou plusieurs occurrences; [ élément optionnel ] : choix entre plusieurs options Syntaxe générale creation-table ::= create table nom-table ( liste-attributs [, liste-contraintes ] ) 13

20 Définition des attributs liste-attributs ::= attribut {, attribut } attribut ::= nom-attribut type [ default expression ] [ not null ] [ check ( condition ) ] la valeur par défaut est utilisée si la valeur de l attribut n est pas spécifiée lors de la création d un tuple; la condition doit être vérifiée lors de la création ou de la mise à jour d un tuple; not null : la valeur de l attribut ne peut contenir la valeur spéciale null; exemples de condition nom-attribut { = > >=... } expression nom-attribut in ( liste-valeurs ) condition { and or } condition not condition plusieurs autres (voir manuel Oracle) Définition des contraintes liste-contraintes ::= contrainte {, contrainte } contrainte ::= cle-primaire cle-unique cle-etrangere Clé primaire cle-primaire ::= constraint nom-contrainte primary key ( liste-noms-attribut ) il ne peut y avoir deux tuples avec les mêmes valeurs pour les attributs de la clé primaire; on peut définit une seule clé primaire pour une table; la valeur d un attribut d une clé primaire ne peut être null dans un tuple. 14

21 Clé unique cle-unique ::= constraint nom-contrainte unique ( liste-noms-attribut ) il ne peut y avoir deux tuples dans la table avec les mêmes valeurs pour les attributs de la clé unique; on peut définir plusieurs clés uniques pour une table; un attribut d une clé unique peut être null, toutefois, la combinaison de tous les attributs non null doit être unique Clé étrangère On dénote deux cas possibles: 1. faire référence à la clé primaire d une autre table cle-etrangere ::= constraint nom-contrainte foreign key ( liste-attributs ) references nom-table-referencee [ on delete cascade ] les types de liste-attributs doivent être les mêmes que les types des attributs de la clé primaire de nom-table-référencée ; pour chaque tuple de la table dont les attributs de clé étrangère sont tous différents de null, il doit exister un tuple dans nom-table-référencée avec la même valeur pour liste-attributs ; on delete cascade : si un tuple dans nom-table-référencée est supprimé, tous les tuples de la table qui le référence sont aussi supprimés. 2. faire référence à une clé unique d une autre table cle-etrangere ::= constraint nom-contrainte foreign key ( liste-attributs ) references nom-table-referencee [ ( liste-attributs-cle-unique ) ] [ on delete cascade ] les types de liste-attributs doivent être les mêmes que les types liste-attributsclé-unique ; pour chaque tuple de la table dont les attributs de clé étrangère sont tous différents de null, il doit exister un tuple dans nom-table-référencée avec la même valeur pour liste-attributs ; on delete cascade : si un tuple dans nom-table-référencée est supprimé, tous les tuples de la table qui le référence sont aussi supprimés. 15

22 8.1.4 Modification des tables alter table relation { ajout-attribut modification-attribut suppression-attribut ajout-contrainte suppression-contrainte } Ajout d attributs ajout-attribut ::= add ( liste-attributs ) ajoute les attributs de la liste à la table; Modification d attributs modification-attribut ::= modify ( liste-attributs ) modifie le type, la valeur par défaut ou l option null or not null des attributs de la liste; on spécifie seulement les parties à modifier; pour modifier le type, la valeur de chaque attribut doit être null pour tous les tuples de la table; pour spécifier not null, il faut que l attribut satisfasse déjà cette condition Suppression d attributs ajout-attribut ::= drop ( liste-noms-attribut ) supprime les attributs; non disponible en Oracle Ajout de contraintes ajout-attribut ::= add ( liste-contraintes ) ajoute les contraintes; les tuples de la table doivent satisfaire la contrainte. 16

23 Suppression de contraintes ajout-attribut ::= drop nom-contrainte [ cascade ] supprime la contrainte; cascade : supprime aussi toutes les contraintes qui dépendent de la contrainte supprimée Suppression des tables drop table nom-table [ cascade constraints ] 17

24 L exemple de la bibliothèque Voici le schéma relationnel. 1. editeur idediteur nom pays 2. auteur idauteur nom 3. livre idlivre titre idauteur idediteur dateacquisition prix 4. membre idmembre nom telephone limitepret 5. pret idmembre idlivre datepret 6. reservation idreservation idmembre idlivre datereservation 18

25 Voici le diagramme relationnel. editeur PK idediteur nom pays livre reservation PK idlivre PK FK1,U1 FK2,U1 idreservation idmembre idlivre datereservation U2,U1 FK1,U1 FK2,U2 titre idauteur idediteur dateacquisition prix auteur PK idauteur nom PK membre idmembre nom telephone limitepret pret PK,FK1 idmembre PK,FK2 idlivre PK datepret Figure 8.1: Diagramme relationnel de l exemple de la bibliothèque 19

26 Voici les énoncés de création des tables une ligne de commentaire commence par deux Exemple de la bibliotheque -- Marc Frappier, Universite de Sherbrooke drop table editeur cascade constraints ; create table editeur ( idediteur numeric (3), nom varchar (10) not null, pays varchar (10) not null, constraint PKediteur primary key ( idediteur ) ); drop table auteur cascade constraints ; create table auteur ( idauteur numeric (3), nom varchar (10) not null, constraint PKauteur primary key ( idauteur ) ); drop table livre cascade constraints ; create table livre ( idlivre numeric (3), titre varchar (10) not null check ( upper ( substr (titre,1,1)) = substr (titre,1,1)), idauteur numeric (3) not null, idediteur numeric (3) not null, dateacquisition date, prix numeric (7,2), constraint PKlivre primary key ( idlivre ), constraint UtitreAuteur unique ( titre, idauteur ), constraint UtitreEditeur unique ( titre, idediteur ), constraint FKlivreAuteur foreign key ( idauteur ) references auteur, constraint FKlivreEditeur foreign key ( idediteur ) references editeur ); drop table membre cascade constraints ; create table membre ( idmembre numeric (3), nom varchar (10) not null, telephone numeric (10) 20

27 check ( telephone >= and telephone <= ), limitepret numeric (2) check ( limitepret > 0 and limitepret <= 10), constraint PKmembre primary key ( idmembre ) ); drop table pret cascade constraints ; create table pret ( idmembre numeric (3), idlivre numeric (3), datepret date not null, constraint PKpret primary key ( idmembre, idlivre, datepret ), constraint FKpretMembre foreign key ( idmembre ) references membre, constraint FKpretLivre foreign key ( idlivre ) references livre ); drop table reservation cascade constraints ; create table reservation ( idreservation numeric (3), idmembre numeric (3), idlivre numeric (3), datereservation date not null, constraint PKreservation primary key ( idreservation ), constraint Ureservation unique ( idmembre, idlivre ), constraint FKreservMembre foreign key ( idmembre ) references membre, constraint FKreservLivre foreign key ( idlivre ) references livre ); 8.2 Langage de manipulation des données Insert insert into nom-table [ ( liste-noms-attribut ) ] { values ( liste-expressions ) select } Update update nom-table set { liste-affectation affectation-select } [ where condition ] liste-affectation ::= 21

28 affectation [, affectation ] affectation ::= nom-attribut = expression affectation-select ::= ( liste-noms-attribut ) = select expression peut être un énoncé select Delete delete from nom-table [ where condition ] si where n est pas spécifié, l énoncé delete supprime tous les tuples. 22

29 8.2.4 Select Syntaxe générale enonce-select-base ::= select [ distinct ] liste-expressions-colonne from liste-expressions-table [ where condition-tuple ] [ group by liste-expressions-colonne ] [ having condition-groupe ] [ order by liste-expressions-colonne ] enonce-select-compose ::= enonce-select-base { union [ all ] intersect minus } enonce-select-compose Sémantique Le résultat d un énoncé select est égal au résultat des opérations suivantes. Note: chaque SGBD utilise un algorithme propre pour exécuter un énoncé select. Toutefois, le résultat est le même que celui donné par la procédure ci-dessous. 1. évalue le produit cartésien des relations du from; 2. sélectionne les tuples satisfaisant la clause where; 3. tuples regroupés selon la clause group by; 4. sélectionne les groupes selon la condition having; 5. évalue les expressions du select; 6. élimine les doublons si clause distinct; 7. évalue l union, l intersection, ou la différence des selects (si nécessaire); 8. trie les tuples selon la clause order by La valeur spéciale NULL on utilise is null pour tester si une expression vaut null; on utilise is not null pour tester si une expression ne vaut pas null; une fonction évaluée sur une valeur null retourne une null (sauf la fonction nvl(e 1, e 2 ) qui retourne e 2 si e 1 vaut null, sinon elle retourne e 1 ; de manière plus générale, la fonction coalesce(e 1,..., e n ) retourne la première expression e i qui ne vaut pas null. dans toutes les fonctions de groupe sauf count(*), les valeurs null sont ignorées; 23

30 count(*) compte le nombre de tuple (doublons inclus), incluant les valeurs NULL; une expression booléenne atomique utilisant une valeur null retourne la valeur inconnu; une expression booléenne composée est définie selon les tables suivantes: not vrai faux inconnu faux vrai inconnu and vrai faux inconnu vrai vrai faux inconnu faux faux faux faux inconnu inconnu faux inconnu or vrai faux inconnu vrai vrai vrai vrai faux vrai faux inconnu inconnu vrai inconnu inconnu une clé primaire ne peut contenir de valeurs null pour les attributs d un tuple; une clé unique peut contenir des valeurs null pour un tuple. Toutefois, l unicité doit être préservée pour les valeurs non null Expressions expression élémentaire : nom d attribut, fonction, constante; expression composée : opérateur ou fonction appliqué sur expressions élémentaires ou composées; alias : renommer une expression ou une relation (table); * : retourne tous les attributs de toutes les tables du from R.* : retourne tous les attributs de la table R Conditions (Expressions booléennes) opérateurs logique : not, and, or opérateurs de comparaison : =,!=, <>, <, <=, >, >= is null, is not null (on écrit A is null, plutôt que A = null, qui retourne toujours INCONNU; idem pour A is not null, plutôt que A!= null). 24

31 expr 1 like expr 2 : vrai si expr 1 satisfait le patron expr 2 ; un patron est une chaîne de caractères pouvant contenir des caractères ayant une signification particulière: % dénote n importe quelle chaîne de caractères, y compris la chaîne vide (i.e., une chaîne de longueur 0), _ dénote n importe quel caractère (i.e., une chaîne de caractères de longueur 1 exactement). Par exemple, l expression A like %abc%def_8 retourne vrai ssi A contient la chaîne abc puis la chaîne def suivie de n importe quel caractère et ensuite du caractère 8 ; A peut contenir n importe quelle chaîne de caractères avant l occurrence du premier abc (premier % ) et entre abc et def (deuxième % ), et exactement un caractère (mais n importe lequel) entre def et 8. Voici des exemples de valeurs de A qui satisfont le patron %abc%def_8 abcdefz8 qabc(deft8 qsxabc*h$def=8 condition appliquée à un subselect expr in ( select ) : vrai si expr est un élément de l ensemble des tuples retournés par le select; expr not in ( select ) : vrai si expr n appartient pas aux tuples retournés par le select; expr >any ( select ) : vrai s il existe un tuple t select tel que expr > t; valable aussi pour tous les opérateurs de comparaison. expr >all ( select ) : vrai si pour tous les tuples t select, expr > t; exists ( select ) : retourne vrai ssi le select retourne au moins un tuple; not exists ( select ) : retourne vrai ssi le select ne retourne aucun tuple; Autres expressions (arithmétique, caractères, dates) tous les opérateurs arithmétiques de base et la plupart des fonctions mathématiques sont disponibles (voir le manuel de référence d Oracle). sysdate retourne la date et l heure courante. to_date(c, f) retourne la date correspondant à la chaîne de caractères c exprimée dans le format f. Par exemple, to_date( , YYYY-MM-DD ) retourne la date correspondant au 27 août

32 to_char(d, f) retourne la chaîne de caractères correspondant à la date d exprimée dans le format f. Par exemple, to_char(sysdate, YYYY-MM-DD ) retourne la date courante sous forme d une chaîne de caractères. l expression d + n, où d est une date et n un nombre en point flottant (ie, un nombre rationnel) représentant un nombre de jours, retourne la date d incrémentée de n jours. Par exemple to_date( , yyyy-mm-dd )+1 vaut le 28 août De manière similaire, l expression d n retourne la date d decrémentée de n jours. Par exemple to_date( , yyyy-mm-dd )-1 vaut le 26 août l expression c 1 c 1 retourne la concaténation des chaînes de caractères c 1 et c 2. Par exemple, a b vaut ab. la fonction substring(c, i, j) retourne la sous-chaîne de caractères de c commençant à la position i et de longueur j. Par exemple, substring( abcdef,2,3) vaut bcd. la fonction decode(e 0, e 1, v 1,..., e n, v n, v n+1 ) se comporte commme suit: si e 0 = e 1, alors elle retourne v 1, sinon si e 0 = e 2, alors elle retourne v 2, et ainsi de suite. Si e 0 e i pour tout i de 1 à n, alors elle retourne v n+1. Il existe plusieurs autres fonctions; voir le manuel d Oracle Fonctions d agrégation appliquée à l ensemble des tuples d un select ou aux tuples d un groupe quand la clause group by est utilisée. count( expr ), sum( expr ), avg( expr ), min( expr ), max( expr ), etc; count(*) : compte aussi les valeurs null; count(attribut) : compte seulement les valeurs non null; count(distinct attribut) : une valeur est comptée une seule fois, même si plusieurs tuples ont cette valeur; les autres fonction de groupe comme sum(x) ignorent les valeurs null; si toutes les valeurs sont null dans le groupe, alors la valeur null est retournée; utilisez nvl ou coalesce pour contourner ce problème. 26

33 Opérations ensemblistes 1. union : union de tous les tuples des subselects avec élimination des doublons; 2. union all : union de tous les tuples des subselects sans élimination des doublons; 3. intersect : intersection avec élimination doublon; 4. minus : différence, avec élimination doublon Jointures La norme SQL propose une syntaxe pour exprimer les jointures dans la clause from. CROSS JOIN Le cross join retourne le produit cartésien de deux tables. select... from livre CROSS JOIN membre est équivalent à select... from livre, membre JOIN, INNER JOIN et NATURAL JOIN inner join est un synonyme de join. Il retourne le produit cartésien de deux tables suivi d une sélection des lignes en fonction d une égalité entre des attributs (clause using (...)) ou d une condition spécifique (clause on condition ). Voici un exemple utilisant using. select... from livre JOIN pret USING ( idlivre ) est équivalent à select... from livre, pret where livre. idlivre = pret. idlivre Voici un exemple utilisant ON. select... from livre JOIN pret ON livre. idlivre = pret. idlivre and livre. dateacquisition < pret. datepret est équivalent à 27

34 select... from livre, pret where livre. idlivre = pret. idlivre and livre. dateacquisition < pret. datepret Le natural join est équivalent à un using sur tous les attributs communs entre deux tables (ie, les colonnes portant le même nom dans les deux tables). select... from livre NATURAL JOIN pret est équivalent à select... from livre JOIN pret USING ( idlivre ) OUTER JOIN Le outer join permet d ajouter au résultat d un join les lignes d une des tables (left pour la table de gauche, right pour la table de droite, full pour les deux tables) qui n apparaissent pas dans le résultat d un join. L exemple suivant retourne tous les livres de la table des livres, même ceux qui n ont pas de prêt, et qui donc n apparaitraient pas si on utilisait simplement un join. Les colonnes de l autre table contiennent des valeurs null pour les lignes ajoutées (ie, vu qu elles n ont pas de correspondance dans l autre table). select livre. idlivre, pret. datepret from livre LEFT OUTER JOIN pret USING ( idlivre ) est équivalent à select livre. idlivre, pret. datepret from livre, pret where livre. idlivre = pret. idlivre UNION ( select livre. idlivre, null from livre where NOT EXISTS ( select idlivre from pret where pret. idlivre = livre. idlivre ) ); Oracle permet aussi d utiliser une syntaxe abbréviée pour un outer join, en utilisant un + dans la clause where. Un left outer join s exprime en mettant un + du côté droit (et oui, c est l inverse...). Un right outer join s exprime en mettant un + du côté gauche. Un full outer join s exprime en mettant un + de chaque côté. L exemple précédent s exprime comme suit: 28

35 select livre. idlivre, pret. datepret from livre, pret where livre. idlivre = pret. idlivre (+) 29

36 Quelques exemples de SELECT 1. Sélection de colonnes d une table : Afficher la liste des livres avec leur titre. select idlivre, titre from livre 2. Sélection de lignes d une table avec une condition élémentaire : Afficher la liste des livres avec leur titre pour l auteur idauteur = 3. select idlivre, titre from livre where idauteur = 3 3. Sélection de lignes d une table avec une condition composée : Afficher la liste des livres avec leur titre pour les auteurs d idauteur = 3 ou 5. select idlivre, titre from livre where idauteur = 3 or idauteur = 5 ou bien select idlivre, titre from livre where idauteur in (3,5) 4. Ordonnancement du résultat : Afficher la liste des livres avec leur titre pour les livres des auteurs d idauteur = 3 ou 5, triée en ordre croissant de idauteur et titre. select idlivre, titre from livre where idauteur in (3,5) order by idauteur, titre 5. Spécification de colonnes calculées : Afficher la liste des livres avec leur titre et le prix incluant la TPS et la TVQ, pour les livres des auteurs d idauteur = 3 ou 5, triée en ordre croissant de idauteur et titre. select idlivre, titre, prix *1.075*1.07 PrixTTC from livre where idauteur in (3,5) order by idauteur, titre 6. Sélection de lignes à partir d expressions : Afficher la liste des livres avec leur titre et le prix incluant la TPS et la TVQ, pour les livres des auteurs d idauteur = 3 ou 5 et dont le prix TTC est 100 $, triée en ordre croissant de idauteur et titre. 30

37 select idlivre, titre, prix *1.075*1.07 PrixTTC from livre where idauteur in (3,5) and prix *1.075*1.07 <= 100 order by idauteur, titre 7. Fonction d agrégation : Afficher le nombre d éditeurs dans la base de données. select count ( idediteur ) "nb editeurs " from editeur 8. Fonction d agrégation avec élimination des doublons : Afficher le nombre d éditeurs et le nombre d auteurs dans la base de données. select count ( distinct idediteur ) " nb editeurs ", count ( distinct idauteur ) "nb auteurs " from editeur, auteur 9. Jointure de plusieurs tables : Afficher la liste des livres avec leur titre, nom de l auteur et nom de l éditeur, pour les idauteur = 3 ou 5, triée en ordre croissant de idauteur et titre select livre. idlivre, livre.titre, auteur.nom, editeur. nom from livre, auteur, editeur where livre. idauteur = auteur. idauteur and livre. idediteur = editeur. idediteur and livre. idauteur in (3,5) order by livre. idauteur, livre. titre 10. Calcul d expressions de groupe : Afficher la liste des éditeurs avec le nombre de livres édités. select editeur. idediteur, editeur.nom, count (*) "nb livres " from editeur, livre where editeur. idediteur = livre. idediteur group by editeur. idediteur, editeur. nom order by editeur. idediteur On note que si un éditeur n a pas de livre édité, il n apparaît pas dans le résultat du select. 11. Sélection de groupes : Afficher la liste des éditeurs avec le nombre de livres édités, en sélectionnant les éditeurs qui ont édité 5 livres ou plus. select editeur. idediteur, editeur. nom, count ( livre. idlivre ) "nb livres " from editeur, livre where editeur. idediteur = livre. idediteur 31

38 group by editeur. idediteur, editeur. nom having count ( livre. idlivre ) >= 5 order by editeur. idediteur 12. Jointure externe (outer join) : Afficher la liste des éditeurs avec le nombre de livres édités. Si un éditeur n a aucun livre, afficher 0. select editeur. idediteur, editeur. nom, count ( livre. idlivre ) "nb livres " from editeur LEFT OUTER JOIN livre USING ( idediteur ) group by editeur. idediteur, editeur. nom order by editeur. idediteur Avec Oracle, on utilise parfois la notation (+), qui ne fait pas partie de la norme SQL. select editeur. idediteur, editeur. nom, count ( livre. idlivre ) "nb livres " from editeur, livre where editeur. idediteur = livre. idediteur (+) group by editeur. idediteur, editeur. nom order by editeur. idediteur 13. Opérateur any : Afficher les auteurs qui ont au moins un éditeur en commun avec l auteur d idauteur 1. select distinct auteur. nom, auteur. idauteur from auteur, livre where auteur. idauteur = livre. idauteur and livre. idediteur = any ( select editeur. idediteur from editeur, livre l where editeur. idediteur = l. idediteur and l. idauteur = 1) 14. Opérateur all : Afficher le (ou les) livre(s) dont le prix est le plus élevé (les éléments maximaux) pour chaque éditeur. select editeur. idediteur, editeur. nom, livre. idlivre, livre. titre, livre. prix from editeur, livre where editeur. idediteur = livre. idediteur and livre. prix >= all ( select l. prix from livre l where l. idediteur = livre. idediteur ) order by editeur. idediteur, livre. idlivre Si plusieurs livres ont le prix le plus élevé pour un éditeur donné, chacun est affiché. 32

39 15. Opérateur all Afficher le livre le plus cher (le supremum) de chaque éditeur, s il existe. select editeur. idediteur, editeur. nom, livre. idlivre, livre. titre, livre. prix from editeur editeur, livre livre where editeur. idediteur = livre. idediteur and livre. prix >all ( select l. prix from livre l where l. idediteur = livre. idediteur and l. idlivre!= livre. idlivre ) order by editeur. idediteur, livre. idlivre 16. Opérateur exists : Afficher les auteurs qui ont publié au moins un livre avec l éditeur 1. select auteur. idauteur, auteur. nom from auteur where exists ( select * from livre where livre. idauteur = auteur. idauteur and livre. idediteur = 1) L énoncé ci-dessous est équivalent. select distinct auteur. idauteur, auteur. nom from auteur, livre where auteur. idauteur = livre. idauteur and livre. idediteur = Opérateur not exists : Afficher le (ou les) livre(s) dont le prix est le plus élevé (les éléments maximaux) pour chaque éditeur. select editeur. idediteur, editeur. nom, livre. idlivre, livre. titre, livre. prix from editeur, livre where editeur. idediteur = livre. idediteur and not exists ( select * from livre l where l. idediteur = livre. idediteur and livre. prix < l. prix ) order by editeur. idediteur, livre. idlivre Si plusieurs livres ont le prix le plus élevé pour un éditeur donné, chacun est affiché. 33

40 18. Opérateur not exists Afficher le livre le plus cher (le supremum) de chaque éditeur, s il existe. select editeur. idediteur, editeur. nom, livre. idlivre, livre. titre, livre. prix from editeur, livre where editeur. idediteur = livre. idediteur and not exists ( select * from livre l where l. idediteur = livre. idediteur and not ( l. idlivre = livre. idlivre ) and livre. prix <= l. prix ) order by editeur. idediteur, livre. idlivre 19. Requête de type pour tous (Quantification universelle) Afficher les auteurs qui ont publié un livre avec chaque éditeur. select auteur. idauteur, auteur. nom from auteur where not exists ( select * from editeur where not exists ( select * from livre where livre. idauteur = auteur. idauteur and livre. idediteur = editeur. idediteur )) 20. select imbriqué (clause from) : Afficher le (ou les) livre(s) ayant le plus grand nombre de prêts pour chaque éditeur (éléments maximaux). select nbpretediteurlivre. idediteur, nbpretediteurlivre. nom, nbpretediteurlivre. idlivre, nbpretediteurlivre. titre, nbpretediteurlivre. nbpret from ( select editeur. idediteur, editeur. nom, livre. idlivre, livre. titre, count ( pret. idlivre ) nbpret from editeur, livre, pret where editeur. idediteur = livre. idediteur (+) and livre. idlivre = pret. idlivre (+) group by editeur. idediteur, editeur. nom, livre. idlivre, livre. titre ) nbpretediteurlivre where not exists ( select * 34

41 from livre l, pret p where l. idediteur = nbpretediteurlivre. idediteur and l. idlivre = p. idlivre (+) group by l. idlivre having count ( p. idlivre ) > nbpretediteurlivre. nbpret ) order by nbpretediteurlivre. idediteur 21. Operation ensemblistes (union) Afficher la liste de tous les auteurs et de tous les editeurs en indiquant leur type ( auteur ou editeur ). select a. nom nom_a_e, auteur type from auteur a union ( select e. nom nom_a_e, editeur type from editeur e ) order by nom_a_e 22. Requête pour tous : Afficher les membres m1, m2 tels que m1 a emprunté tous les livres que m2 a emprunté. Effectué avec un double not exists select m1. idmembre, m2. idmembre from membre m1, membre m2 where m1. idmembre!= m2. idmembre AND not exists ( select * from pret p2 where p2. idmembre = m2. idmembre and not exists ( select * from pret p1 where p1. idmembre = m1. idmembre AND p1. idlivre = p2. idlivre ) ) order by m1. idmembre, m2. idmembre ; 23. Même requête pour tous que la précédente, effectuée avec un count 35

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

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

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

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

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

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

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble. Gaëlle PERRIN SID2 Grenoble Le 10/04/2014 Base de Données (BD) : une grande quantité de données, centralisées ou non, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables

Plus en détail

Exploitation de bases de données relationnelles et orientées objet IFT287

Exploitation de bases de données relationnelles et orientées objet IFT287 Université de Sherbrooke Département d informatique Exploitation de bases de données relationnelles et orientées objet IFT287 Notes complémentaires et synthétiques Marc Frappier, Ph.D. professeur Avertissement

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

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

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

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

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

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

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

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

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

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

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

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

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 Plan Bases de Données L3 Info Céline Rouveirol 2010-2011 Bases de Données 1 / 77 Sources des transparents Bases de Données 2 / 77 Bases de SQL - M.P. Dorville/F. Goasdoué, LRI, Université Paris Sud - V.

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

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

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

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

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 Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/62 Bases de Données Avancées Introduction & Rappel Conception et Modélisation Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR

Plus en détail

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

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres. INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES Durée : 1h30 Date : 17/05/2006 Coordonnateurs : Amel Bouzeghoub et Bruno Defude Documents autorisés : ceux distribués en cours Avertissements

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

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

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

1/ Présentation de SQL Server :

1/ Présentation de SQL Server : Chapitre II I Vue d ensemble de Microsoft SQL Server Chapitre I : Vue d ensemble de Microsoft SQL Server Module: SQL server Semestre 3 Année: 2010/2011 Sommaire 1/ Présentation de SQL Server 2/ Architerture

Plus en détail

Bases de Données. Plan

Bases de Données. Plan Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 Plan Généralités: Définition de Bases de Données Le modèle relationnel Algèbre relationnelle

Plus en détail

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012 Initiation à SQL Le langage de communication avec une base de données relationnelles Application avec PostgreSQL Nathalie Camelin 2011/2012 Université du Maine Institut Claude Chappe D'après Levy Estève

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL) Un modèle de données définit un mode de représentation de l information selon trois composantes : 1. Des structures de données. 2. Des contraintes qui permettent

Plus en détail

Les bases de données Page 1 / 8

Les bases de données Page 1 / 8 Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...

Plus en détail

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

Pour les débutants. langage de définition des données Pour les débutants SQL : langage de définition des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre 5 LE MODELE ENTITE - ASSOCIATION Chapitre 5 LE MODELE ENTITE - ASSOCIATION 1 Introduction Conception d une base de données Domaine d application complexe : description abstraite des concepts indépendamment de leur implémentation sous

Plus en détail

MySQL / SQL EXEMPLES

MySQL / SQL EXEMPLES MySQL_exemples_janv04_mpT EXEMPLES 1 MySQL / SQL EXEMPLES Typologie du langage Il est possible d'inclure des requêtes SQL dans un programme écrit dans un autre langage (en langage C par exemple), ainsi

Plus en détail

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

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Bases de données Cours 1 : Généralités sur les bases de données

Bases de données Cours 1 : Généralités sur les bases de données Cours 1 : Généralités sur les bases de données POLYTECH Université d Aix-Marseille odile.papini@univ-amu.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 1 Qu est ce qu une

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

Introduction aux Bases de Données 2004/2005

Introduction aux Bases de Données 2004/2005 Introduction aux Bases de Données 2004/2005 Chapitre 6: Le langage SQL Ecole Nationale Supérieur de Physique de Strasbourg Christian Wolf christian.wolf@ensps.u-strasbg.fr 6.1 Stockage physique Film numfil

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Historisation des données

Historisation des données Historisation des données Partie 1 : mode colonne par Frédéric Brouard, alias SQLpro MVP SQL Server Expert langage SQL, SGBDR, modélisation de données Auteur de : SQLpro http://sqlpro.developpez.com/ "SQL",

Plus en détail

Rappel sur les bases de données

Rappel sur les bases de données Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Bases de données relationnelles & SQL

Bases de données relationnelles & SQL Bases de données relationnelles & SQL Objectifs Appréhender les concepts du modèle relationnel. Etre capable de concevoir un schéma relationnel. Etre capable de créer une base de données relationnelle

Plus en détail

Systèmes de Gestion de Bases de Données

Systèmes de Gestion de Bases de Données Systèmes de Gestion de Bases de Données Luiz Angelo STEFFENEL DUT Informatique 2ème année IUT Nancy Charlemagne Vues Vue : une table virtuelle de la base de données dont le contenu est défini par une requête

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

Auto-évaluation Oracle: cours de base

Auto-évaluation Oracle: cours de base Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

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

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Bases de données cours 1

Bases de données cours 1 Bases de données cours 1 Introduction Catalin Dima Objectifs du cours Modèle relationnel et logique des bases de données. Langage SQL. Conception de bases de données. SQL et PHP. Cours essentiel pour votre

Plus en détail

FileMaker 13. Guide de référence SQL

FileMaker 13. Guide de référence SQL FileMaker 13 Guide de référence SQL 2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

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)

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) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

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

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en

Plus en détail

Table des matières. Avant-propos

Table des matières. Avant-propos Table des matières Avant-propos v Table des matières xi 1 Introduction aux systèmes de gestion de bases de données 1 1.1 Donnée et type de données 2 1.2 Donnée et information 2 1.3 Donnée simple et complexe

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0

SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 2013 SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 Table des matières Signalétique... 2 1 Les bases du SQL... 3 2 SQL server... 6 2 Références des exercices...21 DEHECQ Olivier

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

LE LANGAGE SQL2 1. INTRODUCTION

LE LANGAGE SQL2 1. INTRODUCTION LE LANGAGE SQL2 1. INTRODUCTION Les serveurs de données relationnels présentent aujourd hui une interface externe sous forme d un langage de recherche et mise à jour, permettant de spécifier les ensembles

Plus en détail

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

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel 31071 Toulouse Cedex 7 Bases de données Yamine AIT AMEUR INPT-ENSEEIHT DIMA 2 Rue Charles Camichel 31071 Toulouse Cedex 7 Première partie Introduction 1 Généralités et notions de base Première partie Introduction 1 Généralités

Plus en détail

I4 : Bases de Données

I4 : Bases de Données I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables

Plus en détail

Vincent Augusto 2010-2011

Vincent Augusto 2010-2011 le des Systèmes Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne 2010-2011 Un 1/73 le des Un 2/73 1 2 3 4 le 5 6 7 8 Un le des Un 3/73 Contenu du cours : Techniques pour l analyse

Plus en détail

Bases de données élémentaires Maude Manouvrier

Bases de données élémentaires Maude Manouvrier Licence MI2E- 1ère année Outils en Informatique Bases de données élémentaires Maude Manouvrier Définitions générales et positionnement du cours dans la formation Vocabulaire relatif aux bases de données

Plus en détail

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

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98. J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES BASES DE DONNÉES CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98 J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES III. LES SYSTÈMES RÉSEAU IV. LES SYSTÈMES RELATIONNELS V. LE LANGAGE

Plus en détail

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

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR Système de Gestion de Bases de Données Relationnelles MySQL Youssef CHAHIR 1 PLAN Introduction Démarrer MySQL Syntaxe de MySQL Types des attributs Identificateurs Effectuer des requêtes Fonctions de MySQL

Plus en détail

Introduction aux Bases de Données

Introduction aux Bases de Données Introduction aux Bases de Données I. Bases de données I. Bases de données Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Exemples classiques d'applications BD

Plus en détail

Compétences Business Objects - 2014

Compétences Business Objects - 2014 Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34 Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

Bases de Données. Stella MARC-ZWECKER. stella@unistra.u-strasbg.fr. Maître de conférences Dpt. Informatique - UdS

Bases de Données. Stella MARC-ZWECKER. stella@unistra.u-strasbg.fr. Maître de conférences Dpt. Informatique - UdS Bases de Données Stella MARC-ZWECKER Maître de conférences Dpt. Informatique - UdS stella@unistra.u-strasbg.fr 1 Plan du cours 1. Introduction aux BD et aux SGBD Objectifs, fonctionnalités et évolutions

Plus en détail

CHAPITRE 1 ARCHITECTURE

CHAPITRE 1 ARCHITECTURE 07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA

Plus en détail

Optimisation SQL. Quelques règles de bases

Optimisation SQL. Quelques règles de bases Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR

Plus en détail

TP3 : Creation de tables 1 seance

TP3 : Creation de tables 1 seance Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Cours: Administration d'une Base de Données

Cours: Administration d'une Base de Données Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Administration d'une Base de Données Table of Contents Principes...1 Structure d'un Base de Données...1 Architecture...1

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Mejdi BLAGHGI & Anis ASSÈS

Mejdi BLAGHGI & Anis ASSÈS Ministère de l Enseignement Supérieur, de la Recherche Scientifique et de la Technologie Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Djerba Support de Cours

Plus en détail

Les BASES de DONNEES dans WampServer

Les BASES de DONNEES dans WampServer Les BASES de DONNEES dans WampServer 1 Définitions Générales Une base de données (BDD) permet d'enregistrer, de stocker, de ranger des données de façon organisée et hiérarchisée. SQL est le langage qui

Plus en détail

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

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs, relations,

Plus en détail

1. SAS FEDERATION SERVER - POINT D'ACCES UNIQUE ET SECURISE AUX DONNEES DE L'ENTREPRISE

1. SAS FEDERATION SERVER - POINT D'ACCES UNIQUE ET SECURISE AUX DONNEES DE L'ENTREPRISE 1. SAS FEDERATION SERVER - POINT D'ACCES UNIQUE ET SECURISE AUX DONNEES DE L'ENTREPRISE Les DSI sont quotidiennement mises au défi de fournir aux utilisateurs des informations provenant de sources de données

Plus en détail

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.

Plus en détail

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

1 Modélisation d une base de données pour une société de bourse IN306 : Corrigé SID Christophe Garion 18 octobre 2010 Ce document est un corrigé succinct de l examen du module IN306. 1 Modélisation d une base de données pour une société de bourse Une

Plus en détail

Exercices sur SQL server 2000

Exercices sur SQL server 2000 Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table

Plus en détail

Intégrité des données

Intégrité des données . Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les

Plus en détail

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

Conception des bases de données : Modèle Entité-Association Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir

Plus en détail

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

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 TP base de données SQLite 1 Différents choix possibles et choix de SQLite : La plupart des logiciels de gestion de base de données fonctionnent à l aide d un serveur. Ils demandent donc une installation

Plus en détail

OBJECTIFS ET ARCHITECTURE DES SGBD

OBJECTIFS ET ARCHITECTURE DES SGBD OBJECTIFS ET ARCHITECTURE DES SGBD 1. INTRODUCTION Même si vous n avez jamais utilisé de système de gestion de bases de données (SGBD), vous avez certainement une idée de ce qu est une base de données

Plus en détail