Chap 1 Et Chap 2

download Chap 1 Et Chap 2

of 75

Transcript of Chap 1 Et Chap 2

Base de donnes

Livres de Support Gardarin, G. Bases de Donnes. Eyrolles. Grand classique Delmal, P. SQL2. De Boeck. Classique aussi, SQL dOracle surtout MsAccess 2007 cest facile (ou tout livre titre similaire). Tout livre de prise en main rapide Gabillaud, J. SQL Server 2008. Edition ENI. Livre pratique2

Plan1. Concepts de base 2. Le modle de donnes Entit-Association (E.A.) 3. Traduction dun modle Entit - Association en modle relationnel 4. Normalisation dune base de donnes relationnelle 5. Algbre relationnelle 6. SQL3

Chapitre 1: Concepts de base

4

Plan Quest-ce quune base de Donnes ? A quoi cela sert-il ? Comment a marche ? Types d'utilisateurs

5

Dfinitions

DfinitionsUne base de donnes est un ensemble structur de donnes enregistres dans un ordinateur et accessibles de faon slective par plusieurs utilisateurs.

7

DfinitionsLes bases de donnes hirarchiques :

le premier systme de base de donnes a t conu pour la gestion des donnes du programme Apollo de la NASA. Les donnes taient structures dans des hirarchies, comparables l'organisation des rpertoires sur un PC. Mais certains problmes de stockage ont men utiliser (et donc inventer) des bases de donnes de type rseaux.Segment Racine 1 Segment Racine 2

Segment A

Segment B

Segment C

Segment A1

Segment B1

Segment B2

8

DfinitionsLes bases de donnes rseaux :

ce modle permet d'tablir des liaisons de type 1-n en dfinissant des associations entre tous les types d'enregistrements.

Segment Racine 1

Segment Racine 2

Segment A

Segment B

Segment C

Segment A1

Segment B1

Segment BC

9

DfinitionsLes bases de donnes relationnelles :

Invent par E.F. Codd ce systme propose de stocker des donnes htrognes dans des tables et permettant d'tablir des relations entre elles. Depuis les annes 80, cette technologie a mri et a t adopte par l'industrie. En 1987, le langage SQL, qui tend l'algbre relationnelle, a t standardis. l'heure actuelle, les SGBDR (Systme de Gestion de Base de Donnes Relationnelles) sont prsents dans de nombreux logiciels, sont trs utiliss dans les bases de donnes et reprsentent une industrie de plusieurs milliards de dollars.10

DfinitionsLes bases de donnes orientes objet

les donnes sont reprsentes sous forme d'objets persistants. Les donnes semi-structures peuvent se voir comme une relaxation du modle relationnel classique, un des fondements des bases de donnes traditionnelles, dans lequel on autorise une structure moins rigide et homogne des . Ce modle de donnes c'est rvl trs utile dans la reprsentation de familles de documents varis: multimdia, hypertexte, donnes scientifiques, ....11

Les bases de donnes semi-structures

Dfinitions SGBDUn logiciel qui permet d'interagir avec une base de donnes s'appelle un Systme de Gestion de Base de Donnes (SGBD).

12

