Ecole Polytechnique de Louvain INGI 1271 - Fichiers et bases de données



Documents pareils
1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1 Introduction et installation

Compte-rendu de projet de Système de gestion de base de données

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

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Modèle conceptuel : diagramme entité-association

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Bases de données relationnelles

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

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

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

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Le langage SQL Rappels

Rappel sur les bases de données

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Chapitre 1 : Introduction aux bases de données

Introduction aux Bases de Données

Bases de Données. Plan

Les bases de données Page 1 / 8

CINEMATIQUE DE FICHIERS

Communiqué de Lancement

Dossier I Découverte de Base d Open Office

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Chapitre 07 Le modèle relationnel des données

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

Comment faire son pré-enregistrement en ligne avec Holland America Line

MODE OPERATOIRE OPENOFFICE BASE

Utiliser Access ou Excel pour gérer vos données

Introduction aux Bases de Données

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

RÉALISATION D UN SITE DE RENCONTRE

CREATION WEB DYNAMIQUE

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

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

TD n 10 : Ma première Base de Données

Le modèle de données

A. Définition et formalisme

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Langage SQL : créer et interroger une base

CONCEPTION ET IMPLANTATION DES SI PROJET : GESTION DU FOYER DE L ENIT

RÈGLES DE TRANSFORMATION DU MCD AU MLD (MRD)

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Méthodologies de développement de logiciels de gestion

16H Cours / 18H TD / 20H TP

Cédric Gendre Inra, ESR Toulouse

Cours 1 : introduction

NOUVEAUTES de Microsoft Dynamics CRM 2011 REF FR 80342A

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

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

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

Chapitre 11 Bases de données

I. MySQL : Serveur et SGBD

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

Création de Sous-Formulaires

v7.1 SP2 Guide des Nouveautés

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

Concevoir un modèle de données Gestion des clients et des visites

Information utiles. webpage : Google+ : digiusto/

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Introduction : présentation de la Business Intelligence

Éléments d'architecture des ordinateurs

Bases de données relationnelles & SQL

AGRÉGATION «ÉCONOMIE ET GESTION»

MEDIAplus elearning. version 6.6

LE MODELE CONCEPTUEL DE DONNEES

Bases de données avancées Introduction

1. Installation du Module

Deuxième partie. Approche globale d'implémentation d'un projet PLM

Talend Technical Note

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Stockage du fichier dans une table mysql:

Olivier Mondet

SAUVEGARDER SES DONNEES PERSONNELLES

Bases de Données Avancées

OpenOffice Base Gestionnaire de Base de Données

Modélisation de bases de données : Le modèle relationnel

Le Langage De Description De Données(LDD)

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Le Langage SQL version Oracle

SQL Historique

Bases de données Outils de gestion

Business Intelligence avec SQL Server 2012

SOMMAIRE. Travailler avec les requêtes... 3

Année Universitaire 2009/2010 Session 2 de Printemps

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Concevoir une base de données

Mercredi 15 Janvier 2014

Bases de données - Modèle relationnel

Types de REA produites dans le cadre de la séquence pédagogique

PROJET DE PORTAIL INTRANET YNNA

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique :

Base de données relationnelle et requêtes SQL

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

INTRODUCTION : Données structurées et accès simplifié

Transcription:

Ecole Polytechnique de Louvain INGI 1271 - Fichiers et bases de données Rapport de projet " Gestion d'un aéroport " Groupe 13 DE GROOTE Charles LAMOULINE Laurent NUTTIN Vincent Q6-2009

TABLE DES MATIÈRES Introduction 2 1 Schéma entité-association 3 1.1 Etude du schéma................................ 4 1.2 Contraintes d'intégrité............................. 4 2 Schéma relationnel 7 2.1 Concept de clé................................. 7 3 Requêtes SQL 10 4 Création et remplissage de la base de données 13 5 Interface php du site 14 Conclusion 16 1

INTRODUCTION Dans le cadre du cours "INGI 1271 - Fichiers et bases de données", il nous a été de demandé de concevoir une base de données reprenant des informations relatives à la gestion d'un aéroport telles que les horaires des membres du personnel, l'utilisation des pistes de l'aéroport ou encore le nombre d'heures de vol des pilotes. Cette base de donnée sera utile et nécessaire pour les applications souhaitant gérer les diérents aspects de l'aéroport. De plus, il nous est demandé de concevoir une interface graphique simple et ecace an de pouvoir eectuer rapidement des requêtes sur la base de données par des membres du personnel de la compagnie. Ce rapport s'intéressera donc à la conception et la réalisation de la base de donnée. Les diérents points de ce rapport seront abordés dans l'ordre suivants : 1. Schéma entité-association et contraintes d'intégrité 2. Schéma relationnel 3. Requêtes SQL 4. Création et remplissage de la base de données 5. Interface en php 2

