Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2011, 16h25   #1
Invité de passage
 
Cheick NDIAYE
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Cheick NDIAYE

Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 3
Points : 3
Par défaut BD relationelle-objet avec pgSQL

Bonjour,
Je suis un débutant en pgSQL. Je souhaite modéliser une base de données complexe en relationnelle objet. Je connais les requêtes Oracle pour le faire mais elles ne semblent pas être équivalentes avec pgSQL.
Je souhaite connaître les requêtes pSQL correspondant au code oracle suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
CREATE TYPE TypeElementaire
	AS OBJECT 
		( x VARCHAR(30), y VARCHAR(30))
/
 
CREATE TYPE TypeSimple
	AS OBJECT(
		champ1 VARCHAR(30),
		champ2 TypeElementaire,
		pointeur REF TypeElementaire
		)
/
 
 
CREATE OR REPLACE TYPE Ens_TypeSimple
	AS TABLE OF TypeElementaire
/
 
CREATE TABLE TableCompose OF Ens_TypeSimple	(PRIMARY KEY (champ1))
	NESTED TABLE Tab_Imb STORE AS Table1;
J'ai beaucoup de questions de ce genre, si vous pouvez m'indiquer un cours de BD relationnelle-Objet avec pgSQL
Je vous serai bien reconnaissant. Merci d'avance pour vos réponses
tiger8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 16h34   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
De mémoire, je crois qu'avec Postgresql, quand on crée un type, celui-ci est ensuite utilisable comme n'importe quel type standard de Postgresql.

Pour plus d'info, il y a la doc Postgresql.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/01/2011, 17h15   #3
Invité de passage
 
Cheick NDIAYE
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Cheick NDIAYE

Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 3
Points : 3
Par défaut Bonne perspective

CinePhil ,
Je te remercie pour m'avoir répondu aussi vite. Je vais voir ça.
Mais pour l'instant je ne vois toujours pas comment créer des pointeurs de type (REF) et des ensembles de type (CREATE TYPE Ens_TypeSimple AS TABLE OF TypeElementaire).

tiger8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 18h02   #4
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
Citation:
Mais pour l'instant je ne vois toujours pas comment créer des pointeurs de type (REF) et des ensembles de type (CREATE TYPE Ens_TypeSimple AS TABLE OF TypeElementaire).
Dans Postgresql, il n'y a pas d'équivalent aux pointeurs d'Oracle, ni aux sous-tables.
En revanche les tableaux (ARRAY) de n'importe quel type sont largement gérés.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/02/2011, 13h23   #5
Invité régulier
 
Inscription : novembre 2005
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 23
Points : 8
Points : 8
Bonjour

sinon, le type hstore (dans le module contrib), est aussi intéressant. Il permet d'avoir dans une colonne un tableau associatif = une liste de clés/valeurs:
http://www.postgresql.org/docs/9.0/static/hstore.html
kimaidou est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/02/2011, 15h05   #6
Invité de passage
 
Cheick NDIAYE
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Cheick NDIAYE

Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 3
Points : 3
Par défaut Type tableau

À chaque fois qu'un type défini par un utilisateur est créé, PostgreSQL crée automatiquement un type tableau associé dont le nom est composé à partir du type de base préfixé d'un tiret bas. Ce type tableau est super car il contient toutes les fonctions de son type père ainsi que deux autres fonctions d'entrée et sortie array_in et array_out. Le type tableau est supprimé quand le type de base l'est.
Ref http://doc.postgresql.fr/9.0/sql-createtype.html

Je vous remercie pour vos propositions . Je vais tous les analyser. Je suis en train de proposer à ma hiérarchie des bases de données plus structurées que celles que nous avons sur MySQL (au faite elles ne sont même pas structurées)

C'est dommage qu'il n'y ait pas de pointeurs sur postgres car ça évite bien des répétitions.
Je considère ce problème comme résolu, mais je viendrai le compléter pour que l'on y trouve les grands trait du relationnelle objet avec PostgreSQL. Je vous invite à y participer.

Encore merci
tiger8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 15h15   #7
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Sauf que le type tableau est contraires aux règles élémentaires de construction des bases de données et notamment à la première forme normale qui veut que 1 colonne d'1 ligne = 1 valeur !

Citation:
Je suis en train de proposer à ma hiérarchie des bases de données plus structurées que celles que nous avons
Ben c'est pas avec le type tableau que ça va s'arranger !

Si tu nous dis plus concrètement de quoi il s'agit, on pourra t'aider à modéliser dans le forum Schéma.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 16h48   #8
Invité de passage
 
Cheick NDIAYE
Inscription : octobre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Cheick NDIAYE

Informations forums :
Inscription : octobre 2010
Messages : 6
Points : 3
Points : 3
Par défaut Pas de relationnelle

J'évite justement de faire de la modélisation relationnelle car assez complexe pour mon problème: ma modélisation est totalement objet mais suit bien les règles 1, 2,3 NF. Mon but est de simplifier les requêtes.
Pour l'instant je met ce projet en "stand-by". A très prochainement.
tiger8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h49.


 
 
 
 
Partenaires

Hébergement Web