Base de données et SQL

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

Download "Base de données et SQL"

Transcription

1 Base de données et SQL IN214 Hédia Mhiri Sellami 1

2 Chapitre 1 Introduction 1. Base de données et fichiers Un fichier est un ensemble de données qui peut être manipulés par plusieurs utilisateurs ayant une vue unique de ces données. Un fichier est un ensemble d enregistrements physiques (ou articles) composés de «champs». A une certaine époque le traitement de données était étroitement lié à leur structure de stockage. Soit le fichier ETUDIANT ayant la structure suivante : Identifiant _etudiant Nom Prenom Note_Mat1 Note_Mat1 Note_Mat2.. Note_Matn Moyenne_G Supposons que l organisation de ce fichier soit séquentielle et que les moyennes des étudiants soient calculées par un programme P1, ce dernier ne pourra pas être appliqué sur le même fichier si son organisation devient indexée ou directe par exemple. Il faut réécrire certaines parties de P1. Ainsi données et programmes étaient étroitement liés. Ajouter un champ dans la structure d un fichier nécessite la récriture de tous les programmes qui le manipulent. Tout changement de structure ou d organisation engendre des mises à jours au niveau de toutes les applications qui le concernent. Le principe de séparation données-traitement s est donc imposé depuis le début des années soixante ce qui a aboutit à la notion de base de données (BD). Le but initial est de séparer données et traitements. 1.1 Définitions d une base de données Le concept de base de données est présenté par plusieurs définitions dont nous citons quelques unes : -) Une base de données représente un ensemble de données de l'entreprise mémorisé par un ordinateur, qui est utilisé par de nombreuses personnes et dont l'organisation est régie par un modèle de données. -) Une base de données est un ensemble structuré de données enregistrées sur des supports accessibles par l'ordinateur pour satisfaire simultanément plusieurs utilisateurs de façon sélective et en un temps opportun. -) On appelle bases de données sur un certain sujet un ensemble de renseignements sur ce sujet qui répond aux trois critères suivants : exhaustivité, non redondance, structure. 2

3 -) Une base de données est un ensemble de données qui peut être manipulé par plusieurs utilisateurs ayant des vues différentes de ces données. Une base de données est le regroupement d un ensemble de fichiers partagés par des utilisateurs différents, concurrents et compétiteurs. La structure de cet ensemble requiert une description rigoureuse que l on appelle SCHEMA. -) Une base de données est un ensemble exhaustif de données structurées qui sont fiables, cohérentes et partagées par des utilisateurs ayant des besoins d information différents. Le système de gestion de base de données (SGBD) est le logiciel qui permet de gérer et de manipuler une base de données. Par gestion d une base de données, on entend création et maintenance des données (schéma, répertoires, ), optimisation des performances (prise de statistiques, définition de chemins d accès rapides, évaluation, ). -) Une base de données (BD) est un ensemble structuré d'information qui peut être utilisé simultanément par plusieurs utilisateurs et programmes grâce aux fonctions offertes par un composant logiciel appelé système de gestion de bases de données SGBD. Toutefois certains auteurs lient la définition de Base de données (BD) à celle du système qui la gère à savoir le système de gestion de base de données (SGBD). Cet SGBD se charge de ranger, rechercher, assembler et modifier les données tout en étant indépendant du contenu de la base. Les performances des BD sont d ailleurs étroitement liées à celles de leurs SGBD ou DBMS en anglais (Data Base Management System). Une base de données et son système de gestion peuvent être présentés par le schéma suivant : Programme SGBD BD Utilisateur Programme Utilisateur Schéma 1.1 Schématisation d une BD et d un SGBD Le concept de base de données fait donc intervenir quatre composants : -) les données qui sont spécifiques à un domaine comme par exemple la gestion du stock où on trouve les produits, les fournisseurs. Lorsque la base de données concerne la gestion des étudiants on trouvera les étudiants, les enseignants, les salles -) le matériel informatique où seront stockées et manipulées les données cela peut être un micro-ordinateur; généralement dans le cas de BD mono utilisateur; ou un ou plusieurs serveur avec plusieurs connexions et on est dans le cas de BD multi-utilisateurs -) le logiciel qui va gérer ces données à savoir le système de gestion de base de données (SGBD) 3

4 -) l utilisateur qui peut correspondre à réel ou fictif. Un utilisateur réel peut être le personne qui donne les extraits bancaires ou même l administrateur de la base de données (DBA de l anglais Data Base Administrator). Un utilisateur fictif peut être un programme d édition lancé le soir ou un programme de sauvegarde. 2. Caractéristiques des bases de données Les objectifs principaux d une approche BD sont : - intégration et corrélation, - flexibilité (indépendance), - disponibilité, - sécurité. 2.1 Intégration et corrélation Dans un système d information fichiers classiques chaque application gère ses fichiers via le système de gestion des fichiers (SGF). Il y a autant de couples (application, fichiers) qu il y a d utilisations différentes des données. Il en résulte des inconvénients : - redondance et incohérence des données : la même donnée peut appartenir à plusieurs applications et donc exister dans plusieurs fichiers. Cette donnée (age ou adresse par exemple) peut être modifiée par une application et restée avec son ancienne valeur dans un fichier d une autre application. - difficulté de mettre en œuvre de nouveaux traitements non prévus à l avance. L idée principale de l approche BD est d intégrer toutes les données de l entreprise en un «réservoir» unique de données commun à toutes les applications. 2.2 Flexibilité (indépendance) Dans les systèmes classiques, un changement de support ou de méthode d accès physique entraîne une reprogrammation des applications correspondantes. Dans l approche BD, on peut isoler le niveau utilisation de toute modification que ceci soit : - au niveau de l organisation physique des données puisque le niveau de l utilisateur est transparent à un changement de support, de méthode d accès - au niveau de l organisation logique globale des données puisque le niveau de l utilisateur (programmes d application) est transparent à une modification intervenant dans l organisation logique globale des données. - des chemins d accès aux données puisque le niveau de l utilisateur est transparent à la création de nouveaux index permettant une amélioration des traitements de données. 2.3 Disponibilité L approche BD doit permettre de réduire les temps d accès aux informations en plus du fait qu en travaillant, chaque utilisateur doit pouvoir ignorer l autre. 2.4 Sécurité La sécurité des données recouvre : - l intégrité : protection contre la modification invalide des données (erreur, pannes ). Ces modifications doivent aussi se faire en conformité avec le domaine et les contraintes de travail. - la confidentialité : protection contre la modification illégale des données. 4

