Génération de code à partir d une spécification B : Application aux bases de données

Dimension: px
Commencer à balayer dès la page:

Download "Génération de code à partir d une spécification B : Application aux bases de données"

Transcription

1 Génération de code à partir d une spécification B : Application aux bases de données Amel Mammar * Régine Laleau ** Université du Luxembourg, LACL, Université Paris 12 SE2C, 6 rue Richard Courdenhove-Kalergi IUT Fontainebleau, Route forestière L-1359 Luxembourg-Kirchberg, Hurtault, Fontainebleau amel.mammar@uni.lu laleau@univ-paris12.fr RÉSUMÉ. Le travail décrit dans cet rapport entre dans le cadre de la conception d une démarche complète et outillée de développement d applications bases de données sûres. Le point de départ de notre démarche est une spécification B traduisant un ensemble de diagrammes UML dotés d une sémantique formelle dédiée aux systèmes d information. Cette spécification est ensuite raffinée par des règles automatiques et prouvées. Ce raffinement a pour but de rendre la spécification initiale proche d une implémentation relationnelle, de telle sorte que la dernière phase de traduction devienne intuitive et naturelle. La contribution principale de ce rapport est de fournir une démarche systématique de traduction des composants terminaux B en une implémentation relationnelle. Cette traduction concerne deux aspects complémentaires : les données concrètes correspondant au schéma de la base de données, et les opérations concrètes B correspondant aux différents traitements. Contrairement à un schéma de bases de données qui peut être entièrement défini en SQL, les traitements nécessitent l utilisation d un langage hôte offrant des structures de contrôle équivalentes aux constructeurs de substitutions B. ABSTRACT. The work described in this report aims at defining a complete and tool supported approach for the development of safe databases applications. The starting point of our approach is a B specification translating a set of UML diagrams for which a formal semantics, dedicated for information systems, is assigned. This specification is then refined by formal and proved rules. This refinement process aims at making the initial specification close to a relational implementation such that the last translation phase becomes intuitive and straightforward. The main contribution of this report is to provide a systematic approach translating the terminal B components into a relational implementation. This translation concerns two complementary aspects : the data corresponding to the database schema, and the B operations corresponding to the system functionalities. Contrary to the database schema which can be completely defined in SQL, functionalities require the use of a programming language offering control structures which should be equivalent to the B substitution constructors. MOTS-CLÉS : Aide au développement, bases de données, raffinement, codage. KEYWORDS: Development assistance, databases, refinement, coding. 2 e soumission à Technique et science informatiques, le 24 mars 2005.

2 2 2 e soumission à Technique et science informatiques. 1. Introduction Les applications bases de données sont caractérisées par des transactions 1 s exprimant à l aide de structures de contrôle relativement simples. Cependant, ces traitements manipulent des quantités importantes de données interdépendantes et fortement liées. Dans ce type d applications, la difficulté pour les concepteurs réside essentiellement dans l écriture de programmes qui respecteraient l intégrité de l ensemble des données. Bien que ce type d applications ne soit pas réellement critiques (pas de risque humain), ces dernières sont de plus en plus utilisées dans des domaines à enjeux économiques importants, comme le e-business, les systèmes financiers et les cartes à puces, et nécessitant donc un certain degré de fiabilité. Les méthodes classiques de conception d applications bases de données, basées essentiellement sur des notations graphiques, permettent d avoir une vue synthétique du système qui facilite la communication entre les différents acteurs. Cependant, les notations graphiques (comme UML) ne permettent pas d exprimer la totalité des propriétés d un système. De plus, leur manque de sémantique précise rend le raisonnement sur les spécifications obtenues et la génération d implémentations (même partielles) difficiles à mettre en œuvre. Le cadre général de nos travaux de recherche, menés au sein du laboratoire CE- DRIC du CNAM, porte sur la définition d une approche formelle et outillée de développement d applications bases de données sûres. L approche que nous proposons comporte trois phases complémentaires : 1. traduction de diagrammes UML en notations B, 2. raffinement des spécifications B obtenues en une implémentation relationnelle, 3. génération de code JAVA/SQL à partir de l implémentation B. Dans ce rapport, nous mettons l accent sur la description des règles de génération de code JAVA à partir d une implémentation B obtenue suite aux deux premières étapes décrites dans nos publications antérieures [LAL 00b, MAM 01]. Le but de ce rapport est de montrer la faisabilité de la génération, en JAVA/SQL, du code d une transaction base de données développée par raffinement B. La suite de ce rapport est structurée comme suit. La section suivante donne une brève présentation du langage B et du modèle relationnel, et présente les caractéristiques du sous-langage B décrivant une implémentation relationnelle. La section 4 illustre, à travers une étude de cas, la génération de spécifications B à partir des diagrammes UML ainsi que le processus de raffinement des données. Le processus d implémentation des transactions, obtenues à la phase précédente, est décrit à la section 5. Nous décrivons, dans la section 6, quelques règles de traduction de cette implémentation en code exécutable JAVA/SQL. La section 7 présente des travaux similaires à notre approche. Nous terminons par une conclusion et des perspectives. 2. Le langage B pour le développement d applications bases de données Dans cette section, nous donnons un bref aperçu de la méthode B et du modèle relationnel nécessaire à la compréhension de ce rapport. Nous décrivons également 1. Le terme "transaction" désigne l exécution ininterrompue de plusieurs opérations élémentaires.

