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

Chapitre 3 LE MODELE RELATIONNEL

Chapitre 3 LE MODELE RELATIONNEL Chapitre 3 LE MODELE RELATIONNEL Le modèle relationnel a été inventé en 1960 et a fait l'objet de très nombreuses recherches qui ont débouché sur la réalisation et commercialisation de SGBDs relationnels.

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

Le modèle relationnel L algèbre relationnelle

Le modèle relationnel L algèbre relationnelle François Jacquenet Professeur d'informatique Faculté des Sciences Laboratoire Hubert Curien UMR CNRS 5516 18 rue Benoit Lauras 42000 Saint-Etienne Tél : 04 77 91 58 07 e-mail : Francois.Jacquenet@univ-st-etienne.fr

Plus en détail

Introduction aux bases de données

Introduction aux bases de données 1/73 Introduction aux bases de données Formation continue Idir AIT SADOUNE idir.aitsadoune@supelec.fr École Supérieure d Électricité Département Informatique Gif sur Yvette 2012/2013 2/73 Plan 1 Introduction

Plus en détail

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Plan Généralités Langage de Définition des (LDD) Langage de Manipulation

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

Les principaux domaines de l informatique

Les principaux domaines de l informatique Les principaux domaines de l informatique... abordés dans le cadre de ce cours: La Programmation Les Systèmes d Exploitation Les Systèmes d Information La Conception d Interfaces Le Calcul Scientifique

Plus en détail

Le modèle relationnel

Le modèle relationnel CHAPITRE 4. LE MODÈLE RELATIONNEL 33 Chapitre 4 Le modèle relationnel Sommaire 4.1 Définition d un schéma relationnel........................... 33 4.2 Passage d un schéma E/A à un schéma relationnel...................

Plus en détail

Introduction aux Systemes d Information et aux Bases de Données

Introduction aux Systemes d Information et aux Bases de Données Introduction aux Systemes d Information et aux Bases de Données L2 Informatique Serenella Cerrito Département d Informatique Évry 2014-2015 Quels valeurs peut prendre un attribut? Ici, les types les plus

Plus en détail

Le language SQL (2/2)

Le language SQL (2/2) Les commandes de base sous Unix SQL (Première partie) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Création d'une base ([] facultatif) : createdb nombase [ -U comptepostgres ] Destruction

Plus en détail

SQL (Première partie) Walter RUDAMETKIN

SQL (Première partie) Walter RUDAMETKIN SQL (Première partie) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Les commandes de base sous Unix Création d'une base ([] facultatif) : createdb nombase [ -U comptepostgres ] Destruction

Plus en détail

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique

Bases de données. Jean-Yves Antoine. VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr. L3 S&T mention Informatique Bases de données Jean-Yves Antoine VALORIA - Université François Rabelais Jean-Yves.Antoine@univ-tours.fr L3 S&T mention Informatique Bases de Données IUP Vannes, UBS J.Y. Antoine 1 Bases de données SGBD

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

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

SQL et Bases de données relationnelles. November 26, 2013

SQL et Bases de données relationnelles. November 26, 2013 November 26, 2013 SQL : En tant que langage d interrogation En tant que langage de mise à jour En tant que langage de définition de données Langages de requête Langages qui permettent d interroger la BD

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

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

2 ème PARTIE : LE LANGAGE SQL

2 ème PARTIE : LE LANGAGE SQL 2 ème PARTIE : LE LANGAGE SQL PLAN : I. Le langage de manipulation des données II. Le langage de définition des données III. Administration de la base de données IV. Divers (HORS PROGRAMME) Introduction:

Plus en détail

Introduction aux bases de données relationnelles

Introduction aux bases de données relationnelles Formation «Gestion des données scientifiques : stockage et consultation en utilisant des ases de données» 24 au 27 /06/08 Introduction aux ases de données relationnelles Christine Tranchant-Dureuil UMR

Plus en détail

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

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation 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

1.1 Création d'une table : CREATE TABLE

