Contexte
Durée : 2h
Environnement de travail : DB Fiddle
Pré-requis : Aucun
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Les BD sont nées à la fin des années 1960 pour combler les lacunes des systèmes de fichiers et faciliter la gestion qualitative et quantitative des données informatiques. Les SGBD sont des applications informatiques permettant de créer et de gérer des BD (comme Oracle ou PostgreSQL par exemple).
Les BD relationnelles, issues de la recherche de Codd chez IBM, sont celles qui ont connu le plus grand essor depuis les années 1970, et qui reste encore aujourd'hui les plus utilisées. On utilise des SGBDR pour les implémenter. Le langage SQL est le langage commun à tous les SGBDR, ce qui permet de concevoir des BD relativement indépendamment des systèmes utilisés.
Les usages de BD se sont aujourd'hui généralisés pour entrer dans tous les secteurs de l'entreprise, depuis les petites bases utilisées par quelques personnes dans un service pour des besoins de gestion de données locales, jusqu'aux bases qui gèrent de façon centralisée des données partagées par tous les acteurs de l'entreprise.
L'accroissement de l'utilisation du numérique comme outil de manipulation de toutes données (bureautique, informatique applicative, etc.) et comme outil d'extension des moyens de communication (réseaux), ainsi que les évolutions technologiques (puissance des PC, Internet, etc.) ont rendu indispensable, mais aussi complexifié la problématique des BD.
Les conséquences de cette généralisation et de cette diversification des usages se retrouvent dans l'émergence de solutions conceptuelles et technologiques nouvelles, notamment les bases de données du mouvement NoSQL, particulièrement utilisées par les grands acteurs du web.
Plan du cours
Ce module introduit les concepts fondamentaux des bases de données relationnelles. Qu'est-ce qu'une base de données ? un système de gestion de bases de données ? une donnée relationnelle ? une application de base de données ?
Il permet également de découvrir l'IDE web DB Fiddle permettant d'écrire et exécuter du code SQL afin de créer des bases de données relationnelles.
Base de données
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Connaître le concept de données ;
Connaître le concept de bases de données.
Mise en situation
La base de l'informatique, c'est de travailler sur des données. Tout est donnée : des caractères que vous entrez au clavier aux photos que vous prenez avec votre téléphone, en passant par les couleurs des pixels de votre écran.
Les données sont donc aussi la base des applications web : un message, un contact, un profil, une commande, etc. Chacun de ces exemples a un point commun : une structure pré-définie. Un contact aura un nom et un prénom, une commande aura un prix et une adresse d'expédition, un message aura une date d'envoi et un auteur, etc. Comment les stocker efficacement ?
C'est précisément dans ce but que l'on utilise des bases de données : elles facilitent grandement le stockage d'un ensemble de données qui répondent à une structure logique.
Logiciel et données
Un logiciel informatique est composé de programmes, c'est à dire :
d'instructions,
et de données auxquelles s'appliquent ces instructions.
Définition : Définition lâche de base de données : un ensemble de données
On appelle parfois base de données tout ensemble de données stocké numériquement et pouvant servir à un ou plusieurs programmes. De ce point de vue des fichiers sur un disque dur, un fichier de tableur, voire un fichier de traitement de texte peuvent constituer des bases de données.
Définition : Définition restreinte de base de données : un ensemble de données structuré
On appellera base de données un ensemble de données numériques qui possède une structure ; c'est à dire dont l'organisation répond à une logique systématique.
On parlera de modèle logique de données pour décrire cette structure.
Exemple : Base de données relationnelle
Une base de données relationnelle permet d'organiser les données en tableaux (appelés relations).
espèce | eucaryote | multicellulaire | propriété |
---|---|---|---|
bactéries | false | false | |
archées | false | false | |
protistes | true | false | |
champignons | true | true | décompose |
végétaux | true | true | photosynthétise |
animaux | true | true | ingère |
Fondamental : Fonctions d'une base de données
Stocker l'information de façon fiable (c'est à dire être capable de restituer l'information entrée dans le système).
Traiter de grands volumes de données (massification).
Traiter rapidement les données (optimisation).
Sécuriser les accès aux données (gérer les autorisations selon les utilisateurs).
Contrôler la qualité des données (par exemple la cohérence par rapport à un modèle pré-établi).
Partager les données (entre plusieurs applications dédiées à plusieurs métiers).
Rendre accessible les données en réseau (gérer la concurrence des accès parallèles).
Etc.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Parmi les raisons suivantes, lesquelles justifient l'utilisation d'une base de données ?
S'abstraire des modalités de stockage physique de l'information.
Minimiser la redondance d'information.
Faciliter la mise à jour de données.
Contrôler la cohérence des données.
Sécuriser l'accès aux données.
Mieux gérer l'accès concurrent aux données.
Parmi les raisons suivantes, lesquelles justifient l'utilisation d'une base de données ?
S'abstraire des modalités de stockage physique de l'information.
Minimiser la redondance d'information.
Faciliter la mise à jour de données.
Contrôler la cohérence des données.
Sécuriser l'accès aux données.
Mieux gérer l'accès concurrent aux données.
Système de gestion de bases de données (SGBD)
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Connaître le concept de SGBD;
Connaître les SGBD les plus utilisés ;
Connaître la différence entre SGBD relationnel et SGBD non-relationnel.
Mise en situation
Lorsque l'on développe une application, on a souvent besoin de stocker des données, qui ont, la plupart du temps, des liens entre elles. Sur un réseau social, il y a des personnes qui peuvent interagir entre elles, s'envoyer des messages, se suivre, etc. Lorsque ces données deviennent très grandes, de l'ordre de plusieurs millions, il est inimaginable de les stocker dans un simple fichier, ou un tableur, qui ferait office de base de données.
Les systèmes de gestion de base de données, ou SGBD, sont des outils qui aident à manipuler des bases de données. Leur fonction est double : permettre de décrire la structure des données a priori, et gérer la cohérence des données et des liens entre elles.
Définition : Système de Gestion de Bases de Données
Un SGBD est un logiciel qui prend en charge la structuration, le stockage, la mise à jour et la maintenance d'une base de données. Il est l'unique interface entre les informaticiens et les données (définition des schémas, programmation des applications), ainsi qu'entre les utilisateurs et les données (consultation et mise à jour).
Exemple : Exemples de SGBD
Fondamental : Objectifs des SGBD
Indépendance physique des données ;
Indépendance logique des données ;
Manipulation des données par des non-informaticiens ;
Administration facilitée des donnée ;
Optimisation de l'accès aux données ;
Contrôle de cohérence (intégrité sémantique) des données ;
« Partageabilité »
des données ;Sécurité des données ;
Sûreté des données.
Complément :
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Enquête Wikipédia : à partir de la page Wikipédia sur les SGBD, classer les SGBDR en fonction de leur licence : fr.wikipedia.org/wiki/Système_de_gestion_de_base_de_données.
MariaDB Microsoft Access DB2 Oracle Database MySQL PostgreSQL SQLite Microsoft SQL Server |
Logiciel libre
|
Logiciel Freemium
|
|
Logiciel propriétaire
|
Enquête Wikipédia : à partir de la page Wikipédia sur les SGBD, classer les SGBDR en fonction de leur licence : fr.wikipedia.org/wiki/Système_de_gestion_de_base_de_données.
Logiciel libre
PostgreSQL
MariaDB
SQLite
|
|
Logiciel Freemium
MySQL
|
|
Logiciel propriétaire
Oracle Database
Microsoft Access
Microsoft SQL Server
DB2
|
PostgreSQL, SQLite et MariaDB sont des logiciels libres : leur code est disponible ouvertement à l'inspection à l'exécution, et est modifiable.
Oracle est une solution propriétaire gérée par l'entreprise éponyme. DB2 est la solution d'IBM. Microsoft propose un SGBDR classique (SQL Server) et une solution plus modeste pour des usages bureautique (Access).
MySQL est une solution freenium d'Oracle : c'est un logiciel ouvert et libre mais il existe des licences propriétaires pour des usages commerciaux.
Introduction à DB Fiddle
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Savoir utiliser l' interpréteur SQL en ligne DB Fiddle.
Mise en situation
Il existe une grande diversité de systèmes de gestion de base de données : chacun est bien adapté à une situation donnée : de gros volumes, comme pour un moteur de recherche ? Besoin d'une cohérence parfaite, comme pour des transactions bancaires ?
Avant de faire un choix, il est utile de tester les différents SGBD, prendre en main leur syntaxe et choisir celui qui répond à vos besoins.
Mais installer tous les SGBD sur votre machine peut-être long et pénible. Dans ce module, vous apprendrez à utiliser DBFiddle, une application web qui permet de tester plusieurs SGBD sans aucune installation préalable.
Définition : Interpréteur SQL
Un interpréteur SQL est un programme qui traite des commandes fournies par l'utilisateur pour interagir avec une base de données. On parle parfois de REPL pour Return Eval Print Loop.
Définition : DB Fiddle
DB Fiddle est un interpréteur SQL en ligne, il est disponible sur le Web et il permet de créer et exécuter du code SQL sans installer de SGBD.
Méthode : Créer une BD
Pour créer une base de données (commande SQL CREATE TABLE) ou gérer les données (commande SQL INSERT, UPDATE, DELETE) il faut insérer le code SQL correspondant dans la partie gauche puis cliquer sur (ou CTRL+RETURN au clavier).
Méthode : Interroger une BD
Pour poser des question à la base de données (commande SQL SELECT) il faut ajouter le code SQL correspondant dans la partie droite puis cliquer sur (ou CTRL+RETURN au clavier).
Exemple :
Il est possible de tester DB Fiddle avec ce code de type Hello World.
/** DB creation */
CREATE TABLE word (
name VARCHAR(15)
);
INSERT INTO word VALUES('Hello');
INSERT INTO word VALUES('World');
/** DB query */
SELECT *
FROM word;
Méthode : Choisir un SGBD
En haut à gauche un menu déroulant permet de choisir le type de SGBD à utiliser. On travaillera par défaut avec la dernière version de PostgreSQL ou de MySQL.
Complément : DB Disco
DB Disco est une alternative à DB Fiddle limitée à PostgreSQL.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Copier ces commandes dans un interpréteur SQL.
CREATE TABLE liste(
nombre INT
);
INSERT INTO liste VALUES (2);
INSERT INTO liste VALUES (7);
INSERT INTO liste VALUES (3);
SELECT MAX(nombre) FROM liste;
Quel est le résultat de l'exécution de ce code ?
Copier ces commandes dans un interpréteur SQL.
CREATE TABLE liste(
nombre INT
);
INSERT INTO liste VALUES (2);
INSERT INTO liste VALUES (7);
INSERT INTO liste VALUES (3);
SELECT MAX(nombre) FROM liste;
Quel est le résultat de l'exécution de ce code ?
Application de base de données
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Connaître la différence entre une application et une base de données ;
Savoir citer quelques exemples d'application de bases de données.
Mise en situation
Avez-vous déjà utilisé une base de données ? Lorsque vous effectuez des achats en ligne, avez-vous l'impression de manipuler directement une base de données ?
Probablement pas, car une base de données seule n'est pas directement utilisable par un utilisateur humain : elle n'est utilisable que par les informaticiens qui connaissent son langage de programmation et par les applications qui ont été programmées pour s'en servir.
Une base de donnée va donc souvent de pair avec une application, qui est l'interface entre les utilisateurs et les données elles-mêmes.
Définition : Application de base de données
On appelle application de base de données un logiciel informatique permettant à un utilisateur final de manipuler (lire ou écrire) les données d'une base de données.
Exemple : Application web
Une application web est composée d'interfaces en HTML qui permettent d'écrire et de lire des données dans une base de données, via un langage applicatif, comme par exemple PHP.
Exemple : Application web Mastodon
Exemple : Application de bureau Access
Avec un logiciel comme Access on peut réaliser à la fois une base de données et une application permettant de manipuler cette base de données pour des besoins bureautiques simples.
Exemple : Une application en programmation
Exemple : Compagnie aérienne
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Parmi les options suivantes, lesquelles correspondent à des applications de bases de données ?
SQLite
Le logiciel d'une caisse enregistreuse de supermarché
Une application de SMS sur téléphone
Parmi les options suivantes, lesquelles correspondent à des applications de bases de données ?
SQLite
Le logiciel d'une caisse enregistreuse de supermarché
Une application de SMS sur téléphone
Twitter, une alternative à Mastodon, est une application web de bases de données.
SQLite
SQLite n'est pas une application de bases de données, c'est un système de gestion de bases de données (SGBD).
Le logiciel d'une caisse enregistreuse de supermarché
Le logiciel d'une caisse enregistreuse de super marché peut être vu comme une application de bases de données : les informations de tous les produits sont stockées à l'achat pour comptabilité.
Une application de SMS sur téléphone
Une application de SMS sur téléphone peut être vue comme utilisant une base de données de SMS. Le plus souvent, cette base de données est stockée directement sur le téléphone dans certains cas elle peut être stockée sur des serveurs distants.
Donnée (en relationnel) : table, objet, propriété, domaine, atomicité
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Connaître le concept de relation (ou table) ;
Savoir représenter des données simples en relationnel ;
Connaître le concept de donnée atomique.
Mise en situation
Prenez une application de vente de livres en ligne : quelles sont les données qu'il faut gérer ? En vrac, on peut penser aux livres, aux auteurs, aux clients, aux éditeurs, etc.
Si vous deviez réaliser une base de données simplifiée pour stocker ces différentes entités, il est probable que vous dessiniez des tableaux : un tableau pour les auteurs, un tableau pour les clients, etc.
Et ça tombe bien, car ce sont exactement ces tableaux que l'on appelle relations, et qui sont à la base du modèle relationnel.
Rappel : Base de données relationnelle
Une base de données relationnelle permet d'organiser les données en tables (appelées relations).
Chaque case de la table contient une information atomique.
Définition : Ligne (objet)
Chaque ligne de la table correspond à un objet que l'on veut gérer dans la base de données : une voiture, une personne, une espèce, etc.
On parle aussi d'enregistrement.
Fondamental :
Toutes les lignes d'une même table correspondent à des objets du même type, donc dans une table, on met soit des voitures, soit des personnes, mais on ne mélange pas les deux.
Définition : Colonne (propriété)
Chaque colonne de la table correspond à une propriété des objets qui se trouvent dans la table ; tous les objets de la table partagent donc les mêmes propriétés.
On parle aussi d'attribut.
Définition : Domaine
Chaque colonne de la table est associée à un domaine de valeur fixé a priori, par exemple : entier, texte, booléen, etc.
On parle aussi de type de données.
Définition : Cellule (donnée en relationnel)
Une donnée en relationnel, c'est le contenu d'une cellule d'une table, qui correspond à la propriété d'un objet.
propriété 1 domaine : d1 | propriété 2 domaine : d2 | ... |
---|---|---|
objet1, donnée 1 | objet1, donnée 2 | ... |
objet2, donnée 1 | objet2, donnée 2 | ... |
... | ... | ... |
Exemple :
espèce domaine : texte | eucaryote domaine : booléen | ... |
---|---|---|
bactéries | false | ... |
archées | false | ... |
... | ... | ... |
Attention : Atomicité (contre-exemple)
espèce, domaine : texte |
---|
bactéries : procaryotes unicellulaires |
archées : procaryotes unicellulaires |
protistes : eucaryotes unicellulaires |
champignons : eucaryotes multicellulaires qui décomposent |
végétaux : eucaryotes multicellulaires qui photosynthétisent |
animaux : eucaryotes multicellulaires qui ingèrent |
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Ordonner les mots pour compléter la table suivante :
Horodatage | Numéro Train | Prix payé (en €) | Classe |
---|---|---|---|
31-12-2019 14:35 | 67394 | 142.90 | 1 |
12-12-2019 14:35 | 68173 | (3) | 1 |
01-04-2019 9:30 | (2) | 53.90 | 2 |
(1) | 67399 | 34.90 | 2 |
04-12-2019 13:50 | 68137 | 3.30 | (4) |
Ordonner les mots pour compléter la table suivante :
Horodatage | Numéro Train | Prix payé (en €) | Classe |
---|---|---|---|
31-12-2019 14:35 | 67394 | 142.90 | 1 |
12-12-2019 14:35 | 68173 | (3) | 1 |
01-04-2019 9:30 | (2) | 53.90 | 2 |
(1) | 67399 | 34.90 | 2 |
04-12-2019 13:50 | 68137 | 3.30 | (4) |
Langage de données : l'exemple du langage SQL
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectifs
Connaître la notion de langage orienté donnée ;
Savoir tester une instruction en SQL.
Mise en situation
Imaginez : vous développez une bibliothèque musicale, et vous avez identifié la structure des données que vous souhaitez gérer : les artistes d'un côté, les albums de l'autre, les playlists des utilisateurs, etc.
Au moment de passer à la pratique, vous vous demandez alors : comment expliquer cette structure au système de gestion de base de données ? Comment insérer de nouvelles données ? Comment récupérer les données existantes ?
La réponse tient en trois mots : grâce à SQL. Ce langage est le couteau suisse des bases de données, et permet aux développeurs de communiquer avec les SGBD.
Définition : Langage de données
Un langage de données est un langage informatique permettant de décrire et de manipuler les schémas et les données d'une BD.
Remarque : Synonyme
On parle aussi de langage orienté données.
Fondamental : SQL
SQL est le langage consacré aux SGBD relationnels et relationnels-objet.
Il permet de :
créer des tables, en définissant le domaine de chaque colonne ;
insérer des lignes dans les tables ;
lire les données entrées dans la base de données.
Exemple : Création de table en SQL (définition du schéma de données)
CREATE TABLE student (
number INTEGER PRIMARY KEY,
name TEXT,
city TEXT
);
Exemple : Insertion de ligne en SQL (création de données)
INSERT INTO student (number, name, city)
VALUES (1, 'Holmes', 'Londres');
Exemple : Manipulation de données en SQL (exploitation des données)
SELECT name
FROM student
WHERE city = 'Londres';
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Exécuter l'instruction textuelle SQL ci-dessous qui, permet de créer une table dans une base de données.
CREATE TABLE composition (
aliment TEXT,
calories FLOAT,
joules FLOAT,
glucides FLOAT,
protides FLOAT,
lipides FLOAT
);
INSERT INTO composition(aliment, calories, joules, glucides, protides, lipides)
VALUES ('Abricot', 277, 1158, 63.4, 4.6, 0.4);
SELECT aliment
FROM composition;
Quelle valeur de retour est obtenue ?
Exécuter l'instruction textuelle SQL ci-dessous qui, permet de créer une table dans une base de données.
CREATE TABLE composition (
aliment TEXT,
calories FLOAT,
joules FLOAT,
glucides FLOAT,
protides FLOAT,
lipides FLOAT
);
INSERT INTO composition(aliment, calories, joules, glucides, protides, lipides)
VALUES ('Abricot', 277, 1158, 63.4, 4.6, 0.4);
SELECT aliment
FROM composition;
Quelle valeur de retour est obtenue ?
Essentiel
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Toute application a besoin de stocker des données. Mais une donnée, c'est assez abstrait, et si chaque application invente son propre système de stockage, la perte de temps et le risque d'erreurs sont immenses.
On utilise donc des bases de données. Lorsque les données sont structurées a priori, comme c'est le cas pour des personnes ou des musiques, on parle de base de données relationnelles.
Les systèmes de gestion de bases de données sont des outils qui permettent aux informaticiens de manipuler des bases de données. Comment ? Grâce au langage SQL, qui permet de communiquer avec quasiment tous les SGBD, en ayant besoin d'apprendre une seule syntaxe.
Pour tester les différents SGBD sans avoir à les installer sur votre ordinateur, vous pouvez utiliser l'application web DBFiddle.
Quiz
Synonymes
Quels sont les synonymes du mot relation au sens d'une base de données relationnelle ?
table
tableau
lien
association
ami
Quels sont les synonymes du mot ligne au sens d'une base de données relationnelle ?
propriété
objet
enregistrement
table
Quels sont les synonymes du mot colonne au sens d'une base de données relationnelle ?
valeur
type
propriété
attribut
Quels sont les synonymes du mot donnée au sens d'une base de données relationnelle ?
colonne
cellule
case
ligne
Quels sont les synonymes du mot domaine au sens d'une base de données relationnelle ?
propriété
type
données
ensemble de valeurs
Classer les SGBD suivants selon qu'ils sont essentiellement relationnel ou non-relationnel.
S'aider de Wikipédia le cas échéant.
Neo4j MongoDb Microsoft Access MariaDB 4D Elasticsearch DB2 PostgreSQL OrientDB Microsoft SQL Server Redis MySQL Cassandra |
SGBD relationnel
|
SGBD non-relationnel
|
Utiliser un interpréteur SQL en ligne comme DB Fiddle pour donner le résultat de l'exécution des codes SQL ci-après.
CREATE TABLE adresse (
pk_id INTEGER PRIMARY KEY,
nom VARCHAR(30),
prenom VARCHAR(30),
code_postal INTEGER,
ville VARCHAR(30)
);
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (1, 'Boulgakov', 'Mikhaïl', 60200, 'Compiègne');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (2, 'Tolstoï', 'Alexis', 60420, 'Dompierre');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (4, 'Gogol', 'Nikolaï', 60420, 'Mery-la-Bataille');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (5, 'Pouchkine', 'Alexandre', 60680, 'Canly');
SELECT ville
FROM adresse
WHERE nom='Tolstoï';
CREATE TABLE adresse (
pk_id INTEGER PRIMARY KEY,
nom VARCHAR(30),
prenom VARCHAR(30),
code_postal INTEGER,
ville VARCHAR(30)
);
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (1, 'Boulgakov', 'Mikhaïl', 60200, 'Compiègne');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (2, 'Tolstoï', 'Alexis', 60420, 'Dompierre');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (4, 'Gogol', 'Nikolaï', 60420, 'Mery-la-Bataille');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (5, 'Pouchkine', 'Alexandre', 60680, 'Canly');
SELECT MAX(code_postal)
FROM adresse;
CREATE TABLE voiture(
pk_immatriculation CHAR(7) PRIMARY KEY,
modele VARCHAR(30),
marque VARCHAR(30),
couleur VARCHAR(30)
);
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AA123AA', 'Clio', 'Renault', 'Noir');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AB123NB', '807', 'Peugeot', 'Bleu');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('DE001TR', 'Clio', 'Renault', 'Rouge');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AM007JB', '205', 'Peugeot', 'Rose');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('BK200OB', 'Cayenne', 'Porsche', 'Noir');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('ZX987FR', 'Twingo', 'Renault', 'Jaune');
SELECT couleur
FROM voiture
WHERE modele = '205';
CREATE TABLE voiture(
pk_immatriculation CHAR(7) PRIMARY KEY,
modele VARCHAR(30),
marque VARCHAR(30),
couleur VARCHAR(30)
);
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AA123AA', 'Clio', 'Renault', 'Noir');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AB123NB', '807', 'Peugeot', 'Bleu');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('DE001TR', 'Clio', 'Renault', 'Rouge');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AM007JB', '205', 'Peugeot', 'Rose');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('BK200OB', 'Cayenne', 'Porsche', 'Noir');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('ZX987FR', 'Twingo', 'Renault', 'Jaune');
SELECT LEFT(pk_immatriculation, 2)
FROM voiture
WHERE couleur='Noir' AND marque='Renault'
Indiquer quels attributs sont atomiques dans la table question
ci-dessous.
CREATE TABLE question (
label VARCHAR(255) PRIMARY KEY,
answer VARCHAR(255) NOT NULL,
questionnaire VARCHAR(255) NOT NULL
);
INSERT INTO question VALUES (
'1. Qui était roi de France de 742 à 814 ?',
'Charlemagne (Carolingiens)',
'Histoire'
);
INSERT INTO question VALUES (
'2. Qui était roi de France de 940 à 996 ?',
'Hugues Capet (Capétiens)',
'Histoire'
);
INSERT INTO question VALUES (
'3. Qui était roi de France de 1462 à 1515 ?',
'Louis XII (Valois)',
'Histoire'
);
label answer questionnaire |
Attribut atomique
|
Attribut non atomique
|
Synonymes
Quels sont les synonymes du mot relation au sens d'une base de données relationnelle ?
table
tableau
lien
association
ami
Quels sont les synonymes du mot ligne au sens d'une base de données relationnelle ?
propriété
objet
enregistrement
table
Quels sont les synonymes du mot colonne au sens d'une base de données relationnelle ?
valeur
type
propriété
attribut
Quels sont les synonymes du mot donnée au sens d'une base de données relationnelle ?
colonne
cellule
case
ligne
Quels sont les synonymes du mot domaine au sens d'une base de données relationnelle ?
propriété
type
données
ensemble de valeurs
Classer les SGBD suivants selon qu'ils sont essentiellement relationnel ou non-relationnel.
S'aider de Wikipédia le cas échéant.
SGBD relationnel
PostgreSQL
Microsoft Access
MySQL
4D
MariaDB
Microsoft SQL Server
DB2
|
|
SGBD non-relationnel
Neo4j
MongoDb
Cassandra
OrientDB
Redis
Elasticsearch
|
CREATE TABLE adresse (
pk_id INTEGER PRIMARY KEY,
nom VARCHAR(30),
prenom VARCHAR(30),
code_postal INTEGER,
ville VARCHAR(30)
);
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (1, 'Boulgakov', 'Mikhaïl', 60200, 'Compiègne');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (2, 'Tolstoï', 'Alexis', 60420, 'Dompierre');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (4, 'Gogol', 'Nikolaï', 60420, 'Mery-la-Bataille');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (5, 'Pouchkine', 'Alexandre', 60680, 'Canly');
SELECT ville
FROM adresse
WHERE nom='Tolstoï';
CREATE TABLE adresse (
pk_id INTEGER PRIMARY KEY,
nom VARCHAR(30),
prenom VARCHAR(30),
code_postal INTEGER,
ville VARCHAR(30)
);
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (1, 'Boulgakov', 'Mikhaïl', 60200, 'Compiègne');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (2, 'Tolstoï', 'Alexis', 60420, 'Dompierre');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (4, 'Gogol', 'Nikolaï', 60420, 'Mery-la-Bataille');
INSERT INTO adresse (pk_id, nom, prenom, code_postal, ville) VALUES (5, 'Pouchkine', 'Alexandre', 60680, 'Canly');
SELECT MAX(code_postal)
FROM adresse;
CREATE TABLE voiture(
pk_immatriculation CHAR(7) PRIMARY KEY,
modele VARCHAR(30),
marque VARCHAR(30),
couleur VARCHAR(30)
);
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AA123AA', 'Clio', 'Renault', 'Noir');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AB123NB', '807', 'Peugeot', 'Bleu');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('DE001TR', 'Clio', 'Renault', 'Rouge');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AM007JB', '205', 'Peugeot', 'Rose');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('BK200OB', 'Cayenne', 'Porsche', 'Noir');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('ZX987FR', 'Twingo', 'Renault', 'Jaune');
SELECT couleur
FROM voiture
WHERE modele = '205';
CREATE TABLE voiture(
pk_immatriculation CHAR(7) PRIMARY KEY,
modele VARCHAR(30),
marque VARCHAR(30),
couleur VARCHAR(30)
);
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AA123AA', 'Clio', 'Renault', 'Noir');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AB123NB', '807', 'Peugeot', 'Bleu');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('DE001TR', 'Clio', 'Renault', 'Rouge');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('AM007JB', '205', 'Peugeot', 'Rose');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('BK200OB', 'Cayenne', 'Porsche', 'Noir');
INSERT INTO voiture (pk_immatriculation, modele, marque, couleur) VALUES ('ZX987FR', 'Twingo', 'Renault', 'Jaune');
SELECT LEFT(pk_immatriculation, 2)
FROM voiture
WHERE couleur='Noir' AND marque='Renault'
Attribut atomique
questionnaire
|
|
Attribut non atomique
label
answer
|
L'attribut
label
possède deux informations : le numéro de question et la question en elle même.L'attribut
answer
possède deux informations : le nom du roi et sa dynastie.