1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 7 Support de cours rédigé par Bernard COFFIN Université.

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

1 Bases de donn é es relationnelles. 2 Introduction au mod è le relationnel les donn é es sont repr é sent é es par des tables, sans pr é juger de la.
CONCEPTION DES BASES DE DONNÉES: modèle entités-associations
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Initiation aux bases de données et à la programmation événementielle
Initiation au système d’information et aux bases de données
Initiation au système d’information et aux bases de données
Développement d’applications web
Systèmes d’information
Rappel sur les bases de données et le vocabulaire
Geti2101 : Systèmes d’Information et Informatique
Transformation du diagramme de classe en modèle relationnel
Chap 4 Les bases de données et le modèle relationnel
1 Initiation aux bases de données et à la programmation événementielle Cours N°9 : Gestion de la cohérence avec des sous-formulaires. Support de cours.
Modèle Logique de Données
Les concepts et les méthodes des bases de données
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Modèle Logique de Données (MLD)
Initiation à la conception des systèmes d'informations
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Bases de données : modèlisation et SGBD
Sélection de colonnes (la projection)
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Comprendre le SGBDR Microsoft Access – partie 2
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
1 Initiation aux bases de données et à la programmation événementielle Cours N°8 : Gestion de la cohérence avec des zones de liste déroulantes. Souheib.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Cours de Mme Dominique Meganck - ICC - IFC MICROSOFT ACCESS Un système de gestion de bases de données...
1) Qu’est-ce que BCDI? BCDI est un logiciel informatique de recherche documentaire : C’est le catalogue informatique du CDI. Au collège on travaille principalement.
Développement d’application avec base de données Semaine 3 : Modifications avec Entité Framework Automne 2015.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 10 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 5 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 12 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
Opérations courantes Guillaume PHILIPPON. Sommaire Mise à jour des QWG Gestion des utilisateurs Ajout/Suppression d’un programme Préparation des « OS.
Géomatique Systèmes de projection Types de données Applications Qu’est-ce qu’un SIG ? Présentation de la géomatique La géomatique regroupe l'ensemble des.
: le tutoriel d’autoformation à la recherche documentaire en Santé Je mets en forme ma thèse  Je respecte le droit : le tutoriel d’autoformation.
Parcours CODAGE & ALGORITHMIQUE Cycle 3 – Ecole primaire & Collège est une plateforme de formation interactive des personnels de l'éducation.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 11 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 1 Support de cours rédigé par Bernard COFFIN Université.
Nos engagements en terme de : Devis Bat Suivi de commandes.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 6 Support de cours rédigé par Bernard COFFIN Université.
Initiation aux bases de données et à la programmation événementielle Outil de création des tables Support de TD rédigé par Bernard COFFIN Université Paris.
La création des données d’exemplaire pour un exemplarisateur Sudoc.
Lettres d’affaires Lettre commerciale. Préface La rédaction des lettres commerciales c’est un art. Il y a AFNOR (Association française de normalisation).
Mise en œuvre du plan d’action pour l’accompagnement du changement dans les services Prévention des Carsat.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
RÉNOVATION BTS Comptabilité et Gestion 2015 CB2C : un exemple de situation professionnelle Christine Forest Stéphane Bessière Daniel Perrin Toinin.
Du panier à la commande client Créer un panier Identification Validation de la commande Paiement Formulaire de création de compte Etats de la commande.
La création des données d’exemplaire pour un responsable de Centre Régional.
Formation à l’utilisation de K-Sup V5 février 2009 CRISI - COM.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 9 Support de cours rédigé par Bernard COFFIN Université.
Rappel de la méthode :  Choisir un Etat de la technique le plus proche.  Définir le problème technique à résoudre à partir de cet Etat de la technique.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 8 Support de cours rédigé par Bernard COFFIN Université.
GRAFCET Chaîne d’information Principes généraux Le GRAFCET
Master sciences et techniques de géomatique environnementale
FORMATIONENT/SVT Saint Orens Vendredi 15 novembre 2013.
Universit é Mohamed Kheider de Biskra Facult é de science et technologie D é partement de g é nie é lectrique Sp é cialit é : t é l é communication Le.
1 Initiation aux bases de données et à la programmation événementielle Construction d’un état Support de TD rédigé par Bernard COFFIN Université Paris.
AUTOMATISME Chapitre 2: Le GRAFCET.
du logiciel documentaire PMB
Parcours artistique et culturel DUPONT Myriam 01/01/01 REP de LABOUHEYRE.
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Transcription de la présentation:

1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 7 Support de cours rédigé par Bernard COFFIN Université Paris 10 – Nanterre 2007/2008

