Vous êtes sur la page 1sur 43

Cours d'informatique Premire anne

Prsentation du contenu de la premire anne


Algorithme : suite finie squentielle de rgles que l'on applique un nombre fini de donnes permettant de rsoudre des classes de problmes semblables Selon le type de problmes rsoudre, on va

utiliser diffrents paradigmes


paradigme impratif :
Caractris par l'affectation qui modifie l'tat de la mmoire Description des objets manipuls (le Quoi) et des traitements (le comment) Le programme ralise une fonction

paradigme relationnel
Description des proprits/relations sur des objets Soumission de questions relatives cette description
2

Prsentation du contenu de la premire anne


tude de ces deux paradigmes
programmation relationnelle utilisation d'un systme permettant de manipuler des donnes Exemple 1: Programmation logique Exemple 2: Base de donnes relationnelle programmation imprative en Pascal

Programmer dans un systme logique


Une vision Programmation logique
Programmer cest poser des questions sur un ensemble de connaissances i.e., la description des objets du domaine et de proprits ou relations sur ou entre ces objets.

Utilisation dun formalisme logique


Programme = des dfinitions de prdicats Axiomes pere (luc,anne). pere (luc, eric). pere (paul, luc).

Rgles gd_pere (X,Y) :- pere(X,Z), pere(Z,Y). X Y Z pere(X,Z) pere(Z,Y) gd_pere(X,Y)

Programmer dans un systme logique


Calcul (requte) = une relation est-elle vrifie ?
gd_pere(paul,eric) ? OK gd_pere(bob,eric) ? KO gd_pere(P1,P2) ? OK {gd_pere(paul, anne), gd_pere(paul, eric)} tonnant ... mais demande un bagage ....
5

Programmer avec des relations


Une vision Base de Donnes Relationnelles L'information est rpartie dans plusieurs relations
permet de garantir la cohrence des donnes

Programme = les dfinitions des relations Calcul (requte) = retrouver les lments qui vrifient un prdicat (une condition)

Motivations
- Une vision diffrente de la programmation - Un consensus sur les aspects mthodologiques - Un enjeu conomique dans le monde de lingnieur
6

Plan de lenseignement de Bases de Donnes


Plan du cours Dcouverte des bases de donnes relationnelle Modle relationnelle Mthodes de manipulation de donnes Un exemple de conception Prsentation d'une implmentation
Access SQL Problmes

Lalgbre relationnelle : la cl du succs Introduction SQL : langage standard


7

COURS 1
Introduction aux bases de donnes relationnelles

Stockage et gestion de linformation


Informatique Science de labstraction Modlisation de problmes Rsolution par des techniques automatisables Un problme important en informatique Stocker, accder, modifier des informations de manire efficace Abstraction Proposer un modle dorganisation de linformation Des mthodes pour Stocker, accder et modifier linformation

Modle d'organisation de donnes

10

Exemple dinformation
Systme dinformation INSA : cas des donnes

lves
Etudiant
Nom de famille Prnom Groupe Bac

Comment modliser ces informations ? Rechercher les invariants


Nom de famille est une chane de caractres Prnom est une chane de caractres Groupe est un entier entre 1 et 40 Bac est un lment de {S, L, ES, ...}
11

Thorie des ensembles

Ensembles et relations
Soient
A lensemble des chanes de caractres B lensemble des entiers entre 1 et 40 C = {S, ES, L, }

Un tudiant est alors un lment du produit

cartsien
AA B C = {(a1,a2,b,c) | a1 A, a2 A, b B, c C} Un lment du produit cartsien est appel tuple.

Dfinition
On appelle relation un sous-ensemble du produit cartsien.
12

Reprsentation dune relation sous forme de table


Nom Besson Pensa Rousselot Ray Prnom Jrmy Ruggero Sophie Henri Groupe 1 1 2 2 Bac S S L L

Une table est caractrise par : Lensemble des noms de colonnes = le schma de la relation le schma est invariant larit de la relation est le nombre de colonnes. Lensemble des lignes qui contiennent linformation = l'extension l'extension reprsente les donnes prsentes un moment donn dans la base 13 Quelle proprit doivent vrifier les lignes du tableau ?

