IUT Bordeaux Montesquieu Département Tech de Co

publicité
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
Téléchargement