Cour database systeme d'information, Essays (university) of Database Programming

Cours database de 2eme année informatique

Typology: Essays (university)

2020/2021

Uploaded on 04/30/2021

unknown user
unknown user 🇩🇿

2 documents

1 / 25

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Cours Bases de données
3ème Année Systèmes d’Information
Chapitre 01
Conception des Bases
de Données Le Modèle
Entité/Association
Fouad DAHAK
Enseignant-Chercheur
Chargé de cours Bases de données
Ecole Nationale Supérieure d’Informatique (ESI)
([email protected] http://dahak.esi.dz)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Partial preview of the text

Download Cour database systeme d'information and more Essays (university) Database Programming in PDF only on Docsity!

Cours Bases de données

ème

Année Systèmes d’Information

Chapitre 01

Conception des Bases

de Données Le Modèle

Entité/Association

Fouad DAHAK

Enseignant-Chercheur

Chargé de cours Bases de données

Ecole Nationale Supérieure d’Informatique (ESI)

([email protected] – http://dahak.esi.dz)

Ecole Nationale Supérieure d'Informatique | I. Concepts de

Ecole Nationale Supérieure d'Informatique | I. Concepts de 4

I. Concepts de base

I.1. Note

Le niveau d’analyse conceptuel est un niveau d’analyse sémantique. C’est à dire qu’il n’est aucunement préoccupé par l’aspect physique de l’implantation des structures d’information, mais se préoccupe plutôt du sens des choses.

Quand on est au niveau conceptuel, on ne doit pas se préoccuper de l’aspect ni des fonctionnalités du système projeté en termes de traitements. Ce qui nous intéresse à ce niveau c’est la structuration des données de manière à ce que le modèle conçu soit le plus proche de la réalité perçue.

Il y a également un aspect très important à prendre en considération et qui représente un piège que beaucoup d’étudiants n’arrivent pas à éviter au moment de la conception des données. Il s’agit du facteur temps. En fait, la conception des données n’est pas liée au temps. On conçoit une base de données dont la structure reste valable, correcte et proche de la réalité et ceci indépendamment du temps.

I.2. Présentation

Une base de données est un ensemble de données structurées qui représentent une partie de la réalité perçue. Avant que cette base de données ne prenne sa forme finale (une forme utilisable par un SGBD) il faut passer une étape très importante qu’est la conception de cette dernière. Il s’agit donc de représenter les objets de la réalité et les interactions entre ces objets de manière à ce qu’ils soient facilement manipulables, pour cela on a besoin de modéliser et donc l’utilisation d’un modèle est nécessaire. Le modèle entités-associations constitue l’un des meilleurs modèles de conception des données et des plus courants.

Ce modèle, présenté par le Prof. Peter Pin-Shan Chen (1976), permet une description naturelle du monde réel à partir des concepts d’entité et d’association.

Basé sur la théorie des ensembles et des relations, ce modèle se veut universel et répond à l’objectif d’indépendance données-programmes.

Ce modèle, utilisé pour la phase de conception, s’inscrit notamment dans le cadre d’une méthode plus générale et très répandue : Merise.

L'idée fondamentale du modèle EA est de retenir comme concepts de base pour la représentation les mêmes concepts génériques que ceux qui guident le processus d'abstraction conduisant de l'observation d'une réalité à sa description.

On suppose que la perception d'une situation observée se fait naturellement sur la base d'une identification des objets présents (qu'ils soient réels, une personne, ou abstraits, une foule), de liens entre ces objets (une personne conduit une voiture) et de propriétés observables (taille, couleur ...).

Ecole Nationale Supérieure d'Informatique | I. Concepts de 5

Le modèle Entité / Association propose une description sur la base de ces mêmes trois concepts, la correspondance entre les trois concepts génériques et la terminologie du modèle EA est la suivante:

o Objet → entité o Lien → association (relation) o Propriété → attribut

I.3. Éléments du modèle

Un diagramme entités/association se compose de trois types d’objets:

o Les entités, o Les relations et o Les attributs (qu’on nomme aussi propriétés).

I.3.1. Entité

Définition 1: Une entité est un objet, une chose concrète ou abstraite qui peut être reconnue distinctement et qui est caractérisée par son unicité.

Dès qu’on rencontre des objets identifiable de manière unique (sans confusion ni ambigüité) qui interagissent et qui font ou subissent des actions dans notre système on parle d’entités. Par exemple, si je dis qu’Ali lit le livre « Bases de données » qu’il a acheté chez Amar. Je distinguerai nettement trois entités : Ali, le livre « Bases de données » et Amar. Ali fait deux actions, celles de lire et d’acheter, le livre « Bases de données » subit ces mêmes actions alors que Amar participe à l’action d’achat de Ali qui est interprétée de son coté comme étant une vente.

I.3.2. Type - Entité

Définition 2: Un type-entité désigne un ensemble d’entités qui possèdent une sémantique et des propriétés communes.

On parle de type entité quand on essaie de représenter de manière générale un ensemble d’entités qui ont une même description. C’est analogue au concept d’ensemble dans les mathématiques en considérant les entités comme les éléments de cet ensemble.

Dans l’exemple précédent on a présenté une situation bien définie celle de Ali qui lit le livre « Bases de données » qu’il a acheté chez Amar. Mais si on désire modéliser cette situation de manière générale il faut faire en sorte que notre modèle puisse représenter cette situation quel que soit le lecteur, l’acheteur, le livre ou le vendeur. Pour cela on ne devrait plus parler d’Ali, le livre « Bases de données » et Amar précisément mais de ce qu’ils représentent dans cette situation c’est-à-dire l’acheteur, le livre et le vendeur. Donc on pourrait dire finalement qu’Ali et Amar sont des entités du type entité Personne car tous deux ont les mêmes caractéristiques et le livre « Bases de données » est une entité du type-entité Livre.

Au niveau du modèle, ce sont les types-entités qui sont représentés et non pas les entités.

Ecole Nationale Supérieure d'Informatique | I. Concepts de 7

I.3.5. Association ou relation

Définition 6: Une association (relation) est un lien sémantique entre plusieurs entités.

Dans l’exemple précédent on distingue un lien de lecture et d’achat entre Ali et le livre de bases de données et un lien de vente entre ce dernier et Amar.

I.3.6. Type-Association

Définition 7: Un type-association (type-relation) désigne un ensemble de relations qui possèdent les mêmes caractéristiques.

Le type-association décrit un lien entre plusieurs type-entités. Les associations de ce type-association lient des entités de ces type- entités.

Règle 5: Un attribut peut être placé dans un type-association uniquement lorsqu’il dépend de toutes les entités liées par le type- association.

Un type-association peut ne pas posséder d’attributs explicites et cela est relativement fréquent, mais il possède au moins des attributs implicites.

Une association est souvent nommée occurrence ou instance de son type-association.

Remarque:

Par abus de langage, on utilise souvent le mot association en lieu et place du mot type-association, il faut cependant prendre garde à ne pas confondre les deux concepts.

Définition 8: Les type-entités intervenant dans un type-association sont appelés les participants de ce type-association.

Définition 9: L’ensemble des participants d’un type-association est appelé la collection de ce type-association.

Cette collection comporte au moins un type-entité, mais elle peut en contenir plus, on parle alors de type-association n-aire.

Définition 10: La dimension, ou l’arité d’un type-association est le nombre de type-entités contenu dans la collection.

Règle 6: La concaténation des identifiants des type-entités liés à un type-association constitue un identifiant de ce type-association et cet identifiant n’est pas mentionné sur le modèle (il est implicite).

Ecole Nationale Supérieure d'Informatique | I. Concepts de 8

I.3.7. Représentation Graphique

Dans le modèle entité association, le type-entité et le type- association ont plusieurs représentations graphiques assez similaires dans l’ensemble. Dans la suite de notre cours nous utiliserons la convention suivante :

Un type-entité est représenté avec un rectangle et le type- association avec une ellipse. Les pattes du type-association représentent le rôle que joue l’entité correspondante dans la relation.

I.4. Les Cardinalités

I.4.1. Concept de cardinalité

Définition 12: La cardinalité d’une patte reliant un type-association et un type-entité précise le nombre de fois minimal et maximal d’interventions d’une entité du type-entité dans une association du type-association.

Règle 7: La cardinalité minimale doit être inférieure ou égale à la cardinalité maximale.

Règle 8: L’expression de la cardinalité est obligatoire pour chaque patte d’un type-association.

Règle 9: Une cardinalité minimal est toujours 0 ou 1 et une cardinalité maximale est toujours 1 ou n.

Les seuls cardinalités admises sont donc : 0,1 - 0,n - 1,1 - 1,n

0,1 : Une occurrence du type-entité peut exister tout en n’étant impliquée dans aucune association et peut être impliquée dans au maximum une association.

0,n : c’est la cardinalité la plus ouverte ; une occurrence du type- entité peut exister tout en étant impliquée dans aucune association et peut être impliquée, sans limitation, dans plusieurs associations.

Ecole Nationale Supérieure d'Informatique | I. Concepts de 10

SI oui Alors a=0 SINON a=

b : Un employé quelconque, peut-il être associé à plus d’une fonction, par l’association exerce?

SI oui Alors b=1 SINON b=n

I.4.2.2. Interprétation d’une association ternaire

On reprend le même exemple que précédemment mais cette fois-ci en y ajoutant un historique qui est représenté par le type-entité Date. Je m’intéresse donc aux fonctions qu’a exercées un employé dans le temps.

L’interprétation des associations ternaires n’est plus la même que pour les binaires. A ce niveau on interprète le rôle d’une entité par rapport au couple correspondant formé des deux autres entités participantes à l’association. On dit donc qu’un employé exerce des fonctions à des dates données. En quelque sorte on est en train de dire qu’un employé est lié à un couple (date, fonction) avec la relation exerce.

Pour trouver les différentes cardinalités, on répond aux questions suivantes :

a : Un employé quelconque, peut-il n’être associé à aucun couple (date, fonction) par l’association exerce?

SI oui Alors a=0 SINON a=

b : Un employé quelconque, peut-il être associé à plus d’un couple (date, fonction) par l’association exerce?

SI oui Alors b=1 SINON b=n

1.4.2.3. Remarques sur les cardinalités

 Une cardinalité minimale de 1 doit se justifier par le fait que les entités du type-entité en questions ont besoin de l’association pour exister. Dans tous les autres cas, la cardinalité minimale vaut

 Une cardinalité minimale de 0 signifie qu’une entité du type-entité correspondant peut exister tout en étant impliquée dans aucune association.

 Si une entité e pour exister doit participer à l’association a on dit

que la participation du type-entité TE au type-association TA est totale. Sinon, on parle de participation partielle.

Ecole Nationale Supérieure d'Informatique | I. Concepts de 11

1.4.2.4. Problème de la cardinalité minimale 1

Le fait de mettre 1 comme cardinalité minimale impose la participation de l’entité concernée à l’association pour exister. Dans l’exemple ci-dessus, la date ne peut exister que si elle participe à la fois à l’association « Proposer » et « Ranger ».Or la date de proposition d’un produit par un fournisseur n’existe pas forcément comme date de rangement et vis-versa. Ce qui fait que dans un cas pareil, la cardinalité minimale doit impérativement être 0 vu que les deux associations « Proposer » et « Ranger » sont sémantiquement indépendantes.

Règle 10 : Pour trouver les cardinalités d’une patte d’une association il faut :

  1. Prendre en considération toutes les pattes,
  2. Pour chaque participant, prendre en considération toutes ses participations.

Cette règle est surtout valable dans le cas de présence de la cardinalité minimale 1.

1.4.2.5. Problème de l’association (1,1) - (1,n)

Dans l’association « Achaète » ci-dessus, la propriété Date Achat est modélisée à son niveau, ce qui signifie qu’elle dépend à la fois de Voiture et de Personne. Or, le fait que la cardinalité du coté de Voiture est 1,1 signifie qu’une voiture ne peut exister que si elle participe Une et Une fois à l’association Achat, ce qui fait que finalement, la date achat dépend uniquement de Voiture et non pas des deux entités ensemble. C’est pourquoi elle est modélisée au niveau de Voiture plutôt que dans l’association.

Alors que dans le cas d’une association avec une cardinalité 0,1, la date achat dépend des deux entités. Car si on la met au niveau de voiture et sachant qu’une voiture peut exister sans participer à l’association, cette date pourrait ne pas avoir de valeur, ce qui n’était pas le cas dans la cardinalité 1,1. Donc, dans le cas de la cardinalité 0,1, la date achat doit être placée au niveau de l’association.

Règle 11 : l’association 1,1 - 1,N ne doit pas posséder de propriétés.

Ecole Nationale Supérieure d'Informatique | I. Concepts de 13

donnée. Un jour est donc identifié comme suit : Samedi de la première semaine du mois de janvier de l’année 2008.

I.5.2. Structures Hiérarchiques

Définition 14 : Une structure hiérarchique représente une décomposition de concepts allant du général au particulier. Il s’agit d’une structure où un parent peut avoir plusieurs enfants, mais où chaque enfant ne peut avoir qu’un seul parent.

I.5.3. Associations plurielles

Les associations plurielles expriment le fait que deux objets puissent avoir plusieurs liens sémantiquement distincts.

I.5.4. Associations réflexives

Définition 15: Un type-association est qualifié de réflexif quand il matérialise une relation entre un type-entité et lui-même.

Note :Dans le cas d’une association réflexive, les rôles doivent être mentionnés clairement sur le diagramme.

Ecole Nationale Supérieure d'Informatique | I. Concepts de 14

Remarque : Deux entités ne peuvent participer à la même association avec le même rôle. Dans le cas d’un type-association reflexif, comme dans l’exemple ci-dessus, deux personnes ne peuvent participer à une association marier avec le même rôle.

I.5.5. Les domaines de valeurs

Certaines informations ne peuvent accepter qu’un ensemble déterminé et limité de valeurs. Elles sont donc restreintes à un domaine de valeurs (les valeurs permises pour le sexe).

Il y a deux façons de modéliser ces domaines de valeurs : par un attribut ou par une entité.

Par un attribut : Ajouter un attribut au sein de l’entité concernée et indiquer, dans la documentation du modèle, les valeurs permises. Cette méthode est bien adaptée aux cas où l’utilisateur n’a aucun contrôle sur le domaine de valeurs en question (on ne peut ni ajouter ni retirer des valeurs permises).

Par une entité : Ajouter une entité au modèle pour représenter le domaine de valeurs.

Cette méthode doit être utilisée lorsque l’utilisateur a plein contrôle sur le domaine de valeurs.

I.5.6. Conserver l’Historique

Pour garder l’historique d’une relation on fait sortir l’attribut Date comme entité et l’ajouter à la collection de cette association.

Dans le premier cas la date n’est qu’une propriété de l’association « Occupe ». Donc si je prends le cas d’un employé E1 qui a occupé les deux postes P1 et P2 j’aurai les occurrences suivantes de l’association « Occupe » : ( E1,P1 ,20/02/2000) et ( E1,P2 ,05/04/2002) sachant que l’identifiant de l’association « occupe » est celui de employé concaténé avec celui de poste. Mais imaginons maintenant que l’employé E1 retourne à son poste d’origine qui est P1 donc j’airai une autre occurrence de ce type ( E1,P1 ,06/10/2003). Ici, il y a problème car une occurrence avec cet identifiant existe déjà ce qui fait que l’ancienne occurrence est remplacée avec la nouvelle. Donc je perds l’information que cet employé a déjà occupé ce poste à une date ultérieure. Le seule moyen de garder les deux occurrences c’est de faire en sorte que la date fasse partie de l’identifiant de l’association « occupe ». Pour cela il faut que ça soit une entité qui participe à cette association.

Ecole Nationale Supérieure d'Informatique | I. Concepts de 16

Dans cet exemple l’agrégation ne peut être utilisée et ne signifie absolument rien, vu qu’un employé n’est recruté que par une seule entreprise et ne peut exister que s’il est recruté. Ce qui fait que l’existence d’un employé implique l’existence de l’association Recrute et par conséquent de l’association correspondante.

L’association « occupe » est, en réalité, liée à l’employé et non pas à l’association « Recrute ».

Règle : Quand l’une des pattes de l’association qu’on veut agréger a la cardinalité 1.1, on enlève l’agrégation et toutes les associations auxquelles elle participe seront liées à l’entité se trouvant du côté de la cardinalité 1.1 (le fils).

Remarque : Quand la cardinalité minimale du côté de l’agrégation est un 1 signifiant que l’association agrégée ne peut exister que si l’association à laquelle participe l’agrégation existe. L’agrégation n’a pas lieu d’être car ceci signifie que l’entité liée à l’agrégation n’est en réalité qu’un participant de l’association agrégée et que les deux associations (agrégée et l’externe) ne forment qu’une seule association.

Exemple :

Dans l’exemple ci-dessus, le mariage ne peut exister que si le couple possède un appartement ce qui revient à dire que les deux associations « possède » et « marier » ne forment qu’une seule association. On obtient donc le modèle suivant :

Comme un appartement n’est possédé que par un seul couple, ceci revient à dire que l’appartement est possédé par deux personnes qui sont via cette possession mariées ensemble. L’association « marier » disparait donc au profit de l’association possède puisqu’elle y est incluse. La solution devient donc :

Règle : Une agrégation n’est justifiée que si sa cardinalité minimale dans l’association à laquelle elle participe est un 0.

Règle générale : Une agrégation n’est justifiée que si aucune des pattes de l’association agrégée n’a une cardinalité 1.1 et la cardinalité minimale de l’association à laquelle elle participe est un 0.

I.5.8. Généralisation / spécialisation

Exemple : dans un hypermarché, certains traitements s’appliquent à tous les articles: inventaire, recherche des caractéristiques, ...

Pour d'autres usages (ventes promotionnelles), on peut vouloir séparer les articles en plusieurs classes (alimentation, habillement, ...). Chaque classe peut avoir des caractéristiques qui lui sont propres, par exemple: date limite de vente (alimentation), taille et couleur (habillement), ....

Dans le modèle E-A correspondant, on sera donc amené à décrire, en plus du TE générique Article , des TE plus spécialisés, représentant les sous-classes "intéressantes".

  1. Article alimentaire,
  2. Article d'habillement
  3. Article Hi-Fi.

Ecole Nationale Supérieure d'Informatique | II. Les Contraintes d’Intégrité

Définition 16 : Généralisation : regrouper les différents types d'entité en faisant abstraction de leurs différences. Ce qui nous donne un type générique (mise en facteur des attributs communs).

Définition 17 : Spécialisation : pour un type donné, on définit des sous-types en mettant en évidence leurs particularités.

Définition 18 : Processus de Généralisation : Processus d’abstraction consistant à généraliser les entités, et les ensembles d’entités, en un seul ensemble ascendant.

Définition 19 : Processus de Spécialisation : Les sous-ensembles d’entités dans une hiérarchie de généralisation résultent du processus de spécialisation.

Note : La généralisation/Spécialisation est utilisée dans deux cas uniquement : quand un sous ensemble d’entités d’un type entité ont des caractéristiques en plus où participent à des traitements (donc des relations) différentes.

II. Les Contraintes d’Intégrité

II.1. Objectif

Spécifier des propriétés sémantiques du réel perçu qui ne sont pas exprimables avec le modèle E.A.

II.2. Définition :

“Une contrainte d’intégrité (C.I.) est une propriété non représentée par les concepts de base du modèle E.A. que doivent satisfaire les données appartenant à la base de données”.

Une BD est cohérente si toutes les CI définies sont respectées par les valeurs de la BD.

II.3. Effet

Limiter les occurrences possibles des structures d’information.

Ecole Nationale Supérieure d'Informatique | II. Les Contraintes d’Intégrité

par rapport à la valeur d’un autre attribut dans la même entité ou d’une autre entité différente. Exemple : âge entre 1 et 100 ou date de naissance < date de mariage

II.5.2. Contraintes d'intégrité sur les cardinalités

Les cardinalités elles-mêmes sont considérées comme des contraintes très importantes dans le schéma conceptuel. Mais il peut également exister des contraintes entre les cardinalités définies pour les différents rôles que joue une entité dans une ou plusieurs associations distinctes, par exemple : Nombre d’enfants d’un parent = nombre d'occurrences de «est parent de» qui lient ce Parent.

II.5.3. Contraintes sur les entités / association

Des contraintes qui peuvent être définies pour les entités comme pour les associations. Car les deux concepts peuvent être définis comme étant des ensembles d’éléments de même nature. On en distingue quatre contraintes.

II.5.3.1. Notions de base

II.5.3.1.1. Couverture

Définition 20 : Ensemble recouvrant tous les éléments.

II.5.3.1.2. Disjonction

Définition 21 : Pas d'éléments communs à deux sous-ensembles.

II.5.3.2. Partition

Définition 22 : disjonction + couverture (l’un ou l'autre mais pas les deux et pas autres choses)

II.5.3.3. Totalité

Définition 23 : ¬disjonction + couverture (l’un ou l'autre ou les deux et pas autres choses)

Ecole Nationale Supérieure d'Informatique | II. Les Contraintes d’Intégrité

II.5.3.4. Exclusion

Définition 24 : disjonction + ¬couverture (l’un ou l'autre mais pas les deux et autres choses)

II.5.3.5. Inclusion

Définition 25 : Tous les éléments du premier ensemble sont inclus dans le second ensemble.

II.5.3.6. Unicité

Définition 26 : c’est ce qu’on appelle la dépendance fonctionnelle. Elle exprime le fait qu’on connaissant la valeur d’un objet je suis en mesure de déduire une et une seule valeur de l’objet dépendant du premier.

Dans l’exemple ci-après : Une personne à une date donnée ne peut occuper qu’une seule fonction donc si je connais la personne et la date je serai en mesure de déterminer avec exactitude une et une seule fonction. Ce qui signifie qu’il y a dépendance entre personne et date vers fonction.

II.5.3.7. Participants à une contrainte

Les contraintes entre entités ou entre associations ne sont possibles que si les deux entités ou les deux associations sons de même nature. Ce qui signifie que pour les entités, le seul cas où les contraintes sont possibles c’est dans le cas de la généralisation/spécialisation. Dans le cas des associations, il faut