PROPRIETES D’UN SGBD RELATIONNEL

PROPRIETES D’UN SGBD RELATIONNEL

Langage SQL

SQL (Structured Query Language) a รฉtรฉ crรฉรฉ au dรฉbut dans les annรฉes 1970 par la sociรฉtรฉ amรฉricaine IBM (International Business Machines) et sa premiรจre version commercialisable a vu le jour en 1979. Depuis il a รฉtรฉ repris par le groupe ORACLE qui a lancรฉ son premier SGBD Relationnel et a รฉtรฉ normalisรฉ par lโ€™Institut de normalisation amรฉricaine ANSI en 1986 et ratifiรฉ par lโ€™Organisation internationale de normalisation ISO en 1987 [5]. Le langage SQL peut รชtre considรฉrรฉ comme le langage dโ€™accรจs normalisรฉ aux bases de donnรฉes. Il est aujourdโ€™hui supportรฉ par la plupart des produits commerciaux que ce soit par les systรจmes de gestion de bases de donnรฉes micro tel quโ€™Access ou par les produits plus professionnels tels quโ€™Oracle. Il a fait lโ€™objet de plusieurs normes ANSI/ISO dont la derniรจre est la norme SQL3 qui a รฉtรฉ dรฉfinie en 1999, et qui a subi plusieurs rรฉvisions dont la plus rรฉcente date de 2011.

Le succรจs du langage SQL est dรป essentiellement ร  sa simplicitรฉ et au fait quโ€™il sโ€™appuie sur le schรฉma conceptuel pour รฉnoncer des requรชtes en laissant le SGBD responsable de la stratรฉgie dโ€™exรฉcution. SQL est un langage dรฉclaratif qui permet dโ€™interroger une base de donnรฉes sans se soucier de la reprรฉsentation interne (physique) des donnรฉes, de leur localisation, des chemins dโ€™accรจs ou des algorithmes nรฉcessaires. A ce titre il sโ€™adresse ร  une large communautรฉ dโ€™utilisateurs potentiels (pas seulement des informaticiens) et constitue un des atouts les plus spectaculaires des SGBDR [6]. Nรฉanmoins, le langage SQL ne possรจde pas la puissance dโ€™un langage de programmation : entrรฉes/sorties, instructions conditionnelles, boucles et affectations. Pour certains traitements il est donc nรฉcessaire de coupler le langage SQL avec un langage de programmation plus complet [7].

Bases de donnรฉes NoSQL

Aprรจs avoir exposรฉ les bases de donnรฉes relationnelles dans le chapitre prรฉcรฉdent, et montrer les limites de ce type surtout dans des environnements distribuรฉs et a forte charges, nous รฉtablirons dans ce chapitre un รฉtat de lโ€™art sur les nouveaux systรจmes dites NoSQL. Les systรจmes NoSQL viennent pour garantir certains critรจres que les bases de donnรฉes classiques ont montrรฉ des faiblesses. Nous allons voir leur รฉmergence, leurs diffรฉrents types et nous allons montrer leur utilitรฉ face aux nouvelles exigences ainsi un bref aperรงu des solutions NoSQL disponibles actuellement sur le marchรฉ. Bien que le terme NoSQL soit entendu pour la premiรจre fois en 1988 par Carlo Strozzi qui prรฉsentait รงa comme un modรจle de base de donnรฉe plus lรฉger et sans interface SQL, cโ€™est en 2009, lors de la rencontre NoSQL de San Francisco, quโ€™il prend un essor important. Durant cette confรฉrence, les dรฉveloppeurs ont prรฉsentรฉ des projets tels que Voldemort, Cassandra Project, Dynomite, HBase, Hypertable, CouchDB, MongoDB. Cette confรฉrence รฉtait considรฉrรฉe comme lโ€™inauguration de la communautรฉ des dรฉveloppeurs de logiciel NoSQL [11]. NoSQL est une combinaison de deux mots : No et SQL. Qui pourrait รชtre mal interprรฉtรฉe car lโ€™on pourrait penser que cela signifie la fin du langage SQL et quโ€™on ne devrait donc plus lโ€™utiliser. En fait, le ยซ No ยป est un acronyme qui signifie ยซ Not only ยป, c’est-ร -dire en franรงais ยซ non seulement ยป, cโ€™est donc une maniรจre de dire quโ€™il y a autre chose que les bases de donnรฉes relationnelles [12].

