Forum Security-X > Programmation

Base de données Cours de rattrapage

(1/4) > >>

labougie:
Bonsoir,

Je suis un cours au Cnam
http://dnf3.cnam.fr/offre2014/pdf/ueNFA008.pdf

J'ai pris le cours en cours de route ce vendredi, alors qu'il est commencé depuis le 06-10/14. J'ai donc du retard, et, franchement c'est pas glop.

Je dois récupérer ce retard avant dimanche cela serait bien.
Pour cela je cherche à mettre en place ce que l'on nomme:

* Le modèle entité association,
* Le modèle relationnel
Pour cet exo,


--- Code: ---Club Vidéo
Dix magasins de location de cassettes vidéo se sont regroupés pour mettre en commun les cassettes dont ils disposent et ont fondé un club de location.
A la suite d'une rencontre avec les représentants de ce club, il ressort que chaque point de vente disposera d'un ordinateur personnel relié à un site central et qu'il faudra pouvoir prendre en compte les éléments suivants:
- un client qui s'inscrit au club verse une caution. Suivant le montant de cette caution il aura le droit d'emprunter en même temps de 1 à 6 cassettes;
- les cassettes empruntées doivent être retournées dans un délai de 3 jours dans n'importe quelle boutique du club;
- plusieurs cassettes peuvent contenir le même film;
- un film est rattaché à un genre cinématographique (défini par un nom et le type de public auquel il est destiné). Il est caractérisé par sa durée, son réalisateur et la liste des acteurs principaux;
- une location n'est permise que si le client est en règle (pas de dépassement du nombre d'emprunts maximum, pas de cassette en retard);
- la consultation d'un client permettra d'obtenir son nom, son adresse, son nombre d'emprunts en cours, la liste des numéros de cassettes et des titres qu'il a actuellement empruntés;
- la consultation d'un genre permettra d'obtenir la liste des films de ce genre disponibles dans un magasin donné;
- périodiquement, on veut obtenir la liste des retardataires; on veut pour chaque cassette non retournée à temps les informations suivantes : nom et adresse du client, date de l'emprunt, numéro(s) de cassette et titre du (des) film(s) concerné(s);
- on veut pouvoir connaître pour chaque cassette (identifiée par une numérotation commune aux dix magasins) où elle est, quand elle a été mise en service, quel film y est enregistré, combien de fois elle a déjà été louée, et quel est son état (de très bon à mauvais).


--- Fin du code ---

Ce que je demande, c'est de faire l'exo avec des légendes afin que je puisse acquérir au plus vite et au plus simple les méthodes de base.

Le but n'est pas la triche mais bien d'assimiler les emboitements et surtout la cardinalité.

Sachant que derrière ils parlent de UML et de Merise. C'est un gros morceau même si c'est vu en grande diagonale.

Merci par avance.

Labougie

xtrem47:
Salut,

Tu as déjà des notions dans le domaine ? L'exercice n'est certes pas très complexe mais ça me parait dur à aborder comme ça. Tu n'as pas à ta disposition de petits exercices corrigés et commentés ?

Si ce n'est pas le cas tu peux regarder par exemple ici : http://nf17.crzt.fr/www/co/modules.html je trouve ça bien fait, tu suis les modules selon tes connaissances, ça se lit bien et en quelques heures tu pourras bien rattraper ton retard.

Je suis pas sûr que ce soit le mieux à faire de te donner une solution directement, en plus l'entité-association je connais à peine et je ne pourrais pas t'aider.

Bon courage et hésite pas si t'as une question :AAC



labougie:
Salut Xtrem,

Je vais regardé ton cours de plus près.
Il me semble plus détaillé que les miens
http://ouest.pleiad.net/Fr/ressource-0-17064-81501-246840-no.html
http://ouest.pleiad.net/Fr/ressource-0-17064-81502-246842-no.html

le lien des exos
http://ouest.pleiad.net/Fr/ressource-0-17064-81501-246841-no.html


labougie

labougie:
Voici l'ébauche que j'ai réalisé ce matin.

Indique moi comment améliorer cette ébauche afin que je saisisse mieux les emboitements entre les Clés primaires et les clés secondaires.

Les clés primaires cela me semble je pense simple, en prenant le Num pour N° Id du client / N° du magasin loueur / N° de la cassette.
(" Les secondaires sont des clés qui font la jonction entre 2 tables ") si j'ai bien suivi les cours.
Par contre les clés étrangères, ben gloups gloups  :NNN

