[PDF] Bases de Données — Module M2104





Previous PDF Next PDF



Contraintes dintégrité - domaines - triggers - PL/SQL

Une contrainte peut porter sur plusieurs attributs d'un même tuple. ?. Personne (Nom Sexe



Programmation en PL/SQL Oracle

Fetch c1 into unpilot ; -- Lecture 1° tuple. WHILE C1%found loop. If unpilot.comm is not null then insert into resultat values (unpilot.nompilot 



Bases de données relationnelles

4 déc. 2018 Calcul des tuples calcul relationnel sur les domaines (logique) ... insert ligne into table ... copy classe from 'classe'.



Algorithmique Trier et Trouver

Tri par insertion. Algorithme (InsertSort). Entrée : Tableau T de taille taille. Effet : T trié. pour i de 1 à taille-1 faire e <- t[i]. // Insérer e à sa 



Bases de Données — Module M2104

17 janv. 2020 Tout SGBD relationnel doit vérifier l'unicité et le caractère défini (non nul) des valeurs de la clé primaire. Lors de l'insertion de tuples ...



Documentation PostgreSQL 12.12

Permission to use copy



BASES DE DONNÉES ET MODÈLES DE CALCUL

Bien sûr construire une base de données ou une feuille de ajouter (insert)



Chapitre 2 : Contraintes dintégrité complexes et déclencheurs

Pour sélectionner les tuples ayant transgressés la contrainte. Où le champ rowid de <nom_table> est un Add CONSTRAINT FK_emp_ser FOREIGN KEY (idService).





Séance 2 Tuple et objet

Utilisation de tuples. Définition et utilisation. Fonction avec plusieurs valeurs de retour. Tuple nommé. Introduction aux objets.





CSC4480: Principles of Database Systems - Villanova

R1 consists of one copy of each tuple that appears in R2 one or more times 4 Insert a tuple or tuples 2 Delete a tuple or tuples 3 Update the value(s) of an



INSERTING UPDATING and DELETING tuples operations - CS 3200

INSERT Operation in SQL INSERT allows you to INSERT tuples into an already existing table The structure of the table and the data types for the fields listed in the column_listmust align with the tuples being inserted into the table Column_listcan be a subset of the fields in the table You can INSERT multiple tuples with one INSERT command



There are three SQL commands to modify the database INSERT

Tuples are deleted from only one table at a time (unless CASCADE is specified on a referential integrity constraint) A missing WHERE-clause specifies that all tuples in the relation are to be deleted; the table then becomes an empty table The number of tuples deleted depends on the number of tuples in the relation that satisfy the WHERE-clause



STRUCTURES DE DONNEES A 1 DIMENSION (2) : LES TUPLES - BDRP

Cours de Mr JULES v2 1 Le type construit Tuple en Python Cours 5 Page 5 sur 8 C Travailler avec les tuples ; comparaison avec les listes : Voyons donc ce qu’on peut faire (ou pas) avec les tuples en comparaison des listes En s’inspirant de la syntaxe pour les listes (à droite) compléter la colonne de gauche pour les tuples :



TP INFO &# 2 Listes tuples dictionnaires et chaînes de

Le type des chaînes de caractères est str de l’anglais string Les chaînes peuvent être délimitées par des simples quotes (apostrophes) ou doubles quotes (guillemets) : Action Code Dé?nition d’une chaîne de caractères ch ch=’texte’ou ch="texte" Longueur d’une chaîne de caractères ch len(ch) 1



STRUCTURES DE DONNEES A 1 DIMENSION (2) : CORRIGE LES TUPLES

Les tuples contrairement aux listes font donc partie des objets immuables Vocabulaire Les objets contenus dans un tuple s’appellent aussi les éléments de ce tuple Les éléments ne sont pas forcément du même type ! Un tuple peut lui-même contenir d’autres tuples ou des listes etc



TP 5 t Les listes et les tuples - elearninguniv-bejaiadz

Les listes et les tuples permettent de stocker des séquences de donnée s de tous types 10 (l es chaînes ne permettent de stocker que des caractères) dans un ordre connu et avec la possibilité d [avoir une répétition de certaines valeurs Les tuples permettent de créer des séquences de données que l [on ne



TP n° 1 de Bases de Données / ORACLE Création et

• Corriger ou supprimer les tuples incorrects • Ajouter une contrainte de domaine sur l’attribut COULEUR qui ne doit prendre que les valeurs ROUGE VERTE BLEUE et JAUNE 4) Modification de la structure de la base • Augmenter le type des attributs DESIGNATION et INTITULE de 10 caractères



Poêle à bois chaudière ou insert - Chauffage au bois

PAGE 2 Pole à bois chaudière ou insert? Pole à bois chaudière ou insert ? PAGE 3 Pourquoi choisir le chauffage au bois? Le bois a de nombreuses qualités : c’est un combustible renouvelable économique et généralement produit localement Les nouveaux appareils sont souvent automatiques et leur autonomie est comparable à celle



Data Manipulation Language (DML) Data Definition Language

? An insert or update to R introduces values not found in S ? A deletion or update to S causes some tuples of R to “dangle” Example: suppose R = Sells S = Beers • An insert or update to Sells that introduces a non-existent beer must be rejected • A deletion or update to Beers that removes a beer value found

What are the constraints for inserting a new tuple?

  • •INSERT may violate any of the constraints: –Domain constraint: •if one of the attribute values provided for the new tuple is not of the specified attribute domain –Key constraint: •if the value of a key attribute in the new tuple already exists in another tuple in the relation –Referential integrity:

What is a set of tuples in a modification statement?

  • • All modification statements operate ona setof tuples (no duplicates) 33 Example Employee(FirstName,Surname,Dept,Office,Salary,City)

What is the difference between a relation and a set of tuples?

  • •A relation is a set of tuples •A set has no inherent ordering •Therefore, two relations with the same collection of tuples would be equal, regardless of the order in which the tuples are presented Ordering of Attributes in a Single Tuple

Can a tuple have more than one primary key?

  • • There can be only one PRIMARY KEY for a relation, but several UNIQUEattributes • No attribute of a PRIMARY KEY can ever be NULL in any tuple. But attributes declared UNIQUE may have NULL’s, and there may be several tuples with NULL.

Bases de Données - Module M2104

IUT de Villetaneuse - R&T 1

reannée

Responsable du cours : LaurePetrucci

17 janvier 2020

Table des matières

1 Introduction3

1.1 Intégration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.2 Indépendance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.3 Disponibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.4 Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2 Conception d"une Base de Données 5

2.1 Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2.2 Objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.2.3 Relations entre classes : associations . . . . . . . . . . . . . . . . . . . . . .

7

2.2.4 Classe-association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.2.5 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.2.6 Élaboration d"un diagramme de classes . . . . . . . . . . . . . . . . . . . .

9

2.3 Schéma relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.3.1 Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.3.2 Instanciation d"une relation . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.3.3 Clé primaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.3.4 Contrainte d"intégrité et valeur nulle . . . . . . . . . . . . . . . . . . . . . .

11

2.3.5 Clé étrangère . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.3.6 Contrainte d"intégrité de référence . . . . . . . . . . . . . . . . . . . . . . .

12

2.4 Du diagramme de classes au schéma relationnel . . . . . . . . . . . . . . . . . . . .

12

2.4.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

2.4.2 Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

2.4.3 Association plusieurs à plusieurs . . . . . . . . . . . . . . . . . . . . . . . .

12

3 Normalisation 14

3.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

3.2 Dépendances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

3.31èreForme Normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

3.42èmeForme Normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

3.53èmeForme Normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

3.6 Règles sur les relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

4 Algèbre relationnelle 18

4.1 Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

4.1.1 Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

4.1.2 Sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

4.1.3 Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

4.1.4 Intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

4.1.5 Différence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20 1

4.1.6 Produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

4.1.7 Jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

4.2 Combinaison d"opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

5 SQL24

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

5.2 Création d"une table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

5.3 Suppression et modification de tables . . . . . . . . . . . . . . . . . . . . . . . . . .

26

5.4 Manipulation du contenu d"une table . . . . . . . . . . . . . . . . . . . . . . . . . .

26

5.4.1 Insertion de Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

5.4.2 Mise à Jour de Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

5.4.3 Suppression de Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

5.5 Interrogation de la base de données . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

5.5.1 La clauseSELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

5.5.2 Réalisation d"une Projection . . . . . . . . . . . . . . . . . . . . . . . . . .

27

5.5.3 Opération de sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

5.5.4 Tri des Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

5.5.5 Jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

5.5.6 Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

5.5.7 Intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

5.5.8 Différence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

5.5.9 Les comparateursALLetANY. . . . . . . . . . . . . . . . . . . . . . . . . .32

5.5.10 Test d"existence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

5.5.11 Fonctions sur les Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

5.6 Groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

5.6.1 Détermination des Groupes . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

5.6.2 Fonctions sur les Groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

5.6.3 ClauseHAVING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

5.7 Vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

5.7.1 Création d"une Vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

5.7.2 Utilisation d"une vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

5.7.3 Suppression d"une Vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

5.8 Règles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

6 Client C d"un SGBD 38

6.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

6.2 La librairielibpq-fe.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38

6.3 Un exemple complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

7 Client java d"un SGBD 40

7.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

7.2 Schéma d"une API java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

7.3 Exemple complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

8 Client Python d"un SGBD 43

8.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

8.2 Un exemple complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43 Bases de Données 2 IUT R&T Villetaneuse

Chapitre 1

Introduction

Unebase de donnéespermet de stocker les données communes à plusieurs applications de façon

plus efficace qu"un système de fichiers.

Elle est constituée d"un ensemble de données reliées entre elles, accessibles à plusieurs utilisa-

teurs simultanément. Définition 1UnSGBD(Système de Gestion de Bases de Données) est un logiciel permettant de : créer des bases de données les interroger les mettre à jour assurer les contrôles d"intégrité, de concurrence et de sécurité. Les objectifs principaux de l"utilisation d"un SGBD sont de garantir des caractéristiques d"in- tégration, d"indépendance, de disponibilité et de sécurité de la base de données.

1.1 Intégration

Dans un système de traitement de donnéesorienté fichier, les applications utilisent généra-

lement un grand nombre de fichiers. Il y a par conséquent un risque de duplication ou de perte d"informations. Exemple 1.1 :Considérons des outils de gestion des étudiants de l"IUT : un logiciel d"inscription, manipulant un fichier des étudiants inscrits; un logiciel de gestion des notes, manipulant un fichier avec les notes des étudiants.

Les informations sur un même étudiant sont saisies deux fois (une sur chaque logiciel). De plus

tout étudiant devrait être inscrit dans les deux fichiers, ce qui n"est pas nécessairement le cas si

l"on a oublié par exemple de rentrer ses notes, ou s"il a démissionné et qu"on ne l"a supprimé que

de la liste des inscrits. A contrario, l"utilisation d"unebase de donnéesgarantit : la centralisation de toutes les données en unréservoir unique de donnéescommun à toutes les applications; la centralisation de tous les contrôles d"intégrité et de cohérence.

1.2 Indépendance

L"utilisation d"un SGBD garantit également uneindépendance physiquequi rend transparents aux utilisateurs les changements : 3 de support ou de chemin d"accès aux données; de méthode d"accès aux données.

Ainsi, la localisation de la base de données sur le serveur qui la gère peut-être modifiée sans

impact pour celui qui l"utilise.

1.3 Disponibilité

La garantie de la disponibilité permet à un utilisateur d"accéder à une base de données même

si elle est utilisée par ailleurs. Par conséquent, tout utilisateur ignore l"existence d"utilisateurs

concurrents.

1.4 Sécurité

Enfin, deux aspects principaux de lasécurité des donnéessont fournis : l"intégrité: les données sont protégées contre des modifications invalides; laconfidentialité: la gestion de profils utilisateurs avec différentes autorisations limite l"accès illégal aux données.Bases de Données 4 IUT R&T Villetaneuse

Chapitre 2

Conception d"une Base de Données

La création d"une base de données s"effectue en plusieurs étapes, allant de la description du pro-

blème à résoudre, jusqu"à l"implémentation de la base de données et des outils logiciels permettant

de l"exploiter : 1. rédaction en langage naturel (français) de sb esoins( cahier des charges); 2. conceptualisation a vecun diagramme de classes UML(Unified Modeling Language); 3. traduction de ce diagramme de c lassesen un schéma relationnelreprésentant les l"organi- sation des données dans la base; 4. écriture de scripts SQLpour la création et l"interrogation de la base de données; 5. in tégrationd"app elsà des scripts SQLdans des programmes. Dans ce chapitre, nous détaillons les étapes 1, 2 et 3. Le chapitre 3 montre comment obtenir

un bon schéma relationnel, et le chapitre 4 explicite les opérations permettant d"en extraire des

données. Les éléments nécessaires du langageSQLpour l"écriture de scripts (étape 4) sont présentés

dans le chapitre 5. L"intégration à un programme (étape 5) est réalisée dans les chapitres 6 (pour

le langageC) et 7 (pourjava).

2.1 Cahier des charges

Uncahier des chargesdécrit, en langage naturel, le problème que l"on souhaite résoudre. Les

différents points indiqués dans ce document doivent être respectés pour la réalisation du projet.

Exemple 2.1 :On souhaite développer une application informatique de gestion de vols sur une

flotte d"avions. Cette application doit permettre de gérer l"affectation des pilotes aux différents

vols. Pour pouvoir gérer l"ensemble des pilotes, la compagnie qui les emploie a besoin de leur nom

et de leur adresse. Un même vol peut avoir lieu plusieurs fois dans la semaine, des jours différents,

mais toujours à la même heure, avec les mêmes villes de départ et de destination.

Certaines contraintes doivent être respectées pour des raisons de disponibilité et de sécurité

évidentes :

un pilote ne peut pas effectuer deux vols en même temps; lors d"un vol, il doit y avoir un pilote dans l"avion.

2.2 Diagramme de classes

2.2.1 Classes

Une classe permet de décrire un ensemble d"objets similaires. 5 Définition 2Uneclasseest ladescription formelle d"un ensemble d"objetsayant des propriétés (attributsetméthodes) communes.

Les classes peuvent être instanciées en attribuant des valeurs à leur différents attributs.

Définition 3Unobjetest une instance d"une classe. Exemple 2.2 :Supposons que l"on souhaite stocker des informations relatives à des personnes. Pour ce faire, nous pouvons concevoir une classePersonnedisposant d"un nom, d"un prénom et

d"une date de naissance. Une méthode calculant l"âge d"une personne peut être associée à cette

classe. La classePersonneest représentée dans la figure 2.1.Personne - nom : String - prenom : String - dateNaissance : Date+ age() : int

Figure2.1 - ClassePersonne

La représentation graphique, telle que présentée dans la figure 2.1 suit certaines conventions.

Elle comporte trois parties :

Nom :lenomde la classe doit évoquer leconceptdécrit par cette classe. Le nom commence (généralement) par une majuscule. Attributs :lesattributsdéfinissent lastructured"un objet de la classe. Chaqueattribut est défini par unnom, untype, unevisibilité(- pour privé ou + pour public). Leurvaleur

qui peut différer d"un objet à un autre. Dans le cas général, la visibilité d"un attribut est

privée. Opérations ou méthodes :lesopérationsdécrivent lesactionsqu"un objet peut effec- tuer. Elles peuvent prendre desvaleurs en entrée,modifier les attributset/ouproduire des

résultats. L"implémentation d"une opérationest appelée uneméthode. Dans le cas général,

la visibilité d"une méthode est publique.

Définition 4Unconstructeurest une opération appelée lors de la création d"un objet. Il porte le

même nom que la classe. Exemple 2.3 :Complétons la classePersonnede l"exemple 2.2 avec des constructeurs, comme

dans la figure 2.2. La méthodePersonnepeut être appelée de deux manières différentes :

sans argument :l"objet est créé mais ses attributs ne sont pas instanciés; avec des arguments :ceux-ci sont utilisés pour instanciés les attributs de l"objet créé.

De plus, les attributs ayant une visibilité privée, il est d"usage d"accéder à leur valeur via des

méthodes publiques. C"est l"objectif des deux méthodesgetNometgetPrenom.

2.2.2 Objets

Un objet se présente donc comme une copie de la classe contenant des valeurs d"attributs qui lui

sont spécifiques. Il comporte également une identité qui permet d"y faire référence. Les méthodes

qui lui sont associées définissent son comportement.Bases de Données 6 IUT R&T Villetaneuse

Personne

- nom : String - prenom : String - dateNaissance : Date+ Personne() + Personne(nom :String, prenom : String, dateNais : Date) + getNom() : String + getPrenom() : String + age() : intFigure2.2 - La classePersonneavec ses constructeurs Exemple 2.4 :Un programme crée un objet de la classePersonneen appelant le constructeur avec les arguments suivants :Personne(Dupont, Jean,"29/02/1972"). Cet objet est représenté

dans la figure 2.3. Nous remarquons que les constructeurs ne font pas partie des méthodes associées

à l"objet (ce qui est normal puisqu"ils ne servent qu"à créer des objets d"une classe).jeanDupont : Personne

nom : Dupont prenom : Jean dateNaissance : 29/02/1972getNom() : String getPrenom() : String age() : intFigure2.3 - L"objetjeanDupontde la classePersonne

2.2.3 Relations entre classes : associations

Définition 5Uneassociationest une relation entre des classes qui décrit les connexions struc- turelles entre leurs instances.

Représentation graphique

Une association est représentée comme dans la figure 2.4 : une association binaire (entre deux classes) est matérialisée par untrait pleinentre les classes associées; elle peut avoir unnom: celui-ci figure alors au milieu du lien d"association; elle peut avoir unsens de lecture(IouJ); de part et d"autre du lien d"association peuvent figurer desrôles. Exemple 2.5 :Considérons deux classes définissant desPolygoneetPoint. Elles sont reliées

par une association telle que décrite dans la figure 2.4.Bases de Données 7 IUT R&T Villetaneuse

Polygone

1sommets

3..*PolygonePointDéfini parIFigure2.4 - Association entre des classesPolygoneetPoint

Multiplicité ou cardinalité

Lamultiplicitésur la terminaison cible fixe le nombre d"objets de la classe cible pouvant être

associés à un seul objet donné de la classe source (la classe de l"autre terminaison de l"association) :

exactement un :1ou1::1 plusieurs :ou0:: au moins un :1:: de un à six :1::6 Exemple 2.6 :Dans l"exemple de la figure 2.4, les multiplicités indiquent qu"unPolygoneest défini par au moins3Point(ses sommets).

Définition 6Une association est diteréflexivequand lesdeux extrémitésde l"association abou-

tissent à lamême classe.

Exemple 2.7 :Dans la figure 2.5 est représentée une association réflexiveamitiéqui modélise

le lien d"amitié entre deux personnes. Dans la partie droite de la figure, deux objets de la classe

Personne,marieetjeansont reliés par ce lien.Amitié

AmitiéPersonne

nom : String prenom : String dateNaissance : Dateage() : intmarie:Personnejean:Personne

Figure2.5 - Une association réflexive sur la classe personne, et le lien entre deux objets de cette

classe

2.2.4 Classe-association

Définition 7Uneclasse-associationest une classe ne servant qu"à contenir les attributs d"une

association. Elle est reliée à l"association par untrait discontinu.Bases de Données 8 IUT R&T Villetaneuse

Exemple 2.8 :Soient des classesPersonneetEntreprise. On souhaite modéliser la relation d"Emploid"une personne dans une entreprise. La figure 2.6 montre qu"elles sont reliées par un classe-associationEmploiqui comporte également des informations dur la date d"embauche et

sur le salaire. Ces deux informations ne peuvent en effet pas faire partie des caractéristiques de

l"entreprise (tous les employés n"ont pas été embauchés en même temps et avec le même salaire)

ni de l"employé (qui peut avoir plusieurs emplois dans des entreprises différentes, avec des salaires

et dates d"embauche différents). De plus, les cardinalités sont toutes*car une entreprise qui vient

d"être créée n"a pas encore d"employé, mais peut en général en avoir un nombre indéterminé. De

même une personne peut avoir plusieurs emplois à temps partiel dans une ou plusieurs entreprises,

ou être au chômage (et ne pas être associée à une entreprise).employeurs *employés *Entreprise nom : StringPersonne nom : String prenom : StringEmploi dateEmbauche : Date salaire : floatFigure2.6 - Une classe-association

2.2.5 Diagramme de classes

Les classes, associations et classes-associations vues dans les sections 2.2.1, 2.2.3 et 2.2.4 per-

mettent de constituer undiagramme de classesmodélisant le problème dans son intégralité. C"est

le diagramme le plus important de la modélisation objet. Il permet de modéliser les classes du

système et leurs relations indépendamment d"un langage de programmation particulier. Il procure

une vue statique du système.

2.2.6 Élaboration d"un diagramme de classes

Il s"agit, à partir du cahier des charges (voir section 2.1), de trouver lesclassesdu domaine

étudié. Ceci se fait généralement en collaboration avec un expert du domaine en extrayant du

texte lesconcepts ou substantifs. Lesassociationsentre classes sont quant à elles issues desverbes

ou constructions verbalesmettant en relation plusieurs classes (telles queest composé de,tra- vaille pour...). Lesattributsdes classes sont obtenus à partir desubstantifs ou groupes nominaux (commela masse d"une voiture,le montant d"une transaction...). Dans une optiquebases de données, on ne s"intéresse qu"auxattributsdes classes, et non

aux méthodes qui pourraient lui être associées. Lorsqu"elle est impliquée dans un projetbase de

données, une classe doit avoir un attribut jouant le rôle d"identifiant unique. Exemple 2.9 :Analysons le cahier des charges de l"exemple 2.1 de gestion de vols aériens en surlignant en jaune les mots pouvant conduire à des classes, en bleu à des associations ou des classes-associations, et en vert à des attributs.Bases de Données 9 IUT R&T Villetaneuse "On souhaite développer une application informatique de gestion devolssur une flotte d" avions.

Cette application doit permettre de gérer l"affectation despilotesaux différen tsv ols.P ourp ou-

voir gérer l"ensemble des pilotes, la compagnie qui les emploie a besoin de leurnomet de leur adresse . Un même v olp euta voirl ieuplusieurs fois dans la sem aine,des joursdifféren ts,mais toujours à la mêmeheure, a vecles même svilles de départet de destination.

Certaines contraintes doivent être respectées pour des raisons de disponibilité et de sécurité

évidentes :

un pilote ne peut paseffectuerdeux v olsen mê metemps ; lors d"un vol, il doit y avoir un pilote dans l"avion." On en déduit le diagramme de classes de la figure 2.7 dans lequelid_piloteest l"identifiant de la classePiloteetid_volcelui de la classeVol. Les cardinalités traduisent la contrainte de

présence d"au moins un pilote sur chaque vol. Par contre un pilote peut n"être affecté à aucun vol.1..*0..*Pilote

id_pilote : int nom : String adresse : StringVol id_vol : int villeDepart : String villeArrivee : String heureDepart : String heureArrivee : StringEffectue date_Vol : Date Figure2.7 - Diagramme de classes pour les vols aériens

2.3 Schéma relationnel

Unschéma relationnelfournit sous forme derelationsune description simple des classes et de certaines associations du diagramme de classes.

2.3.1 Relations

Définition 8UnerelationRest un ensembled"attributs. Exemple 2.10 :Les deux classes de l"exemple 2.9 des vols aériens se traduisent par les relations suivantes :PILOTE(id_pilote, n om,a dresse) VOL id_vol v ille_départ v ille_arrivée h eure_départ h eure_arrivée

La relationPILOTEa pour attributs :id_pilote,nometadresse.Bases de Données 10 IUT R&T Villetaneuse

2.3.2 Instanciation d"une relation

Unerelationest instanciée par une table. Chaque ligne de la table, appeléetuplecontient une

instance de la relation. De la même manière qu"une relation correspond à une classe, un tuple

d"une relation correspond à un objet de la classe. Exemple 2.11 :La table 2.1 montre une instanciation de la relationPILOTE. Le pilote d"iden- tifiant4s"appelle Durand et habite Paris.PILOTEid_pilotenomadresse

3GarrattPerth

4DurandParis

5MacMachinGlasgow

Table2.1 - Instanciation de la relationPILOTE

2.3.3 Clé primaire

Définition 9Uneclé primaired"une relation est un attribut ou un groupe d"attributs de la relation

qui identifie un tuple unique.

Propriété 1Une relation possèdeune et une seule clé primaire, mais peut contenir plusieurs clés

qui pourraient jouer ce rôle (clés candidates).

Dans le cas d"une relation issue d"une classe, la clé primaire correspond à l"identifiant de la

classe. La clé primaire d"une relation est représentée en soulignant les attributs qui la composent.

Exemple 2.12 :id_piloteest la clé primaire de la relationPILOTE.PILOTE(id_pilote, n om,a dresse) VOL (id_vol, v ille_départ, v ille_arrivée, h eure_départ, heure_arrivée)

2.3.4 Contrainte d"intégrité et valeur nulle

Tout SGBD relationnel doit vérifierl"unicité et le caractère défini(non nul) des valeurs de la

clé primaire. Lors de l"insertion de tuples dans une relation, il arrive qu"un attribut soit inconnu ou non

défini. On introduit alors une valeur conventionnelle, appeléevaleur nulle. Une clé primaire ne

peut pas avoir une valeur nulle.

2.3.5 Clé étrangère

Définition 10Uneclé étrangèredans une relation est une clé primaire dans une autre relation.

Exemple 2.13 :Compétons l"exemple des vols aériens en ajoutant des relationsAVIONetMODÈLE, comme dans les tables 2.2 et 2.3 respectivement. typeest laclé primairede la relationMODÈLEet uneclé étrangèrede la relationAVION. En effettypeidentifie le modèle d"avion, et chaque avion a untypeconnu.

Bases de Données 11 IUT R&T Villetaneuse

AVIONid_aviontypecompagnie

10A340Air France

20B747British Airways

30B747Qantas

Table2.2 - Les avionsMODÈLEtypeconstructeurcapacité

A340Airbus228

B747Boeing432

Table2.3 - Les modèles d"avions

2.3.6 Contrainte d"intégrité de référence

Pour assurer l"intégrité d"une base de données, lors de l"insertion d"un tuple dans une table,

le SGBD doit vérifier que les valeurs des clés étrangères existent dans la table où elles sont clé

primaire.

De même, lors de la suppression d"un tuple d"une table dont la clé primaire est clé secondaire

d"une autre table, des mises à jour de cette dernière peuvent être nécessaires. Dans ce cas, plusieurs

comportements sont possibles :

interdire la suppression si la valeur de la clé primaire existe dans la table où elle est clé

secondaire (recommandé); supprimer ces valeurs; avertir l"utilisateur d"une incohérence; remplacer ces valeurs par la valeur nulle. Exemple 2.14 :Lors de l"insertion d"un tuple dans la tableAVION, le système doit vérifier que la valeur de l"attributtypeexiste bien dans la tableMODÈLE. Lors de la suppression d"un tuple dansMODÈLE, on peut interdire la suppression si la valeur de typeexiste dansAVION.

2.4 Du diagramme de classes au schéma relationnel

Chaque élément du diagramme de classes est reflété dans le schéma relationnel.

2.4.1 Classes

Chaqueclassedu diagramme UML est transformée de la manière suivante : elle devient une relation contenant tous les attributs de la classe;

si elle possède un identifiant, il devient la clé primaire, sinon il faut ajouter une clé primaire

arbitraire.

2.4.2 Associations

Association un à plusieurs

Dans le cas d"une association un à plusieurs, il faut ajouter un attribut clé étrangère dans la

relation de cardinalitén. Cette clé étrangère est la clé primaire de la relation de cardinalité1.

Association un à un

Dans le cas d"une association un à un, il faut rajouter un attribut de type clé étrangère dans

quotesdbs_dbs11.pdfusesText_17
[PDF] Insérer de l`âme dans la science - Michaël - Jean

[PDF] Insérer des objets et les animer

[PDF] Insérer des sons dans un diaporama Powerpoint - Anciens Et Réunions

[PDF] Insérer des sons dans une applet - Espèces En Voie De Disparition

[PDF] INSERER DES SYMBOLES OU CARACTERES SPECIAUX

[PDF] Insérer images, liens, Sons, Vidéos dans un document Word

[PDF] Insérer le logo Formation Conseil Mauricie ainsi que le logo des 2

[PDF] Insérer le titre du projet - Gestion De Projet

[PDF] Insérer logo - Saint - Jumelles

[PDF] Insérer logo de Municipalité d`Ivry-sur-le-lac

[PDF] Insérer son et vidéo - Prêts Étudiants

[PDF] INSERER UN EXTRAIT VIDÉO

[PDF] INSERER UN LIEN

[PDF] Insérer un lien hypertexte dans un document

[PDF] Insérer un lien hypertexte dans un mail MAC