bases de données relationnelles -...

of 41 /41
Bases de données relationnelles - 0 - Introduction - 1 - Généralités sur les BD 2 - Généralités sur les SGBD 3 - Architecture des SGBD 4 - Petit historique des SGBD 5 - Généralités sur le SQL Introductions associées : Analyser les données d’un SI - Concevoir la BD Introduction au Web 1

Author: truongdiep

Post on 06-Mar-2019

217 views

Category:

Documents


0 download

Embed Size (px)

TRANSCRIPT

Bases de donnesrelationnelles

-0 - Introduction

-1 - Gnralits sur les BD

2 - Gnralits sur les SGBD 3 - Architecture des SGBD

4 - Petit historique des SGBD 5 - Gnralits sur le SQL

Introductions associes : Analyser les donnes dun SI - Concevoir la BD

Introduction au Web

1

Bases de donnes relationnelles

1 - Gnralits sur les BD- BD et SI

- BD en gnral - BD informatise

2

3

Objectifs dun cours sur les bases de donnes relationnelles Quest-ce quune BD ? Comment on la fabrique ? -> Cours de modlisation.

DDL (create, alter, drop, primary key, foreign key, index) Comment on sen sert ? -> cours de SQL. SELECT et

DML (insert, update, delete)

BD et Systme dinformations

4

La BD est un systme qui permet de manipuler de faon plus aise des objets ou des informations en grand nombre.

Une BD est constitue de deux lments:

La BD proprement parler : un regroupement de donnes (dinformations) en grand nombre. Ces donnes dcrivent (reprsentent) des objets quon veut manipuler.

Le SGBD (systme de gestion de la base de donnes) : cest un ensemble doutils de gestion permettant de ranger et dutiliser les objets quon veut manipuler. Ces outils permettent donc dajouter, de retirer et de modifier ces objets et les donnes qui les reprsentent (partie rangement) mais aussi de les consulter (et donc de les trouver !)

BD Base de donnes en gnral, pas forcment informatise

Exemples

Une bibliothque : des fichiers dadhrents et de livres, des index (fichiers pour les recherches).

Un magasin avec ses catalogues dinventaires, sa comptabilit.

Les socits dassurances et les banques. Cf. les films : la Foule (King Vidor, 1928), la Garonnire (Billy Wilder, 1960, bureau de socit dassurance) et aussi Brasil (Terry Gillian, 1985, utilisation de tubes pneumatiques)

Un cerveau : on a des donnes, on les trouve plus ou moins facilement ! On se dote doutils : des fiches, des livres plus ou moins annots, des dossiers, etc !

BD Base de donnes en gnral, pas forcment informatise

5

https://www.officemuseum.com/1935_Auditor_of_Overcharge_Claims_Suspension_Relief_Claim_Bureau_CMStPPRR_OM.jpghttps://fr.wikipedia.org/wiki/Tube_pneumatique

BD Base de donnes en gnral, pas forcment informatise

6

Systme de gestion de fichiers non informatis !

BD Base de donnes en gnral, pas forcment informatise

7

Systme de communication non informatis

Un tube pneumatique est un systme propulsant par diffrence de pression des navettes cylindriques, lesquelles servent transporter des objets.

Existe au 19me sicle et jusque dans les annes 80 du 20me sicle. Plus de 400 km de rseau Paris en 1930.

Existe toujours petite chelle au dbut du 21mesicle pour transporter de petits paquets, des documents, de largent dans les banques, les hypermarchs et certaines grandes administrations.

https://fr.wikipedia.org/wiki/Tube_pneumatique

https://fr.wikipedia.org/wiki/Tube_pneumatiquehttps://fr.wikipedia.org/wiki/Tube_pneumatique

8

Les donnes et les outils de gestion sont informatises : cest la situation actuelle !

Exemples

Une bibliothque: les adhrents et le catalogues sont grs par informatique. Le retrait et le retour des livres est gr via une machine qui scanne les codes-barres des livres. Les informations (livres disponibles, livres actuellement emprunts par ladhrents, etc.) sont accessibles sur des terminaux dans la bibliothque et sur internet.

Le systme de rservation de la SNCF: il permet daccder tous les trains et toutes les places dans les trains, de savoir si elles sont disponibles, etc.

Les sites internet de journaux (Le Monde, le Figaro, etc.): les articles et les commentaires utilisent des bases de donnes.