Pour la cardinalité, je verrais demain, car dons ton cours je viens de découvrir la lettre M que je n'ai pas vu dans les miens. Oups alors.

labougie

xtrem47:
Salut,


--- Citer ---Les clés primaires cela me semble je pense simple, en prenant le Num pour N° Id du client / N° du magasin loueur / N° de la cassette.
(" Les secondaires sont des clés qui font la jonction entre 2 tables ") si j'ai bien suivi les cours.
Par contre les clés étrangères, ben gloups gloups  :NNN
--- Fin de citation ---

Je vois pas trop ce que tu appel clé secondaire. Pour la clé primaire tu prends le problème à l'envers, lorsque tu construit un modèle il faut éviter de créer des clés dites artificiels (un numéro client, numéro de magasin), il faut respecter le cahier des charges pour les attributs, si on ne te demande pas de mettre un ID n'en met pas (tu verras qu'on peut ajouter ce type de clé lorsqu'on crée le modèle physique, qui te donnera ton code SQL), sauf si tu es obligé.

Donc pour ta clé primaire, commence par noter tous les attributs, puis ensuite cherche le, ou les attributs qui pourront te donner une clé primaire (tu auras souvent plusieurs possibilités possible, il faut que cette clé identifie de manière unique un enregistrement). Il faut aussi te dire que cela varie selon l'utilisation voulue. Imaginons que tu ais une table Personne, avec un nom, un prénom, une date de naissance, si tu as peu d'enregistrements, tu pourrais considérer qu'il n'y aura pas d'homonyme, donc {nom, prénom} serait ta clé primaire, mais cela ne marche pas si tu as beaucoup d'enregistrement, c'est une question de logique et d’interprétation.

La clé étrangère te permet de lier des tables entre elles, c'est un truc que tu verras tout le temps.


--- Citer ---Pour la cardinalité, je verrais demain, car dons ton cours je viens de découvrir la lettre M que je n'ai pas vu dans les miens. Oups alors.
--- Fin de citation ---

M ? Je pense que c'est juste un nombre, exactement comme N.

Tu verras la plupart du temps la cardinalité est assez simple, pour schéma par exemple il faut te demander (par rapport aux contraintes) :
Pour abonné - adresse,
Un abonné peut avoir combien d'adresse ? entre aucune et plusieurs, exactement 1, entre une et plusieurs, exactement entre 1 et 3, ...
De même, une adresse peut correspondre à combien de personnes ?

Et ça va te donner la cardinalité.


Pour Etat, tu peux utiliser une énumération, en gros il te faut "créer" un type de variable. Pour chaque attribut, il faut que tu mette son type, par exemple, type date, entier, flottant, string, etc.

Pour ton exercice tu dois (si je me trompe pas, j'ai pas vérifié) pouvoir relier entre elles toutes tes tables.

Une fois que tout seras bien en forme et clair, tu pourras en faire le modèle Entité-Association.


Une dernière chose, ne t'en fait pas (pour le moment) pour ce genre de choses : "une location n'est permise que si le client est en règle", "la consultation d'un client permettra d'obtenir son nom, son adresse, son nombre d'emprunts en cours, la liste des numéros de cassettes et des titres qu'il a actuellement empruntés;
- la consultation d'un genre permettra d'obtenir la liste des films de ce genre disponibles dans un magasin donné;
- périodiquement, on veut obtenir la liste des retardataires; on veut pour chaque cassette non retournée à temps les informations suivantes : nom et adresse du client, date de l'emprunt, numéro(s) de cassette et titre du (des) film(s) concerné(s);
- on veut pouvoir connaître pour chaque cassette (identifiée par une numérotation commune aux dix magasins) où elle est, quand elle a été mise en service, quel film y est enregistré, combien de fois elle a déjà été louée, et quel est son état (de très bon à mauvais)."

Il faut que tu mette en place les attributs et tables qui permettraient de faire ça, mais tu te pourras pas faire ce qu'ils disent tout de suite. (ça sera ensuite avec de l'algèbre relationnelle : des projections, restrictions, jointures, etc).

 :AAC



Navigation

[0] Index des messages

[#] Page suivante

Sortir du mode mobile