5 3. Architecture d'une base de données ANSI-SPARC Dans le cadre du groupe de normalisation Nord-Américain ANSI ( American National Standards Committee on Computers and Information Processing), un groupe a été crée en 1969, «Standard Planning And Requirement Committe» (SPARC) pour étudier l impact des SGBD dans les systèmes d information. Ce groupe a décidé en 1972 de mettre un peu d'ordre dans la jungle du vocabulaire et des concepts relatifs aux bases de données. 3.1 Architecture ANSI-SPARC Les travaux du groupe ou comité SPARC ont abouti en 1975 à la publication d un document fondamental (ANSI/X3/SPARC) concernant l'architecture d'une base de données. Ce document sert encore aujourd'hui de référence et le schéma ci-dessous est une description d'une telle architecture : SGBD On remarque, sur ce schéma, que l'architecture comprend 3 grands niveaux : - interne, - conceptuel, - externe. Le niveau interne est défini par le schéma physique qui indique comment l'information est enregistrée sur les mémoires auxiliaires. Ce schéma utilise donc les termes de fichiers, d'index, d'adressages, etc... Le niveau interne décrit une réalité physique (en fait la seule de toute l'architecture), les autres niveaux correspondant à des notions entièrement abstraites. Le niveau conceptuel est défini par un schéma conceptuel dont le rôle est de définir les règles de description des données et des relations entre ces données. En d'autres termes, le schéma conceptuel est une modélisation des objets du monde réel. On l'appelle d'ailleurs modèle de données. On connaît les modèles de données suivant : - le modèle hiérarchique 5

6 - le modèle réseau - le modèle relationnel - le modèle objet Signalons cependant que nous insisterons beaucoup plus sur le modèle relationnel qui est actuellement le plus utilisé dans la conception des bases de données contemporaine. Le modèle hiérarchique et réseau ont néanmoins joué un grand rôle dans le passé. Notons que, si la base de données possède l'indépendance des données au sens défini précédemment, le modèle de données ne doit pas comporter de références à une quelconque stratégie d'accès, ce n'est cependant pas le cas des modèles hiérarchique et réseau. Le schéma conceptuel ne se limite pas à la description des données et à leurs relations. Il doit comporter en plus des procédures d'autorisation d'accès (sécurité des données) et de contrôle de validité (intégrité des données). Le niveau externe contrairement aux précédents niveaux, le niveau externe peut correspondre à plusieurs schémas externes qui ne sont autres que les vues (partielles) qu'ont les différents utilisateurs de la base de données. Quelquefois, les schémas externes ne sont que des sous-schémas du schéma conceptuel. Parfois ils peuvent permettre, par exemple, de fournir des informations qui n'existent pas en tant que telles dans le schéma conceptuel, mais qui peuvent être obtenues (calculées) à partir d'informations existantes. En ce sens, l'union de tous les schémas externes peut constituer un "recouvrement" du schéma conceptuel. Cette division en trois niveaux permet une double indépendance des données : --> Indépendance vis à vis des applications par distinction entre niveau externe et niveau conceptuel. Un changement dans une application ou la création d'une nouvelle application implique seulement la création d'une nouvelle interface (mapping) entre les deux niveaux et non une modification de l'ensemble de la base de données. --> Indépendance vis à vis des moyens de stockage par distinction entre niveau conceptuel et niveau interne. Un changement de supports magnétiques ne devrait pas influer sur le niveau conceptuel, de nature logique. Seule l'interface conceptuel-interne sera à modifier. 3.2 SGBD et DBA L indépendance entre niveaux permet aussi à l utilisateur (ou au programme) d être libre visà-vis des stratégies d accès. Il indique au système ce qu il désire (le QUOI) et c est au SGBD de trouver le meilleur chemin d accès (le COMMENT) Le SGBD Le système de gestion de base de données SGBD est un logiciel qui permet la gestion, le contrôle et l'utilisation de la base de données dont il est partie intégrante (pour certains auteurs il est la base de données). Il a comme fonction de : - dialoguer avec l'utilisateur, - assurer l'interactivité entre les utilisateurs et la base de données, - effectuer les opérations de recherche, de sélection, de mise à jour des informations, - décrire l'ensemble des données sous la forme des trois niveaux décrits ci-dessus et assurer les passages entre ces niveaux, - maintenir l'intégrité des données par vérification des contraintes d'intégrité, - maintenir la sécurité et la confidentialité des données par vérification des droits d'accès des utilisateurs, - gérer les accès de plusieurs utilisateurs à une même information, - prévoir des solutions de redémarrage en cas d'incidents. 6

7 Pour réaliser ces différentes fonctions, un SGBD comporte souvent des langages spécifiques et notamment : - un langage de description de données (LDD) qui définit les différents objets de la base (nature, caractéristiques) ainsi que les contraintes d'intégrité qui portent sur eux. - un langage de manipulation de données (LMD) permettant de réaliser les différentes commandes souhaitées par l'utilisateur sur les données. Il s'agit, en fait, d'une sorte de langage de programmation, soit inclus dans un langage de programmation déjà existant (ce dernier est alors appelé un langage hôte), soit constituant un langage autonome Le DBA Le bon fonctionnement du SGBD est assuré, en général, sur les gros systèmes, par un personnel spécialisé, plus particulièrement l'administrateur de la base de données (ABD) ou le DBA (data base administrator). Le DBA est une personne ou un groupe de personnes responsables de tout le système d'information, il a pour rôle : - de définir le schéma et le sous-schéma (choix du contenu de la base de données, choix de la structure de stockage ) - d assurer la sécurité des données (choix de la stratégie d'accès, les relations avec les utilisateurs, choix des autorisations d'accès, des procédures de validation ) - d améliorer la disponibilité des données (stratégie de recopie et de sauvegarde ) - d intégrer les extensions éventuelles de la base (choix des modifications à apporter ). 7

8 Chapitre 2 Le modèle relationnel 1. Introduction Le modèle relationnel a été introduit pour lever les restrictions imposées par le modèle en réseau sur la représentation des liens inter-entités. En effet certains liens-entités peuvent ne pas exister à un instant donné et apparaître par la suite, et dans le cas du modèle en réseau la structure logique des données doit être alors modifiée. Le principe du modèle relationnel est de représenter les données sous forme de relation. L'algèbre relationnelle est en fait un concept mathématique de relation de la théorie des ensembles. Elle a été inventée en 1970 par Edgar Frank Codd, directeur de recherche du centre IBM de San José en Californie (USA). Le model relationnel [Codd 70] permet une description d un problème sous forme tabulaire. Une relation peut être vue comme une table à double entrée où chaque ligne; appelée nuplet, tuple, instance ou encore occurence peut être vue comme décrivant une entité du monde. Une colonne de la table est appelée un attribut, elle correspond généralement à une propriété de l entité, comme par exemple l entité étudiant dans un problème de gestion de l inscription. L entité étudiant peut être décrite par un code, un nom, un prénom et une adresse. On a donc la table Etudiant ayant les attributs suivants : attribut tuple Code Nom Prenom Adresse 10 Haddad Ali 25 rue L algèbre relationnelle est constituée d'un ensemble d'opérations formelles sur les relations. Les opérations relationnelles permettent de créer une nouvelle relation (table) à partir d'opérations élémentaires sur d'autres tables (par exemple l'union, l'intersection, ou encore la différence). 2. Concepts de base * Une relation R ; on dit parfois schéma relationnel; peut aussi être notée R(A1, A2,..., An) ou encore R = {A1, A2,..., An}. A chaque attribut Ai est associé un domaine Di. 8

9 * La définition ANSI d un domaine est : «Un domaine est l ensemble des valeurs légales que peut prendre l attribut d une relation» sachant que l attribut est un objet caractéristique d une relation. Par exemples si nous prenons les attributs Num_securite_sociale, Nom, Code_postal et couleur on peut associer à chacun un domaine : D_Num_securite_sociale = { n [10 13 ; ]} D_Nom = { chaine de 30 caractères} D_Code_postal = { chaine de 5 chiffres} D_couleur = { bleu, vert, rouge, jaune } Deux domaines sont déclarés compatibles s ils sont sémantiquement comparables, c'est-àdire si les ensembles qui les définissent ne sont pas disjoints. C est par exemple le cas des domaines suivant : Le domaine de l attribut LOCALISATION-AVION = {Paris, Nice} et de l attribut VILLE- DEPART-VOL = {Paris, Nice, Toulouse}, peuvent être compatibles. * Le degré de la relation est le nombre d'attributs de celle-ci. Ainsi pour la relation R(A1, A2,..., An), son degré est n. Le degré de notre table Etudiant précédente est de 4. * La cardinalité d une relation est son nombre de tuples ou d occurrences ou encore de lignes. * Une association représente les liens existants entre les entités. Elle est caractérisée, comme les entités, par un nom et des attributs. Elle est aussi nommée relation. * Pour une relation on peut aussi distinguer ses contraintes d'intégrité. Une contrainte d'intégrité associée à une relation concerne les règles de manipulation ou de gestion d'une relation avec les autres. C'est une propriété du monde que l'on va modéliser comme par exemple le fait que «un employé a un chef et un seul» ou encore que «La moyenne des salaires n'est pas inférieur à » *Parmi les attributs d une entité on distingue : - Clé primaire: est un attribut (ou un groupe d attributs) dont la (les) valeur(s) permet (ent) d identifier un tuple de manière unique dans une relation, comme par exemple le numéro d'une pièce ou le numéro du passeport. Ces identifiants sont souvent soulignés lors des représentations schématiques. - Clé étrangère: est un attribut qui est clé primaire d une autre relation. Ainsi pour connaître le fournisseur de chaque produit il faut par exemple ajouter l attribut numéro de fournisseur à la relation pièce. * Une relation est un ensemble de nuplets, il n'y a donc pas de notion d'ordre sur les nuplets, toutefois un uplet est une séquence ordonnée d'attributs. * Une valeur d'attribut doit généralement être atomique ou encore simple comme par exemple le poids. 9

10 * Une base de données est donc un sous-ensemble du produit cartésien de n ensembles (D i ) appelés domaines : R D 1 *D 2 * *D n Ou encore c est un ensemble de n-uplets (ou tuples) tj, j (1,m), m étant la cardinalité de la relation (ou le nombre de lignes). Cet ensemble peut être défini d une manière extensive ou intensive : - extensive : une relation est déterminée en donnant la liste des tuples : R= { t1,, tj,, tm}, avec tj = < dj1, dj2,, djk, djn> ; et dji Di ; j [1, m] et i [1,n] Dans l exemple suivant où le degré est de 4 on donne une relation AVION de manière extensive AVION : {<100, AIRBUS, 300, PARIS>, <101, B707, 250, PARIS>.} - intensive : une relation est déterminée en donnant un prédicat d appartenance d un n- uplet à R, soit P (A1,, An) ce prédicat à n variables : R= {tj / P (dj1,, djn) VRAI } Un tuple correspond alors à une assignation «vraie» A cette dualité de définition d une relation correspond aussi une dualité de manipulation. On distingue deux grandes classes des langages de manipulation d une BDR basées sur : - la théorie ensembliste : langage algébrique, SQL - la théorie des prédicats : conduisant au calcul relationnel (des tuples ou des domaines) comme par exemple QUEL d INGRES, les langage graphiques comme QBE d IBM 3. Dépendance fonctionnelle et normalisation 3.1 Dépendance fonctionnelle La dépendance fonctionnelle permet d établir des liens sémantiques entre attributs ou groupe d attributs. Etant donné une relation R, nous disons qu il y a dépendance fonctionnelle (DF) d un attribut (ou groupe d attributs) X de R vers un attribut (ou groupe d attributs) Y de R si à une valeur de X est associé une valeur de Y. Cette dépendance fonctionnelle est notée X Y. [Miranda] Cette définition peut aussi être présentée par : Y dépend de X si toute valeur pour l attribut X détermine au plus une valeur de l attribut Y. Plus formellement : Soit X et Y deux attributs d une relation R ; on a une dépendance fonctionnelle X Y (Y dépend de X ) si et seulement si on a la condition suivante : Si, E1 et E2 deux n-uplets de R, ont les mêmes valeurs pour l attribut X, alors E1 et E2 ont nécessairement les mêmes valeurs pour l attribut Y. On peut généraliser cette définition en prenant pour X et Y des sous-ensembles de l ensemble des attributs d une même relation. Exemple : Dans la relation AVION suivante il y a une DF entre le nom de l avion et sa capacité: AVNOM CAP 10

11 AVION AV# AVNOM CAP 100 CARAV B CARAV AIRBUS AIRBUS B Cette DF traduit le fait que connaissant le nom d un avion on a automatiquement sa capacité. On dit que Y ; qui est un attribut (ou groupe d attributs) ; dépend fonctionnellement de X ; qui est un attribut (ou groupe d attributs) ; si pour toute instance de R, deux tuples ayant des valeurs identiques pour X ont obligatoirement des valeurs identiques pour Y. Dans la relation (Nom, Prénom, code_postal, ville, département) on a : (Code_postal ) département mais (ville département) car deux villes peuvent avoir le même nom Propriétés des dépendances fonctionnelles (ou axiomes d'amstrong) Quand on a un ensemble de dépendances fonctionnelles on peut en déduire d autres dépendances fonctionnelles en appliquant les règles suivantes : Réflexivité: Y X X Y Augmentation : X Y XZ YZ Transitivité : X Y et Y Z X Z Union : X Y et X Z X YZ Pseudo-transitivité : X Y et WY Z WX Z Décomposition : X Y et Z Y X Z * Lorsque X prend tous les attributs il est clair que pour tout y on a X Y. * De même pour tout X on a X -> Ø * Si X= Ø alors X->Y signifie que Y est constant. Il est important de noter que la dépendance n'existe que si elle est vérifiée pour toutes les instances d une relation. * C est une propriété définie sur l'intension du schéma et non son extension (elle est donc invariante dans le temps et ne peut être extraite à partir d'exemples). C'est une propriété qui doit être extraite de la connaissance que l'on a de l'application à modéliser. Cela signifie que la dépendance est conceptuelle et non factuelle. * Par exemple : 11

12 - la clef primaire est un attribut (ou un groupe d attributs) dont dépendent fonctionnellement tous les autres attributs de la relation à laquelle appartient la clef. - Le numéro du livre déterminera tout le temps son titre et son éditeur. - Par contre il ne détermine pas l'auteur puisqu'il peut y en avoir plusieurs. 3.2 Décomposition binaire d'une relation R(X,Y,Z) ET X -> Y => R(X,Y,Z) = R[X,Y] * R[X, Z] - on peut toujours décomposer une relation suivant une dépendance fonctionnelle - on ne peut décomposer une relation s'il n'y a pas de dépendance fonctionnelle - la décomposition suivant une dépendance fonctionnelle ne perd pas d'information 3.2 Normalisation On appelle schéma relationnel la donnée d un - ensemble de relations liées à un même domaine - des dépendances fonctionnelles entre les attributs de ces relations Normaliser un schéma relationnel c'est le remplacer par un schéma équivalent où toutes les relations vérifient certaines propriétés basées sur l'analyse des dépendances fonctionnelles à l intérieur de chaque relation. Exemple : soit la relation non normalisée CommandeProduit : NumProd Quantité NumFour AdresseFour Rue Claude Bernard Cette relation présente différentes anomalies lors de sa mise à jour: - Anomalies de modification: Si on souhaite modifier l'adresse d un fournisseur, il faut le faire pour tous les tuples concernés (produits qu'il fournit). - Anomalies d insertion: Pour ajouter un nouveau fournisseur, il faut obligatoirement fournir des valeurs pour NumProd et Quantité (ajouter un nouveau produit). - Anomalies de suppression : La suppression par exemple du produit 104 fait perdre toutes les informations concernant le fournisseur 902. La normalisation permet de: - éviter les redondances (perte de place et incohérences) - minimiser l espace de stockage - éviter les problèmes de mises à jour. Un schéma relationnel est normalisé si les relations qui le composent sont toutes normalisées. 12

