EPFL/ADB
Un article de Le wiki de 2 noisettes - noisette.ch.
Back to : EPFL
Sommaire |
Projet Bases de données avancés "Portes du soleil"
Team
- Benoit (Project leader)
- David (PLSQL / OPL Guru)
- Marius (Population/Spatial man)
Rapport
Sites de Références (PL/SQL, Oracle)
- Oracle9i SQL Reference
- Oracle9i Application Developer's Guide
- PL/SQL User's Guide and Reference
- Série 4 (corrigé)
- Réfs de la base...
- Oracle® Spatial User's Guide and Reference
Données XML sur les portes du soleil
Les données sont fournies dans ce répertoire
Plan des portes du soleil contenant les informationes tel que nous les avons extrait des fichiers xml
Partie spatiale
- Crossing point C : center(83, 51) rayon = [4,5], donné par 3 points : (83, 47), (87, 51), (83, 55)
- Slope "Mossettes" : (33, 86), (37, 84), (41, 81), (47, 83), (49, 84), (51, 83), (69, 70), (73, 61), (71, 61), (71, 63), (77, 67), (61, 70), (50, 83), (43, 81), (40, 81), (36, 83), (33, 83), (33, 86)
- Pour le peuplement j'ai (Marius) coupée la piste Mossettes en deux edges:
- edge1 : (33, 86), (37, 84), (41, 81), (47, 83), (49, 84), (51, 83), (50, 83), (43, 81), (40, 81), (36, 83), (33, 83), (33, 86)
- edge2 : (51, 83), (69, 70), (73, 61), (71, 61), (71, 63), (77, 67), (61, 70), (50, 83), (51, 83)
- Pour le peuplement j'ai (Marius) coupée la piste Mossettes en deux edges:
- Slope "Loquete" : (50, 83), (51, 83), (56, 81), (60, 81), (63, 83), (64, 87), (67, 90), (69, 90), (67, 87), (64, 83), (60, 79), (50, 83)
- Slope "B2-C" : (49, 81), (51, 81), (50, 77), (67, 57), (79, 59), (79, 56), (60, 60), (56, 64), (50, 70), (46, 77), (49, 81)
Il semblerait que les index ne se créent que sur des tables, donc on est obligé de faire des tables ( id REF TObject, shape MDSYS.SDO_GEOMETRY) pour ensuite pouvoir faire des CREATE INDEX idx_name ON tables(shape) ...
Les index merdouillent un peu : Q3 version 2 me retourne : ORA-13249: SDO_NN cannot be evaluated without using index, alors que les index sont certainement crées.
On a fait 2 versions des requêtes : une utilisant les index (opérateurs MDSYS.SDO_*), l'autre ne les utilisant pas (fonction SDO_GEOM.*)
Puis on a benchmarké les 2
DECLARE i: INTEGER := 1000; BEGIN temps de départ. loop 1-1000, faire la requete temps d'arrivé, afficher deltatime. END;
TODO List
Java application
Query 2-3
Query 4
Idée de la base :
Faire un djikstra sans point d'arrivé, donc sur les plus courts chemins jusqu'à tous les points, et séléctionner les cp qui ont un lifts !
Other
Ressouces
- ISqlPlus - Oracle 10g
- Manuel de référence Oracle 9i (accessible depuis l'epfl ou par VPN)
- Project page
- Ski resort map
- Object Data Management Group (disbanded since 2001)
JDO (Java Data Objects)
OQL Ressources
- SET SERVEROUTPUT ON permet d'utiliser les fonctions dbms_output.put_line('string'||variable);
- Si on reçoit le message d'erreur ... created with compilation errors il faut lancer la commande SHOW ERRORS pour les afficher
- SELECT * FROM USER_OBJECTS|USER_TYPES|USER_TABLES puis DESC theObject
- IS DANGLING : find the REF which are no valid any more (caused by a delete somewhere)
- exec drop_all
- IS OF type
- STRINGS et VARCHAR[2] sont données entre ' et non pas "
- Pour le type BOOLEAN, on peut utiliser RAW(1).

