• Aucun résultat trouvé

[PDF] Cours d'informatique : les BD

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Cours d'informatique : les BD"

Copied!
43
0
0

Texte intégral

(1)

Cours d'informatique

Première année

(2)

2

Présentation du contenu de la première année

Algorithme :

– suite finie séquentielle de règles que l'on applique à un nombre fini de données permettant de résoudre des classes de problèmes semblables

Selon le type de problèmes à résoudre, on va

utiliser différents paradigmes

– paradigme impératif :

– Caractérisé par l'affectation qui modifie l'état de la mémoire

– Description des objets manipulés (le Quoi) et des traitements (le comment)

– Le programme réalise une fonction

– paradigme relationnel

– Description des propriétés/relations sur des objets

(3)

3

Présentation du contenu de la première année

Étude de ces deux paradigmes

 programmation relationnelle

– utilisation d'un système permettant de manipuler des données

– Exemple 1: Programmation logique

– Exemple 2: Base de données relationnelle

(4)

4

Programmer dans un système logique

Une vision « Programmation logique »

Programmer c’est poser des questions sur un ensemble de connaissances i.e., la description des objets du domaine et de propriétés ou relations sur ou entre ces objets.

Utilisation d’un formalisme logique

« Programme » = des définitions de prédicats

Axiomes

pere (luc,anne). pere (luc, eric). pere (paul, luc).

Règles

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

(5)

5

Programmer dans un système logique

Calcul (requête) = une relation est-elle vérifiée ?

gd_pere(paul,eric) ? OK gd_pere(bob,eric) ? KO gd_pere(P1,P2) ?

OK {gd_pere(paul, anne), gd_pere(paul, eric)}

(6)

6

Programmer avec des relations

Une vision « Base de Données Relationnelles »

– L'information est répartie dans plusieurs relations

– permet de garantir la cohérence des données – Programme = les définitions des relations

– Calcul (requête) = retrouver les éléments qui vérifient un prédicat (une condition)

Motivations

- Une vision différente de la programmation

- Un consensus sur les aspects méthodologiques

(7)

7

Plan de l’enseignement de Bases de Données

Plan du cours

Découverte des bases de données relationnelle Modèle relationnelle

Méthodes de manipulation de données Un exemple de conception

Présentation d'une implémentation

Access SQL

Problèmes

L’algèbre relationnelle : la clé du succès

(8)

COURS 1

Introduction aux bases de données

relationnelles

(9)

9

Stockage et gestion de l’information

Informatique

Science de l’abstraction

Modélisation de problèmes

Résolution par des techniques automatisables

Un problème important en informatique

Stocker, accéder, modifier des informations de manière efficace

Abstraction

Proposer un modèle d’organisation de l’information Des méthodes pour

(10)

10

(11)

11

Exemple d’information

Système d’information INSA : cas des « données

élèves » Etudiant – Nom de famille – Prénom – Groupe – Bac

Comment modéliser ces informations ?

Rechercher les invariants

– Nom de famille est une chaîne de caractères

– Prénom est une chaîne de caractères

– Groupe est un entier entre 1 et 40

– Bac est un élément de {S, L, ES, ...} Théorie des ensembles

(12)

12

Ensembles et relations

Soient

A l’ensemble des chaînes de caractères B l’ensemble des entiers entre 1 et 40 C = {S, ES, L, …}

Un étudiant est alors un élément du produit

cartésien

A×A ×B ×C = {(a1,a2,b,c) | a1 A, a2 A, b B, c  C} Un élément du produit cartésien est appelé tuple.

Définition

(13)

13

Représentation d’une relation sous forme

de table

Une table est caractérisée par :

– L’ensemble des noms de colonnes = le schéma de la relation

– le schéma est invariant

– l’arité de la relation est le nombre de colonnes.

– L’ensemble des lignes qui contiennent l’information = l'extension

– l'extension représente les données présentes à un moment donné dans la base

