Vous êtes sur la page 1sur 12

SGBD OO/ ObjectStore PSE Pro

Rachid OULAD HAJ THAMI


ENSIAS
Université Mohamed V

Partie II: ObjectStore for JAVA (aperçu)

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Fonctionnement général

Fonctionnement général d’ObjectStore

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Organisation générale d’un programme

Création d'une session


[Création de la DB]

Ouverture de la DB create, open


-
Début de la transaction
Accès aux racines accès aux racines de persistance, lecture /
Traitement sur les données modification des données.
Fin de la transaction
-
Fermeture de la DB
destroy, close
Fermeture de la session

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Création de BD
Méthode: public static Database create(String name, int fileMode)

Classe: java.lang.Object
| +----COM.odi.Placement
| +----COM.odi.Database
Syntaxe :
Database db = Database.create ("nomdb", droits);
Nomdb : String
Droits : idem unix (Ex : 0644) constantes prédéfinies d’ObjectStore

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Ouverture d’une BD
Méthode: public static Database open(String name, int openMode)

Classe: java.lang.Object
| +----COM.odi.Placement
| +----COM.odi.Database

Syntaxe: Database db = Database.open("myDb.odb", modeOuverture);

Modes d’ouvertures: ObjectStore.UPDATE ; ObjectStore.READONLY

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
BD création/ouverture: exemple
Exemple:
public static void initialize(String dbName)
{ /*création d’une session et connexion à la session*/
/* Ouverture de la base ou création d’une nouvelle si nécessaire. */
try { Database db = Database.open(dbName, ObjectStore.UPDATE);
}
catch (DatabaseNotFoundException e)
{Database db = Database.create(dbName,
ObjectStore.ALL_READ | ObjectStore.ALL_WRITE);
}

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Fermeture/destruction d’une BD
Méthode: public void close(boolean retainAsTransient)

Syntaxe: DB.close(); DB.close(true); DB.close(false)


Condition: toutes les transactions terminées

Méthode: public abstract void destroy()

Syntaxe: Db.destroy()
Condition: toutes les transactions terminées
La BD doit être ouverte en UPDATE

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Transactions
•Début
•Syntaxe : Transaction T = Transaction.begin(mode)

•Mode :
ObjectStore.UPDATE Attente infinie
ObjectStore.READONLY
ObjectStore.UPDATE_NON_BLOCKING Pas de blocage
ObjectStore.READONLY_NON_BLOCKING

•Remarque : Il est possible de modifier les objets accédés lors du transaction


READ_ONLY, ces modifications ne seront pas appliquées au moment du
commit.

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Transactions
•Fin
Syntaxe: Tr.commit(mode) Validation des modifications
Tr.abort(mode) Annulation des modifications

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Session
•Les sessions constituent le contexte dans lequel les opérations
sur la base sont possibles.

•Syntaxe : maSession = Session.create (null,null);

•Pour remédier à la limitation du nombre de session par VM


Java, il suffit d'utiliser plusieurs threads. Chacun des thread
peut utiliser la même session après avoir rejoint la session :
maSession.join();

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Stockage, accès et maj des objets
Database db = Database.open(dbName, ObjectStore.UPDATE);
Création ou ouverture de BD Database db = Database.create(dbName,
ObjectStore.ALL_READ | ObjectStore.ALL_WRITE);

Début Transaction UPDATE Transaction T = Transaction.begin(ObjectStore.UPDATE )

OSHashList allUsers = (OSHashList)


Création ou accès à la racine de la BD db.getRoot("allUsers");
OSHashList()) allUsers;
db.createRoot("allUsers", OSHashList allUsers = new
OSHashList());
Référencer l’objet par la racine

Commit Transaction tr.commit();

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS
Les collections
Class COM.odi.util

•OSHashBag Collection •OSTreeMapxxx Map


•OSHashSet Set •OSTreeMapBytearray
•OSHashTable None •OSTreeMapDouble
•OSVectorList List •OSTreeMapFloat
•OSTreeSet Set •OSTreeMapInteger
•OSVector Collection •OSTreeMapInteger
• OSVectorList List •OSTreeMapString

BASES DE DONNEES ORINTEES OBJETS, ObjectStore PSE Pro Rachid OULAD HAJ THAMI/ ENSIAS

Vous aimerez peut-être aussi