1.1 Création d'une table : CREATE TABLE SQL : LDD et LMD SQL ne se résume pas aux requêtes d'interrogation d'une base. Ce langage permet aussi de : - créer des tables - de modifier la structure de tables existantes - de modifier le contenu des

Plus en détail

Bases de données et Systèmes transactionnels

Bases de données et Systèmes transactionnels Bases de données et Systèmes transactionnels Dominique Laurent dominique.laurent@u-cergy.fr Tao-Yan Jen jen@u-cergy.fr Plan du cours Introduction Modèle Entité/Association Langage SQL - ORACLE Architectures

Plus en détail

SQL : Origines et Evolutions

SQL : Origines et Evolutions SQL : Origines et Evolutions SQL est dérivé de l'algèbre relationnelle et de SEQUEL Il a été intégré à SQL/DS, DB2, puis ORACLE, INGRES, Il existe trois versions normalisées, du simple au complexe : SQL1

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

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

Plus en détail

TP1 - Corrigé. Manipulations de données

TP1 - Corrigé. Manipulations de données TP1 - Corrigé Manipulations de données 1. Démarrez mysql comme suit : bash$ mysql -h 127.0.0.1 -u user4 -D db_4 p Remarque: le mot de passe est le nom de user. Ici user4 2. Afficher la liste des bases

Plus en détail

Instructions SQL. Première partie : Langage de description et de gestion des données

Instructions SQL. Première partie : Langage de description et de gestion des données Instructions SQL Première partie : Langage de description et de gestion des données Quelques instructions et leur syntaxe 1. Introduction Trois principales catégories d instructions. Instructions de création

Plus en détail

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28 Introduction 1/28 2/28 Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 Objectifs Après ce cours, les TD et TP correspondants, vous devez être capables de I Créer des tables à partir d un modèle I Utiliser

Plus en détail

Plan. Bases de données. Cours 1 : Généralités & rappels. But du cours. Organisation du cours. Polytech Paris-Sud. Apprentis 4 ème année

Plan. Bases de données. Cours 1 : Généralités & rappels. But du cours. Organisation du cours. Polytech Paris-Sud. Apprentis 4 ème année Plan Bases de données Polytech Paris-Sud Apprentis 4 ème année Cours 1 : Généralités & rappels 1.1 Avant-propos 1.2 Algèbre relationnelle kn@lri.fr http://www.lri.fr/~kn 2/18 But du cours Organisation

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

Définition de contraintes. c Olivier Caron

Définition de contraintes. c Olivier Caron Définition de contraintes 1 Normalisation SQL-92 Les types de contraintes 1 Les types de contraintes Normalisation SQL-92 Les contraintes de domaine définissent les valeurs prises par un attribut. 1 Les

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

SQL Description des données : création, insertion, mise à jour. Définition des données. BD4 A.D., S.B., F.C., N. G. de R.

SQL Description des données : création, insertion, mise à jour. Définition des données. BD4 A.D., S.B., F.C., N. G. de R. SQL Description des données : création, insertion, mise à jour BD4 AD, SB, FC, N G de R Licence MIASHS, Master ISIFAR, Paris-Diderot Mars 2015 BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 1/21

Plus en détail

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

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

Plus en détail

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html

INTRODUCTION A SQL. http://www.lri.fr/~rigaux/bd/sql.html 012345678901234567890123 INTRODUCTION A SQL SQL = Structured Query Language SEQUEL = Structured English as a QUEry Language standard ISO depuis 87. Avantages : implanté + ou - complètement sur principaux

Plus en détail

Chapitre 4 : Partie3 LANGAGE DE MANIPULATION RELATIONNEL : S Q L

Chapitre 4 : Partie3 LANGAGE DE MANIPULATION RELATIONNEL : S Q L Chapitre 4 : Partie3 LANGAGE DE MANIPULATION RELATIONNEL : S Q L SQL (Structured Query Language) est le langage de manipulation des données relationnelles le plus utilisé aujourd hui. Il est devenu un

Plus en détail