Les sites web en gnral et les applications mobiles utilisent des bases de donnes.

Un disque dur : on a des donnes, on peut les trouver assez facilement. Les outils de recherche et de consultation des OS permettent de retrouver linformation plus ou moins facilement.

BD Base de donnes informatise

9

La BD est constitue de sortes de tableaux Excel. Par exemple: des Employs et des Dpartements.

Certaines colonnes permettent de passer dune ligne une autre ligne une autre :

le ND des Employs permet de passer au ND des Dpartements.

le NEchef des Employs permet de passer une autre ligne dans la table des Employs.

Table des Employs Table des Dpartements

BD Base de donnes informatise

Bases de donnes relationnelles

2 - Gnralits sur les SGBD- Gnralits

- BD et SGBD : problme de vocabulaire - BD informatise

10

11

Le SGBD, Systme de Gestion de Base de Donnes, est le logiciel qui fournit les outils de gestion de la base de donnes.

Il permet essentiellement de:

Dfinir les donnes quon veut manipuler

Ajouter, modifier, supprimer des donnes

Consulter des donnes

Faire des traitements sur les donnes

SGBD Gnralits

12

Quand on parle de BD (base de donnes), on peut parler de:

Les donnes uniquement. Par exemple: la la BD des utilisateurs a t pirate.

Le SGBD uniquement. Par exemple jutilise une BD MySQL

Les donnes et le SGBD. Par exemple: un Cours de BD

BD et SGBD Problme de vocabulaire

Distinguer entre donnes et traitements

Garantir lintgrit des donnes

Fournir une performance acceptable

Des prcisions sont donnes dans les slides suivants >

Bertrand Liaudet // bliaudet.free.fr 13

Objectifs dun SGBD les 3 objectifs majeurs dun SI

Modle des donnes indpendant des traitements

Lorganisation des donnes est indpendante des traitements qui leur sont appliqus.

Lorganisation des donnes permet de produire un modle synthtique des donnes. Ce modle permet une meilleure comprhension du SI, que ce soit celui dune entreprise ou dun systme scientifique.

Linformation correspondant une donne est directement intelligible : ce nest pas le rsultat dun calcul ou dun traitement.

Traitements rationaliss appliqus aux donnes

Les traitements consiste souvent ajouter, supprimer, modifier et consulter les donnes. La logique est la mme pour toutes les donnes.

Les traitements peuvent tre regroups par ensemble de donnes, autrement dit par table . Cest une bonne introduction la Programmation Oriente Objet.

Bertrand Liaudet // bliaudet.free.fr 14

Objectifs dun SGBD 1) Distinguer entre Donnes et Traitements

Garantir lintgrit des donnes - Prsentation :

La BD a pour objectif dtre un rservoir dinformations unique et partag.

Linformation doit, autant que possible, tre fiable : cest ce que recouvre la notion dintgrit des donnes :

Lintgrit des donnes a une composante physique (lie au matriel) : cest ce que recouvre la notion daltration des donnes.

Lintgrit des donnes a une composante logique (lie la reprsentation des donnes) : cest ce que recouvre la notion de cohrence des donnes.

Bertrand Liaudet // bliaudet.free.fr 15

Objectifs dun SGBD 2) Garantir lintgrit des donnes

Laltration donnesIl y a plusieurs sources daltration possibles:

lusure des disques, les pannes des systmes, les malveillances.

Le SGBD a comme objectif den limiter les possibilits.

Bertrand Liaudet // bliaudet.free.fr 16

Objectifs dun SGBD 2) Garantir lintgrit des donnes

La cohrence des donnesIl y a y a plusieurs situation qui conduisent un risque dincohrence et quil faudra particulirement vrifier :

1.La duplication des donnes. vSi les donnes sont dupliques, on risque davoir des valeurs diffrentes pour une mme chose. Si on enregistre ladresse dune personne deux endroits diffrents et quon modifie ladresse un seul endroit, on ne sait plus quelle est la bonne information.

2.La perte dune rfrence (dun lien) : lintgrit rfrentielle. Une donne peut faire rfrence une autre donne. Par exemple, un compte en banque fait rfrence un client. Si la rfrence est perdue (le client est supprim de la banque) alors le compte aura perdu sa rfrence au client. On parle ici dintgrit rfrentielle.

