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 1 Ensemble dictionnaire et base de données
La fonction add et l'opérateur
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éeResponsable du cours : LaurePetrucci
17 janvier 2020
Table des matières
1 Introduction3
1.1 Intégration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31.2 Indépendance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31.3 Disponibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41.4 Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42 Conception d"une Base de Données 5
2.1 Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52.2 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52.2.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52.2.2 Objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62.2.3 Relations entre classes : associations . . . . . . . . . . . . . . . . . . . . . .
72.2.4 Classe-association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82.2.5 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92.2.6 Élaboration d"un diagramme de classes . . . . . . . . . . . . . . . . . . . .
92.3 Schéma relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102.3.1 Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102.3.2 Instanciation d"une relation . . . . . . . . . . . . . . . . . . . . . . . . . . .
112.3.3 Clé primaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
112.3.4 Contrainte d"intégrité et valeur nulle . . . . . . . . . . . . . . . . . . . . . .
112.3.5 Clé étrangère . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
112.3.6 Contrainte d"intégrité de référence . . . . . . . . . . . . . . . . . . . . . . .
122.4 Du diagramme de classes au schéma relationnel . . . . . . . . . . . . . . . . . . . .
122.4.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122.4.2 Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122.4.3 Association plusieurs à plusieurs . . . . . . . . . . . . . . . . . . . . . . . .
123 Normalisation 14
3.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143.2 Dépendances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143.31èreForme Normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
3.42èmeForme Normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
3.53èmeForme Normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
3.6 Règles sur les relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
164 Algèbre relationnelle 18
4.1 Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
184.1.1 Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
184.1.2 Sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
194.1.3 Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
194.1.4 Intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
204.1.5 Différence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20 14.1.6 Produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
4.1.7 Jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
214.2 Combinaison d"opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
225 SQL24
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
245.2 Création d"une table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
245.3 Suppression et modification de tables . . . . . . . . . . . . . . . . . . . . . . . . . .
265.4 Manipulation du contenu d"une table . . . . . . . . . . . . . . . . . . . . . . . . . .
265.4.1 Insertion de Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
265.4.2 Mise à Jour de Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
275.4.3 Suppression de Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
275.5 Interrogation de la base de données . . . . . . . . . . . . . . . . . . . . . . . . . . .
275.5.1 La clauseSELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
5.5.2 Réalisation d"une Projection . . . . . . . . . . . . . . . . . . . . . . . . . .
275.5.3 Opération de sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
285.5.4 Tri des Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
295.5.5 Jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
295.5.6 Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
315.5.7 Intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
315.5.8 Différence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
325.5.9 Les comparateursALLetANY. . . . . . . . . . . . . . . . . . . . . . . . . .32
5.5.10 Test d"existence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
335.5.11 Fonctions sur les Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . .
335.6 Groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
355.6.1 Détermination des Groupes . . . . . . . . . . . . . . . . . . . . . . . . . . .
355.6.2 Fonctions sur les Groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
355.6.3 ClauseHAVING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
5.7 Vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
365.7.1 Création d"une Vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
365.7.2 Utilisation d"une vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
365.7.3 Suppression d"une Vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
375.8 Règles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
376 Client C d"un SGBD 38
6.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
386.2 La librairielibpq-fe.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
6.3 Un exemple complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
387 Client java d"un SGBD 40
7.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
407.2 Schéma d"une API java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
407.3 Exemple complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
408 Client Python d"un SGBD 43
8.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
438.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 VilletaneuseChapitre 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 obtenirun 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. Lesdiffé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 uneflotte 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 etd"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() : intFigure2.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). Leurvaleurqui 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 desré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, commedans 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 luisont 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 VilletaneusePersonne
- 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 classePersonne2.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éespar 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 êtreassocié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:PersonneFigure2.5 - Une association réflexive sur la classe personne, et le lien entre deux objets de cette
classe2.2.4 Classe-association
Définition 7Uneclasse-associationest une classe ne servant qu"à contenir les attributs d"uneassociation. 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 etsur 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-association2.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 dusystè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 nonaux 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 depré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ériens2.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éeLa 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 uneinstance 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_pilotenomadresse3GarrattPerth
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 nondé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 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