3 De B vers JAVA/SQL 3 les structures de données et de contrôle qui définissent notre dernier niveau de raffinement La méthode B Conçue par J-R. Abrial, la méthode B [ABR 96] est une méthode formelle de développement d applications sûres. Elle couvre l ensemble des phases de conception d un projet : de la spécification abstraite jusqu à la génération du code associé. La notion de base du langage B est la machine abstraite qui décrit un système à travers un ensemble de variables dites d états. Le typage et les contraintes régissant ces variables, écrits dans une variante de la théorie des ensembles de Zermalo-Frankel (ZF), sont exprimés dans la clause INVARIANT de la machine. La partie dynamique du système est spécifiée par un ensemble d opérations B. Les opérations sont décrites dans le langage des substitutions généralisées de Disjkstra. La substitution de base est l affectation d une valeur à une variable. La généralisation de ce langage permet de définir des substitutions plus élaborées : substitution non déterministe, substitution préconditionnée, etc. Une substitution préconditionnée est de la forme : PRE p THEN s END, p étant un prédicat et s une substitution. Si p est vérifié alors la substitution s est exécutée correctement, sinon s échoue : le résultat de l exécution de la substitution s devient imprévisible. La méthode B propose plusieurs clauses d architecture permettant ainsi une spécification incrémentale. Au niveau le plus abstrait, le lien le plus utilisé est INCLUDES. Une machine A peut être incluse au plus une seule fois dans une machine C : les variables de A peuvent être lues dans C, la mise à jour de ces variables n est possible qu à travers l appel des opérations de A. Cette restriction permet une séparation des preuves associées aux deux machines. Le raffinement est le processus de transformation de spécifications abstraites en spécifications plus concrètes. En B, on distingue deux types de raffinement : Raffinement algorithmique : c est la transformation d une substitution abstraite S en une substitution moins abstraite S (exemple : remplacement d une substitution simultanée par une substitution séquentielle, élimination des préconditions). Raffinement de données : c est le remplacement d une donnée abstraite D par une donnée concrète D (exemple : raffinement d un ensemble par un tableau). Dans ce cas, un prédicat J, appelé invariant de collage, est à préciser. Cet invariant permet d établir le lien entre les données D et D. L invariant de collage J est spécifié dans la clause INVARIANT du composant raffinant. Ces deux types de raffinement ne sont pas exclusifs : ils peuvent être opérés dans la même étape de raffinement. Il est évident que tout raffinement de données entraîne un raffinement algorithmique. En effet, les substitutions ne travaillant plus sur le même espace de variables, celles-ci doivent être réécrites (raffinées) en fonction du nouvel espace des variables. Le dernier niveau de raffinement d une machine abstraite est appelé implémentation. Les structures de données et de contrôle B utilisés dans la description d une implémentation doivent être supportées par le langage de programmation cible choisi. La traduction de cette implémentation vers le langage cible devient donc très naturelle et potentiellement automatisable. Actuellement, plusieurs générateurs automatiques de code permettent la traduction en ADA, C et C++ de l implémentation

4 4 2 e soumission à Technique et science informatiques. d une machine abstraite décrite dans le langage B0 2. Une implémentation peut importer (liens IMPORTS) plusieurs machines abstraites afin d implémenter ses propres données et opérations. Seules les opérations de la machine importée sont accessibles, les variables abstraites ne le sont pas. La méthode B permet une validation complète des phases du développement d un projet. En effet, des obligations de preuves sont générées pour la phase de spécification et pour chaque étape de raffinement. Ces preuves permettent d assurer la cohérence de la spécification abstraite et la conformité du code final vis-à-vis de la spécification initiale (modulo la phase de codage faite en dehors de la méthode B). Une description des principales substitutions B est donnée en annexe. La sémantique des différents éléments B utilisés dans ce rapport sera donnée au fur à mesure de leurs introductions Le modèle relationnel Le modèle relationnel a été introduit par Codd [COD 70]. Il permet de décrire le monde réel en terme de relations que nous appelons ici tables pour ne pas confondre avec le concept de relation du langage B. La définition d une table comprend deux parties complémentaires : l intention et l extension. L intention appelée aussi schéma, définit son type i.e les attributs qui la constituent et leurs domaines respectifs. L extension d une table désigne l ensemble des tuples existants à un instant donné. Chaque tuple de cette extension représente une valeur du produit cartésien des domaines des attributs de la table. Dans ce rapport, nous utilisons la norme 92 du langage SQL [MEL 93]. Des contraintes d intégrité peuvent être définies aussi bien sur les attributs d une table que sur un ensemble de tables. Une contrainte, introduite par le mot clé CHECK, définit un prédicat devant être vérifié par chaque extension possible de(s) la table(s) mise(s) en œuvre. Les contraintes pouvant être définies sur les attributs d une table sont les suivantes : NOT NULL :définie sur un attribut, cette contrainte permet de spécifier que l attribut concerné doit être valué pour chaque tuple de la table. UNIQUE : définie sur un (ou un ensemble d ) attribut(s), cette contrainte permet de spécifier que la valeur de (ou des) l attribut(s) est unique dans toute extension possible de la table. Clé :définie sur un (ou un ensemble d ) attribut(s), cette contrainte permet de spécifier une clé possible d une table donnée. Une table possède au moins une clé désignée comme primaire (PRIMARY KEY). Les autres clés candidates sont spécifiées par les deux contraintes NOT NULL et UNIQUE. Contrainte référentielle :définie sur un (ou un ensemble d ) attribut(s) R 1 d une table T 1 vers un (ou un ensemble d ) attribut(s) R 2 clé d une table T 2, cette contrainte spécifie que l ensemble des valeurs de R 1 est inclus dans l ensemble des valeurs de R B0 désigne le sous-langage de B utilisé pour la description d une implémentation. Il comporte essentiellement les types de données et les structures de contrôle supportées par la majorité des langages de programmation comme C, ADA, etc.