13 Les formes normales les plus utilisées sont au nombre de six, mais nous nous intéressons aux trois premières uniquement (formes de Boyce-Codd) Première forme normale (1FN) Une relation est en 1FN si tout attribut n est pas décomposable, ou encore si elle ne possède pas d'attribut multi-valué. Exemples: Personne (Nom, Prénom, Age) est en 1FN Département (Nom, Adresse, Tel) est en 1FN Toutefois ces relations peuvent être considérées non 1 NF si dans le domaine réel que représente ces tables : - l attribut prénom peut avoir des valeur comme sonia, miriam - l'attribut adresse est du type: rue de marseille, Tunis La relation Client (code_client, Nom, Prénom, Immat1, Immat2) est NON 1FN car : - on ne peut pas enregistrer plus de deux véhicules - si la personne ne possède qu'un seul véhicule, Immat 2 prend de la place inutilement. Pour résoudre cela on peut proposer de créer une nouvelle table pour l'attribut multi-valué: 1. On créé une nouvelle relation contenant un attribut (une valeur de l'attribut multi-valué) 2. On fait le lien entre la nouvelle relation et la première relation en ajoutant à la nouvelle relation la clé primaire de la première relation 3. Ce nouvel attribut est une clé externe Nouveau schéma en 1FN et ce en considérant deux tables : Client (code_client, Nom, Prénom) Véhicule (code_client, Immatricule) La relation Livre (code, Titre, auteurs) est non 1NF car un livre peut avoir plusieurs auteurs Deuxième forme normale (2FN) Une relation est en 2FN si: Elle est en 1FN, Tout attribut, non clef primaire, est dépendant de la clef primaire. Exemple : CLIENT (N client, nom, prénom, date de naissance, rue, ville) Cette relation est en 2FN Exemple de relation en 1FN mais pas en 2FN: 13

14 Projet (NumProjet, NumEmployé, NomEmployé) Problèmes - on ne peut enregistrer un employé que s'il participe à un projet - si un employé participe à plusieurs projets, on doit répéter les informations sur cet employé (redondance et problèmes de mise à jour) - l attribut NomEmployé dépend de NumEmployé qui n est pas la clef Une solution peut être proposée qui consiste à extraire la dépendance fonctionnelle: 1. On créé une nouvelle relation contenant l'attribut déterminé par une partie de la clé primaire 2. La clé primaire de la nouvelle relation est cette partie de la clé Employé (NumEmployé, NomEmployé) Projet (NumProjet, NumEmployé) NumEmployé est à la fois clé primaire dans Employé et clé externe dans Projet On peut aussi étudier d'autres relations comme: La relation suivante n'est pas en 2FN. COMMANDE_PRODUIT (N produit, quantité, N fournisseur, ville) Cette relation n'est pas en 2FN car: N produit,n fournisseur df Quantité N fournisseur df Ville On peut corriger on considérant: COMMANDE (N produit, N fournisseur, quantité) FOURNISSEUR (N fournisseur, Ville) Troisième forme normale (3FN) Une relation est en 3FN si: Elle est en 2FN, Il n existe aucune DF entre deux attributs non clef primaire (ou encore si tout attribut non clé ne dépend pas d'un autre attribut non clé) VOITURE (NV, Marque, Type, Puissance, Couleur) Cette relation n'est pas en 3FN car : Type Marque Type Puissance 14

