The Class is a concept taken from the Object-Oriented Programming paradigm. In OrientDB, classes define types of records. Conceptually, it's closest to the table in Relational Databases. You can make classes schema-less, schema-full or schema-hybrid.
Classes can inherit from other classes. Inheritance means that the sub-class extends the parent class, inheriting all its attributes as if they were its own.
Each class has its own clusters. These are either logical or physical. By default, they are logical. A class must have at least one defined cluster as its default cluster, but can support multiple clusters. OrientDB writes new records in the default cluster, but reads always involve all defined clusters.
When you create a new class, OrientDB creates a new physical cluster with it, which has the same name, but set in lowercase.
Each class contains one or more properties, (which are also called fields). This mode is similar to the classical model of Relational Databases, where you define tables before storing records.
For instance, consider the use case of creating an
Account class through the Java API. By default, new Physical Clusters are created to store the class instances.
OClass account = database.getMetadata().getSchema() .createClass("Account");
To create a new vertex or edge type, you need to extend the
E classes, respectively. For example,
OClass person = database.getMetadata().getSchema() .createClass("Account", database.getMetadata() .getSchema().getClass("V"));
For more information, see Graph Schema.
To retrieve persistent classes, use the
.getClass(String) method. If the class does not exist, the method returns a null value.
OClass account = database.getMetadata().getSchema() .getClass("Account");
To drop a persistent class use the
OSchema.dropClass(String) method. For instance,
When you use this method, OrientDB does not remove records from the removed class unless you explicitly delete them before dropping the class. For instance,
database.command(new OCommandSQL("DELETE FROM Account") .execute() database.getMetadate().getSchema.dropClass("Account");
To use constraints in schema-full mode, set the strict mode at the class-level. You can do this by calling the
setStrictMode(true) method. In this case, you must pre-define all properties of the record.