3.La non-conformit au modle et les valeurs aberrantes. Le modle peut prciser le type dinformation attendue pour une donnes et ses valeurs possibles, ou ses bornes. Par exemples: une date de naissance doit avoir un format prcis et viter un ge trop grand !

Bertrand Liaudet // bliaudet.free.fr 17

Objectifs dun SGBD 2) Garantir lintgrit des donnes

La cohrence des donnes, suite : 4.Les attributs calcules. Un attribut calcul est un attribut dont la valeur peut tre calcule partir dautres informations de la BD. Donc si les informations permettant le calcul changent, la donne calcule doit tre mise jour sinon elle devient incohrente. Cest un cas particulier de la duplication.

5.Grer les accs concurrents. Le De nombreux utilisateurs utilisent en mme temps les donnes du SI. Le SGBD doit dont grer les accs concurrents pour viter quun utilisateur consulte une donne qui est en train dtre modifie ou que deux utilisateurs modifie en mme temps une donne.

Bertrand Liaudet // bliaudet.free.fr 18

Objectifs dun SGBD 2) Garantir lintgrit des donnes

Une BD doit fournir des performances acceptables par lutilisateur.

Cest la problmatique de loptimisation : - Elle est prise en compte au niveau physique (matriel et

systmes logiciels) par les performances du SGBD et de linfrastructure matrielle. La question des accs disque est centrale pour la performance. La gestion de la mmoire cache par le SGBD permet de limiter les accs disques et donc doptimiser les traitements.

- Elle est prise en compte au niveau logique par dventuelles rorganisations des donnes en vue dune meilleure performance. Cest ce qui relve de la dnormalisation et surtout de lindexation.

Bertrand Liaudet // bliaudet.free.fr 19

Objectifs dun SGBD 3) Performance et optimisation

Bases de donnes relationnelles

3 - Architecture des SGBD- Architecture client-serveur

- Diffrents types dobjet grs - 3 types dutilisateur

- 2 grands types dapplication

20

SGBD - Architecture

Architecture et fonctionnement dun ordinateur

Systme dexploitation

Disque dur, rpertoires, fichiers

Processeur

RAM

21

SGBD - Architecture

Modle fondamental : architecture client serveur

22

Le SGBD est le serveur. Chaque application est un client. Plusieurs clients peuvent communiquer avec le serveur.

SGBD - Architecture

Modle fondamental : architecture client serveur

Une application est un programme qui envoie des commandes au SGBD pour manipuler dune faon ou dune autre les donnes de la BD sur le disque dur. Par exemple: un programme PHP enregistre une donne dans la BD ou rcupre des informations dans la BD.

Une BD est stocke sur un ou plusieurs disques durs.

Pour une BD, il y a un SGBD et un seul. Le SGBD et la BD sont en gnral sur la mme machine.

Le SGBD peut grer plusieurs BDs.

23

SGBD - Architecture

Quest-ce quun serveur ?

Un serveur est un programme qui na pas de communication directe avec un utilisateur humain.

Un serveur est un programme qui communique uniquement avec dautres programme. Il est en attente (il coute avec un listener) de messages qui lui sont envoys par dautres programme. Il rponde aux messages quil a reu : il sert ses clients.

Par abus de langage, la machine qui hberge le programme serveur (et le fait fonctionner) est appele serveur. On peut aussi parler de machine-serveur hbergeant un ou plusieurs serveurs.

24

25

Un SGBD gre un certains nombre dobjets:

Des bases de donnes: pour distinguer des applications diffrentes

Des tables: pour mettre les donnes

Des donnes : les lignes quon met dans les tables.

Des index: pour optimiser les requtes

Des contraintes dintgrit: pour garantir la cohrence des donnes

Des utilisateurs: pour se connecter la BD et leur donner des droits particuliers

Des droits: pour limiter laccs des utilisateurs la BD

Etc.

Pour chacun de ces objets, le SGBD permet la cration, modification, suppression, la consultation.

SGBD - diffrents types dobjets grs

26

Ladministrateur

Il gre les accs et les droits des utilisateurs: problme de scurit.

Il gre aussi le bon fonctionnement des bases de donnes: problme defficacit.

Le dveloppeur

Il programme une application qui sera cliente du SGBD. Il a accs la BD travers lapplication cliente dite: calculette SQL.

