Vous êtes sur la page 1sur 11

Dfinition

une base de donnes est un ensemble de donnes modlisant les objets d'une partie du monde rel et servant de support une application informatique. Pour mriter le terme de base de donnes, un ensemble de donnes non indpendante doit tre interrogeable par le contenu, c'est-dire que l'on doit pouvoir retrouver tous les objets qui satisfont un certain critre." [Gardarin, 2001]

Introduction :Base de donnes spatiales

Base de donnes spatiales :


Base de donnes portant principalement sur des objets ou phnomnes Anne universitaire 2011-2012 localiss sur le territoire, leur gomtrie, leur description, leurs relations ainsi que les mtadonnes associes. [Thierry Badard 2010]

Dfinition Contraintes dintgrits


Contraintes d'intgrit:
Rgles permettant de s'assurer de la cohrence du contenu d'une base de donnes. Les contraintes sont intra-champ/ inter-champs, intra-objet/ inter-objets et intraclasse/inter-classes.

Dfinition- SGBD
Un systme de gestion de base de donnes (SGBD) est : - peru comme un ensemble de logiciels systmes permettant aux utilisateurs d'insrer, de modifier et de rechercher efficacement des donnes spcifiques dans une grande masse d'informations partage par de multiples utilisateurs" [Gardarin, 2001] - Systme matriel et logiciel dont la fonction est d'assurer la gestion automatique d'une base de donnes et de permettre la cration, la modification, l'utilisation et la protection des donnes [Thierry Badard, 2010].
Notes:

Contraintes d'intgrit spatiale:


Rgles permettant de dfinir les relations spatiales (mtriques et topologiques) entre deux objets d'une base de donnes spatiales afin de s'assurer qu'il n'y a pas d'incohrence entre eux, le tout en tenant compte de leur signification (leur smantique).

Le logiciel d'utilisation d'une base de donnes peut faire partie du systme de gestion d'une base de donnes ou tre un systme indpendant. On rencontre parfois le terme base de donnes au sens de systme de gestion de base de donnes . " [OQLF, 2001]

Modlisation du rel

Base de donne

Thierry Badard 2010

Base de donne relationnelle

Formalisme de modlisation: E/R


Entit Personne Identifiant Attribut 1 Attribut 2 Attribut 3 Relation 1,n Possder 1,1 Maison Identifiant Attribut 1 Attribut 2 Etc.

Cardinalit Proprit

Lide de base du modle E/R et de ses variations tient au fait que lon peut dcrire tout tat dune ralit par la collection des proprits des entits ou des associations (relations) qui le composent.

Formalisme E/R: Relation 1, 1

Formalisme E/R : 1, N

Formalisme E/R : N, N

Pourquoi un SGBD?

Pourquoi un SGBD spatial?


Autres mcanismes de stockage conventionnels :
fichiers SIG (Shapefile, MapInfo) et formats XML (GML)

