• Nesne yönelimli veri modelleri. Nesne Yönelimli Model

    Temel konseptler

    tanım 1

    Nesne Yönelimli Model veri gösterimi, bireysel veritabanı kayıtlarının tanımlanmasını mümkün kılar.

    Veritabanı kayıtları ve bunların işleme işlevleri, nesne yönelimli programlama dillerinde uygulanan ilgili araçlara benzer mekanizmalarla birbirine bağlıdır.

    Tanım 2

    grafiksel gösterim Nesne yönelimli bir veritabanının yapısı, düğümleri nesneleri temsil eden bir ağaçtır.

    Standart tür (örneğin, dize - sicim) veya kullanıcı tarafından oluşturulan bir tür ( sınıf), açıklar nesne özellikleri.

    Şekil 1'de, KÜTÜPHANE nesnesi, CATALOG, SUBSCRIBER ve ISSUES sınıflarının örnek nesnelerinin üst öğesidir. KİTAP türündeki farklı nesnelerin bir veya farklı ebeveynleri olabilir. Aynı ebeveyne sahip KİTAP türündeki nesnelerin en azından farklı erişim numaralarına sahip olması gerekir (kitabın her örneği için benzersizdir), ancak aynı değerlerözellikler yazar, İsim, udk Ve isbn.

    Nesne yönelimli ve hiyerarşik bir veritabanının mantıksal yapıları, görünüşte benzerdir. Esas olarak veri işleme yöntemlerinde farklılık gösterirler.

    Nesne yönelimli bir modelde veriler üzerinde eylemler gerçekleştirdiğinizde, mantıksal işlemler, kapsülleme, kalıtım ve polimorfizm ile geliştirilmiştir. Bazı sınırlamalarla, SQL komutlarına benzer işlemleri kullanabilirsiniz (örneğin, bir veritabanı oluştururken).

    Bir veritabanı oluştururken ve değiştirirken, uygulama için bilgileri içeren dizinler (dizin tabloları) otomatik olarak oluşturulur ve ardından ayarlanır. hızlı arama veri.

    Tanım 3

    Hedef kapsülleme– özellik adının kapsamını tanımlandığı nesnenin sınırlarıyla sınırlamak.

    Örneğin, KATALOG nesnesine yazarın telefon numarasını belirten ve adını taşıyan bir özellik eklenirse telefon, ardından CATALOG ve SUBSCRIBER nesneleri için aynı ada sahip özellikler elde edilecektir. Bir özelliğin anlamı, içinde kapsüllendiği nesne tarafından belirlenir.

    Tanım 4

    Miras kapsüllemenin tersi, özelliğin kapsamını nesnenin tüm alt öğelerini kapsayacak şekilde genişletmekten sorumludur.

    Örneğin, KATALOG nesnesinin çocukları olan tüm KİTAP nesnelerine üst nesnenin özellikleri atanabilir: yazar, İsim, udk Ve isbn.

    Kalıtım mekanizmasının eylemini yakın akraba olmayan nesnelere (örneğin, aynı ebeveynin iki soyuna) genişletmek gerekirse, ortak atalarında soyut bir tür özelliği tanımlanır. karın kası.

    Yani özellikler sayı Ve bilet LIBRARY nesnesindeki tüm alt nesneler LENDING, BOOK ve SUBSCRIBER tarafından miras alınır. Bu nedenle ABONE ve ISSUANCE sınıflarının bu özelliğinin değerleri aynıdır - 00015 (Şekil 1).

    Tanım 5

    polimorfizm aynı program kodunun heterojen verilerle çalışmasına izin verir.

    Başka bir deyişle, nesnelerde kabul eder farklı şekiller aynı ada sahip yöntemlere (işlevlere veya prosedürlere) sahiptir.

    Aramak nesne yönelimli bir veritabanında, kullanıcının belirttiği nesne ile veritabanında depolanan nesneler arasındaki benzerliği belirlemektir.

    Nesne yönelimli modelin avantajları ve dezavantajları

    Ana avantaj nesne yönelimli veri modeli, ilişkisel modelin aksine, nesnelerin karmaşık ilişkileri hakkında bilgi gösterme yeteneğidir. Dikkate alınan veri modeli, ayrı bir veritabanı kaydının ve işleme işlevlerinin tanımlanmasına izin verir.

    İLE eksiklikler nesne yönelimli model, yüksek kavramsal karmaşıklık, uygunsuz veri işleme ve düşük sorgu yürütme hızı içerir.

    Bugüne kadar, bu tür sistemler oldukça yaygındır. Bunlar DBMS'yi içerir:

    • postgres,
    • orion,
    • iris,
    • ODBJüpiter,
    • çok yönlü,
    • Nesnellik/DB,
    • nesne deposu,
    • statik,
    • değerli taş
    • g tabanı.

    ilişki sonrasımodeli

    Klasik ilişkisel model, tablo kayıtları alanlarında depolanan verilerin bölünmezliğini varsayar. Post-ilişkisel model, verilerin bölünmezliği kısıtlamasını ortadan kaldıran genişletilmiş bir ilişkisel modeldir. Model, çok değerli alanlara - değerleri alt değerlerden oluşan alanlara izin verir. Çok değerli alanlar için bir dizi değer, ana tabloya gömülü bağımsız bir tablo olarak kabul edilir.

    Şek. 2.6, karşılaştırma için fatura ve mal bilgileri örneği kullanılarak, aynı verilerin ilişkisel (a) ve ilişki sonrası (b) modeller kullanılarak sunumu gösterilmektedir. Şekil, post'taki ilişkisel modelle karşılaştırıldığında ilişkisel model veriler daha verimli bir şekilde depolanır ve işleme, iki tablo arasında bir veri birleştirme işlemi gerektirmez.

    faturalar

    fatura

    Alıcı

    fatura

    Miktar

    havai

    fatura

    Alıcı

    Miktar

    Pirinç. 2.6. İlişkisel ve ilişki sonrası modellerin veri yapıları

    Post-ilişkisel model, normalize edilmemiş verilerin tablolarda saklanmasına izin verdiğinden, verilerin bütünlüğünü ve tutarlılığını sağlama sorunu ortaya çıkar. Bu sorun, VTYS'ye uygun mekanizmalar dahil edilerek çözülür.

    İtibarİlişki sonrası model, bir dizi ilgili ilişkisel tabloyu tek bir ilişki sonrası tablo ile temsil etme yeteneğidir. Bu, bilgilerin sunumunun yüksek görünürlüğünü ve işlenmesinin verimliliğinde bir artışı sağlar.

    dezavantajİlişki sonrası model, saklanan verilerin bütünlüğünü ve tutarlılığını sağlama problemini çözmenin karmaşıklığıdır.

    Dikkate alınan ilişki sonrası veri modeli, uniVers DBMS tarafından desteklenir. İlişki sonrası veri modeline dayalı diğer DBMS'ler ayrıca Bubba ve Dasdb sistemlerini içerir.

    çok boyutlu model

    Veri temsiline yönelik çok boyutlu yaklaşım, ilişkisel olanla neredeyse aynı anda ortaya çıktı, ancak çok boyutlu VTMS'ye olan ilgi 1990'ların ortalarından itibaren yaygınlaşmaya başladı. İvme, 1993'te E. Codd tarafından yazılan bir makaleydi. OLAP (Çevrimiçi Analitik İşleme) sınıf sistemleri için 12 temel gereksinim formüle etti ve bunların en önemlileri kavramsal temsil ve çok boyutlu verilerin işlenmesi yetenekleriyle ilgiliydi.

    Kavramların geliştirilmesinde bilgi sistemi iki yön ayırt edilebilir:

    Operasyonel (işlemsel) işleme sistemleri;

    Sistemler analitik işleme(Karar Destek Sistemleri).

    İlişkisel VTYS, operasyonel bilgi işleme bilgi sistemleri için tasarlanmıştır ve bu alanda çok etkilidir. Analitik işleme sistemlerinde, biraz beceriksiz oldukları ve yeterince esnek olmadıkları kanıtlanmıştır. Çok boyutlu DBMS'ler burada daha verimlidir.

    Çok boyutlu DBMS, bilgilerin etkileşimli analitik olarak işlenmesi için tasarlanmış oldukça özel DBMS'lerdir. Bu DBMS'lerde kullanılan ana kavramlar, toplanabilirlik, tarihsellik ve öngörülebilirliktir.

    Toplanabilirlik veri, bilginin genelleştirilmesinin çeşitli düzeylerinde değerlendirilmesi anlamına gelir. Bilgi sistemlerinde, kullanıcıya bilgi sunumundaki ayrıntı derecesi, düzeyine bağlıdır: analist, kullanıcı, yönetici, yönetici.

    tarihsellik veriler, verilerin kendisinin ve ilişkilerinin yüksek düzeyde statik doğasının yanı sıra verilerin zamana zorunlu olarak bağlanmasını sağlamayı içerir.

    Öngörülebilirlik veri işleme, tahmin işlevlerini ayarlamayı ve bunları farklı zaman aralıklarına uygulamayı içerir.

    Veri modelinin çok boyutluluğu, dijital veri görselleştirmenin çok boyutluluğu değil, tanımlama ve veri işleme operasyonlarında bilgi yapısının çok boyutlu mantıksal temsili anlamına gelir.

    İlişkisel modelle karşılaştırıldığında, verilerin çok boyutlu organizasyonu daha yüksek bir görünürlüğe ve bilgi içeriğine sahiptir. Şek. Şekil 2.7, aynı verilerin araba satış hacimlerine ilişkin ilişkisel (a) ve çok boyutlu (b) temsillerini göstermektedir.

    Çok boyutlu veri modellerinin temel kavramları: boyut ve hücre.

    Ölçüm hiperküpün yüzlerinden birini oluşturan aynı türden bir veri kümesidir. Çok boyutlu bir modelde boyutlar, hiperküp hücrelerde belirli değerleri tanımlamaya yarayan indekslerin rolünü oynar.

    Hücre değeri, sabit bir dizi ölçüm tarafından benzersiz bir şekilde belirlenen bir alandır. Alan türü çoğunlukla sayısal olarak tanımlanır. Belirli bir hücrenin değerlerinin nasıl oluşturulduğuna bağlı olarak, bir değişken (değerler değişir ve harici bir veri kaynağından yüklenebilir veya program aracılığıyla oluşturulabilir) veya bir formül (elektronik tablo formül hücreleri gibi değerler hesaplanır) olabilir. önceden tanımlanmış formüllere göre).

    Pirinç. 2.7. İlişkisel ve çok boyutlu veri gösterimi

    Şek. 2,7 b her hücre değeri satış hacmi zaman boyutunun kombinasyonu tarafından benzersiz bir şekilde belirlenir satış ayı ve araba modelleri. Uygulamada, genellikle daha fazla ölçüm gerekir. Örnek 3 boyutlu model veriler şek. 2.8.

    Pirinç. 2.8. 3B model örneği

    Mevcut çok boyutlu DBMS'ler iki ana veri düzenleme şeması kullanır: hiperkübik ve polikübik.

    İÇİNDE polikübikŞema, farklı boyutlara ve farklı boyutlara sahip birkaç hiperküpün veritabanında yüzler olarak tanımlanabileceğini varsayar. Bir veritabanının polikübik bir varyantını destekleyen bir sistem örneği, Oracle Express Server'dır.

    Ne zaman hiperkübikŞema, tüm hücrelerin aynı ölçüm seti tarafından tanımlandığını varsayar. Bu, veritabanında birkaç hiperküp varsa, hepsinin aynı boyuta ve aynı boyutlara sahip olduğu anlamına gelir.

    Ana itibarçok boyutlu veri modeli, zamanla ilgili büyük miktarda verinin analitik olarak işlenmesinin kolaylığı ve verimliliğidir.

    dezavantajçok boyutlu veri modeli, olağanın en basit görevleri için hantallığıdır. operasyonel işlem bilgi.

    Çok boyutlu veri modellerini destekleyen sistemlere örnek olarak Essbase, Media Multi-matrix, Oracle Express Server, Cache verilebilir. Media / MR gibi çok boyutlu ve ilişkisel veritabanları ile eş zamanlı çalışmanıza olanak sağlayan yazılım ürünleri bulunmaktadır.

    Nesne Yönelimli Model

    Nesne yönelimli bir modelde, verileri sunarken, bireysel veritabanı kayıtlarını tanımlamak mümkündür. Nesne yönelimli programlama dillerindeki karşılık gelen tesislere benzer mekanizmalar kullanılarak kayıtlar ve bunların işleme işlevleri arasında ilişkiler kurulur.

    Standartlaştırılmış bir nesne yönelimli model, ODMG-93 standardının (Object Database Management Group - bir nesne yönelimli veritabanı yönetim grubu) tavsiyelerinde açıklanmaktadır.

    Nesne yönelimli bir veritabanının basitleştirilmiş bir modelini düşünün. Nesneye yönelik bir veri tabanının yapısı, düğümleri nesneler olan bir ağaç olarak grafiksel olarak temsil edilir. Nesnelerin özellikleri, bazı standart veya kullanıcı tarafından oluşturulmuş türlerle (sınıf olarak tanımlanır) tanımlanır. class tipindeki bir özelliğin değeri, karşılık gelen sınıfın bir örneği olan bir nesnedir. Her sınıf örneği nesnesi, içinde bir özellik olarak tanımlandığı nesnenin alt öğesi olarak kabul edilir. Bir sınıfın örnek nesnesi, kendi sınıfına aittir ve bir ebeveyni vardır. Veritabanındaki genel ilişkiler, bağlantılı bir nesneler hiyerarşisi oluşturur. Nesne yönelimli bir kütüphanecilik veri tabanının mantıksal yapısının bir örneği, Şekil 2'de gösterilmektedir. 2.9. Burada bir tür nesne Kütüphane sınıf örneği nesnelerinin üst öğesidir Abone, Katalog Ve iade. Çeşitli tip nesneler Kitabın ve aynı veya farklı ebeveynlere sahip olabilir. türdeki nesneler Kitap, aynı üst öğeye sahip olan, en azından bir erişim numarası (her kitap örneği için benzersiz) farklı olmalıdır, ancak aynı özellik değerlerine sahip olmalıdır isb N udk, isimler e ve yazar.

    Nesne yönelimli bir veritabanının mantıksal yapısı, hiyerarşik bir veritabanının yapısına dıştan benzerdir. Aralarındaki temel fark, veri işleme yöntemlerindedir.

    Ele alınan veritabanı modelindeki veriler üzerinde eylemler gerçekleştirmek için, nesne yönelimli kapsülleme, kalıtım ve polimorfizm mekanizmalarıyla geliştirilmiş mantıksal işlemler kullanılır.

    kapsülleme Bir özellik adının kapsamını tanımlandığı nesne ile sınırlar. Yani, eğer bir tür nesnedeyse Katalog kitabın yazarının telefon numarasını belirten ve bir başlığı olan bir özellik ekleyin telefon, o zaman nesneler için aynı ismin özelliklerini alacağız Abone Ve Katalog. Böyle bir özelliğin anlamı, kapsüllendiği nesne tarafından belirlenir.

    Miras aksine, özelliğin kapsamını nesnenin tüm alt öğelerini kapsayacak şekilde genişletir. Böylece, türdeki tüm nesneler için Kitap, türdeki bir nesnenin torunları olan Katalog, üst nesnenin özelliklerini atayabilirsiniz: isbn, udk, İsim Ve yazar. Kalıtım mekanizmasını yakın akraba olmayan nesnelere (örneğin, aynı ebeveynin iki soyundan gelenler arasında) genişletmek gerekirse, o zaman türünde soyut bir özellik karın kası. Böylece, soyut özelliklerin tanımı bilet Ve sayı nesnede Kütüphane bu özelliklerin tüm alt nesneler tarafından miras alınmasına neden olur Abone, Kitap Ve Sorunlar A. Bu nedenle özellik değerlerinin olması tesadüf değildir. bilet sınıflar Abone Ve iadeŞek. 2.9 aynıdır - 00015.

    polimorfizm nesne yönelimli programlama dillerinde aynı program kodunun heterojen verilerle çalışabilmesi anlamına gelir. Başka bir deyişle, farklı türdeki nesnelerin aynı adlara sahip yöntemleri (prosedürler veya işlevler) olabileceği anlamına gelir. Bir nesne programının yürütülmesi sırasında, bağımsız değişkenin türüne bağlı olarak aynı yöntemler farklı nesneler üzerinde çalışır. Ele alınan örnekle ilgili olarak, polimorfizm, bir sınıftaki nesnelerin Kitap sınıftan farklı ebeveynlere sahip olmak Katalog, farklı özelliklere sahip olabilir. Bu nedenle, sınıf nesneleri ile çalışmak için programlar Kitap polimorfik kod içerebilir.

    Nesne yönelimli bir veritabanında arama, kullanıcı tarafından belirtilen nesne ile veritabanında depolanan nesneler arasındaki benzerlikleri bulmaya dayanır.

    Pirinç. 2.9. Kütüphanecilik veritabanının mantıksal yapısı

    Ana itibar nesne yönelimli veri modeli, ilişkisel olanla karşılaştırıldığında, nesnelerin karmaşık ilişkileri hakkında bilgi gösterme yeteneğidir. Nesne yönelimli veri modeli, tek bir veritabanı kaydını tanımlamanıza ve bunları işlemek için işlevleri tanımlamanıza olanak tanır.

    Dezavantajları nesne yönelimli model, yüksek kavramsal karmaşıklık, veri işlemenin zorluğu ve düşük hız isteklerin yürütülmesi.

    Nesne yönelimli DBMS'ler arasında POET, Jasmine, Versant, O2, ODB-Jupiter, Iris, Orion, Postgres bulunur.

    Nesne Yönelimli Model

    Nesne yönelimli bir modelde, verileri sunarken, bireysel veritabanı kayıtlarını tanımlamak mümkündür. Veritabanı kayıtları ve bunların işleme işlevleri arasında, nesne yönelimli programlama dillerindeki karşılık gelen tesislere benzer mekanizmalar kullanılarak ilişkiler kurulur.

    ODMG-93 (Object Database Management Group) standardının tavsiyelerinde standartlaştırılmış bir nesne yönelimli model açıklanmıştır. ODMG-93'ün tavsiyelerini tam olarak uygulamak henüz mümkün olmamıştır. örnekleme için anahtar fikirler Nesne yönelimli bir veritabanının biraz basitleştirilmiş bir modelini düşünün.

    Nesne yönelimli bir veritabanının yapısı (örneğin, Versant Object Database, Object Store, vb.), düğümleri nesne olan bir ağaç olarak grafiksel olarak temsil edilir. Nesne özellikleri, bazı standart türlerle (örneğin, dize - dize) veya kullanıcı tarafından oluşturulmuş bir türle (sınıf olarak tanımlanır) tanımlanır.

    string türündeki bir özelliğin değeri bir karakter dizisidir. class tipindeki bir özelliğin değeri, karşılık gelen sınıfın bir örneği olan bir nesnedir. Her nesne - bir sınıfın örneği, içinde bir özellik olarak tanımlandığı nesnenin soyundan sayılır. Bir nesne, kendi sınıfına ait olan ve bir ebeveyni olan bir sınıfın örneğidir. Veritabanındaki genel ilişkiler, nesnelerin tutarlı bir hiyerarşisini oluşturur.

    Nesne yönelimli bir veritabanının mantıksal yapısı, hiyerarşik bir veritabanının yapısına dıştan benzerdir. Aralarındaki temel fark, veri işleme yöntemlerindedir.

    Ele alınan veritabanı modelindeki veriler üzerinde eylemler gerçekleştirmek için, nesne yönelimli kapsülleme, kalıtım ve polimorfizm mekanizmalarıyla geliştirilmiş mantıksal işlemler kullanılır.

    Komutlara benzer işlemler sınırlı ölçüde kullanılabilir. SQL dili(örneğin, bir veritabanı oluşturmak için).

    Veritabanının oluşturulması ve değiştirilmesine, hızlı veri alımı için bilgiler içeren dizinlerin (indeks tabloları) otomatik olarak oluşturulması ve ardından ayarlanması eşlik eder.

    Nesne yönelimli veritabanı modeliyle ilgili olarak kapsülleme, kalıtım ve çok biçimlilik kavramlarını kısaca ele alalım.

    Kapsülleme, bir özellik adının kapsamını tanımlandığı nesneyle sınırlar.

    Kalıtım ise, özelliğin kapsamını nesnenin tüm alt öğelerini kapsayacak şekilde genişletir.

    Nesne yönelimli programlama dillerinde polimorfizm, aynı program kodunun heterojen verilerle çalışabilmesi anlamına gelir. Başka bir deyişle, farklı türdeki nesnelerin aynı adlara sahip yöntemleri (prosedürler veya işlevler) olabileceği anlamına gelir. Bir nesne programının yürütülmesi sırasında, bağımsız değişkenin türüne bağlı olarak aynı yöntemler farklı nesneler üzerinde çalışır. Nesne yönelimli bir veritabanında arama, kullanıcı tarafından belirtilen bir nesne ile veritabanında depolanan nesneler arasındaki benzerliklerin aranmasından oluşur. Hedef nesne adı verilen kullanıcı tanımlı bir nesne (goel türünün nesne özelliği) genellikle veritabanında depolanan tüm nesne hiyerarşisinin bir alt kümesi olabilir. Sorgu yürütmenin sonucu gibi hedef nesne de veritabanının kendisinde saklanabilir.

    Nesne yönelimli veri modelinin ilişkisel olana kıyasla ana avantajı, nesnelerin karmaşık ilişkileri hakkında bilgi gösterme yeteneğidir. Nesne yönelimli veri modeli, tek bir veritabanı kaydını tanımlamanıza ve bunları işlemek için işlevleri tanımlamanıza olanak tanır.

    Nesne yönelimli modelin dezavantajları, yüksek kavramsal karmaşıklık, veri işlemenin zorluğu ve düşük sorgu yürütme hızıdır.

    Veri tipleri

    Başlangıçta, DBMS öncelikle mali ve ekonomik sorunları çözmek için kullanıldı. Aynı zamanda sunum modelinden bağımsız olarak veritabanlarında aşağıdaki ana veri türleri kullanılmıştır:

    • sayısal. Örnek veri değerleri: 0,43; 328; 2E+5;
    • karakter (alfanümerik). Veri değeri örnekleri: "Cuma", "dize", "programcı";
    • "Tarih" özel türü kullanılarak veya normal karakter verileri olarak belirtilen tarihler. Veri değeri örnekleri: 12/1/97, 2/23/1999.

    Farklı DBMS'lerde bu türler, ad, değer aralığı ve sunum türü bakımından birbirinden önemli ölçüde farklı olabilir. Daha sonra, coğrafi bilgi, video görüntü işleme vb. gibi yeni uygulama alanlarında özel veri işleme sistemleri ortaya çıkmaya başladı. Bu bağlamda geliştiriciler, geleneksel DBMS'ye yeni veri türleri getirmeye başladılar. Nispeten yeni veri türleri şunları içerir:

    • geçici ve tarih-zaman, saat ve (veya) tarih hakkında bilgi depolamak için tasarlanmıştır. Örnek veri değerleri: 01/31/85 (tarih), 9:10:03 (saat), 03/6/1960 12:00 (tarih ve saat);
    • depolama amaçlı karakter değişken uzunluğu metin bilgisi belge gibi büyük uzunluk;
    • ikili, depolama amaçlı grafik nesneler, ses ve video bilgileri, mekansal, kronolojik ve diğer özel bilgiler. Örneğin, MS Access'te bu tür, grafik verilerini veritabanında BMP (Bitmap) biçiminde depolamanıza ve bunları veritabanıyla çalışırken otomatik olarak görüntülemenize olanak tanıyan "OLE Nesne Alanı" veri türüdür;
    • veritabanı dışında, örneğin İnternet'te bulunan çeşitli kaynaklara (düğümler, dosyalar, belgeler vb.) bağlantılar depolamak için tasarlanmış köprüler, Şirket ağı intranet veya bilgisayar sabit diski.

    Modern DBMS'de çeşitli modeller veriler, listelenen tüm veri türleri kullanılabilir.

    Nesne yönelimli bir modelde (OOM), verileri sunarken, bireysel veritabanı kayıtlarını tanımlamak mümkündür. Veritabanı kayıtları ve bunların işleme işlevleri arasında, nesne yönelimli programlama dillerindeki karşılık gelen tesislere benzer mekanizmalar kullanılarak ilişkiler kurulur.

    Standart OOM ODMG-93 standardının (Object Database Management Group - nesne yönelimli veritabanlarını yönetmek için bir grup) tavsiyelerinde açıklanmıştır. ODMG-93'ün tavsiyelerini tam olarak uygulamak henüz mümkün olmamıştır. Anahtar fikirleri göstermek için, nesne yönelimli bir veritabanının biraz basitleştirilmiş bir modelini düşünün.

    OO DB'nin yapısı, düğümleri nesneler olan bir ağaç olarak grafiksel olarak temsil edilir. Nesne özellikleri, bazı standart türlerle (örneğin, dize - dize) veya kullanıcı tarafından oluşturulmuş bir türle (sınıf olarak tanımlanır) tanımlanır.

    string türündeki bir özelliğin değeri bir karakter dizisidir. class tipindeki bir özelliğin değeri, karşılık gelen sınıfın bir örneği olan bir nesnedir. Her sınıf örneği nesnesi, içinde bir özellik olarak tanımlandığı nesnenin alt öğesi olarak kabul edilir. Bir sınıfın örnek nesnesi, kendi sınıfına aittir ve bir ebeveyni vardır. Veritabanındaki genel ilişkiler, bağlantılı bir nesneler hiyerarşisi oluşturur.

    Kütüphaneciliğin OO DB'sinin mantıksal yapısının bir örneği, şekil 2'de gösterilmiştir. 3.14. Burada, LIBRARY türündeki nesne, SUBSCRIBER, CATALOG ve ISSUANCE sınıflarının örnek nesnelerinin üst öğesidir. Aynı ebeveyne sahip KİTAP türündeki farklı nesneler, en azından bir erişim numarası (kitabın her bir örneği için benzersiz) açısından farklılık göstermelidir, ancak aynı özellik değerlerine sahip olmalıdır. isbn, udk, başlık Ve yazar.


    Şekil 3.14. Kütüphane bilim veritabanının mantıksal yapısı

    OO veritabanının mantıksal yapısı, hiyerarşik bir veritabanının yapısına dıştan benzerdir. Aralarındaki temel fark, veri işleme yöntemlerindedir. OOM veritabanındaki veriler üzerinde eylemler gerçekleştirmek için, nesne yönelimli kapsülleme, kalıtım ve polimorfizm mekanizmalarıyla geliştirilmiş mantıksal işlemler kullanılır. SQL komutlarına benzer işlemler sınırlı ölçüde kullanılabilir (örneğin, bir veritabanı oluşturmak için).

    Veritabanının oluşturulması ve değiştirilmesine, hızlı veri alımı için bilgiler içeren dizinlerin (indeks tabloları) otomatik olarak oluşturulması ve ardından ayarlanması eşlik eder.

    Bir veritabanının OOM'si ile ilgili olarak kapsülleme, kalıtım ve polimorfizm kavramlarını kısaca ele alalım.

    kapsülleme Bir özellik adının kapsamını tanımlandığı nesne ile sınırlar. Bu nedenle, KATALOG türünde bir nesneye kitabın yazarının telefon numarasını belirten ve adını taşıyan bir özellik eklerseniz telefon, o zaman SUBSCRIBER ve CATALOG nesneleri için aynı ismin özelliklerini alacağız. Böyle bir özelliğin anlamı, kapsüllendiği nesne tarafından belirlenir.

    Miras, bunun yerine, özelliğin kapsamını nesnenin tüm alt öğelerini kapsayacak şekilde genişletir. Böylece, KATALOG türündeki bir nesnenin soyundan gelen KİTAP türündeki tüm nesnelere üst nesnenin özellikleri atanabilir: isbn, udk, başlık Ve yazar. Kalıtım mekanizmasının eylemini yakın akraba olmayan nesnelere genişletmek gerekirse (örneğin, aynı ebeveynin iki soyundan gelenler arasında), o zaman ortak atalarında abs türünde soyut bir özellik tanımlanır. Böylece, soyut özelliklerin tanımı bilet Ve sayı KÜTÜPHANE nesnesinde, SUBSCRIBER, BOOK ve LENDER'ın tüm alt nesnelerinin bu özellikleri devralmasına neden olur. Bu nedenle özellik değerlerinin olması tesadüf değildir. biletşekilde gösterilen SUBSCRIBER ve ISSUANCE sınıfları aynı olacaktır - 00015.

    polimorfizm nesne yönelimli programlama dillerinde aynı program kodunun heterojen verilerle çalışabilmesi anlamına gelir. Başka bir deyişle, farklı türdeki nesnelerin aynı adlara sahip yöntemleri (prosedürler veya işlevler) olabileceği anlamına gelir. Bir nesne programının yürütülmesi sırasında, bağımsız değişkenin türüne bağlı olarak aynı yöntemler farklı nesneler üzerinde çalışır. OO DB'mizle ilgili olarak polimorfizm, CATALOG sınıfından farklı ebeveynlere sahip BOOK sınıfı nesnelerinin farklı bir özellik kümesine sahip olabileceği anlamına gelir. Sonuç olarak, BOOK sınıfındaki nesnelerle çalışmak için programlar polimorfik kod içerebilir.

    OO DB'deki arama, kullanıcı tarafından belirtilen nesne ile veritabanında depolanan nesneler arasındaki benzerliklerin bulunmasından oluşur. Hedef nesne adı verilen kullanıcı tanımlı bir nesne (goel türünün nesne özelliği) genellikle veritabanında depolanan tüm nesne hiyerarşisinin bir alt kümesi olabilir. Sorgu yürütmenin sonucu gibi hedef nesne de veritabanının kendisinde saklanabilir. Kütüphane kartlarının numaraları ve kütüphanede en az bir kitap alan abonelerin isimleri ile ilgili bir sorgulama örneği Şekil 1'de gösterilmektedir. 3.15.

    Ana itibarİlişkisel ile karşılaştırıldığında OOM verileri, nesnelerin karmaşık ilişkileri hakkında bilgi görüntüleme yeteneğidir. OOM verileri, veritabanının tek bir kaydını tanımlamanıza ve bunların işlenmesinin işlevlerini belirlemenize olanak tanır.

    dezavantaj OOM, yüksek kavramsal karmaşıklık, veri işlemenin zorluğu ve düşük sorgu yürütme hızıdır.



    Şekil 3.15. Hedef nesne ile veritabanı parçası

    Şekil l'de ilişkisel bir veri modeli biçiminde sunulan Siparişler sorununa tekrar dönelim. 3.8 ve bunu nesne yönelimli bir veritabanı açısından düşünün. Toplamda üç sınıf vardır: Müşteriler», « Emirler" Ve " Mal". Sınıfın nesneleri " Müşteriler» belirli müşterilerdir; sınıf özellikleri - müşteri numarası, müşteri adı şehir, durum vb. Sınıf yöntemleri - " Sipariş oluştur», « Ödeme faturası" ve benzeri. Yöntem, bir nesneye uygulanabilen bazı işlemlerdir; bir yöntem, bir nesnenin yapması gereken şeydir. Tabloya karşılık gelen sınıf " sipariş detayları", gerekli değil. Tablo verileri sınıfın bir parçası olabilir " Emirler". sınıftaki varlık Müşteriler" yöntem " Sipariş oluştur"sınıfların nesneleri ile etkileşime yol açar" Emirler" Ve " Mal". Bu durumda, kullanıcının nesnelerin bu etkileşimini bilmesine gerek yoktur. Kullanıcı yalnızca " nesnesine erişir Emirler' ve ' yöntemini kullanır Sipariş oluştur". Diğer veritabanları üzerindeki etki gerçeği kullanıcıdan gizlenebilir. eğer yöntem Sipariş oluştur"sırayla, yöntemi ifade eder" Müşteri kredi değerliliğini kontrol edin”, o zaman bu gerçek kullanıcıdan da gizlenebilir. İÇİNDE ilişkisel veritabanları ah data aynı işlevleri gerçekleştirmek için Visual dilinde prosedürler yazmanız gerekir için temel Uygulama (VBA).

    1990'larda, OO veri tabanı yönetim sistemlerinin deneysel prototipleri vardı. Şu anda, bu tür sistemler yaygın olarak kullanılmaktadır. Bunlar özellikle aşağıdaki DBMS'leri içerir: POET (POET Software), Jasmine (Computer Associates), Versant (Versant Technologies), O2 (Ardent Software), ODB-Jupiter (Inteltech Plus Araştırma ve Üretim Merkezi) ve Iris , Orion ve Postgres.

    Codd'un ilişkisel modeli, ilk resmileştirilmiş ve genel kabul görmüş veri modeliydi. Bu modelde, aşağıdakilerin hepsinde olduğu gibi, üç yön ayırt edildi - yapısal, bütünsel ve manipülatif. İlişkisel modeldeki veri yapıları, düz normalleştirilmiş ilişkilere dayalıdır, bütünlük kısıtlamaları birinci dereceden mantık kullanılarak ifade edilir ve son olarak, veri işleme, ilişkisel cebir veya eşdeğer ilişkisel hesap. Pek çok araştırmacının belirttiği gibi, ilişkisel veri modelinin başarısı büyük ölçüde katı bir temele dayanmasından kaynaklanmaktadır. matematiksel aparat küme teorisi, ilişkiler ve birinci dereceden mantık. Belirli bir ilişkisel sistemin tasarımcıları, kendileriyle uygunluk göstermeyi görevleri olarak gördüler. belirli model sistemin "göreceliliğinin" bir ölçüsü olarak hareket eden genel ilişkisel modelin verileri.

    Nesne yönelimli veri modellemenin ana zorlukları, genel bir nesne yönelimli veri modelinin dayanabileceği böyle gelişmiş bir matematiksel aygıtın mevcut olmamasından kaynaklanmaktadır. Bu nedenle, büyük ölçüde hala temel bir nesne yönelimli model yoktur. Öte yandan bazı yazarlar, klasik anlamda bir genel nesne yönelimli veri modelinin, klasik veri modeli kavramının nesne yönelimli paradigmaya uygun olmaması nedeniyle tanımlanamayacağını savunmaktadır.

    Veri modelleri alanındaki en ünlü teorisyenlerden biri olan Beery, genel anlamda OODB için tam olmaktan uzak ve geleneksel anlamda bir veri modeli olmayan, ancak OODB sistemlerinin araştırmacılarının ve geliştiricilerinin en azından aynı dili konuşun (tabii Beeri cümleleri geliştirilip desteklenmeyecekse). Bu önerilerin akıbeti ne olursa olsun kısaca tekrar anlatmakta fayda görüyoruz.

    İlk olarak, birçok OODB'nin uygulamasını takiben, nesne modellemenin iki düzeyini ayırt etmek önerilmektedir: alt (yapısal) ve üst (davranışsal). Yapısal düzeyde desteklenir karmaşık nesneler, kimlikleri ve "isa" bağlantısının çeşitleri. Veritabanı, "bir sınıfın parçası" veya "bir özniteliktir" ilişkisiyle birbirine bağlanan veri öğeleri koleksiyonudur. Bu nedenle, veritabanı yönlendirilmiş bir grafik olarak düşünülebilir. önemli bir nokta nesne kavramıyla birlikte değer kavramını sürdürmektir (daha sonra başarılı nesne yönelimli DBMS O2'den birinde bunun üzerine ne kadar inşa edildiğini göreceğiz).



    Önemli bir husus, veritabanı şemasının ve veritabanının kendisinin açık bir şekilde ayrılmasıdır. OODB şema seviyesinin birincil kavramları, türler ve sınıflardır. Yalnızca bir kavram (bir tür veya bir sınıf) kullanan tüm sistemlerde, bu kavramın kaçınılmaz olarak aşırı yüklendiği belirtilmektedir: bir tür, bu türün veri yapısı tarafından belirlenen belirli bir değer kümesinin varlığını ifade eder; sınıf ayrıca bir dizi nesnenin varlığını varsayar, ancak bu küme kullanıcı tarafından tanımlanır. Bu nedenle, türler ve sınıflar farklı roller oynar ve kesinlik ve kesinlik, her iki kavram için de eşzamanlı destek gerektirir.

    Beery, OODB yapısal seviyesinin tam bir resmi modelini sunmuyor, ancak mevcut anlayış seviyesinin böyle bir modeli resmileştirmek için yeterli olduğuna olan güvenini ifade ediyor. Davranış düzeyine gelince, bunun için gerekli mantıksal aygıta yalnızca genel bir yaklaşım önerilmiştir (birinci düzeyin mantığı yeterli değildir).

    Beery'nin sağlam temellere dayanmasa da önemli varsayımı, geleneksel iki katmanın - şema ve veri - OODB için yeterli olmadığıdır. İçin tam tanım OODB, içeriği veritabanının şema düzeyinde izin verilen nesne türlerini ve ilişkileri tanımlaması gereken bir meta-şema düzeyi gerektirir. Meta-şema, OODB için, ilişkisel veri modelinin yapısal parçasının ilişkisel veritabanı şemaları için oynadığı rolün aynısını oynamalıdır.

    Nesne yönelimli veri modelleri konusuyla ilgili başka birçok yayın var, ancak bunlar ya oldukça spesifik konulara değiniyor ya da bu inceleme için çok ciddi olan bir matematiksel aygıt kullanıyorlar (örneğin, bazı yazarlar nesne yönelimli bir veri modeli tanımlıyorlar). kategori teorisine dayalı).

    Mevcut durumu göstermek için, nesne yönelimli DBMS O2'de kullanılan belirli bir veri modelinin özelliklerine kısaca bakacağız (bu, elbette klasik anlamda bir veri modeli de değildir).

    O2 nesneleri ve değerleri destekler. Bir nesne bir çifttir (tanımlayıcı, değer) ve nesneler kapsüllenmiştir, örn. değerleri yalnızca yöntemlerle elde edilebilir - nesnelere bağlı prosedürler. Değerler atomik veya yapı olabilir. Yapısal değerler, set, tuple ve list yapıcıları kullanılarak tanımlayıcıları tarafından temsil edilen değerlerden veya nesnelerden oluşturulur. Yapısal değer öğelerine önceden tanımlanmış işlemler (ilkeller) aracılığıyla erişilebilir.

    İki tür veri organizasyonu mümkündür: örnekleri veri ve davranışı kapsayan nesneler olan sınıflar ve örnekleri değerler olan türler. Her sınıf, sınıf örneklerinin yapısını açıklayan bir türle ilişkilendirilir. Türler, yapıcılar kullanılarak atomik türlere ve önceden tanımlanmış türlere ve sınıflara göre yinelemeli olarak tanımlanır. Bir sınıfın davranışsal tarafı, bir dizi yöntemle tanımlanır.

    Nesneler ve değerler adlandırılabilir. Bir nesnenin veya değerin adlandırılması, uzun süreli depolaması (kalıcılık) ile ilişkilidir: adlandırılmış herhangi bir nesne veya değer uzun vadelidir; başka bir adlandırılmış nesnenin veya değerin parçası olan herhangi bir nesne veya değer dayanıklıdır.

    Bir sınıfı tanımlarken verilen özel bir ipucu yardımıyla, bu sınıfa ait herhangi bir nesnenin uzun süreli saklanmasını sağlamak mümkündür. Bu durumda, sistem otomatik olarak adı sınıf adıyla aynı olan bir set değeri üretir. Bu kümenin tüm nesneleri içermesi garanti edilir bu sınıf.

    Yöntem - programlama kodu Belirli bir sınıfla ilişkili ve o sınıfın nesnelerine uygulanabilir. O2'de bir metot tanımlama iki adımda yapılır. İlk olarak, yöntem imzası bildirilir, yani. adı, sınıfı, bağımsız değişken türleri veya sınıfları ve sonuç türü veya sınıfı. Yöntemler genel (diğer sınıfların nesnelerinden erişilebilir) veya özel (yalnızca belirli bir sınıf içinde erişilebilir) olabilir. İkinci aşamada, sınıf uygulaması O2 programlama dillerinden birinde belirlenir (diller incelememizin bir sonraki bölümünde daha ayrıntılı olarak ele alınmıştır).

    O2 modeli, üst tip/alt tip ilişkisine dayalı olarak çoklu sınıf kalıtımını destekler. Bir alt sınıfa özniteliklerin ve yöntemlerin eklenmesine ve/veya yeniden tanımlanmasına izin verilir. Çoklu kalıtımdaki olası belirsizlikler (öznitelikleri ve yöntemleri adlandırarak) ya yeniden adlandırarak ya da kalıtımın kaynağını açıkça belirterek çözülür. Alt sınıf nesnesi, alt sınıfın türetildiği her üst sınıfın nesnesidir.

    Kafes sınıfının kökü olan önceden tanımlanmış "Object" sınıfı desteklenir; diğer herhangi bir sınıf, "Object" sınıfının dolaylı bir alt öğesidir ve önceden tanımlanmış yöntemleri ("is_same", "is_value_equal", vb.) devralır.

    O2 modelinin belirli bir özelliği, adlandırılmış nesneler için ek "özel" nitelikler ve yöntemler bildirme yeteneğidir. Bu, bir sınıfın belirli bir adlandırılmış örneğinin, sınıf türünün bir alt türü olan bir türe sahip olabileceği anlamına gelir. Tabii ki, bu özellikler çalışmıyor standart yöntemler sınıf, ancak özellikle adlandırılmış bir nesne için, ek özniteliklerin zaten mevcut olduğu ek (veya geçersiz kılınan standart) yöntemler tanımlanabilir. Ek niteliklerin ve yöntemlerin belirli bir nesneye değil, farklı zamanlarda farklı nesneler tarafından takip edilebilecek bir isme bağlı olduğu vurgulanır. Özel niteliklerin ve yöntemlerin uygulanması, geç bağlama tekniklerinin geliştirilmesini gerektirir.

    Bir sonraki bölümde, diğer şeylerin yanı sıra, elbette veri modelinin özellikleriyle yakından ilgili olan programlama dillerinin özelliklerini ve O2 sisteminin sorgularını ele alacağız.