• Aucun résultat trouvé

[PDF] Cours sur les bases de donné perfectionnement | Cours informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Cours sur les bases de donné perfectionnement | Cours informatique"

Copied!
8
0
0

Texte intégral

(1)

Les bases de données

Support de cours

Pascal Ballet

Introduction

Les fondements

Une base de données a deux objectifs principaux : - le stockage structuré de l'information

ET

- le traitement des données stockées Par exemple, un calepin permet :

- de stocker des informations sur nos amis, collègues... Ces informations sont structurées (nom, téléphone, adresse)

ET

- de retrouver rapidement un nom grâce aux onglets (A, B, C...)

Un calepin constitue donc bel et bien une base de données. Certes il n'est pas informatisé, mais il possède les deux attributs essentiels d'une base de données : stocker de manière structurée et retrouver de l'information.

Un calepin possède des limites :

- au delà d'une centaine de contacts, il devient difficilement gérable

- si nous voulons ajouter le champ "Age", il faut modifier chacune des pages

- si nous cherchons à faire la moyenne d'age de tous nos contacts, cela devient très fastidieux - de même si nous voulons rechercher les personnes dont le prénom est Jean

(2)

Les possibilités

L'ordinateur permet le traitement rapide de nombreuses données. Une fois l'information stockée de manière structurée dans l'ordinateur, il est possible de :

- retrouver rapidement une ou plusieurs informations, - modifier, compléter ou supprimer les données stockées,

- changer la manière dont l'information est stockée (modifier la structure), - mettre en forme les données (pour l'impression par exemple),

- contraindre la saisie des données sous un certain format (numérique, code postal...),

