Définitions

Une base de données est une collection organisée d’objets structurés tels que des nombres, des textes, des dates, et mais aussi d’autres objets (Fichier binaires, Info de géolocalisation, …) pouvant être traités par des moyens informatiques pour produire une information.

Les traitements de ces informations sont des combinaisons de recherches, de choix, de tris, de regroupements, de concaténations, etc. Source: wikipedia

Utilité des bases de données

Les système de gestion de bases de données (SGBD) ou simplement base de données sont utiles pour deux choses.

  1. Économisé de la mémoire
  2. Amélioré la vitesse de traitement

Économisé de la mémoire

Si vous prenez une le tableau de données suivantes:

ÉtablissementAdresseLocalitéCode Postale
Interface 3rue Gaucheret88-90Schaerbeek1030
Team Panoptesrue d’Alost7-11Bruxelles1000
Engieboulevard Simon Bolivar36Bruxelles1000
IFOSUPrue de la limite6Wavre1300
Delhaize Limalavenue de la gare13-14Limal1300
Smartoysavenue des brasseries30Wavre1300
Netikaavenue Zenobe Gramme27Wavre1300
MOKRue Antoine Danseart196Bruxelles1000

Si on reformate les données en plusieurs groupes:

ID LocalitéLocalitéCode Postale
1Schaerbeek1030
2Bruxelles1000
3Wavre1300
4Limal1300
ÉtablissementAdresseLocalité ID
Interface 3rue Gaucheret88-901
Team Panoptesrue d’Alost7-112
Engieboulevard Simon Bolivar362
IFOSUPrue de la limite63
Delhaize Limalavenue de la gare13-144
Smartoysavenue des brasseries303
NetikaAvenue Zenobe Gramme273
MOKRue Antoine Danseart1962

Cette logique évite de faire des erreurs, comme par exemple avoir plusieurs orthographe pour la même ville (Exemple Bruxelles et Brussels). Mais surtout cela permet de rationalisé la place.

Dans cet exemple, on ne traite que 5 données, mais vous imaginez bien que ce qu’on a fait pour la localité peut être reproduit pour d’autres données.

Amélioré la vitesse de traitement

Un autre avantage de structurer les données comme dans un SGBD, c’est que l’accès au données est plus rapide.

Un exemple simple. Si les données sont ordonnées, trouver un entier dans un tableau est plus rapide que trouver une chaîne de caractère. La raison est simple. Chaque caractère d’une chaîne correspond à un octet, donc une chaîne de caractère comme “Bruxelles” fait 9 octets.

Un entier lui est stocké sur 4 octets1. Donc, sans entrer dans les détails des algorithme de tri, la recherche sur une chaîne de caractère de plus de 4 lettres sera moins rapide que sur un entier.

Si on part de ce postulats, si la localité est stockée sous forme d’un identifiant et donc d’un entier, il sera plus rapide de regrouper les établissement se trouvant à Bruxelles que si on avait gardé nos données sous formes brutes.

Tables

ID LocalitéLocalitéCode Postale
1Schaerbeek1030
2Bruxelles1000
3Wavre1300
4Limal1300
ÉtablissementAdresseLocalité ID
Interface 3rue Gaucheret88-901
Team Panoptesrue d’Alost7-112
Engieboulevard Simon Bolivar362
IFOSUPrue de la limite63
Delhaize Limalavenue de la gare13-144
Smartoysavenue des brasseries303
NetikaAvenue Zenobe Gramme273
MOKRue Antoine Danseart1962

Chacun des groupes de données représentés ici est appelé table. Une table est une entité qui regroupe 1 ou plusieurs attributs2 qui seront aussi appelées champs.

Dans le cas qui nous occupait, nous avions deux tables Localité et Etablissement.

---
config:
  theme: 'forest'
---
erDiagram
Etablissement ||--|{ Localite : " " 

Localite {
	int id
	string nom
	string code_postal
}

Etablissement {
	string nom
	string adresse
	string numero
	int localite_id
}

Nous verrons dans la suite du cours comment interprété ce diagramme, mais une chose qui est mise en évidence dans ce schéma: la relation entre Establishment et Locality

Relations

Les système de gestion de base de données les plus courant, sont des bases de données dîtes relationnelle. On les appelle comme cela car différentes entités de la bases de données sont en relation entre elles, comme le sont Etablissement et Localité.

Nous verrons tout au long de ce cours comment créer les tables et comment établir des relations qui font sens.

Footnotes

  1. En générale, pour un entier classique (int) la place mémoire en mémoire est de 4 octets et il peut aller de -2.147.483.648 à 2.147.483.647. Si celui-ci n’est pas signé, ce qui veut dire qu’on n’a pas la partie négative, on peut aller jusqu’à 4.294.927.295.

  2. Souvent plusieurs, soyons honnête.