Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

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

Download "Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)"

Transcription

1 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 de spécifier les règles que doit respecter une base de données. 3. Des opérations pour manipuler les données, en interrogation et en mise à jour. Les deux premières composantes relèvent du Langage de Définition de Données (DDL) dans un SGBD. Le DDL est utilisé pour décrire le schéma d une base de données. La troisième composante (opérations) est la base du Langage de Manipulation de Données (DML) dont le représentant le plus célèbre est SQL. Ce chapitre présente le modèle relationnel et essentiellement la partie du modèle relative à la définition et à la création du schéma de données. 1 Définitions Le modèle relationnel se caractérise par sa simplicité (se basant sur une seule structure : «la relation»). En effet, les objets et associations du monde réel sont représentés par un concept unique: la relation. Les relations sont des tableaux à deux dimensions, souvent appelés tables. Exemples Etudiant N Etud Nom Prénom Age 136 Rochat Jean Aubry Annie Duval André Rochat Marc 21 Cours Nom C Horaire Prof Algo Lundi Duval Système Mardi Malin Suit N Etud NomC 253 Algo 136 Système 253 Système Cet exemple représente une relation (ou table) décrivant les étudiants. Etudiant est le nom de la relation. Les entêtes des colonnes, N Etud, Nom, Prénom et Age, sont les attributs de la relation. Chaque ligne de la table correspond à une occurrence. Par exemple <253, Aubry, Annie, 20> constitue un n-uplet ou tuple, qui décrit une occurrence, à savoir l'étudiante Annie Aubry. 1

2 Le modèle relationnel interdit d'avoir des doubles: deux tuples d'une même relation ne peuvent pas être identiques. Enfin, il est usuel de souligner l'attribut, ou les attributs, qui constituent l'identifiant de la relation; pour la relation Etudiant c'est l'attribut N Etudiant. On remarque que l'identifiant de la relation "Suit" (qui traduit un type d'association) est composé des identifiants des deux relations précédentes. Cette relation Suit exprime le lien entre un étudiant, désigné par son numéro, et un cours, désigné par son nom. Si on avait utilisé le modèle entité association, les relations Etudiant et Cours auraient été modélisées par des types d'entité, Etudiant et Cours, alors que la relation Suit aurait été modélisée par un type d'association reliant ces types d'entité. 1.1 Notion de domaine Un domaine est un ensemble de valeurs que peut prendre un attribut; c'est le domaine définition d'un ou plusieurs attributs. Exemple de domaines: Dnom : chaînes de caractères de longueur maximale 30 Dnum : entiers compris entre 0 et Dcouleur : {"bleu", "vert", "jaune"} Dâge : entiers compris entre 16 et 65 Les SGBDs usuels offrent des domaines prédéfinis standard, comme INTEGER, CHAR, VARCHAR, DATE 1.2 Attributs Les attributs nomment les colonnes d une relation. Il servent à la fois à indiquer le contenu de cette colonne, et à la référencer quand on effectue des opérations. Un attribut est toujours associé à un domaine. Le nom d un attribut peut apparaître dans plusieurs schémas de relations. 1.3 Schéma de Relation Une relation est définie par : - son nom - liste de couples décrivant ses attributs (nom d'attribut : domaine) - son (ses) identifiant(s) - sa définition (phrase en français) Les trois premières informations: nom de la relation, liste des couples (attribut : domaine) et identifiant(s) constituent le schéma de la relation. Exemple : schéma de la relation Etudiant : Etudiant (N Etud : Dnum, Nom : Dnom, Prénom : Dnom, Age : Dâge) 1.4 Instance d une relation (Population) La population d'une relation est constituée de l'ensemble des tuples de la relation. C'est un ensemble au sens mathématique du terme: il n'y a donc ni doubles, ni ordre (les nouveaux tuples sont rajoutés à la fin de la relation). On appelle schéma d'une base de données relationnelle l'ensemble des schémas de ses relations. On appelle base de données relationnelle, l'ensemble des populations de toutes ses relations. 1.5 Identifiant d une relation (Clé) L'identifiant (aussi appelé clé) d'une relation est un ensemble minimum d'attributs de la relation, tel qu'il n'existe pas deux tuples ayant même valeur pour cet identifiant. Un identifiant peut-être composé d'un ou plusieurs attributs. Une relation peut avoir un ou plusieurs identifiants. Une relation étant un ensemble de tuples sans double, elle a toujours un identifiant qui, dans le cas le 2