CHAPITRE 1 SCHÉMA ENTITÉ-ASSOCIATION Le modèle entité-relation fournit une description graphique pour représenter des modèles conceptuels de données sous la forme de diagrammes contenant des entités et des associations (les relations). Grâce à l'organisation de l'aéroport présentée dans l'énoncé, il est possible de construire un schéma entité-association (voir g. 1.1). Celui-ci synthétisera la manière dont les informations seront stockées dans la base de données. Ce schéma repose sur le modèle "entité - association". Il permet d'identier et de caractériser les objets du domaine d'application et d'établir leurs liens ; les cardinalités donnent des renseignements sur le minimum et le maximum d'occurrences d'une association liant une entité à une autre. Au niveau conceptuel, le modèle entité-association distingue les objets et les relations. Les objets sont représentés par des rectangles, les relations par des ellipses. Les entités, objets ou relations, ont des propriétés ou attributs. Une relation (m, n) se traduit par un segment logique. 3

1.1 Etude du schéma L'héritage L'héritage permet de décrire un même ensemble d'entités à diérents niveaux d'abstraction. Etant donné des entités partageants des attributs communs, l'utilisation de l'héritage permet d'éviter la duplication. Dans notre cas, nous aurons recours à l'héritage pour les entités suivantes : les entités Worker et Traveller héritant de l'entité Person les entités Crew member, Air-traffic controller, Luggage handler, Check-in steward hérite de l'entité Worker 1.2 Contraintes d'intégrité Les contraintes d'intégrité permettent de garantir l'intégrité des données. La plupart de celles-ci sont données par les cardinalités qui donnent le nombre d'occurrences d'une association liant une entité à une autre. Les autres ne peuvent être explicitées sur le schéma, et doivent donc être citées. Elles sont triées par entitées. Entité Person La valeur de l'attribut Sex ne peut prendre que les valeurs 'M' ou 'F'. La valeur de l'attribut FGS No doit comprendre 8 nombres entiers. La valeur de l'attribut Card No doit comprendre 12 nombres entiers. Entité Staff member La valeur des attributs Salary et Schedule doivent être des entiers positif. La valeur de l'attribut Account No doit comprendre 12 nombres entiers. Entité Fly Le format de l'attribut Day doit être de type AnnéeMoisJour. Le jour du vol doit être plus petit que le jour actuel. De même pour l'heure. L'heure d'embarquement (Boarding hour) doit être plus petit que l'heure de décollage (hour) La destination (Destination) doit être diérente du lieu de départ (Airport name). La valeur de l'attribut Capacity doit être un entier positif et plus petit que la capacité de l'avion qui assure le vol. Pour tous les vols d'une piste donnée, aucun ne peuvent avoir la même heure de décollage pour le même jour. 4

Entité Plane La valeur des attributs Capacity, WC number et Emergency exit number doivent être des entiers positif. La distance de décollage d'un avion assigné à un vol doit être plus petit que la longueur de la piste assignée à ce vol. Entité Lane La valeur des attributs Wind force et Length doivent être des entiers positif. Le format de l'attribut Wind direction est celui des points cardinaux : N, NE, E, SE, S, SO, O, NO. Entité Pilot La valeur de l'attribut Flying hours doit être un entier positif et plus petit que la limite autorisée. Le pilote doit avoir l'aptitude nécessaire pour piloter l'avion qui lui est assigné. Entité Traveller Les voyageurs sur un même vol doivent tous avoir un siège distinct. L'attribut Paid peut prendre deux valeurs : 'yes' ou 'no'. Un voyageur qui n'a pas payé n'est pas enregistré sur un vol. Pour nir, tous les attributs doivent être remplis sauf pour les attributs Passport No et Card No de l'entité Person, pour qui un des deux champs minimum sont obligatoires. 5

Figure 1.1 Schéma entité-association

