OVH Cloud OVH Cloud

Question sur l'organisation

4 réponses
Avatar
Omega
Bonjour,
dans un projet géographique (PostGIS), je me pose une question qui n'est pas
directement liée à la géographie mais plutot aux bases de données, d'ou ma
question ici.
Usuellement, les données sont enregistrées dans des tables, une donnée par
ligne (scindée sur plusieurs tables le cas échéant). Dans ce schéma, les
requêtes sont aisées (dans la majorité des cas).
Si à présent, la donnée n'est pas une ligne mais un ensemble de ligne, le
plus simple étant les enregistrements successifs (dans le temps) de relevés
GPS d'une personne qui marche, alors on peut concevoir qu'une table est
"une donnée", la table recense les points d'un trajet.
Si on suit la personne pendant une semaine, nous disposons de plusieurs
tables dans une même base.
Si à présent, je désire réaliser des requêtes, comment procéder ?
Supposons que je désire trouver le nombre de trajets ayant une vitesse
moyenne supérieure à 3km/h, existe-t-il des requêtes permettant cela ?
à la manière des "select .. from table" pour les cas classiques, existe-t-il
une manière de parcourir non plus des lignes d'une table, mais les tables
d'une base ?

4 réponses

Avatar
helios
"Romuald Brunet" a écrit dans le message de
news:1hb6jb8.11luxp61a6dowwN%
helios wrote:

> "Stéphane CARPENTIER" a écrit dans


le
> message de news:43fc93b8$0$10478$
> > helios a écrit :
> >
> > >
> > > "Stéphane CARPENTIER" a écrit


dans
> le
> > > message de news:43fb8d31$0$27123$
> > >> helios a écrit :
> > >>
> > >> > "Omega" a écrit dans le message de
> > >> >> > Autrement dit : si le probléme SQL est bien posé (modélisation
> > >> >> > correcte) il existe toujours une solution en une seule requête


SQL
> > >> >> > si une telle solution existe au sens "turing" de la chose.
> > >> > faux
> > >> > (...)
> > >> > si la table contient
> > >> >
> > >> > toto marc,jean,luc bac,bts,licence
> > >> > titi jean,marie,gustave bepc,bep,bac,bts
> > >> > tata eric,fred,olivier,jean bepc,bt,bts,ing
> > >>
> > >> Dans la phrase : "si le probléme SQL est bien posé (modélisation
> > > correcte)"
> > >> Quel est le mot que tu ne comprends pas ?
> > >>
> > >
> > > je ai donne une table , un resultat a obtenir , il est affirmer "il
> existe
> > > toujours une solution en une seule requête SQL " je demande donc la
> > > requete qui donne le resultat avec cette table
> >
> > Donc, le mot que tu ne comprends pas est à choisir entre


"modélisation" et
> > "correcte". On pogresse.
> >
>
> kla modelisation est correcte donc ou est la requete sql ?

Ta modélisation n'est pas correcte :>




ma modelisation est correcte mais SQL est trop etriqué pour la comprendre
Avatar
helios
"Omega" a écrit dans le message de
news:43fcca1d$0$4206$
helios wrote:

>
> "Stéphane CARPENTIER" a écrit dans


le
> message de news:43fc93b8$0$10478$
>> helios a écrit :
>>
>> >
>> > "Stéphane CARPENTIER" a écrit


dans
> le
>> > message de news:43fb8d31$0$27123$
>> >> helios a écrit :
>> >>
>> >> > "Omega" a écrit dans le message de
>> >> >> > Autrement dit : si le probléme SQL est bien posé (modélisation
>> >> >> > correcte) il existe toujours une solution en une seule requête
>> >> >> > SQL si une telle solution existe au sens "turing" de la chose.
>> >> > faux
>> >> > (...)
>> >> > si la table contient
>> >> >
>> >> > toto marc,jean,luc bac,bts,licence
>> >> > titi jean,marie,gustave bepc,bep,bac,bts
>> >> > tata eric,fred,olivier,jean bepc,bt,bts,ing
>> >>
>> >> Dans la phrase : "si le probléme SQL est bien posé (modélisation
>> > correcte)"
>> >> Quel est le mot que tu ne comprends pas ?
>> >>
>> >
>> > je ai donne une table , un resultat a obtenir , il est affirmer "il
> existe
>> > toujours une solution en une seule requête SQL " je demande donc la
>> > requete qui donne le resultat avec cette table
>>
>> Donc, le mot que tu ne comprends pas est à choisir entre "modélisation"
>> et "correcte". On pogresse.
>>
>
> kla modelisation est correcte donc ou est la requete sql ?