Quelle propriété doivent vérifier les lignes du tableau ?

Nom Prénom Groupe Bac

Besson Jérémy 1 S Pensa Ruggero 1 S Rousselot Sophie 2 L Ray Henri 2 L

(14)

14

Éléments 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 d’une même table ont un même format ou structure.

Une colonne de la table est l’ensemble des valeurs qui correspondent à une même propriété. Toutes les données d’une colonne sont de même type.

L’attribut d’une colonne permet de désigner une propriété de la relation.

(15)

15

Base de données

Base de données : c’est une collection de relations

avec des liens entre celles-ci

– collection de données ayant une origine commune

Exemple :

– gestion d'une bibliothèque

(16)

16

Exemple

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

Titre idAuteur NomAuteur Tel Auteur idEditeur NomEditeur TelEditeur Prix GrandeEdition

Moby Dick PetiteEdition GrandeEdition PetiteEdition PetiteEdition PetiteEdition PetiteEdition PetiteEdition PetiteEdition

(17)

17

Exemple: une seule table

ISBN

0-103-45 Iliad 3 Homer 333-333-33 1 123-456-78 25,00 € 0-11-34 2 Melville 222-222-22 3 714-000-00 19,00 € 0-12-33 On liberty 8 Mill 666-666-55 1 123-456-78 25,00 € 0-13-33 Jane Eyre 1 Austen 236-698-22 3 714-000-00 58,00 € 0-358-36 Balloon 13 Sleepy 3458-897-45 3 714-000-00 26,00 € 0-358-36 Balloon 11 Snoopy 1258-987-36 3 714-000-00 26,00 € 0-358-36 Balloon 12 Grumpy 3687-98-654 3 714-000-00 26,00 € 0-55-12 Main Street 10 Jones 123-222-22 3 714-000-00 34,00 € 0-55-12 Main Street 9 Smith 123-333-33 3 714-000-00 34,00 €

Titre idAuteur NomAuteur Tel Auteur idEditeur NomEditeur TelEditeur Prix GrandeEdition

Moby Dick PetiteEdition GrandeEdition PetiteEdition PetiteEdition PetiteEdition PetiteEdition PetiteEdition PetiteEdition

(18)

18

Pourquoi ne met-on pas toutes les

informations dans une seule table?

Exemple

– Anomalie de mise à jour

– Anomalie de suppression

(19)

19

Solution « table unique » ?

Information redondante

Volume ? Temps d’accès ? Validité ?

Mise à jour pénible

Interrogations pénibles

Problèmes d’accès à l’information : problèmes liés à la recherche d’une information, à sa lecture, à son écriture …

(20)

20

Exemple : plusieurs relations liées

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

ISBN 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 idAuteur 1 123-456-78 3 714-000-00

idEditeur NomEditeur TelEditeur GrandeEdition PetiteEdition ISBN 0-103-45 Iliad 1 25,00 € 0-11-34 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 €

Titre idEditeur Prix Moby Dick

(21)

21

Rappels

Relation binaire

Soit R un sous-ensemble de AB. On appelle A le domaine et B la portée de la relation.

Fonction

Si R est telle que pour tout a  A, il y a au plus un élément b de B tel que aRb, alors R est une fonction de A vers B.

Généralisation de la notion de fonction à plusieurs

ensembles :

f : A1 A2 ... An B1 B2 ... Bm

aA1  A2  ...  An, soit f(a) n ’a pas de valeur, soit f(a) est unique et appartient à B1  ...  Bm

(22)

22

Clé : le lien entre les relations

Pour une relation donnée, on cherche un ensemble

d’attributs (minimal) pouvant servir de domaine pour une fonction.

Cet ensemble d’attributs est appelé clé.

Il existe toujours une clé car les tuples d’une

relation sont uniques.

(23)

23

Éléments de terminologie

L’un des attributs, ou l’association de plusieurs

