Summary

This document provides a synthesis of database concepts. It covers topics like database design, SQL, data manipulation, and relationships.

Full Transcript

Synthèse – Data Base © Sophie Mouton © Sophie Mouton Table des matières CHAPITRE 1 – MOTIVATION ET INTRODUCTION.............................................................................................. 1 1.1...

Synthèse – Data Base © Sophie Mouton © Sophie Mouton Table des matières CHAPITRE 1 – MOTIVATION ET INTRODUCTION.............................................................................................. 1 1.1 UNE PREMIÈRE APPROCHE DES DONNÉES................................................................................................................ 1 1.2 UTILISER UNE BASE DE DONNEES............................................................................................................................ 3 1.3 PREMIERES CONCLUSIONS.................................................................................................................................... 3 1.4 LES SYSTEMES DE GESTION DE BASES DE DONNEES..................................................................................................... 4 1.5 LES DEFIS DES BASES DE DONNEES D’AUJOURD’HUI.................................................................................................... 5 1.6 UN PEU D’HISTOIRE............................................................................................................................................ 5 CHAPITRE 2 – CONCEPTS DES BASES DE DONNÉES.......................................................................................... 6 2.1 TABLES, LIGNES ET COLONNES............................................................................................................................... 6 2.2 VALEUR NULL.................................................................................................................................................... 6 2.3 IDENTIFIANTS ET CLES ETRANGERES........................................................................................................................ 6 2.4 SCHEMA ET CONTENU......................................................................................................................................... 8 2.5 EXEMPLE DE BASE DE DONNEES............................................................................................................................. 8 2.6 MODIFICATIONS ET CONTRAINTES.......................................................................................................................... 9 2.7 REDONDANCES INTERNES................................................................................................................................... 10 2.8 CONSTRUCTIONS PHYSIQUES............................................................................................................................... 11 CHAPITRE 3 – LE LANGAGE SQL DDL.............................................................................................................. 13 3.1 INTRODUCTION................................................................................................................................................ 13 3.2 CRÉATION D’UN SCHÉMA................................................................................................................................... 13 3.3 CRÉATION D’UNE TABLE..................................................................................................................................... 13 3.4 MODIFICATION D’UNE TABLE.............................................................................................................................. 16 3.5 LES STRUCTURES PHYSIQUES............................................................................................................................... 17 3.6 EXEMPLES....................................................................................................................................................... 18 CHAPITRE 4 – LE LANGAGE SQL DML (1)........................................................................................................ 19 4.1 INTRODUCTION................................................................................................................................................ 19 4.2 EXTRACTION SIMPLE......................................................................................................................................... 19 4.3 CONDITIONS PLUS COMPLEXES............................................................................................................................ 19 4.4 DONNÉES EXTRAITES ET DONNÉES DÉRIVÉES........................................................................................................... 21 4.5 LES FONCTIONS AGRÉGATIVES............................................................................................................................. 22 4.6 LES SOUS-REQUÊTES......................................................................................................................................... 23 4.7 LES QUANTIFICATEURS ENSEMBLISTES................................................................................................................... 25 CHAPITRE 5 – LE LANGAGE SQL DML (2)........................................................................................................ 26 5.1 LES JOINTURES................................................................................................................................................. 26 5.2 OPÉRATIONS ENSEMBLISTES............................................................................................................................... 28 5.3 STRUCTURES CYCLIQUES.................................................................................................................................... 30 5.4 DONNÉES GROUPÉES......................................................................................................................................... 32 5.5 ORDRE ET INTERPRÉTATION................................................................................................................................ 33 ÉVENTUELLES QUESTIONS D’EXAMENS......................................................................................................... 33 LA BASE DE DONNÉES................................................................................................................................... 34 LEXIQUE........................................................................................................................................................ 34 © Sophie Mouton Chapitre 1 – Motivation et Introduction 1.1 UNE PREMIÈRE APPROCHE DES DONNÉES Nous baignons dans un tourbillon d'informations. Nous recevons des informations de notre environnement. Nous transmettons des informations à notre environnement. Les informations prennent la forme de données (signes mémorisés et véhiculés sur un support matériel ou immatériel) Question : comment stocker et traiter ces données ? Réponse : dans une base de données. La reconnaissance optique de caractères, OCR, (en anglais : optical character recognition) signifie reconnaissance de texte, une technologie qui vous permet de convertir différents types de documents tels que les documents papiers scannés, les fichiers PDF ou les photos numériques en fichiers modifiables et interrogeables. Un ordinateur réclame pour l'exécution de cette tâche un logiciel d'OCR. Analyse d’un bon de commande : Extraire les données du bon de commande et les reporter dans 3 tableaux : Observations : Quand on a décomposé le bon de commande, on a perdu un lien sémantique. Il est impossible de reconstituer le bon de commande d'origine. Ex : quel est le client de la commande ? On ne sait pas. Les données TOTAL-COMMANDE et SOUS-TOTAL sont calculées. Il y a redondance d’informations à néfaste pour le fonctionnement d’une base de données. Donc inutile de conserver ces colonnes, on pourra les recalculer en cas de besoin. © Sophie Mouton 1 Données sans redondances et avec références : Observations : Si plusieurs détails mentionnent le même produit, ses caractéristiques sont répétées autant de fois : on isole les données des produits dans un tableau spécifique. Distribution optimale des données des bons de commande : Ajoutons d’autres données : notre première base de données NCLI dans CLIENT : identifiant de la table. Il n’y en aura jamais 2 identiques. NCLI dans COMMANDE : clé étrangère de la table. Pour garder le lien entre ces 2 tables. © Sophie Mouton 2 1.2 UTILISER UNE BASE DE DONNEES Succès des bases de données : - Facilité de traiter de l’information par un langage accessible à « monsieur tout le monde ». - Indépendance de la couche physique et la couche logique. Quel est le langage qu’un ordinateur comprend ? Il comprend des différences de voltage qui vont être traduits dans un premier langage, le langage binaire (1 ou 0). Très peu de personnes le comprennent, du coup ils ont inventé d’autres langages qui se rapprochent du nôtre. 6 couches de langage dans un ordi à compilation, mécanisme de traductions de couche en couche SQL (Structured Query Langage) Langage informatique normalisé servant à exploiter des bases de données relationnelles. La partie langage de manipulation des données de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des données dans les bases de données relationnelles. 3 opérateurs de base : select, from, where Que peut-on faire de ces données ? Avant tout, les conserver aussi longtemps que nécessaire ! Les interroger, vérifier une commande lors de son enregistrement (le client est-il connu ? Son adresse a-t-elle changé ? Les produits commandés sont-ils répertoriés ?), produire les factures, préparer le rapprovisionnement des produits en rupture de stock, calculer le chiffre d’affaires mensuel, étudier la répartition géographique des ventes et mille autres applications… Exemple (requêtes rédigées dans le langage SQL) : Quel est le numéro, le nom et l'adresse des clients de Toulouse ? 1.3 PREMIERES CONCLUSIONS Une base de données est constituée d’un ensemble de tables. Chaque table contient les données relatives à des entités de même nature. Chaque ligne d’une table reprend les données relatives à une entité. Chaque colonne d’une table décrit une propriété commune des entités. Les lignes d’une table sont distinctes. C’est sur une (voire plusieurs) colonne(s) que se joue cette unicité. Le jeu de colonnes dont les valeurs sont uniques constitue un identifiant de la table. Les lignes d’une table peuvent faire référence chacune à une ligne d’une autre table, où des informations sur une entité associée peuvent être obtenues. Les colonnes de référence s’appellent clé étrangère vers cette autre table. On évite d’enregistrer des données qu’il est possible de calculer à partir d’autres données enregistrées. On ne conserve pas dans une même table des données relatives à des entités de nature différente. On provoquerait en effet des redondances nuisibles. © Sophie Mouton 3 Le langage SQL permet de rédiger de manière simple et concise des requêtes d’extraction et de calcul de données de complexité quelconque. On ne construit pas une base de données pour satisfaire les besoins immédiats d’une application particulière. Une base de données est conçue pour représenter le plus fidèlement possible les informations relatives à une activité humaine, socio-économique, culturelle ou technique. Elle est indépendante de ce qu’on fera de ces données. La construction d’une base de données exige une analyse rigoureuse et attentive. Il est cependant possible à tout moment d’ajouter de nouvelles tables et de nouvelles colonnes afin de suivre l’évolution des besoins des utilisateurs. 1.4 LES SYSTEMES DE GESTION DE BASES DE DONNEES Un système de gestion de base de données est une plateforme logicielle qui a 4 fonctions : - Créer la structure qui va accueillir les données - Stocker l’information - Manipuler l’information - Administrer des données (faire des backups, les sécuriser, les rendre disponibles, gérer des droits d’accès, monitoring, duplication…) La gestion d'une base de données pose des problèmes complexes. Cette gestion est assurée par des logiciels spécialisés : les systèmes de gestion de bases de données ou SGBD. Organisation des données Le SGBD organise les données en tables permanentes stockées sur disque ; il crée les mécanismes garantissant un accès rapide aux données ; il informe les utilisateurs sur ces structures. Gestion des données Le SGBD garantit l'évolution cohérente des données ; il vérifie que les contraintes (unicité, référence entre tables, etc.) sont respectées. Accès aux données Le SGBD permet l'accès aux données à la fois par l'utilisateur occasionnel et par les programmes de traitement de données. Protection contre les accidents Le SGBD garantit l'intégrité et l'accessibilité des données en cas d'incident ou d'attaque. Gestion des accès concurrents Le SGBD permet l'accès simultané aux données par des centaines voire des milliers d'utilisateurs. Il contrôle rigoureusement les opérations simultanées sur les mêmes données. Contrôle des accès Le SGBD garantit que seuls les utilisateurs autorisés peuvent accéder aux données et les modifier. Exemples de SGBD : Access, MySQL, Oracle, Microsoft SQL Server,… © Sophie Mouton 4 1.5 LES DEFIS DES BASES DE DONNEES D’AUJOURD’HUI Big Data, exploration des données non structurées (Not Only SQL), tout ce qui touche à la data science (machine learning, data mining) Multiplicité des types de données Une base de données modernes peut contenir des données multimédias, des données textuelles, des données spatiales (données GPS par exemple), des données historiques (plusieurs lignes par entité), des données semi-structurées. L'information incomplète Une base de données doit admettre qu'on ne connaisse pas tout sur tout et que nos connaissances peuvent être erronées. Comment assurer au maximum la cohérence des données dans ce contexte ? Volumes et performances Une base de données peut contenir des dizaines de milliers de tables, des milliards de lignes. Comment garantir l'accessibilité de ces données, leur protection contre les incidents, des temps d'accès satisfaisants ? Accès par des non-informaticiens Malgré sa facilité d'utilisation (pour des requêtes simples) SQL est hors de portée de la plupart des utilisateurs non spécialistes. Des modes d'accès graphiques, en langage naturel ou par mode vocal sont nécessaires pour en accroitre l'usage. Maintenance et évolution La structure d'une base de données peut évoluer : ajouter ou supprimer une table, une colonne, une contrainte. Comment préserver les données et les programmes utilisateurs lors de cette évolution ? Les données distribuées et nomades Une base de données peut être répartie et/ou dupliquées sur plusieurs ordinateurs répartis géographiquement. Certains de ceux-ci peuvent être des appareils mobiles (embarqués, portables, smart phones). Comment garantir la cohérence, la protection et l'accessibilité des données. Les BD et le Web De nombreuses bases de données sont intimement liées au Web. En outre, le Web peut être vu comme une gigantesque base de données (largement incohérente et redondante !) Qu'en est-il des principes rigoureux des bases de données dans ce contexte ? Les données décisionnelles Les données ne servent pas seulement à contrôler la gestion et le fonctionnement d'une entreprise au jour le jour. Elles sont aussi souvent utilisées pour soutenir des décisions tactiques et stratégiques. Caractéristiques : traitement de très gros volumes de données complexes pour produire une réponse courte (une heure de traitement de plusieurs téraoctets pour en extraire un seul nombre !) Comment structurer une base de données dans ce sens (= entrepôts de données) ? 1.6 UN PEU D’HISTOIRE Le concept de base de données est né dans les années 60, avec la généralisation des disques magnétiques permettant l'accès direct à une donnée, contrairement aux bandes magnétiques, limitées à l'accès séquentiel. En 1992, Microsoft commercialise Sybase sous le nom SQL Server. © Sophie Mouton 5 Chapitre 2 – Concepts des bases de données 2.1 TABLES, LIGNES ET COLONNES 2.2 VALEUR NULL L'absence de valeur est indiquée par un marqueur spécial, dit valeur null. Problème : plusieurs interprétations possibles. 1. Information pertinente mais inexistante pour l'entité 2. Information non pertinente pour cette entité 3. Information existante mais actuellement inconnue è Recommandation : éviter si possible les colonnes facultatives. 2.3 IDENTIFIANTS ET CLES ETRANGERES Identifiants Un identifiant est un groupe de colonnes d'une table T tel qu'il ne puisse, à tout moment, exister plus d'une ligne dans T qui possède des valeurs déterminées pour ces colonnes. La valeur de l'identifiant permet de désigner une ligne de T. Un identifiant définit une contrainte d'unicité. Il existe d'autres moyens de définir cette contrainte. Une table peut posséder plusieurs identifiants. On choisit l'un d'eux, qu'on déclare primaire. Les autres sont dès lors secondaires. L'identifiant primaire est constitué de colonnes obligatoires. Un identifiant est minimal si chacune de ses colonnes est nécessaire pour garantir la contrainte d'unicité. Clé candidate ou clé minimale c’est les données minimales qu’il faut. Il est possible de déclarer une table sans identifiant mais ceci n'est pas recommandé. Appellation Un identifiant minimal est aussi appelé clé candidate (candidate key). Un identifiant primaire s'appelle aussi clé primaire (primary key / id). Il n'existe pas d'autre terme pour désigner les identifiants secondaires. © Sophie Mouton 6 Clés étrangères Une clé étrangère est un groupe de colonnes d'une table S tel qu'il existe, à tout moment, dans une table T, une ligne dont l'identifiant a pour valeur(s) celle(s) de ce groupe. La valeur de la clé étrangère sert à référencer une ligne de la table T. Une clé étrangère définit une contrainte référentielle. Il existe d'autres moyens de définir cette contrainte. Si une des colonnes d'une clé étrangère est facultative, il est recommandé de les rendre toutes facultatives. Une clé étrangère référence l'identifiant primaire de la table cible. Elle peut référencer un identifiant secondaire mais ceci n'est pas recommandé. Une clé étrangère et l'identifiant qu'elle référence ont la même composition : même nombre de colonnes et colonnes de mêmes types prises deux à deux. Il se peut qu'une clé étrangère soit également un identifiant. Il se peut que les colonnes d'une clé étrangère appartiennent, en tout ou en partie, à un identifiant. Appellation Clé étrangère = foreign key / ref Identifiants et clés étrangères Clé primaire : une colonne que je choisis qui permet d’indiquer une colonne unique. Clé étrangère : fait le lien entre les tables avec la clé primaire. Dans commande, je ne peux pas encoder une clé étrangère NCLI qui n’existe pas dans client. © Sophie Mouton 7 2.4 SCHEMA ET CONTENU Le schéma d'une table définit sa structure. Il spécifie notamment : 1. Le nom de la table 2. Pour chaque colonne, son nom, son type (format), son caractère obligatoire (contraintes) 3. L'identifiant primaire (liste des colonnes) 4. Les identifiants secondaires éventuels (liste des colonnes) 5. Les clés étrangères éventuelles (liste des colonnes et table cible) Le contenu d'une table est formé d'un ensemble de lignes conformes au schéma. Le contenu d'une table est sujet à de fréquentes modifications alors que le schéma d'une table peut évoluer mais moins fréquemment. 2.5 EXEMPLE DE BASE DE DONNEES Variantes de schéma : NCLI (COMMANDE) fait référence, par une contrainte d’intégrité, à la clé primaire NCLI (CLIENT). © Sophie Mouton 8 2.6 MODIFICATIONS ET CONTRAINTES Contraintes d’intégrité On admet 3 contraintes d’intégrité : Contrainte de colonne obligatoire : le SGBD va vérifier qu’il y ait une valeur dans cette colonne. La contrainte oblige le SGBD à vérifier après toute transaction qu’il y ait bien une valeur. Une colonne facultative accepte une valeur nulle. Contrainte d’unicité : La contrainte oblige le SGBD à vérifier après toute transaction que la valeur indiquée est bien unique pour l’ensemble de la colonne. Elle s’applique implicitement (d’office) à la clé primaire. Clés secondaires : obliger de l’ajouter. Contrainte d’intégrité référentielle : lien entre clé étrangère et clé primaire. La contrainte oblige le SGBD à vérifier après toute transaction que toute valeur entrée au niveau de la clé étrangère existe préalablement dans la clé primaire vers laquelle elle pointe. Modifications Il existe 3 opérations élémentaires de modifications : Insérer une ligne Supprimer une ligne Modifier une valeur de colonne d’une ligne Principe : une modification ne sera effectuée que si son résultat ne viole aucune contrainte d’intégrité. Transaction : toute opération qui vient modifier l’état d’une donnée dans une BD en insérant, supprimant ou modifiant les données (terme important !) Lors d’une transaction, le SGBD va vérifier si une contrainte est violée ou pas. Modifications et contraintes : colonne obligatoire à à colonne obligatoire Insérer une ligne à Valeur doit être non null. Supprimer une ligne à Ok. Modifier valeur à Nouvelle valeur doit être non null. Modifications et contraintes : contrainte d’unicité – identifiant à à identifiant Insérer une ligne à Valeur ne doit pas être déjà présente dans une ligne de la table. Supprimer une ligne à Ok. Modifier valeur à Nouvelle valeur ne doit pas être déjà présente dans une ligne. © Sophie Mouton 9 Modifications et contraintes : intégrité référentielle - clé étrangère à à clé étrangère Insérer une ligne à Valeur doit être présente dans l’identifiant auquel NCLI fait référence. Supprimer une ligne à COMMANDE, ok. Supprimer une ligne à CLIENT, l’intégrité référentielle doit être satisfaite après l’opération. Modifier valeur à Nouvelle valeur doit être présente dans l’identifiant qui est lié. Supprimer une ligne de CLIENT : conflit car la contrainte d’intégrité référentielle est violée. Exemple : si on supprime A12 de client, il y a toujours des A12 dans commande qui font référence au A12 du client qui a été supprimé. Donc, 4 modes : Mode no action impossible de supprimer une ligne client Mode cascade supprimer aussi toutes les lignes commandes associées à ce client Mode set null lignes commandes associées au client vont renvoyer vers une valeur vide client Mode set default au lieu de mettre une valeur nulle, on met une valeur par défaut Pourquoi supprimer une ligne de CLIENT ? Car le GDPR impose que l’on peut garder les données de clients qui n’ont plus commercé avec nous pendant maximum 5 ans. 2.7 REDONDANCES INTERNES Principe des bases de données : tout fait du domaine d’application est enregistré une et une seule fois. Quand il y a problème de redondance (ex : ISBN), on rassemble les données communes dans une table spécifique (ISBN, TITRE, AUTEUR). Deux questions se posent : - Comment détecter les situations de redondance ? - Comment les corriger ? La réponse repose sur une nouvelle forme de contrainte d’intégrité : la dépendance fonctionnelle. Principe de dépendance fonctionnelle Il y a dépendance fonctionnelle lorsque la valeur d’une colonne détermine automatiquement la valeur d’une ou de plusieurs autres colonnes. Exemple : dépendance fonctionnelle de ISBN vers TITRE et AUTEUR car ISBN détermine ou est un déterminant de TITRE et AUTEUR. Donc, TITRE et AUTEUR dépendent de ou sont déterminés par ISBN. Deux observations : - Un identifiant détermine toutes les colonnes de la table - Si un groupe de colonnes détermine chaque colonne de la table, il constitue un identifiant de la table. NUMÉRO_DU_LIVRE à TITRE, AUTEUR, ISBN, DATE_ACHAT, EMPLACEMENT © Sophie Mouton 10 Comment détecter les situations de redondance ? Il y a redondance interne dès qu'il existe un déterminant qui n'est pas un identifiant de la table. Quand déterminant n’est pas clé primaire, problème de redondance. Une dépendance fonctionnelle dont le déterminant n'est pas un identifiant est dite anormale. Ici, ISBN est un déterminant dans LIVRES mais n'en est pas un identifiant. Donc entraine des redondances internes et donc dépendance fonctionnelle anormale. Comment corriger les situations de redondance ? Pour normaliser la situation, il faut que le déterminant (ISBN) devienne clé primaire. On va donc scinder la table en 2, du coup il faut faire un lien avec clé primaire et étrangère. Il faut décomposer la table T en deux fragments : T1 - T1(déterminant, déterminé) - T2(déterminant, résidu) et clé étrangère vers T1 T2 Dans EXEMPLAIRE, NUMERO est clé primaire. Dans OUVRAGE, ISBN est clé primaire. Dernières remarques Une table qui est le siège d'une dépendance fonctionnelle anormale est dite non normalisée. Une table sans dépendance fonctionnelle anormale est dite normalisée. Décomposer une table de manière à éliminer ses dépendances anormales consiste à normaliser cette table. Il est essentiel que toutes les tables d'une base de données soient normalisées. Il est possible qu'une table qui est le siège de dépendances fonctionnelles anormales ne comporte pas de redondance à certains moments. Il ne s'agirait que d'un accident statistique ! Inutile de tenter le diable ! 2.8 CONSTRUCTIONS PHYSIQUES Les tables sont stockées sur le disque de l'ordinateur. Si elles sont très volumineuses, l'accès aux données et leur modification risquent de prendre un temps considérable. Les structures physiques garantissent de bonnes performances aux opérations de lecture et de modification. Deux mécanismes principaux : les index et les espaces de stockage. Indépendance de la couche physique et la couche logique Couche logique : représentation de la BD sous forme de tables, d’attributs et de contrainte d’intégrité référentielle. Couche physique : manière dont les données vont être réellement organisé sur le disque dur. Indépendance des 2 couches Les données sont rangées 2 manières différentes. Organisation physique est différente que l’organisation logique. Un SGBD nous permet d’avoir une vue sur les données, de naviguer de 2 manières différentes. Les données sont stockées sur un disque dur. Elles sont gravées temporairement. La manière dont les données sont organisées sur le disque dur n’est pas la même en logique. © Sophie Mouton 11 Index L'accès à une ligne via un identifiant prend généralement de 10 à 20 millisecondes. On définira généralement un index sur les colonnes qui constituent un identifiant (pour accélérer l'accès et la vérification avant insertion d'une ligne). On définira souvent un index sur les colonnes qui constituent une clé étrangère (pour accélérer l'accès et la vérification avant suppression d'une ligne). On définira souvent un index sur les colonnes qui constituent une condition de sélection fréquemment utilisée. On met un index sur LOCALITE. Donc le SGBD crée une table de métadonnées avec toutes les localités. A chaque fois qu’on insère une ligne, il va prendre la localité et la mettre dans les métadonnées. Quand je pose une question, au lieu de parcourir des millions de lignes, je cherche dans les métadonnées la valeur et ça va aller plus vite. Par table, on peut aller jusque 206 index. On met toujours un index sur la clé primaire et la clé étrangère. Quand on questionne plusieurs tables, on crée des index sur ces 2 là pour naviguer plus rapidement entre les différentes tables. Où la probabilité est la plus grande, je mets un index. Soit manuellement soit par le monitoring. Acc = indexé Espace de stockage La table est une collection de lignes dont les éléments doivent être stockés sur un disque. Les lignes seront rangées dans un espace spécial qui leur est réservé : un espace de stockage. L'espace correspond à un fichier occupant tout ou une partie d'un disque (voire de plusieurs disques). Un espace de stockage est caractérisé notamment par son adresse, son volume initial, la manière dont il grandit ou se réduit selon les besoins, les tables dont il accueille les lignes, la technique de rangement des lignes. Fichier data : espace qu’on crée pour aller enregistrer les données. Fichier log : espace destiné à enregistrer toutes les transactions que l’on fait. Pourquoi on enregistre les transactions ? Roll back pour revenir en arrière ou pour les backups. © Sophie Mouton 12 Chapitre 3 – Le langage SQL DDL 3.1 INTRODUCTION DDL Le sous-langage DDL (Data Definition Language) de SQL permet de créer les tables, contraintes, colonnes, clés. Il permet de créer des structures de données et de les modifier. Langage standardisé mais les éditeurs de SGBD ont pris beaucoup de libertés : - concepts non repris - concept additionnels non standard - interprétation personnelle de certains concepts Certains concepts sont ignorés par le standard. Les opérations du DDL - Création d’un schéma, - Création d’une table (colonnes (obligatoire), domaine, identifiants primaire et secondaires, clés étrangères,…) - Suppression d’une table - Ajout, suppression, modification d’une colonne - Ajout, suppression d’une contrainte - Ajout, suppression d’un index - Création d’un espace de stockage 3.2 CRÉATION D’UN SCHÉMA Création d’un schéma Il faut associer un schéma avec une base de données. Schéma : nom de la BD qui permet de l’identifier de manière unique. Connexion à une base de données Déconnexion 3.3 CRÉATION D’UNE TABLE Création d’une table et de ses colonnes © Sophie Mouton 13 Les types de base Un format de données : espace contraignant de valeurs pour une donnée. Définition d’un domaine Utilisation d’un domaine Les colonnes obligatoires Une colonne est facultative par défaut. Il faut déclarer explicitement les colonnes obligatoires. + contrainte de colonne obligatoire Valeur par défaut d’une colonne Sera assignée à la colonne si on ne spécifie pas de valeur lors de la création d'une ligne. Si on supprime Paris, obligé de mettre une nouvelle valeur. Si on supprime B1, ok pas de soucis. Noms de structure : pas entre guillemets Valeur : entre des guillemets © Sophie Mouton 14 Si un décimal change, c’est facile. On peut changer juste à un endroit dans la définition de mon domaine, au niveau du format. Les identifiants primaires (primay key) + contrainte d’unicité Les identifiants secondaires (candidate key) + contrainte d’unicité Les clés étrangères (foreign key) + c. d’intégrité référentielle Variante : contraintes de colonne Si sur ma clé primaire j’ai du char(10), je dois avoir du char(10) sur ma clé étrangère !! Même format ! Lorsqu’une clé étrangère pointe vers une clé primaire, il faut que la clé étrangère ait toujours le même format que la clé primaire. © Sophie Mouton 15 Variante : contraintes nommées Avantage de donner un nom aux clés primaires et étrangères : on peut la supprimer. Quand est-ce qu’on supprime une contrainte ? Lors de migration (2 types) : Quand migration de données, je transfère les données vers une nouvelle structure. Si je laisse les contraintes actives, le nouveau serveur qui reçoit la donnée va devoir vérifier chaque donnée et si des contraintes sont violées ou non. Donc on supprime temporairement les clés primaires et étrangères. Suppression d’une table Attention, opération sous haute surveillance ! la table ne doit plus être référencée par une clé étrangère; la table DETAIL (ou sa clé étrangère vers COMMANDE) doit avoir été supprimée. Quand drop table, c’est définitif, pas de retour en arrière. 3.4 MODIFICATION D’UNE TABLE Ajout, retrait et modification d’une colonne = je modifie la table PRODUIT en ajoutant une colonne POIDS (format : entiers). = je modifie la table PRODUIT en supprimant la colonne PRIX. = je modifie la table CLIENT en modifiant la valeur pas défaut de la colonne CAT en la mettant à 0. = je modifie la table CLIENT en supprimant la valeur par défaut de la colonne CAT. © Sophie Mouton 16 Ajout et retrait d’une contrainte Variantes : contraintes nommés pour réactiver une contrainte Suppression d’une contrainte nommée Pour drop une contrainte, il faut qu’elle soit nommée. 3.5 LES STRUCTURES PHYSIQUES Les index Index qui porte sur les clés primaires Index qui porte sur autre chose Par défaut, rangement de manière ascendante. Suppression Les espaces de stockage (si espace vide) © Sophie Mouton 17 3.6 EXEMPLES Étapes 1° on crée la base de données 2° on crée les espaces de stockage 3° on crée les tables 4° on crée les indexes Traduire ce schéma en SQL © Sophie Mouton 18 Chapitre 4 – Le langage SQL DML (1) 4.1 INTRODUCTION DML Le sous-langage DML (Data Manipulating Language) de SQL permet de consulter le contenu des tables et de les modifier. Ils se composent de 4 opérations principales : - Transactions o Insert : requête qui insère de nouvelles lignes dans une table o Delete : requête qui supprime des lignes d'une table o Update : requête qui modifie les valeurs de colonnes de lignes existantes - Select : requête qui extrait des données des tables Ce chapitre étudie la requête select opérant sur une seule table. Toute requête select renvoie un résultat sous la forme d'une table. En principe, une requête select peut opérer sur le résultat d'une autre requête select; vrai en SQL3 mais limité en SQL2. SQL est un langage imparfait, mais c'est tout ce dont on dispose : quand on n'a pas ce que l'on aime, il faut aimer ce que l'on a ! 4.2 EXTRACTION SIMPLE Select… From… Afficher le numéro de client, le nom et la localité depuis la table CLIENT. Select… From… Where… Je peux limiter avec un critère « where » Afficher le NCLI et le nom depuis la table CLIENT uniquement pour ceux qui habitent à Toulouse. Select distinct… Pour supprimer les doublons à l’affichage 4.3 CONDITIONS PLUS COMPLEXES Valeurs null CAT = null à Afficher les numéros de client des clients qui n’ont pas de catégorie. CAT is null à ??? CAT is not null à Afficher les numéros de client des clients qui ont une catégorie. © Sophie Mouton 19 In et between CAT in : séquence de choix, soit … soit … (attention, pas la même chose que ) LOCALITE not in : séquence de choix, ni … ni … COMPTE between : intervalle ouvert (compris) Les masques CAT like : tel que « commence par B suivi de n’importe quelle chaine de caractères » _ : 1 seul caractère __ : 2 caractères % : une chaine quelconque Un masque définit une famille de chaines de caractères : Combinaisons logiques « Affichez-moi le nom, l’adresse et les comptes en banque des clients qui habitent Toulouse et qui ont un compte débiteur ». « Affichez-moi le nom, l’adresse et les comptes en banque des clients qui ont un compte créditeur et qui sont de catégorie C1 ou qui habitent Paris ». !! Attention : il manque le from !! © Sophie Mouton 20 4.4 DONNÉES EXTRAITES ET DONNÉES DÉRIVÉES Au plus un langage est contraignant, au plus il est performant et optimisé. (OZ) >< langage permissif. Il n’y a qu’une seule manière exacte d’écrire une ligne. Expressions de calcul Créer une colonne virtuelle à l’affichage. On crée un alias de select. Renommer virtuellement la colonne, pour avoir d’autres noms. Moteur SGBD lit d’abord le from puis la table produit, du coup les colonnes. Valeur_TVA, il ne connait pas. Donc il faut mettre 0,21 * PRIX * QSTOCK, fait partie de la table, il connait. Les fonctions SQL Outre les 4 opérations arithmétiques, SQL offre une large gamme de fonctions. +- 10.000 fonctions définies dans SQL (9.600). Valeurs rentrent dans ma fonction (boite noire), vont être traitées, à la sortie j’ai d’autres valeurs. Chaines de caractères TRIM : 3 arguments : both / left / right ??? Prend la table client, affiche la colonne adresse, regarde si il y a un espace blanc avant ou après // : concaténation, ne s’applique qu’à des chaines de caractères UPPER : affiche toutes les localités en majuscule LOWER : affiche toutes les localités en minuscule POSITION : regarde si « neuve » est dans le nom et à quelle position Si oui, nombre indiquant la position. Si non, 0. © Sophie Mouton 21 Conversion de type Convertir le format date en format char Select NOM // ‘ ‘ // cast (date de naissance as char(12)) Conversion explicite Quand on écrit dans un ordi un caractère il a toujours une correspondance en code ASCII. Fonctions temporelles Extraire juste l’année d’une date Fonction de sélection 3 colonnes : NCLI, CAT, LOCALITE. J’applique une sélection sur CAT. Prendre les valeurs à partir de la première lettre. Si c’est A, tu verras bon Si c’est B, tu verras moyen Si c’est C, tu verras occasionnel From 3 for 1 : 3ème lettre From 3 for 2 : 3ème et 4ème lettre 4.5 LES FONCTIONS AGRÉGATIVES Afficher la ville (Namur), la moyenne des comptes bancaires clients qui habitent à Namur (-2520, compte débiteur), l’écart maximum qu’il y a entre le compte le plus bas (min) et le compte le plus haut (max) (4580) et le nombre de clients qui habitent Namur (4). à Afficher le prix total du stock des produits mais uniquement ceux libellés ‘sapin’. Fonctions d’agrégations (5) : count, sum, min, max, avg © Sophie Mouton 22 Attention aux valeurs dupliquées à Afficher le nombre distinct de clients qui ont passé commande à Afficher le nombre de clients distincts qui ont passé commande. à à Attention aux ensembles vides à 4.6 LES SOUS-REQUÊTES Les numéros des clients de Namur : à Les numéros des commandes des clients de Namur : En bleu la sous-requête. En noir la requête principale. Toujours lire du bas vers le haut © Sophie Mouton 23 Condition d’association Une condition in (sous-requête) correspond le plus souvent à une condition d’association. « On recherche les T qui sont associés à des S qui … » Forme négative des conditions d’association Quelles sont les commandes qui ne spécifient pas le produit PA60 = qui ne sont pas associées à un détail spécifiant PA60. ?? différent de (quand juste 1 choix) Plusieurs numéros de produit dans une seule commande, donc dans le 2e, il affiche des numéros de commande qui ont des PA60. 1) Tu me sors les numéros de commande que quand associé à PA60, maintenant affiche moi ceux que tu n’auras pas pris. Donc, tu affiches tous les numéros de commande sauf ceux que tu m’as ramené. 2) Si plusieurs fois même numéro de commande, quand on l’a une fois sans PA60 on va le prendre, mais il va peut-être revenir avec PA60 mais on l’aura déjà pris. Ça fonctionne ligne par ligne. à La seule façon d’exprimer une fonction de non-association c’est avec le not in ou not exists Références multiples à une même table C est une variable qui a chaque instant référence la ligne courante de CLIENT dans la requête externe (on suppose qu’on examine successivement les lignes de CLIENT). Requête dont la sous-requête ne peut être calculée de la requête du haut. Deux tables : C et CLIENT (les mêmes) On bloque la 1ère ligne de C, on regarde la localité , on calcule la moyenne des comptes en banque de cette localité dans CLIENT, on affiche (ou pas) la ligne de C si le compte en banque de ce client est plus grand que la moyenne. © Sophie Mouton 24 Condition d’association quantifiée Afficher le numéro de commande, la date de la commande et le numéro de client uniquement pour les commandes qui comprennent plus de 2 produits (ou au moins 3 détails). 4.7 LES QUANTIFICATEURS ENSEMBLISTES Exists et not exists Le prédicat exists (E), où E est une sous-requête, est vrai si l’ensemble désigné par E est non vide. Le prédicat not exists (E), est vrai si l’ensemble désigné par E est vide. Quels sont les produits pour lesquels il existe au moins un détail ? Sous-requête Deux expressions d’une condition d’association Pour tout Curieusement, SQL ne permet pas d’exprimer directement le quantificateur pour tout. Pour tout n’existe pas. Donc on va utiliser exists. La logique nous apprend que : à La négation de l’existence de x et la négation du prédicat de x Quelles sont les commandes qui spécifient tous les produits ? © Sophie Mouton 25 Chapitre 5 – Le langage SQL DML (2) 5.1 LES JOINTURES Dans select, l’info vient toujours que d’une seule table. Dans les jointures, plusieurs tables. La jointure permet de produire une table constituée de données extraites de plusieurs tables. Une jointure sert principalement dans les requêtes où il faut afficher les résultats de plusieurs tables ou dans une seule table mais conditions de sélections dans plusieurs tables. Structure d’une requête de jointure Variantes Jointure lien entre clé primaire et clé étrangère, contrainte d’intégrité référentielle. 2 tables, 1 condition de jointure 3 tables, 2 conditions de jointure © Sophie Mouton 26 Produit relationnel Produit relationnel, produit cartésien (on prend un ensemble A et tous les éléments de A vont être projetés dans l’ensemble B) Chaque ligne de COMMANDE est couplée avec chaque ligne de CLIENT. Donc pas de condition de jointure, prendre le 1er client et l’associer à toutes les commandes puis prendre le 2e et l’associer à toutes les commandes,… à Requête valide mais d’utilité réduite. Notion de ligne célibataire La requête ignore les lignes de CLIENT qui n’ont pas de lignes correspondantes dans COMMANDE. Ces lignes de CLIENT sont dites célibataires. à Création de colonne fictive ‘—‘ Quels sont les clients pour lesquels il n’existe pas de commandes ? Quelles sont les commandes pour lesquelles il n’existe pas de clients ? Sous-requêtes ou jointures ? MAIS… © Sophie Mouton 27 La sous-requête permet de formuler - Une condition d’association (in) - Une condition de non-association (not in) La jointure permet de formuler - Une condition d’association (in) Peut-on remplacer une sous-requête par une jointure ? Si la sous-requête exprime une condition d’association, ok on peut remplacer par une jointure MAIS si la sous-requête exprime une condition de non-association, pas ok. Quand je veux afficher le résultat provenant de plusieurs tables, mais que j’ai une condition de non- association, qu’est-ce que j’utilise ? Combinaison de la jointure et de la requête imbriquée. D’abord jointure puis dedans sous-requête avec la condition de non-association. Valeurs dérivées dans une jointure 5.2 OPÉRATIONS ENSEMBLISTES Pas de problèmes pour deux ensembles. Mais qu'en est-il pour deux tables ? Union : tout l’ensemble Intersect : ceux en commun Except : ceux qui restent Les ensembles Opérateurs ensemblistes entre 2 tables sans doublons © Sophie Mouton 28 Les multi-ensembles Opérateurs ensemblistes entre 2 tables avec doublons Opérateurs multi-ensemblistes entre 2 tables avec doublons à Si on veut que les doublons s’affichent, on ajoute all. Expressions complexes Les opérateurs peuvent être combinés © Sophie Mouton 29 La jointure externe Jointure où je prends la jointure et je cherche les externalités de la jointure. 3 types : - Jointure externe de droite (lignes célibataires de CLIENT) - Jointure externe de gauche (lignes célibataires de COMMANDE) - Jointure externe full (lignes célibataires de commande UNION jointure UNION lignes célibataires de client : on prend les 2 externalités et l’union) 5.3 STRUCTURES CYCLIQUES Structure directe 1 table, 1 clé primaire, des colonnes et une de ces colonnes est une clé étrangère qui pointe sur la même table. Associer à chaque subordonné le numéro et le nom de son responsable : Associer à chaque personne de nom ‘Dupont’ le numéro et le nom de son responsable : Table S : 1ère ligne Dupont (nom personne), on bloque, P5 (numéro responsable) Table R : P5, on bloque, nom Marc (nom responsable) En SQL2, il n'est pas possible de retrouver en une seule requête tous les responsables (ou les subordonnés) directs et indirects d'une personne. En SQL3 : on pourra utiliser une requête récursive. © Sophie Mouton 30 Structure indirecte Ex : fluo à 3 produits (le produit composite qui se compose d’une quantité de p2 et d’une quantité de p3) Structure typique d’une nomenclature de produits ou Bill of material (BoM) Ex : p5 se compose de 7 quantités de p6 et de 2 quantités de p4. Donner la composition du produit p4 © Sophie Mouton 31 5.4 DONNÉES GROUPÉES Opérateur : group by On est obligé d’utiliser cet opérateur quand dans un select j’ai une ou plusieurs fonctions d’agrégations et que à côté de ça j’ai une colonne sans colonne d’agrégation. Il permet de mettre en avant les colonnes qui se trouvent dans mon select et qui n’ont pas de fonction agrégative. Ici, on s’intéresse aux localités et non plus aux clients. Localité : sans fonction d’agrégation à groupe by Sélection de groupes Quand groupe by et qu’on veut restreindre, on utilise having. Affiche moi les numéros de clients et le nombre de commandes réalisées par ce client uniquement pour les clients qui ont passé plus d’une commande. © Sophie Mouton 32 5.5 ORDRE ET INTERPRÉTATION Ordre des lignes du résultat Ordre dans lequel le SGBD lit les requêtes. Ordonnancement ascendant par défaut. Moyen de faire des doubles ordonnancement (ici, le premier ascendant par défaut et le 2ème descendant) Comment lire (écrire) une requête ? Éventuelles questions d’examens On nous donne une requête. Est-elle valide ? Si oui, pourquoi ? Si non, corrigez les erreurs. On nous donne une longue requête imbriquée. Traduisez-la en français. On nous donne 2 requêtes. Sont-elles équivalentes ? Si oui/non, pourquoi ? Expliquez c’est qu’est une conversion de type. On nous donne 2 tables. Écrivez une requête avec une jointure externe à droite/gauche/full. Peut-on remplacer une jointure par une sous-requête et inversement ? Expliquez. Écrire le DDL d’une structure cyclique directe et indirecte. Quand est-ce qu’un group by est obligatoire et quand est-ce qu’un having est obligatoire ? On nous donne une longue requête. Corrigez les erreurs. Détectez s’il y a une dépendance fonctionnelle anormale. Si oui, normalisez-la. Quelle est la différence entre une union et une jointure externe full ? Quelle est la différence entre une structure directe et indirecte ? © Sophie Mouton 33 La base de données Lexique Alias de colonne : permet de renommer le nom d'une colonne dans les résultats d'une requête SQL. Alias de table : permet d’attribuer un autre nom à une table dans une requête SQL. Ceci est particulièrement vrai lorsqu’il y a des jointures. Clé étrangère (ou foreign key) : un groupe de colonnes d'une table S tel qu'il existe, à tout moment, dans une table T, une ligne dont l'identifiant a pour valeur(s) celle(s) de ce groupe. La valeur de la clé étrangère sert à référencer une ligne de la table T. Une clé étrangère définit une contrainte d’intégrité référentielle. Une clé étrangère référence l'identifiant primaire de la table cible. Elle fait le lien entre les tables avec la clé primaire. On ajoute references NOM_TABLE. Composition : une clé primaire et une clé étrangère qui la référence doivent avoir la même composition, c’est-à-dire le même nombre de colonnes et des colonnes de mêmes types. Condition d’association : Deux formes de conditions d’association : la forme positive (in) et la forme négative (not in). Contrainte de colonne obligatoire : la contrainte oblige le SGBD à vérifier après toute transaction qu’il y ait bien une valeur. Une colonne facultative accepte une valeur nulle. Une colonne est facultative par défaut. Il faut déclarer explicitement les colonnes obligatoires avec not null. © Sophie Mouton 34 Contrainte d’unicité : la contrainte oblige le SGBD à vérifier après toute transaction que la valeur indiquée est bien unique pour l’ensemble de la colonne. Elle s’applique implicitement à la clé primaire. Contrainte d’intégrité référentielle : la contrainte oblige le SGBD à vérifier après toute transaction que toute valeur entrée au niveau de la clé étrangère existe préalablement dans la clé primaire vers laquelle elle pointe. Elle fait le lien entre clé étrangère et clé primaire. Conversion de type : fonction SQL qui permet de modifier temporairement le format de données d’une colonne (cast). Couche logique : représentation de la BD sous forme de tables, d’attributs et de contraintes d’intégrité référentielle. Couche physique : manière dont les données vont être réellement organisé sur le disque dur. DB (Data Base) : ou base de données, est une collection d’informations organisées afin d’être facilement consultables, gérables et mises à jour. Au sein d’une DB, les données sont organisées en lignes, colonnes et tableaux. Le principe: tout fait du domaine d’application est enregistré une et une seule fois. Succès des bases de données : la facilité de traiter de l’information par un langage accessible à « monsieur tout le monde » et l’indépendance de la couche physique et la couche logique. DDL (Data Definition Language) : le sous-langage DDL de SQL permet de créer des tables, contraintes, colonnes, clés. Il permet de créer des structures de données et de les modifier. Dépendance fonctionnelle : il y a dépendance fonctionnelle lorsque la valeur d’une colonne détermine automatiquement la valeur d’une ou de plusieurs autres colonnes. Dépendance fonctionnelle anormale : il y a dépendance fonctionnelle anormale le déterminant n’est pas identifiant/clé primaire de la table. Il y a donc un problème de redondance. Comment la normaliser ? On scinde la table dans laquelle on retrouve la dépendance fonctionnelle anormale. On va regrouper les colonnes de la dépendance fonctionnelle dans une table où on la mettra identifiant primaire. Le résidu on le met dans une autre table avec une clé étrangère qui fait le lien. Domaine : ensemble, caractérisé par un nom, dans lequel des données peuvent prendre leurs valeurs. Données groupées : opérateur = group by. On est obligé d’utiliser cet opérateur quand dans un select j’ai une ou plusieurs fonctions d’agrégations et que à côté de ça j’ai une colonne sans colonne d’agrégation. Il permet de mettre en avant les colonnes qui se trouvent dans mon select et qui n’ont pas de fonction agrégative. Quand group by et qu’on veut restreindre, on ajoute having. DML (Data Manipulating Language) : le sous-langage DML de SQL permet de consulter le contenu des tables et de les modifier. Ils se composent de 4 opérations principales : insert, delete, update et select. Espace de stockage : espace lié à un fichier qui sera enregistré au niveau physique de ma BD et qui permet de définir au niveau de ce fichier la politique administrative sur les données qui s’y rattachent. Fonctions agrégatives (ou d’agrégation) : permettent d’effectuer des opérations statistiques sur un ensemble d’enregistrement. Les principales fonctions sont : count, sum, avg, min, max. Fonction d’association : la seule façon de l’exprimer c’est avec le in ou le exists. Fonction de non-association : la seule façon de l’exprimer c’est avec le not in ou le not exists. © Sophie Mouton 35 Format de données : un espace contraignant de valeurs pour une donnée. Identifiant : un groupe de colonnes d'une table T tel qu'il ne puisse, à tout moment, exister plus d'une ligne dans T qui possède des valeurs déterminées pour ces colonnes. La valeur de l'identifiant permet de désigner une ligne de T. Un identifiant définit une contrainte d'unicité. Une table peut posséder plusieurs identifiants. On choisit l'un d'eux, qu'on déclare primaire. Les autres sont dès lors secondaires. Identifiant minimal (ou clé candidate) : un identifiant est minimal si chacune de ses colonnes est nécessaire pour garantir la contrainte d'unicité. Identifiant primaire (ou clé primaire) : un champ qui permet d’identifier de manière unique chaque enregistrement. On ajoute primary key. Identifiant secondaire (ou clé secondaire) : une colonne sur laquelle on explicite la contrainte d’unicité mais qui n’est pas repris comme clé primaire dans ma table. On ajoute unique. Indépendance de la couche physique et la couche logique : les données sont rangées 2 manières différentes. Organisation physique est différente que l’organisation logique. Un SGBD nous permet d’avoir une vue sur les données, de naviguer de 2 manières différentes. Les données sont stockées sur un disque dur. Elles sont gravées temporairement. La manière dont les données sont organisées sur le disque dur n’est pas la même en logique. Index : mécanisme physique qui permet de créer une méta table permettant de donner un accès plus rapide aux données. Jointure : permet de produire une table constituée de données extraites de plusieurs tables. Cela permet d’exploiter la puissance des bases de données relationnelles pour obtenir des résultats qui combinent les données de plusieurs tables de manière efficace. La jointure permet de formuler une condition d’association (in). On l’utilise lorsqu’on veut faire apparaitre des colonnes venant de plusieurs tables. Masque : un masque de saisie permet de guider la saisie des données dans une table ou un formulaire, lorsque ces données ont des propriétés communes (ex : une ville doit commencer par S). OCR (Optical Character Recognition) : ou la reconnaissance optique de caractères, signifie reconnaissance de texte, une technologie qui vous permet de convertir différents types de documents tels que les documents papiers scannés, les fichiers PDF ou les photos numériques en fichiers modifiables et interrogeables. Un ordinateur réclame pour l'exécution de cette tâche un logiciel d'OCR. Opérations ensemblistes : Les opérateurs ensemblistes sont des relations binaires (c'est à dire entre deux relations) portant sur des relations de même schéma. Le langage SQL permet de réaliser sur un groupe de deux tables les trois opérations de base de la théorie des ensembles, c'est à dire : l'union, l'intersection et la différence (union, intersect, except). Quantificateurs ensemblistes : une condition peut porter sur l’existence (exists) ou l’inexistence (not exists) d’au moins une ligne dans le résultat d’une sous requête. Redondances internes : va à l’encontre du principe des bases de données. Il y a redondance interne dès qu'il existe un déterminant qui n'est pas identifiant/clé primaire de la table. © Sophie Mouton 36 Requête : en traitement de base de données, une interrogation de la base. Le client reçoit comme réponse des éléments de cette base correspondant aux critères définis dans la requête. Dans le cas particulier des bases de données relationnelles, le format standard de requête est le SQL. Requête imbriquée (ou sous-requête) : consiste à exécuter une requête à l’intérieur d’une autre requête. La sous-requête permet de formuler une condition d’association (in) et une condition de non- association (not in). On peut l’utiliser dans tous les cas SAUF lorsqu’on veut faire apparaitre des colonnes venant de plusieurs tables. Dans ce cas-là, on utilise une jointure. Schéma : le schéma d'une table définit sa structure. Il spécifie notamment le nom de la table, pour chaque colonne : son nom, son type (format) et son caractère obligatoire (contraintes), l'identifiant primaire, les identifiants secondaires éventuels et les clés étrangères éventuelles. SGBD (Système de Gestion de Base de Données) : une plateforme logicielle qui a 4 fonctions : créer la structure qui va accueillir les données, stocker l’information, manipuler l’information et administrer des données (les sécuriser, les rendre disponibles, faire des backups, monitoring, duplication, gérer des droits d’accès,…) SQL (Structured Query Langage) : langage informatique normalisé servant à exploiter des bases de données relationnelles. La partie langage de manipulation des données de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des données dans les bases de données relationnelles. 3 opérateurs de base : select, from, where Structure cyclique : type de structure où il n’existe qu’un seul chemin pour passer d’une table à l’autre. Structure directe : 1 table, 1 clé primaire, des colonnes et une de ces colonnes est une clé étrangère qui pointe sur la même table. Table : dans les bases de données relationnelles, une table est un ensemble de données organisées sous forme d'un tableau où les colonnes correspondent à des catégories d'information et les lignes à des enregistrements, également appelés entrées. Table non-normalisée : une table qui est le siège d'une dépendance fonctionnelle anormale. Pour la normaliser, il faut décomposer la table de manière à éliminer ses dépendances. Table normalisée : une table sans dépendance fonctionnelle anormale. Transaction : toute opération qui vient modifier l’état d’une donnée dans une BD en insérant, supprimant ou modifiant les données. Lors d’une transaction, le SGBD va vérifier si une contrainte est violée ou pas. © Sophie Mouton 37

Use Quizgecko on...
Browser
Browser