PRESENTATION. Document1 Serge GUERINET Page 1

PRESENTATION. Document1 Serge GUERINET Page 1 PRESENTATION Les domaines couverts par la série STG sont tous des pourvoyeurs ou exploitants des bases de données. Que l'on gère la relation aux clients, le suivi de l'activité financière, la comptabilité

Plus en détail

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie Cours Web Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr Structured Query Language Langage de manipulation des données stockées dans une base de données interrogation/insertion/modification/suppression

Plus en détail

Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML

Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML MariaDB : https://mariadb.org/ Site officiel MySQL : http://www-fr.mysql.com/ Zone pour les développeurs : http://dev.mysql.com/

Plus en détail

Cours Bases de données

Cours Bases de données Cours Bases de données Introduction Conception d une base de données 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr 2 Introduction Architecture ANSI-SPARC Introduction

Plus en détail

Bases de données orientées objets SGBD relationnels-objets un exemple : ORACLE

Bases de données orientées objets SGBD relationnels-objets un exemple : ORACLE Bases de données orientées objets SGBD relationnels-objets un exemple : ORACLE SQL3 - SQL3 = SQL2 pour BD relationnelles+ des extensions orienté-objet multi-media spatial Séries temporelles - Ce chapitre

Plus en détail

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont

Faculté de Sciences Économiques et de Gestion. Bases de données. Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont Faculté de Sciences Économiques et de Gestion Bases de données Maîtrise de Sciences Économiques Année 2001-2002 Jérôme Darmont http://eric.univ-lyon2.fr/~jdarmont/ Plan du cours I. Introduction II. Le

Plus en détail

Chapitre 2 CONCEPTION D'UN SCHEMA ENTITE- ASSOCIATION

Chapitre 2 CONCEPTION D'UN SCHEMA ENTITE- ASSOCIATION Chapitre 2 CONCEPTION D'UN SCHEMA ENTITE- ASSOCIATION Dans ce chapitre, nous proposons quelques règles pour guider le concepteur lors de la définition du schéma conceptuel entité association d'une (nouvelle)

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 CRÉATION DES OBJETS DE BASES DE DONNÉES... 2 1.1 Architecture d une base de données... 2 1.1.1 Niveau logique... 2 1.1.2 Niveau physique... 3 1.2 Gestion d une base de données... 3

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

Chapitre 3: Modèle relationnel et conception

Chapitre 3: Modèle relationnel et conception LOG660 - Base de données de haute performance Solutions: Chapitre 3: Modèle relationnel et conception QUESTION 1 Plusieurs schémas sont acceptables. Les points à considérer sont: 1. L'agrégation entre

Plus en détail

Base de données. Chapitre 1 Introduction

Base de données. Chapitre 1 Introduction Base de données Chapitre 1 Introduction Plan du cours Introduction Modèle relationnel SQL Conception 2 Exemple MAT NOM FONCTION COURS AN_ENT 62945 Gilles Prof_adj MRT1111 1997 34560 Myriam Prof_agr MRT2221

Plus en détail

Cours 3 Le langage SQL

Cours 3 Le langage SQL DUT SRC IUT de Marne-la-Vallée 05/02/2014 M2203 Bases de données Cours 3 Le langage SQL Philippe Gambette Sources Cours de Tony Grandame à l'iut de Marne-la-Vallée en 2010-2011 Cours de Mathieu Mangeot,

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.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition.

1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition. LP Informatique(DA2I), F7 : Administration Système, Réseaux et Base de données 15/11/2007, Enseignant : M. Nakechbnadi, mail : nakech@free.fr Première parie : Administration d une BD Chapitre 1 : Architecture

Plus en détail

Introduction au langage SQL

Introduction au langage SQL Introduction au langage SQL 1. Description SQL est un acronyme pour Structured Query Language qui a été conçu par IBM, et a succédé au langage SEQUEL. C est maintenant le langage le plus utilisé dans les

Plus en détail

BNF101 STRUCTURE D UNE BASE DE DONNEES LE MODELE RELATIONNEL