attributs, joue un rôle particulier, c’est la clé

primaire. Elle identifie de manière unique chaque

tuple de la table. Une même valeur de clé primaire ne peut donc pas être utilisée dans deux tuples différents.

Une clé étrangère est constituée d’une clé d’une

autre table, jouant le rôle de référence à un tuple de cette autre table.

Les colonnes facultatives

Les contraintes référentielles : la valeur d’une clé

étrangère dans une table existe dans la table où cette clé est primaire.

(24)

24

Quelques principes des Bases de Données

1) Une information n’est stockée qu’une seule fois ou, exceptionnellement, avec une redondance calculée mise à jour facile.

2) L’utilisateur n’a pas à se préoccuper des questions liées à l’implantation physique des données. Ces questions sont prises en charge par le logiciel : le SGBD.

3) Des critères précis, les contraintes d’intégrité, peuvent être décrits par l’utilisateur concernant la validité des informations. Ces critères sont systématiquement contrôlés par le SGBD de façon à assurer l’intégrité des données.

(25)

25

Quelques principes des Bases de Données

Un cycle de vie - des tâches distinctes

a) Conception et création de la structure (schéma)

b) Mise à jour de l’extension : ajout, retrait ou modification de données.

c) Exploitation et interrogation (requête)

Remarque : nos objectifs de formation sont (b et c),

(26)

26

Des méthodes de manipulation des

données

(27)

27

Algèbre relationnelle pour interroger les

données

Les opérandes Les relations  Les opérateurs Opération d'ensemble – Union – Intersection – Différence La restriction La projection La jointure Calcul d’agrégats

(28)

28

Manipulation des données

Insertion de tuples

Mise à jour

(29)

29

(30)

30

Cycle de vie

Analyse des besoins

Spécification conceptuelle

Schéma conceptuel (e.g., diagramme E/A)

Spécification logique

schéma logique (e.g., relationnel)

Spécification physique schéma physique (e.g., Access)

(31)

31

Conception : le modèle Entité/Association

Modéliser une « réalité »

Gestion du logement des élèves :

Un élève a une chambre pour laquelle il paye un loyer. Cependant, tout élève n’a pas obligatoirement une chambre. Une chambre peut être partagée avec un autre élève. Par contre toute chambre a des caractéristiques qui permettent de la classer dans une catégorie. La catégorie définit le loyer.

Intuitivement on reconnaît une entité « élève », dont les attributs permettent d’enregistrer des informations relatives à chaque élève : nom, année d’études, département... Il existe également une entité qui décrit les chambres. Ses attributs pourraient être le bâtiment, un numéro. Enfin une troisième entité correspond aux loyers avec les attributs désignant le type de chambre (la catégorie) et le montant.

Ces entités sont en association les unes avec les autres e.g., « chambre » est en association avec « élève » par le fait qu’un ou deux élèves résident dans une chambre.

(32)

32

Conception : le modèle Entité/Association

Le modèle Entité/Association

Description graphique du modèle conceptuel des données

élèves 0,1 0,2 chambres 1,1 0,n loyers

 #numéro résidence type

 nom no montant

(33)

33

Conception : le modèle logique relationnel

Un modèle relationnel pour « organiser » les données

Une représentation graphique pour un schéma logique relationnel conforme à la modélisation conceptuelle

Une définition en « intention » : « un certain nombre de relations liées entre elles »

On est indépendant d’un SGBD particulier mais dépendant

d’une technologie (le « relationnel »).

loyers

type montant

chambres

résidence no_chambre type_loyer état_des_lieux

élèves

(34)

34

Un système de gestion de bases de

données

(35)

35

SGBD

1) Assure l’indépendance des programmes aux données

2) Langage de manipulation de données non procéduraux : on spécifie ce que l’on veut faire et non pas le comment

3) Assurer la cohérence des données

Cohérence des données

Les données redondantes doivent rester égales

Partage des données