3 plus défavorable, est composé de tous les attributs de la relation. Par convention, l'attribut (ou les attributs) constituant l' (ou un des) identifiant(s) est souligné. Exemples Etudiant (N Etud, nom, prénom, age): Il n'y a pas deux étudiants qui ont le même numéro. La relation ci-dessus, EtudPrénoms2, possède deux identifiants qui sont (N Etud+N Prénom) et (N Etud+Prénom). On ne peut pas avoir de valeur inconnue (notée "?") pour un attribut qui fait partie d'un identifiant. Par exemple pour la relation Etudiant, on renseigne obligatoirement le numéro d'étudiant. Si l'on pouvait entrer dans la relation deux tuples sans N Etud, alors il existerait deux étudiants avec la même valeur pour l'identifiant (valeur inconnue), ce qui est impossible d'après la définition de l'identifiant. On a donc la règle suivante: Règle: Tous les attributs de tout identifiant doivent toujours avoir une valeur connue. Exemple Insérer dans Etudiant: <?, Rochat, Jean, 19> est une instruction que le SGBD va refuser. SQL offre deux concepts pour traduire la notion d'identifiant: la clé primaire (appelée "primary key") et les clés candidates (déclarée par la clause "unique"), qui se différencient lors de la déclaration des clés externes (voir le paragraphe suivant). Si la relation n'a qu'un seul identifiant, ce sera en SQL la clé primaire de la table. Si la relation a plusieurs identifiants, il faut choisir pour clé primaire "le meilleur": celui dont on est sûr que sa valeur ne sera jamais nulle ni modifiée. Les autres identifiants seront déclarés avec la clause UNIQUE. 1.6 Identifiant Externe Certains attributs référencent des tuples d'une autre relation (ou parfois de la même); c'est-à-dire que leur valeur est toujours égale à celle de l'identifiant d'un tuple existant dans l'autre relation. On les appelle identifiants externes (ou clés externes ou clés étrangères). Par exemple, la relation Suit (NomC, N Etud) possède un identifiant (NomC+N Etud), et deux identifiants externes : NomC et N Etud. En effet, NomC "référence" un Cours, c'est à dire que si une valeur NomC existe dans Suit, alors il doit nécessairement exister un cours de ce nom là dans la relation Cours. De même, N Etud "référence" un Etudiant. Le schéma d'une relation comprend donc, en plus de la définition du nom de la relation et de ses attributs et domaines associés, la définition de son (ses) identifiant, et celle de ses identifiants externes, s'il en existe. Les identifiants externes sont déclarés de la façon suivante: Suit (N Etud : Dnum, NomC : Dnom) Identifiants externes: N Etud référence un Etudiant NomC référence un Cours Dans le cas où la relation référencée possède plusieurs identifiants la clause précise alors lequel, comme ci-dessous: N Etud référence un Etudiant N Etud Définition : Soient deux relations R1(X, Y) et R2 (V, W), où X, Y, V, W, désignent des attributs ou des ensembles d'attributs, et où X est un identifiant de R1, on dit que W est un identifiant externe sur R1 (ou que W référence R1) si pour tout tuple de R2, la valeur prise par W est nécessairement la 3

4 valeur de X pour un tuple existant de R1. Autrement dit, à tout instant, l'ensemble des valeurs prises par W est compris dans l'ensemble des valeurs prises par X. Une fois déclaré l'identifiant externe W de R2 sur R1, le SGBD vérifie automatiquement : toutes les insertions de tuples dans R2: il vérifie que la valeur de W existe dans R1. Si ce n'est pas le cas l'insertion dans R2 est refusée; toutes les modifications de W: il vérifie que la nouvelle valeur de W existe dans R1. Si ce n'est pas le cas la modification est refusée; toutes les suppressions de tuples de R1: il vérifie qu'il n'existe pas de tuple dans R2 référençant ce tuple de R1 à supprimer. S'il en existe, selon le SGBD soit la suppression est refusée, soit la suppression est propagée: les tuples de R2 qui référençaient cette valeur de X sont eux aussi supprimés. Le SGBD assure ainsi, l'intégrité de référence (ou intégrité référentielle) de la base de données. En SQL, la clause pour déclarer une clé externe sur la clé primaire d'une table est: REFERENCES nom-table; celle pour déclarer une clé externe sur une clé candidate d'une table est: REFERENCES nom-table (nom-attribut-clé-candidate). 2 Règles de modélisation 2.1 Régles Générales Les attributs sont tous simples et monovalués: toute valeur prise par un attribut pour un tuple est atomique (non décomposable par le SGBD) et unique. Les notions d'attribut multivalué ou complexe n'existent pas dans le modèle relationnel. Cas d'un attribut facultatif du modèle entité association Certains SGBDs relationnels gèrent une valeur spéciale, appelée valeur nulle et notée "?". Cette valeur peut être prise par tout attribut (sauf si dans le schéma on a spécifié le contraire); elle signifie alors que le tuple n'a pas de valeur pour cet attribut. Par exemple, un étudiant, Marc Dumont, de numéro 123, dont on ne connaîtrait pas l'âge, serait représenté par le tuple : < 123, Dumont, Marc,? >. Une telle solution implique un traitement particulier de cette valeur nulle dans les langages de manipulation des données, notamment l'emploi d'une logique à trois valeurs : Vrai, Faux et Inconnu. En général il est bon d'éviter autant que possible l'emploi de valeurs nulles. Pour cela on peut utiliser, quand la valeur n'est pas renseignée, une valeur par défaut, par exemple 0 pour un nombre. SQL permet de définir une valeur par défaut pour un attribut grâce à la clause DEFAULT. A l'opposé, les attributs obligatoires sont traduits en SQL lors de la création de la table par la clause NOT NULL. Cas d'un attribut complexe du modèle entité association Soit par exemple, un attribut complexe en entité association, Adresse, composé des attributs: n bâtiment, nom-rue, ville, code-postal. Si on veut ajouter cet attribut dans la relation Etudiant, il y a plusieurs solutions. Solution 1: On ajoute l'attribut Adresse qui a pour domaine les chaînes de caractères. Dans ce cas, l'utilisateur ne peut pas poser de questions sur la ville, il devra lire l'adresse et chercher dans la chaîne de caractères le nom de la ville lui-même, ou par programme. Solution 2: On ajoute les attributs suivants : n bâtiment, nom-rue, ville, code-postal à la relation. Le SGBD connaît le détail de l'adresse, mais ne connaît pas la notion globale d'adresse. 4