- mettre des données en relations (permet d'éviter les doublons et de croiser des informations),

Les méthodes de stockage

A- Une manière simple de stocker de manière structurée des données est d'utiliser un tableau.

Pour le calepin, voici comment ce tableau se représente :

Nom Téléphone Adresse

Einstein Albert 01 23 45 Ulm - Allemagne

Turing Alan 54 32 10 Londres - Grande Bretagne

B- Une autre manière de stocker les données est la manière hiérarchique. Par exemple les

fichiers d'un ordinateur sont stockés dans des dossiers, contenant à leur tour d'autres dossiers, etc. Une des premières bases de données utilisant une arborescence est IMS. Elle fut créée par IBM en 1966 pour le compte de Rockwell et le programme Apollo (toujours en fonctionnement aujourd'hui).

C- Le stockage hiérarchique des données n'est pas toujours adapté aux problèmes rencontrés

dans le monde réel. C'est pourquoi, le modèle de base de données relationnelles est beaucoup plus répandu. Une base de données relationnelle est structurée suivant les principes de l’algèbre relationnelle. La théorie des bases de données relationnelles est issue des travaux de Edgar Frank Codd1. Une base de donnée relationnelle permettant de stocker et de traiter notre calepin aurait une table identique au tableau du point A :

Nom Téléphone Adresse

Einstein Albert 01 23 45 Ulm - Allemagne

Turing Alan 54 32 10 Londres - Grande Bretagne

Dans la terminologie des bases de données relationnelles, "Nom", "Téléphone" et "Adresse" sont des champs. Les deux lignes qui suivent sont les enregistrements.

- Les champs font partie de la structure de la base et - les enregistrements font partie des données de la base.

D- Il existe également des bases de données orientées objet, comme il existe des langages de

programmation orientés objet. Malgré les atouts de l'approche objet (encapsulation,

1

(3)

héritage...), celles-ci sont peu répandues. Les bases de données relationnelles sont, actuellement, le standard de fait.

Nous étudierons dans ce cours essentiellement les bases de données relationnelles.

Le traitement des données

La manière de stocker ne fait pas tout. En effet, n'oublions pas qu'une base de données doit être capable d'exploiter les données. Pour ce faire, un langage appelé SQL (Structured query language) a été développé dans les années 1980 (première norme éditée par l'ANSI en 1986 puis adoptée par l'ISO en 1987). Ce langage, adapté aux bases de données relationnelles permet :

- de définir les données (DDL, Data definition language),

- de manipuler les données (DML, Data manipulation language), - de contrôler les données (DCL, Data control language).

Par exemple, si pour notre calepin nous voulions retrouver tous les contacts dont l'age dépasse 20 ans, nous écririons en SQL :

select * from contacts where age > 20

Les clés

Pour permettre la cohérences des données et, accessoirement augmenter la vitesse de traitement des informations, une table associe généralement à l'un de ses champs une clé dite primaire. Un champ à qui une clé est associée ne peut pas avoir de doublons dans ses enregistrements. Par exemple, dans notre calepin, si nous désignons le champ nom comme clé primaire de la table contacts, il ne sera pas possible d'avoir deux personnes ayant le même nom. Dupont (Jean) et Dupont (Emilie) ne pourront pas être sur le calepin car ces deux personnes ont exactement le même nom.

Une possibilité, pour pallier à ce problème, serait par exemple d'ajouter un champ insee, pour indiquer le numéro de sécurité sociale de chacun de nos contacts. En effet, chaque citoyen possède un numéro insee et ce numéro est unique.

Si l'on pousse le raisonnement un peu plus loin, on se rend compte que ce numéro insee marche bien pour nos contacts français. Or, si nous avons des contacts étrangers (japonais, américain...), le numéro insee n'est plus possible. De plus, il serait quelque peu délicat de demander à chacun de ses contacts son numéro insee...

C'est pourquoi, pour notre calepin, nous n'utiliserons pas le numéro inse mais simplement un champ numéro qui associe (éventuellement automatiquement) un nombre unique à chacun de nos contact. Le champ numéro est alors clé primaire de la table contacts.

La table contacts devient alors :

Numéro (clé) Nom Téléphone Adresse

0 Einstein Albert 01 23 45 Ulm - Allemagne

(4)

La notion de clé permet également de mettre en relation différents types d'information. C'est ce que nous développons dans la partie suivante.

Les relations

Supposons que pour chaque contact de notre calepin, nous désirions placer éventuellement plusieurs numéros de téléphones.

La première solution qui vient à l'esprit est d'ajouter deux ou trois nouveaux champs du type :

téléphone-portable, téléphone-maison, téléphone-travail à la table contacts.

Cette solution a l'avantage d'être simple mais ne permet pas une grande souplesse dans le nombre de numéros de téléphones mémorisables par contact. En effet, si l'un de nos contacts nous donne son numéro de téléphone de vacances, nous sommes dans l'embarras. Nous pouvons alors ajouter le champ téléphone-vacances, mais ajouter un champ rien que pour un contact n'est pas rentable en terme :

- de place mémoire utilisée, car ce champ se répète pour tous les autres contacts (même si ce champ est vide)

- et si nous devons ajouter un nouveau champ téléphone-portable-travail, il faut à nouveau modifier la structure de la table.

L'idée est d'ajouter une nouvelle table contenant uniquement les numéros de téléphones de nos contacts. Cette table doit donc associer à chacun de nos contacts plusieurs numéros de téléphone. Attention, un contact est repéré de manière unique par son numéro et non pas par son nom à cause des homonymes. La table téléphones est alors la suivante :

Numéro Téléphone

0 01 23 45

0 06 07 08

1 54 32 10

Cette table signifie que notre contact 0 (à savoir Einstein) possède deux numéros de téléphone, un fixe et un portable et que notre contact 1 (Turing) possède un numéro de téléphone fixe.

Nous nous rendons compte alors qu'il est possible de rajouter à tout moment un nouveau numéro de téléphone pour l'un ou l'autre de nos contacts. Si nous voulons ajouter un numéro de vacances pour Einstein, voilà à quoi ressemblera la table téléphones :

Numéro Téléphone

0 01 23 45

0 06 07 08

0 05 54 43

1 54 32 10

Comme premier bilan de notre calepin à ce stade de développement, nous voyons que deux tables sont nécessaires :

- la table contacts, - la table téléphones.

(5)

Ces tables sont les suivantes : Contacts :

Numéro(clé) Nom Téléphone Adresse

0 Einstein Albert 01 23 45 Ulm - Allemagne 1 Turing Alan 54 32 10 Londres - Grande

Bretagne Téléphones : Numéro Téléphone 0 01 23 45 0 06 07 08 0 05 54 43 1 54 32 10

Nous observons cependant une incohérence / redondance du fait que la table contacts possède un champ téléphone. Or dorénavant, c'est la table téléphones qui s'occupe de traiter les numéros de téléphones. Nous devons donc supprimer le champ téléphone de la table contacts afin de :

- supprimer les doublons,

- faciliter ainsi la maintenance et la cohérence de la base calepin en n'ayant qu'un seul enregistrement à changer si l'un des numéro de téléphone venait à être modifié (par exemple le 01 23 45 devient 01 23 46).

La table contacts devient alors :

Numéro(clé) Nom Adresse

0 Einstein Albert Ulm - Allemagne 1 Turing Alan Londres - Grande

Bretagne et ne gère plus du tout les numéros de téléphones.

La difficulté qui nous apparaît alors et qu'il faut maintenant gérer 2 tables distinctes. Pour avoir le numéro de téléphone de vacances d'Einstein, il faut ouvrir son calepin à Einstein, regarder quel est son numéro (0) puis chercher dans la table téléphone son numéro de vacances. Tout cela n'est guère pratique.

Voilà en quoi les relations entre les tables vont nous servir. Si nous regardons de prêt nos deux tables, nous nous rendons compte qu'elles possèdent un champ commun :

- c'est le champ numéro.

Pour le moment, c'est à nous de remplir correctement le champ numéro de la table

téléphones. Opération qui peut s'avérer délicate car la moindre erreur dans un numéro (de

contact, à savoir 0 pour Einstein...) et l'on attribut un mauvais numéro de téléphone à une personne.

