Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Fedora uses several database tables and indexes to provide fast retrieval of some information. This page will document documents the various tables Fedora creates. Because of Due to differences in databases, some datatypes might not match the implemented type in your database exactly (ie. datetime versus timestamp).

When a Fedora repository is started with an empty database it begins an indexing process to create these indexes from the content on disk. You can force the rebuilding of these internal indexes by setting the fcrepo.rebuild.on.start JVM property to true. For more information again visit the Properties page.

Info

For the full list of database properties, please refer to the Database section of the Properties documentation.

You can find additional information on this wiki about how Fedora rebuilds these caches and configuring supported databases.

Technical Information

...

Containment Index

The containment index is a series of tables/indexes used to track the ldp:contains relationships of containers in Fedora.

...

FieldTypeConstraintsDescription
fedora_idvarchar(503)NOT NULL, PRIMARY KEYThe internal ID of the resourceresource 
parentvarchar(503)NOT NULLThe internal ID of the containing resource
start_timedatetimeNOT NULLThe datetime when the resource was created
end_timedatetime
The datetime when the resource was deleted (but still has a tombstone)
updateddatetime
The datetime when any contained resources were updated (used for eTags)

...

FieldTypeConstraintsDescription

subject_id

varchar(503)NOT NULLThe internal ID of the resource initiating the relationship (ie. the subject)
propertyvarchar(503)NOT NULLThe predicate of the relationship
object_idvarchar(503)NOT NULLThe internal ID of the resource which is the target of the relationship (ie. the object)
source_idvarchar(503)NOT NULLThe internal ID of the direct or indirect container containing the resource that created the relationship.
proxy_idvarchar(503)NOT NULLThe internal ID of the resource that created the relationship. This is contained within the source_id
start_timedatetime
The datetime the relationship started.
end_timedatetime
The datetime the relationship ended.
last_updateddatetime
The datetime the relationship was last updated. (used for eTags)
tx_idvarchar(36)NOT NULLThe transaction id this record belongs to
operationvarchar(10)NOT NULLThe type of operation this is, one of 'add' or 'delete'
force_flagvarchar(10)??? (seems to always be NULL)
Indicates that a 'delete' operation should purge an entry from the membership index completely, rather than assigning it and end_time. Used for on-demand versioning when the membership relation existed because of uncommitted state in a mutable head.

...

Inbound Reference Index

The inbound reference tables hold relationships between two resources in the repository, due to there being no single subject restriction it is possible for a 3rd resource to generate an inbound reference from a 1st resource to a 2nd resource. This relationship will persist even if the 2nd resource was deleted.

...

This index contains basic information about all the resources in the repository.

FieldTypeConstraintsDescription
id
bigintPRIMARY KEY, AUTO INCREMENT
A unique numeric id for this resource.
fedora_id
          varchar(503)
NOT NULL, UNIQUE KEY
The internal ID of the resource.
createddatetimeNOT NULLThe datetime the resource was created.
modifieddatetimeNOT NULLThe datetime the resource was last modified.
content_sizebigint
The size of the content.
mime_typevarchar(255)
The mime-type of the resource

search_rdf_type

This index contains rdf types that exist in the repository.

FieldTypeConstraintsDescription
id
bigintPRIMARY KEY, AUTO INCREMENT
A unique numeric id for this rdf type.
rdf_type_urivarchar(255)NOT NULL, UNIQUE KEY
The URI of the RDF type

search_resource_rdf_type

This index links resources from the simple_search table to rdf types in the search_rdf_types table.

FieldTypeConstraintsDescription
resource_id
bigintNOT NULL, FOREIGN KEY REFERENCES simple_search (id)ID from the simple_search table
rdf_type_idbigintNOT NULL, FOREIGN KEY REFERENCES rdf_type_uri (id)ID from the search_rdf_type table