SGBD fonctionnalits
Quelques fonctionnalits :
Grer le stockage, effectu dans des BD. Contrler la concurrence (conflits d'accs sur les donnes partages). Protger les donnes : contrles de scurit, reprises sur panne et mcanismes de spcification de contraintes d'intgrit. Proposer des interfaces utilisateurs pour la gestion du SGBD par les utilisateurs ou les administrateurs de bases de donnes. Proposer des donnes distribues (accs des donnes disposes dans plusieurs bases de donnes supportes par des systmes diffrents et des modles distincts). Ainsi, un SGBD est destin grer un gros volume d'informations, persistantes (annes) et fiables (protection sur panne), partageables entre plusieurs utilisateurs et/ou programmes et manipules indpendamment de leur reprsentation physique.

Ce qu'apporte un SGBD spatial :


centralisation et partage des donnes entre plusieurs utilisateurs, oprateurs spatiaux en langage SQL, excuts mme le serveur de BD, indexation spatiale performante, contraintes d'intgrit, support des transactions, intgration avec d'autres contenus dans la BD, interoprabilit avec plusieurs logiciels SIG et serveur de cartographie Web, ... et de nombreux autres avantages.

SGBD - Technologie
Relationnelle ou Objet-Relationnelle [serveur universel] (98% du march) Oriente-Objet pure (2% du march) Rseau (ancienne technologie) Hirarchique (ancienne technologie)

Plan de la prsentation
Les grands SGBD
Oracle IBM DB2 Microsoft SQL Server Sybase SQL Server Ingres Informix

Les SGBD personnels


Borland Paradox Filemaker Interbase Microsoft Access Microsoft FoxPro

Les open source


MySQL PostgreSQL

Les SGBD objets


Objectivity Object Store Versant O2

SGBD et la composante spatiale


Depuis quelques annes, des SGBD proposent des modules ou extensions pour grer la composante spatiale des donnes dans les bases de donnes (principalement relationnelles). "Simple Features Specification for SQL" est une norme de l'OGC (Open Geospatial Consortium), qui propose plusieurs concepts pour ajouter le support des donnes spatiales aux serveurs de base de donnes SQL. http://www.opengeospatial.org/standards/sfs Ainsi, les modules suivants se basent sur cette norme : Oracle Spatial pour Oracle : Conforme la norme PostGIS pour PostgreSQL : Conforme la norme MySQL Spatial pour MySQL MsSqlSpatial pour Microsoft SQL Server 2005 DB2 Spatial Extender pour DB2 d'IBM

Introduction :Le langage SQL

Anne universitaire 2011-2012

Thierry Badard 2010

Dfinition
Le langage SQL (Structured Query Language) est un standard bien tabli pour les SGBD relationnels. Diffrentes normes existent dont SQL2 (ou SQL92) et SQL3 (ou SQL99), la plus rcente. Mais il subsiste des diffrences entre les implantations des normes dans les systmes de gestion de bases de donnes. Ce langage inclut des oprations permettant: de dfinir les donnes (Data Definition Language) CREATE TABLE piste ( nombre number, degre number, km number); de manipuler les donnes (Data Manipulation Language) Insert, Delete, Update; dinterroger les donnes (DML-Query Language) SELECT * FROM pistes WHERE km > 8;

SQL: Concept de schma et catalogue


Un schma SQL est un regroupement de tables, vues, privilges, etc. appartenant la mme application de base de donnes.
CREATE SCHEMA [nom_schema] [ AUTHORIZATION utilisateur ] [DEFAULT CHARACTER SET jeu_de_caractres ] [liste_des_objets_du_schma ]

Dans PostgreSQL, un schma est nomm une base de donnes (database).


CREATE DATABASE nomdb [OWNER utilisateurpropritaire]

SQL: Concept de schma et catalogue


Un catalogue SQL est une collection de schmas dans un environnement SQL et inclut un schma spcial appel information_schema contenant les informations sur les lments inclus dans tous les schmas dun catalogue tels les tables, les vues, les contraintes dintgrit, les index, etc. Ce schma existe dans le standard SQL et peut tre interrog partir de la commande suivante: SELECT * FROM information_schema.tables. Dans PostgreSQL, on dispose d'environ 45 catalogues comme pg_class, pg_constraint, pg_database, pg_index, pg_tables, etc. (http://docs.postgresqlfr.org/8.3/catalogs.html) Exemple: Pour obtenir le nom de toutes les tables incluses dans le schma 'monschema' :
SELECT tablename FROM pg_tables WHERE schemaname = 'monschema';

SQL: Data Definition language (DDL)


Langage de dfinition de donnes pour SQL Gestion des tables, d'objets dans un SGBD Relationnel suivant des mthodes de : Cration Modification Suppression CREATE ALTER DROP

SQL: Cration des tables


Syntaxe pour la cration de table :
CREATE TABLE Nom_de_la_table (Nom_de_colonne1 Type_de_donneA, Nom_de_colonne2 Type_de_donneB, ...);

SQL: Contraintes dintgrits


Lors de la cration et la modification de tables, on peut ajouter des contraintes aux champs de la table dfinir ou modifier. On retrouve entre autres des contraintes qui permettent de:
crer des cls primaires (PRIMARY KEY); crer des cls trangres (FOREIGN KEY et REFERENCE); crer des conditions que chaque enregistrement doit satisfaire (CHECK); crer des contraintes dunicit (UNIQUE); rejeter des valeurs nulles (NOT NULL) ajouter une valeur par dfaut (DEFAULT).

Exemple : Cration de la table "client", qui possde des champs de type caractres : Prenom, Nom, Adresse, Ville, Pays et un champ Date_anniversaire de type date .
CREATE TABLE client ( Prenom char(50), Nom char(50), Adresse char(50), Ville char(50), Pays char(25), Date_anniversaire (date) ;

La clause CONSTRAINT permet de nommer une contrainte

SQL: Contraintes dintgrits


Exemple 1 : Utilisation des contraintes NOT NULL et PRIMARY KEY, avec nommage d'une contrainte avec CONSTRAINT :
CREATE TABLE maison ( numero varchar2(6) NOT NULL, rue varchar2(20) NOT NULL, annee_construc date, CONSTRAINT pk_maison PRIMARY KEY(numero, rue) );

SQL: Cration des objets


Possibilit de crer un nouveau type de donnes en tant qu'objet.
CREATE TYPE adresse AS OBJECT ( No_civic varchar2(10), Nom_rue varchar2(50), Municipalite varchar2(50) )

Exemple 2 :
CREATE TABLE personne (nas char(11) NOT NULL CONSTRAINT pk_nas PRIMARY KEY, nom varchar2(15), prenom varchar2(15), sexe char(1), no_civiq varchar(6), nom_rue varchar(20), CONSTRAINT fk_maison FOREIGN KEY (no_civiq, nom_rue) REFERENCES maison(numero, rue), CONSTRAINT check_nom CHECK (nom=UPPER(nom)), CONSTRAINT check_FM CHECK (sexe IN ('F', 'M')) );

Rutilisation du type de donnes (prcdemment cr) lors de la cration d'une table


CREATE TABLE batiment ( numero NUMBER(5) PRIMARY KEY, adr_batiment ADRESSE, utilisation VARCHAR2(15) CHECK (utilisation IN ( rsidentielle, 'commerciale, industrielle)) );

SQL: Modifier la structure dune table


La clause ALTER TABLE permet de modifier la structure dune table dj existante. Dans SQL, on peut ainsi effectuer diffrentes oprations de modifications :
Ajouter une colonne : ADD "colonne 1" "type de donnes pour la colonne 1" Supprimer une colonne : DROP "colonne 1" Changer un nom de colonne : CHANGE "vieux nom de colonne" "nouveau nom de colonne" "type de donnes pour le nouveau nom de colonne" Changer le type de donnes dune colonne : MODIFY "colonne 1" "nouveau type de donnes"

SQL: Modifier la structure dune table


Exemples PostgreSQL:
ALTER TABLE produits ADD COLUMN description text; ALTER TABLE produits ALTER COLUMN prix TYPE numeric(10,2); ALTER TABLE produits RENAME COLUMN no_produit TO numero_produit; ALTER TABLE produits DROP COLUMN description;

SQL: Affichage de la structure dune table


Pour PostgreSQL (Non SQL): \d nom_de_la_table Liste de toutes les tables cres par lusager:
Avec PostgreSQL
SELECT * from pg_class;

Les vues
Une vue est une "table virtuelle", c'est--dire dont les donnes ne sont pas stockes dans une table de la base de donnes, et dans laquelle il est possible de rassembler des informations provenant de plusieurs tables. Cration d'une vue : CREATE VIEW
CREATE VIEW Vue (colonneA,colonneB,colonneC,colonneD) AS SELECT colonne1,colonne2,colonneI,colonneII FROM nom_table1 Alias1, Nom_tableII AliasII WHERE Alias1.colonne1 = AliasII.colonneI AND Alias1.colonne2 = AliasII.colonneII

Suppression d'une vue : DROP VIEW DROP VIEW Vue;

Les indexes
Un index contient une entre pour chaque valeur du ou des champs sur lesquels lindex sapplique. Il permet un accs direct et rapide aux enregistrements. Lorsquon cr une contrainte de cl primaire sur un champ, un index du mme nom est automatiquement cr. Cration d'un index : CREATE INDEX CREATE INDEX i_nom ON personne (nom); Suppression d'index : DROP INDEX DROP INDEX l_nom; Afficher des index Avec PostgreSQL : utilisation des catalogues pg_index et pg_class

Les squences
C'est un objet de la base de donnes partir duquel plusieurs utilisateurs peuvent gnrer un identifiant unique. On peut utiliser une squence pour gnrer automatiquement des valeurs pour les cls primaires. Par dfaut, le pas d'incrmentation est de 1.
Exemple :
CREATE SEQUENCE id_route; CREATE SEQUENCE id_route INCREMENT BY 10 START WITH 1000 la premire valeur est 1000 et la seconde 1010.;

Modification la dfinition d'une squence : ALTER SEQUENCE


ALTER SEQUENCE serial RESTART WITH 105;

Suppression d'une squence : DROP SEQUENCE


DROP SEQUENCE serial;

Introduction
Dnormalisation

Optimisation des bases de donnes spatiales


Thierry Badard 2010

Fusion/non-fusion de tables Partitionnement Mthode d'indexation Mthodes de stockage Clustering Fonction Storage pour spcifier la faon de stocker les donnes.

33

Dnormalisation- Non Fusion de table


POTEAU
Numro proprit

Dnormalisation- Fusion de tables


MAISON
Numro Nom de rue

Eclairage

> 1,n <0,n

PROPRI
Non prnom adresse

> 0,n <1,1

Puissance Marque Modle

TERRAIN
N terrain Frontage

> 1,n <0,n

Selon la rgle habituelle, on fusionne les tables lorsque l'on a une cardinalit 1,1. Poteau (numero, proprio, puissance, marque, modele, sdo_geom) Cependant, s'il y a une cardinalit minimum de 0, on peut dcider de sparer les deux tables pour viter d'avoir des champs vides. Poteau (numero, proprio, sdo_geom) Eclair (num_eclair, puissance, marque, modele, no_poteau)

Selon la rgle habituelle, on cre deux tables de relation: posseder_maison et posseder_terrain. Cependant, comme la plupart du temps un propritaire possde la fois la maison et le terrain, il est possible de crer une seule table posseder. Certains champs seront vides loccasion. Maison (no_civique, nom_rue, nb_etage) Terrain (no_terrain, frontage, profondeur) Propritaire (no_proprio, nom prenom, no_civique, nom_rue, ville, code_postal) Posseder (no_proprio, no_terrain, no_civique, nom_rue)

Dnormalisation- Partitionnement
Personne
Nom Prnom Sexe Adress

Dnormalisation- Partitionnement
Il implique la division de tables ayant un grand volume de donnes en plus petites, de manire ce que le SGBD n'aie pas besoin de retrouver trop de donnes la fois. Il existe deux faons de partitionner une table: horizontalement et verticalement

Pour Recensement au Maroc, une seule table personne pour tout le pays reprsente des millions d'enregistrements. De plus, le nombre sera rapidement doubl si l'on conserve l'historique Personne (numero, nom, prenom, sexe, date_naissance, no_civique, nom_rue, ville, rgion, code_postal) On peut alors crer une table personne par province (partition), sparer les hommes des femmes, conserver l'historiques dans des tables part.

Personne_Grand Casa (numero, nom, prenom, sexe, date_naissance, no_civique, nom_rue, ville, code_postal) Femme_Fs-Boulemane (numero, nom, date_naissance, nom_rue, ville, code_postal) prenom, no_civique,

Dnormalisation- Partitionnement
Le partitionnement horizontal implique la division des enregistrements de la table en deux ou plusieurs tables ayant la mme structure. Le partitionnement vertical implique la division des champs de la table que l'on place dans deux ou plusieurs tables qui seront relies entre elles via la cl primaire (que l'on retrouvera dans chaque table).

Indexation
Dans chaque table, les nouveaux enregistrements sont ajouts la fin ce qui fait qu'ils ne sont pas ordonns. Sans index, la seule faon des SGBD de rechercher une valeur est de parcourir chaque enregistrement du dbut de la table jusqu' la fin. Plus la table a d'enregistrements, plus le temps de recherche est long.

10

Indexation
La cration dun index offre un accs rapide aux valeurs d'une colonne ou de colonnes concatnes. L'index tant plus petit, il peut rsider en mmoire vive. Lorsqu'on ajoute un nouvel enregistrement une table, l'index est automatiquement retri. L'accs une cl peut se faire de faon squentielle ou binaire.

11

Vous aimerez peut-être aussi