2 Il ne suffit pas de connaître les propriétés des principaux contrôles et de savoir écrire une requête simple en SQL pour faire une BD sous ACCESS Il faut d’abord savoir comment répartir les données à mémoriser entre les différentes tables et définir les liens logiques qui relient ces tables Principe de base : une table permet de mémoriser des occurrences d’une information complexe et cohérente Occurrence : réalisation d’un concept Information complexe : information que l’on peut décomposer en éléments. Les éléments d’informations sont les données (d’où « Base de données »). Une donnée est décrite par un champ de la table Information cohérente : les données ne sont pas placées au hasard, elles décrivent le même concept, participent à un sens (signification) commun Un enregistrement de la table correspond à une occurrence de l’information complexe et cohérente de la définition

3 Le sens d’une donnée dépend des autres données qui lui sont associées Autrement dit, placer une donnée dans une table ou dans une autre en modifie la signification Une donnée a une place et une seule : celle qui lui donne la signification souhaitée Pour construire une bonne base de données, il faut d’abord savoir ce qu’on veut représenter (de même que pour construire un bon formulaire, il faut d’abord savoir comment on veut l’utiliser)

4 Premièrement : définir les concepts que l’on veut utiliser Exemple vu en TD : on veut enregistrer des informations sur des écrivains et leurs œuvres Que faut-il définir ? un seul concept (l’œuvre et son auteur) ou bien deux concepts séparés a priori, c’est une information complexe et cohérente

5 Un seul concept ? Décrire l’auteur (nom, prénom, sexe, années de naissance et de décès) et l’œuvre dans un même enregistrement de la table (unique) Les descriptions risquent de ne pas être cohérentes Ex. Victor Hugo 1803/1885, Les travailleurs de la mer dans un enregistrement et Victor Hugo1804/1900, Les misérables dans un autre Interdit dans une BD bien conçue Règle fondamentale : une information (complexe ou non) ne doit pas être mémorisée plusieurs fois (on parlerait de redondances) Exception : on peut utiliser des redondances à condition qu’elles soient gérées automatiquement

6 Deux concepts ? La description d’un auteur est une information complexe et cohérente La description d’une œuvre est une information complexe et cohérente Donc deux concepts séparés… mais associés : ils sont complémentaires Une association de 1 à plusieurs A une occurrence d’auteur correspondent n (plusieurs, 0 possible) occurrences d’œuvre A une occurrence d’œuvre ne correspond qu’une seule occurrence d’auteur (c’est un choix de gestion, pour gérer les œuvres coproduites, il faut faire un autre choix et on aboutit à une autre BD) C’est un lien père/fils (père du côté un et fils du côté plusieurs) Lien réalisé par le couple clef primaire du père = clef externe du fils Ne jamais utiliser un autre moyen !

7 Représentation graphique Plusieurs conventions possibles pour représenter schématiquement une BD relationnelle On représente une table par un rectangle tabAuteur CP : N° auteur Sexe Nom auteur Prénom auteur Année naissance Année décès Clef primaire Nom de la table Liste des champs (attributs)

8 Représentation graphique Le lien logique est représenté par une flèche allant de la clef externe de la table fils à la clef primaire de la table père CP : N° auteur Sexe Nom auteur Prénom auteur Année naissance Année décès tabAuteurtabŒuvre CP : N° œuvre CE : Référence auteur Titre Clef externe Lien logique

9 A partir de quand faut-il deux tables ? Dans un enregistrement, un champ ne peut avoir qu’une seule valeur Si dans l’ensemble des données constituant une information complexe, on peut distinguer deux sous-ensembles tels qu’une occurrence de l’un peut être associé à n occurrences de l’autre, alors il faut deux tables et un lien logique Le premier de ces sous-ensembles correspond à la table père Le second à la table fils

10 Deux, c’est plusieurs ? En principe oui Sauf si c’est toujours deux, ni plus, ni moins Dans ce cas-là, on utilise deux champs avec des noms différents Plusieurs, c’est un nombre pouvant varier, d’une occurrence du « père » à l’autre

11 Une association de plusieurs à plusieurs Exemple : gestion des commandes dans une entreprise Concepts identifiés sans problème 1.Client – nom, adresse, etc. 2.Produit – nom du produit, description, prix unitaire, etc. 3.Commande – numéro, date, liste des produits commandés avec la quantité commandée pour chacun d’eux Les concepts Client et Produit sont représentés par des tables Le concept Commande doit également être représenté par une table Client / Commande est une association de un à plusieurs (lien logique) Commande / Produit est une association de plusieurs à plusieurs Un lien logique simple ne peut pas décrire cette association Il faut ajouter une table pour gérer cette association

12 Représentation graphique d’une association n/n tabCommande CP : N° Commande CE : Réf Client Date commande tabLien_Cde_Pdt CP : ? CE : Réf Commande CE : Réf Produit tabClient CP : N° client Nom client Adresse tabProduit CP : Code produit Nom produit Description Prix Unitaire Quelle clef primaire pour cette table ?