EMERGENCE DU NOSQL

Avec lโ€™augmentation de la bande passante sur internet, ainsi que la diminution des coรปts des matรฉriels informatiques, de nouvelles possibilitรฉs ont vu le jour dans le domaine de lโ€™informatique distribuรฉe. Le passage au 21รจme siรจcle par la rรฉvolution du WEB 2.0 a vu le volume de donnรฉes augmenter considรฉrablement. Ces donnรฉes proviennent essentiellement de rรฉseaux sociaux, base de donnรฉes mรฉdicales, indicateurs รฉconomiques, etc. La gestion de ces volumes de donnรฉes est donc devenue un problรจme que les bases de donnรฉes relationnelles nโ€™ont plus รฉtรฉ en mesure de gรฉrer. Le NoSQL. regroupe donc de nombreuses bases de donnรฉes qui ne se reposent donc plus sur une logique de reprรฉsentation relationnelle. Il nโ€™est toutefois pas simple de dรฉfinir explicitement ce quโ€™est une base de donnรฉes NoSQL รฉtant donnรฉ quโ€™aucune norme nโ€™a encore รฉtรฉ instaurรฉe. Le besoin fondamental auquel rรฉpond le NoSQL est la performance. Afin de rรฉsoudre les problรจmes liรฉs ร  la gestion de grandes quantitรฉs de donnรฉe ยซ Big data ยป, les systรจmes NoSQL sont optimisรฉs pour la scalabilitรฉ horizontale. Un autre aspect important du NoSQL est quโ€™il rรฉpond au thรฉorรจme de CAP qui est plus adaptรฉ pour les systรจmes distribuรฉs. Servant ร  manipuler de gros volumes de donnรฉes, il est donc destinรฉ aux grandes entreprises. Dรจs 2010, le NoSQL a commencรฉ ร  sโ€™รฉtendre vers les plus petites entreprises nโ€™ayant pas les moyens dโ€™acquรฉrir des licences Oracle qui ont donc dรฉveloppรฉ leurs propres SGBD en imitant les produits Google et Amazon [11].

Modรจle de donnรฉes

Le modรจle relationnel est basรฉ est sur un modรจle mathรฉmatique qui est celui de la notion des ensembles. Chaque ensemble ici est reprรฉsentรฉ par une table, et ces attributs sont quant ร  eux reprรฉsentรฉs par des colonnes. Lโ€™un des principes fondamentaux est justement cette notion de relation entre tables ร  lโ€™aide de cardinalitรฉs, clรฉs primaires et clรฉ รฉtrangรจres, ceci implique au prรฉalable une รฉtude minutieuse sur la modรฉlisation du schรฉma de la base de donnรฉes pour identifier les tables dont le systรจme aura besoin, ses attributs, les relations possibles entre diffรฉrentes tables, etc. Une fois ce modรจle mis en place dans un SGBD Relationnel, il est difficile de changer la structure de celui-ci et ceci pose par consรฉquent des problรจmes lors de sa rรฉingรฉnierie. Le mouvement NoSQL lui est plus pragmatique, basรฉ sur des besoins de stockage de donnรฉes ainsi quโ€™une liaison plus forte avec les diffรฉrents langages clients. La plupart des moteurs de base de donnรฉes NoSQL nโ€™utilisent pas de schรฉmas prรฉdรฉfinis ร  lโ€™avance, dโ€™oรน lโ€™appellation ยซ schema-less ยป, ce qui signifie sans schรฉma. Ainsi le moteur de la base de donnรฉes nโ€™effectue pas de vรฉrification et nโ€™impose pas de contrainte de schรฉma, les donnรฉes รฉtant organisรฉes du cotรฉ code de client. Toutefois le principe ยซ schema-less ยป est thรฉorique et ne se vรฉrifie pas entiรจrement en pratique. Le maintien dโ€™une structure de donnรฉes homogรจnes est important, pour des questions dโ€™indexation, de recherche par critรจre ou tout simplement pour des raisons de logique.