lments de terminologie
Table ou relation : ensemble de lignes.

Ligne ou tuple: suite de valeurs, regroupe des

informations concernant un objet, un fait. Toutes les lignes dune mme table ont un mme format ou structure.

Une colonne de la table est lensemble des valeurs qui

correspondent une mme proprit. Toutes les donnes dune colonne sont de mme type.
14

Lattribut dune colonne permet de dsigner une

proprit de la relation.

Base de donnes
Base de donnes : cest une collection de relations

avec des liens entre celles-ci


collection de donnes ayant une origine commune
Exemple : gestion d'une bibliothque

Quelle proprit doivent vrifier ces liens ?

15

Exemple
ISBN Titre idAuteur NomAuteur Tel Auteur idEditeur NomEditeur 0-103-45 Iliad 3 Homer 333-333-33 1 GrandeEdition 0-11-34 Moby Dick 2 Melville 222-222-22 3 PetiteEdition 0-12-33 On liberty 8 Mill 666-666-55 1 GrandeEdition 0-13-33 Jane Eyre 1 Austen 236-698-22 3 PetiteEdition 0-358-36 Balloon 13 Sleepy 3458-897-45 3 PetiteEdition 0-358-36 Balloon 11 Snoopy 1258-987-36 3 PetiteEdition 0-358-36 Balloon 12 Grumpy 3687-98-654 3 PetiteEdition 0-55-12 Main Street 10 Jones 123-222-22 3 PetiteEdition 0-55-12 Main Street 9 Smith 123-333-33 3 PetiteEdition TelEditeur 123-456-78 714-000-00 123-456-78 714-000-00 714-000-00 714-000-00 714-000-00 714-000-00 714-000-00 Prix 25,00 19,00 25,00 58,00 26,00 26,00 26,00 34,00 34,00

16

Exemple: une seule table


ISBN Titre idAuteur NomAuteur Tel Auteur idEditeur NomEditeur 0-103-45 Iliad 3 Homer 333-333-33 1 GrandeEdition 0-11-34 Moby Dick 2 Melville 222-222-22 3 PetiteEdition 0-12-33 On liberty 8 Mill 666-666-55 1 GrandeEdition 0-13-33 Jane Eyre 1 Austen 236-698-22 3 PetiteEdition 0-358-36 Balloon 13 Sleepy 3458-897-45 3 PetiteEdition 0-358-36 Balloon 11 Snoopy 1258-987-36 3 PetiteEdition 0-358-36 Balloon 12 Grumpy 3687-98-654 3 PetiteEdition 0-55-12 Main Street 10 Jones 123-222-22 3 PetiteEdition 0-55-12 Main Street 9 Smith 123-333-33 3 PetiteEdition TelEditeur 123-456-78 714-000-00 123-456-78 714-000-00 714-000-00 714-000-00 714-000-00 714-000-00 714-000-00 Prix 25,00 19,00 25,00 58,00 26,00 26,00 26,00 34,00 34,00

17

Exemple

Pourquoi ne met-on pas toutes les informations dans une seule table?

Anomalie de mise jour Anomalie de suppression Anomalie d'insertion

18

Solution table unique ?


Information redondante Volume ? Temps daccs ? Validit ? Mise jour pnible Interrogations pnibles Problmes daccs linformation : problmes lis la recherche dune information, sa lecture, son criture

19

Exemple : plusieurs relations lies


idEditeur NomEditeur TelEditeur GrandeEdition 123-456-78 1 3 PetiteEdition 714-000-00
idAuteur 3 2 8 1 13 11 12 10 9 NomAuteur Homer Melville Mill Austen Sleepy Snoopy Grumpy Jones Smith Tel Auteur 333-333-33 222-222-22 666-666-55 236-698-22 3458-897-45 1258-987-36 3687-98-654 123-222-22 123-333-33

ISBN idAuteur 0-103-45 3 0-11-34 2 0-12-33 8 0-13-33 1 0-358-36 13 0-358-36 11 0-358-36 12 0-55-12 10 0-55-12 9

ISBN Titre idEditeur Prix 0-103-45 Iliad 1 25,00 0-11-34 Moby Dick 3 19,00 0-12-33 On liberty 1 25,00 0-13-33 Jane Eyre 3 58,00 0-358-36 Balloon 3 26,00 0-358-36 Balloon 3 26,00 0-358-36 Balloon 3 26,00 0-55-12Main Street 3 34,00 0-55-12Main Street 3 34,00

20

Rappels
Relation binaire

Soit R un sous-ensemble de AB. On appelle A le domaine et B la porte de la relation.


Fonction

Si R est telle que pour tout a A, il y a au plus un lment b de B tel que aRb, alors R est une fonction de A vers B.
Gnralisation de la notion de fonction plusieurs

ensembles :
f : A1 A2 ... An B1 B2 ... Bm aA1 A2 ... An, soit f(a) n a pas de valeur, soit f(a) est unique et appartient B1 ... Bm
21

Cl : le lien entre les relations


Pour une relation donne, on cherche un ensemble

dattributs (minimal) pouvant servir de domaine pour une fonction.


Cet ensemble dattributs est appel cl. Il existe toujours une cl car les tuples dune

relation sont uniques.


Exemple

22

lments de terminologie
Lun des attributs, ou lassociation de plusieurs

attributs, joue un rle particulier, cest la cl primaire. Elle identifie de manire unique chaque tuple de la table. Une mme valeur de cl primaire ne peut donc pas tre utilise dans deux tuples diffrents. Une cl trangre est constitue dune cl dune autre table, jouant le rle de rfrence un tuple de cette autre table. Les colonnes facultatives Les contraintes rfrentielles : la valeur dune cl trangre dans une table existe dans la table o 23 cette cl est primaire.

Quelques principes des Bases de Donnes


1) Une information nest stocke quune seule fois ou, exceptionnellement, avec une redondance calcule mise jour facile. 2) Lutilisateur na pas se proccuper des questions lies limplantation physique des donnes. Ces questions sont prises en charge par le logiciel : le SGBD. 3) Des critres prcis, les contraintes dintgrit, peuvent tre dcrits par lutilisateur concernant la validit des informations. Ces critres sont systmatiquement contrls par le SGBD de faon 24 assurer lintgrit des donnes.

Quelques principes des Bases de Donnes


Un cycle de vie - des tches distinctes a) Conception et cration de la structure (schma) b) Mise jour de lextension : ajout, retrait ou modification de donnes. c) Exploitation et interrogation (requte)

Remarque : nos objectifs de formation sont (b et c), 25 un peu de (a)

Des mthodes de manipulation des donnes

26

Les oprandes Les relations

Algbre relationnelle pour interroger les donnes

Les oprateurs Opration d'ensemble


Union Intersection Diffrence

La restriction La projection La jointure Calcul dagrgats

27

Manipulation des donnes


Insertion de tuples Mise jour Suppression

28

Un exemple de conception

29

Cycle de vie
Analyse des besoins Spcification conceptuelle

Schma conceptuel (e.g., diagramme E/A)

Spcification logique

schma logique (e.g., relationnel)

Spcification physique schma physique (e.g., Access) Considrons un exemple !

30

Conception : le modle Entit/Association


Modliser une ralit

Gestion du logement des lves : Un lve a une chambre pour laquelle il paye un loyer. Cependant, tout lve na pas obligatoirement une chambre. Une chambre peut tre partage avec un autre lve. Par contre toute chambre a des caractristiques qui permettent de la classer dans une catgorie. La catgorie dfinit le loyer. Intuitivement on reconnat une entit lve , dont les attributs permettent denregistrer des informations relatives chaque lve : nom, anne dtudes, dpartement... Il existe galement une entit qui dcrit les chambres. Ses attributs pourraient tre le btiment, un numro. Enfin une troisime entit correspond aux loyers avec les attributs dsignant le type de chambre (la catgorie) et le montant. Ces entits sont en association les unes avec les autres e.g., chambre est en association avec lve par le fait quun ou deux lves rsident dans une chambre. 31

