Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD
Autres SGBD Vos questions sur les autres SGBD
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 02/10/2002, 23h31   #1
Membre confirmé
 
Inscription : mars 2002
Messages : 323
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 323
Points : 280
Points : 280
Par défaut [tables systèmes] extraction de la structure d'une base

Je souhaite récupérer la structure d'une base de données à partir d'une connexion par JDBC (je travaille en Java). Ou bien par ODBC car il existe une passerelle JDBC/ODBC .

Voici les infos dont j'ai besoin, à partir d'une connexion à une base de données :
- les tables (leur nom)
- pour chaque table: les colonnes (nom, type, isNotNull, taille si c'est du varchar ou char)
- pour chaque table: les clefs étrangères, c-à-d les colonnes qui référencent (la fk) et les colonnes référencées (la pk)
- pour chaque table: les contraintes uniques
- pour chaque table: les colonnes composant la clef primaire

Je souhaite faire ce boulot pour :
* PostGreSQL
* MS SQL Server
* Access
* Oracle
* Interbase

Je sais que les tables systèmes ne sont pas standards.

Question : existe-t'il des fonctions génériques au niveau du driver ODBC ou JDBC ? Sinon, quelqu'un a-t'il des éléments d'informations pour un de ces SGBD ?

Mon problème est surtout pour récupérer les clefs étrangères. Pourtant c'est possible car plusieurs logiciels de conception de bdd le font.

Thomas
__________________
creapage.net
laffreuxthomas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2002, 23h38   #2
Rédacteur
 
Avatar de Petrus
 
Inscription : mars 2002
Messages : 415
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mars 2002
Messages : 415
Points : 1 622
Points : 1 622
Envoyer un message via AIM à Petrus
Salut,

Oui tu peux extraire les méta informations de la base de données avec JDBC. Il y a les classes et méthodes dont tu a besoin ici :

http://java.sun.com/j2se/1.4/docs/ap...e-summary.html

Bien sur l'API JDBC du distributeur du SGBD peut différer. Reportes toi alors a la documentation de l'API constructeur.
Je l'ai utilisé pour PostgreSQL et Oracle mais je ne sais pas pour les autres .

Petrus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2002, 16h11   #3
Membre confirmé
 
Inscription : mars 2002
Messages : 323
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 323
Points : 280
Points : 280
Merci Pierre !

j'ai testé et ça marche nickel pour Interbase par JDBC. Donc ça marchera aussi pour Oracle et PostGreSQL à priori. Donc merci beaucoup.

Par contre pour Access et SQL Server je souhaiterai travailler avec les driver ODBC (car pour eux les drivers jdbc sont peu répandus).

Est-il possible de récupérer la définitions des clefs-étrangères dans les tables systèmes d'Access et SQL Server?

Thomas
__________________
creapage.net
laffreuxthomas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2002, 19h22   #4
Rédacteur
 
Avatar de Petrus
 
Inscription : mars 2002
Messages : 415
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mars 2002
Messages : 415
Points : 1 622
Points : 1 622
Envoyer un message via AIM à Petrus
Salut,

La c'est une colle pour moi, et je ne me suis jamais interessé plus que ca a ODBC, je ne sais donc pas si l'on peut avoir acces aux meta infos d'une base avec ODBC, a+

Petrus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2002, 14h35   #5
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Pour MS-SQL Server, ça ressemble étrangement à du Sybase, donc les infos doivent se trouver principalement dans

select id, name from sysobjects where type in ("U", "S") pour les tables
select id, indid from sysindexes pour les indexes, clés, etc
select objid, name from syscolumns pour les infos par colonne
select * from systypes pour retrouver le type de chaque colonne

Pour plus d'info, procure-toi le modèle de donnée des tables système de MS SQL Server et d'Access.
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2006, 15h53   #6
Invité de passage
 
Inscription : octobre 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 6
Points : 3
Points : 3
Envoyer un message via MSN à sotuxan Envoyer un message via Yahoo à sotuxan
Par défaut extraire des informations à partir de JDBC ou ODBC

salut, je travaille presque sur le même sujet ("analyseur de requêtes d'accès au serveur de base de données), sauf que moi je dois récupérer les requêtes que lance un client sur un serveur de base de données dans le but de les analyser plus tard.
Je veux savoir est t'il possible à travers JDBC ou ODBC de récuperer des informations sur ces requêtes et sur les réponses du serveur, car normalement toutes les requêtes et les répones passent par le JDBC / ODBC...
sinon avez vous une idée sur comment récupérer une telle information autrement...

Merci de vos réponses
sotuxan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 13h24   #7
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
Les définitions de la structure d'une BD est normalisée depuis SQL2 (1992) par des vues d'information de schéma présente notamment sous MS SQL Server depuis la version 7.

Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L9

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h28.


 
 
 
 
Partenaires

Hébergement Web