CHAPITRE 2 SCHÉMA RELATIONNEL Le modèle relationnel est une manière de modéliser les informations contenues dans une base de données qui repose sur des principes mathématiques inventés par E.F. Codd. Le passage du modèle Entité-Association vers le modèle relationnel a nécessité certaines adaptations. En eet, un champ id a été ajouté en début de chaque table. En plus, une dixième table, intitulée general, a été ajoutée. Celle-ci reprend les id de chaque table an de pouvoir comparer les id des tables entre-eux. 2.1 Concept de clé Par dénition, une super-clé est dénie comme étant un groupe d'attributs, qui tous ensemble permettent d'identier une entité de manière unique. Une super-clé peut contenir des attributs qui sont superus pour une identication unique. Par exemple, dans le cas de l'entité person, une super clé pourrait être : Last Name + Card No, l'attribut Last Name est superu car le numéro de carte d'identité possède déjà la propriété de l'identication unique. Il est dès lors possible de donner une dénition d'une clé sur base de la super clé : une clé correspond à la super clé minimale, c'est-à-dire à un groupe d'attributs tels que la suppression de l'un de ceux-ci ne permet plus d'identier de manière unique une entité. La clé primaire correspond à la clé la plus utile dans la relation, en général, elle est suggérée par la conception de la base de données. Nous allons maintenant analyser la façon dont nous avons réalisé le schéma relationnel de notre application et les critères sur lesquels nous nous sommes basé an de choisir les clés primaires pour chaque relation car en SQL il est nécessaire de les dénir pour que cela fonctionne. 7

General Table général permettant de faire le lien entre toutes les autres tables via leurs id. Company Dans un premier temps, nous avons repris les attributs du schéma entité-association de l'entité Company pour réalisé le schéma relationnel. Nous avons ensuite choisi Name comme clé primaire de cette entité car par dénition, une compagnie ne peut avoir le même nom qu'une autre. Nous sommes dès lors certain qu'une seule compagnie correspondra au nom Name. Person Pour l'entité Person, nous avons choisi l'attribut FGS No comme clé primaire car elle permet d'identier de manière unique un individu. Les attributs Passport No et Card No permettent également d'identier une personne de manière unique mais ces attributs n'étant pas tout deux obligatoires, il est dès lors plus facile d'utiliser le numéro FGS. Traveller Dans le cas des voyageurs, nous avons choisi de les identier via un numéro d'identication unique correspondant à un champ auto-incrément que l'on nomme id_person. Dans le schéma ci-dessous, on remarque que l'attribut id_person correspond à l'attribut id de l'entité person. Worker Nous avons choisi id_person comme clé primaire pour les mêmes raisons que celles évoquées précédemment pour Traveller. Fly Dans le cas des vols, nous avons choisi d'attribuer un numéro de vol No unique à chacun de ceux-ci, c'est pourquoi nous pouvons utiliser No comme clé primaire, car celleci identie eectivement un seul vol sans risque de doublon. Plane Nous avons attribué une immatriculation unique à chaque avion, celle-ci correspond à l'attribut Registration No. Il parait dès lors logique et pratique de choisir cet attribut comme clé primaire an d'identier un appareil. 8

Figure 2.1 Schéma relationnel 9

CHAPITRE 3 REQUÊTES SQL Il nous a été demandé de créer 5 requêtes SQL intéressantes. Celles-ci ont été choisies car elles utilisent diérents aspects du langage SQL : Requêtes multi-tables Requêtes imbriquées Calcul de nouvelle valeur 1- Demander tous les avions ayant décollés avec le vent de nord à une certaine date. SELECT * FROM plane WHERE id IN ( SELECT DISTINCT G. id_ plane FROM general G, plane P, fly F, tracks T WHERE P. id =G. id_plane AND F. id =G. id_fly AND T. id =G. id_tracks AND T. winddirection = 'N ' AND F. day = ' DATE ') 10

2- Demander quelle piste fut la plus en activité à une certaine date. SELECT number, COUNT (*) FROM tracks WHERE id IN ( SELECT G. id_tracks FROM general G, tracks T, fly F WHERE T. id = G. id_tracks AND F. id = G. id_fly AND F. day = ' DATE ') GROUP BY number ORDER BY COUNT (*) DESC LIMIT 0,1 3- Demander de lister les avions disponibles ayant au minimum X places SELECT * FROM plane WHERE id IN ( SELECT G. id_plane FROM general G, plane P WHERE G. id_plane =P. id AND P. capacity > 'X ') 4- Demander quel bagagiste s'est occupé des bagages de Monsieur X. SELECT id, lastname, firstname FROM person WHERE id IN ( SELECT G. id_luggage FROM general G, workers W, traveller T, person P WHERE G. id_luggage = W. id_person AND G. id_fly = T. id_fly AND T. id_person = P. id AND P. lastname = 'Mr. X ' ) 11