BNF101 STRUCTURE D UNE BASE DE DONNEES LE MODELE RELATIONNEL BNF101 STRUCTURE D UNE BASE DE DONNEES LE MODELE RELATIONNEL INTRODUCTION Une base de données (BD) est un ensemble structuré d'information qui peut être utilisé simultanément par plusieurs utilisateurs

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

Cours de Base de Données Cours n.2 Introduction à MySQL/PhPMyAdmin

Cours de Base de Données Cours n.2 Introduction à MySQL/PhPMyAdmin Cours de Base de Données Cours n.2 Introduction à MySQL/PhPMyAdmin Ce cours reprend beaucoup de transparents du cours de Philippe LAHIRE Elisabetta De Maria - edemaria@i3s.unice.fr UFR Sciences et Laboratoire

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

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

Bases de données. Ecole Marocaine des Sciences de l Ingénieur. Yousra Lembachar

Bases de données. Ecole Marocaine des Sciences de l Ingénieur. Yousra Lembachar Bases de données Ecole Marocaine des Sciences de l Ingénieur Yousra Lembachar Rappel Variables dans SQL Les fonctions d agrégation Les opérateurs ensemblistes Les sous-requêtes SELECT Contraintes statiques

Plus en détail

Chapitre 4 : Le langage SQL

Chapitre 4 : Le langage SQL Chapitre 4 : Le langage SQL Table des matières I) Introduction...2 II) Rappel...2 III) Gestion de la base de données...2 1) Création de la base de données...2 2) Modification de la base de données...2

Plus en détail

SGBDR et conception d'un système d'information avec MERISE

SGBDR et conception d'un système d'information avec MERISE 1 SGBDR et conception d'un système d'information avec MERISE Séminaires Codes & Travaux @ IRISA 26 Avril 2007 Anthony ASSI Ingénieur Expert R&D Plateforme Bio Informatique / Equipe Symbiose 2 SGBDR : Système

Plus en détail

I) Bases de données et tables :

I) Bases de données et tables : I) Bases de données et tables : Un S.G.B.D. est un outil pour organiser, stocker, modifier, calculer et extraire des infos. Une B.D.R. peut être considérée comme un ensemble de tables à 2 dimensions. Exemple

Plus en détail

L2 sciences et technologies, mention informatique SQL

L2 sciences et technologies, mention informatique SQL Bases de données L2 sciences et technologies, mention informatique SQL ou : le côté obscure de la jolie théorie films titre réalisateur année starwars lucas 1977 nikita besson 1990 locataires ki-duk 2005

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 Cours de SRC 1. Mathieu MANGEOT mathieu.mangeot@univ-savoie.fr

Bases de Données Cours de SRC 1. Mathieu MANGEOT mathieu.mangeot@univ-savoie.fr Bases de Données Cours de SRC 1 Mathieu MANGEOT mathieu.mangeot@univ-savoie.fr Objectifs du cours Analyser les besoins et modéliser les données d un système d information Mettre en œuvre des bases de données

Plus en détail

I. Bases de données. Exemples classiques d'applications BD. Besoins de description

I. Bases de données. Exemples classiques d'applications BD. Besoins de description I. Bases de données Exemples classiques d'applications BD Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Gestion des personnels, étudiants, cours, inscriptions,...

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

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc TD BD dynamique Un déclencheur est utilisé pour complémenter les contraintes d'intégrité de la base. Une partie des contraintes ne peut souvent pas être définie avec les fonctionnalités décrites jusqu'ici.

Plus en détail

Langage de Requêtes. talel@infres.enst.fr

Langage de Requêtes. talel@infres.enst.fr Langage de Requêtes talel@infres.enst.fr Supports de cours : (1) Database Management Systems, R. Ramakrishnan and J. Gehrke, ed. McGrawHill, 2000. (2) Bases de Données, G. Gardarin, ed. Eyrolles, 2001.

Plus en détail

1 Partie A : administration d une base de donnée à travers PhpMyAdmin

