Cours SGBD 1 Concepts Et Langages Des Bases De Données . - Unice.fr

Transcription

Cours SGBD 1Concepts et langages desBases de Données RelationnellesSUPPORT DE COURSIUT de Nice – Département INFORMATIQUEIUT de Nice - Cours SGBD11

PlanChapitre 1Introduction généraleChapitre 2Le modèle relationnelChapitre 3Présentation des donnéesChapitre 4L’algèbre relationnelleChapitre 5Le langage QBEChapitre 6Le langage SQLChapitre 7Gestion des transactionsChapitre 8Programmation avec VBAChapitre 9Les objets dans AccessChapitre 10L’interface DAOChapitre 11Le mode client serveur et ODBCChapitre 12Automation et le modèle DCOMIUT de Nice - Cours SGBD12

Chapitre 1Introduction généraleI.Notions intuitivesII.Objectifs et avantages des SGBDIII.L’architecture ANSI/SPARCIV.Notion de modélisation des donnéesV.Survol des différents modèles de donnéesVI.Bref historique,principaux SGBD commercialisésIUT de Nice - Cours SGBD13

I Notions intuitivesBase de donnéesensemble structuré de données apparentées quimodélisent un univers réelUne BD est faite pour enregistrer des faits, des opérations ausein d'un organisme(administration, banque, université, hôpital, .)Les BD ont une place essentielle dans l'informatique Système de Gestion de Base de Données (SGBD)DATA BASE MANAGEMENT SYSTEM (DBMS)système qui permet de gérer une BD partagée parplusieurs utilisateurs simultanémentIUT de Nice - Cours SGBD14

Des fichiers aux Base de DonnéesSéparation des données et des programmesFICHIERBASE DE DONNEESLes données des fichiers sontdécrites dans les programmesLes données de la BD sontdécrites hors des programmesdans la base iptionfichierProgrammesProgrammesLa multiplication des fichiers entraînait la redondance desdonnées, ce qui rendait difficile les mises à jour.D'où l'idée d'intégration et de partage des donnéesIUT de Nice - Cours SGBD15

IIObjectifs et avantages des SGBDQue doit permettre un SGBD ? Décrire les donnéesindépendamment des applications (de manièreintrinsèque) langage de définition des donnéesDATA DEFINITION LANGUAGE (DDL) Manipuler les donnéesinterroger et mettre à jour les donnéessans préciser d'algorithme d'accèsdire QUOI sans dire COMMENTlangage de requêtes déclaratifex.:quels sont les noms des produits de prix 100F ? langage de manipulation des donnéesDATA MANIPULATION LANGUAGE (DML)IUT de Nice - Cours SGBD16

Contrôler les donnéesintégritévérification de contraintes d'intégritéex.: le salaire doit être compris entre 400F et20000Fconfidentialitécontrôle des droits d'accès, autorisation langage de contrôle des donnéesDATA CONTROL LANGUAGE (DCL)IUT de Nice - Cours SGBD17

Partageune BD est partagée entre plusieurs utilisateurs enmême temps contrôle des accès concurrentsnotion de transactionL'exécution d'une transaction doit préserver lacohérence de la BD Sécuritéreprise après panne, journalisation Performances d'accèsindex (hashage, arbres balancés .)IUT de Nice - Cours SGBD18

Indépendance physiquePouvoir modifier les structures de stockage ou lesindex sans que cela ait de répercussion au niveau desapplicationsLes disques, les méthodes d’accès, les modes deplacement, le codage des données ne sont pasapparents Indépendance logiquePermettre aux différentes applications d’avoir desvues différentes des mêmes donnéesPermettre au DBA de modifier le schéma logique sansque cela ait de répercussion au niveau desapplicationsIUT de Nice - Cours SGBD19

III L’architecture ANSI/SPARC proposition en 75 de l’ ANSI/SPARC(Standard Planning And Requirement Comitte) 3 niveaux de représentation des donnéesEXTERNEVue 1Vue 2Schéma logiqueDICTIONNAIRE DE DONNEESCONCEPTUELSchéma physiqueSTRUCTURE DE DONNEESINTERNESGBDNiveaux de représentation des donnéesIUT de Nice - Cours SGBD110

