Nesneye dayalı veritabanları: kavram, temel kavramlar, yönetim, örnekler

İçindekiler:

Nesneye dayalı veritabanları: kavram, temel kavramlar, yönetim, örnekler
Nesneye dayalı veritabanları: kavram, temel kavramlar, yönetim, örnekler
Anonim

Nesne yönelimli veritabanlarında (OODB'ler), kullanıcılar, çok çeşitli türlerde olabilen ve işlemler için ayarlanan nesnelerden oluşan belirli bir veritabanında işlemler ayarlayabilir. Multimedya nesneleri gibi ikili bilgileri verimli bir şekilde işleyebilirler. OODB'nin bir diğer ek avantajı, tüm sistemi etkilemeden küçük prosedürel farklılıklarla programlanabilmesidir.

Standartın oluşturulması için önkoşullar

Nesne yönelimli OODB veritabanlarının tarihi geçen yüzyılın sonunda başlar. Yeni uygulamaların ihtiyaçlarını karşılamak için oluşturuldular. Varsayım, nesne yönelimli veritabanlarının 1990'larda yazılım sistemlerinde devrim yaratacağıydı. Artık durumun böyle olmadığı açık. Bununla birlikte, bu kavramın özgür yazılım toplulukları aracılığıyla yeniden canlandırılması ve buna uygun uygulamaların belirlenmesi, özelliklerin gözden geçirilmesini motive eder. Her yerde bulunan ilişkisel veritabanlarına bir alternatif olan OODB.

Standardın oluşturulması için ön koşullar
Standardın oluşturulması için ön koşullar

Nesne yönelimli, gereksinimlerin bir kısmını veya tamamını ele alma esnekliği sağlar ve geleneksel veritabanlarının veri türleri ve sorgu dilleriyle sınırlı değildir. OODB'lerin önemli bir özelliği, geliştiriciye sağladıkları ve hem karmaşık nesnelerin yapısını hem de uygulama işlemlerini belirlemesine izin verme yeteneğidir. OODB'ler oluşturmanın bir başka nedeni de yazılım geliştirme için dillerin artan kullanımıdır.

Veritabanları birçok bilgi sisteminin temeli haline geldi, ancak bunlara erişen uygulamalar C++, Smalltalk veya Java ile yazıldığında geleneksel veritabanlarını kullanmak zordur. Örneğin 1C nesne yönelimli veritabanları, kavramlarını benimseyerek nesne yönelimli dilleri kullanan uygulamalarla doğrudan entegre olabilecek şekilde tasarlanmıştır: Visual Studio. Net, C++, C, Microsoft SQL Server ve diğerleri.

OODB'nin ana avantajı, sonraki performans iyileştirmeleri ile RMs1 (empedans) ihtiyacının tamamen ortadan kaldırılmasıdır.

OODB'nin ana avantajı
OODB'nin ana avantajı

Kusurlar:

  1. Çok ilkel danışma mekanizmaları, standart kabul edilen bir platform yok.
  2. Prosedürler saklanamıyor çünkü nesnelere yalnızca istemciden erişilebilir.
  3. Piyasadaki olgunlaşmamışlık.
  4. Nesnelerin fiziksel olarak gruplandırılması yok.

Nesne paradigması

nesne paradigması
nesne paradigması

Nesne yönelimli veritabanları, karmaşık verileri ve bunların ilişkilerini satır ve sütun atamadan doğrudan depolayan programlanabilir veritabanlarıdır, bu da onları büyük gruplarla çalışan uygulamalar için daha uygun hale getirir. Nesnelerin çoktan çoğa ilişkileri vardır ve ilişkiler kurmak için kendileriyle ilişkili işaretçiler kullanılarak erişilebilir. Herhangi bir programlanabilir program gibi, OODB bir uygulama geliştirme ortamı ve kullanıma hazır kalıcı bir havuz sağlar. Nesneler biçiminde sayısallaştırılabilen bilgileri depolar ve işler, hızlı erişim sağlar ve mükemmel işleme yetenekleri sağlar.

Nesneye dayalı bir veritabanında kullanılan temel kavramlar:

  • nesne kimliği;
  • yapıcı türü;
  • dil uyumluluğu;
  • tür hiyerarşileri ve kalıtım;
  • karmaşık nesneleri işleme;
  • polimorfizm ve operatör aşırı yüklemesi;
  • sürüm oluşturma.
sürüm oluşturma
sürüm oluşturma

Nesne yönelimli bir veritabanını karakterize eden tüm yönleri tam olarak değerlendirmek için, tüm önemli nesne paradigmalarını not etmek önemlidir:

  1. Encapsulation, diğer nesneler için bilgileri gizlemenize olanak tanıyan ve böylece yanlış erişimi veya çakışmaları önleyen bir özelliktir.
  2. Devralma, nesnelerin bir sınıf hiyerarşisinde davranışı devraldığı bir özelliktir.
  3. Polimorfizm, uygulanabileceği bir işlemin özelliğidir.farklı nesne türleri.
  4. Bir işlemin arayüzü veya imzası, argümanlarının veya parametrelerinin adını ve veri türlerini içerir.
  5. Bir işlemin uygulanması veya yöntemi ayrı olarak belirtilir ve arayüzü etkilemeden değiştirilebilir. Kullanıcı uygulamaları, nasıl uygulandıklarına bakılmaksızın adları ve argümanları aracılığıyla belirtilen işlemleri çağırarak verilerle çalışabilir.

Sınıflar ve işlevsellik

Sınıflar ve işlevsellik
Sınıflar ve işlevsellik

OODB'deki sınıf kavramını ele alırken, "sınıf" ve "tip" terimlerini birbirinden ayırmak gerekir. Benzer davranışa sahip bir dizi nesneyi tanımlamak için bir tür kullanılır. Bu anlamda, nesne üzerinde hangi işlemlerin çağrılabileceğine bağlıdır. Sınıf, aynı dahili yapıyı paylaşan bir nesneler topluluğudur, bu nedenle bir uygulamayı tanımlarken, bir tür onun nasıl kullanılacağını tanımlar.

Örnekleme terimi, bir sınıfın somutlaştırılmasının, sınıf tarafından belirlenen yapı ve davranışa sahip bir dizi nesne üretmek için kullanılabileceği gerçeğini ifade eder.

Nesnelerin evrimi için çok önemli olan bir özellik, kimliği korurken nitelikler ve işlemler de dahil olmak üzere sınıfını değiştirebilmesidir. Bu, sonuçta ortaya çıkan anlamsal bütünlüğü idare edecek bir mekanizma gerektirir.

Bir kuruluşun nesne yönelimli veritabanını devralmak, bir sınıfın zaten var olan bir üst sınıfın alt sınıfı olarak tanımlanmasına olanak tanır. Tüm öznitelikleri ve yöntemleri ikincisinden devralır ve isteğe bağlı olarak tanımlayabilirsahip olmak. Bu kavram, yeniden kullanımı desteklemek için önemli bir mekanizmadır. İki farklı sınıfın yapısının aynı kısımları ortak bir üst sınıfta yalnızca bir kez tanımlanabilir, böylece daha az kod yazılır. Bir sınıfın birden fazla üst sınıfın alt sınıfı olmasına izin veren bazı sistemler vardır. Bu özelliğe tekli kalıtımın aksine çoklu kalıtım denir.

Nesne yönelimli veritabanı örneği

Resim ve video sınıflarından medya üst sınıfının farklı ancak benzer yöntemleri için aynı adı kullanmak genellikle yararlıdır. Birçok dosya farklı izleyiciler tarafından görüntülenebilir. Genellikle tüm fotoğrafları ve videoları "görüntüleme" yöntemini kullanarak görüntülemeleri gerekir ve uygun program başlatılmalıdır. İşlev çağrıldığında ve videoya bir bağlantı iletildiğinde, medya oynatıcı başlatılır. Bu özelliğin uygulanabilmesi için öncelikle resim ve video sınıflarından ortak medya üst sınıfında "sunum" işleminin tanımlanması gerekmektedir. Alt sınıfların her biri, kendi özel ihtiyaçları için arama işlemini yeniden tanımlar. Bu, aynı işlem adına sahip farklı yöntemlerle sonuçlanır. Bu durumda, bu işlevi kullanmanın önemli bir avantajı vardır.

OODB yapısı

OODB yapısı
OODB yapısı

Nesne yönelimli paradigma, her bir nesneyle ilgili veri ve kodun tek bir modülde kapsüllenmesine dayanır. Kavramsal olarak, onunla sistemin geri kalanı arasındaki tüm etkileşimler mesajlar kullanılarak gerçekleştirilir. Bu nedenle arayüzaralarındaki izin verilen küme tarafından belirlenir.

Genel olarak, her nesne bir kümeyle ilişkilendirilir:

  1. Nesne verilerini içeren ve ER modeli özelliklerine karşılık gelen değişkenler.
  2. Yanıt verdiği mesajlar. Her birinin bir veya daha fazla parametresi olabilir veya olmayabilir.
  3. Her biri mesajları uygulayan ve buna yanıt olarak bir değer döndüren bir kod olan yöntemler.

Bir OO ortamında mesajlaşma, bilgisayar ağlarında fiziksel SMS kullanımı anlamına gelmez. Aksine, uygulamalarının doğru ayrıntılarına bakılmaksızın, nesneler arasındaki talep alışverişini ifade eder. Bazen bir ifade, bir nesneye bir mesajın gönderildiğini tetiklemek için bir yöntemi çağırır ve karşılık gelen yöntemin yürütülmesini kullanır.

Nesne kimliği

Nesne Kimliği
Nesne Kimliği

Nesne yönelimli veritabanı sistemi, veritabanında depolanan her bağımsız nesne için benzersiz bir tanımlama sağlar. Genellikle sistem tarafından oluşturulan benzersiz nesne tanımlayıcısı veya OID kullanılarak uygulanır. OID değeri harici kullanıcı tarafından görülmez, ancak sistem bunu nesneler arasındaki bağlantıları yönetmek için dahili olarak kullanır.

OID'nin ana özelliği değişmez olmasıdır. Belirli bir nesnenin OID değeri asla değişmemelidir. Bu, temsil edilen gerçek dünyanın kimliğini korur. Ayrıca her OID'nin yalnızca bir kez kullanılması tercih edilir, veritabanından kaldırılsa bile OID'si başka birine atanmamalıdır. Ayrıca, bunu fiziksel bir temele dayandırmak da genellikle uygunsuz kabul edilir. Depodaki nesnenin adresi, çünkü onları veritabanında yeniden düzenlemek OID'yi değiştirebilir. Ancak bazı sistemler, nesnelerin alınmasının verimliliğini artırmak için fiziksel adresi OID olarak kullanır. Nesne yönelimli bir çerçeve, genellikle daha uygulanabilir olan ilişkisel kısıtlamaları otomatik olarak uygular: etki alanı, anahtar, nesne bütünlüğü ve referans bütünlüğü.

Üç ana kurucu

Üç ana kurucu
Üç ana kurucu

OODB'de, belirli türlerdeki yapıcılar kullanılarak başkalarından karmaşık nesnelerin değerleri veya durumları oluşturulabilir. Bunları temsil etmenin bir yolu, her birini bir üçlü (i, c, v) olarak düşünmektir; burada i nesnenin benzersiz tanımlayıcısıdır (OID), c yapıcıdır, yani nesnenin değerinin nasıl olduğuna dair bir işaretçidir. oluşturulur ve v, nesnenin değeri veya durumudur. Veri modeline ve OO sistemine bağlı olarak birden çok kurucu olabilir.

Üç temel nesne yönelimli veritabanı oluşturucusu:

  • atomlar;
  • tuples;
  • setler.

Diğer daha yaygın kullanımlar listeler ve çizelgelerdir. Ayrıca sistem üzerinde doğrudan mevcut olan tüm temel atomik değerleri içeren D alanı da bulunmaktadır. Bunlar tipik olarak tam sayıları, gerçek sayıları, karakter dizilerini, tarihleri ve sistemin doğrudan işlediği diğer veri türlerini içerir. Hem nesnelerin yapısı hem de işlemler sınıf tanımlarına dahil edilmiştir.

Programlama dilleriyle uyumluluk

Nesne yönelimli veritabanlarının temel kavramları şu alanlarda kullanılır:tasarım araçları olarak ve veritabanıyla çalışmak üzere kodlanmıştır.

Bu kavramların entegre edilebileceği birkaç olası dil vardır:

  1. Karmaşık türler ve OOP ekleyerek SQL gibi veri işleme için bir dili genişletme. Sistemler, nesne yönelimli ilişkisel sistemler adı verilen ilişkisel sistemlere nesne yönelimli uzantılar sağlar.
  2. Mevcut bir nesne yönelimli programlama dilini kullanmak ve onu veritabanlarıyla çalışacak şekilde genişletmek. Kalıcı programlama dilleri olarak adlandırılırlar ve geliştiricilerin SQL gibi bir veri işleme dilinden geçmek zorunda kalmadan doğrudan verilerle çalışmasına olanak tanır. Kalıcı olarak adlandırılırlar çünkü veriler onu oluşturan programın bitiminden sonra da var olmaya devam eder.

Hangi seçeneği kullanacağınıza karar verirken, kalıcı dillerin güçlü olma eğiliminde olduğunu ve veritabanına zarar veren programlama hataları yapmanın nispeten kolay olduğunu unutmayın. Dillerin karmaşıklığı, disk G/Ç'sini az altmak gibi üst düzey otomatik optimizasyonları zorlaştırır. Birçok uygulamada bildirimsel sorgular yapabilme yeteneği önemlidir ancak kalıcı diller şu anda bu tür sorgulara sorunsuzca izin vermemektedir.

Kalıtım türlerinin hiyerarşisi

Nesne yönelimli veritabanı şemaları genellikle çok sayıda sınıf gerektirir. Ancak, birkaç sınıf birbirine benzer, aralarındaki benzerliklerin doğrudan temsiline izin vermek için,onları bir uzmanlık hiyerarşisine dönüştürür. Bu konsept ER modellerine benzer. Sınıf uzmanlıklarına, mevcut bir sınıf için ek nitelikler ve yöntemler tanımlayan alt sınıflar denir. Alt sınıflarla oluşturulan nesneler, her şeyi ebeveynden devralır. Bu kalıtsal özelliklerden bazıları, hiyerarşide daha yüksek olanlardan ödünç alınmış olabilir.

Nesneler, büyük miktarda depolama alanı gerektirdiği ve Nesne Yönelimli Veritabanı Yönetimi'nin (OODBS) genellikle sunduğu standart veri türlerinin parçası olmadığı için karmaşık olarak kabul edilir. Nesnelerin boyutu önemli olduğundan, SOOBMS bir nesnenin bir bölümünü alabilir ve nesnenin tamamını almadan önce bir uygulamaya sağlayabilir. Ayrıca, bir uygulama bunlara erişmeden önce bir nesnenin parçalarını önceden almak için arabellek ve önbellek yöntemlerini kullanabilir.

OODB, kullanıcıların hem yapı hem de işlemler içeren yeni türler oluşturmasına olanak tanır, bu durumda genişletilebilir tür sistemi. Yapılarını ve işlemlerini tanımlayarak yeni tür kitaplıklar oluşturabilirsiniz. Birçoğu, yorumlama için uygulama programına "olduğu gibi" iletilen dizeler ve karakterler veya bitler biçiminde büyük bir yapılandırılmış nesneyi saklayabilir ve alabilir.

Yöntem, ana sınıflardan miras alınanlar da dahil olmak üzere, hedef nesnenin niteliklerine doğrudan erişebilir, ancak ikincil sinyallerle diğer nesnelerin niteliklerine erişmelidir. Konsept, aynı operatör adını veya sembolünü aşağıdakilerle ilişkilendirmenize olanak tanır:uygulandığı nesnelerin türüne bağlı olarak iki veya daha fazla farklı uygulaması.

Yapı Uygulamaları

Uygulama Oluşturma
Uygulama Oluşturma

OO sistemleri kullanan birçok veritabanı uygulaması, aynı nesnenin birden çok sürümünü gerektirir. Tipik olarak bakım faaliyetleri, gereksinimleri değiştikçe bir yazılım sistemine uygulanır ve bazı geliştirme ve uygulama modüllerinin değiştirilmesini içerir. Sistem zaten çalışıyorsa ve bir veya daha fazla modülün değiştirilmesi gerekiyorsa, geliştiricinin değişiklik yaparak her birinin yeni bir sürümünü oluşturması gerekir.

Orijinal modüle ek olarak iki tane gerekmesi durumunda, bir nesnenin ikiden fazla versiyonu olabileceğini unutmayın. Aynı yazılım modülünün kendi sürümleri aynı anda güncellenebilir. Buna paralel nesne yönelimli veritabanı tasarımı denir. Ancak, hibrit OODB'nin yapılan değişiklikleri uyumlu olacak şekilde dahil etmesi için her zaman birleştirilmeleri gereken bir nokta gelir.

Nesne yönelimli koşullar

Tüm bilgisayar sistemleri, dikkate alınması için mimarilerinin özelliklerine sahip olmalıdır. Örneğin, bir sistemin ilişkisel olarak kabul edilmesi için tablolara sahip olması gerekir. OODB bir istisna değildir ve nesne mimarisinin bazı temel özelliklerini içerir. Bununla birlikte, gerçek dünyada, bu özelliklerin çoğu tartışılır ve çoklu kalıtım gibi bazıları, nesne yönelimli veritabanı modeline yönelik geliştirmeler olarak kabul edilir.temelin bir parçası olarak. Örneğin, nesne yönelimli dil Smalltalk'ta, nesne mimarisinin bir parçası olarak kabul edilse bile çoklu kalıtım desteklenmez.

Bir sınıf için yöntemler, bir nesne üzerinde gerçekleştirilebilecek bir dizi işlemi tanımlar. Örneğin, bir nesneye uygulandığında ya bir değer döndürür ya da değerleri güncellemek için bazı işlemler gerçekleştirir. Bazen yöntemler onu döndürmez. Yöntem, bir araç için yolcu sayısını güncellemek için tasarlanmış olsaydı, hiçbir değer döndürülmezdi, ancak hedefteki veri öğesi onu değiştirirdi.

Nesneler OODB'de temel bir kavramdır. Esasen nesneler, içinde depolanan gerçek dünyadaki şeylerin soyut bir temsilidir. Bir nesne, tanımının dışında tutulması anlamında bir sınıfın örneğidir.

Bir nesneyi üç bölümden oluşan bağımsız bir paket olarak düşünebilirsiniz:

  1. Kendi kişisel bilgileriniz, veri değerleri.
  2. Sınıf tanımı aracılığıyla değerleri manipüle edecek özel prosedürler.
  3. Bu nesnenin başkalarıyla iletişim kurabilmesi için arayüzü açın.

OODB örnekleri

OODB'yi kullanmak, kavramsallaştırmayı basitleştirir çünkü saklanması gereken bilgileri temsil etmek daha doğaldır. Bir veritabanının yapısını veya mantığını modellemek için sınıf diyagramlarının kullanımı, sınıfları yapısal ilişkileri ve kalıtımlarıyla tanıtmanıza olanak tanır. Dinamiklerin bir kısmını modellemek için, etkileşim venesneler arasındaki davranış, geçici bir ilişkide bulunan nesneler arasındaki etkileşimi temsil etmek için bir dizi diyagramı kullanılacaktır ve olay gerçekleştikten sonra değişen durum verildiğinde bulunabilmeleri için olası durumları açıklar.

OODB örnekleri
OODB örnekleri

Nesne yönelimli bir veritabanı örneği aşağıda gösterilmiştir.

Nesneye yönelik veritabanlarına örnekler
Nesneye yönelik veritabanlarına örnekler

Geçici veya kalıcı olabilen bir adları ve ömürleri vardır. OODB anahtarı, geliştiriciye kendilerine kaç tane yapı ve işlem uygulanacağını belirtme yeteneğidir. Karmaşık veri türlerini işlemek için esneklik ve destek vardır. Sınıflar ve alt sınıflar oluşturabilirsiniz, örneğin, müşteri tabanı bu müşterinin bağlantısının bir alt sınıfına sahip olabilir ve orijinal sınıfın tüm niteliklerini ve özelliklerini devralır, bu yaklaşım karmaşık verileri hızlı ve esnek bir şekilde işlemenizi sağlar.

Önerilen: