--- title: IDBDatabase slug: Web/API/IDBDatabase tags: - API - IndexedDB - Interface - Reference translation_of: Web/API/IDBDatabase --- {{APIRef("IndexedDB")}} L'interface **`IDBDatabase`** de l'API IndexedDB fournit [une connexion à la base de données](/fr/docs/Web/API/API_IndexedDB#Se_connecter_à_la_base_de_données). On peut utiliser un objet `IDBDatabase` pour ouvrir une {{domxref("IDBTransaction","transaction")}} sur la base de données puis ajouter, éditer ou supprimer des enregistrements de cette base de données. Cette interface constitue le seul moyen d'accéder et de gérer les versions de la base de données. {{AvailableInWorkers}} > **Note :** Tout ce qui est fait dans une base de données indexée s'inscrit dans le contexte d'une transaction qui représente un interaction avec les données dans la base. Tout les objets de l'interface IndexedDB (incluant les accès aux magasins d'objets, indexes et curseurs) sont liés à une transaction en particulier. Aussi, on ne peut pas exécuter une commande, accéder aux données ou ouvrir quoi que ce soit, en dehors d'une transaction. ## Méthodes Cet objet hérite de [EventTarget](/fr/docs/Web/API/EventTarget). - {{domxref("IDBDatabase.close()")}} - : Ferme de façon asynchrone la connexion à la base de données. - {{domxref("IDBDatabase.createObjectStore()")}} - : Ajoute un magasin d’objet ou un index à la base de donnéeset le renvoie. - {{domxref("IDBDatabase.deleteObjectStore()")}} - : À partir d'un nom donné, supprime un magasin d'objet et les index associés. - {{domxref("IDBDatabase.transaction()")}} - : Renvoie une transaction sous la forme d'un objet {{domxref("IDBTransaction")}} sur lequel on peut appeler la méthode {{domxref("IDBTransaction.objectStore")}} afin d'accéder aux magasins d'objet de la base de données. ## Propriétés - {{domxref("IDBDatabase.name")}} {{readonlyInline}} - : Une chaîne de caractères ({{domxref("DOMString")}}) qui contient le nom de la base de données connectée. - {{domxref("IDBDatabase.version")}} {{readonlyInline}} - : Un [entier de 64 bits]() qui indique la version de la base de données connectée. Quand une base de données est créée, cette propriété est une chaîne de caractère vide. - {{domxref("IDBDatabase.objectStoreNames")}} {{readonlyInline}} - : Une liste de noms (sous la forme d'un objet {{domxref("DOMStringList")}} des magasins d'objets correspondants à la base de données connectée. ### Gestionnaires d'événements - {{domxref("IDBDatabase.onabort")}} - : S'exécute au déclenchement de l'événement `abort` quand la tentative d’accès à la base de donnée est interrompue. - {{domxref("IDBDatabase.onerror")}} - : S’exécute au déclenchement de l'événement `error` quand la connexion à la base de donnée échoue. - {{domxref("IDBDatabase.onversionchange")}} - : S’exécute au déclenchement de l'événement `versionchange` quand la structure de la base de donnée change (l'événement {{domxref("IDBOpenDBRequest.onupgradeneeded")}} ou {{domxref("IDBFactory.deleteDatabase")}} à été demandé ailleurs (probablement dans une autre fenêtre ou onglet sur le même ordinateur). Cela est différent de la transaction correspondant à un changement de version (cf. {{domxref("IDBVersionChangeEvent")}}) mais les concepts sont liés. ## Exemples Dans le fragment de code suivant, on ouvre une base de données de façon asynchrone avec {{domxref("IDBFactory")}} puis on gère les cas de succès et d'erreur avant de créer un nouveau magasin d'objet au cas où une mise à jour est nécessaire ({{domxref("IDBdatabase")}}). Pour étudier un exemple complet et fonctionnel, voir notre application [To-do Notifications](https://github.com/mdn/to-do-notifications/) ([voir l'exemple _live_](https://mdn.github.io/to-do-notifications/)). ```js // On ouvre la base de données var DBOpenRequest = window.indexedDB.open("toDoList", 4); // On ajoute les deux gestionnaires d'événements // qui agissent sur l'objet IDBDatabase object, // dans le cas où tout se passe bien ou non DBOpenRequest.onerror = function(event) { note.innerHTML += '