13 tabCommande CP : N° Commande CE : Réf Client Date commande tabLien_Cde_Pdt CP CE : Réf Commande CE : Réf Produit tabClient CP : N° client Nom client Adresse tabProduit CP : Code produit Nom produit Description Prix Unitaire Si une occurrence de Produit ne peut être associée qu’une seule fois à une occurrence de Commande, on utilise une clef composée des deux clefs externes

14 tabCommande CP : N° Commande CE : Réf Client Date commande tabLien_Cde_Pdt CP : N° ligne cde CE : Réf Commande CE : Réf Produit tabClient CP : N° client Nom client Adresse tabProduit CP : Code produit Nom produit Description Prix Unitaire Si une occurrence de Produit peut être associée plusieurs fois à une occurrence de Commande, on utilise une clef autonome

15 Où placer le champ correspondant à la donnée Quantité commandée ? Règle : pour placer un champ dans une table, il faut qu’il dépende entièrement de sa clef primaire La valeur de la quantité commandée dépend à la fois de la commande et du produit concerné Il faut placer le champ dans la table qui décrit l’association Commande / Produit

16 tabCommande CP : N° Commande CE : Réf Client Date commande tabLien_Cde_Pdt CP CE : Réf Commande CE : Réf Produit Quantité commandée tabClient CP : N° client Nom client Adresse tabProduit CP : Code produit Nom produit Description Prix Unitaire

17 tabCommande CP : N° Commande CE : Réf Client Date commande Taux2 tabLien_Cde_Pdt CP CE : Réf Commande CE : Réf Produit Quantité commandée Taux3 tabClient CP : N° client Nom client Adresse Taux1 tabProduit CP : Code produit Nom produit Description Prix Unitaire Le sens et la place Trois taux de remises dans trois tables différentes, quels sont leurs sens respectifs ? Pour placer un champ dans une table, il faut qu’il dépende entièrement de sa clef primaire Taux de remise permanente Taux de remise exceptionnelle Taux de remise valable uniquement pour le produit et la commande concernés

18 Association ternaire (entre trois tables) Exemple : gestion des commandes dans une entreprise Nouveaux choix de gestion 1.Un client peut avoir plusieurs adresses de livraisons 2.Dans une commande, le client indique pour chaque produit à laquelle de ses adresse il doit être livré La pluralité des adresses nécessite une nouvelle table L’association Commande / Produit concerne aussi l’adresse ; elle devient ternaire La table représentant l’association est liée aux trois autres par des liens logiques La clef primaire est composée des trois clefs externes

19 tabCommande CP : N° Commande CE : Réf Client Date commande tabLigne_commande CP CE : Réf Commande CE : Réf adresse livraison CE : Réf Produit Quantité commandée tabClient CP : N° client Nom client Prénom client Adresse client tabProduit CP : Code produit Nom produit Description Prix Unitaire tabAdresse CP : N° adresse CE : Client concerné Adresse livraison

20 Un formulaire simple pour la saisie des commandes Formulaire lié ; sa source est : SELECT * FROM tabCommande; Sous-formulaire sfLigne_commande Source: SELECT * FROM tabLigne_commande ORDER BY Réf_adresse, Réf_produit; Champs père / fils : [N° commande] / Réf_commande

21 Un formulaire simple pour la saisie des commandes Zone de liste Choix_client Contrôle source : Réf_client Contenu : SELECT [N° client], [Nom client] & " " & [Prénom client] & " à " & [Adresse client] FROM tabClient ORDER BY [Nom client], [Prénom client], [Adresse client]; Colonne liée 1 / Nombre colonne : 2 / Largeurs colonnes : 0 cm; 6 cm Zone de liste : Choix_adresse Contrôle source : Réf_adresse_livraison Contenu :SELECT [N° adresse], [Adresse livraison] FROM tabAdresse WHERE Client_concerné=forms!Saisie_Commande!Choix_client.Value; Colonne liée 1 / Nombre colonne : 2 / Largeurs colonnes : 0 cm; 6 cm Zone de liste : Choix_produit Select [N° produit], [Nom produit], [Prix unitaire] etc. Procédure événementielle : Private Sub Choix_client_AfterUpdate() sfLigne_commande!Choix_adresse.Requery End Sub

22 Un formulaire simple pour la saisie des commandes Étiquette dont la légende permet d’afficher le prix unitaire Procédures événementielles gérant l’affichage : Private Sub Choix_produit_AfterUpdate() etPrix.Caption = Choix_produit.Column(2) & "€" End Sub Private Sub Form_Current() If Not IsNull(Choix_produit.Column(2)) Then etPrix.Caption = Choix_produit.Column(2) & "€" Else etPrix.Caption = "" End If End Sub