5 De B vers JAVA/SQL 5 Le modèle relationnel est un modèle orienté valeurs : chaque tuple est identifié par la valeur d un ou plusieurs attributs qui constituent la clé de la table Caractérisation d une implémentation B0/SQL Dans cette sous-section, nous décrivons les structures de données et de contrôle (instructions B) que nous admettons à notre dernier niveau de raffinement. De manière générale, les structures de données correspondent à l expression en B des concepts relationnels. Les structures de contrôle correspondent à celles supportées soit par SQL ou par le langage JAVA choisi comme langage hôte Structures de données : expression des concepts relationnels en B Le but de tout processus de raffinement est l obtention d un niveau de spécification directement traduisible dans le langage d implémentation choisi. Pour cela, une modélisation B des concepts relationnels est nécessaire. C est elle qui détermine le dernier niveau du processus de raffinement : le processus de raffinement s arrête quand les variables raffinées correspondent à la spécification B des concepts relationnels. Comme mentionné précédemment, la structure de base du modèle relationnel est la table définie formellement comme un sous ensemble du produit cartésien d un ensemble de types nommés appelés domaines ou attributs. Cette définition correspond précisément à la notion d "enregistrement" en B permettant de regrouper plusieurs informations indissociables et nommées en une seule entité. Chaque champ de cet enregistrement correspond à l un des attributs de la table. L extension (le contenu) d une table désigne un ensemble d enregistrements. Afin d avoir un développement structuré, nous avons choisi d exprimer la spécification de chaque table dans une machine abstraite séparée. Une telle machine, appelée machine SQL dans la suite de ce rapport, définit une variable abstraite représentant l extension de la table, et un ensemble d opérations B correspondant aux différentes requêtes SQL comme l insertion d un tuple, la suppression d un tuple etc.. Une table A, dont les attributs sont att 1,...,att n de types T 1,...,T n respectivement et de clé att 1, est spécifiée en B par une machine abstraite Rel A définie comme suit 3,4, 5 : MACHINE Rel A VARIABLES Table A INVARIANT Table A struct(att 1 : T 1,...,att n : T n ) (x, y).(x att 1 = y att 1 x = y) INITIALISATION Table A := OPERATIONS /*Ajout d un tuple : insert into Table A values (val 1,...,val n )*/ InsertA(val 1,...,val n ) = PRE val 1 T 1... val n T n THEN 3. rec(x 1,..., x n) désigne, en B, un enregistrement dont les valeurs des champs sont x 1,...,x n. 4. x y : dénote la valeur du champ y pour l enregistrement x. 5. ANY x WHERE P THEN S END désigne l exécution de la substitution S pour n importe quelle valeur de x satisfaisant le prédicat P.

6 6 2 e soumission à Technique et science informatiques. Table A := Table A {rec(val 1,...,val n )} END ; /*suppression d un tuple désigné par sa clé : delete from Table A where att 1 = val*/ DeleteA(val) = PRE val T 1 THEN ANY xx WHERE xx Table A xx Att 1 = val THEN Table A := Table A {xx} END END ;... END Structures de contrôle Comme nous le verrons dans la suite de ce rapport, le dernier niveau de notre processus de raffinement est constitué principalement d un ensemble de machines SQL importées par un composant implémentation. Ces machines SQL sont directement traduisibles en SQL. Notons que SQL étant un langage assertionnel ensembliste, il supporte une certaine forme d indéterminisme comme le choix arbitraire d un élément ou d un ensemble qui vérifie un prédicat. Ceci nous permet d avoir dans les opérations B de ces machines (cf exemple du "DeleteA" ci-dessus) des substitutions indéterministes (ANY X WHERE P THEN S END). En revanche, les substitutions de notre composant implémentation sont un sous-ensemble de celles admises en B0. Nous admettons exclusivement les instructions suivantes : If-Then-Else, Affectation, Appel d opérations, Variable locale (VAR X IN S END), Séquence et Tant que (boucle). Ces instructions sont suffisantes pour l expression de n importe quelle transaction base de données. 3. Vue d ensemble de l approche L approche que nous proposons comporte les étapes suivantes (voir figure 1) : 1) Modélisation UML : les données et les traitements du système sont représentés par des diagrammes UML spécialisés pour la description des systèmes d information [LAL 02]. Les données et les opérations de base (comme l insertion, suppression d objets, etc) sont naturellement décrites par un diagramme de classes. Pour les transactions, nous avons considéré les diagrammes d états/transitions et de collaborations. 2) Génération de spécifications B : à partir des diagrammes UML élaborés à la phase précédente, des spécifications B sont automatiquement générées. Si les spécifications traduisant les classes sont prouvées automatiquement par le prouveur de l AtelierB [DIG 96], la preuve des opérations supprimant un ensemble de liens d une association nécessite l ajout de règles utilisateur validées à leur tour par l AtelierB. Plus de détails peuvent être trouvés dans [MAM 02]. 3) Processus de raffinement : les spécifications abstraites prouvées sont successivement raffinées jusqu à l obtention d une implémentation relationnelle. Le processus de raffinement que nous avons défini est composé de deux phases successives et complémentaires : raffinement des données/opérations de base et raffinement des transactions. La première phase, entièrement automatique, s appuie sur l algorithme décrit

7 De B vers JAVA/SQL 7 Modélisation UML: Spécification UML pour les SI A * B * Traduction Génération de spécifications B Preuve Spécification abstraite B d un SI Processus de raffinement Raffinement des données et des opérations de base Données et opérations de base raffinées Raffinement des transactions Preuve Spécification concrèted une implémentationrelationnelle en B Traduction Preuve Production du code JAVA/SQL - Schémades relations en SQL - Classes JAVA/SQL représentant les opérations de base surles tables - Code des transactions en JAVA/SQL Plusieursétapessuccessives de raffinement Figure 1. Des spécifications UML à une implémentation relationnelle dans [Bat 92]. Cette phase est formalisée par un ensemble de règles de raffinement décrites en détail dans [LAL 00a]. Plusieurs niveaux de raffinement ont été définis permettant ainsi une meilleure gestion de la complexité des preuves de correction associées. À l issue de cette première phase, une seconde phase, semi automatique, raffine les transactions. Cette phase est décrite dans la section 5. À chaque phase de ce processus de raffinement, on prouve que la spécification obtenue respecte les propriétés de la spécification qu elle raffine : de proche en proche, on établit la conformité de l implémentation B vis-à-vis de la spécification abstraite initiale. 4) Production du code JAVA/SQL : cette étape produit le code correspondant à la spécification du dernier niveau de raffinement. Cette phase de codage permet de définir, d une part, le schéma de la base de données et les requêtes SQL de base associées (insertion, suppression d un tuple, etc), et d autre part, le code JAVA/SQL correspondant aux transactions. Dans ce rapport, nous mettons plus l accent sur l implémentation des transactions ainsi que sur la phase de production du code JAVA/SQL. 4. Élaboration et raffinement de la spécification B : illustration par l exemple L objet de cette section n est pas de décrire exhaustivement la génération de spécifications B à partir des diagrammes UML et leur raffinement successif, mais plutôt de caractériser la forme générique et standard des spécifications obtenues tant au niveau abstrait qu au niveau concret. Ces caractéristiques sont très importantes dans le sens où elles permettent la définition d une approche systématique de développement