1 Partie A : administration d une base de donnée à travers PhpMyAdmin Ce TP se compose en 2 sections : une section de prise en main (sur ordinateur) et une section d exercice (sur papier) concernant l algèbre relationnelle. 1 Partie A : administration d une base de donnée

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

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

Chapitre 7 Le Langage de Définition de Données

Chapitre 7 Le Langage de Définition de Données Chapitre 7 Le Langage de Définition de Données Jusque là, nous avons réalisé toutes les interrogations possibles sur les données, sans pour autant savoir comment gérer leurs structures. Dans ce chapitre,

Plus en détail

SQL : création et mises-à-jour de schémas et de données

SQL : création et mises-à-jour de schémas et de données SQL : création et mises-à-jour de schémas et de données Commandes de définition de données (DDL) Commandes de mise-à-jour de données (DML) Vues SQL-MAJ, vues-1 / 33 Exemple Définition de la relation

Plus en détail

Théorie et pratique de Base de données Oracle M.Boubetra 1 Système d Information But : gérer un ensemble d informations Stockage Consultation Modification Suppression Edition 2 Conception d un système

Plus en détail

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle

Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle Solutions des exercices du chapitre 6 selon la syntaxe du dialecte Oracle 1. a Ajouter un CHECK sur la table LigneCommande ALTER TABLE LigneCommande ADD (CONSTRAINT XXX CHECK (noarticle

Plus en détail

1. Objectifs de la Modélisation. Dériver le schéma de la BD. Élaborer un modèle conceptuel. Modélisation E/R des Données

1. Objectifs de la Modélisation. Dériver le schéma de la BD. Élaborer un modèle conceptuel. Modélisation E/R des Données . Objectifs et principes Modélisation E/R des Données 2. Le modèle Entité-Association (E/R) 3. Passage au relationnel 4. Conclusion. Objectifs de la Modélisation Permettre une meilleure compréhension Le

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 PRÉSENTATION DE TSQL... 2 1.1 Historique... 2 1.2 Les différents types d instructions... 2 1.2.1 Langage de Définition des Données... 2 1.2.2 Langage de Manipulation des Données...

Plus en détail

CHAPITRE II CONCEPTION D'UN SCHEMA RELATIONNEL. [GARD01] Chapitre XVII

CHAPITRE II CONCEPTION D'UN SCHEMA RELATIONNEL. [GARD01] Chapitre XVII CHAPITRE II CONCEPTION D'UN SCHEMA RELATIONNEL [GARD01] Chapitre XVII 27 CONCEPTION D'UN SCHEMA RELATIONNEL - Introduction 1. INTRODUCTION 1.1. Lien entre la base de données et le système d'information

Plus en détail

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role IFT7 Programmation Serveur Web avec PHP Introduction à MySQL Base de donnée relationnelle Une base de données relationnelle est composée de plusieurs tables possédant des relations logiques (théorie des

Plus en détail

SQL : Structured Query Language

SQL : Structured Query Language SQL : Structured Query Language Langage de définition de données (LDD/DDL) Langage de manipulation de données (LMD /DML) Introduction à Oracle 1 Objectif On sait faire un schéma conceptuel Personne 1:1

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

Vocabulaire 1/2. Base de données : collection de données interreliées. SGBD : système de gestion de bases de données.

Vocabulaire 1/2. Base de données : collection de données interreliées. SGBD : système de gestion de bases de données. Bases de données Au menu : Vocabulaire Le modèle relationnel Types de bases de données Implémentation libre : MySQL Le SQL (Simple Query Language) Administration d'un SGBD Sécurité des SGBD Vocabulaire

Plus en détail

Modèle e-a étendu: MCD (Modèle conceptuel des données) de Merise

Modèle e-a étendu: MCD (Modèle conceptuel des données) de Merise 58 Modèle e-a étendu: MCD (Modèle conceptuel des données) de Merise Héritage Contrainte d intégrité Fonctionnelle (CIF) 59 Héritage S impose dans 2 cas : Spécialisation : permet de modéliser dans l'ensemble

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

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

Chapitre 1 : Introduction aux Systèmes de Gestion de Bases de Données (Eléments de base)

Chapitre 1 : Introduction aux Systèmes de Gestion de Bases de Données (Eléments de base) Chapitre 1 : Introduction aux Systèmes de Gestion de Bases de Données (Eléments de base) 1. Généralités sur l'information et sur sa Représentation 1.1 Informations et données : a. Au sen de la vie : C

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

Observation de la réalité, Collecte d informations Réflexion et modélisation Définitions des tables d une BD relationnelle Obtenir une représentation

Observation de la réalité, Collecte d informations Réflexion et modélisation Définitions des tables d une BD relationnelle Obtenir une représentation Bases de données Modèle relationnel BD relationnelle Observation de la réalité, Collecte d informations Réflexion et modélisation Définitions des tables d une BD relationnelle Obtenir une représentation

Plus en détail

Cours 2 : SQL Structured Query Language

Cours 2 : SQL Structured Query Language Cours 2 : SQL Structured Query Language SQL Langage permettant de définir, manipuler et contrôler les données d une BD relationnelle Objet d une norme de l Institut National Américain de Normalisation

Plus en détail

Les bases de données (suite) Support de cours Pascal Ballet

Les bases de données (suite) Support de cours Pascal Ballet Les bases de données (suite) Support de cours Pascal Ballet La saisie et l'impression des données Les formulaires de saisie Les formulaires de saisie jouent deux rôles importants : - la mise en forme des

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

SQL Les fondamentaux du langage (2ième édition)

SQL Les fondamentaux du langage (2ième édition) Introduction 1. Un peu d'histoire 11 2. Les normes SQL 12 3. Description rapide du modèle relationnel 14 3.1 Principaux concepts du modèle relationnel 15 3.2 Principales règles 16 4. Les opérateurs en

Plus en détail

TD 15 ème chapitre Bases de données

TD 15 ème chapitre Bases de données TD 15 ème chapitre Bases de données Nous allons travailler dans un premier temps avec le sgbd SQLite qui, à proprement parler, ne s'installe pas vraiment. Les bases de données SQLite tiennent sur un fichier

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

Oracle Database 10g: Les fondamentaux du langage SQL I

Oracle Database 10g: Les fondamentaux du langage SQL I Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux du langage SQL I Durée: 3 Jours Description Ce cours offre aux étudiants une introduction à la technologie de

Plus en détail

Chapitre IV. Les bases de données relationnelles en pratique : Langages d interrogation. Relation : ensemble ou multi-ensemble?

Chapitre IV. Les bases de données relationnelles en pratique : Langages d interrogation. Relation : ensemble ou multi-ensemble? Chapitre IV Les bases de données relationnelles en pratique : Langages d interrogation Relation : ensemble ou multi-ensemble? Un multi-ensemble (multiset) est une collection d éléments pour laquelle on

Plus en détail

TD sur les requêtes SQL 3 décembre 2008 Prérequis : Modèle conceptuel de données (entité-association), modèle relationnel, bases du langage

TD sur les requêtes SQL 3 décembre 2008 Prérequis : Modèle conceptuel de données (entité-association), modèle relationnel, bases du langage TD sur les requêtes SQL 3 décembre 2008 Prérequis : Modèle conceptuel de données (entité-association), modèle relationnel, bases du langage SQL. Durée : 1 h 50 TD 3 Requêtes SQL Description du système

Plus en détail

Bases de données 2I009 Examen du 15 Mai 2015 Durée : 2 heures CORRIGÉ Documents autorisés

Bases de données 2I009 Examen du 15 Mai 2015 Durée : 2 heures CORRIGÉ Documents autorisés Examen BD 2I009 15 Mai 2015 Votre numéro d anonymat : Université Pierre et Marie Curie Bases de données 2I009 Examen du 15 Mai 2015 Durée : 2 heures CORRIGÉ Documents autorisés Les téléphones mobiles doivent

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