Le niveau externeLe concept de vue permet d'obtenir l'indépendancelogiqueLa modification du schéma logique n’entraîne pas lamodification des applications(une modification des vues est cependant nécessaire)Chaque vue correspond à la perception d’une partie desdonnées, mais aussi des données qui peuvent êtresynthétisées à partir des informations représentées dansla BD (par ex. statistiques) Le niveau conceptuelil contient la description des données et descontraintes d’intégrité (Dictionnaire de Données)le schéma logique découle d’une activité demodélisation Le niveau interneil correspond aux structures de stockage et auxmoyens d’accés (index)IUT de Nice - Cours SGBD111

Pour résumer :Les fonctions des SGBD DEFINITION DES DONNEES Langage de définition des données (DDL)(conforme à un modèle de données) MANIPULATION DES DONNEESInterrogationMise à jourinsertion, suppression, modification Langage de manipulation des données (DML)(langage de requête déclaratif) CONTRÔLE DES DONNEESContraintes d'intégritéContrôle des droits d'accèsGestion de transactions Langage de contrôle des données (DCL)IUT de Nice - Cours SGBD112

IV Notion de modélisation des donnéesUNIVERS REELModèles sémantiquesOrientés « conception »Entité-Association, Merise MODELECONCEPTUELMCDModèles de BDHiérarchique, RéseauRelationnel SCHEMALOGIQUE Les modèles de BD sont souvent trop limités pourpouvoir représenter directement le monde réelMéthodologies de conception présentées en ACSI,SGBD2IUT de Nice - Cours SGBD113

Le modèle Entité-AssociationEA en français, ER en anglais (pour Entity Relationship)Formalisme retenu par l'ISO pour décrire l'aspectconceptuel des données à l’aide d’entités etd’associations Le concept d’entitéReprésentation d’un objet matériel ou immatérielPar exemple un employé, un projet, un bulletin de paieNom de l’entitéListe des propriétés Les entités peuvent être regroupées en typesd’entitésPar exemple, on peut considérer que tous les employésparticuliers sont des instances du type d’entité génériqueEMPLOYEPar exemple l’employé nommé DUPONT est une instance ouoccurrence de l’entité EMPLOYEIUT de Nice - Cours SGBD114

Les propriétésdonnées élémentaires relatives à une entitéPar exemple, un numéro d’employé, une date de débutde projet on ne considère que les propriétés qui intéressent uncontexte particulier Les propriétés d’une entité sont également appeléesdes attributs, ou des caractéristiques de cette entité L’identifiantpropriété ou groupe de propriétés qui sert à identifierune entitéL’ideintifiant d’une entité est choisi par l’analyste defaçon à ce que deux occurrences de cette entité nepuissent pas avoir le même identifiantPar exemple, le numéro d’employé sera l’identifiant del’entité EMPLOYEIUT de Nice - Cours SGBD115

Les associationsReprésentation d’un lien entre deux entités ou plus une association peut avoir des propriétés particulièresPar exemple, la date d’emprunt d’un livreadhérentexemplaireemprunterdate d’empruntIUT de Nice - Cours SGBD116

Les cardinalitésLa cardinalité d’une association pour une entitéconstituante est constituée d’une borne minimale etd’une borne maximale : Minimale : nombre minimum de fois qu’uneoccurrence de l’entité participe aux occurrences del’association, généralement 0 ou 1 Maximale : nombre maximum de fois qu’uneoccurrence de l’entité participe aux occurrences del’association, généralement 1 ou nPar exemple :adhérentexemplaireemprunter0,3date d’emprunt0,1 La cardinalité 0,3 indique qu’un adhérent peut êtreassocié à 0, 1, 2 ou 3 livres, c’est à dire qu’il peutemprunter au maximun 3 livres. A l’inverse un livre peut être emprunté par un seuladhérent, ou peut ne pas être emprunté.IUT de Nice - Cours SGBD117

Les cardinalités maximum sont nécessaires pourconcevoir le schéma de la base de données Les cardinalités minimums sont nécessaires pourexprimer les contraintes d’intégritéEn notant uniquement les cardinalités maximum,on distingue 3 type de liens : Lien fonctionnel 1:n Lien hiérarchique n:1 Lien maillé n:mIUT de Nice - Cours SGBD118

