Le menu
À retenir
Outils
- Convertisseur de code source en HTML
- Générateur de lien en (x)HTML
- Traduction Français-Esperanto online
Vie pratique
Portfolio
Présidentielles
Culture
- Respect des droits d'auteurs et droits voisins — Refus des Mesures Techniques de Protection (MTP)
- Licence globale : finalement je suis contre...
- Lettre à la SACEM : Réaction par rapport au projet de loi DADVSI
- Reprenons en main la culture !
- Gestion Numérique des droits (DRM) : une question de confiance
- Gestion Numérique des droits (DRM) : une question de confiance (2)
Archives
- Septembre 2008
- Aout 2008
- Juillet 2008
- Juin 2008
- Mai 2008
- Avril 2008
- Mars 2008
- Février 2008
- Janvier 2008
- Décembre 2007
- Novembre 2007
- Octobre 2007
- Septembre 2007
- Aout 2007
- Juillet 2007
- Juin 2007
- Mai 2007
- Avril 2007
- Mars 2007
- Février 2007
- Janvier 2007
- Décembre 2006
- Novembre 2006
- Octobre 2006
- Septembre 2006
- Aout 2006
- Juillet 2006
- Juin 2006
- Mai 2006
- Avril 2006
- Mars 2006
- Février 2006
- Janvier 2006
- Décembre 2005
- Novembre 2005
- Octobre 2005
- Septembre 2005
- Aout 2005
- Juillet 2005
- Juin 2005
- Mai 2005
- Avril 2005
- Mars 2005
- Février 2005
- Janvier 2005
- Décembre 2004
- Novembre 2004
- Octobre 2004
Spornikethon
- Mes créations vous plaisent ?
- Vous voulez me soutenir financièrement ?
- Cliquez sur un des boutons ci-dessous selon le montant du dons.
- Merci !
Rouleaux de blogs
Mes préférés
Les amis
- Les bla-blas de Chibi
- Lysel
- Orpheelin
- Nae-chan in Psycholand
- Circée
- Faery Book
- Les bijoux de Hime-Decco
Divers
Mes liens
- Non à la brevetabilité des logiciels en Europe
- Promotion d'artistes proposant de la musique légale et gratuite à télécharger
- Associations pour le Maintien d’une Agriculture Paysanne
- La Bible
- Wikipédia
- Le Trésor de la Langue Française Informatisé
- Liste prête à l'emploi pour Adblock
- Partitions pour guitare classique
- Forum francophone pour les collectionneurs et créateurs de poupées
- Association sportive et culturelle du 13ème arrondissement
Bombardement Google
Modélisation d'un dépôt de données : partie 1
Le 09 Novembre 2004 à 16:44
Résumé
Dans cet article on propose un squelette de modélisation pour un dépôt de données hétérogènes.
Spécifications Générales Fonctionnelles
On veut gérer un dépôt de données hétérogènes. Une donnée peut représenter un client, un article, une adresse, etc... Une modélisation orientée objet donnerait une classe de base Donnée, et des classes dérivée Client, Article, Adresse, etc...
Par gérer les données
, on comprendra créer, modifier, voir en détail, supprimer une donnée
(liste non exhaustive). Une donnée comportera aussi des méta-informations, comme des dates de validités par exemple, ou encore des états (flags
, par exemple un état valide, publié, supprimé, etc...).
Modélisation du dépôt
Avertissement
Le modèle proposé est un squelette qui doit être ensuite adapté aux besoins réels et aux données stockées.
La liste des tables modélisées
On modélisera 2 tables :
- Donnée, qui représentera une donnée en générale.
- Entité, qui représente une classe de données spécifique.
Identification et lien entre les tables
Chaque table disposera d'un identifiant système SID qui sera la clé primaire. On définira 2 séquences, SequenceIdentifiantDonnee et SequenceIdentifiantEntite qui permettront de calculer l'identifiant d'une nouvelle ligne.
À partir d'une ligne de Donnée, on doit pouvoir déterminer la table et la ligne pour récupérer les données spécifiques de Entité. La table Donnée contiendra donc un champ Type et CID.
On peut aussi vouloir identifier une ligne de Donnée à partir d'une ligne de Entité. En particulier lorsq'une entité dispose d'informations spécifiques pour l'identifier (cas de la reprise d'un modèle). La table Entité contiendra donc un champ PID.
Colonne | Type | Gestion | Commentaires |
---|---|---|---|
SID | Nombre Entier | SID > 0 | Utiliser la valeur de la séquence SequenceIdentifiantDonnee à la création d'une nouvelle ligne |
TYPE | 32 caractères | /[0-9A-Za-z]+/ | Valeur permettant de déterminer le nom de la table Entité |
CID | Nombre Entier | CID > 0 | CID correspond à la ligne de la table Entité (fonction de Donnée.TYPE) telle que Donnée.TYPE = Entité.SID |
Colonne | Type | Gestion | Commentaires |
---|---|---|---|
SID | Nombre Entier | SID > 0 | Utiliser la valeur de la séquence SequenceIdentifiantEntite à la création d'une nouvelle ligne |
PID | Nombre Entier | PID > 0 | PID correspond à la ligne de la table Donnée telle que Entité.PID = Donnée.SID |
NB : Tests d'intégrité
- Lignes erronées de la table Donnée.
- Une ligne de Donnée est erronée si a valeur Donnée.CID ne correspond à aucune valeur Entité.SID.
where not CID in (select SID from
)]]> - Lignes erronées de la table Entité.
- Une ligne de Entité est erronée si a valeur Entité.PID ne correspond à aucune valeur Donnée.SID.
where not PID in (select SID from
)]]>
NB : Modélisation d'un méta-modèle
Une implémentation triviale pour le type de donnée (Donnée.TYPE) est d'utiliser le nom de la table Entité. On peut aussi vouloir atteindre une certaine indépendance vis-à-vis de l'implémentation, auquel cas il faut créer un méta-modèle.
Colonne | Type | Gestion | Commentaires |
---|---|---|---|
TYPE | 32 caractères | /[0-9A-Za-z]+/ | Valeur permettant de déterminer le nom de la table Entité |
TABLE | 256 caractères | Non vide | Cette donnée DOIT correspondre à un nom de table existant et respectant le modèle Entité |
NB : Reprise d'un modèle existant
Dans le cas d'une reprise d'un modèle existant, il se peut qu'une donnée puisse être identifiée de manière unique par une autre information ou un autre ensemble d'informations. Ces informations ne seront pas utilisée comme clé primaire, cependant, on rajoutera les contraintes d'unicités adéquates liées à ces informations. La raison de ce choix est d'unifier l'accès aux données spécifiques d'une entité.
À suivre