Gestion de la valeur NULL

En SQL, lors de la dรฉfinition dโ€™une table, il est possible de dรฉcider si un attribut peut contenir une valeur ou non lors de lโ€™enregistrement dโ€™un tuple en dรฉfinissant la colonne ร  ยซNullยป ou ยซNot Nullยป. Ceci est utile pour contraindre lโ€™utilisateur ร  renseigner sur certains attributs que lโ€™administrateur de la base de donnรฉes considรจre comme indispensables. Cela dit, dรป au fait de sa reprรฉsentation en deux dimensions (ligne, colonne) et de sa rigiditรฉ dans sa structure, il est indispensable de signaler lโ€™absence de valeur ร  lโ€™aide dโ€™un marqueur Null, ce qui coรปte en espace mรฉmoire. Un autre souci du Null est sa gestion dans le langage SQL. Etant donnรฉ que le Null nโ€™est pas une valeur, il ne peut donc pas รชtre comparable. En voici une illustration avec la clause ยซWHEREยป : Lโ€™exemple ci-dessus dรฉmontre quโ€™il faut explicitement citer la valeur Null dans la requรชte. En effet, le test sur une valeur Null ne retourne pas TRUE ou FALSE mais la valeur UNKNOW. Dans nos 2 premiers tests il va donc sรฉlectionner les produits qui rรฉpondront TRUE ร  leur requรชte respective. Dans le troisiรจme test il faut explicitement signaler une valeur Null possible pour que la valeur Null soit prise en considรฉration. Dans des bases de donnรฉes NoSQL il nโ€™y a pas une gestion spรฉcifique du Null, รฉtant donnรฉ que dans des bases de type document ou clรฉ-valeur la notion de schรฉma nโ€™existe pas, si lโ€™on veut exprimer quโ€™un attribut nโ€™a pas de valeur il suffit de ne pas le mettre. Mรชme chose dans les bases de type colonne, les colonnes รฉtant dynamiques, elles ne seront prรฉsentes quโ€™en cas de nรฉcessitรฉ.

Bases de donnรฉes orientรฉes colonnes

Les bases de donnรฉes orientรฉes colonnes ont รฉtรฉ conรงues par les gรฉants du web afin de faire face ร  la gestion et au traitement de gros volumes de donnรฉes sโ€™amplifiant rapidement de jours en jours. Elles intรจgrent souvent un systรจme de requรชtes minimalistes proche du SQL. Bien quโ€™elles soient abondamment utilisรฉes, il nโ€™existe pas encore de mรฉthode officielle ni de rรจgles dรฉfinies pour quโ€™une base de donnรฉes orientรฉe colonnes soit qualifiรฉe de qualitรฉ ou non. Les bases de donnรฉes orientรฉes colonnes ne diffรจrent pas beaucoup des bases SQL classique du point de vue architectural. La principale diffรฉrence est la faรงon dont les donnรฉes sont stockรฉes en mรฉmoire : dans une base de donnรฉes relationnelles les donnรฉes sont stockรฉes par ligne, de ce fait une requรชte portant sur peu de lignes mais beaucoup de colonnes sera rapide car le systรจme nโ€™aura pas ร  beaucoup se dรฉplacer en mรฉmoire, alors que dans une base orientรฉe colonnes les donnรฉes sont stockรฉes par colonnes, de ce fait le systรจme sera beaucoup plus rapide de parcourir les lignes dโ€™une table. Concrรจtement cela signifie que, contrairement aux bases orientรฉes lignes, les utilisateurs qui souhaitent des informations prรฉcises nโ€™auront pas ร  sโ€™encombrer des informations inutiles des autres colonnes. En effet les bases orientรฉes lignes se doivent de lire entiรจrement les lignes avant de sรฉlectionner les colonnes dรฉsirรฉes par la requรชte.

