31
Ecole Nationale Supérieure d’informatique Exposé Base de donnée Berekley DB 1 Réalisé par: Chelghoum Ahlem (CdP) Souiad Ilhem Bouterbiat Oualid Dehimi Mustapha El Amine Kaddour Issa Kamel Section: A Groupe: A2

Exposé sur Berkeley Data Base

Embed Size (px)

DESCRIPTION

Cette présentation représente une description de la base de données Berkeley et ses principales caractéristiques.

Citation preview

Page 1: Exposé sur Berkeley Data Base

Ecole Nationale Supérieure d’informatique

Exposé Base de donnéeBerekley DB

Réalisé par: Chelghoum Ahlem (CdP) Souiad Ilhem Bouterbiat Oualid Dehimi  Mustapha El Amine Kaddour Issa Kamel

Section: AGroupe: A2

Page 2: Exposé sur Berkeley Data Base

2

Sommaire

• Introduction.• C’est quoi Berkeley?• Utilisation de Berkeley DB.• Famille de Berkeley DB.• Berkeley DB Tools.• La Paire Clé/Valeur.• Méthodes d’accès aux données.• Architecture de BDB.• Gestion des données.• Démonstration.• Conclusion.

Page 3: Exposé sur Berkeley Data Base

Introduction

Le SGBD est un logiciel destiné à stocker et à partager des informations dans une base de données en garantissant la qualité, la pérennité et la confidentialité des informations, tout en cachant la complexité des opérations, permet d’interagir avec une base de données.

Page 4: Exposé sur Berkeley Data Base

C’est quoi Berkeley

Berkeley DB (BDB) fait partie de la famille des bases de données « clé-valeur » et est sans doute le produit de cette famille le plus utilisé au monde avec plusieurs dizaines de millions de déploiement. La première version de BDB remonte à 1986 et est la propriété d'Oracle depuis février 2006.

Page 5: Exposé sur Berkeley Data Base

C’est quoi Berkeley

Il est utilisé dans de nombreux environnement sous Unix, Linux, Microsoft Windows et dans les systèmes embarqués

La dernière version de BDB c’est 6.0

Page 6: Exposé sur Berkeley Data Base

Utilisation de Berkeley DBBerkeley DB est embarquer dans plusieurs application propriétaire et open sourceBDB est le gestionnaire de données intégré dans la majorité des serveurs d'annuaire déployés aujourd'hui, y compris les serveurs LDAP de Netscape, MessageDirect ( Embarqué dans beaucoup de serveur de messagerie).On retrouve aussi Berkely DB dans le Apache web serveur et le Gnome desktop.Sendmail server utilise Berkeley DB pour le stockage des alias et information des utilisateurs

Page 7: Exposé sur Berkeley Data Base

Utilisation de Berkeley

Page 8: Exposé sur Berkeley Data Base

Famille Berkeley DB

• Oracle BDB core • Oracle BDB XML Edition• BDB Java Edition

Page 9: Exposé sur Berkeley Data Base

Berkeley DB Tools

Berkeley DB offre également des services de base de données basics pour les développeurs. Ces services comprennent :

Gestion page cache Transactions et l'exploitation forestière Verrouillage

Page 10: Exposé sur Berkeley Data Base

10

La distribution Open Source

• La distribution Berkeley BD dispose de essentiellement de 4 produit :

• Berkeley DB Data Store : c’est la distribution standard, il est destiné à être utilisé en mono-utilisateur ou dans applications où on peut garantir que pas plus d'un thread de contrôle ne sera jamais lancer pour mettre à jour la base de données à tout moment .

Page 11: Exposé sur Berkeley Data Base

11

La distribution Open Source

• Berkeley DB Concurrent Data Store:Permet la mise à jour simultané de la base de

donnée. Et donc plusieurs threads de contrôle peuvent se lancer simultanément.

Page 12: Exposé sur Berkeley Data Base

12

La distribution Open Source

• Berkeley DB transactionnel Data Store:Ajoute le support transactionnel complet au

Berkeley DB Data Store. Il est conçu pour les applications qui nécessitent des services de base de données de puissance industrielle , y compris d'excellentes performances sous des charges de travail haute concurrence avec un mélange des lecteurs et des écritures.

Page 13: Exposé sur Berkeley Data Base

13

La distribution Open Source

• Berkeley DB High Availability:Il est dédié à la réplication de données . Le maître gère

toutes les mises à jour , et les distribue à autant de répliques que l'application nécessite . Toutes les répliques peuvent gérer les requêtes de lecture pendant le traitement normal. Si le système maître échoue pour une raison quelconque, l'un des répliques reprend que le nouveau système de maître , et distribue des mises à jour des répliques restantes .

Page 14: Exposé sur Berkeley Data Base

La Paire Clé/ValeurPK ? Quantité immense de données(Web2.0). Besoin de disponibilité (high availibility). Performances dégradées de Relationnel lorsque la quantité de

données augmente(beaucoup de jointures).

« Berkley db a été le premier a implémenté cette technique ».

Principe: Données structurées sous forme de deux colonnes : clé &