15 On peut extraire la dépendance fonctionnelle en générant deux relation: VOITURE (NV, Type, Couleur) MODELE (Type, Marque, Puissance) 1. On créé nouvelle relation contenant l'attribut déterminé par l'attribut non-clé (partie droite de la DF) 2. La clé primaire de la nouvelle relation est l'attribut déterminant (partie gauche de la DF) 3. Cette clé primaire devient une clé externe dans l'ancienne relation Solution : on extrait la dépendance fonctionnelle : 1. On créé nouvelle relation contenant l'attribut déterminé par l'attribut non-clé (partie droite de la DF) 2. La clé primaire de la nouvelle relation est l'attribut déterminant (partie gauche de la DF) 3. Cette clé primaire devient une clé externe dans l'ancienne relation 4. Langages de requête relationnels Plusieurs types de langage d interrogation des bases de données relationnelles ont été proposés. Ils s appuient sur trois théories : - l algèbre relationnelle qui est à la base du langage SQL - le calcul relationnel des tuples qui a inspiré le langage QUEL du SGBD Ingres - le calcul relationnel des domaines qui est à la base du langage QBE (Query By Example) d IBM. Il a été démontré que ces langages sont équivalents car ils permettent de générer les mêmes ensembles de données résultats. Ces langages de requête sont non-procéduraux ; ils sont dits «fermés» car toute manipulation de relations par un langage relationnel génère une relation qui peut être manipulée à son tour. Quelque soit le langage de requête considéré nous avons les caractéristiques suivantes : - les opérateurs relationnels s appliquent à des relations prises dans leur globalité, c'est-à-dire à des ensembles de tuples - le résultat de chaque opérateur (requête) est une nouvelle relation qui peut servir d argument à une autre requête. - les opérateurs sont basés sur des valeurs d attribut ce qui constitue le seul moyen d accès. Nous allons nous intéresser essentiellement à l algèbre relationnelle qui a inspiré le langage SQL. 4.1 Algèbre relationnelle Le principe de l algèbre relationnelle est de donner une suite d opérateurs que l on applique à des relations de la base de données pour obtenir des relations qui répondent aux données cherchées. Le langage algébrique a été défini par CODD en 1970 et offre deux types d opérateurs : - les opérateurs «relationnels» : PROJECTION, SELECTION, JOIN, DIVISION. - les opérateurs «ensemblistes» : UNION, INTERSECTION, DIFFERENCE, PRODUIT CARTESIEN. 15

16 4.1.1 Projection La projection d une relation R sur l attribut Y peut être représentée par PROJ Y (R) ou π Y (R). Le résultat est une relation R sans doublons qui a un nombre d attributs inférieur à celui de R. Y peut être un ou plusieurs attributs. On peut représenter cet opérateur par le schéma suivant : π(r) La projection d une relation revient à un découpage vertical. Exemple : soit la relation AVION1 AV# AVNOM CAP LOC 100 AIRBUS 350 Toul 101 AIRBUS 350 Toul 104 AIRBUS 150 Paris 105 CARAV 250 Paris La projection de AVION1 sur les attributs Avnom et Cap π Avnom,Cap (Avion1) donne le découpage vertical suivant : AVNOM CAP AIRBUS 350 AIRBUS 150 CARAV 250 Remarquez l élimination du doublon (Airbus, 350) Alors que π Av# (Avion1) donne : AV# Sélection La sélection, le terme restriction est aussi utilisé est souvent représentée par le symbole σ ou le terme SELECTION Soit R une relation et c une formule (ou condition) logique construite à partir : de constantes d attributs d une relation R désignés par leurs noms ou leurs numéros, d opérateurs de comparaisons =,, <,, >, de connecteurs logiques,, La relation σ c (R) désigne l'ensemble des tuples t de R qui vérifie la condition c. 16

17 La relation σ c (R) a en général moins de tuples que R. On peut représenter cet opérateur par le schéma suivant : σ c (R) Exemple : soit la relation PILOTE4 représentant les pilotes habitants PARIS ou TOULOUSE : PILOTE4 Découpage horizontal PL# PLNOM ADR 100 Jean Paris 101 Pierre Paris 120 Paul Paris 130 Serge Toul 140 Michel Toul Si nous posons comme condition : ARD= Paris, le découpage correspondant à σ ADR= Paris (R) est ci-dessous : Le résultat correspond donc à : PL# PLNOM ADR 100 Jean Paris 101 Pierre Paris 120 Paul Paris Si on a σ ADR Paris (R) ; le résultat serait : PL# PLNOM ADR 130 Serge Toul 140 Michel Toul Jointure Soient les relations R (A, B1) et S (B2, C) avec B1 et B2 attributs définis sur un même domaine. Soit θ un élément de l ensemble {<,,, =, >, } applicable aux valeurs des attributs B1, B2. Le JOIN de R sur B1 avec S sur B2 est noté R (B1 θ B2) S ou JOIN θ-expression (R,S) ou bien R θ-expression S ou encore R θ S C est la relation dont les tuples sont ceux obtenus par concaténation des tuples de R avec ceux de S pour lesquels la relation θ entre les composantes B1 et B2 est vérifiée. Lorsque θ est l égalité, alors l opérateur porte le nom d EQUI-JOIN. Exemple : soient les tables PILOTE1 représentant les pilotes habitant Paris, et VOL1 représentant les vols de la compagnie : PILOTE1 PL# PLNOM ADR VOL1 VOL# AV# PL# 17

