| La
base de données sous BASE d'Open Office
le modèle relationnel et les requêtes
Préambule
Les bases de données en STG peuvent être abordées
non dans une démarche de développement (schémas
conceptuel, relationnel et physique), mais avec une démarche
pédagogique : Observer les objets, les analyser et
construire les notions associées. Cela n'empêche
pas de "faire", et en particulier avec le logiciel de base
de données d'Open Office, "BASE".
Le cas NetFenua est découpé en étapes
1. la présentation des objets étudiés
- 2. Les tables - 3. Les relations entre les tables - 4.
Le modèle relationnel - 5. Les requêtes
Pour chaque étape, un diaporama présente les
objets sources de concepts et le mode opératoire
de BASE.
- Pour télécharger
le diaporama complet sous Power
Point (PP) ou sous Impress
(Iooo)
- Pour télécharger
la base de donnée sous BASE
cliquer ici
Remarques
L'utilisation de BASE d'Open Office nécessite un
environnement Java sur votre ordi. Vous pouvez vérifier
s'il existe dans le menu [Outil - Option - Open office
- Java] ou lors de la création d'une table sous
BASE, un message d'erreur vous demande de l'installer.
Il suffit de télécharger "Download
J2SE JRE" sur http://java.sun.com/j2se/1.4.2/download.html
et cliquer ensuite sur ce fichier pour l'installer, la
prise en charge est instantanée.
De nombreuses ressources existent sur le site du Certa
mais les bases de données sont sous ACCESS. Vous
trouverez en point 6. La manière de convertir Access
en BASE et quelques bases de données déjà
converties.
Un
premier tutorial pour créer une base simple avec
Calc
Télécharger
ici
Cas
NetFenua
Le site de NetFenua publie le classement des 50
premières entreprise de Polynésie à
l'aide d'une base de donnée développée
sous BASE, d'openoffice.org
1. la présentation
des objets étudiés
|
4. Le modèle
relationnel
|
2. Les tables
|
5. Les requêtes
|
3. Les relations entre
les tables
|
|
6. Passer d'Access à Base
Comme tous les modules de la
suite Open Office, un format d'importation pour convertir
les bases d'Access est prévu. A l'ouverture de
Base, sélectionner "se connecter à une base
de données existante" et sélectionner "Microsoft
Access"

2. Les tables
Dès le lancement de BASE, sélectionner l'icone
"Table" (par défaut, BASE est sur le mode formulaire)
et choisir "créer une table en mode ébauche".
L'interface de la structure de la table ressemble à
celle d'Access.
Pour indiquer une clé primaire : se positionner
sur la ligne et bouton droit de la souris.
Pour indiquer une concaténation de clés
(deux ou plus) : copier-coller de la clé primaire
et du champ, puis changer le nom du champ.
Pour saisir les données : un double clic sur la
table créée permet d'enregistrer les données
Pour revenir à la structure de la table : un clic
sur l'icone avec un petit crayon vert
Pour avoir recours à une numérotation automatique
des enregistrements : choisir en type de champ "Integer"
et en bas "auto valeur" sur oui.
Remarque : pour éviter des problèmes d'erreurs
de syntaxes en SQL, ne faites pas comme moi ;-) Tapez
les champs et les noms de tables en minuscules, ne mettez
pas d'espaces ni d'accents.
3. Les relations entre les tables
[Outils - Relations] et la fenêtre de la représentation
du modèle physique s'ouvre
Ajouter les tables : [Insertion - Tables] ou l'icône
avec une petite croix verte
Matérialiser les liens entre les tables : pointer
avec la souris sur la clé d'une table et tirer
le lien vers un champs d'une autre table (clé étrangère)
Paramétrer la mise à jour entre les tables
: la clé primaire d'une table peut être la
clé étrangère d'une autre table.
En cas d'un nouvel enregistrement de la première
table, nous désirons la mise à jour automatique
de la clé étrangère. Sélectionner
cette option.
Problème de mise à jour d'une table : une
fois les relations créées, si vous désirez
modifier la structure d'une table, il faut d'abord supprimer
le lien.
5. Les requêtes
Comme Access, BASE peut interpréter les requêtes
directement en SQL (Structured Query Language) ou
grace à une interface graphique.
Aller dans le menu [Inserer-Mode SQL]
Taper directement la requête et demander l'exécution
[Editer- Exécuter la requête] ou l'icone
avec une coche verte.
Les opérateurs de base en SQL sont SELECT - FROM
- WHERE -AND - ORDER BY
Il est préférable pour la lisiblité
d'une requête d'aller à la ligne à
chaque nouvel opérateur.
Les erreurs les plus fréquentes sont des erreurs
de noms de champs ou de tables, les majuscules et minuscules
doivent être respectées.
SELECT est suivi des noms des champs que l'on cherche
à afficher (c'est une projection). Si l'on veut
afficher la listes des noms de société avec
leurs effectifs, nous écrivons
SELECT nom_ste,effectif
(veillez à mettre un espace entre l'opérateur
SELECT et la suite de la requêtes. Puis chaque champ
est séparé par une virgule).
FROM est suivi des noms des tables utiles dans la requête.
Dans notre exemple, puis que l'on cherche à obtenir
des informations provenant d'une seule table, nous écrivons.
SELECT
nom_ste,effectif
FROM societe |
 |
ORDER BY permet de classer les information en ordre
ascendante (ORDER BY [nom du champ] ASC) ou descendante
(ORDER BY [nom du champ] DESC). Par défaut,
le classement est ascendant (aussi bien pour les données
numériques qu 'alphabétiques). Donc indiquer
ASC ou rien du tout revient au même. Dans notre exemple,
classer les entreprises depuis la plus grande jusqu'à
la plus petite s'écrit :
SELECT
nom_ste, effectif
FROM societe
ORDER BY effectif
DESC |
 |
WHERE induit une sélection (ou restriction)
de certains enregistrements, en mettant l'information recherchée
entre ' (attention utilisez l'apostrophe sous le chiffre
4 du clavier et non le guillemet sous le 3). Attention aux
fréquentes erreurs de syntaxe. Par exemple, si l'on
cherche l'effectif de l'entreprise BOYER, en inscrivant
'BOYER', il n'y a aucune réponse, car lors de la
saisie, BOYER a été tapé avec un espace
après. Donc dans la requête il faut écrire
'BOYER '
SELECT
nom_ste, effectif
from societe
WHERE nom_ste = 'BOYER ' |
 |
AND est utilisé pour la suite des requêtes,
que ce soit pour une autre restriction ou pour indiquer
les jointures entre les tables. Les jointures sont nécessaires
si les informations recherchées proviennent de plusieurs
tables. Dans ce cas, les jointures entre les tables peuvent
se faire si la clé primaire de l'une correspond à
la clé étrangère de l'autre. Dans notre
exemple, afficher le secteur d'activité des sociétés
fait appel à une autre table (secteur_activite).
Ces deux tables sont en relation grâceà la
clé Type_secteur. Cette relation s'écrit en
indiquant le nom de la table suivi de la clé. Dans
notre exemple nous écrivons :
SELECT nom_ste, effectif,SECTEUR
FROM societe,secteur_activite
WHERE nom_ste = 'BOYER '
AND societe.Type_secteur=secteur_activite.Type_secteur |
 |
Remarque, s'il n'existait pas la restriction 'BOYER ' la
jointure aurait débuté avec l'opérateur
WHERE.
SELECT
nom_ste, effectif,SECTEUR
FROM societe,secteur_activite
WHERE societe.Type_secteur=secteur_activite.Type_secteur |
 |
|