8 8 2 e soumission à Technique et science informatiques. formel. Dans ce qui suit, nous présentons les principaux résultats illustrés sur un cas d étude décrit ci-après. La spécification B et le code JAVA/SQL complet de cette étude de cas sont donnés en annexes Présentation du cas d étude Le système que nous considérons concerne la gestion d un club vidéo simplifié de prêts d un ensemble de cassettes. Il s agit avant tout d un exemple didactique permettant d illustrer l approche développée. Chaque cassette décrite par un titre (Titre) est caractérisée par le nombre de copies disponibles (NbLibre). Plusieurs cassettes peuvent avoir le même titre.une copie de cassette appartient à une seule boutique identifiée par un numéro (NumBo) et caractérisée par une adresse (AdresBo). Un client identifié par un numéro (NumCl) est décrit par un nom (NomCl). Un client peut emprunter plusieurs cassettes, de même, une cassette peut être empruntée par plusieurs clients dans la limite du nombre de copies disponibles. Le prêt d une cassette par un client est caractérisé par une date (DateE) et un statut (Statut). La structure des données de ce système est décrite par la figure 2. Le statut d un nouvel emprunt dépend de la disponibilité de la cassette sur laquelle porte l emprunt. Si au moins une copie de cette cassette est disponible, l emprunt est enregistré avec un statut en cours (Statut=Ok), sinon en attente (Statut= Att). Figure 2. Diagramme de classes du club vidéo 4.2. Génération et caractéristiques des spécifications B Les caractéristiques principales des spécifications B que nous obtenons par traduction des diagrammes UML sont leur structure et leur forme génériques. Ces spécifications sont organisées en deux niveaux : interne et externe. Ces deux niveaux sont détaillés ci-après Niveau interne Le niveau interne est dérivé à partir du diagramme de classes UML. Il contient les variables définissant l état du système ainsi qu un ensemble d opérations de base agissant sur ces variables. Ce niveau est interne dans le sens où les variables et les

9 De B vers JAVA/SQL 47 Annexe C. Code JAVA Cette section décrit le code JAVA généré pour le cas d étude présenté dans ce rapport. C.1. La Classe Boutique ÑÔÓÖØ Ú º Õº ÔÙ ÓÙØ ÕÙ ß ÔÖ Ú Ø ÓÒÒ Ø ÓÒ ÓÒÒ» Ö Ø ÓÒ ³ÙÒ Ò Ø Ò» ÔÙ ÓÙØ ÕÙ ÓÒÒ Ø ÓÒ ÓÒÒµ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ß Ø ºÓÒÒ ÓÒÒ» Ê ØÓÙÖÒ Ö ÓÒÒ Ü ÓÒ Ó» ÔÙ ÓÒÒ Ø ÓÒ Ø ÓÒÒ Ø ÓÒ µ ß Ö ØÙÖÒ ÓÒÒ C.2. La Classe Cassette ÑÔÓÖØ Ú º Õº ÔÙ ØØ ß ÔÖ Ú Ø ÈÖ Ô Ö ËØ Ø Ñ ÒØ ØÑØÍÔ Ø Æ Ä Ö ÔÖ Ú Ø ÈÖ Ô Ö ËØ Ø Ñ ÒØ ØÑØÊ Æ Ä Ö ÔÖ Ú Ø ÓÒÒ Ø ÓÒ ÓÒÒ ÔÙ ØØ ÓÒÒ Ø ÓÒ ÓÒÒµ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ß Ø ºÓÒÒ ÓÒÒ ØÑØÍÔ Ø Æ Ä Ö ÓÒÒºÔÖ Ô Ö ËØ Ø Ñ ÒØ ÙÔ Ø ØØ Ø Æ Ä Ö ÏÀ Ê ÆÙÑ µ ØÑØÊ Æ Ä Ö ÓÒÒºÔÖ Ô Ö ËØ Ø Ñ ÒØ Ø Æ Ä Ö ÖÓÑ ØØ Û Ö ÆÙÑ µ ÔÙ ÓÒÒ Ø ÓÒ Ø ÓÒÒ Ø ÓÒ µ ß Ö ØÙÖÒ ÓÒÒ

10 48 2 e soumission à Technique et science informatiques. ÔÙ ÚÓ ÍÔ Ø Æ Ä Ö ÒØ ÒÙ ÒØ Ò µ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ß ØÑØÍÔ Ø Æ Ä Ö º ØÁÒØ ½ ÒÙµ ØÑØÍÔ Ø Æ Ä Ö º ØÁÒØ ¾ Ò µ ØÑØÍÔ Ø Æ Ä Ö º Ü ÙØ ÍÔ Ø µ ÔÙ ÓÓ Ò ÓÔ ÔÓÒ ÒØ ÒÙµ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ß ØÑØÊ Æ Ä Ö º ØÁÒØ ½ ÒÙµ Ê ÙØË Ø Ö ØÑØÊ Æ Ä Ö º Ü ÙØ ÉÙ ÖÝ µ Ö ºÒ ÜØ µ ÒØ ÜÔ½ Ö º ØÁÒØ ½µ Ö ØÙÖÒ ÜÔ½ ¼µ ÔÙ ÒØ ÆÓÙÚ Î Æ Ä Ö ÒØ ÒÙµ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ß ØÑØÊ Æ Ä Ö º ØÁÒØ ½ ÒÙµ Ê ÙØË Ø Ö ØÑØÊ Æ Ä Ö º Ü ÙØ ÉÙ ÖÝ µ Ö ºÒ ÜØ µ Ö ØÙÖÒ Ö º ØÁÒØ ½µ¹½µ C.3. La Classe Client ÑÔÓÖØ Ú º Õº ÔÙ ÒØß ÔÖ Ú Ø ÓÒÒ Ø ÓÒ ÓÒÒ ÔÙ ÒØ ÓÒÒ Ø ÓÒ ÓÒÒµ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ß Ø ºÓÒÒ ÓÒÒ ÔÙ ÓÒÒ Ø ÓÒ Ø ÓÒÒ Ø ÓÒ µ ß Ö ØÙÖÒ ÓÒÒ C.4. La Classe Emprunt ÑÔÓÖØ Ú º Õº ÑÔÓÖØ Î ØºÎ ØÓÖË Ø ÔÙ ÑÔÖÙÒØß