18 100 JEAN PARIS 101 PIERRE PARIS 120 PAUL PARIS IT IT IT IT IT IT Le JOIN (PL# = PL#) (PILOTE1, VOL1) représente l ensemble des pilotes habitant PARIS en service avec les numéros des vols et des avions correspondants PL# PLNOM ADR VOL# AV# PL# 100 JEAN PARIS IT JEAN PARIS IT JEAN PARIS IT PAUL PARIS IT PAUL PARIS IT JOIN NATUREL Il est à noter que dans le JOIN tous les attributs composant les relations apparaissent, ce qui n est pas le cas de l EQUI-JOIN, où on a deux colonnes identiques. Lorsqu on supprime l attribut de la deuxième relation on parle de JOIN naturel. La sélection est donc un cas particulier de l équi-join naturel avec une relation constante Opérateurs ensemblistes Pour l union ( ), l intersection ( ) et la différence (-), les opérateurs doivent vérifier : - les relations doivent avoir le même degré (n) - les attributs associés deux à deux doivent être du même type syntaxique (pas nécessairement le même domaine de définition) Division Soient R (B,A1) une relation binaire et S (A2) une relation unaire, où A1 et A2 sont des attributs définis sur le même domaine. La division de R par S est notée R(B, A1) S(A2) ou R A1 S ou encore tout simplement R S lorsqu il n y a pas de confusion et finalement on peut trouver R/S. La division de R par S est le sous-ensemble des éléments de R(B) dont le produit cartésien avec S est inclus dans R. La division de R par S, R(B, A1) S(A2) peut aussi être présentée comme étant l ensemble des tuples t de R(B) tels que pour chaque élément s S la concaténation de t et s soit un tuple de R. En pratique cela correspond à prendre toutes les valeurs de l attribut B qui sont associées à toutes les valeurs de A2. Exemple R S R S B A1 X 1 Y 2 X 3 z 1 C 1 3 A X 18

19 D après la première définition la division va servir à traduire le quantificateur universel. Chaque fois que l on aura «pour tout x» il suffira de mettre l attribut x dans le diviseur. Le dividende binaire doit contenir alors le même attribut (sur lequel porte la division) et l attribut du résultat recherché. L exemple précédent répond à la question : quels sont les A qui sont associés à tous les C UNION L union de deux relations R et S, qui ont des domaines compatibles, est notée R S ; c est l ensemble des tuples qui appartiennent, soit à R, soit à S, soit à la fois à R et à S. L union peut être schématisée comme suit : Exemple : Soient deux relations PILOTE1 et PILOTE2 avec les occurrences suivantes (en terminologie BDR on parle souvent d occurrence pour désigner des lignes d une table) : PILOTE1 PILOTE2 PL# ADR PL# VD 100 PARIS 101 PARIS 120 PARIS 110 PARIS 130 TOUL 140 TOUL 150 TOUL 100 TOUL 120 TOUL 130 PARIS 101 PARIS 140 PARIS 110 PARIS La table PILOTE1 PILOTE2 est : PILOTE1 PILOTE2 PL# VILLE 100 PARIS 101 PARIS 120 PARIS 110 PARIS 130 TOUL 140 TOUL 150 TOUL 100 TOUL 120 TOUL 130 PARIS 101 PARIS 140 PARIS Les duplications sont éliminées car l UNION traduit le OU logique. 19

20 b) INTERSECTION L intersection de deux relations R et S, qui ont des domaines compatibles, est notée R S; c est l ensemble des tuples qui appartiennent à la fois à R et à S. L intersection peut être schématisée comme suit : Exemple : En se basant sur les deux relations PILOTE1 et PILOTE2 précédentes on a PILOTE1 PILOTE2 : PL# VILLE 101 PARIS 110 PARIS L intersection permet de traduire le ET logique. c) DIFFERENCE La différence de deux relations R et S, qui ont des domaines compatibles, est notée R - S; c est l ensemble des tuples qui appartiennent à R sans appartenir à S. C est l opérateur complémentaire de l intersection. La différence peut être schématisée comme suit : Exemple : En se basant sur les deux relations PILOTE1 et PILOTE2 précédentes on a PILOTE1- PILOTE2 : PL# VILLE 100 PARIS 120 PARIS PILOTE1- PILOTE2 représente l ensemble des pilotes habitant PARIS et n assurant pas de vol au départ de PARIS ou TOULOUSE. La différence permet de traduire la négation logique et donc la suppression de tuples dans une relation. d) PRODUIT CARTESIEN Le produit cartésien de deux relations R et S notée R * S est l ensemble de tous les tuples obtenus par concaténation de tuples de R et de tuples de S. C est un ensemble de paires ordonnées : Exemple : Soient les deux relations PILOTE3 et AVION suivante : 20

21 PILOTE3 PL# ADR 103 NICE 106 NICE AVION AVNOM CAP AIRBUS 350 CARAV 250 La relation PILOTE3 * AVION est : PL# ADR AVNOM CAP 103 NICE AIRBUS NICE CARAV NICE AIRBUS NICE CARAV

22 Chapitre 3 Créer et manipuler rapidement une table 1 Création d'une table La syntaxe élémentaire SQL de création d'une table Oracle est: CREATE TABLE nom_de table (définition de colonne1,, définition de colonne n) * Un nom de table doit être unique dans votre environnement de travail et ne doit pas être un mot clé SQL. * Un nom de table doit commencer par une lettre de l alphabet * Un nom de table peut comporter des chiffres et certains symboles comme $ ou _ ou #. * Il n y a pas de différence entre les majuscules et les miniscules pour les noms des objets Oracle ainsi que pour les instructions. * Une table doit contenir au minimum une colonne. Le nombre maximum de colonnes dépend de la version du logiciel. 1.1 Définition de colonne La définition élémentaire d'une colonne consiste à lui attribuer un nom et un type. * Le nom d une colonne obéit aux contraintes du nom d une table citées précédemment (unique dans votre environnement, pas de différence entre les majuscules ). * Les types de données les plus utilisés dans Oracle sont: CHAR (n) VARCHAR2 (n), VARCHAR (n) NUMBER (p, s) LONG Chaîne de caractères de taille fixe n. La zone peut être complétée par des blancs si nécessaire. Le maximum de la valeur de n varie en fonction de la version d'oracle. A partir de la version 8i, il est de 2000 octets. Chaîne de caractères ayant une longueur variable, avec un maximum de n caractères. Maximum de size est 4000, et le minimum est 1. p: nombre total de chiffres s : nombre de chiffres après la virgule (scale). Ce type permet de stocker des entiers positifs ou négatifs, des réels à virgule fixe ou flottante. La plage des valeurs varie entre ± 1* à ± 9.99* Données de type caractère de taille variable allant jusqu'à 2 gigabytes (ou GO). 22

23 DATE RAW (size) LONG RAW ROWID Donnée de type date. Données de type binaire ayant une longueur fixe de size bytes (ou octets) allant jusqu'à 2000 bytes. Données de type binaire ayant une longueur variable de size bytes (octets) allant jusqu'à 2 gigabytes. Chaîne Hexadécimale représentant l'adresse unique d'une ligne de la table. Sa valeur est retournée par la pseudo-colonne de même nom Consulter les types de données d Oracle en annexe1. Exemple : Soit la table Departement ayant la structure suivante : Numéro du département Nom du département Localité du département L instruction SQL permettant de créer une telle table peut être : CREATE TABLE Departement (Dnum NUMBER(3), Dname VARCHAR2(15), DLoc VARCHAR2(25) ); Exercice 1 Ecrivez l'instruction nécessaire pour créer la table des fournisseurs nommée F. F F# Fnom Statut Ville F1 smith 20 Londre F2 Jones 10 Paris F3 Blake 30 Paris F4 Clark 20 Londre F5 Adams 30 Athens Table F des fournisseurs Nous allons regarder avec plus de détails le type NUMBER (p,s). Soit le nombre ; pour chaque expression de NUMBER nous donnons le résultat généré: NUMBER NUMBER(9) NUMBER(9,2) NUMBER(9,1) NUMBER(6) exceeds precision NUMBER(7,-2) NUMBER(7,2) exceeds precision 23

