Server kernel adalah subsistem manajer penyimpanan yang menyediakan layanan utama berikut:
EyeDB object model ini terinspirasi oleh model SmallTalk, loop, ObjVlisp, Java dan ODMG
Kelas terdiri dari nama, kelas induk kecuali untuk objek kelas yang merupakan root kelas, satu
set atribut, satu set methods dan satu set trigger:
Atribut terdiri dari jenis, optionnal array pengubah dan literal atau objek. Misalnya, menggunakan
bahasa EyeDB ODL:
Type Polymorphism
Dua bahasa binding, C ++ dan Java, dan EyeDB OQL mendukung jenis polimorfisme: variabel
mungkin terikat dengan contoh-contoh dari berbagai jenis
bahwa setiap EyeDB kelas mewarisi dari kelas obyek
Jenis koleksi yang didukung oleh EyeDB adalah set, bag dan array:
EyeDB object model mendukung hanya biner relationship, yaitu hubungan antara dua jenis.
Hubungan biner mungkin satu-satu, satu-ke-banyak atau banyak-ke-banyak tergantung pada cardinality
dari jenis terkait. Hubungan tidak bernama.
EyeDB mempertahankan integritas referensial hubungan. Ini berarti bahwa jika objek yang
berpartisipasi dalam hubungan yang dihapus, maka setiap path traversal ke objek juga dihapus.
EyeDB mendukung atribut objek: atribut semacam ini memungkinkan satu objek untuk referensi
lain tanpa referensial integritas. Atribut objek-dihargai mengimplementasikan hubungan
unidirectionnal: dalam kasus ini, EyeDB tidak menjamin integritas referensial. Catatan bahwa
unidirectionnal relationship tidak disebut hubungan.
Constraints
The not null constraint pada atribut dalam kelas X berarti bahwa tidak ada kasus kelas X dapat
memiliki nilai atribut ini tidak ditetapkan.
The unique constraint pada atribut dalam kelas X berarti bahwa seseorang tidak dapat membuat
instance kelas X yang memiliki nilai atribut yang sama dari contoh yang ada di database.
The cardinality constraint pada contoh koleksi kelas berarti bahwa jumlah dari koleksi ini harus
mengikuti batasan cardinality
EyeDB objek definisi bahasa (ODL) adalah bahasa berdasarkan ODL ODMG untuk menentukan
spesifikasi dari jenis objek. ODL tidak dimaksudkan untuk menjadi sebuah bahasa pemrograman
yang penuh
Seperti ODMG ODL, EyeDB ODL mendefinisikan kelas (warisan dan atribut), hubungan dan
metode signitures
Tidak seperti ODMG ODL, setiap instance kelas dapat digunakan baik sebagai literal atau sebagai
objek.
EyeDB ODL juga memungkinkan pengguna untuk menentukan apakah metode backend (yaitu
sisi server) atau frontend (yaitu sisi klien)
enum CivilState{
Lady = 0x10,
Sir = 0x20,
Miss = 0x40
};
class Address {
attribute string street;
Attribute string <32> town;
};
class Person {
attribute string name;
attribute int age;
attribute Address addr;
attribute CivilState cstate;
attribute Person * spouse inverse Person :: spouse;
attribute ser<car *> * cars inverse Car :: owner;
attribute Person *childern [];
instmethod void change_address (in string street, in string town, out string oldstreet,
out string oldtown);
class Car {
attribute string brand;
attribute int num;
attribute Person *owner inverse Person :: cars;
};