11 De B vers JAVA/SQL 49 ÔÖ Ú Ø ÈÖ Ô Ö ËØ Ø Ñ ÒØ ØÑØÁÒ ÖØ ÔÖ Ú Ø Ø Ø ÈÖ Ô Ö ËØ Ø Ñ ÒØ ØÑØÊ Ø ÔÖ Ú Ø ÓÒÒ Ø ÓÒ ÓÒÒ ÔÙ ÑÔÖÙÒØ ÓÒÒ Ø ÓÒ ÓÒÒµ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ß Ø ºÓÒÒ ÓÒÒ ØÑØÁÒ ÖØ ÓÒÒºÔÖ Ô Ö ËØ Ø Ñ ÒØ Ò ÖØ ÒØÓ ÑÔÖÙÒØ Ú Ù µ µ ØÑØÊ Ø ÓÒÒºÔÖ Ô Ö ËØ Ø Ñ ÒØ Ø Ø ÖÓÑ ÑÔÖÙÒØ Û Ö ÑÔÖÙÒØ Ò ÑÔÖÙÒØ µ ÔÙ ÓÒÒ Ø ÓÒ Ø ÓÒÒ Ø ÓÒ µ ß Ö ØÙÖÒ ÓÒÒ ÔÙ ÚÓ ÁÒ ÖØ ÑÔÖÙÒØ ÒØ ÒØ ÓÓ Ò Ø Ø µ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ß ØÑØÁÒ Öغ ØÁÒØ ½ µ ØÑØÁÒ Öغ ØÁÒØ ¾ µ ØÑØÁÒ Öغ Ø Ø µ ØÑØÁÒ Öغ Ø ÓÓ Ò Øµ ØÑØÁÒ Öغ Ü ÙØ ÍÔ Ø µ ÔÙ Ø ÑÔÖÙÒØÊ Ø ÒØ ÒØ µ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ÔÔ Ü ÔØ ÓÒß ØÑØÊ Ø º ØÁÒØ ½ µ ØÑØÊ Ø º ØÁÒØ ¾ µ Ê ÙØË Ø Ö ØÑØÊ Ø º Ü ÙØ ÉÙ ÖÝ µ Ö ºÒ ÜØ µ Ö ØÙÖÒ Ö º Ø Ø ½µ ÔÙ Ê ÙØË Ø Ø ÒØ Î ØÓÖË Ø µ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ß ËØÖ Ò Ô Ö Ñ Ò Û ËØÖ Ò µ ÒØ ËØÖ Ò Ö Õ Ø ÑÔÖÙÒØ ÖÓÑ ÑÔÖÙÒØ Û Ö ÑÔÖÙÒØ ÁÆ ÓÖ ¼ º Þ µ¹½ µ Ö Õ Ö Õ Ö Õ Ö Õ µ ÈÖ Ô Ö ËØ Ø Ñ ÒØ ØÑØÄ Ö ÓÒÒºÔÖ Ô Ö ËØ Ø Ñ ÒØ Ö Õµ ÓÖ ¼ º Þ µ µ ØÑØÄ Ö º ØÇ Ø ½ ºÚ ØÓÖ µº Ñ ÒØ Ø µµ Ê ÙØË Ø Ö ÙØ ØÑØÄ Ö º Ü ÙØ ÉÙ ÖÝ µ Ö ØÙÖÒ Ö ÙØ

12 50 2 e soumission à Technique et science informatiques. C.5. La Classe ClientEnRetard ÑÔÓÖØ Ú º Õº ÑÔÓÖØ Ú ºÙØ º Ò Ö ÑÔÓÖØ Î ØÓÖË Ø ÔÙ ÒØ ÒÊ Ø Ö ß ÓÒÒ Ø ÓÒ ÓÒÒ ÑÔÖÙÒØ ÑÔÖÙÒØ ÔÙ ÒØ ÒÊ Ø Ö ÑÔÖÙÒØ ÑÔÖÙÒص ß Ø ºÓÒÒ ÑÔÖÙÒغ Ø ÓÒÒ Ø ÓÒ µ Ø º ÑÔÖÙÒØ ÑÔÖÙÒØ» ÇÔ Ö Ø ÓÒ Ø Ø ÒØ ÙÒ ÒØ Ø Ò Ö Ø Ö» ÔÙ ÓÓ Ò Î ÒØ µ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ÔÔ Ü ÔØ ÓÒß ÓÓ Ò ØÖÓÙÚ» ÓÒ ØÖÙØ ÓÒ ³ Ò Ñ ß» Î ØÓÖË Ø ½ Ò Û Î ØÓÖË Ø µ ½º µ Î ØÓÖË Ø Ò Û Î ØÓÖË Ø ÑÔÖÙÒغ Ø ÒØ ½µµ ÒØ ÓÖ ¼ º Þ µ ²² ØÖÓÙÚ µ µß ÒØ Ö Ø ÁÒØ Öµ ºÚ ØÓÖ µµº Ñ ÒØ Ø µµº ÒØÎ Ù µ Ú ºÙØ º Ò Ö Ò Û Ú ºÙØ º Ö ÓÖ Ò Ò Ö µ Ú º Õº Ø Ø ÑÔÖÙÒغ ÑÔÖÙÒØÊ Ø Ö Ø µ º ØÌ Ñ Ø µ Ú ºÙØ º Ò Ö Ø ÓÙÖ ÒØ Ò Öº ØÁÒ Ø Ò µ º Ò Öº Ì ¼µ º ÓÖ Ø ÓÙÖ ÒØ µµ ØÖÓÙÚ ØÖÙ Ö ØÙÖÒ ØÖÓÙÚ C.6. La Classe RenvoieCassette ÑÔÓÖØ Ú º Õº ÔÙ Ê ÒÚÓ ØØ ß ÓÒÒ Ø ÓÒ ÓÒÒ ÔÙ Ê ÒÚÓ ØØ ÓÒÒ Ø ÓÒ ÓÒµ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒß

13 De B vers JAVA/SQL 51 Ø ºÓÒÒ ÓÒ ÔÙ ÒØ Î ËØÖ Ò Ø ËØÖ Ò Óµ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ÔÔ Ü ÔØ ÓÒß ÓÓ Ò ØÖÓÙÚ ÈÖ Ô Ö ËØ Ø Ñ ÒØ Ö ÕÙ Ø ÓÒÒºÔÖ Ô Ö ËØ Ø Ñ ÒØ Ø ºÆÙÑ ÖÓÑ ØØ Û Ö Ø Óº Ö Ó ÖÓÑ ÓÙØ ÕÙ Ó Û Ö ÓºÆÙÑ Ó º ÔÔ ÖØ Òص Ò ºØ ØÖ µ Ö ÕÙ Ø º ØËØÖ Ò ½ Óµ Ö ÕÙ Ø º ØËØÖ Ò ¾ Ø µ Ê ÙØË Ø Ö Ö ÕÙ Ø º Ü ÙØ ÉÙ ÖÝ µ Ö ºÒ ÜØ µ Ö ØÙÖÒ Ö º ØÁÒØ ½µ C.7. La Classe traitant les exceptions AppException ÔÙ Ò ÔÔ Ü ÔØ ÓÒ ÜØ Ò ÊÙÒØ Ñ Ü ÔØ ÓÒ ß ÔÙ ÔÔ Ü ÔØ ÓÒ ËØÖ Ò Ñ µ ß ÙÔ Ö Ñ µ ËÝ Ø ÑºÓÙغÔÖ ÒØÒ Ñ µ C.8. La Classe représentant la transaction LocationCassette ÑÔÓÖØ Ú º Õº ÑÔÓÖØ Ú ºÙØ º Ò Ö ÔÙ ËÝ Ø Ñ ß ÔÖ Ú Ø ÑÔÖÙÒØ ÑÔÖÙÒØ ÔÖ Ú Ø ØØ ØØ ÔÖ Ú Ø ÓÙØ ÕÙ ÓÙØ ÕÙ ÔÖ Ú Ø ÒØ ÒØ ÔÖ Ú Ø ÒØ ÒÊ Ø Ö ÒØ ÒÖ Ø Ö ÔÖ Ú Ø Ê ÒÚÓ ØØ Ö ÒÚÓ ØØ ÔÖ Ú Ø ËÝ Ø Ñ Ý Ø Ñ ÓÒÒ Ø ÓÒ ÓÒÒ ÔÙ ËÝ Ø Ñ Ê ÒÚÓ ØØ Ö ÒÚÓ ØØ ÒØ ÒÊ Ø Ö ÒØ ÒÖ Ø Ö ÑÔÖÙÒØ ÑÔÖÙÒØ ØØ ØØ ÓÙØ ÕÙ

14 52 2 e soumission à Technique et science informatiques. ÓÙØ ÕÙ ÒØ Òص ß Òغ Ø ÓÒÒ Ø ÓÒ µ ÑÔÖÙÒغ Ø ÓÒÒ Ø ÓÒ µ ØØ º Ø ÓÒÒ Ø ÓÒ µ Òغ Ø ÓÒÒ Ø ÓÒ µ ØØ º Ø ÓÒÒ Ø ÓÒ µ ÓÙØ ÕÙ º Ø ÓÒÒ Ø ÓÒ µµ Ø ÖÓÛ Ò Û ÔÔ Ü ÔØ ÓÒ Ä Ò Ø Ò Ò³ÙØ ÒØ Ô Ñ Ñ ÓÒÒ Ü ÓÒ Ù ÖÚ ÙÖ µ Ø ºÓÒÒ Òغ Ø ÓÒÒ Ø ÓÒ µ Ø º ÒØ ÒØ Ø º ÑÔÖÙÒØ ÑÔÖÙÒØ Ø º ØØ ØØ Ø º ÓÙØ ÕÙ ÓÙØ ÕÙ Ø º ÒØ ÒÖ Ø Ö ÒØ ÒÖ Ø Ö Ø ºÖ ÒÚÓ ØØ Ö ÒÚÓ ØØ» ÇÔ Ö Ø ÓÒ ³ ÓÙØ ³ÙÒ ÑÔÖÙÒØ» ÔÙ ËØÖ Ò ÄÓ Ø ÓÒ ØØ ÒØ ËØÖ Ò Ø ËØÖ Ò Óµ Ø ÖÓÛ ËÉÄ Ü ÔØ ÓÒ ÔÔ Ü ÔØ ÓÒß ØÖÝ ß ËØÖ Ò Ö ÔÓÒ ÓÓ Ò Ú ÔÖ ½ ÒØ ÒÖ Ø Ö ºÎ µ ÒØ Ö ÒÚÓ ØØ ºÎ Ø Óµ ÓÓ Ò Ú ÔÖ ¾ ØØ º ÓÔ ÔÓÒ µ ÒØ Ú Ô Ö Ñ ØØ ºÆÓÙÚ Î Æ Ä Ö µ Ú ÔÖ ½µß Ú ºÙØ º Ò Ö Ò Öº ØÁÒ Ø Ò µ Ú º Õº Ø Ø ÓÙÖ ÒØ Ò Û Ú º Õº Ø º ØÌ Ñ µº ØÌ Ñ µµ Ú ÔÖ ¾µß ÑÔÖÙÒغÁÒ ÖØ ÑÔÖÙÒØ ØÖÙ Ø ÓÙÖ ÒØ µ Ö ÔÓÒ Ù ß ÑÔÖÙÒغÁÒ ÖØ ÑÔÖÙÒØ Ø ÓÙÖ ÒØ µ Ö ÔÓÒ ØØ Ú ÔÖ ¾µ ØØ ºÍÔ Ø Æ Ä Ö Ú Ô Ö Ñµ ÓÒÒºÓÑÑ Ø µ ÓÒÒºÓ µ Ö ÔÓÒ ÖÖ ÙÖ Ö ØÙÖÒ Ö ÔÓÒ Ø Ü ÔØ ÓÒ µ ß ËÝ Ø ÑºÓÙغÔÖ ÒØ µ