24 Nous avons une erreur car on a une précision (p) inférieure à la taille du nombre (cas du 6 ou 7,2). Si le s est négatif alors le chiffre est arrondi à autant de zéros que la valeur de s. Si le s est supérieur à p, même si ce n est pas normal, il indique le nombre après la virgule en l arrondissant parfois comme le montre l exemple suivant : Exercice 2 La donnée Le format La donnée enregistrée NUMBER(4,5) NUMBER(4,5) NUMBER(4,5) NUMBER(2,7) NUMBER(2,7) Le tableau suivant indique pour chaque nombre un format qui va lui être associé, nous vous demandons d'indiquer la valeur du résultat: la valeur donnée le format NUMBER(4,5) NUMBER(4,5) NUMBER(4,5) NUMBER(2,7) NUMBER(2,7) La valeur NULL Pour spécifier que la valeur d'un champ est indéterminé Oracle utilise la clause NULL lors de la définition d'une colonne. Dans le cas de la table Departement, et pour indiquer que l'attribut Dloc est généralement indéterminé on peut écrire: CREATE TABLE Departement (Dnum NUMBER(3), Dname VARCHAR2(15), DLoc VARCHAR2(25) NULL); 2 Insertion des données dans une table 2.1 Insertion de données externes Une fois la table crée il s'agit d'y insérer des occurrences et ce en utilisant l'instruction INSERT. Une forme élémentaire de l instruction INSERT est : INSERT INTO nom_de table (col 1,, col n) VALUES ( val 1,..., val n) ; Supposons que nous disposons de la table des fournisseurs F ayant la structure suivante: F (f# char(3), fnom varchar2(20), statut number, ville varchar2(20) ) Si nous désirons insérer l'occurrence relative au fournisseur f1 de nom smith ayant comme statut 20 et habitant Londre la requête SQL sera: 24