Je ne veux pas apparaitre désagréable, mais sauf erreur de ma part, je ne
vois aucun lien entre vos réponses et ma question. Certes je débute en
PostgreSQL (qui est me semble-t-il un SGBDR), mais juste pour préciser
quelque chose, ma question appelait plutot une reponse du genre:
========= > oui c'est possible mais compliqué, on peut imaginer des requetes qui
naviguent entre les tables
======= > ou
======== > non impossible
========== >

voilà en gros, je cherche plutot à savoir si je vais dans une impasse à
structurer mes données d'une manière ou d'une autre



tu vas dans une impasse si tu as besoin de structure ou modelisation que SQL
qui est etriqué ne gerent pas et que tu veux reste bridé par SQL

contrairement a certain ici j'utilise des SGBDR qui ont un systeme de
requete qui ne trepane pas le programmeur

Dr Thierry HOLZ
helios services
180 rue de la croix du chene
60250 HEILLES
www.openqm.be
www.pick.com02.com
Avatar
helios
"Antoun" a écrit dans le message de
news:43fccf96$0$4421$
(...)

> quelle SQL requete me donne pour resultat ?
>
> toto jean bts
> titi jean bts
> tata jean bts
>
> si la table contient
>
> toto marc,jean,luc bac,bts,licence
> titi jean,marie,gustave bepc,bep,bac,bts
> tata eric,fred,olivier,jean bepc,bt,bts,ing

la modélisation relationnelle serait la suivante :



la modelisation que j'ai donne est relationnel ET multivalue donc valable
alors je veux une requete SQL avec cette table relationnelle pas avec une
autre modelisation si SQL est incapable de comprendre cette table c'est que
Brouard a encore dit une connerie en disant "si le probléme SQL est bien
posé (modélisation correcte) il
existe toujours une solution en une seule requête SQL si une telle solution
existe au sens "turing" de la chose"

cette table etant beaucoup plus performante que l'ensemble de tables
Avatar
Fred Brouard - SQLpro
Mon cher hélios, visiblement votre inculture crasse éclabousse à ce point le web
que j'aurais tort de ne pas vous mettre le nez dedans...

Pour ceux qui, comme vous ne maitrisent pas les règles de l'art de la
modélisation de données et font n'importe quoi dans leur base, SQL (c'est un
langage normalisé) à prévu la chose...

Voici en une seule requête des plus minimaliste la solution à votre salmigondi :

CREATE TABLE T_HELIOS_HLS
(HLS_NOM VARCHAR(16),
HLS_PRENOM VARCHAR(16) ARRAY,
HLS_DIPLOME VARCHAR(16) ARRAY)

INSERT INTO T_HELIOS_HLS
VALUES ('toto', ARRAY['marc','jean','luc'], ARRAY['bac','bts','licence'])

INSERT INTO T_HELIOS_HLS
VALUES ('titi', ARRAY['jean','marie','gustave'],
ARRAY['bepc','bep','bac','bts'])

INSERT INTO T_HELIOS_HLS
VALUES ('tata', ARRAY['eric','fred','olivier','jean'],
ARRAY['bepc','bt','bts','ing'])

SELECT COLLECT (HLS_NOM) AS nom,
INTERSECTION (HLS_PRENOM) AS prenom_commun,
INTERSECTION (HLS_DIPLOME) AS diplome_commun
FROM T_HELIOS_HLS

Il serait temps de lire mon livre et notamment les :
chapitre 2 (pages 39 et 40) : type tableau SQL
chapitre 4 (pages 147 à 150) : opérations sur les multiset

et si vous persistez dans votre arogance en me disant que c'était des chaînes de
caractères séparées par des virgules, alors interressez vous aux fonctions
UNNEST et MULTISET...


helios a écrit:
"Omega" a écrit dans le message de
news:43fb792d$0$19773$

Dois-je en déduire qu'une requete portant sur une ensemble de tables est
possible ? (produisant comme résultat, soit une identifiant de la table,
soit un calcul pour la table (vitesse moyenne) )

Fred Brouard - SQLpro wrote:


A ma connaissance depuis la version SQL:1999 il n'existe pas de limite
théorique à la complexité des requêtes. En effet, avant cette version,





SQL

ne savait pas résoudre les problèmes de fermeture transitive. Depusi,
c'est chose faite.

Autrement dit : si le probléme SQL est bien posé (modélisation correcte)
il existe toujours une solution en une seule requête SQL si une telle
solution existe au sens "turing" de la chose.






faux

soit une table contenant les champs suivant : nom ; prenoms; diplomes

les champs prenoms et diplomes contiennent plusieurs valeurs separé par un
separateur

quelle SQL requete me donne pour resultat ?

toto jean bts
titi jean bts
tata jean bts

si la table contient

toto marc,jean,luc bac,bts,licence
titi jean,marie,gustave bepc,bep,bac,bts
tata eric,fred,olivier,jean bepc,bt,bts,ing





--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************