valeurs. Clé unique. Valeur dynamique (peut être définit selon les besoins de

l’utilisateur : valeur1#valeur2#valeur3#...ex). Priorité disponibilité et non ACID.

Page 15: Exposé sur Berkeley Data Base

La Paire Clé/Valeur

Page 16: Exposé sur Berkeley Data Base

Méthodes d’accés aux données

B-Tree:Les clés ont une structure arbitraire.

Page 17: Exposé sur Berkeley Data Base

Méthode d’accés aux données

File d’attente: La méthode d'accès file d'attente utilise un verrouillage de niveau record (chaque

enregistrement est verrouillé par le gestionnaire de verrouillage.

Il est conçu pour les insertions rapides à la queue. A un curseur spécial consommer opération qui

supprime et retourne un enregistrement de la tête de la file d'attente.

Page 18: Exposé sur Berkeley Data Base

Architecture de BDB

Page 19: Exposé sur Berkeley Data Base

Gestion des données

Berkeley DB stocke des données rapidement et facilement sans la surcharge dans d'autres bases de données.

Berkeley DB est une bibliothèque C qui s'exécute dans le même processus que l'application, en évitant les retards de communication inter-processus de l'aide d'un serveur de base de données distant.

Caches partagés conservent des données les plus actives dans la mémoire, en évitant l'accès au disque coûteux.

Page 20: Exposé sur Berkeley Data Base

20

Quelques propriétés de BDB

• La taille de des clés est de 2^32 bits.• La taille des page est paramétrable, à la création

de la base, le développeur peut choisir la taille de la page.

• Offre aux utilisateurs le service de checkpoints, se service vérifie le fichier log et l’état de la base de donnée pour éventuellement lancer un update.

• Les dernières versions du BDB implémentent le langage SQL.

Page 21: Exposé sur Berkeley Data Base

21

Comparaison entre SQL et BDB query language

Expréssion SQL Equivalent Oracle Berkeley DB

Database Environment

Table Database

Tuple/row Key/data pair

Primary index Key

Secondary index Secondary database

Page 22: Exposé sur Berkeley Data Base

22

Comparaison entre SQL et BDB query language

CREATE DATABASE personnel

DB_ENV *dbenv;

ASSERT(db_env_create(&dbenv, 0) == 0);

DB_ASSERT(dbenv->open(dbenv, "my_databases/personnel", DB_CREATE | DB_INIT_LOCK | DB_INIT_MPOOL | DB_INIT_TXN | DB_THREAD, 0644);

CREATE cursor

DB *dbp; ASSERT(dbp->cursor(dbp, NULL, 0) == 0);

CREATE TABLE

DB *dbp; DB_ENV *dbenv ASSERT(db_create(&dbp, dbenv, 0) == 0); ASSERT(dbp->open(dbp, NULL, "employee.db", NULL, DB_BTREE, DB_AUTO_COMMIT | DB_CREATE | DB_THREAD, 0644) == 0).

Page 23: Exposé sur Berkeley Data Base

23

Comparaison entre SQL et BDB query language

INSERT INTO employees VALUES (00010002, "mouse", "mickey", 1000000.00, "Main Street", "Disney Land", "CA", 98765);

DB *dbp; DBT key_dbt, data_dbt; emp_data edata; emp_key ekey ekey = 00010002; strcpy(edata.lname, "Mouse"); strcpy(edata.fname, "Mickey"); edata.salary = 1000000.00; strcpy(edata.street, "Main Street"); strcpy(edata.city, "Disney Land"); strcpy(edata.state, "CA"); edata.zip = 98765memset(&key_dbt, 0, sizeof(key_dbt)); memset(&data_dbt, 0, sizeof(data_dbt)); key->data = &ekey; key->size = sizeof(ekey); data->data = &edata; data->size = sizeof(edata); ASSERT(dbp->put(dbp, NULL, &key_dbt, &data_dbt, DB_AUTO_COMMIT) == 0);

Page 24: Exposé sur Berkeley Data Base

24

Comparaison entre SQL et BDB query language

SELECT * FROM employees WHERE id=0010002 ;

DBT key_dbt, data_dbt; emp_data *edata; emp_key ekey; emp_key = 0010002; memset(&key_dbt, 0, sizeof(key_dbt)); key_dbt.data = &emp_key; key_dbt.size = sizeof(emp_key); memset(&data_dbt, 0, sizeof(data_dbt)); dbc->c_get(dbc, &key_dbt, &data_dbt, DB_SET);

Page 25: Exposé sur Berkeley Data Base

25

Comparaison entre SQL et BDB query language

DELETE FROM employees WHERE id= 0010002

DBT key_dbt; emp_key ekey; ekey = 0010002; memset(&key_dbt, 0, sizeof(key_dbt)); key_dbt.data = &ekey; key_dbt.size = sizeof(ekey); dbp->del(dbp, NULL, &key_dbt, 0);

Page 26: Exposé sur Berkeley Data Base

26

Démonstration

Page 27: Exposé sur Berkeley Data Base

Conclusion

L’ensembles des SGBD ont:Une centralisation des données.Un contrôle centralisé de l'accès aux donnéesIndépendance vis -à -vis de la structure physique et logique des données

Page 28: Exposé sur Berkeley Data Base

Conclusion

L’ensembles des SGBD assure:Une centralisation des données.Un contrôle centralisé pour l'accès aux donnéesIndépendance vis -à -vis de la structure physique et logique des données

Page 29: Exposé sur Berkeley Data Base

Conclusion

Berkeley diffère des autres SGBD dans:• Sa flexibilisé et rapidité.•Reliable et scalable.•Abélite car on peut choisir les features a utilisé.

Page 30: Exposé sur Berkeley Data Base

30

Merci pour votre attention

Page 31: Exposé sur Berkeley Data Base

31

Vos Questions