Ce type de structure permet dโ€™รชtre plus รฉvolutif et flexible ; cela vient du fait quโ€™on peut ajouter ร  tout moment une colonne ou une super-colonne (une super-colonne est une colonne contenant dโ€™autres colonnes) ร  nโ€™importe quelle famille de colonnes. Autrement dit, et contrairement ร  une base de donnรฉes relationnelle ou les colonnes sont statiques et prรฉsentes pour chaque ligne, celles des bases de donnรฉes orientรฉe colonnes sont dite dynamiques et prรฉsentes donc uniquement en cas de nรฉcessitรฉ. De plus le stockage dโ€™un ยซ Null ยป est inexistant. Prenons lโ€™exemple de lโ€™enregistrement dโ€™un client nรฉcessitant son nom, prรฉnom et adresse. Dans une base de donnรฉes relationnelle il faut donc au prรฉalable crรฉer le schรฉma (la table) qui permettra de stocker ces informations. Si un client nโ€™a pas dโ€™adresse, la rigiditรฉ du modรจle relationnel nรฉcessite un marqueur Null, signifiant une absence de valeur qui coรปtera toutefois de la place en mรฉmoire. Dans une base de donnรฉes orientรฉe colonne, la colonne adresse nโ€™existera tout simplement pas [16].

Le rapport de stage ou le pfe est un document d’analyse, de synthรจse et d’รฉvaluation de votre apprentissage, c’est pour cela rapport gratuit propose le tรฉlรฉchargement des modรจles gratuits de projet de fin d’รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties d’un projet de fin d’รฉtude.

Table des matiรจres