Fonctions d'un SGBDDcrire les donnes qui seront stockes Manipuler ces donnes (ajouter, modifier, supprimer) Consulter les donnes et traiter les informations obtenues (slectionner, trier, calculer,...) Dfinir des contraintes d'intgrit sur les donnes (contraintes de domaines, d'existence,... ) Dfinir des protections d'accs (mdp, autorisations,...) Rsoudre les problmes d'accs multiples aux donnes (contrle de concurrence)13

Types de SGBD SGBD hirarchique : les donnes sont reprsentes dans la base sous la forme d'un arbre la structure d'arbre utilise des pointeurs et dtermine le chemin d'accs aux donnes SGBD rseau : les donnes sont reprsentes dans la base sous la forme d'un graphe quelconque la structure de graphe utilise des pointeurs et dtermine le chemin d'accs aux donnes14

Types de SGBD (2) Pour les SGBD hirarchiques et rseaux, les programmes: ne sont pas indpendants de la structure logique de la base doivent indiquer le chemin d'accs aux donnes utilisent un langage complexe pour travailler avec les donnes15

A quoi cela sert-il ?

16

A quoi cela sert-il ?Une base de donnes permet de mettre des donnes la disposition d'utilisateurs pour une consultation, une saisie ou bien une mise jour, tout en s'assurant des droits accords ces derniers. Cela est d'autant plus utile que les donnes informatiques sont de plus en plus nombreuses.

Une base de donnes peut tre locale, c'est--dire utilisable sur une machine par un utilisateur, ou bien rpartie, c'est--dire que les informations sont stockes sur des machines distantes et accessibles par rseau.17

A quoi cela sert-il ?L'avantage majeur de l'utilisation de bases de donnes est la possibilit de pouvoir tre accdes par plusieurs utilisateurs simultanment.

18

Comment a marche ?

Comment a marche ?

20

Comment a marche ?

21

Comment a marche ?Avec base de donnes Une information n'est stocke qu'une seule fois Une seule base pour toutes les applications mais chaque application ne voit que ce qu'elle doit voir (contrle par les vues)22

Comment a marche ?Les donnes sont enregistres dans des tableaux deux dimensions (lignes et colonnes) appels table. La manipulation des donnes se fait selon la thorie mathmatique des relations. Pour concevoir la base de donnes on va d abord dcrire les donnes que lon veut stocker sans se proccuper de laspect technique du stockage. Cela correspond au modle logique . Cette partie correspond la modlisation des bases de donnes. De nombreux modles existent. Le plus connu est Merise. Des outils permettent de concevoir les modles plus facilement. Par exemple 23 AMC*Designer.

Comment a marche ?Pour faciliter la maintenance et la consistance des donnes, on va stocker ces dernires de manire viter le maximum de redondances.

AEROPORT AER_ID PAY_ID AER_COD

PAYS PAY_ID PAY_COD PAY_LIB

24

Comment a marche ?Dans le schma, la table AEROPORT ne contient pas les informations sur le pays. Elle ne contient quune rfrence sur la table PAYS qui contient les informations sur le pays.

25

Comment a marche ?Pour manipuler la base de donnes, un langage dclaratif a t invent (on prcise ce qui est dsir sans prcis la manire employer) , par opposition, aux langages classiques qui sont impratifs (on impose la mthode pour obtenir le rsultat). On doit disposer dun langage suffisamment riche pour permettre une programmation aise, rduisant le nombre et la complexit des instructions de programmation. C est le langage SQL.26

Types d'utilisateurs L'administrateur de la base est charg : du contrle de la base de donnes, en particulier, permettre l'accs aux donnes aux applications ou individus qui y ont droit de conserver de bonnes performances d'accs ces donnes des sauvegardes et des procdures de reprise aprs les pannes27

Le programmeur crit des applications qui utilisent la base de donnes il cre les tables et les structures associes (vues, index,...) utilises par ses applications L'utilisateur final n'a accs qu'aux donnes qui lui sont utiles en interrogeant directement les tables ou vues sur lesquelles l'administrateur lui a accord des droits28

Conception dune BD

29

Les tapes de la conception dune base de donnesMonde rel

Modlisation Conceptuelle

Modle entit- association

Schma conceptuel (dans un modle de donnes de haut niveau)

Indpendant du SGBDTransformation dans Un modle support Par un SGBD

Modle relationnel

Spcifique du SGBD

Schma conceptuel (dans un modle de donnes spcifique dun SGBD)

Dfinition de la structure des donnes de la base

Structure de la BD sur ordinateur

30

Conception dune BD1. Un modle conceptuel : le modle entit- association

2. Le modle relationnel :2.1. Dfinition 2.2. Rgles de traduction 2.3. Dpendances entre donnes et formes normales31

Niveau de description dune base Externe : modlisation des diffrentes visions de la base par les utilisateurs Conceptuel : structure globale des donnes de la base qui intgre les diffrentes visions externes, sans se soucier des contraintes (de performance ou autres) lies limplantation Interne : manire dont la base est implante sur les ordinateursVue externe Vue externe Vue externe

conceptuel

interne32

Base de donnes & Entreprise

Base de donnes

Bnfices/Contraintes pour lentreprise

34

Bnfices/Contraintes pour lentrepriseUne base de donnes pertinente et trs dtaille permet l'entreprise de rpondre plus rapidement aux attentes de ses clients existants ou potentiels. Matrise de la reprsentation de donnes complexes Permet de reprsenter des informations trs diverses, trs complexes, relevant de diffrents domaines ( l'intrieur de l'entreprise) et malgr tout interdpendantes. Matrise des accs personnaliss Permet de mettre disposition des informations cibles. 35

Bnfices/Contraintes pour lentrepriseMatrise des traitements Ds lors que la masse d'information est riche, complexe, en constante volution, accessible de multiples intervenants; les traitements auxquels seront soumis ces informations auront tendance tre galement riches et complexes. Alors que dans des contextes plus restreints, avec une moindre diversit de situations, les traitements seront souvent plus simples.36

Bnfices/Contraintes pour lentrepriseNcessit davoir une personne comptente au sein de lentreprise.

37

Base de donnes

Impacts pour lentreprise

38

Impacts pour lentrepriseChoisir un responsable qui devra :

Mettre en place des conventions de nommage; Tenir jour un rfrentiel des donnes; tre garant de la validit des sauvegardes; tre capable d'administrer la base de donnes;

39

Base de donnes

Quelles sont les questions se poser ?

40

Quelles sont les questions se poser ?Volume des donnes grer; Frquence d'accs aux donnes, frquence de consultation; Quelle interface de consultation ? Liens entre les diffrentes donnes grer; Quels sont les besoins en terme de reporting ? Les droits sur les donnes.41

Base de donnes

cueils viter

42

cueils viterLes utilisateurs ne doivent pas continuer utiliser des fichiers dcentraliss sur leur poste.Il faut changer les habitudes pour que le rfrentiel soit la seule source de donnes jour; Ne pas ngliger les procdures de sauvegarde; Ne pas ngliger dans les cots de mise en place des procdures de reprise des donnes existantes; Ne pas choisir un outil surdimensionn par rapport aux besoins.43

Chapitre 2

Le modle de donnes Entit-Association (E.A)

44

IntroductionEn anglais: Entity-Relationship (ER) Modle de donnes > dcrire la ralit perue travers les donnes mises en jeu (indpendamment des oprations que lon effectuera ultrieurement dessus). But: fournir des outils et un cadre rigoureux pour lanalyse des donnes et de leurs liaisons.

Concepts de base: entit, association, attribut et valeur (et type de valeur).45

Exemple: la modlisation conceptuelle de la publication des articles de journaux

Optique: conception dune base de donnes destine conserver des descriptions darticles parus dans les journaux.Ralit perue: (1) Un diteur dite des journaux. Il est caractris par un nom et une adresse. (2) Un journal est dit par un diteur et publie des articles dans ses numros. On conservera le nom du journal et le nom de son rdacteur en chef. (3) Un numro de journal contient une collection darticles. (4) Chaque article paru dans un numro est sign par un auteur. On dsire conserver le titre et un rsum de larticle ainsi que le nom de son auteur. (5) Les auteurs sont connus par leur nom, leur prnom, leur adresse et leur date de naissance.46

Entit, attribut et valeur (1) Dfinition:

Une entit est une chose concrte ou abstraite de la ralit perue propos de laquelle on veut conserver des informations. Une entit a une existence autonome.

47

Entit, attribut et valeur (2)Chaque entit possde des proprits particulires appeles attributs. Dfinition: Un attribut est une caractristique ou une qualit dune entit ou dune association. Il peut prendre une (ou plusieurs) valeur (s). Une valeur est un symbole utilis pour reprsenter un fait lmentaire.

48

Entit, attribut et valeur (3) Exemple dentit avec ses valeurs dattributNom = Ali

Prnom = ABD

e1

Adresse = MonastirDate de naissance = 12 nov 1985

Les attributs peuvent tre:- atomiques. Ex: Prnom, nom, ... - composs. Ex: Date de naissanceJour Mois Anne

- monovalu (une seule valeur pour une entit donne). Ex: Nom, Adresse, Date de naissance. - multivalu (plusieurs valeurs pour une entit Donne). Ex: Prnom.

49

Avantages et Inconvnients du modle entit-associationAvantages + Simple + Suffisamment puissant pour reprsenter des structures relationnelles + Reprsentation graphique facilitant sa comprhension Mais - Ne propose que des structures : pas doprations - Peut mener certaines ambiguts pour des schmas complexes50

AssociationUne association entre entits est une association perue dans le rel entre deux ou plusieurs entits. Une association est dpourvue dexistence propre.Une commande est lie au client qui la passe ; il existe donc une association entre cette commande et ce client.51

Association Exemple

52

Proprits dune association : a) Classe fonctionnelle dune association Cette proprit dcrit le nombre maximum doccurrences de lentit B pour chaque occurrence de lentit A et inversement. On est ainsi amen dfinir trois classes fonctionnelles dassociations : un plusieurs, un un et plusieurs plusieurs. - Association de type 1:1 (ou un--un) : si une occurrence de lentit E peut correspondre par l'association A au plus une occurrence de lentit F et que, rciproquement une occurrence de lentit F ne peut correspondre au plus qu'une occurrence de lentit E. - Association de type 1:n (ou un--plusieurs) : si une occurrence de lentit E peut correspondre par l'association A plusieurs occurrences de lentit F mais une occurrence de lentit au plus une occurrence de lentit E. - Association de type n:n (ou plusieurs--plusieurs) : si une occurrence de lentit E peuvent correspondre plusieurs occurrences de lentit F et rciproquement. 53

AssociationDimension dune association : Cest le nombre dentits participant une association.

Une association entre deux entits est appele association binaire. Une association entre trois entits est appele association ternaire. Une association entre n entits est appele association n-aire.54

Association non binaire (1)

Sur un exemple issu du cinma, lentit Projections est uniquement entoure dassociations dont les cardinalits maximales sont 1 ct projections et n de lautres ct. De plus, la donne dun crneau, dun film et dune salle suffit dterminer une projection unique. On peut donc la remplacer par une association Projeter branche 55 aux trois entits salles, crneaux horaires et films. On parle dassociation ternaire.

Association non binaire (2)La difficult de concevoir une association ternaire (ou plus) directement est dtablir les bonnes cardinalits. Il est donc conseill de passer par un schma entits-associations dans le quel on ne trouve que des associations binaires, puis de reprer les entits remplaables par des associations. Contre-exemple: lentit dparts nest pas remplaable par une association ternaire

56

Association non binaire (3)Une association peut tre branche plus de trois entits. Il faut vrifier les cardinalits sur un schma intermdiaire faisant apparatre la place une entit occupation et quatre associations binaires. Exemple dassociation quaternaire ou 4-aire

57

Associations pluriellesDeux mme entits peuvent tre plusieurs fois en associations. Dans lexemple suivant issu dune agence immobilire, une personne peut tre propritaire, rsider principalement ou rsider secondairement dans un logement gr par lagence. Les logements qui ne sont pas grs par lagence ne figurent pas dans lentit des logements, ce qui explique certaines cardinalits 0 du schma. Nous supposons galement quun logement nest dtenu que par une seule personne et que ce propritaire figure obligatoirement dans lentit des personnes

58

Association rflexive (1)Cest une association dune entit sur elle-mme. En effet, il est parfaitement possible dtablir une association entre une entit et elle-mme, dfinissant par l une association cyclique. Exemple 1: pour traduire le fait que Irne Curie est la fille de Marie Curie on pourra utiliser une association A-POUR-MERE entre les deux entits reprsentant ces personnes. A-POUR-MERE PERSONNE___________________PERSONNE59

Association rflexive (2)Exemple 2:

Dans cet exemple, tout employ est dirig par un autre employ (sauf le directeur gnral) et un employ peut diriger plusieurs autres employs, ce qui explique les cardinalits sur le schma. 60

CardinalitLa cardinalit dune entit par rapport une association sexprime par deux nombres appels cardinalit minimale et cardinalit maximale. La cardinalit minimale (gale 0 ou 1) est le nombre de fois minimum quune occurrence dune entit participe aux occurrences de lassociation. La cardinalit maximale indique le nombre de fois maximum quune occurrence de lentit participe aux occurrences de la relation.61

CardinalitRemarque: Le minimum m peut valoir 0, 1 ou un entier strictement plus grand que 1. Le maximum M peut valoir 1 ou une valeur n>1, n ntant souvent pas prcis de manire numrique, faute de connaissance suffisante.

