• 20 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Ce cours existe en livre papier.

Vous pouvez être accompagné et mentoré par un professeur particulier par visioconférence sur ce cours.

J'ai tout compris !

Mis à jour le 20/12/2017

Introduction sur les bases de données

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Après une longue introduction au VB .NET suivie de plusieurs concepts plus ou moins avancés, vous voilà désormais capables de créer vos programmes avec de multiples possibilités. Mais un programme n'est-il pas au fond un corps sans âme ? Ne faut-il pas lui offrir le moyen de stocker les connaissances pour pouvoir lui offrir encore plus de possibilités ?

Vous savez déjà stocker des informations dans des fichiers. Mais nous allons maintenant apprendre à stocker des centaines, des milliers d'informations dans des bases de données.

Amis Zéros, préparez-vous, vous décollez pour le monde du stockage des informations nécessaires au bon fonctionnement de vos programmes.

Qu'est-ce qu'une base de données ?

Comme je l'ai écrit dans l'introduction, une base de données est un énorme endroit où sont stockées des données (non, sans blague ?). :p

Pourquoi stocker des données ?

Prenons un exemple simple. Si vous réalisez un logiciel, un jeu vidéo ou encore un site web plus tard, vous aurez (à un moment bien avancé) un problème : comment sauvegarder toutes les données de l'application ?

Vous connaissez déjà la sérialisation et le stockage dans des fichiers. C'est déjà ça. Mais avez-vous observé la complexité de votre fichier généré lors du TP ZBackup ?

C'est là qu'intervient la fameuse base de données (abrégée BDD pour les intimes, et vu que c'est une amie à moi je vais utiliser cette abréviation pour le reste du tuto). Une BDD stocke donc les informations à l'instar d'un fichier. Une BDD est en effet un fichier, mais enregistré dans un format spécial et terriblement complexe.

On va essayer d'y aller mollo et de se servir d'images compréhensibles par tous pour vous faire comprendre la structure d'une BDD.

Imaginez une armoire. Comme vous le savez, une armoire est composée de plusieurs tiroirs, et dans ces tiroirs vous pouvez placer certaines choses.

À l'instar de notre armoire (appelée base), notre BDD est divisée en différentes tables (les tiroirs) et c'est à l'intérieur de ces tables que vous stockez les données.

Les créateurs du concept de BDD ont été très malins, ils ont organisé ces tables comme des tableaux (un tableau Excel par exemple). On va pouvoir ajouter autant de colonnes que besoin en fonction des informations à enregistrer.

Voici un tableau représentant une table.

Table Musiques

Numero

Artiste

Titre

Album

1

Don't Cry (Original)

Guns N' Roses

Greatest Hits

2

Metallica

Nothing Else Matters

Metallica

3

Saez

Jeune et Con

Jours étranges

4

Noir Désir

Un jour en France

666.667 Club

Cette table représente un des tiroirs de l'armoire. Les champs (colonnes) de cette table sont Numero, Artiste, Titre et Album. La table contient 4 entrées (lignes).

L'importance de votre BDD va différer en fonction de l'utilisation de votre programme. Un logiciel de chat en ligne par exemple pourra se contenter de champs stockant les pseudos, les droits accessibles par les membres et pourquoi pas la date de la dernière connexion. Un forum, quant à lui, contiendra sûrement plusieurs tables (une pour les informations des membres, une pour le stockage des messages du forum, etc.) et chaque table aura elle-même des champs spécifiques à la disposition du webmaster.

Les entrées, elles, seront les données pures, une table de stockage de membres avec 10 000 entrées signifie que le site auquel appartient la BDD a 10 000 membres (imaginez la taille de celle du SdZ avec un peu moins de 300 000 membres).

J'ai compris, mais quel est le rapport avec le langage de programmation ?

Le langage de programmation va demander des informations à la base de données, par exemple :

  • « Donne-moi les informations de la chanson numéro 1 dans la table Musiques. »

  • « Donne-moi les chansons ayant pour artiste Metallica dans la table Musiques. »

  • Etc.

Pour demander des informations à la base de données, il faut utiliser le langage SQL… nous reviendrons dessus.

Grâce à une BDD, tout le système de fichiers sera beaucoup mieux géré et plus facilement que si vous gériez vous-mêmes le vôtre (comme lorsqu'on a fait les apprentis sorciers avec notre sérialisation lors du TP bibliothèque de films).

Le système de gestion de base de données (SGBD), est un logiciel qui joue le rôle d'interface entre l' utilisateur et la base de données. Un SGBD permet de décrire, manipuler et interroger les données d'une BDD manuellement. Il est utilisé dans un premier temps pour structurer la BDD : création de tables et de champs.

Les bases de données

Les SGBD

Les SGBD (systèmes de gestion de base de données) sont des programmes qui s'occupent du stockage des données.

Il en existe plusieurs, dont voici les plus connus :

  • Microsoft SQL Server : le SGBD de Microsoft, nous l'utiliserons dans ce cours.

  • MySQL : c'est un des SGBD les plus populaires.

  • Oracle : c'est le SGBD le plus utilisé en entreprise, le plus complet aussi… mais payant ! :p

  • PostgreSQL : ressemble un peu à MySQL, avec plus de fonctionnalités, mais un peu moins connu.

SGBD et SQL

J'ai écrit plus haut que le langage SQL permet de dialoguer avec la base de données. Le langage SQL est un standard, c'est-à-dire que, quel que soit le SGBD que vous utilisez, vous utiliserez le langage SQL. Le seul problème, c'est qu'il existe plusieurs langages SQL (en fonction du SGBD), dans ce cours nous utiliserons du langage SQL « neutre », donc indépendant de toute base de données.

Le langage SQL est un langage, donc il s'apprend (mais comparé au VB .NET c'est extrêmement simpliste).

Voici un avant-goût du langage SQL :

SELECT id, nom, prenom FROM Client ORDER BY CodeClient

Nous allons dans un premier temps apprendre à manier ce fameux langage avant de passer à la suite, c'est-à-dire envoyer des ordres au SGBD.

VB .NET et SGBD

Nous utiliserons SQL Server, le seul problème qui persiste actuellement est que l'on ne peut pas parler à SQL Server directement, c'est à ce moment là qu'intervient le VB .NET (par l'intermédiaire d'ADO.NET). Le langage Visual Basic .NET va servir d'intermédiaire entre vous et SQL Server.

C'est-à-dire ?

Par exemple, vous allez demander à VB .NET de demander à SQL Server de faire ceci, de faire cela…, comme représenté à la figure suivante.

Le langage Visual Basic .NET va servir d'intermédiaire entre vous et SQL Server
Le langage Visual Basic .NET va servir d'intermédiaire entre vous et SQL Server

Voici ce qu'il peut se passer lorsque le serveur a reçu une demande d'un client qui veut poster un message sur un chat :

  1. Le serveur utilise VB .NET.

  2. Le code VB .NET demande à SQL Server d'enregistrer un message dans la base de données.

  3. SQL Server va « répondre » à VB .NET en lui disant « OK, c'est bon, je stocke le message ».

  4. VB .NET va alors renvoyer au serveur que tout s'est bien déroulé (donc SQL Server a bien fait son travail). ;)

Lexique

Cette sous-partie va présenter un peu de vocabulaire spécifique aux bases de données, ces termes sont fréquemment utilisés, vous pourrez vous en servir à tout moment.

Base de données relationnelle

Une base de données relationnelle est un type de base de données qui utilise des tables pour le stockage d'informations. Elles utilisent des valeurs issues de deux tables, pour associer les données d'une table aux données d'une autre table. En règle générale, dans une BDD relationnelle, les informations ne sont stockées qu'une seule fois.

Table

Une table est un composant d'une base de données qui stocke les informations dans des enregistrements (lignes) et des champs (colonnes). Les informations sont généralement regroupées en catégories au niveau d'une table. Par exemple, il y aura la table des Clients, des Produits ou des Commandes… dans le contexte d'un magasin.

Enregistrement

L'enregistrement est l'ensemble des informations relatives à un élément d'une table. Les enregistrements sont les équivalents des lignes d'une table. Par exemple, une table Clients contient les caractéristiques d'un client en particulier.

Champ

Un enregistrement est composé de plusieurs champs. Chaque champ d'un enregistrement contient une seule information sur l'enregistrement. Par exemple, un enregistrement Client peut contenir les champs CodeClient, Nom, Prénom

Clé primaire

Une clé primaire est utilisée pour identifier, de manière unique, chaque ligne d'une table. La clé primaire est un champ ou une combinaison de champs dont la valeur est unique dans la table. Par exemple, le champ CodeClient est la clé primaire de la table Clients, il ne peut pas y avoir deux clients ayant le même code.

Clé étrangère

Une clé étrangère représente un ou plusieurs champs d'une table, qui font référence aux champs de la clé primaire d'une autre table. Les clés étrangères indiquent la manière dont les tables sont liées.

Relation

Une relation est une association établie entre des champs communs dans deux tables. Une relation peut être de un à un, de un à plusieurs, ou de plusieurs à plusieurs. Grâce aux relations, les résultats de requêtes peuvent contenir des données issues de plusieurs tables. Une relation de un à plusieurs entre la table Clients et la table Commandes permet à une requête de renvoyer le numéro des commandes correspondant à un client.

Voilà un petit lexique que vous pourrez regarder de nouveau à n'importe quelle étape de votre apprentissage, je ne vous demande pas de tout comprendre tout de suite !

SQL Server 2008 R2

Notre SGBD

Pour dialoguer avec une base de données, il nous faut un outil adapté.

Nous allons utiliser le langage VB .NET et le langage SQL. Nous pourrons créer des bases de données et lier cette base de données avec Visual Basic Express. SQL Server est un SGBD de Microsoft.
Grâce à ce SGBD, on peut stocker des données sur une base et gérer ces données en les modifiant et en les mettant à jour. Je vous ai expliqué plus haut que le langage de requête était le SQL, mais chaque SGBD a son propre langage SQL : ainsi, SQL Server utilise le langage T-SQL (Transact-SQL). Je ne vais pas entrer dans les détails, car nous utiliserons un langage SQL indépendant de tout SGBD.

SQL Server 2008 R2

Microsoft a déjà sorti plusieurs versions de SQL Server, nous allons utiliser dans le suite de ce tutoriel SQL Server 2008 R2. J'ai décidé de prendre ce SGBD, car il s'adapte très bien avec les suites Express de Visual Studio.

J'ai déjà une version antérieure de SQL installée sur mon ordinateur. Cela pose-t-il problème ?

Non, ça ne pose pas de problème, il n'empêche qu'il faudra alors vous débrouiller pour faire les mêmes manipulations que moi.

La première version de SQL Server est sortie en 1989 sur les plateformes UNIX et OS/2, mais, depuis, Microsoft a préféré mettre SQL Server uniquement sous un système d'exploitation Windows. En 1994, Microsoft a sorti la version 6.0 et 6.5 sur la plateforme Windows NT. Ensuite Microsoft a continué de commercialiser le moteur de base de données sous le nom de Microsoft SQL Server et a publié la version 2008 de Microsoft SQL Server, et enfin la version 2008 R2.

C'est pourquoi je vous conseille d'utiliser la même version que moi, car les anciennes ne sont plus très bien adaptées pour nos manipulations. De ce fait, certains passages évoqués dans le cours sont peut-être différents voire inexistants dans les versions précédentes. De plus ce SGBD est plutôt léger et vous permettra de suivre le tutoriel dans les meilleures conditions possibles.

Installation de SQL Server 2008 R2

Étape par étape

Avant toute chose, il faut télécharger SQL Server. Vous devriez arriver sur une page semblable à la figure suivante. Cliquez sur Télécharger.

La page de téléchargement de SQL Server
La page de téléchargement de SQL Server

Passons directement à l'installation ! Elle est facile à réaliser, il suffit juste de suivre les consignes de l'assistant pendant toutes les étapes de l'installation.

Accueil de l'installation

Le centre d'installation de Microsoft SQL Server aide à lancer l'installation. Sur la fenêtre visible à la figure suivante, le centre d'installation vous propose plusieurs options, pour l'instant une seule nous intéresse : cliquez sur New Installation or add features to an existing installation.

Plusieurs options sont proposées
Plusieurs options sont proposées
Contrat de licence

Lisez puis acceptez les termes du contrat de licence (voir figure suivante). Cela fait, appuyez sur Suivant.

Le contrat de licence
Le contrat de licence
Chemin d'installation

Laissez les features par défaut et choisissez le dossier dans lequel vous souhaitez que le logiciel s'installe si besoin (voir figure suivante). Cliquez ensuite sur Suivant.

Sélection des features
Sélection des features

Comme à la figure suivante, cliquez sur Default instance, changez le répertoire d'installation si besoin, puis cliquez sur Next.

Cliquez sur Default instance
Cliquez sur Default instance
Configuration des comptes de services

Les noms de comptes déjà renseignés par votre PC sont censés être corrects, laissez les tels quels. Puis passez Server browser en Automatique (voir figure suivante) et finalement, cliquez sur l'onglet Collation.

Les noms de comptes par défaut sont censés être corrects
Les noms de comptes par défaut sont censés être corrects
Onglet Collation

Choisissez le code page que vous souhaitez utiliser pour votre base de données, ici nous garderons le code page par défaut (voir figure suivante).

Nous garderons le code page par défaut
Nous garderons le code page par défaut
Database Engine Configuration

À l’étape Database Engine Configuration (voir figure suivante), choisissez Mixed mode, cela vous permettra de créer le compte SA (System Administrator), choisissez un mot de passe pour SA. Ajoutez les utilisateurs à qui vous souhaitez donner les droits d’administration de la base, puis cliquez sur l’onglet Data Directories.

Créez le compte SA
Créez le compte SA

Modifiez les répertoires où seront stockés les fichiers de données si besoin (voir figure suivante), puis cliquez sur Next.

Modifiez les répertoires
Modifiez les répertoires
Reporting Services Configuration

Comme à la figure suivante, cliquez sur Install, but not configure the report server.

Choisissez une option
Choisissez une option
Error reporting

Normalement, il n'y a aucune erreur, cliquez sur Next.

Téléchargement et installation

Une nouvelle page apparaît (voir figure suivante). Elle indique la progression du téléchargement du logiciel, le taux de transfert et la partie du programme en cours d'installation.

Barre de progression de l'installation
Barre de progression de l'installation
Fini !

Une nouvelle page apparaît (voir figure suivante), SQL Server 2008 R2 est installé !

SQL Server 2008 R2 est installé !
SQL Server 2008 R2 est installé !

Découverte de l'interface

L'interface de SQL Server 2008 R2

Vous avez maintenant installé le SGBD SQL Server 2008 R2. Il est temps de découvrir un peu l'interface de travail. Allez dans Démarrer > Tous les programmes > Microsoft SQL Server 2008 R2 > SQL Server Management Studio. Un petit temps de chargement s'écoule jusqu'à ce que la fenêtre visible à la figure suivante apparaisse : cette fenêtre va vous demander de vous connecter au serveur.

Connexion au serveur
Connexion au serveur

Remplissez de la même manière : « (local) » pour le server name et « sa » comme login. Puis entrez le mot de passe que vous avez choisi lors de l'installation.

Si la connexion est correcte, vous accédez à l'interface de SQL Server Management Studio.

On constate rapidement que l'interface principale de SQL Manager est très simple. Elle est formée d'un menu contextuel, d'une barre d'outils et d'une fenêtre Explorer à gauche, comme à la figure suivante.

La page d'accueil
La page d'accueil

La barre d'outils (voir figure suivante) de SQL Server Management Studio permet d’accéder à certaines fonctionnalités, je ne les détaillerai pas ici.

La barre d'outils
La barre d'outils

La barre du menu permet aussi d'accéder à plusieurs options.

Vous voyez à la figure suivante le menu Object Explorer : il affiche les objets du serveur de base de données en une hiérarchie conçue pour faciliter la navigation. On peut cliquer sur le symbole + à gauche du dossier pour pouvoir afficher son contenu.

Le menu Object Explorer
Le menu Object Explorer

La fenêtre visible à la figure suivante n'est pas encore affichée, mais on peut la faire apparaître grâce à l'aide de la touche F7 ou par le menu View > Object Explorer Details.

La fenêtre Object Explorer Details
La fenêtre Object Explorer Details

Cette fenêtre nous affiche les détails des objets sélectionnés sur la fenêtre Explorer.

  • Une base de données est indispensable pour stocker des informations qui seront destinées à être partagées entre plusieurs utilisateurs.

  • Nous allons utiliser SQL Server 2008 pour créer notre base de données.

  • La base de données contient des tables, elles-mêmes contiennent des champs.

Exemple de certificat de réussite
Exemple de certificat de réussite