INTRODUCTION GENERALE
CHAPITRE 1 : Bases de donnรฉes relationnelles et leurs limites
1.INTRODUCTION
2.DEFINITIONS ET CONCEPTS DE BASES
2.1 Dรฉfinition dโ€™une base de donnรฉes
2.2 Dรฉfinition dโ€™un systรจme de gestion de base de donnรฉes
3.OBJECTIFS DES SGBD
3.1 Administration facilitรฉe des donnรฉes
3.2 Efficacitรฉ des accรจs aux donnรฉes โ€ฆ
3.3 Redondance contrรดlรฉe des donnรฉes
3.4 Cohรฉrence des donnรฉes
3.5 Partage des donnรฉes
3.6 Sรฉcuritรฉ des donnรฉes
4.PROPRIETES D’UN SGBD RELATIONNEL
5.CONCEPTS PRINCIPAUX
5.1 Table et Attribut
5.2 Clรฉs
5.2.1 Clรฉs primaires
5.2.2 Clรฉs รฉtrangรจres
6.LANGAGES DE MANIPULATION DES DONNEES RELATIONNELLES
6.1 Introduction
6.2 Langage SQL
6.3 SQL au sein d’un SGBD
7.PROPRIETES ACID
8.LIMITES DE SGBD RELATIONNELS
8.1 Modรฉlisation des entitรฉs rรฉelles
8.2 Surcharge sรฉmantique
8.3 Contraintes dโ€™intรฉgritรฉ
8.4 Langage de manipulation
8.5 Scalabilitรฉ limitรฉe
8.6 Propriรฉtรฉs ACID en milieu distribue
8.7 Limites face aux usages
CONCLUSION
CHAPITRE 2 : Bases de donnรฉes NoSQL
1.INTRODUCTION
2.HISTORIQUE
3.EMERGENCE DU NOSQL
4.DIFFERENCES ENTRE LE NOSQL ET LE RELATIONNEL
4.1 Caractรฉristiques du modรจle relationnel
4.1.1 Modรจle de donnรฉes
4.1.2 Gestion de la valeur NULL
4.2 Transactions
4.2.1 Scalabilitรฉ
4.3 Cohรฉrence contre disponibilitรฉ
5.THEOREME DE CAP
6.PROPRIETES B.A.S.E
7.TYPES DE BASES DE DONNEES NOSQL
7.1 Bases de donnรฉes clรฉ-valeur
7.2 Bases de donnรฉes orientรฉes colonnes
7.3 Bases orientรฉes document
7.4 Bases orientรฉes graphes
8.AVANTAGES DU NoSQL
8.1 Scalabilitรฉ horizontale (รฉlasticitรฉ, sharding automatique)
8.2 Solution รฉconomique
8.3 Gestion de gros volume de donnรฉes
8.4 Administrateur de bases de donnรฉes moins indispensable
8.5 Les schรฉmas de la base ne sont pas figรฉs ยซย shรฉmalessย ยป
8.6 Gestion de donnรฉes hรฉtรฉrogรจnes
8.7 Fiabilitรฉ lors du stockage de donnรฉes dites critiques
8.8 Haute disponibilitรฉ
RAISONS Dโ€™ADOPTATION Dโ€™UNE SOLUTION NOSQL
CONCLUSION
CHAPITRE 3 : Rรฉalisation
PARTIE 1 : Domaine dโ€™รฉtude et choix du systรจme NoSQL
1.INTRODUCTION
2.DOMAINE Dโ€™ETUDE
2.1 Daรฏra de Sebdou
2.2 Service des passeports biomรฉtrique
2.2.1 Organisation de Service
2.2.2 Principaux objectifs de la plateforme technique dรฉployรฉe au niveau de la daรฏra
2.3 Motivation du choix dโ€™un tel domaine
3.JUSTIFICATION DU CHOIX DE MONGODB
3.1 Convenance des types des systรจmes NoSQL au projet
3.1.1 bases clรฉ/valeur
3.1.2 Bases de donnรฉes orientรฉes document
3.1.3 Bases en colonnes
3.1.4 Bases orientรฉes graphes
3.2 Critรจre favorisant la consistance dans le thรฉorรจme de CAP
3.3 Critรจre de dernier classement annuel des SGBD
3.4 Synthรจse
4.MongoDB
4.1 Introduction
4.2 Reprรฉsentation de Documents
4.3 Collections de documents
4.4 Requรชtes avec Mongodb
4.4.1 Opรฉrations CRUD
4.4.2 Critรจres de recherche
4.4.3 Projections
4.4.4 Jointures
4.5 Scalabilitรฉ
4.5.1 Dรฉfinition
4.6 Rรฉplication et reprise sur panne
4.6.1 Intรฉrรชt de la rรฉplication
4.6.2 Techniques de rรฉplication
4.7 Cohรฉrence des donnรฉes
4.8 Rรฉplication dans MongoDB
4.8.1 Replica set
4.9 Partitionnement
4.9.1 Principes gรฉnรฉraux
4.9.2 Clรฉ de partitionnement
4.9.3 Structures
PARTIE 2 : Implรฉmentation et mise en oeuvre de la migration
1.TABLES CENTRALES ORACLE DE LA BIOMETRIE
2.ENVIRONNEMENT DE TRAVAIL
2.1 Environnement hard
2.2 Langage de programmation
2.3 Outil de dรฉveloppement
2.4 Systรจme de gestion de base de donnรฉes
2.5 Format de donnรฉes communiquรฉes
3.INSTALLATION ET CONFIGURATION DE MONGODB
3.1. Prรฉparation et installation
3.2. Lancement des services MongoDB sous Ubuntu 16.04
3.3. Lancement des services MongoDB sous Windows 7
4.INSTALLATION ET CONFIGURATION DE L’ENVIRONNEMENT DISTRIBUE
4.1. Configuration des Shards MongoDB
4.2 Configuration du Serveur de Config MongoDB
4.3. Configuration du Serveur Mongos
5.Migration des donnรฉes Oracle vers mongodb
5.1. Gรฉnรฉration de fichier JSON (Application oracle-json)
5.2. Import des donnรฉes JSON vers MongoDB
6.Exploitation dans lโ€™environnement distribuรฉ
6.1. Test et exploitation du Sharding
6.2 Rรฉsultats de comparaison performance
CONCLUSION
CONCLUSION GENERALE
REFERENCES BIBLIOGRAPHIQUES
Liste des Figures
Liste des Tableaux

Rapport PFE, mรฉmoire et thรจse PDFTรฉlรฉcharger le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *