Débuter avec EXPRESS. Alain Plantec. 1 Schema 2



Documents pareils
LES TYPES DE DONNÉES DU LANGAGE PASCAL

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

OCL - Object Constraint Language

GOL502 Industries de services

Algorithmique et programmation : les bases (VBA) Corrigé

CREATION WEB DYNAMIQUE

Génie Logiciel avec Ada. 4 février 2013

Conception des bases de données : Modèle Entité-Association

Concevoir une base de données

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Bases de données. Chapitre 1. Introduction

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Structurer ses données : les tableaux. Introduction à la programmation

Introduction à MATLAB R

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Créer le schéma relationnel d une base de données ACCESS

UML et les Bases de Données

Création et Gestion des tables

Développement d un interpréteur OCL pour une machine virtuelle UML.

Utilisation d objets : String et ArrayList

Algorithmique & programmation

Créer et partager des fichiers

Université de Bangui. Modélisons en UML

Encryptions, compression et partitionnement des données

OpenPaaS Le réseau social d'entreprise

Chapitre 10. Les interfaces Comparable et Comparator 1

Langage SQL : créer et interroger une base

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ALGORITHMIQUE ET PROGRAMMATION En C

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Modèle conceptuel : diagramme entité-association

Premiers Pas en Programmation Objet : les Classes et les Objets

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Traduction des Langages : Le Compilateur Micro Java

Bases de données relationnelles

Plateforme PAYZEN. Définition de Web-services

Cours 1 : introduction

F. Barthélemy. 17 mai 2005

Corrigé des TD 1 à 5

Olivier Mondet

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Chapitre VI- La validation de la composition.

Bases de programmation. Cours 5. Structurer les données

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Utilitaires méconnus de StrataFrame

STAGE IREM 0- Premiers pas en Python

Programmation Objet - Cours II

1 Recherche en table par balayage

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Plan du cours. Historique du langage Nouveautés de Java 7

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Cours Informatique Master STEP

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Paginer les données côté serveur, mettre en cache côté client

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Sélection du contrôleur

Object Constraint Language (OCL)

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

PHP 5. La base de données MySql. A. Belaïd 1

TP1 : Initiation à Java et Eclipse

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Les bases de données

Programmation en Java IUT GEII (MC-II1) 1

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

II. Modèle conceptuel le modèle entité-association

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Utilisation des nombres pour résoudre des problèmes Aspect cardinal Maternelle MS-GS. Francette Martin

1 Modélisation d une base de données pour une société de bourse

Une introduction à Java

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

.NET - Classe de Log

Recherche dans un tableau

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Programmation par composants (1/3) Programmation par composants (2/3)

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Utiliser Améliorer Prêcher. Introduction à LDAP

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

I4 : Bases de Données

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Logiciel de Base. I. Représentation des nombres

Chapitre 2 Devine mon nombre!

Introduction au Système de Gestion de Base de Données et aux Base de Données

Base de données relationnelle et requêtes SQL

as Architecture des Systèmes d Information

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Le langage VHDL. Eduardo Sanchez EPFL

Meta Object Facility. Plan

Programmer en JAVA. par Tama

Plan du cours Cours théoriques. 29 septembre 2014

Algorithmique et Programmation, IMA

Transcription:

Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection............................................... 3 2.2.1 Collections à une seule dimension.................................. 3 2.2.2 Collections à une plusieurs dimensions............................... 4 2.3 Les associations entre entités......................................... 4 2.3.1 Mise en relation par un attribut.................................... 4 2.3.2 Indiquer les ardinalités dans les deux sens............................. 5

1 Schema L unité de modélisation est le schéma. Ca veut dire que tout les constructions du langage sont utilisées dans le contexte d un schéma. De plus, un schéma peut réutiliser les définitions d un autre schéma. Voici un exemple de deux schémas. Le deuxième déclare utiliser les définition du premier : (*<premier> est le premier schma EXPRESS que vous rencontrez *) SCHEMA premier; SCHEMA deuxieme; (*<deuxieme> utilise les dfinitions de premier *) USE FROM premier; 2 Entité Une classe est spécifiée par une entité EXPRESS. Une entité peut hériter d une autre entité. Voici les deux entités crustace et crabe avec crabe qui hérite de crustace : SCHEMA familles; ENTITY crustace; SCHEMA especes; USE FROM familles; ENTITY crabe SUBTYPE OF (crustace); 2.1 Attributs simples Les propriétés fondamentales d une entité sont représentées par les attributs explicites. Un attribut explicite comprend un nom suivit de son type. On dispose de six types simples prédéfinis : 1. String pour les chaînes de caractères, 2. Integer pour les entiers, 3. Real pour les réels, 4. Logical pour une valeur logique soit : true, false ou unknown, 5. Boolean pour un booléen soit : true ou false et 6. Binary pour n importe quoi puisque c est du binaire encodé en ascii, Tout de suite une exemple de schéma ne comportant qu une entité avec des attributs de type simple : SCHEMA test; (*<personne> dcrit une personne physique *) ENTITY personne; nom : STRING; 2