25 INSERT INTO F (f#,fnom,statut, Ville) VALUES ('f1', 'smith', 20,'Londre' ); Remarques 1) Une chaîne de caractère est insérée entre cote simple comme par exemple ' Londre' 2) La présentation des valeurs à insérer doit respecter l ordre de présentation des colonnes dans la table. 3) Si on site tous les noms des colonnes il faut juste suivre l ordre de présentation des colonnes dans la requête. La requête précédente donne le même résultat que celle qui suit: INSERT INTO F (f#, Ville,Fnom,Statut) VALUES ('f1','londre', 'smith', 20 ); 4) La syntaxe de l'instruction INSERT peut être simplifiée dans le cas où on a autant de valeur que de colonnes et en respectant l'ordre de présentation des colonnes et des valeurs. En effet les deux requêtes précédentes donnent le même résultat que celle qui suit: INSERT INTO F VALUES ('f1', 'smith', 20, 'Londre' ); Cette forme est possible car la structure de la table est composée de 4 colonnes et on a exactement une valeur pour chaque colonne. Ces valeurs sont en plus présentées dans l'ordre de création des colonnes. 5) Si l'ordre de présentation des valeurs n'est pas le même que celui de la définition ou si on a moins de valeurs que le nombre total des colonnes il faut revenir à la première syntaxe en mentionnant les colonnes concernées. Si par exemple pour le fournisseur f1 je n'ai que la ville la requête serait: INSERT INTO F (f#,ville) VALUES ('f1','londre' ); Exercice 3 : Soit la table fournisseur déjà présentée, donnez une instruction SQL qui nous permet d y insérer l'occurrence f6 dont la ville est Paris et le nom est Jean. Exercice 4 : Soient les tables de données suivantes: Fournisseur (F), Pièce (P), projet (J) et FPJ indiquant la quantité fournie par un fournisseur, pour un projet relativement à une pièce. 1) Ecrivez l'instruction nécessaire pour créer la table F. 2) Ecrivez l'instruction nécessaire pour créer la table P. 3) Ecrivez l'instruction nécessaire pour créer la table J. 4) Ecrivez l'instruction nécessaire pour créer la table FPJ. 5) Pour chaque table écrire l'instruction d'insertion de la première occurrence. F F# Fnom Statut Ville f1 smith 20 Londre f2 Jones 10 Paris f3 Blake 30 Paris f4 Clark 20 Londre f5 Adams 30 Athens FPJ F# P# J# Qty f1 p1 j1 200 f1 p1 j4 700 f2 p3 j1 400 f2 p3 j2 200 f2 p3 j

26 P P# Pnom Couleur Poids Ville p1 Nut Rouge 12 Londre p2 Boltes Vert 17 Paris p3 Screw Bleue 17 Rome p4 Screw Rouge 14 Londre p5 Cam Bleue 12 Paris p6 Cog Rouge 19 Londre J J# Jnom Ville j1 Sorter Paris j2 Punch Rome j3 Reader Athens j4 Cpnsole Athens j5 Collator Londre j6 Terminal Oslo j7 Tape Londre f2 p3 j4 500 f2 p3 j5 600 f2 p3 j6 400 f2 p3 j7 800 f2 p5 j2 100 f3 p3 j1 200 f3 p4 j2 500 f4 p6 j3 300 f4 p6 j7 300 f5 p2 j2 200 f5 p2 j4 100 f5 p5 j5 500 f5 p5 j7 100 f5 p6 j2 200 f5 p1 j4 100 f5 p3 j4 200 f5 p4 j4 800 f5 p5 j4 400 f5 p6 j Consultation simple La syntaxe élémentaire de consultation d'une table Oracle est: SELECT nom_colonne_1,, nom_colonne_j FROM nom_de table; Si on désire consulter la table F qui a cette structure F (F#, Fnom, Statut, Ville) on écrira: SELECT F#,Fnom,Statut,Ville FROM F; Le résultat sera: F# Fnom statut Ville f1 Smith 20 Londre f2 Jones 10 Paris f3 Blacke 30 Paris f4 Clark 20 Londre f5 Adams 30 Athene Lorsqu'on désire consulter tous les attributs d'une table on peut écrire: SELECT * FROM nom_de table; 26

27 Chapitre 4 Consultation de tables 1 Consultation simple On rappelle que la syntaxe élémentaire de consultation d'une table Oracle est: SELECT nom_colonne_1,, nom_colonne_j FROM nom_de table; Ainsi si on désire consulter la table F qui a cette structure F (F#,Fnom,Statut,Ville) on écrira: SELECT F#,Fnom,Statut,Ville FROM F; Lorsqu'on désire consulter tous les attributs d'une table il suffit d écrire: SELECT * FROM nom_de table; Il est aussi possible de demander que le résultat soit affiché en étant triés par une ou plusieurs colonnes en utilisant la clause ORDER BY. La syntaxe du select devient: SELECT nom_colonne_1,, nom_colonne_j FROM nom_de_table [ORDER BY {expression/position} [ASC/DESC]...] [ NULLS FIRST ] [ NULLS LAST ]; C est l ordre ascendant (ASC) qui est pris par défaut. On peut spécifier l'ordre de tri (ascendant ou descendant) relativement à une expression (généralement des colonnes). La mention de position qui suit le ORDER BY indique qu on peut utiliser la position d une colonne dans la clause select à la place de son nom. Exemple : Soit la table F des fournisseurs : F# Fnom statut Ville f1 Smith 20 Londre f2 Jones 10 Paris f3 Blacke 30 Paris f4 Clark 20 Londre f5 Adams 30 Athene f6 Adams 30 Berlin Si on désire avoir pour chaque fournisseur son nom, son statut et sa ville et que le résultat soit ordonné selon la ville on peut écrire : SELECT Fnom,Statut,Ville FROM F ORDER BY 3; 27

28 Le résultat sera ordonné en fonction du statut: Fnom statut Ville Jones 10 Paris Smith 20 Londre Clark 20 Londre Blacke 30 Paris Adams 30 Athene Adams 30 Berlin NULL FIRST ou LAST pour positionner les valeurs nulls. NULL LAST est par défaut avec l option ASC,NULL FIRST est par défaut avec l option DESC. Lorsque le résultat d un select comprend des redondances comme l exemple suivant : SELECT Fnom,Statut FROM F; Fnom statut Jones 10 Smith 20 Clark 20 Blacke 30 Adams 30 Adams 30 il est possible de les supprimer par la clause DISTINCT : SELECT [{DISTINCT / UNIQUE} / ALL ] liste de colonnes FROM nom_de_table ; DISTINCT / UNIQUE jouent le même rôle à savoir ne pas prendre en compte les redondances. La requête suivante peut donner : SELECT DISTINCT Fnom,Statut FROM F; Fnom statut Jones 10 Smith 20 Clark 20 Blacke 30 Adams 30 ALL est l option par défaut qui prend en compte les redondances. On peut utiliser des parenthèses pour éliminer des duplicata par paires, triplets 2 Consultation avec qualification 28

29 Si on désire consulter uniquement quelques lignes d'une table relativement à une ou plusieurs conditions la syntaxe peut être enrichie et devient: SELECT nom_colonne_1,, nom_colonne_j FROM nom_de_table [WHERE condition]; Exemple : Soit la table F des fournisseurs : F# Fnom statut Ville f1 Smith 20 Londre f2 Jones 10 Paris f3 Blacke 30 Paris f4 Clark 20 Londre f5 Adams 30 Athene Pour consulter uniquement les fournisseurs de Londre on peut écrire: SELECT F#,Fnom,Statut FROM F WHERE ville = 'Londre'; Le résultat sera: F# Fnom Statut f1 Smith 20 f4 Clark 20 Remarques: 1) Si on a écrit 'LONDRE' on n'aurait aucune réponse, car dans la phase de comparaison entre chaîne de caractère, SQL tient compte des majuscules et minuscules. Ainsi 'LONDRE' est différente de 'LONDRe'. Il est souvent recommandé lors de la comparaison de chaîne de caractères d utiliser une des deux fonctions : LOWER (chaîne) : retourne la chaîne de caractère avec toutes les lettres en minuscule. UPPER (chaîne) : retourne la chaîne de caractère avec toutes les lettres en majuscule. La requête précédente pourra être écrite : SELECT F#,Fnom,Statut FROM F WHERE UPPER ( ville ) = 'LONDRE'; 2) Plusieurs conditions peuvent être combinées à l'aide des opérateurs logiques AND et OR. Le NOT peut être utilisé pour indiquer la négation. Exercice 1 Ecrire la requête SQL qui permet de donner la partie suivante à partir de la table F déjà présentée: f3 Blake 30 Paris f2 Jones 10 Paris 29

30 L instruction SELECT peut aussi être associé à l'instruction CREATE pour créer une table et y insérer des données à partir d'une autre table existante. La syntaxe est: CREATE TABLE nom_table ( nom_colonne_1,, nom_colonne_j) AS ( une instruction SELECT ); 2.1 Consultation avec critères On peut répartir la consultation d'une table selon des critères en trois groupes: 1) Consultation avec condition de comparaison 2) Consultation avec condition de jointure 3) Consultation avec condition en sous-requête Consultation avec conditions de comparaison Nous pouvons citer différentes formes de spécification de condition de comparaison: Les opérateurs de comparaison expression [NOT] opérateur-relationnel expression Oracle offre les opérateurs relationnels suivants: =;!= ou <>; >; <=; >=; <; Exemple : Si on désire avoir les numéros des pièces ayant un poids supérieur à 14 il suffit d'écrire la requête suivante: SELECT p# FROM P WHERE poids > 14; La comparaison concerne aussi bien les valeurs numériques que les chaines de caractères et les dates Le prédicat BETWEEN expression [NOT] BETWEEN expression AND expression Le terme expression peut désigner un nom de colonne, une constante (numérique ou caractère), une pseudo-colonne, une valeur nulle ou une combinaison de ces éléments par des opérateurs arithmétiques (+, -, *, /). Between teste l appartenance à un intervalle fermé de valeurs. Exemple: Soit la table des pièces suivantes P P# Pnom Couleur Poids Ville p1 Nut Rouge 12 Londre p2 Boltes Vert 17 Paris p3 Screw Bleue 17 Rome p4 Screw Rouge 14 Londre p5 Cam Bleue 12 Paris p6 Cog Rouge 19 Londre Si on désire avoir les numéros des pièces ayant un poids entre 14 et 17 il suffit d'écrire : 30

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

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

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

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

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

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

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

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

Bases de Données Relationnelles. Le Modèle Relationnel Bases de Données Relationnelles Le Modèle Relationnel Le modèle relationnel modèle de niveau logique modèle simple : deux concepts relation (table) attribut (colonne) défini par Ted Codd en 1970 ; prix

Plus en détail

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

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

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

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

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

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

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

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

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 avancées Introduction

Bases de données avancées Introduction Bases de données avancées Introduction Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan Objectifs et contenu du cours Rappels BD relationnelles Bibliographie Cours BDA (UCP/M1)

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

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

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

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

Introduction aux Bases de Données

Introduction aux Bases de Données Licence 3 Géographie Aménagement NHUC5548 Introduction aux Bases de Données Le cas des BD relationnelles Concepts, méthodes et applications JP ANTONI / Y FLETY 1 Logistique et autres fonctionnements Cours

Plus en détail

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

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements Introduction aux bases de données Université de Nice Sophia-Antipolis Version 2.1-5/12/2000 Richard Grin Généralités sur les bases de données R. Grin SGBD 2 Définitions Une base de données est un ensemble

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

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

INTRODUCTION : Données structurées et accès simplifié INTRODUCTION : Données structurées et accès simplifié À l'origine de l'informatique, le stockage d'information se faisait sur cartes perforées. Ces supports pauvres ne permettaient pas de définir la structuration

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

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

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Initiation aux bases de données (SGBD) Walter RUDAMETKIN Initiation aux bases de données (SGBD) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Moi Je suis étranger J'ai un accent Je me trompe beaucoup en français (et en info, et en math, et...)

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

Patrice BOURSIER. Professeur, Univ. de La Rochelle. patrice.boursier@univ-lr.fr. Bases de Données. Notes de cours

Patrice BOURSIER. Professeur, Univ. de La Rochelle. patrice.boursier@univ-lr.fr. Bases de Données. Notes de cours Patrice BOURSIER Professeur, Univ. de La Rochelle patrice.boursier@univ-lr.fr Bases de Données Notes de cours SOMMAIRE Chapitre 1 : Introduction Chapitre 2 : Modèle conceptuel Chapitre 3 : Modèle relationnel

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

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

CONCEPTION Support de cours n 3 DE BASES DE DONNEES CONCEPTION Support de cours n 3 DE BASES DE DONNEES Auteur: Raymonde RICHARD PRCE UBO PARTIE III. - LA DESCRIPTION LOGIQUE ET PHYSIQUE DES DONNEES... 2 A. Les concepts du modèle relationnel de données...

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

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

Chapitre 10. Architectures des systèmes de gestion de bases de données

Chapitre 10. Architectures des systèmes de gestion de bases de données Chapitre 10 Architectures des systèmes de gestion de bases de données Introduction Les technologies des dernières années ont amené la notion d environnement distribué (dispersions des données). Pour reliér

Plus en détail

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

Plus en détail

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

SOMMAIRE. Travailler avec les requêtes... 3 Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de

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

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

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

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

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

Modélisation de bases de données : Le modèle relationnel Modélisation de bases de données : Le modèle relationnel Rappel chapitre 1 C est quoi un modèle? Type de modèle : Modèle hiérarchique Modèle réseau Modèle objet Modèle relationnel Cours BD Dr REZEG K 1

Plus en détail

Dossier I Découverte de Base d Open Office

Dossier I Découverte de Base d Open Office ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire

Plus en détail

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

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données

Plus en détail

Bases de données - Modèle relationnel

Bases de données - Modèle relationnel Bases de données - Modèle relationnel Introduction SITE :http://www.univ-orleans.fr/lifo/members/mirian.halfeld/ BD - Mírian Halfeld-Ferrari p. 1 Les bases de données - Bibliographie Ullman and Widom,

Plus en détail

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude INF 1250 INTRODUCTION AUX BASES DE DONNÉES Guide d étude Sous la direction de Olga Mariño Télé-université Montréal (Québec) 2011 INF 1250 Introduction aux bases de données 2 INTRODUCTION Le Guide d étude

Plus en détail

CHAPITRE 1. Introduction aux bases de données

CHAPITRE 1. Introduction aux bases de données CHAPITRE 1 Contenu du chapitre 1 Pourquoi utiliser une bases de? Définitions et objectifs d'un SGBD Niveaux d'abstraction des Méthodes de modélisation d une BD Modèles de structuration des Structure globale

Plus en détail

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

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles Cours SGBD 1 Concepts et langages des Bases de Données Relationnelles SUPPORT DE COURS IUT de Nice Département INFORMATIQUE IUT de Nice - Cours SGBD1 1 Plan Chapitre 1 Chapitre 2 Chapitre 3 Chapitre 4

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

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

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

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

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

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

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

Systèmes d information et bases de données (niveau 1) Systèmes d information et bases de données (niveau 1) Cours N 1 Violaine Prince Plan du cours 1. Bibliographie 2. Introduction aux bases de données 3. Les modèles 1. Hiérarchique 2. Réseau 3. Relationnel

Plus en détail

et les Systèmes Multidimensionnels

et les Systèmes Multidimensionnels Le Data Warehouse et les Systèmes Multidimensionnels 1 1. Définition d un Datawarehouse (DW) Le Datawarehouse est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées

Plus en détail

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

Chapitre 1 Généralités sur les bases de données Chapitre 1 Généralités sur les bases de données I. Définition d un SGBD Une base de données, généralement appelée BD est un ensemble structuré et organisé permettant le stockage de grandes quantités d'informations

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

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

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

Introduction aux Systèmes de Gestion de Bases de Données Relationnelles. Olivier Losson Introduction aux Systèmes de Gestion de Olivier Losson L'objectif de ce cours est l'acquisition des connaissances fondamentales relatives aux systèmes de gestion de bases de données relationnelles (SGBDr),

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

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

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du Proyecto FAO COPEMED Universidad de Alicante Ramón y Cajal, 4 03001 - Alicante, España GCP/REM/057/SPA Web : www.fao.org/fi/copemed Tel : +34 96 514 59 79 Fax : +34 96 514 59 78 Email : copemed@ua.es Formation

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

DESS CCI Formation Continue. Février 2002. Université Louis-Pasteur de Strasbourg Département d'informatique

DESS CCI Formation Continue. Février 2002. Université Louis-Pasteur de Strasbourg Département d'informatique DESS CCI Formation Continue Février 2002 Université Louis-Pasteur de Strasbourg Département d'informatique %DVHVGH'RQQpHV 6\OYDLQ%5$1'(/ Pôle API, Boulevard Sébastien Brant 67 400 ILLKIRCH bureau C 126

Plus en détail

Année Universitaire 2009/2010 Session 2 de Printemps

Année Universitaire 2009/2010 Session 2 de Printemps Année Universitaire 2009/2010 Session 2 de Printemps DISVE Licence PARCOURS : CSB4 & CSB6 UE : INF 159, Bases de données Épreuve : INF 159 EX Date : Mardi 22 juin 2010 Heure : 8 heures 30 Durée : 1 heure

Plus en détail

AGRÉGATION «ÉCONOMIE ET GESTION»

AGRÉGATION «ÉCONOMIE ET GESTION» AGRÉGATION «ÉCONOMIE ET GESTION» CONCOURS INTERNE SESSION 2002 ÉPREUVE SUR LES TECHNIQUES DE GESTION ET COMPORTANT DES ASPECTS PÉDAGOGIQUES DOMAINE : économie et gestion informatique Durée de préparation

Plus en détail

Base de Données et Langage SQL

Base de Données et Langage SQL Base de Données et Langage SQL (IUT, département informatique, 1 re année) Laurent AUDIBERT Institut Universitaire de Technologie de Villetaneuse Département Informatique Avenue Jean-Baptiste Clément 93430

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

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES BASE DE DONNEES La plupart des entreprises possèdent des bases de données informatiques contenant des informations essentielles à leur fonctionnement. Ces informations concernent ses clients, ses produits,

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

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE 2 ème partie : REQUÊTES Sommaire 1. Les REQUÊTES...2 1.1 Créer une requête simple...2 1.1.1 Requête de création de listage ouvrages...2 1.1.2 Procédure de

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

LE MODELE CONCEPTUEL DE DONNEES

LE MODELE CONCEPTUEL DE DONNEES LE MODELE CONCEPTUEL DE DONNEES Principe : A partir d'un cahier des charges, concevoir de manière visuelle les différents liens qui existent entre les différentes données. Les différentes étapes de réalisation.

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

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

COURS de BASES de DONNEES

COURS de BASES de DONNEES COURS de BASES de DONNEES Céline Robardet INSA-Lyon Point de départ Une base de données est une collection de données ayant une origine commune Un Système de Gestion de Base de Données (SGBD) est un logiciel

Plus en détail

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

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Bases de Données Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Synthèse : conception de BD langage de modélisation famille de SGBD SGBD Analyse du

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

Du 10 Fév. au 14 Mars 2014

Du 10 Fév. au 14 Mars 2014 Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN

Plus en détail

1. Introduction...2. 2. Création d'une requête...2

1. Introduction...2. 2. Création d'une requête...2 1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

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

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

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

Chapitre 07 Le modèle relationnel des données

Chapitre 07 Le modèle relationnel des données Chapitre 07 Le modèle relationnel des données Introduction Ce chapitre est un prolongement de l'étude du modèle relationnel vu en classe de première. L'idée principale est de faire comprendre aux élèves

Plus en détail

Bases de données. Chapitre 1. Introduction

Bases de données. Chapitre 1. Introduction Références : Bases de données Pierre Wolper Email : pw@montefiore.ulg.ac.be URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,

Plus en détail

OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication

OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication Statut du Committee Working Draft document Titre XACML Language Proposal, version 0.8 (XACML : XML Access Control Markup Language) Langage de balisage du contrôle d'accès Mot clé Attestation et sécurité

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

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

Bases de données réparties: Fragmentation et allocation Pourquoi une base de données distribuée? Bibliographie Patrick Valduriez, S. Ceri, Guiseppe Delagatti Bases de données réparties: Fragmentation et allocation 1 - Introduction inventés à la fin des années

Plus en détail

Entrepôt de données 1. Introduction

Entrepôt de données 1. Introduction Entrepôt de données 1 (data warehouse) Introduction 1 Présentation Le concept d entrepôt de données a été formalisé pour la première fois en 1990 par Bill Inmon. Il s agissait de constituer une base de

Plus en détail

Utiliser Access ou Excel pour gérer vos données

Utiliser Access ou Excel pour gérer vos données Page 1 of 5 Microsoft Office Access Utiliser Access ou Excel pour gérer vos données S'applique à : Microsoft Office Access 2007 Masquer tout Les programmes de feuilles de calcul automatisées, tels que

Plus en détail

EXCEL TUTORIEL 2012/2013

EXCEL TUTORIEL 2012/2013 EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi

Plus en détail

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

Introduction aux 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 ESIL Université de la méditerranée Odile.Papini@esil.univmed.fr http://odile.papini.perso.esil.univmed.fr/sources/bdmat.html Plan du cours 1 1 Qu est ce qu

Plus en détail