15 De B vers JAVA/SQL 53 ÓÒÒºÖÓ µ Ö ØÙÖÒ ØÖ Ò Ø ÓÒ ÒÓÒ Ü ÙØ µ

Génération de code à partir d une spécification B : Application aux bases de données

Génération de code à partir d une spécification B : Application aux bases de données Génération de code à partir d une spécification B : Application aux bases de données Amel Mammar * Régine Laleau ** Université du Luxembourg, LACL, Université Paris 12 SE2C, 6 rue Richard Courdenhove-Kalergi

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

I4 : Bases de Données

I4 : Bases de Données I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

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

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Gestion des transactions et accès concurrents dans les bases de données relationnelles Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

MEMOIRE. Présenté à. L École Nationale d Ingénieurs de Sfax. en vue de l obtention du MASTERE

MEMOIRE. Présenté à. L École Nationale d Ingénieurs de Sfax. en vue de l obtention du MASTERE République Tunisienne Ministère de l Enseignement Supérieur, De la Recherche Scientifique et de la Technologie Université de Sfax École Nationale d Ingénieurs de Sfax Ecole Doctorale Sciences et Technologies

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

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

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

Plus en détail

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre 5 LE MODELE ENTITE - ASSOCIATION Chapitre 5 LE MODELE ENTITE - ASSOCIATION 1 Introduction Conception d une base de données Domaine d application complexe : description abstraite des concepts indépendamment de leur implémentation sous

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

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

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Bases de données. Chapitre 1. Introduction

Bases de données. Chapitre 1. Introduction Références : Bases de données Pierre Wolper Email : pw@montefiore.ulg.ac.be URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

TP3 : Creation de tables 1 seance

TP3 : Creation de tables 1 seance Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer

Plus en détail

Université de Sherbrooke, Département d informatique

Université de Sherbrooke, Département d informatique Université de Sherbrooke, Département d informatique IGL501 : Méthodes formelles en génie logiciel, Examen périodique Professeur : Marc Frappier, mardi 7 octobre 2013, 15h30 à 18h20, local D4-2022 Documentation

Plus en détail

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

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

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant Acquisition des données - Big Data Dario VEGA Senior Sales Consultant The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

Plus en détail

Bases de données relationnelles & SQL

Bases de données relationnelles & SQL Bases de données relationnelles & SQL Objectifs Appréhender les concepts du modèle relationnel. Etre capable de concevoir un schéma relationnel. Etre capable de créer une base de données relationnelle

Plus en détail

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

Conception des bases de données : Modèle Entité-Association Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir

Plus en détail

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Chapitre VIII. Les bases de données. Orientées Objet. Motivation Chapitre VIII Motivation Le modèle relationnel connaît un très grand succès et s avère très adéquat pour les applications traditionnelles des bases de données (gestion) Les bases de données Orientées Objet

Plus en détail

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION THÈSE N O 2388 (2001) PRÉSENTÉE AU DÉPARTEMENT D'INFORMATIQUE ÉCOLE POLYTECHNIQUE FÉDÉRALE

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/62 Bases de Données Avancées Introduction & Rappel Conception et Modélisation Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR

Plus en détail

Analyse,, Conception des Systèmes Informatiques

Analyse,, Conception des Systèmes Informatiques Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance

Plus en détail

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur goulwen.lefur@obeo.fr. Le 23 novembre 2012

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur goulwen.lefur@obeo.fr. Le 23 novembre 2012 DSL Domain Specific Language À l'aide des technologies Eclipse Modeling Le 23 novembre 2012 Goulwen Le Fur goulwen.lefur@obeo.fr Le but de cette session Montrer : Ce qu'est-un DSL/DSM Comment implémenter

Plus en détail

Visual Paradigm Contraintes inter-associations

Visual Paradigm Contraintes inter-associations Visual Paradigm Contraintes inter-associations Travail de Bachelor d'informaticien de gestion Partie C Présentation de Visual Paradigm 1 Présentation de Visual Paradigm For UML L objet du travail de Bachelor

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Principe de symétrisation pour la construction d un test adaptatif

Principe de symétrisation pour la construction d un test adaptatif Principe de symétrisation pour la construction d un test adaptatif Cécile Durot 1 & Yves Rozenholc 2 1 UFR SEGMI, Université Paris Ouest Nanterre La Défense, France, cecile.durot@gmail.com 2 Université

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : Housing system est un service gratuit, qui vous propose de vous mettre en relation avec

Plus en détail

Lamia Oukid, Ounas Asfari, Fadila Bentayeb, Nadjia Benblidia, Omar Boussaid. 14 Juin 2013