5- Demander de tirer les ches de salaire du personnel ayant travaillé durant le mois. SELECT id, lastname, firstname, salary * schedule FROM person, workers WHERE person. id = workers. id_person ORDER by salary * schedule DESC Ces 5 requêtes se trouve dans la page INGI1271 du site. En plus de ces 5 requêtes, nous avons ajouté de multiples autres requêtes. Celles-ci sont nombreuses, les plus importantes étant : l'ajout de vol l'ajout de personnels l'ajout de voyageur l'ajout d'avion Pour prendre connaissance de celle-ci, nous vous invitons à parcourir le site ainsi que le code php relatif à celui-ci. 12

CHAPITRE 4 CRÉATION ET REMPLISSAGE DE LA BASE DE DONNÉES Lors de la création de la base de données, nous avons créé les 10 tables reprises dans le schéma relationnel ainsi que leurs champs. Etant donné qu'il nous était impossible de compléter de façon exhaustive notre base de données, nous l'avons remplie en analysant d'abord le type de requêtes intéressantes que nous désirions eectuer. Une fois qu'une ébauche de ces requêtes fut établie, nous avons analysé nos besoins et rempli la base de données en conséquence. Nous avions besoin notamment de : Plusieurs avions ayant décollés à une certaine date. (1 ere Requête) Plusieurs avions ayant décollés sur diérentes pistes à une certaine date. (2 e Plusieurs avions de types diérents. (3 e Requête) Plusieurs bagagistes et des voyageurs ayant pris des vols. (4 e Requête) Plusieurs membres du personnel. (5 e Requête) Requête) Les tables ont de plus été remplies avec quelques données supplémentaires an que toutes les requêtes que l'on a choisi d'implémenter puisse revoyer un résultat non vide. 13

CHAPITRE 5 INTERFACE PHP DU SITE Nous avons créé une interface en PHP pour rendre notre requêtes visibles et agréables à visionner. Nous avons essayé de la rendre la plus complète et intuitive possible. Dans le menu "Company", il est possible de trouver tout d'habord un listing de toutes les personnes enregistrées dans notre base de données. Ensuite, un lien permet de trouver de plus amples informations sur chaque personne. Le menu "Flights" présente une liste des vols eectués par nos avions. Il est alors possible d'obtenir des informations plus précises relatives à ces derniers en cliquant sur le numéro de vol. Enn, le menu "Planes" présente notre otte. Ces menus ont été mis en place pour faciliter les ajouts, modications dans la base de données. Les cinq requêtes que nous avions proposées sont quant à elles accessibles dans le menu "INGI 1271". Chaque requête est exécutable séparément grâce à un petit formulaire HTML disponnible sur cette page. 14

Figure 5.1 Visualisation de l'interface graphique 15

CONCLUSION Ce projet avait pour but de créer une base de données, de la remplir et ensuite de pouvoir eectuer des requêtes sur celle-ci. Pour arriver à la conception de la base de données, une phase théorique fut nécessaire : le modèle entité-association et le modèle relationnel. Cette première phase nous a permis de mettre en oeuvre la partie théorique du cours INGI1271 - Fichiers et bases de données. Ensuite est arrivé la création et le remplissage de la base de données qui nous a permis d'apprendre le langage SQL. En eet, pour la plupart d'entre nous, ce langage nous était inconnu. Cette partie met en oeuvre la partie pratique du cours. Ce projet nous a ausssi permis de dépasser le cadre du cours pour apprendre le langage PHP ou encore utiliser les logiciels tels que PHP/Myadmin et MySQL. Ensuite, la gestion d'un aéroport nous a permis de rééchir sur de nombreux aspects diérents. Que ce soit la gestion des aspects techniques, du personnel ou encore celle des clients, chacune d'entre elles imposent des contraintes qui compliquent rapidement la gestion de l'aéroport. Nous avons du faire des choix entre les points importants et les détails. Nous nous sommes xés une limite car il est possible d'améliorer les fonctionnalités du site ainsi que le nombre de requêtes. Nous pensons être arrivé à un bon compromis entre réalisme et créativité. 16