5 La solution est choisie en fonction du type d'utilisation de l'attribut. Cas d'un attribut multivalué du modèle entité association Par exemple, on veut mémoriser les différents prénoms des étudiants (et non pas uniquement leur premier prénom). Solution 1: Avoir dans la relation Etudiant plusieurs attributs : Prénom1, Prénom2,... Problèmes : combien mettre d'attributs Prénom? Comment poser des questions sur cet attribut (on est obligé de poser autant de questions que d'attributs déclarés!). C'est une mauvaise solution à ne pas utiliser. Solution 2: On ne garde que N Etud, Nom, Age pour la relation Etudiant, et on crée une relation supplémentaire pour l'attribut multivalué, EtudPrénoms : EtudPrénoms N Etud Prénom 136 Jean 136 Marie 136 André 253 Annie 253 Claudette 101 André 147 Marc 147 Antoine Cette solution n'a pas les inconvénients de la solution précédente. Elle est valable pour tous les attributs multivalués, qu'ils soient simples ou complexes. Si l'on veut, plutôt que l'ensemble des prénoms, la liste ordonnée des prénoms on décrira la relation: EtudPrénoms2 (N Etud, N Prénom, Prénom) ce qui correspond en entité association à un attribut multivalué de type liste. 2.2 Traduction d'un schéma entité association en relationnel Il est possible de traduire un schéma entité association en un schéma relationnel en appliquant l'algorithme ci-dessous. Si le schéma entité association est bien construit, alors le résultat de la traduction sera un schéma relationnel normalisé en quatrième forme normale, sauf dans certains cas de dépendance à l'intérieur d'un attribut complexe. Une amélioration de l'algorithme consisterait à prendre en compte ces dépendances lors de la traduction des attributs complexes afin de ne générer que des relations en quatrième forme normale. Avec l'algorithme donné ci-dessous, il faut vérifier la forme normale de chaque relation obtenue à partir d'un attribut complexe. Algorithme de traduction : Pour chaque type d'entité, créer une relation de : - nom = nom du type d'entité; - attributs = attributs monovalués du type d'entité (pour les attributs complexes, prendre leurs attributs composants simples, avec pour nom le nom de l'attribut complexe concaténé à celui de l'attribut composant); les attributs obligatoires deviennent des attributs qui ne peuvent pas prendre la valeur nulle (NOT NULL en SQL). Si le type d'entité est sous-type d'un autre type E, alors il faut ajouter l'(un des) identifiant(s) de E aux attributs de la relation. Soit IE cet (ensemble d') attribut(s); 5

6 - identifiants = ceux du type d'entité qui ne font pas intervenir d'attribut multivalué. Si tous les identifiants comprennent un attribut multivalué ou s'il n'y a pas d'identifiant, alors demander à l'administrateur de la base d'ajouter à la relation un nouvel attribut identifiant. Si le type d'entité est sous-type d'un autre type E, alors IE est aussi un identifiant de la relation; - identifiants externes = si le type d'entité est sous-type d'un autre type E, alors IE est un identifiant externe qui référence la relation E, sinon il n'y a pas d'identifiant externe. Pour chaque attribut multivalué A d'un objet O (type d'entité, type d'association ou attribut multivalué complexe), créer une relation de : - nom = nom de l'objet O, concaténé à celui de l'attribut A; - attributs = l'attribut A (ou ses attributs composants simples et monovalués si A est complexe) + l'identifiant I (ou un des identifiants) de l'objet O + si la collection est de type liste un attribut ordre (de type Entier) qui définit l'ordre des valeurs + si la collection est de type multi-ensemble un attribut nombre (de type Entier) qui définit le nombre de valeurs identiques; - identifiants = si la collection est de type liste, l'identifiant de la relation est constitué de l'identifiant I de l'objet O et de l'attribut ordre qui a été ajouté; sinon l'identifiant de la relation est constitué de l'identifiant I de l'objet O + si A est un attribut simple alors A, sinon un (des) attribut composant de A (choix à faire faire par l'administrateur de la base); - identifiant externe = l'identifiant I de l'objet O. Pour chaque type d'association dont au moins un rôle a pour cardinalité maximum 1, soit R le type d'association liant : E1 avec le rôle r1 et les cardinalités: x1,1 /* si R a plusieurs rôles de cardinalité maximum 1, choisir de préférence pour E1/r1 celui (un de ceux) de cardinalités 1,1 */ E2 avec le rôle r2 et les cardinalités: x2,y2... En avec le rôle r1 et les cardinalités: xn,yn alors ajouter à la relation décrivant le type d'entité E1 : - aux attributs : l'identifiant (un des) de chacun des Ei liés sauf E1/r1, avec pour nom celui de Ei (ou celui de Ei concaténé au nom du rôle ri en cas d'homonymie), et si ce rôle ri est multivalué de type liste un attribut qui déterminera l'ordre, de domaine entier et de nom le nom du rôle ri (ou celui de Ei) concaténé à "N ordre", plus les attributs monovalués de R (pour les attributs complexes, prendre leurs attributs composants simples, avec pour nom le nom de l'attribut complexe concaténé à celui de l'attribut composant). Tous ces attributs ajoutés ne peuvent pas prendre la valeur nulle si le rôle r1 est obligatoire (x1>0). - aux identifiants externes : chaque identifiant, Ei (ou Ei.ri), ajouté à la relation est un identifiant externe qui référence la relation décrivant le type d'entité Ei. Pour chaque type d'association dont tous les rôles ont une cardinalité maximum supérieure à 1, soit R le type d'association liant : E1 avec le rôle r1 et les cardinalités : x1,y1 y1>1 E2 avec le rôle r2 et les cardinalités : x2,y2 y2>1... En avec le rôle r1 et les cardinalités : xn,yn yn>1 alors créer une relation de: - nom = nom de R (en cas d homonyme rajouter un numéro d ordre); - attributs = l'identifiant (un des) de chacun des Ei liés, avec pour nom celui de Ei (ou celui de Ei concaténé au nom du rôle ri en cas d'homonymie), et si ce rôle ri est multivalué de type liste un attribut qui déterminera l'ordre, de domaine entier et de nom le nom du rôle ri (ou celui de Ei) concaténé à "N ordre", plus les attributs monovalués de R (pour les attributs complexes, prendre leurs attributs composants simples, avec pour nom le nom de l'attribut complexe concaténé à celui de l'attribut composant); 6

7 - identifiants = ceux de R; - identifiants externes : chaque identifiant, Ei (ou Ei.ri), ajouté à la relation est un identifiant externe qui référence la relation décrivant le type d'entité Ei. 2.3 Contraintes Certaines contraintes exprimées dans le schéma entité association peuvent être directement exprimées dans le schéma relationnel issu de la traduction. C'est le cas par exemple, des attributs obligatoires (de cardinalité minimale non nulle) qui deviennent des attributs NOT NULL en relationnel. Les contraintes qui ne peuvent pas être directement exprimées dans le schéma relationnel, seront traduites par des CHECK, ASSERTION ou TRIGGER du SQL. Quelque soit le modèle de données (entité association, relationnel ou autre) il existe toujours des règles du monde réel qui ne peuvent pas être exprimées par les concepts du modèle. Certaines de ces règles restreignent les valeurs que peuvent prendre les données de la base. Elles sont appelées contraintes d'intégrité. Les SGBD relationnels offrent plusieurs mécanismes pour exprimer ces contraintes d'intégrité (en plus de l'intégrité référentielle des identifiants externes). Ce sont : attribut obligatoire: clause NOT NULL identifiant: clauses PRIMARY KEY et UNIQUE domaine de valeurs particulier d'un attribut: clause CHECK qui permet de vérifier que la valeur de l'attribut satisfait une condition contrainte d'intégrité quelconque: TRIGGER qui permet de spécifier que lors de toute insertion (ou suppression ou modification) d'un tuple dans telle relation telle condition doit être satisfaite sinon telle action doit être entreprise automatiquement par le SGBD, comme par exemple refuser l'insertion ou envoyer un message d'alerte. La notion de TRIGGER sera détaillée dans le TP 2. 3 Résumé Un schéma relationnel se compose: pour chaque relation de: - nom de la relation - définition - attributs + domaines - identifiant(s) - éventuellement identifiant(s) externe(s) + contraintes d'intégrité associées à cette relation. et des autres contraintes d'intégrité qui portent sur plusieurs relations. Un exemple de schéma de base de données relationnelles pour une entreprise de formation permanente est donné à la fin de ce chapitre. 4 Le langage de définition de données SQL Cette section présente le langage de définition de données (LDD) qui permet de spécifier le schéma d une base de données relationnelle. Ce langage correspond à une partie de la norme SQL (structured query language), l autre partie étant relative à la manipulation des données (LMD). La définition d un schéma logique comprend essentiellement deux parties : d une part la description des tables et de leur contenu, d autre part les contraintes qui portent sur les données de la base. Il existe plusieurs versions de SQL. Le plus ancien standard date de Il a été révisé de manière importante en 1992 : la norme résultant de cette révision est SQL-92 ou SQL Types SQL 7

8 La norme SQL ANSI propose un ensemble de types qui sont donnés dans le tableau suivant : 4. 2 Création des tables La commande principale est CREATE TABLE. Voici la commande de création d une table Internaute. CREATE TABLE Internaute ( VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motdepasse VARCHAR (60) NOT NULL, anneenaiss DECIMAL (4)) La syntaxe se comprend aisément. La seule difficulté est de choisir correctement le type de chaque attribut. Le NOT NULL dans la création de table Internaute indique que l attribut correspondant doit toujours avoir une valeur. Quand on parle de valeur NULL en SQL2, il s agit en fait d une absence de valeur. En conséquence : on ne peut pas faire d opération incluant un NULL; on ne peut pas faire de comparaison avec un NULL. Dans l exemple le SGBD rejettera alors toute tentative d insérer une ligne dans Internaute sans donner de mot de passe. Une autre manière de forcer un attribut à toujours prendre une valeur est de spécifier une valeur pardéfaut avec l option DEFAULT. CREATE TABLE Cinéma (nom VARCHAR (50) NOT NULL, adresse VARCHAR (50) DEFAULT Inconnue ) Quand on insérera une ligne dans la table Cinéma sans indiquer d adresse, le système affectera automatiquement la valeur Inconnu à cet attribut. 4.3 Contraintes La création d une table telle qu on l a vue précédemment est extrêmement sommaire car elle n indique que le contenu de la table sans spécifier les contraintes que doit respecter ce contenu. Or il y a toujours des contraintes et il est indispensable de les inclure dans le schéma pour assurer l intégrité de la base. 8

9 Voici les règles (ou contraintes d intégrité) que l on peut demander au système de garantir : 1. Un attribut doit toujours avoir une valeur. C est la contrainte NOT NULL vue précédemment. 2. Un attribut (ou un ensemble d attributs) constitue(nt) la clé de la relation. 3. Un attribut dans une table est lié à la clé primaire d une autre table (intégrité référentielle). 4. La valeur d un attribut doit être unique au sein de la relation. 5. Enfin toute règle s appliquant à la valeur d un attribut (min et max par exemple). Les contraintes sur les clés doivent être systématiquement spécifiées. La dernière (clause CHECK) s appuie en grande partie sur la connaissance du langage d interrogation de SQL et sera vue ultérieurement. Clés d une table Une clé est un attribut (ou un ensemble d attributs) qui identifie(nt) de manière unique un tuple d une relation. Il peut y avoir plusieurs clés mais l une d entre elles doit être choisie comme clé primaire. La clé primaire est spécifiée avec l option PRIMARY KEY. CREATE TABLE Internaute ( VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motdepasse VARCHAR (60) NOT NULL, anneenaiss INTEGER, PRIMARY KEY ( )) Il devrait toujours y avoir une PRIMARY KEY dans une table pour ne pas risquer d insérer deux lignes strictement identiques. Une clé peut être constituée de plusieurs attributs : CREATE TABLE Notation (idfilm INTEGER NOT NULL, VARCHAR (50) NOT NULL, note INTEGER DEFAULT 0, PRIMARY KEY (titre, )) Tous les attributs figurant dans une clé doivent être déclarés NOT NULL. On peut également spécifier que la valeur d un attribut est unique pour l ensemble de la colonne. Cela permet d indiquer des clés secondaires. On peut par exemple indiquer que deux artistes ne peuvent avoir les mêmes nom et prénom avec l option UNIQUE. CREATE TABLE Artiste(id INTEGER NOT NULL, nom VARCHAR (30) NOT NULL, prenom VARCHAR (30) NOT NULL, anneenaiss INTEGER, PRIMARY KEY (id), UNIQUE (nom, prenom)); La clause UNIQUE ne s applique pas aux valeurs NULL. Clés étrangères La norme SQL ANSI permet d indiquer quelles sont les clés étrangères dans une table, autrement dit, quels sont les attributs qui font référence à une ligne dans une autre table. On peut spécifier les clés étrangères avec l option FOREIGN KEY. CREATE TABLE Film (idfilm INTEGER NOT NULL, titre VARCHAR (50) NOT NULL, annee INTEGER NOT NULL, idmes INTEGER, 9

10 codepays INTEGER, PRIMARY KEY (idfilm), FOREIGN KEY (idmes) REFERENCES Artiste, FOREIGN KEY (codepays) REFERENCES Pays); La commande FOREIGN KEY (idmes) REFERENCES Artiste indique que idmes référence la clé primaire de la table Artiste. Le SGBD vérifiera alors, pour toute modification pouvant affecter le lien entre les deux tables, que la valeur de idmes correspond bien à une ligne de Artiste. Il faut noter que l attribut idmes n est pas déclaré NOT NULL. Quand un attribut est à NULL, la contrainte d intégrité référentielle ne s applique pas. Que se passe-t-il quand la violation d une contrainte d intégrité est détectée par le système? Par défaut, la mise à jour est rejetée, mais il est possible de demander la répercussion de cette mise à jour de manière à ce que la contrainte soit respectée. Les événements que l on peut répercuter sont la modification ou la destruction de la ligne référencée, et on les désigne par ON UPDATE et ON DELETE respectivement. La répercussion elle-même consiste soit à mettre la clé étrangère à NULL (option SET NULL), soit à appliquer la même opération aux lignes de l entité composante (option CASCADE). Voici comment on indique que la destruction d un metteur en scène déclenche la mise à NULL de la clé étrangère idmes pour tous les films qu il a réalisé. CREATE TABLE Film (titre VARCHAR (50) NOT NULL, annee INTEGER NOT NULL, idmes INTEGER, codepays INTEGER, PRIMARY KEY (titre), FOREIGN KEY (idmes) REFERENCES Artiste ON DELETE SET NULL, FOREIGN KEY (codepays) REFERENCES Pays); Dans le cas d une entité faible, on décide en général de détruire le composant quand on détruit le composé. Par exemple, quand on détruit un cinéma, on veut également détruire les salles ; quand on modifie la clé d un cinéma, on veut répercuter la modification sur ses salles. CREATE TABLE Salle (nomcinema VARCHAR (30) NOT NULL, no INTEGER NOT NULL, capacite INTEGER, PRIMAR KEY (nomcinema, no), FOREIGN KEY (nomcinema) REFERENCES Cinema ON DELETE CASCADE ON UPDATE CASCADE ) Il est important de noter que nomcinema fait partie de la clé et ne peut donc pas être NULL. On ne pourrait donc pas spécifier ici ON DELETE SET NULL. La spécification des actions ON DELETE et ON UPDATE simplifie considérablement la gestion de la base par la suite : on n a plus par exemple à se soucier de détruire les salles quand on détruit un cinéma. Énumération des valeurs possibles avec CHECK La norme SQL ANSI comprend une option CHECK (condition) pour exprimer des contraintes portant soit sur un attribut, soit sur une ligne. La condition elle-même peut être toute expression suivant la clause WHERE dans une requête SQL. Les contraintes les plus courantes sont celles consistant à restreindre un attribut à un ensemble de valeurs. Voici un exemple simple qui restreint les valeurs possibles des attributs annee et genre dans la table Film. CREATE TABLE Film (titre VARCHAR (50) NOT NULL, 10

11 annee INTEGER CHECK (annee BETWEEN 1890 AND 2000) NOT NULL, genre VARCHAR (10) CHECK (genre IN ( Histoire, Western, Drame )), idmes INTEGER, codepays INTEGER, PRIMARY KEY (titre), FOREIGN KEY (idmes) REFERENCES Artiste, FOREIGN KEY (codepays) REFERENCES Pays); Au moment d une insertion dans la table Film, ou d une modification de l attribut genre, le SGBD vérifie que la valeur insérée dans genre appartient à l ensemble énuméré défini par la clause CHECK Modification du schéma La création d un schéma n est qu une première étape dans la vie d une base de données. On est toujours amené par la suite à créer de nouvelles tables, à ajouter des attributs ou à en modifier la définition. La forme générale de la commande permettant de modifier une table est : ALTER TABLE nomtable ACTION description où ACTION peut être principalement ADD, MODIFY, DROP ou RENAME, et description est la commande de modification associée à ACTION. La modification d une table peut poser des problèmes si elle est incompatible avec le contenu existant. Par exemple passer un attribut à NOT NULL implique que cet attribut a déjà des valeurs pour toutes les lignes de la table. Modification des attributs Voici quelques exemples d ajout et de modification d attributs. On peut ajouter un attribut region à la table Internaute avec la commande: ALTER TABLE Internaute ADD region VARCHAR(10); La taille de region étant certainement insuffisante, on peut l agrandir avec MODIFY, et la déclarer NOT NULL par la même occasion : ALTER TABLE Internaute MODIFY region VARCHAR(30) NOT NULL; Il est également possible de diminuer la taille d une colonne, avec le risque d une perte d information pour les données existantes. On peut même changer son type, pour passer par exemple de VARCHAR à INTEGER, avec un résultat imprévisible. L option ALTER TABLE permet d ajouter une valeur par défaut. ALTER TABLE Internaute ALTER region SET DEFAULT PACA ; Enfin on peut détruire un attribut avec DROP. ALTER TABLE Internaute DROP region; 5. Exemple : la base de données "FormaPerm" 11

12 La même base de données qui a été modélisée dans le chapitre sur le modèle entité association est maintenant modélisée en relationnel. Le schéma complet avec les définitions des tables ainsi que les contraintes d'intégrité, et enfin la population d'une mini base de données qui servira pour les chapitres sur les langages de manipulation. Schéma relationnel formel Domaines Dnom : chaînes de caractères de longueur inférieure à 30 Dch100 : chaînes de caractères de longueur inférieure à 100 Dannée : [1970 : 1990 ] Dnote : [0.0 : 10.0 ] Ddate : [1 :31 ] / [1 :12 ] / [1920 :2100 ] Relation Personne Attributs: n P : entier sans nul nom : Dnom sans nul adr : Dch100 sans nul Identifiant: (n P ) Définition: tout étudiant et tout enseignant de l'institut. Relation PersonnePrénoms Attributs: n P : entier sans nul prénom : Dnom sans nul n prénom : entier sans nul Identifiants: (n P + prénom ), (n P +n prénom ) Identifiant externe : n P référence une Personne Définition: prénoms des personnes Relation Etudiant Attributs: Identifiants: (n E ) (n P ) Identifiant externe : Définition: n P : entier sans nul n E : entier sans nul daten : Ddate sans nul n P référence une Personne tout individu qui est actuellement inscrit à l'institut, ou qui a déjà passé avec succès un des cours de l'institut Relation EtudiantEtudes Attributs: n E : entier sans nul année : Dannée sans nul diplôme : Dnom sans nul Identifiant: (n E + diplôme ) Identifiant externe : n E référence un Etudiant.n E Définition: études antérieures des étudiants Relation Enseignant Attributs: n P : entier sans nul tel: entier sans nul 12

13 statut : Dnom sans nul banque : Dnom sans nul agence : Dnom sans nul compte : entier sans nul Identifiant: (n P ) Identifiant externe : n P référence une Personne Définition: tout individu assurant actuellement un ou plusieurs cours à l'institut Relation Cours Attributs: nomc : Dnom sans nul cycle : entier sans nul n Ens : entier sans nul Identifiant: (nomc ) Identifiant externe : n Ens référence un Enseignant Définition: tout cours offert par l'institut Relation Obtenu Attributs: n E : entier sans nul nomc : Dnom sans nul note : Dnote sans nul année : Dannée sans nul Identifiant: (n E + nomc ) Identifiants externes : n E référence un Etudiant.n E nomc référence un Cours Définition: l'étudiant n E a réussi le cours nomc telle année et a obtenu telle note Relation Inscrit Attributs: n E : entier sans nul nomc : Dnom sans nul Identifiant: (n E + nomc ) Identifiants externes : n E référence un Etudiant.n E nomc référence un Cours Définition: actuellement, l'étudiant n E est inscrit au cours nomc Relation Prérequis Attributs: nomc : Dnom sans nul nomcprérequis : Dnom sans nul Identifiant: (nomc + nomcprérequis ) Identifiants externes : nomc référence un Cours nomcprérequis référence un Cours Définition: le cours nomcprérequis est un prérequis pour le cours nomc Contrainte d'intégrité: dans tout tuple, nomcprérequis doit être différent de nomc Contraintes d'intégrité: Pour tout tuple de Prérequis <nomc, nomcprérequis>, le cycle de nomcprérequis dans Cours doit être inférieur ou égal à celui de nomc. Pour tout tuple de Etudiant: année_en_cours - daten 18 Pour tout tuple de EtudiantEtudes <n E, année, diplome>, soit daten la date de naissance de l'étudiant dans la relation Etudiant, alors: daten < année Pour tout tuple de Obtenu <n E, nomc, note, année>, soit daten la date de naissance de l'étudiant dans la relation Etudiant, alors: daten < année 13

14 Pour tout tuple de Inscrit, <n E, nomc>, le n E doit exister dans Obtenu associé à tous les cours qui existent dans Prérequis associés à nomc. Schéma relationnel SQL CREATE TABLE Personne ( n P INTEGER NOT NULL, nom VARCHAR(30) NOT NULL, adr VARCHAR(100) NOT NULL, PRIMARY KEY (n P ) ) CREATE TABLE PersonnePrénoms ( n P INTEGER NOT NULL, prénom VARCHAR(30) NOT NULL, n prénom INTEGER NOT NULL, PRIMARY KEY (n P, n prénom ), UNIQUE (n P, prénom ), FOREIGN KEY (n P) REFERENCES Personne ON DELETE CASCADE ) CREATE TABLE Etudiant ( n P INTEGER NOT NULL, n E INTEGER NOT NULL, daten DATE NOT NULL, PRIMARY KEY (n E ), UNIQUE (n P ), FOREIGN KEY (n P) REFERENCES Personne ) CREATE TABLE EtudiantEtudes ( n E INTEGER NOT NULL, année INTEGER NOT NULL, diplôme VARCHAR(30) NOT NULL, PRIMARY KEY (n E, diplôme ), FOREIGN KEY (n E) REFERENCES Etudiant ) CREATE TABLE Enseignant ( n P INTEGER NOT NULL, tel INTEGER NOT NULL, statut VARCHAR(30) NOT NULL, banque VARCHAR(30) NOT NULL, agence VARCHAR(30) NOT NULL, compte INTEGER NOT NULL, PRIMARY KEY (n P ), FOREIGN KEY (n P) REFERENCES Personne ) CREATE TABLE Cours ( nomc VARCHAR(30) NOT NULL, cycle INTEGER NOT NULL, n Ens INTEGER NOT NULL, PRIMARY KEY (nomc ), FOREIGN KEY (n Ens) REFERENCES Enseignant ) CREATE TABLE Obtenu 14

15 ( n E INTEGER NOT NULL, nomc VARCHAR(30) NOT NULL, note NUMERIC(2,1) NOT NULL, année INTEGER NOT NULL, PRIMARY KEY (n E, nomc ), FOREIGN KEY (n E) REFERENCES Etudiant.n E, FOREIGN KEY (nomc) REFERENCES Cours ) CREATE TABLE Inscrit ( n E INTEGER NOT NULL, nomc VARCHAR(30) NOT NULL, PRIMARY KEY (n E, nomc ), FOREIGN KEY (n E) REFERENCES Etudiant.n E, FOREIGN KEY (nomc) REFERENCES Cours ) CREATE TABLE Prérequis ( nomc VARCHAR(30) NOT NULL, nomcprérequis VARCHAR(30) NOT NULL, PRIMARY KEY (nomc, nomcprérequis ), FOREIGN KEY (nomc) REFERENCES Cours, FOREIGN KEY (nomcprérequis) REFERENCES Cours ) NB Les contraintes d'intégrité seront implémentées en SQL par des clauses CHECK et des TRIGGER. 15

16 Base de données relationnelle partielle de FormaPerm Personne n P nom adr 1111 Rochat Lausanne 6666 Walter Lausanne 5555 Bernard Yverdon 2222 Rochat Renens 3333 Muller Morges Etudiant n P n E daten /3/ /1/ /2/78 Enseignant n P tel statut prof assistant Cours nomc cycle n Ens système BD SI algo C Obtenu n E nomc note année 22 algo C algo Inscrit n E nomc 36 algo 36 C 22 système 22 SI 44 C 44 BD Prérequis nomc nomcprérequis système algo système C BD algo SI algo SI C 16

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

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

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 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

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

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

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

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

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

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

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

Modélisation Conceptuelle. Partie 2: Le modèle Entité-Association

Modélisation Conceptuelle. Partie 2: Le modèle Entité-Association Modélisation Conceptuelle Partie 2: Le modèle Entité-Association Modèle de type conceptuel But: permettre la description conceptuelle des structures de données d'une application Les concepts de base (correspondent

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

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

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

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

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

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

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

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

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

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

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

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

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

Modèle conceptuel : diagramme entité-association

Modèle conceptuel : diagramme entité-association Modèle conceptuel : diagramme entité-association Raison d'être de ce cours «La conception et l'utilisation de bases de données relationnelles sur micro-ordinateurs n'est pas un domaine réservé aux informaticiens.»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Intégrité sémantique dans les bases de données relationnelles Intégrité sémantique dans les bases de données relationnelles 1 - Intégrité sémantique Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU Ecole Polytechnique Universitaire de Marseille Fev. 2013

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

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

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

I. MySQL : Serveur et SGBD

I. MySQL : Serveur et SGBD Le Système de Gestion de Base de Données MySQL I. MySQL : Serveur et SGBD Menu I. MySQL : Serveur et SGBG II. Création d'une base de données avec MySQL MySQL est un système de gestion et conception de

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

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

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

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

Débuter avec OOo Base

Débuter avec OOo Base Open Office.org Cyril Beaussier Débuter avec OOo Base Version 1.0.7 Novembre 2005 COPYRIGHT ET DROIT DE REPRODUCTION Ce support est libre de droit pour une utilisation dans un cadre privé ou non commercial.

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

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

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

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

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

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

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

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

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

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

Bases de données. PTSI Lycée Eiffel. 28 février 2014 Bases de données PTSI Lycée Eiffel 28 février 2014 Introduction Pour ce troisième chapître, nous allons mettre de côté notre apprentissage de Pyhton pour nous intéresser à un sujet fondamental dans l informatique

Plus en détail

A. Définition et formalisme

A. Définition et formalisme Les cardinalités et les différents types d'associations I. Les cardinalités A. Définition et formalisme Les cardinalités sont des couples de valeur que l'on trouve entre chaque entité et ses associations

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

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

INTEGRITE ET BD ACTIVES

INTEGRITE ET BD ACTIVES INTEGRITE ET BD ACTIVES 1. INTRODUCTION Un SGBD doit garantir la cohérence des données lors des mises à jour de la base. En effet, les données d'une base ne sont pas indépendantes, mais obéissent à des

Plus en détail

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Gestion des transactions et accès concurrents dans les bases de données relationnelles Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.

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

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

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

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

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

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

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

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

PROJET 1 : BASE DE DONNÉES REPARTIES

PROJET 1 : BASE DE DONNÉES REPARTIES PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties

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

NF26 Data warehouse et Outils Décisionnels Printemps 2010

NF26 Data warehouse et Outils Décisionnels Printemps 2010 NF26 Data warehouse et Outils Décisionnels Printemps 2010 Rapport Modélisation Datamart VU Xuan Truong LAURENS Francis Analyse des données Avant de proposer un modèle dimensionnel, une analyse exhaustive

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

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

Modélisation des données

Modélisation des données Modélisation des données Le modèle Entité/Association Le MCD ou modèle Entité/Association est un modèle chargé de représenter sous forme graphique les informations manipulées par le système (l entreprise)

Plus en détail

Auguria_PCM Product & Combination Manager

Auguria_PCM Product & Combination Manager Auguria_PCM Product & Combination Manager Guide utilisateurs v1.5 Auguria 9, rue Alfred Kastler 44300 NANTES FRANCE +33251135012 contact@auguria.net Plan 1 Description générale du module...3 2 Mise en

Plus en détail

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

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

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

Cours de bases de données. Philippe Rigaux

Cours de bases de données. Philippe Rigaux Cours de bases de données Philippe Rigaux 13 juin 2001 2 TABLE DES MATIÈRES 3 Table des matières 1 Introduction 7 2 Présentation générale 9 2.1 Données, Bases de données et SGBD.............................

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

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

Partie 0 : Gestion des tablespace et des utilisateurs... 3 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à

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

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 DONNEES ORIENTEES OBJETS BDA10.1

BASES DE DONNEES ORIENTEES OBJETS BDA10.1 BASES DE DONNEES ORIENTEES OBJETS BDA10.1 Trois chapitres Principes et modèles 2 approches : langage de programmation OO => nouveaux SGBD "purs orientés-objets" norme ODMG extension des bd relationnelles

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

II. Modèle conceptuel le modèle entité-association

II. Modèle conceptuel le modèle entité-association II. Modèle conceptuel le modèle entité-association Personne Voiture Schéma conceptuel Monde réel υ Concepteur υ Personne conduit Voiture ϖ ϖ Schéma logique utilisateurs ω LMD BD Personne Dupont Durant

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

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