prenom : STRING; age : INTEGER; taille : REAL; mariee : LOGICAL; (*<personne.mariee> on ne sait pas toujours *) photo : OPTIONAL BINARY; (*<personne.photo> pour le trombinoscope *) Pour qu une instance soit valide, tout attribut explicite doit avoir une valeur. Un attribut peut être indiqué comme facultatif auquel cas, une instance peut ne pas comporte de valeur pour cet attribut. Dans l exemple précédent, l attribut photo est déclaré facultatif. 2.2 Attributs collection 2.2.1 Collections à une seule dimension Simplement tout d abord : pour représenter les collections, on dispose de quatres types : 1. array : pour un tableau de taille fixe, chaque élément pouvant être accédé par une index entier représentant sa position dans la collection ; un tableau est définit par ses bornes inférieures et supérieures sachant qu une borne peut être négative ; 2. list : pour une collection à nombre variable d éléments, chaque élément pouvant être accédé par une index entier représentant sa position dans la collection ; 3. set : pour un ensemble d éléments à nombre variable d éléments et dont la position de stockage d un d éléments n est pas connue ; aucun doublon n est autorisé ; 4. bag : comme pour set mais les doublons sont autorisés. SCHEMA campagne_en_mer; ENTITY mesures; (*<mesures.remarques> un tableau de 10 remarques concernant les mesures *) remarques : ARRAY [1:10] OF STRING; (*<mesures.temperatures> temp. mesures depuis -25 mtres jusqu +10 mtres *) temperatures: ARRAY [-25:10] OF REAL; ENTITY campagne; code : STRING; (*<campagne.identification> au min. 0 et au max. 5 chanes pour identifier la campagne *) identification : LIST [0:5] OF STRING; (*<campagne.equipe> au min. 10 et au max. 75 noms de personnes presentes sur le navire *) equipe : SET [10:75] OF STRING; Et quand on ne connait pas le nombre d éléments dans une collection : il se présente deux cas : c est possible avec list, set et bag et 1. on peut ne pas indiquer du tout de bornes ; on a alors une collection avec au minimum, 0 élément et au maximum, une infinité d éléments ; 2. on peut aussi ne pas fixer que la borne supérieure ; alors là, on dispose de la valeur infinie représentée par le symbole? ; on utilise se symbole à la place de la borne supérieure. SCHEMA campagne_en_mer; ENTITY mesures; 3

(*<mesures.remarques> un tableau de 10 remarques concernant les mesures *) remarques : ARRAY [1:10] OF STRING; (*<mesures.temperatures> temp. mesures depuis -25 mtres jusqu +10 mtres *) temperatures: ARRAY [-25:10] OF REAL; ENTITY campagne; code : STRING; (*<campagne.identification> au min. 0 et au max. une infinit de chanes *) identification : LIST OF STRING; (*<campagne.equipe> au min. 10 et au max. une infinit de noms de personnes *) equipe : SET [10:?] OF STRING; 2.2.2 Collections à une plusieurs dimensions C est pareil que pour une dimensions car le type d un élément peut aussi être une collection. SCHEMA guerre_navale; -- par exemple, mais sans conviction quand la pertinence du schema ENTITY grille; cases : ARRAY [1:25] OF ARRAY [1:25] OF BOOLEAN; (*<grille.cases> pour attaquee ou non *) ENTITY navire; ENTITY porte_avion SUBTYPE OF (navire); x : INTEGER; (*<porte_avion.x> position en X dans la grille *) y : INTEGER; (*<porte_avion.y> position en Y dans la grille *) batiment : ARRAY [1:2] OF ARRAY [1:8] OF BOOLEAN; 2.3 Les associations entre entités 2.3.1 Mise en relation par un attribut Deux entités peuvent être associées par un attribut. scol : scolarite; ENTITY scolarite; (* une scolarite est installee dans batiment *) etab : batiment; 4

Dans l exemple précédent, on sait qu un etudiant est associé à une et une seule scolarité. Mais qu en est t il de la relation inverse : pour une scolarité, combien d étudiants, un, deux, au minimum 3 et au maximum 55? On peut donc changer la modélisation : ENTITY scolarite; etudiants : LIST [0:4500] OF etudiant; (* au maxi. 4500 tudiants *) etab : batiment; 2.3.2 Indiquer les ardinalités dans les deux sens D accord, mais, non de non, on perd la cardinalité pour un étudiant : combien de scolarité(s) par étudiant? Ok, voyons alors, on peut indiquer l association dans l entité etudiant et dans scolarite. Pour cela, il y a la clause inverse. Pour une association, dans une des deux entités en relation, on utilise un attribut explicite, et dans l autre, on utilise un attribut inverse. Voici une première solution : sascolarite : scolarite; ENTITY scolarite; INVERSE (* pour une scolarite, au mini, 0 etudiant et au maxi. 4500 tudiants *) etudiants : SET [0:4500] OF etudiant FOR sascolarite; (* pour une scolarite, un et un seul batiment *) batiment : batiment FOR lesscolarites; lesscolarites : LIST of scolarite; On peut tout aussi bien inverser l association en utilisant un attribut explicite dans scolarite qui porte la liste des étudiants et en utilisant un attribut inverse dans l entité Etudiant. INVERSE sascolarite : scolarite FOR etudiants; ENTITY scolarite; 5

(* pour une scolarite, de 0 une infinit d tudiants *) etudiants : LIST [0:?] OF etudiant; (* pour une scolarite, un et un seul batiment *) sonbatiment : batiment; INVERSE lesscolarites : SET of scolarite FOR sonbatiment; 6