Lutilisateur final

Il utilise une application cliente du SGBD. En gnral, il na accs la BD qu travers une application cliente spcifique.

SGBD - 3 types dutilisateur

27

1 : Linformatique transactionnelle: OLTP

Les applications dinformatique transactionnelle regroupent la fois les applications de gestion (systme dinformation, site marchand, etc.) et des applications industrielles qui utilisent une BD. Ce sont toujours des applications de grosse taille.

On parle aussi dOLTP: On-Line Transaction Processing

SGBD - 2 grands types dapplication

28

2 : Linformatique dcisionnelle: OLAP

Les applications dinformatique dcisionnelle servent exploiter les donnes le plus souvent issues dapplications dinformatique transactionnelle.

Ces applications mettent en uvre des notions de statistiques, danalyse de donnes et de datamining. Elles peuvent sappuyer sur des fonctionnalits SQL proposes par le SGBD (Group By, Pivot, etc.) ou sur dautres outils.

Ces applications sont en gnral de petite taille. Leur finalit est laide la dcision.

Les notions de BI, (Business Intelligence), data-mining et data-warehouse sont des notions connexes ce domaine.

On parle aussi dOLAP: On-Line Analytical Processing.

Le BI est n la fin des annes 90.

Le Big Data, cest lutilisation du BI sur des quantits de donnes encore plus grandes. Ces nouvelles donnes viennent de lexplosion des donnes personnelles travers lutilisation entre autres des smartphones et des rseaux sociaux.

SGBD - 2 grands types dapplication

Bases de donnes relationnelles

4 - Petit historique des SGBD- Historique

- SGBD-R : le modle dominant - Parts de march

29

30

Il existe diffrents types de BD en fonction du modle dorganisation des donnes quelles utilisent.

A ce modle est associ un langage de manipulation des donnes.

Annes 60: les anciens modles. Modle hirarchique, modle rseau, langages daccs navigationnels permettant de circuler dans des structures de types graphes.

1970: Cration thorique du modle relationnel. Article de CODD.

Annes 80: Premiers SGBD-Relationnels sur le march (ORACLE, Ingres, Informix, sybase, Dbase IV, etc.). 1979 : premire version dORACLE. Cration du SQL.

Annes 90: Premiers SGBD-Objets. Dveloppement du XML et des modles hirarchiques.

Fin des annes 2000: Premiers SGBD NoSQL. Le NoSQL se dveloppe dans des environnements donnes dont la structure est trs dynamique et pour lesquelles la question de lintgrit nest pas primordiale. Dveloppement du JSON et des modles hirarchiques.

Aujourdhui: Le march est domin par les SGBD-R (ORACLE, SQL-Server (microsoft), DB2 (IBM), MySQL, PosgreSQL, ACCESS). LObjet na pas remplac le Relationnel. Les technologies sont parfois mixtes (Relationnel et objet). Le XML et le JSON cohabitent avec le SQL. Le NoSQL se dveloppe.

SGBD-Relationnel historique des SGBD

31

Aujourdhui, le modle relationnel domine le march et la thorie des bases de donnes.

Les SGBD correspondant sont des SGBD-R.

SGBD-Relationnel GBDR-R

SGBD-Relationnel Le march

32

Parts de march en 2012Base de donnes

Part de march

Oracle 44 %

IBM DB2 20 %

Microsoft SQL Server 19 %

Total

28.69 milliards de

dollars +7.8% en 1 an

Usages

Base de donnes %

MySQL 58 %

Oracle 37 %

PostgreSQL 32 %

MS SQL Server 31 %

Oracle a rachet Sun en 2009 qui avait rachet MySQL en 2008.

MariaDB est la continuation open source du projet MySQL par ses fondateurs.

Bases de donnes relationnelles

5 - Gnralits sur le SQL- Prsentation

- La calculette SQL - Le PL-SQL - Historique -Prennit

33

SQL - Prsentation - 1

SQL signifie Structured Query Langage, cest--dire langage structur de requtes.

Le SQL est LE langage des SGBD-R. Il permet denvoyer toutes les requtes possibles un SGDB-R: cration, modification, suppression, consultation, etc.

Le SQL est un langage de programmation fond sur une thorie mathmatique : lalgbre relationnelle.

34

SQL - Prsentation - 2

