institut national de statistique et d’economie appliquée ... · cours de bases de données 1er...
TRANSCRIPT
CoursdeBasesdedonnées
1er année,FilièreInformatique2016/2017
Pr.ImadeBENELALLAM
1Cours deBasesdedonnées
InstitutNationaldeStatistiqueetd’EconomieAppliquée
Informationssurlecours• Organisation:– Volumehorairede36h(Cours+TD/TP);– 6h/Semaine;
• Supportdecours:– Déposésurwww.benelallam.org (avantlaséanceducours);
– PPTet/ouNotesdecours;• Remisesàjourfréquentes.
• PossibilitédecertificationOracleenIEEE– http://www.computer.org/web/education/knowledgecenters
Cours deBasesdedonnées 2
Sourcesbibliographiques
• AndreasMEIER:“Introductionpratiqueauxbasesdedonnéesrelationnelles”,Springer-Verlag,2006
• RamezELMASRI&Shamkant NAVATHE:“Conceptionetarchitecturedesbasesdedonnées”,PearsonEducation,2004
Cours deBasesdedonnées 3
Planducours
Chapitre1:LesconceptsfondamentauxdesBasesdeDonnées
Chapitre2:LemodèleabstraitdesbasesdedonnéesChapitre3:Lemodèle relationnelChapitre4:Leslangagesdemanipulationdedonnées
: l'exempledeS.Q.L.(Oracle)Chapitre5:Lesdépendances fonctionnellesChapitre6:Lesformes normalesChapitre7:Lagestion desaccès concurrents
Cours deBasesdedonnées 4
Evaluation
– 70% :• Examenfinal.
– 30% :• Contrôlecontinu.• Unenotedeminiprojet.• Unenotedeparticipationincluantl’assiduitéetlaréalisationdesTPs.
Cours deBasesdedonnées 5
Chapitre1Lesconceptsfondamentauxdes
BasesdeDonnées
Cours deBasesdedonnées 6
InformationetDonnée
Cours deBasesdedonnées 7
q Uneinformation,c’estunedonnéequiaunsenspourceluiquienabesoin.q Uneinformationestlerésultatdetraitementd’unedonnée.q Uneinformationestensemblecomplexe,composédedonnéesetdeliens.q Uneinformationdécritunévénement,uneactivitéouunfait.q Plusieursmodèlespossibles.
Le modèle est connu, l’interprétation donne du sens aux données
Le modèle est inconnu, le sens est plus difficile à percevoir ou incomplet
InformationetDonnée
Cours deBasesdedonnées 8
• L’informationdoitêtre• extraite,• stockée,• traitée,• maintenue…
c’estlatâched’unsystèmed’information!
Systèmed’information
• UnSystèmed'Information(notéSI)représentel'ensembledesélémentsparticipantdanslagestion,letransport,letraitementetladiffusiondel'informationauseindel'organisation.
• Intimementliéàlagestiondedonnées,• Séparationentrel'organisationdustockagedel'informationetlaréalisationdesprogrammesd'application.
• Unchangementd'applicationnedoitpasaffecterlastructureélaboréepourstockerlesdonnées
Cours deBasesdedonnées 9
ExemplesdeSI
• Gestiondespersonnels,étudiants,cours,inscriptions,
• Systèmederéservationdeplacesd'avion• Gestiondescomptesclientsd’unebanque• Gestiondescommandesd’unesociété• ...
Cours deBasesdedonnées 10
Besoins?• Besoinsdedescription• Besoinsdemanipulation• Besoinsd’interrogation• Besoinsd’exactitude/
cohérence• Besoinsdegaranties• Besoinsdeconfidentialité• Besoinsd’efficacité• ….
Quelmoyen?
Cours deBasesdedonnées 11
Introductionauxbasesdedonnées
• Définition(basededonnées): C’est unensemblededonnées structurées etinter-reliées quisont fiables,correctes,cohérentes etpartageable parplusieursutilisateurs ayant desbesoins d’informations différentsetcela sous lecontrôle d’une autorité uniquequiestl’administrateur delabasededonnées.
• vs.Ensembledefichiers– Lourdeurd’accèsauxdonnées– Manquedesécurité– Pasdecontrôledeconcurrence
Cours deBasesdedonnées 12
Introductionauxbasesdedonnées
• Certainsauteurs,spécialistesdelaquestion,netententpasdedonnerunedéfinitiondelabasededonnées,maisplutôtdel'ensembledelogicielsquirangent,recherchent,assemblent,modifient, ...lesdonnées.
• Cetensemble, indépendant ducontenudelabase,constituele SystèmedeGestiondeBasedeDonnées (SGBD)(enanglais:DBMS:DataBaseManagementSystem).
Cours deBasesdedonnées 13
Introductionauxbasesdedonnées
• Définition(SGBD):Unoutilinformatiquepermettantauxutilisateursdestructurer,d’insérer,demodifier,derechercherdemanièreefficacedesdonnéesspécifiques,auseind’unegrandequantitéd’informations,stockéessurmémoiressecondairespartagéedemanièretransparenteparplusieursutilisateurs.
Lesbasesdedonnéessedifférencient,dupointdevuedeleursperformances,nonparlesdonnéeselles-mêmesmaisbienévidemmentparleurSGBD.
Cours deBasesdedonnées 14
Introductionauxbasesdedonnées
L'historiquedesbasesdedonnéesn'estd'ailleursquecelledesSGBD:• 1960- 1965:apparitiondesmémoires auxiliaires magnétiques (
disques);développement delathéorie desfichiers• 1965- 1970:premièresbasesdedonnées,àstructure
hiérarchique,àstructureréseau (recommandations duCODASYL).• 1970- 1980:commercialisation desbasesdedonnées dutype
précédent ;développement delathéorie desbasesdedonnéesrelationnelles (Codd).
• 1980- 1983:implantationdespremièresbasesdedonnéesrelationnelles (même sur petits systèmes)
• 1983- 1992:nombreuxdéveloppementssurlesbasesdedonnées:théoriques(objets)oupratiques(réseauxetbasesréparties)voirconceptuels(infocentres)
Cours deBasesdedonnées 15
Pourquoi lesSGBD?• AvantlesSGBD:écrituredeprogrammespardesprogrammeursd’applicationutilisantlesystèmedegestiondefichierspourgéreretexploiterlesdonnées :– Risquesliésaumanquedesécurité+multiplicationdesefforts(programmessimilairesécritsdansdifférentsservicespourdesbesoinsproches).
• Conséquences:– Redondances :fichierscontenantlesmêmesdonnées,maisutiliséespardespersonnesdifférentes,
– Risqued’incohérences :dufaitdesredondancesetdesMAJnoncentralisées
Cours deBasesdedonnées 16
Pourquoi lesSGBD?
– Lesdonnéessontstockéessousdifférentsformats.– Intégrité desdonnées:Nonrespectdecontraintesquidoiventêtreprogrammées(ex:contrôlessurdatedenaissance,surcodepostal,numérodetél.,...),
– Problèmesliésàla sécurité :utilisateursdedifférentsniveauxd’expérienceetavecdifférentsdroitsd’accès=>motsdepasse,
– Problèmesliésau partage desdonnées:accèsenlecture/écriture.
Cours deBasesdedonnées 17
Pourquoi lesSGBD?
• Concurrencesetmultiplicitédesremisesàjour– Lestraitementsconcurrentspeuventgénérerdeserreurs.• Ex:Misesàjourd'uncompteenmêmetemps
– soldede400$– T1:dépôtde300$– T2:retraitde500$– siT1avantT2:400$,700$,200$OK– siT2avantT1:400$,-100$,200$ERREUR!!!
– Nécessiteunprogrammesuperviseurpourgérerlestransactions
Cours deBasesdedonnées 18
Pourquoi lesSGBD?Ex:Considéronsdeuxtransactionsfaisantuneréservationd'uneplaced'avion,alorsqu'iln'yaplusqu'uneplacededisponible.Lesdeuxtransactionspourrontnéanmoinseffectuerlesdeuxréservations,conduisantàuneincohérencedelabasededonnées.
Cours deBasesdedonnées 19
Pourquoi lesSGBD?
• Plusieursproblèmespeuventainsiseposerlorsquedestransactionsconcurrentess'exécutentdemanièrenoncontrôlée.– Pertedemiseàjour :
Cours deBasesdedonnées 20
Pourquoi lesSGBD?
– Lecture impropre(Dirty read)
Cours deBasesdedonnées 21
Pourquoi lesSGBD?
– Lecture nonreproductible
Cours deBasesdedonnées 22
Caractéristiques,qualités etpropriétésdesbasesdedonnées
• Voiciuneliste,nonlimitative,descaractéristiquesquedoit(oudevrait)apporterunebasededonnéesparrapportàuneorganisation"fichier"classique:– exhaustivité desinformations– non-redondance desinformations– partage desinformations– standardd'organisation– sécurité desinformations– intégrité desinformations– indépendance desinformations visàvisdesapplications
Cours deBasesdedonnées23
Caractéristiques,qualités etpropriétésdesbasesdedonnées
• Exhaustivité:Lesinformationscontenuesdanslabasedoiventêtresuffisammentcomplètespourquelesapplicationsprévuespuissentfonctionner.
• Exemple :dansuneentreprisecommerciale,l'éditiond'unefacturesupposequelabasededonnéescontiennedesinformationssur:– leclient(nom,adresse,conditionsdevente,...)– lacommande(date,numéro,articlesdemandés,références,quantités,...)
– lesarticles(référence,quantitéenstock,prixunitaire,tauxdeTVA,....)
– lalivraison(date,articleslivrés,articlesrestantàlivrer,...)
Cours deBasesdedonnées 24
Caractéristiques,qualités etpropriétésdesbasesdedonnées
• Nonredondance:Danslamesuredupossible,lamêmeinformationnedoitpasfigurerplusieursfoisdanslabasededonnées.Celaconduiraiteneffet:– àgaspillerdelaplacedestockage(espacedisque)– àeffectuerdesmisesàjourcomplexes
Cours deBasesdedonnées 25
Caractéristiques,qualités etpropriétésdesbasesdedonnées
Cours deBasesdedonnées 26
Caractéristiques,qualités etpropriétésdesbasesdedonnées
Cours deBasesdedonnées 27
Caractéristiques,qualités etpropriétésdesbasesdedonnées
Cours deBasesdedonnées 28
Caractéristiques,qualités etpropriétésdesbasesdedonnées
Cours deBasesdedonnées 29
Caractéristiques,qualités etpropriétésdesbasesdedonnées
Cours deBasesdedonnées 30
Caractéristiques,qualités etpropriétésdesbasesdedonnées
• Partagedesinformations:Lesinformationscontenuesdanslabasededonnéesdoiventêtreaccessiblesàplusieursutilisateurssimultanés.L'intérêtestévident:lacentralisationdesdonnéesestunmoyenéconomiquedesatisfairelesbesoinsd'ungrandnombred'usagers.
Cours deBasesdedonnées 31
Caractéristiques,qualités etpropriétésdesbasesdedonnées
• Lepartagedesinformationsposecependantdeuxproblèmesprincipaux:– lasécuritédesdonnées– lesaccèsconcurrentsàuneinformation
• Cesproblèmesserontexaminésdansdeschapitresspécifiques.
Cours deBasesdedonnées 32
Caractéristiques,qualités etpropriétésdesbasesdedonnées
• Sécuritédesinformations:L’ABD,etlui-seul,autorisel'accèsauxinformations.Concrètement, cetteautorisationconsisteen:– l'accèsàunepartiebiendéfiniedelabasededonnées
– lapossibilitéd'yeffectuerdesopérationsbiendéfinies.
Cours deBasesdedonnées 33
Caractéristiques,qualités etpropriétésdesbasesdedonnées
• Intégritédesinformations:Lesinformationscontenuesdanslabasededonnéesdoiventêtreexactessil'onveututilisercelle-cidemanièreefficace.
• Danslapratique,l'exactitudeabsoluen'existepas(lefameux0défaut).Onpeuttoutauplusaméliorerlaqualitéd'intégrité.
Cours deBasesdedonnées 34
Caractéristiques,qualités etpropriétésdesbasesdedonnées
• Undesavantagesdesbasesdedonnéesparrapportàunegestiondefichierstraditionnellerésidedanslapossibilitéd’intégrerdescontraintesquedoiventvérifierlesdonnéesàtoutinstant.– Exemple:onsouhaiteposerlescontraintessuivantes:– lenombred’exemplairedechaqueOUVRAGEdoitêtresupérieurà0(zéro)– ChaqueOUVRAGEdoitavoiraumoinsunauteur– Etc.
• Ceciestpossiblegrâceàlanotiondecontraintesd’intégrité• Définition :Contraintesd’intégrité«sontdesassertionsqui
doiventêtrevérifiéesàtoutmomentparlesdonnéescontenuesdanslabasededonnées»
Cours deBasesdedonnées 35
Caractéristiques,qualités etpropriétésdesbasesdedonnées
• Indépendancedesinformationsvis-à-visdesapplication:cette propriété permetessentiellement dedifférencier une structure"classique"d'une structurede"basesdedonnées".
Cours deBasesdedonnées 36
Architectured'une basededonnées
• VuesdelaBD– SchémasExternes(ES)• Lesvuespartielles• L4G:Lang.de4° génération
– Schémaconceptuel(CS)• DéfinitionlogiquedelaBD;Structuresettypes(LDD)• Manipulations(LMD)
– Schémainterne(IS)• Représentationphysique• Optimisations
Cours deBasesdedonnées 37
Architectured'une basededonnées
• Le niveauinterne estdéfiniparleschémaphysiquequiindiquecommentl'informationestenregistréesurlesmémoiresauxiliaires.
• Ceschémautilisedonclestermesdefichiers,d'index,d'adressages,etc...
• Leniveauinternedécritdoncuneréalitéphysique(enfaitlaseuledetoutel'architecture),lesautresniveauxcorrespondantàdesnotionsentièrementabstraites.
Cours deBasesdedonnées 38
Architectured'une basededonnées
• Le niveauconceptuel estdéfiniparunschémaconceptueldontlerôleestdedéfinirlesrèglesdedescriptiondesdonnéesetdesrelationsentrecesdonnées.
• End'autrestermes,leschémaconceptuelestunemodélisationdesobjetsdumonderéel.Onl'appelled'ailleursmodèlededonnées.
• Onconnaîtjusqu'àprésentplusieurstypesdemodèlesdedonnées:– lemodèlehiérarchique– lemodèleréseau– lemodèlerelationnel– Lemodèleobjet
Cours deBasesdedonnées 39
Architectured'une basededonnées
• Exempled’unschémaconceptuelaveclaméthodeMerise(MCD) :
Cours deBasesdedonnées 40
Architectured'une basededonnées
• Exempled’unschémaconceptuelaveclelangagedemodélisationUML(Diagrammedeclasses) :
Cours deBasesdedonnées 41
Architectured'une basededonnées
• Lepassagedumonderéelauschémaconceptuelcorrespondàunprocessusdemodélisation.
• Leprocessusdemodélisationsefaitàl’aided’unmodèlededonnées.
• Lamodélisationseréaliseentroisétapesprincipalesquicorrespondentàtrois niveauxd’abstractiondifférents :
Cours deBasesdedonnées 42
Architectured'une basededonnées
• Le niveauexterne contrairementauxprécédentsniveauxcorrespondàplusieursschémasexternesquinesontautresquelesvues(partielles)qu'ontlesdifférentsutilisateursdelabasededonnées.
• Lesschémasexternesnesontquedessous-schémasduschémaconceptuel;
• Quelquefois,ilssontplusquecela:ilspeuventpermettre,parexemple,defournirdesinformationsquin'existentpasentantquetellesdansleschémaconceptuel,maisquipeuventêtreobtenues(calculées)àpartird'informationsexistantes.
• Encesens,l'uniondetouslesschémasexternespeutconstituerun"recouvrement"duschémaconceptuel.
Cours deBasesdedonnées 43
Architectured'une basededonnées
• Onremarque,surceschéma,quel'architecturecomprend3grandsniveaux:interne,conceptuel,externe.(ArchitectureANSI-SPARC)
Cours deBasesdedonnées 44
SGBD:Objectifs• UnSGBDestdoncfondamentalepourgérercesdifférentsniveaux
!• Indépendancephysiquedesprogrammesetdesdonnées:
– Pouvoirmodifierlesschémasinternessansmodifierlesschémasconceptuelsetexternes
• Indépendancelogiquedesprogrammesetdesdonnées:– Pouvoirmodifierlesschémasexternessansmodifierlesschémas
conceptuels– Indépendanceentrelesdifférentsutilisateurs
• Manipulationdesdonnéespardeslangagesnonprocéduraux– Donnéesfacilementmanipulablesparlesutilisateurs(interactifsou
programmeurs)• Administrationfaciledesdonnées
– Outilspourdéfiniretmodifierlesdéfinitiondedonnées
Cours deBasesdedonnées 45
SGBD:Objectifs• Efficacitéd’accèsauxdonnées:
– Optimisation:tempsderéponse,débit,...– Optimisationdesopérationsd’E/S
• Redondancecontrôléedesdonnées:– DanslesBDréparties:redondancenécessaire,maiscontrôlée
• Cohérencedesdonnées– Satisfactiondecontraintesd’intégrité
• Partagedesdonnées– Permettrelesaccèsconcurrents
• Sécuritédesdonnées– Outilspourdéfiniretmodifierlesdéfinitiondedonnées– Protectionencasdepanne(duSGBD,delamachine,...)– Assurerl’atomicitédestransactionsetl’intégritédesdonnées
Cours deBasesdedonnées 46
Architecturesopérationnellesd’unSGBD
• Dupointdevueopérationnel– UnSGBDestunensembledeprocessusetdetâchesquisupportentl’exécutionducodeduSGBDpoursatisfairelescommandesdesutilisateurs.
• Depuislesannées80,lesSGBDsontbaséssurunearchitectureclients-serveur– Serveur:Gèrelesdonnéespartagèes etexécutelecodeduSGBD
– Clients:Communiquentavecleserveur.Requêtesdetypequestion/réponse
Cours deBasesdedonnées 47
Architecturedeuxstrates
Cours deBasesdedonnées 48
Architecturedeuxstrates
Cours deBasesdedonnées 49
Architecturetroisniveaux
Cours deBasesdedonnées 50
Architecturetroisniveaux
Cours deBasesdedonnées 51
Architecturerépartie
Cours deBasesdedonnées 52
Architecturerépartie
Cours deBasesdedonnées 53
Exercices
Cours deBasesdedonnées 54