Lamia Oukid, Ounas Asfari, Fadila Bentayeb, Nadjia Benblidia, Omar Boussaid. 14 Juin 2013 Cube de textes et opérateur d'agrégation basé sur un modèle vectoriel adapté Text Cube Model and aggregation operator based on an adapted vector space model Lamia Oukid, Ounas Asfari, Fadila Bentayeb,

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Avant de commencer à travailler avec le produit, il est nécessaire de comprendre, à un haut niveau, les problèmes en réponse desquels l outil a été

Plus en détail

IFT3030 Base de données. Chapitre 1 Introduction

IFT3030 Base de données. Chapitre 1 Introduction IFT3030 Chapitre 1 Introduction Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets

Plus en détail

Systèmes de Gestion de Bases de Données

Systèmes de Gestion de Bases de Données Systèmes de Gestion de Bases de Données Luiz Angelo STEFFENEL DUT Informatique 2ème année IUT Nancy Charlemagne Vues Vue : une table virtuelle de la base de données dont le contenu est défini par une requête

Plus en détail

Objectifs du TP : Initiation à Access

Objectifs du TP : Initiation à Access Objectifs du TP : Initiation à Access I. Introduction Microsoft Access fait partie de l ensemble Microsoft Office. C est un SGBDR (système de gestion de bases de données relationnelles) présentant une

Plus en détail

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

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Ingénierie des Modèles. Méta-modélisation

Ingénierie des Modèles. Méta-modélisation Ingénierie des Modèles Méta-modélisation Eric Cariou Master Technologies de l'internet 2 ème année Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr

Plus en détail

Editing and managing Systems engineering processes at Snecma

Editing and managing Systems engineering processes at Snecma Editing and managing Systems engineering processes at Snecma Atego workshop 2014-04-03 Ce document et les informations qu il contient sont la propriété de Ils ne doivent pas être copiés ni communiqués

Plus en détail

Gestion de stock pour un magasin

Gestion de stock pour un magasin Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire

Plus en détail

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK ArchiMate et l architecture d entreprise Par Julien Allaire Ordre du jour Présentation du langage ArchiMate - Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK Présentation du modèle

Plus en détail

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32 THAT the proposed clause 6(1), as set out in Clause 6(1) of the Bill, be replaced with the following: Trustee to respond promptly 6(1) A trustee shall respond to a request as promptly as required in the

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

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

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 Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

Macroscope et l'analyse d'affaires. Dave Couture Architecte principal Solutions Macroscope

Macroscope et l'analyse d'affaires. Dave Couture Architecte principal Solutions Macroscope Macroscope et l'analyse d'affaires Dave Couture Architecte principal Solutions Macroscope Avis Avis d intention Ce document a pour but de partager des éléments de vision et d intentions de Fujitsu quant

Plus en détail

Certification de l assemblage de composants dans le développement de logiciels critiques

Certification de l assemblage de composants dans le développement de logiciels critiques Certification de l assemblage de composants dans le développement de logiciels critiques Philippe Baufreton 1, Emmanuel Chailloux 2, Jean-Louis Dufour 1, Grégoire Henry 3, Pascal Manoury 3, Etienne Millon

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Guide d'installation rapide TFM-560X YO.13

Guide d'installation rapide TFM-560X YO.13 Guide d'installation rapide TFM-560X YO.13 Table of Contents Français 1 1. Avant de commencer 1 2. Procéder à l'installation 2 Troubleshooting 6 Version 06.08.2011 16. Select Install the software automatically

Plus en détail

Exercices sur SQL server 2000

Exercices sur SQL server 2000 Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant Organiser vos données - Big Data Patrick Millart Senior Sales Consultant The following is intended to outline our general product direction. It is intended for information purposes only, and may not be

Plus en détail

Introduction aux Bases de Données Relationnelles Conclusion - 1

Introduction aux Bases de Données Relationnelles Conclusion - 1 Pratique d un : MySQL Objectifs des bases de données Où en sommes nous? Finalement, qu est-ce qu un? Modèle relationnel Algèbre relationnelle Conclusion SQL Conception et rétro-conception Protection de

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

Table des matières. Avant-propos

Table des matières. Avant-propos Table des matières Avant-propos v Table des matières xi 1 Introduction aux systèmes de gestion de bases de données 1 1.1 Donnée et type de données 2 1.2 Donnée et information 2 1.3 Donnée simple et complexe

Plus en détail

Techniques d analyse et de conception d outils pour la gestion du processus de segmentation des abonnés des entreprises de télécommunication

Techniques d analyse et de conception d outils pour la gestion du processus de segmentation des abonnés des entreprises de télécommunication Techniques d analyse et de conception d outils pour la gestion du processus de segmentation des abonnés des entreprises de télécommunication R. Carlos Nana Mbinkeu 1,3, C. Tangha 1, A. Chomnoue 1, A. Kuete

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations

Plus en détail

Bases de données cours 1

Bases de données cours 1 Bases de données cours 1 Introduction Catalin Dima Objectifs du cours Modèle relationnel et logique des bases de données. Langage SQL. Conception de bases de données. SQL et PHP. Cours essentiel pour votre

Plus en détail

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

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres. INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES Durée : 1h30 Date : 17/05/2006 Coordonnateurs : Amel Bouzeghoub et Bruno Defude Documents autorisés : ceux distribués en cours Avertissements

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

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

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

AGROBASE : un système de gestion de données expérimentales

AGROBASE : un système de gestion de données expérimentales AGROBASE : un système de gestion de données expérimentales Daniel Wallach, Jean-Pierre RELLIER To cite this version: Daniel Wallach, Jean-Pierre RELLIER. AGROBASE : un système de gestion de données expérimentales.

Plus en détail

Une méthode d apprentissage pour la composition de services web

Une méthode d apprentissage pour la composition de services web Une méthode d apprentissage pour la composition de services web Soufiene Lajmi * Chirine Ghedira ** Khaled Ghedira * * Laboratoire SOIE (ENSI) University of Manouba, Manouba 2010, Tunisia Soufiene.lajmi@ensi.rnu.tn,

Plus en détail