WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et realisation d'un robot virtuel marketiste

( Télécharger le fichier original )
par Sorex HEMADAK ENKAM
Institut Africain d'informatique - Ingénieur des Travaux Informatiques option Genie Logiciel 2014
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

II- CHOIX TECHNOLOGIQUE ET MISE EN OEUVRE

1. Choix technologique

A partir de l'étude de l'architecture technique, il faut sélectionner les composants spécifiques, tels que la plate-forme matérielle et logicielle SGBD à mettre en oeuvre. Une fois les produits installés ils sont testés méticuleusement afin de garantir une intégration adéquate d'un bout à l'autre de l'environnement.

· LANGAGE DE PROGRAMMATION

Tableau 16 : Langages de programmation utilisés

LANGAGE

VERSION

ROLE

PYTHON

2.7

Favorise la programmation impérative structurée

HTML

5

Création des pages web

CSS

3

Mise en forme de style

NoSQL

 

Manipulation des requêtes

Jinja

 

Dynamiser les pages html

JavaScript

3

Dynamiser les pages web

2. Ressourceslogicielles

Tableau 17 : Ressources logicielles

Outils

Version

Editeur

Description

Taille

MongoDB

2.4

Romain Bourdon

SGBD orienté documents

80Mo

Mozilla Firefox

31.0

Mozilla

Navigateur web

28,8Mo

Adobe Photoshop CS5

4

Suite Adobe

Retouche d'images

182Mo

Gantt Projet

2.0.10

Free software fondation

Editer le diagramme de planification du projet

9.22 Mo

PowerAMC

12.5

Sybase

AGL

131 Mo

Microsoft office

2016

Microsoft

Suite bureautique permettant l'édition de plusieurs rapports

600 Mo

Django Framework

6.0

Django software fondation

Framework web Python open-source

10 Mo

CentOs 7

7

Communauté Red Hat (Unix)

Distribution GNU/Linux

4 Giga

Emacs

2.5

Richard Stallman

Editeurs de texte

Editeur de code

3. Choix technologique

Tableau 18 : Choix technologique

NOSQL (MongoDB)

SQL (MySQL)

MongoDB est un SGBD Orienté Documents, open-source python développé par MongoDB, Inc. Il stocke les données dans JSON-comme des documents qui peuvent varier dans la structure. Informations connexes est stockée pour l'accès de requête rapide à travers le langage de requête MongoDB. MongoDB utilise les schémas dynamiques, ce qui signifie que vous pouvez créer des collections sans avoir d'abord définir la structure.

MySQL est un système de gestion de base de données relationnelle open-source (SGBDR) qui est développé, distribué et supporté par Oracle Corporation. Comme d'autres systèmes relationnels, stocke les données dans des tables MySQL et utilise un langage structuré de requêtes (SQL) pour un accès de base de données

TERMINOLOGIE ET CONCEPTS

Collection

Table

Document

Row

Champ

Colonne

COMPARAISON DES FONCTIONNALITES

Rich Data Model

Oui

Rich Data Model

Non

DyamicSchema

Oui

DyamicSchema

Non

Données saisies

Oui

Données saisies

Oui

Jointures

Non

Jointures

Oui

QUERY LANGUAGE

INSERT INTO utilisateurs

(user_id, âge, statut)

db.users.insert ({user_id: "bcd001",Âge: 45,statut: "A"})

SELECT * FROM utilisateurs

db.users.find ()

Utilisateurs UPDATE set status = "C"

Où l'âge> 25

db.users.update ({Age: {$ gt: 25}},{$ Ensemble: {status: "C"}},{Multiples: true})

Pourquoi utiliser MongoDB au lieu de MySQL?

Les Organisations de toutes tailles adoptent MongoDB, car il leur permet de construire des applications plus rapidement, gérer les types de données très diverses, et gérer des applications plus efficacement à l'échelle. Le développement est simplifié et son utilisation enlève la couche complexe Mapping Objet-Relationnel (ORM) qui traduit les objets dans le code de tables relationnelles.

4. Description détaillée de la mise en oeuvre

Cette partie consiste à décrire et à présenter la création de la base de données et de quelques tables, quelques codes sources d'une part, la présentation des interfaces d'autre part.

· Quelques requêtes sous MongoDB

· Création de la base de donnée

>db.createUser({ user:"testuser",pwd:"testpwd ",roles:[{role:"dbOwner", db: "testdb"}]})

Successfully added user: {

"user" : "testuser",

"roles" : [

{

"role" : "userAdminAnyDatabase",

"db" : "testdb"

}

]

}

· Afficher les informations concernant un utilisateur

>db.system.users.find()

· Créer une collection

>db.createCollection("my collection")

{"ok":1}

· Afficher la liste des collections de base de données

>show collections

· Quelques codes sources python

· Classe permettant la synchronisation de la base de données distante et la base de données locale

class DrmUserUpdate:

"""DrmUserUpdate deals with keeping the DRM local database

in sync with the Dreamreal - Gymglish users Database.

"""

def InitCompanies(self,vecGgCid=vecGgCid):

"""initialization function of the corporate collection

"""

db = self.client[self.dbname]

collection = db.companies

for cle,valeur in vecGgCid.items():

collection.insert({"name": valeur,"ggcid": cle})

return collection

if __name__ == '__main__':

· Fonction (constructeur) de connexion a la Base de Données

def__init__(self, DbSection='WORKDATABASE'):

"""Init

"""

user=drmconf.config.get(DbSection,'USER')

host=drmconf.config.get(DbSection,'HOST')

port=drmconf.config.get(DbSection,'PORT')

pwd=drmconf.config.get(DbSection,'PWD')

self.dbname=drmconf.config.get(DbSection,'DBNAME')

url='mongodb://' + user + ':' + pwd + '@' + host + ':' + port + '/' + self.dbname

self.client=pymongo.MongoClient(url)

· Fonction de test (test unitaire) dela fonction ExcelTocsv

deftestExcelTocsv(self):

"""test the Convertion excel to csv function

"""

filename = drmconf.drmenginepath + "/helpers/test/toto.xls"

fd = open(filename)

DUU=drmuserupdate.DrmUserUpdate(DbSection='TESTDATABASE')

filecontent = fd.read()

res=DUU.excelTocsv(filecontent)

self.failUnless(res.count("\n") == 84)

self.failUnless(res.count(";") == (85 * 18))

list = res.split("\n")

#assert value in cell(J,9) is 5.1

row = list[7]

columns = list[7].split(";")

self.failUnless(columns[9] == "5.1")

précédent sommaire suivant