Lien fonctionnel1:nAB1nUne instance de A ne peut être associée qu'à une seuleinstance de BPar exemple :employédépartementtravaillen1Un employé ne peut travailler que dans un seuldépartementIUT de Nice - Cours SGBD119

Lien hiérarchique n:1ABn1Une instance de A peut être associée à plusieursinstances de BInverse d'un lien 1:ndépartementemployéemploien1Un département emploie généralement plusieursemployésIUT de Nice - Cours SGBD120

Lien maillén:mABnmUne instance de A peut être associée à plusieursinstances de B et inversementPar exemple :employéprojetparticipemnDe ce schéma, on déduit qu’un employé peut participerà plusieurs projets.IUT de Nice - Cours SGBD121

Exemple de diagramme Entité Associationest chef de1travailledirigea pour chefdépartementemployénn1nparticipemprojetIUT de Nice - Cours SGBD122

V Les différents modèles de données L'organisation des données au sein d'une BD a uneimportance essentielle pour faciliter l'accès et la miseà jour des donnéesHiérarchiqueLiens 1:NRéseauLiens N:MRelationnelLiens N:1IUT de Nice - Cours SGBD1SGBDR23

Les modèles hiérarchique et réseau sont issus dumodèle GRAPHE données organisées sous forme de graphe langages d'accès navigationnels(adressage par liens de chaînage) on les appelle "modèles d'accès"Le modèle relationnel est fondé sur la notionmathématique de RELATION introduit par Codd (recherche IBM) données organisées en tables (adressage relatif) stratégie d'accès déterminée par le SGBDIUT de Nice - Cours SGBD124

LE MODÈLE RÉSEAU Schéma logique représenté par un GRAPHEnoeudarc : article (représente une entité): lien hiérarchique 1:NExemple de shéma réseauCLIENTPRODUITVENTEDiagramme de Bachman Langage navigationnel pour manipuler les données Implémentation d'un lien par une liste circulaire :rRLSIUT de Nice - Cours SGBD1s1s225. sn

Exemple de schéma réseau :CLIENTSPRODUITSpxqyrx, pxpx, qqy, pyy, rrReprésentation d’une association N:M par 2 liensCODASYLIUT de Nice - Cours SGBD126

LE MODÈLE HIÉRARCHIQUE Schéma logique représenté par un ARBREnoeudarc : segment (regroupement de données): lien hiérarchique 1:NExemple de shéma hiérarchiqueCLIENTCLIENTPRODUITPRODUITVENTEVENTE Choix possible entre plusieurs arborescences(le segment racine est choisi en fonction de l'accès souhaité) Dissymétrie de traitement pour des requêtes symétriquesEn prenant l'ex. précédent, considérer les 2 requêtes :a)Trouver les no de produits achetés par le client xb)Trouver les no de clients qui ont acheté le produit pElles sont traitées différemment suivant le choix du segment racine(Client ou Produit) Adéquation du modèle pour décrire des organisations àstructure arborescente (ce qui est fréquent en gestion)IUT de Nice - Cours SGBD127

LE MODÈLE RELATIONNEL En 1970, CODD présente le modèle relationnel Schéma logique représenté par des RELATIONSLE SCHÉMA RELATIONNELLe schéma relationnel est l'ensemble des RELATIONSqui modélisent le monde réel Les relations représentent les entités du monde réel(comme des personnes, des objets, etc.) ou lesassociations entre ces entités Passage d'un schéma conceptuel E-A à un schémarelationnel- une entité est représentée par la relation :nom de l'entité (liste des attributs de l'entité)- une association M:N est représentée par la relation :nom de l'association (liste des identifiants des entités participantes,liste des attributs de l'association)IUT de Nice - Cours SGBD128

Ex . :CLIENT (IdCli, nom, ville)PRODUIT (IdPro, nom, prix, qstock)VENTE (IdCli, IdPro, date, qte)Représentation des données sous forme de tables Qte123456LES AVANTAGES DU MODÈLE RELATIONNELIUT de Nice - Cours SGBD129

SIMPLICITE DE PRÉSENTATION- représentation sous forme de tables OPÉRATIONS RELATIONNELLES- algèbre relationnelle- langages assertionnels INDEPENDANCE PHYSIQUE- optimisation des accès- stratégie d'accès déterminée par le système INDEPENDANCE LOGIQUE- concept de VUES MAINTIEN DE L’INTEGRITÉ- contraintes d'intégrité définies au niveau duschémaIUT de Nice - Cours SGBD130

VI Bref historique, principaux systèmesAnnées 60 Premiers développements des BD fichiers reliés par des pointeurssystèmes IDS 1 et IMS 1 précurseurs des SGBDmodernesAnnées 70 Première génération de SGBD apparition des premiers SGBDséparation de la description des données de lamanipulation de celles-ci par les applicationsmodéles hiérarchique et réseau CODASYLlangages d'accès navigationnelsSGBD IDMS, IDS 2 et IMS 2Années 80 Deuxième génération modèle relationnelles SGBDR représentent l'essentiel du marché BD(aujourd'hui)architecture répartie client-serveurAnnées 90 Troisième génération modèles de données plus richessystèmes à objetsOBJECTSTORE, O2IUT de Nice - Cours SGBD131

Principaux systèmes OracleDB2 (IBM)IngresInformixSybaseSQL Server (Microsoft)O2GemstoneSur micro : AccessParadoxFoxPro4DWindevSharewares : MySQLMSQLPostgresInstantDBIUT de Nice - Cours SGBD132

Chapitre 2I.Le modèle relationnelLES CONCEPTSII. LES DÉPENDANCESFONCTIONNELLESIII. LES RÈGLES D'INTÉGRITÉIV. LES FORMES NORMALESIUT de Nice - Cours SGBD133

ILES CONCEPTS LE DOMAINE LA RELATION LES N-UPLETS LES ATTRIBUTS LE SCHÉMA D’UNE RELATION LE SCHÉMA D’UNE BDR LA REPRÉSENTATIONIUT de Nice - Cours SGBD134

LE DOMAINEensemble de valeurs atomiques d'un certain typesémantiqueEx. :NOM VILLE { Nice, Paris, Rome } les domaines sont les ensembles de valeurs possiblesdans lesquels sont puisées les données deux ensembles peuvent avoir les mêmes valeursbien que sémantiquement distinctsEx. :NUM ELV { 1, 2, , 2000 }NUM ANNEE { 1, 2, , 2000 }IUT de Nice - Cours SGBD135

LA RELATIONsous ensemble du produit cartésien de plusieursdomainesR D1 D2 . DnD1, D2, . , Dn sont les domaines de Rn est le degré ou l’arité de REx.:Les domaines :NOM ELV { dupont, durant }PREN ELV { pierre, paul, jacques }DATE NAISS {Date entre 1/1/1990 et 31/12/2020}NOM SPORT { judo, tennis, foot }La relation ELEVEELEVE NOM ELV PREN ELV DATE NAISSELEVE { (dupont, pierre, 1/1/1992),(durant, jacques, 2/2/1994) }La relation INSCRIPTINSCRIPT NOM ELV NOM SPORTINSCRIPT { (dupont, judo), (dupont, foot),(durant, judo)}IUT de Nice - Cours SGBD136

LES N-UPLETSun élément d'une relation est un n-uplet de valeurs(tuple en anglais) un n-uplet représente un faitEx.:« Dupont pierre est un élève né le 1 janvier1992 »« dupont est inscrit au judo » DEFINITION PRÉDICATIVE D’UNE RELATIONUne relation peut être considérée comme un PRÉDICATà n variablesθ(x, y, z) vrai (x, y, z) REx. :est inscrit (dupont, judo) (dupont, judo) INSCRIPTIUT de Nice - Cours SGBD137

LES ATTRIBUTSChaque composante d'une relation est un attribut Le nom donné à un attribut est porteur de sens Il est en général différent du nom de domaine Plusieurs attributs peuvent avoir le même domaineEx. :La relation TRAJET :TRAJET NOM VILLE NOM VILLEDans laquelle la première composante représente la ville dedépart VD, la deuxième composante la ville d’arrivée VA d’untrajet.IUT de Nice - Cours SGBD138

LE SCHÉMA D’UNE RELATIONLe schéma d'une relation est défini par :- le nom de la relation- la liste de ses attributson note :R (A1, A2, . , An)Ex.:ELEVE (NOM, PRENOM, NAISS)INSCRIPT (NOM ELV, SPORT)TRAJET (VD, VA) Extension et Intension- L'extension d'une relation correspond à l'ensemblede ses éléments (n-uplets) le terme RELATION désigne une extension- L'intention d'une relation correspond à sasignification le terme SCHÉMA DE RELATION désignel'intention d'une relationIUT de Nice - Cours SGBD139

LE SCHÉMA D’UNE BDRLe schéma d'une base de données est défini par :- l'ensemble des schémas des relations qui lacomposentNotez la différence entre : le schéma de la BDR qui dit comment les donnéessont organisées dans la basel'ensemble des n-uplets de chaque relation, quireprésentent les données stockées dans la base Conception de Schéma Relationnel- Problème :Comment choisir un schéma approprié ?- Méthodologies de conception cours ACSI cours SGBD 2IUT de Nice - Cours SGBD140

LA REPRÉSENTATION1 RELATION 1 TABLEU1V1W1X1Y1U2V2W2X2Y2U3V3W3X3Y3X1Y11 ÉLÉMENT ou n-uplet 1 LIGNELIGNE 1 élémentU1V1W1 une relation est un ensemble on ne peut pas avoir 2 lignesidentiques1 ATTRIBUT 1 COLONNEU1U2U3 COLONNE1 attribut ou propriétéIUT de Nice - Cours SGBD141

Exemples :- La relation ELEVEELEVE :élément /1994duvalPaul3/03/81- La relation INSCRIPTINSCRIPT :élément NOM ELVSPORTDupontjudoDupontfootDurantjudo- La relation TRAJETTRAJET :élément IUT de Nice - Cours SGBD1VDVANiceparisParisromeRomenice42

Fenêtre Création de Table d’AccessAffichage d’une table dans AccessSélecteur d’enregistrementBoutons de déplacementIUT de Nice - Cours SGBD143

II LES DÉPENDANCESFONCTIONNELLESDépendance fonctionnelleSoit R(A1, A2, ., An) un schéma de relationSoit X et Y des sous ensembles de {A1,A2,.An)On dit que Y dépend fonctionnellement de X (X- Y) si àchaque valeur de X correspond une valeur unique de Yon écrit :X Yon dit que : X détermine YEx.:PRODUIT (no prod, nom, prixUHT)no prod (nom, prixUHT)NOTE (no contrôle, no élève, note)(no contrôle, no élève) note une dépendance fonctionnelle est une propriétésémantique, elle correspond à une contraintesupposée toujours vrai du monde réelD.F. élémentaireD.F. X - A mais A est un attribut unique non inclus dans X et iln’existe pas de X’ inclus dans X tel que X’ - AIUT de Nice - Cours SGBD144

La clé d’une relationattribut (ou groupe minimum d'attributs) qui déterminetous les autresEx.:PRODUIT (no prod, nom, prixUHT)no prod (nom, prixUHT)no prod est une clé Une clé détermine un n-uplet de façon unique Pour trouver la clé d'une relation, il faut examinerattentivement les hypothèses sur le monde réel Une relation peut posséder plusieurs clés, on lesappelle clés candidatesEx.:dans la relation PRODUIT, nom est une clé candidate (àcondition qu'il n'y ait jamais 2 produits de même nom)IUT de Nice - Cours SGBD145

Clé primairechoix d'une clé parmi les clés candidates Clé étrangère ou clé secondaireattribut (ou groupe d'attributs) qui fait référence à la cléprimaire d'une autre relationEx.:CATEG (no cat, design, tva)PRODUIT(no prod, nom, marque, no cat, prixUHT)no cat dans PRODUIT est une clé étrangèreCLÉ ÉTRANGÈRE CLÉ PRIMAIRE dans une autrerelationIUT de Nice - Cours SGBD146

III LES RÈGLES D'INTÉGRITÉLes règles d'intégrité sont les assertions quidoivent être vérifiées par les données contenuesdans une baseLe modèle relationnel impose les contraintesstructurelles suivantes : INTÉGRITÉ DE DOMAINE INTÉGRITÉ DE CLÉ INTÉGRITÉ RÉFÉRENCIELLE La gestion automatique des contraintes d’intégritéest l’un des outils les plus importants d’une basede données. Elle justifie à elle seule l’usage d’un SGBD.IUT de Nice - Cours SGBD147

INTÉGRITÉ DE DOMAINELes valeurs d'une colonne de relation doivent appartenirau domaine correspondant contrôle des valeurs des attributs contrôle entre valeurs des attributsIUT de Nice - Cours SGBD148

INTÉGRITÉ DE CLÉLes valeurs de clés primaires doivent être :- uniques- non NULL Unicité de clé Unicité des n-uplets Valeur NULLvaleur conventionnelle pour représenter uneinformation inconnue dans toute extension possible d'une relation, il ne peutexister 2 n-uplets ayant même valeur pour les attributscléssinon 2 clés identiques détermineraient 2 lignes identiques(d'après la définition d’une clé), ce qui est absurdeIUT de Nice - Cours SGBD149

INTÉGRITÉ RÉFÉRENCIELLELes valeurs de clés étrangères sont 'NULL' ou sont desvaleurs de la clé primaire auxquelles elles font référence Relations dépendantes LES DÉPENDANCES :Liaisons de un à plusieurs exprimées par des attributsparticuliers: clés étrangères ou clés secondairesIUT de Nice - Cours SGBD150

Les contraintes de référence ont un impact importantpour les opérations de mises à jour, elles permettentd’éviter les anomalies de mises à jourExemple :CLIENT (no client, nom, adresse)ACHAT (no produit, no client, date, qte)Clé étrangère no client dans ACHAT insertion tuple no client X dans ACHATÖ vérification si X existe dans CLIENT suppression tuple no client X dans CLIENTÖ soit interdire si X existe dans ACHATÖ soit supprimer en cascade tuple X dans ACHATÖ soit modifier en cascade X NULL dans ACHAT modification tuple no client X en X’ dans CLIENTÖ soit interdire si X existe dans ACHATÖ soit modifier en cascade X en X’ dans ACHATIUT de Nice - Cours SGBD151

Paramétrage des Relations dans Access IdPro de Vente est une clé étrangère qui fait référenceà la clé primaire de Produit Appliquer l’intégrité référentielle signifie que l’on nepourra pas avoir, à aucun moment, une ligne de Venteavec un code produit IdPro inexistant dans la tableProduit. Une valeur de clé étrangère peut être NullIUT de Nice - Cours SGBD152

IV LES FORMES NORMALES La théorie de la normalisation elle met en évidence les relations "indésirables" elle définit les critères des relations "désirables"appelées formes normales Propriétés indésirables des relations- Redondances- Valeurs NULL elle définit le processus de normalisation permettantde décomposer une relation non normalisée en unensemble équivalent de relations normaliséesIUT de Nice - Cours SGBD153

La décompositionObjectif:- décomposer les relations du schéma relationnelsans perte d’informations- obtenir des relations canoniques ou de base dumonde réel- aboutir au schéma relationnel normalisé Le schéma de départ est le schéma universel de labase Par raffinement successifs ont obtient des sousrelations sans perte d’informations et qui ne serontpas affectées lors des mises à jour (non redondance) Les formes normales5 FN, les critères sont de plus en plus restrictifsFNj FNi(j i) Notion intuitive de FNune « bonne relation » peut être considérée commeune fonction de la clé primaire vers les attributsrestantsIUT de Nice - Cours SGBD154

1ère Forme Normale 1FNUne relation est en 1FN si tout attribut est atomique (nondécomposable)Contre-exempleELEVE (no elv, nom, prenom, liste notes)Un attribut ne peut pas être un ensemble de valeursDécompositionELEVE (no elv, nom, prenom)NOTE (no elv, no matiere, note)IUT de Nice - Cours SGBD155

2ème Forme Normale 2FNUne relation est en 2FN si- elle est en 1FN- si tout attribut n’appartenant pas à la clé ne dépendpas d’une partie de la clé C’est la phase d’identification des clés Cette étape évite certaines redondances Tout attribut doit dépendre fonctionnellement de latotalité de la cléContre-exempleune relation en 1FN qui n'est pas en 2FNCOMMANDE (date, no cli, no pro, qte, prixUHT)elle n'est pas en 2FN car la clé (date, no cli,no pro), et le prixUHT ne dépend que de no proDécompositionCOMMANDE (date, no cli, no pro, qte)PRODUIT (no pro, prixUHT)IUT de Nice - Cours SGBD156

3ème Forme Normale 3FNUne relation est en 3FN si- elle est en 2FN- si tout attribut n’appartenant pas à la clé ne dépendpas d’un attribut non cléCeci correspond à la non transitivité des D.F. ce quiévite les redondances.En 3FN une relation préserve les D.F. et est sans perte.Contre-exempleune relation en 2FN qui n'est pas en 3FNVOITURE (matricule, marque, modèle, puissance)on vérifie qu'elle est en 2FN ; elle n'est pas en 3FN car la clé matricule, et la puissance dépend de (marque, modèle)DécompositionVOITURE (matricule, marque, modèle)MODELE (marque, modèle, puissance)IUT de Nice - Cours SGBD157

3ème Forme Normale de BOYCE-CODD BCNFUne relation est en BCFN :- elle est en 1FN et- ssi les seules D.F. élémentaires sont celles danslesquelles une clé détermine un attribut BCNF signifie que l'on ne peut pas avoir un attribut(ou groupe d'attributs) déterminant un autre attribut etdistinct de la clé Ceci évite les redondances dans l’extension de larelation: mêmes valeurs pour certains attributs de nuplets différents BCNF est plus fin que FN3 : BCNF FN3Contre-exempleune relation en 3FN qui n'est pas BCNFCODEPOSTAL (ville, rue, code)on vérifie qu'elle est FN3, elle n'est pas BCNF car la clé (ville,rue) (ou (code, ville) ou (code, rue)), et code villeIUT de Nice - Cours SGBD158

Chapitre 3Présentation des donnéesUne fois la base et les tables créées, il faut pouvoirles exploiter.L’utilisateur final aura besoin de visualiser et saisirdes données,d’effectuer des calculs et d’imprimerdes résultats.La réponse à ces problèmes de présentation desdonnées est fournie par : les formulairesdestinés à être affichés à l’écran les étatsdestinés à être imprimés.IUT de Nice - Cours SGBD159

ILes formulaires2 types de formulaires : de présentation des donnéesIls permettent de saisir, ou modifier les donnéesd’une ou plusieurs tables sous une formevisuellement agréable de distributionils ne sont attachés à aucune table, et serventuniquement de page de menu pour orienterl’utilisateur vers d’autres formulaires ou étatsIUT de Nice - Cours SGBD160

Formulaire rudimentaireFenêtre Conception de Formulaire d’AccessIUT de Nice - Cours SGBD161

Formulaire avec sous-formulairePermet d’afficher les données de deux tables quisont en relation l’une avec l’autre. Le formulaire principal affiche les données de latable principale Le sous formulaire affiche les données de latable liéeSi l’utilisateur change d’enregistrement principal, lesous formulaire est automatiquement mis à jour.IUT de Nice - Cours SGBD162

Création d’un formulaire de présentation1) Définir la propriété Source de données (table ourequête)Cliquer ici avec le bouton droit, puis sélectionner PropriétésBoîte des propriétés du formulaire Sélectionner l’onglet Données Définir la propriété Source (table ou requête)IUT de Nice - Cours SGBD163

2) Insérer dans le formulaire les Zonesde texte liées aux champs de laSource de donnéesa) Sélectionner l’outil Zone de texteb) Insérer la Zone de texte avec son Etiquette associéec) Définir la propriété Source contrôle de la Zone de textePour afficher la fenêtre des propriétés d’un contrôle,cliquer dessus avec le bouton droit de la sourisIUT de Nice - Cours SGBD164

IILes étatsUn état permet d’imprimer des enregistrements, enles groupant et en effectuant des totaux et dessous totaux.En-tête d’état Etat du StockEn-tête de page EEnnttrreepprriissee MMIICCRROOEn-tête de groupe Catégorie :DétailPied de groupeIdPro 102030ODésignationPsImacAptiva Sous totaux :MarqueIbmAppleIbmQstock10201040 Pied de page Pied d’état Total général :IUT de Nice - Cours SGBD1Jeudi 12 février 199865Page 1 sur 1200

Création d’un état1) Définir la propriété Source de données (table ourequête)Cliquer ici avec le bouton droit, puis sélectionner PropriétésIUT de Nice - Cours SGBD166

2) Définir Trier et grouperIUT de Nice - Cours SGBD167

3) Placer les champs dans les différentes sectionde l’étatIUT de Nice - Cours SGBD168

Chapitre 4I.L’algèbre relationnelleLes opérationsII. Le langage algébriqueIUT de Nice - Cours SGBD169

ILes opérationsL’Algèbre relationnelle est une collection d’opérations OPÉRATIONS- opérandes : 1 ou 2 relations- résultat : une relation DEUX TYPES D’OPÉRATIONSÎ OPÉRATIONS ENSEMBLISTESUNIONINTERSECTIONDIFFÉRENCEÎ OPÉRATIONS UT de Nice - Cours SGBD170

UNIONL'union de deux relations R1 et R2 de même schéma estune relation R3 de schéma identique qui a pour n-upletsles n-uplets de R1 et/ou R2On notera :R3 R1 R2R1A B02R2A13B0415R3 R1 R2R3AB024IUT de Nice - Cours SGBD171135

INTERSECTIONL’intersection entre deux relations R1 et R2 de mêmeschéma est une relation R3 de schéma identique ayantpour n-uplets les n-uplets communs à R1 et R2On notera :R3 R1 R2R1A B02R2A13B0415R3 R1 R2R3AB0IUT de Nice - Cours SGBD1721

DIFFÉRENCELa différence entre deux relations R1 et R2 de mêmeschéma est une relation R3 de schéma identique ayantpour n-uplets les n-uplets de R1 n'appartenant pas à R2On notera :R3 R1 R2R1A B02R2A13B0415R3 R1 R2R3AB2IUT de Nice - Cours SGBD1733

PROJECTIONLa projection d'une relation R1 est la relation R2obtenue en supprimant les attributs de R1 nonmentionnés puis en éliminant éventuellement les nuplets identiquesOn notera :R2 πR1 (Ai, Aj, . , Am)la projection d'une relation R1 sur les attributsAi, Aj, , AmÎ La projection permet d’éliminer des attributs d’unerelation Elle correspond à un découpage vertical :A1IUT de Nice - Cours SGBD1A2A374A4

Requête 1 :« Quels sont les références et les prix des produits ? »PRODUIT (IdPro, Nom, Marque, rosoftPrix1000200030004000πPRODUIT (IdPro, Prix)IdProPQRSIUT de Nice - Cours SGBD175Prix1000200030004000

Requête 2 :« Quelles sont les marques des produits ? »PRODUIT (IdPro, Nom, Marque, rosoftπPRODUIT (Marque)MarqueIBMAppleMicrosoftNotez l’élimination des doublons.IUT de Nice - Cours SGBD176Prix1000200030004000

RESTRICTIONLa restriction d'une relation R1 est une relation R2 demême schéma n'ayant que les n-uplets de R1 répondantà la condition énoncéeOn notera :R2 σR1 (condition)la restriction d'une relation R1 suivant le critère"condition"où "condition" est une relation d'égalité ou d'inégalitéentre 2 attributs ou entre un attribut et une valeurÎ La restriction permet d'extraire les n-uplets quisatisfont une condition Elle correspond à un découpage horizontal :A1IUT de Nice - Cours SGBD1A2A377A4

Requête 3 :« Quelles sont les produits de marque ‘IBM’ ? »PRODUIT (IdPro, Nom, Marque, rosoftPrix1000200030004000σPRODUIT (Marque ’IBM’)IdProNomMarquePRPS1PS2IBMIBMIUT de Nice - Cours SGBD178Prix10003000

JOINTURELa jointure de deux relations R1 et R2 est une relationR3 dont les n-uplets sont obtenus en concaténant les nuplets de R1 avec ceux de R2 et en ne gardant queceux qui vérifient la condition de liaisonOn notera :R3 R1 R2 (condition)la jointure de R1 avec R2 suivant le

IUT de Nice - Cours SGBD1 5 Des fichiers aux Base de Données La multiplication des fichiers entraînait la redondance des données, ce qui rendait difficile les mises à jour. D'où l'idée d'intégration et de partage des données Séparation des données et des programmes