diff --git a/openbis_ng_ui/src/js/components/database/Database.jsx b/openbis_ng_ui/src/js/components/database/Database.jsx
index 61dc4424e10073ffca65c410c68024efbc900a49..84daa8946b7f4cb5f09bbe68730fa037688a8eca 100644
--- a/openbis_ng_ui/src/js/components/database/Database.jsx
+++ b/openbis_ng_ui/src/js/components/database/Database.jsx
@@ -2,6 +2,7 @@ import React from 'react'
 import { withStyles } from '@material-ui/core/styles'
 import Content from '@src/js/components/common/content/Content.jsx'
 import DatabaseBrowser from '@src/js/components/database/browser/DatabaseBrowser.jsx'
+import DatabaseTab from '@src/js/components/database/DatabaseTab.jsx'
 import pages from '@src/js/common/consts/pages.js'
 import logger from '@src/js/common/logger.js'
 
@@ -35,8 +36,7 @@ class Database extends React.PureComponent {
   }
 
   renderTab(tab) {
-    const { object } = tab
-    return object.type + ': ' + object.id
+    return <DatabaseTab tab={tab} />
   }
 }
 
diff --git a/openbis_ng_ui/src/js/components/database/DatabaseTab.jsx b/openbis_ng_ui/src/js/components/database/DatabaseTab.jsx
new file mode 100644
index 0000000000000000000000000000000000000000..d9a6f2140fd3975f99536cabb404f9b0a8f3af61
--- /dev/null
+++ b/openbis_ng_ui/src/js/components/database/DatabaseTab.jsx
@@ -0,0 +1,77 @@
+import React from 'react'
+import AppController from '@src/js/components/AppController.js'
+import openbis from '@src/js/services/openbis.js'
+import objectType from '@src/js/common/consts/objectType.js'
+import pages from '@src/js/common/consts/pages.js'
+import logger from '@src/js/common/logger.js'
+
+class DatabaseTab extends React.PureComponent {
+  constructor(props) {
+    super(props)
+    this.state = {
+      text: ''
+    }
+  }
+
+  async componentDidMount() {
+    const { tab } = this.props
+    const { object } = tab
+
+    let typeText = null
+    let idText = null
+
+    if (object.type === objectType.SPACE) {
+      typeText = 'Space'
+      idText = object.id
+    } else if (object.type === objectType.PROJECT) {
+      typeText = 'Project'
+      const projects = await openbis.getProjects(
+        [new openbis.ProjectPermId(object.id)],
+        new openbis.ProjectFetchOptions()
+      )
+
+      if (projects[object.id]) {
+        idText = projects[object.id].getCode()
+      }
+    } else if (object.type === objectType.COLLECTION) {
+      typeText = 'Collection'
+      const experiments = await openbis.getExperiments(
+        [new openbis.ExperimentPermId(object.id)],
+        new openbis.ExperimentFetchOptions()
+      )
+      if (experiments[object.id]) {
+        idText = experiments[object.id].getCode()
+      }
+    } else if (object.type === objectType.OBJECT) {
+      typeText = 'Object'
+      const samples = await openbis.getSamples(
+        [new openbis.SamplePermId(object.id)],
+        new openbis.SampleFetchOptions()
+      )
+      if (samples[object.id]) {
+        idText = samples[object.id].getCode()
+      }
+    } else if (object.type === objectType.DATA_SET) {
+      typeText = 'Data Set'
+      idText = object.id
+    }
+
+    const tabWithLabel = {
+      ...tab,
+      label: (typeText || object.type) + ': ' + (idText || object.id)
+    }
+
+    AppController.getInstance().replaceOpenTab(
+      pages.DATABASE,
+      tabWithLabel.id,
+      tabWithLabel
+    )
+  }
+
+  render() {
+    logger.log(logger.DEBUG, 'DatabaseTab.render')
+    return this.props.tab.label || ''
+  }
+}
+
+export default DatabaseTab