IUT Bordeaux Montesquieu – Tech de Co – BA 2007 [email protected] IUT Bordeaux Montesquieu Département Tech de Co Bases de données avec OpenOffice.org (OOo). Remarque: ce document est bien sûr créé avec OpenOfficeWriter, tout comme son exportation au format .pdf.. Depuis la version 2.0, OOo dispose d’un module de bases de données intitulé base. Découvrons celui-ci en utilisant un modèle très proche de l'exemple qui nous a servi sous Access. Création d'une base de données: Le menu fichier nous y invite à travers un assistant. Puis OOo nous demande de sauvegarder de la même manière qu'Access, alors que rien n'a été créé. Page 1 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Nous avons ensuite: On retrouve les mêmes éléments:tables, requêtes, formulaires, et rapports (Etats sous Access). Page 2 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Création de la première table: Sauvegarde sous le nom de Etudiant, et saisie de quelques enregistrements: Page 3 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Création d'un formulaire avec l'assistant: ...pour avoir: Page 4 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Création d'un rapport (Etat) avec l'assistant: Puis Page 5 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Création d'une requête en mode SQL Plus visible que sous Access ce module est vraiment intéressant: Page 6 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Requête en mode ébauche (Création sous Access): Dans ce cas aussi le résultat de la requête est visible sur le même écran que sa création. L'exécution d'une requêtese fait en cliquant sur: Page 7 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Création de la table ville: Saisie de quelques fiches: Page 8 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Création de la première relation:(Outils, Relations) (Penser à sauvegarder) Et création d'une requête sur ces deux tables: Page 9 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Création d'une troisième table: Page 10 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Relations à compléter: Et enfin requête sur trois tables: Page 11 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Remarques: Nous avons utilisé le moteur fourni avec OOo, ce qui présente certains avantages, mais aussi certains inconvénients. Ainsi nous n'avons pas pu disposer de la robustesse et de la fiabilité d'un MySQL par exemple. Par contre tout a fonctionné sans problème et tous les objets créés sont sauvegardés dans une même fichier d'extension .odb, de la même manière que sous Access. Par contre l'importation/exportation depuis ou vers Excel n'est pas possible. Extension du modèle. Poursuivons le modèle avec deux autres tables: épreuves et participe (Notes. Principe: chaque étudiant a une note dans chaque matière.) Cette dernière table est donc issue d'une association (MCD) et comprend de fait deux clés primaires. Table matières (épreuves) Page 12 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Puis la table participe: (4 étudiants et 3 matières, soit 12 notes au total) Relions les aux autres: Page 13 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Puis requête faisant afficher les notes des étudiants pour chaque matière: Page 14 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Moyennes par matières: Requêtes croisées. Il n'y a pas d'assistant de création de requêtes d'analyses croisées. Pour autant en bricolant un peu avec SQL on peut y parvenir puisque Base gère les vues (VIEW en SQL). Une vue est une table virtuelle qui reprend le résultat d'une requête. Une fois créé elle se manipule comme une table. On crée une vue depuis les requête avec un clic droit sur le nom de la requête: Page 15 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Auparavant nous avons créé trois requêtes affichant les notes des étudiants dans les trois matières. Exemple pour les statistiques: Nous avons donc 5 tables et 3 vues: Page 16 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Créons une requête avec les trois vues: Si on se limite là nous auront beaucoup trop de lignes...or nous n'avons que 4 étudiants. Notre requête-croisée affichera 4 lignes et 3 colonnes de notes plus les noms et prénoms des étudiants. Pour cela relions les noms des étudiants entre les tables-vues (sur le champ nom_etudiant): Page 17 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Cette fois il n'y a que 4 lignes, et nous disposons bien d'un tableau croisé. Certes moins rapide que sous Access, mais quand même efficace. Importation de données ACCESS: Importation d'une base Access comportant des liaisons entre les tables. Elle comprend également une requête, un formulaire et deux états. Elle est très proche du cas vu en cours, ainsi que de celui-traité ci-dessus. Le modèle et la requête ci-dessous: Page 18 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Importons cela dans Base: Fichier, Nouveau, Base de Données: Choisir OBBC, et poursuivons: Page 19 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Choisir une source de données Access, et configurer en fonction de la base de données que l'on souhaite ouvrir: Page 20 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 A noter qu'OOo souhaite enregistrer ce fichier: Page 21 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Ouvrons ce fichier dans OOo (Fichier, Nouveau, Base de données): Page 22 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Les formulaires et états sont absents. La requête initiale est insérée parmi les tables!!! Son affichage donne bien le résultat souhaité: Il est par contre impossible de la modifier comme requête. Même en conception pour Base il s'agit d'une table. Page 23 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Tentons de regarder du côté des relations: Impossible de créer ou de regarder la moindre relation... Créons une requête identique à celle présente initialement sous Access: Page 24 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Sans realtion nous avons un produit cartésien qui ne correspond pas au résultat. Créons les relation dans la requête: Bricolage, puisque le modèle dans son ensemble n'est pas affecté, et nous ne maîtrisons rien (intégrité référentielle...): Page 25 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Le résultat est correct. Même chose pour les rapports et formulaires. L'assistant fonctionne. Bilan: OOo Base sait importer des données Access, mais semble avoir du mal avec ce format pour les traiter comme ses propres bases de données. Importation d'une base de données MYSQL Page 26 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Pour cela il faut disposer d'un serveur MYSQL. En local plusieurs Kits existent (EaysyPHP, Movamp) que les développeurs Web connaissent bien. Nous allons utiliser Fvpad Webdev Server qui présente l'avantage d'être portable, d'intégrer la version 5 de MySQL et de proposer plusieurs outils intéressants dans le développement Web. Ce kit est téléchargeable à l'adresse suivante: http://fvpatwds.tuxfamily.org/ On décompresse l'archive pour obtenir au lancement ceci: Il faut démarrer les deux serveurs. Nous avons installé une base nommée etudes qui reprend exactement la structure et les données précédentes. Créée avec Access elle a été importée en utilisant l'outil de migration (gratuit) fourni par MySQL (MySQL migration Tool, parmi les outils GUI). Voici cette base visible avec phpMyAdmin: Page 27 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Dans OOoBase, Fichier, Nouveau, Base de données: Précisons cela: Page 28 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 ...et davantage encore: Page 29 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 OooBase demande de sauvegarder: Page 30 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Ouvrons cela: Page 31 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Là-aussi impossible de créer des relations: Page 32 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 Et même artifice pour les requêtes: Voyons le code SQL correspondant: Page 33 sur 34 IUT Bordeaux Montesquieu – Tech de Co – BA 2007 La condition reliant les deux tables est bien présente. Bilan: OooBase permet donc de travailler sur des bases qui ne sont pas ses bases natives. Par contre le confort est moins grand qu'avec son propre format de fichier. De plus il est impossible d'importer en tant que table des données créées avec Excel ou Access. Par contre Base permet de travailler facilement des requêtes sur une base de données MySQL. A ce titre il constitue même l'un des outils les plus conviviaux du marché, malgré les limites évoquées ci-dessus. Noter que même en local il faut que le serveur MySQL soit actif si on veut travailler sur la base. OooBase étant un produit jeune développé par une communauté importante dans un cadre intéressant sembe promis à un bel avenir. Page 34 sur 34