Introduction générale aux bases de données relationnelles

Contexte

Durée : 2h

Environnement de travail : DB Fiddle

Pré-requis : Aucun

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

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éfinitionDé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éfinitionDé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.

ExempleBase de données relationnelle

Une base de données relationnelle permet d'organiser les données en tableaux (appelés relations).

Base de données de classification classique des espèces animales

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

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

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)

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éfinitionSystè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).

ExempleExemples de SGBD

FondamentalObjectifs 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

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

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éfinitionInterpré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éfinitionDB 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.

db-fiddle.com

Interface d'accueil DB Fiddle

MéthodeCré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éthodeInterroger 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éthodeChoisir 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.

Menu déroulant du clic droit sur interpréteur

ComplémentDB Disco

DB Disco est une alternative à DB Fiddle limitée à PostgreSQL.

pic.crzt.fr/dbdisco

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 ?

7

Application de base de données

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éfinitionApplication 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.

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

ExempleApplication web Mastodon

Mastodon, une plateforme de micro-blogging

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

Aperçu de Microsoft Access

ExempleUne application en programmation

ExempleCompagnie aérienne

Parmi les options suivantes, lesquelles correspondent à des applications de bases de données ?

Twitter

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 ?

Twitter

SQLite

Le logiciel d'une caisse enregistreuse de supermarché

Une application de SMS sur téléphone

Twitter

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é

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.

RappelBase 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éfinitionLigne (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éfinitionColonne (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éfinitionDomaine

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éfinitionCellule (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.

Une table ou relation ( en relationnel)

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

Exemple de relation instanciée

espèce

domaine : texte

eucaryote

domaine : booléen

...

bactéries

false

...

archées

false

...

...

...

...

AttentionAtomicité (contre-exemple)

Un mauvais exemple de relation : les données ne sont pas atomiques (il y a plusieurs données par case de la table)

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

Ordonner les mots pour compléter la table suivante :

Billets de train

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)

62940 128.90 03-08-2019 10:20 2

Ordonner les mots pour compléter la table suivante :

Billets de train

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)

03-08-2019 10:20 62940 128.90 2

Langage de données : l'exemple du langage SQL

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éfinitionLangage 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.

RemarqueSynonyme

On parle aussi de langage orienté données.

FondamentalSQL

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.

ExempleCréation de table en SQL (définition du schéma de données)

CREATE TABLE student (
number INTEGER PRIMARY KEY,
name TEXT,
city TEXT
);

ExempleInsertion de ligne en SQL (création de données)

INSERT INTO student (number, name, city) 
VALUES (1, 'Holmes', 'Londres');

ExempleManipulation de données en SQL (exploitation des données)

SELECT name
FROM student 
WHERE city = 'Londres';

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 ?

Abricot

Essentiel

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ï';
Dompierre
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;
60680
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';
Rose
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'
AA
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.

BD
Base de Données
SGBD
Système de Gestion de Bases de Données
SGBDR
Système de Gestion de Bases de Données Relationnelles
SQL
Structured Query Language
IDE
Integrated Development Environment (Environnement de Développement Intégré)

Pourquoi des SGBD ?

Jadis...

Avant l'avènement des SGBD, chaque application informatique dans l'entreprise impliquait sa propre équipe de développement, ses propres supports physiques, ses propres fichiers, ses propres normes, ses propres langages, etc.

Conséquences...

L'existence conjointe et croissante de ces applications indépendantes a des effets négatifs, tels que :

  • La multiplication des tâches de saisie, de développement et de support informatique ;

  • La redondance anarchique des informations dans les fichiers ;

  • L'incohérence des versions simultanées de fichiers ;

  • La non-portabilité des traitements en raison des différences dans les formats et langages ;

  • La multiplication des coûts de développement et de maintenance des applications.

Problèmes...

Les conséquences précédemment citées se répercutent sur l'entreprise en générant des problèmes humains et matériels ;

  • Coûts en personnels qualifiés et en formations ;

  • Remise des pouvoirs de décision entre les mains de spécialistes informatiques ;

  • Tout changement matériel ou logiciel a un impact sur les applications ;

  • Tout changement de la structure des données nécessite de modifier les programmes.

Or...

En réalité les applications ne sont jamais totalement disjointes, des données similaires (le cœur de l'information d'entreprise) sont toujours à la base des traitements.

On peut citer typiquement :

  • Les données comptables

  • Les données clients et fournisseurs

  • Les données relatives à la gestion des stocks

  • Les données relatives aux livraisons

  • Les données marketing et commerciales

  • Les données relatives au personnel

  • ...

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.