62

CardinalitExemple: Lassociation Appartient entre PROPRIETAIRE et VEHICULE a pour cardinalits (0,n) du ct de lentit VEHICULE et (1,n) du ct de lentit PROPRIETAIRE car certains vhicules sont abandonns (0,n) mais il faut possder au moins un vhicule pour tre propritaire (1,n).

Exemple dassociation de type n : m

63

CardinalitContrainte dIdentit Fonctionnelle (CIF): Quand on dtermine, entre une association et une entit, une cardinalit prsentant les valeurs 0,1 ou 1,1, lassociation est particulire. On l'appellera alors Contrainte didentit fonctionnelle (CIF) : Cette association particulire nest en gnral pas nomme. Elle indique que lune des entits est totalement dtermine par la connaissance de lautre ; par exemple si on connat une commande bien prcise, on connat un client bien prcis...

64

IdentifiantChaque individu dune entit doit tre identifiable de manire unique. Toutes les entits doivent possder un attribut sans doublon (d ne prenant pas deux fois la mme valeur). Un identifiant est toujours soulign dans lentit

65

Diagramme Entit-AssociationUn diagramme Entit-Association (E/A) dcrit la structure d'ensemble d'une base de donnes en combinant les objets graphiques suivants :

des rectangles qui reprsentent des ensembles d'objets, c'est--dire des entits concrtes ou abstraites (par exemple : lecteur, ouvrage, compte bancaire, client...) des attributs relatifs aux entits (le nom, l'adresse, le titre, la cote, numro,...) des ellipses, qui reprsentent des associations ("a emprunt", "possde le compte", "suit le cours de",...) des rles qui relient les entits aux associations annots par les cardinalits.

Dans ce diagramme les identifiants sont souligns.66

Diagramme Entit-AssociationExemple 1 : Base de donnes commerciale

67

Diagramme Entit-AssociationExemple 2 : Base de donnes matrimoniale

68

Diagramme Entit-AssociationExemple 3 : Base de donnes denseignement

69

Gnralisation et hirarchie (1)Un ensemble dentits E1 est un sous-ensemble de E2 si toute occurrence de E1 est aussi une occurrence de E2. Lensemble dentits E1 hrite des attributs de E2. Un ensemble dentits E est une gnralisation de E1, E2, En si chaque occurrence de E est seule entit E1, E2, ..., En. Les ensembles E1, E2, ..., En sont des spcialisations de lensemble dentits E. Les ensembles dentit E1, E2, En hritent des attributs de E et possdent en outre des attributs spcifiques qui expriment leur spcialisation.Notation "EST-UN" (IS A) : B "EST-UN" A si lensemble A est une extension de B ou B un cas particulier de A. 70

Gnralisation et hirarchie (2)

71

Gnralisation et hirarchie (3)

72

Gnralisation et hirarchie (4)

73

ExempleUn avion a un numro d'immatriculation, un type et une localisation (la ville de l'aroport d'attache de l'avion). Chaque type d'avion est dcrit par son nom (Boeing 747, Airbus A340 ...), son poids, sa capacit et son rayon d'action. Un technicien de la compagnie a un nom, un matricule, une adresse (la ville de rsidence), un numro de tlphone, un salaire et est expert sur un ou plusieurs types d'avion pendant une priode donne (date dbut et date fin). Un pilote est dcrit par les mmes attributs qu'un technicien. De plus il doit passer un examen mdical annuel. Chaque avion doit galement passer un certain nombre de tests de bon fonctionnement. Chaque test a un numro qui l'identifie, un nom et une valeur minimale (un seuil atteindre). Nous souhaitons conserver la date et l'tat de chacun des tests. Chaque vol est command par un seul pilote et concerne un seul avion. Un vol a une ville de dpart (ville_dep) une ville d'arrive (ville_arr) et une heure de dpart (h_dep) une heure d'arrive (h_arr) 74

75