Empêcher les mises à jour concurrentes

Sécurité des données

Les droits d’accès à l’information peuvent être personnalisés par groupe d’utilisateurs, voire pour chaque utilisateur.

(36)

36

Résultat de la conception : une base Access

Extrait de la base « RESIDENT» développée en Access:

(37)

37

Mise à jour d’une base

Mise à jour de l’extension

Lorsqu’on alimente ou on modifie les données de la base, le SGBD vérifie que l’on respecte les contraintes qui correspondent :

- à la structure de la base e.g., le même élève ne peut pas avoir deux chambres,

- au domaine de validité des attributs e.g., un élève ne peut pas loger dans la résidence M, ...

NB. Il existe généralement des restrictions sur les droits des

utilisateurs à mettre à jour les données.

Les Bases de Données sont des « référentiels » pour l’organisation et leurs gestions sont confiées à des professionnels : les administrateurs.

(38)

38

EXPLOITATION: Interrogation par requêtes

Un schéma physique existe (e.g., un schéma Access) et une extension est disponible.

Soumettre des requêtes

« Quels sont les types et les montants des loyers que l’on trouve dans la résidence A ? »

(39)

39

EXPLOITATION: Interrogation par requêtes

La réponse Access à cette requête sur la base « RESIDENT » est :

Pourquoi plusieurs fois la même réponse ?

Est ce que cette requête donne la (bonne) réponse à la question posée?

(40)

40

EXPLOITATION: Interrogation par requêtes

La même question peut être posée dans le langage SQL (langage largement répandu et normalisé) :

SELECT chambres.résidence, loyers.type, loyers.montant FROM loyers, chambres

WHERE ( (loyers.type = chambres.type_loyer)

AND (chambres.résidence = "A") ) ;

La réponse est la même

... avec les mêmes problèmes ...

Intérêt de SQL :

De très nombreux langages de programmation sont « interfacés » vers des bases de données via SQL.

(41)

41

Problématique de réalisation d'un SGBD

Rapidité des accès

Administration

Multi-utilisateurs

Accès concurrents Intégrité des données

(42)

42

Caractéristiques souhaitables des SGBD

1- Contrôler la redondance d'informations

2- Partage des données

3- Gérer les autorisations d'accès

4- Offrir des interfaces d'accès multiples

5- Représenter des relations complexes entre les données 6- Vérifier les contraintes d'intégrité

(43)

43

Architecture en trois niveaux

niveau interne ou physique : décrit le modèle de

stockage des données et les fonctions d'accès

modèle conceptuel ou logique : décrit la structure

de la base de données globalement à tous les

utilisateurs (limite la redondance). Ce schéma décrit la structure de la base indépendamment de son

implantation

niveau externe : correspond aux différentes vues

des utilisateurs. Chaque schéma externe donne une vue sur le schéma conceptuel à une classe

Références

Documents relatifs

- On trouve également un matériau relativement riche qui porte sur la gestion du réseau informationnel : réglage de la progression thématique, hiérarchisation des

deux expressions reprennent dans le titre même la manière dont les informateurs réunionnais de la communauté tamoule désignent et nomment l’entrée dans le

Ainsi, si notre parti-pris est de mettre en lumière les manques, ce n’est que pour mieux explorer, en creux, la complexité des rapports entre RC et évaluation ; mettre au jour,

En cela, nous restons dans les caractéristiques de la commande religieuse gothique dans la région ; en effet, à plusieurs reprises, en particulier pour le

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

If one core Core x violates a real-time con- straint (RT), Then the proposed strategy executes one of these solutions (SolutionA and SolutionB) in order to ensure that the

If, as we claim, the primary purpose of storing episodes is to offer material for future recounting, then systematically remembering details such as time and space location

Comme on le voit dans la correspondance de Jules Simon, ces reconstructions du groupe des spiritualistes par les spiritualistes mettent surtout en évidence un décalage entre de