Lalgbre relationnelle est la thorie des oprations appliques un objet mathmatique particulier: les tableaux de donnes (appeles relations en algbre relationnelle).

Le SQL est un ensemble doprateurs (qui traduisent les oprations de lalgbre relationnelle).

Ces oprateurs permettent dcrire les commandes pour crer/modifier/supprimer les lments de la BD et pour les consulter.

Ces commandes sont des formules de calcul et pas des algorithmes proprement parler.

Le SQL nest pas un langage de programmation qui permet dcrire des programmes avec des interactions avec lutilisateur (comme le langage PHP ou le Python par exemple).

35

SQL - La calculette SQL

Lapplication cliente du SGBD qui permet dutiliser directement le SQL peut tre considre comme une calculette SQL qui, au lieu de travailler sur des nombres, travaille sur des tableaux de donnes.

Il existe plusieurs formes de cette calculette:

les versions en ligne de commande (non graphique): le Command Line Client et ses drivs: mysql, psql (Postgresql), SQL*PLUS (Oracle), etc.

les version graphiques fournies par le SGBD: MySQL workbench, Oracle SQL developer, SQL Server Management Studio Express (SSMSE), etc.

les versions graphiques fournies par les outils de programmation web : PHP-MyAdmin, phpPGAdmin, etc.

36

SQL - La calculette SQL

La calculette est une application cliente :

37

Installer un SGBD cest installer au moins un serveur et une calculette. On accde au serveur avec la calculette.

SQL - Le PL-SQL

Dans la plupart des SGBD-R, il existe un langage de programmation proprement parler qui permet dcrire des successions doprations relationnelles (SQL) sous la forme dun programme en utilisant les mcanismes usuels de la programmation imprative type PHP, C, etc. savoir: les variables, les affectations, les tests, les boucles et les fonctions.

Ce langage sappelle: le PL-SQL, cest--dire: Programmation Language SQL.

Le PL-SQL permet dcrire des programmes ou des fonctions qui seront enregistrs dans la BD.

Le PL-SQL ne permet pas de dvelopper une interface utilisateur graphiques. Il ne remplace donc pas le dveloppement dune application cliente.

Le PL-SQL permet de:

crire des fonctions qui permettent dviter aux applications clientes de rpter les mmes sries doprations SQL: principe de modularit.

mieux grer lintgrit des donnes (triggers et rgles).

Sparer le calcul de laffichage.

38

SQL - Historique

Annes 70: premiers prototypes de SQL la suite de larticle de CODD.

1979: premire version de SQL, propos par ORACLE.

1974-1978 : Mthode MERISE. MCD. MLD.

1976 : MEA de Chen.

1986: SQL ANSI (American National Standard Institute)

1989 : SQL-1, ISO et ANSI (International Standard Organisation)

1992: SQL-2, ISO et ANSI (jointures externes et join)

1999: SQL-3, ISO et ANSI (SQL orient objet)

39

SQL - Prennit

Le SQL existe depuis 1980 en pratique et 1970 en thorie : cest un langage prenne: il a vocation durer! Pourquoi ?

Qui dit SI dit BD: la BD est le cur du SI.

Lalgbre relationnelle est une thorie mathmatique simple et solide (et non pas une technologie).

Le SQL est un langage commun tous les SGBD-R (normalisation ANSI et ISO)

Limplantation massive du SQL rend son limination coteuse.

De nombreux Framwork de dveloppement propose des outils qui permettent de sabstraire du choix du SGBD et du SQL en gnral.

40

SQL - Prennit

Pour dtrner le SQL, il faudrait:

Une meilleure thorie: pas facile ! Lalgbre relationnelle cest des maths pures !

Des outils aussi puissants qui garantissent la mme intgrit: pas facile !

Les volutions correspondent des usages particuliers:

Le XML et le JSON sont adapts aux donnes hirarchises avec peu de modifications et de requtes complexes.

Le NoSQL est adapt aux donnes dynamiques. Le sigle NoSQL est pass de la signification: pas de SQL (Not SQL) pas seulement du SQL: Not Only SQL!

Le SQL est adapt tout le reste! Et particulirement aux donnes de lentreprise en gnral.

Aujourdhui (fin 2010), on peut parier sans grand risque que le SQL sera toujours prsent dici la fin de la carrire des tudiants!

41