Les bases de données relationnelles permettent de relier deux champs de même contenus se trouvant dans deux tables distinctes.

(6)

Nous pouvons donc créer une relation entre le champ numéro de la table contacts et le champ numéro de la table téléphones. La base de donnée calepin peut alors gérer la cohérence entre les deux tables :

Une relation se fait entre :

- un champ de type clé et un champ quelconque > relation 1 à plusieurs (N) - un champ de type clé et un autre champ de type clé > relation 1 à 1

- un champ quelconque et un champ quelconque > relation indéfinie

> La relation la plus couramment utilisée est la relation 1 à plusieurs (1 à N). Cela signifie pour notre calepin que pour un contact particulier (unique), il peut avoir 0 ou plusieurs numéros de téléphones :

> Le type de relation 1 à 1 est moins couramment utilisé car une relation 1 à 1 signifie que l'on peut tout simplement fusionner les deux tables mises en relation en une seule et même table.

> Le type de relation indéfinie n'est pas utilisé en pratique.

Les outils

ORACLE MySQL ACCESS NOVEL etc

(7)

L'outil informatique associé à notre cours est MS Access :

Applications simples

Exemple 1

Mise en place d'une gestion de titres musicaux avec les critères suivants : - une table contient les artistes (nom, prénom et numéro unique (clé))

- une autre table contient les titres des artistes (numéro des artistes et titres des l'albums) - établir une relation entre ces 2 tables (1 à N)

Artistes

Numéro Nombre - clé

Nom Texte - non vide

Prénom Texte

La relation indique qu'un artiste (1) peut posséder plusieurs titres (N). - donner un exemple de base contenant 2 artistes et 3 titres

Titres

Numéro Nombre

Titre Texte - non vide

Artistes

Numéro Nom Prénom

0 Mozart

1 Beethoven Ludwig

Titres

Numéro Titre

0 Les noces de Figaro 0 La flûte enchantée

1 Hymne à la joie

(8)

Exemple 2

Dorénavant, un titre peut aussi avoir été interprété (ou composé) par plusieurs artistes. - Quelles sont les tables et les relations à créer ?

Artistes NuméroArtiste Nombre - clé Nom Texte - non vide Prénom Texte

La table ArtistesTitres permet de créer la relation indirecte du type "plusieurs à plusieurs" : un artiste peut avoir composé (ou interprété) plusieurs titre et un titre peut avoir été composé (ou interprété) par plusieurs artistes.

- Donner un exemple avec 2 artistes et 3 titres (dont 1 en commun).

La table ArtistesTitres se lit ainsi : L'artiste 0 a interprété les titres 0 et 2, l'artiste 1 a interprété

les titres 1 et 2, le titre 0 a été interprété par l'artiste 0, le titre 1 par l'artiste 1 et le titre 2 par les artistes 0 et 1. Ainsi, la table ArtistesTitres permet bien d'avoir une relation (indirecte) du

type "plusieurs à plusieurs".

Titres NuméroTitre Nombre - clé Titre Texte - non vide ArtistesTitres NuméroArtiste Nombre NuméroTitre Nombre Artistes

NuméroArtiste Nom Prénom

0 Pavarotti Luciano 1 Domingo Placido Titres NuméroTitre Titre 0 Aida 1 La Tosca 2 Marche hongroise ArtistesTitres NuméroArtiste NuméroTitre 0 0 0 2 1 1 1 2 1 1 N N

Références

Documents relatifs

It means that, even though in theory, we can partly understand that SVC should be better than AVC with its scalability feature at the encoding step, but it is only through

A multiplicação da Cephalonomia stephanoderis pode ser feita em broca-do-café criada em frutos maduros de Coffea canephora durante o período de safra e de sementes despolpadas de

Par ailleurs, les enfants ont tous utilisé PLAY-ON à partir du clavier, c'est à dire des flèches directionnelles (la gauche et la droite pour la discrimination et les quatre pour

De l’étude de l’insertion du clergé séculier dans les dynamiques d’une ville médiévale jusqu’à l’analyse de la description d’image effectuée par un notaire

En somme, autant pour les élèves du primaire que du secondaire, la victimisation par les pairs est associée à plusieurs indicateurs de l’engagement comportemental

Le Nil trace un chapelet de villes dans le désert, alors que le Delta montre une organisation beaucoup plus régulière.. On retrouve quelques petites villes le long des côtes

Par exemple, lorsque l’on souhaite passer d’un semis de points à un maillage continu, on va utiliser une partition de Voronoï (aussi parfois appelée tessellation de Dirichlet),

deux expressions reprennent dans le titre même la manière dont les informateurs réunionnais de la communauté tamoule désignent et nomment l’entrée dans le