Conception : le modle Entit/Association


Le modle Entit/Association

Description graphique du modle conceptuel des donnes


lves #numro nom 0,1 rside 0,2 chambres rsidence no 1,1 tarif 0,n loyers type montant

32

Conception : le modle logique relationnel


Un modle relationnel pour organiser les donnes

Une reprsentation graphique pour un schma relationnel conforme la modlisation conceptuelle

logique

Une dfinition en intention : un certain nombre de relations lies entre elles


lves

#numro

nom prnom

dpartement

groupe

rsidence

no_chambre

chambres

rsidence

no_chambre

type_loyer

tat_des_lieux

loyers type montant

On est indpendant dun SGBD particulier mais dpendant dune technologie (le relationnel ).
33

Un systme de gestion de bases de donnes (SGBD)

34

SGBD
1) Assure

lindpendance des programmes aux donnes

2) Langage de manipulation de donnes non procduraux : on spcifie ce que lon veut faire et non pas le comment 3) Assurer la cohrence des donnes
Cohrence des donnes Les donnes redondantes doivent rester gales Partage des donnes Empcher les mises jour concurrentes Scurit des donnes Les droits daccs linformation peuvent tre personnaliss par groupe dutilisateurs, voire pour chaque utilisateur. 35 En cas de panne

Rsultat de la conception : une base Access


Extrait de la base RESIDENT dveloppe en Access:

NB : Problmes : #numro=7 (contraintes dintgrit)

36

Mise jour dune base


Mise jour de lextension
Lorsquon alimente ou on modifie les donnes de la base, le SGBD vrifie que lon respecte les contraintes qui correspondent : la structure de la base e.g., le mme lve ne peut pas avoir deux chambres, au domaine de validit des attributs e.g., un lve ne peut pas loger dans la rsidence M, ...

NB. Il existe gnralement des restrictions sur les droits des utilisateurs mettre jour les donnes.

Les Bases de Donnes sont des rfrentiels pour lorganisation et leurs gestions sont confies des professionnels : les administrateurs.
37

EXPLOITATION: Interrogation par requtes


Un schma physique existe (e.g., un schma Access) et une extension est disponible.
Soumettre des requtes

Quels sont les types et les montants des loyers que lon trouve dans la rsidence A ?

38

EXPLOITATION: Interrogation par requtes


La rponse Access cette requte sur la base RESIDENT est :

Pourquoi plusieurs fois la mme rponse ? Est ce que cette requte donne la (bonne) rponse la question pose? 39 Notion de validation

EXPLOITATION: Interrogation par requtes


La mme question peut tre pose dans le langage SQL (langage

largement rpandu et normalis) : SELECT chambres.rsidence, loyers.type, loyers.montant FROM loyers, chambres WHERE ( (loyers.type = chambres.type_loyer) AND (chambres.rsidence = "A") ) ; La rponse est la mme ... avec les mmes problmes ...
Intrt de SQL :

De trs nombreux langages de programmation sont interfacs vers des bases de donnes via SQL.
40

Problmatique de ralisation d'un SGBD


Rapidit des accs Administration Multi-utilisateurs Accs concurrents Intgrit des donnes

41

Caractristiques souhaitables des SGBD


1- Contrler la redondance d'informations
2- Partage des donnes 3- Grer les autorisations d'accs 4- Offrir des interfaces d'accs multiples 5- Reprsenter des relations complexes entre les donnes 6- Vrifier les contraintes d'intgrit 7- Assurer la scurit et la reprise aprs panne

42

Architecture en trois niveaux


niveau interne ou physique : dcrit le modle de

stockage des donnes et les fonctions d'accs modle conceptuel ou logique : dcrit la structure de la base de donnes globalement tous les utilisateurs (limite la redondance). Ce schma dcrit la structure de la base indpendamment de son implantation niveau externe : correspond aux diffrentes vues des utilisateurs. Chaque schma externe donne une vue sur le schma conceptuel une classe d'utilisateurs.
43