Araştırma Makalesi
BibTex RIS Kaynak Göster

C++ Programlama Dili için Yerel Nesne-İlişkisel Haritalama Yaklaşımı

Yıl 2023, Cilt: 8 Sayı: 2, 151 - 158, 31.08.2023
https://doi.org/10.46578/humder.1219421

Öz

En popüler programlama dillerinin çoğu, nesne yönelimli olarak bilinen dillerdir. Bu diller ile geliştirilmiş uygulamaların çoğu da, ilişkisel veri tabanları kullanmaktadır. Yapısal sorgulama dili olan SQL ise ilişkisel bir Veritabanı ile etkileşim kurmak için kullanılan ve verileri düzenlemek, yönetmek ve almak için kullanılan, standart haline gelmiş bir araçtır. Bu iki teknolojinin arasındaki temel farklılıklar nedeniyle sorunsuz bir şekilde birlikte çalışmamaktadır. Aralarındaki uyumsuzluklar, nesne/ilişkisel empedans uyumsuzluğu sorunları olarak ortaya çıkmaktadır. Bu nedenle, verileri o iki ortam arasında dönüştürebilmek için bir haritalama katmanına sahip olmak oldukça gereklidir. Bu soyutlama katmanı, uygulama nesnelerini otomatik olarak veritabanı kayıtlarına eşler; bu şekilde veritabanı ile etkileşim için gerekli kod miktarında azalma olmaktadır. Ayrıca verilerin tutulduğu veri tabanını yazılımcıdan soyutlamaya yardımcı olur. Böylelikle, kodun testini ve bakımını daha kolay kılar. Bu tür araçlara nesne/ilişkisel haritalama aracı denilir (Object/Relational Mapping - ORM). Çoğu programlama dili için çeşitli ORM araçları geliştirilmiştir. Ancak C++ için etkili bir ORM aracı bulunmamaktadır. Bu çalışmada C++'ın şablon (template) programlama ile esnek adresleme özellikleri kullanılarak veri tabanı işlemleri için kullanılan SQL komutları seri hale getirilmektedir. Geliştirilen C++ ORM katmanı yerel olarak uygulamak için yeni bir yaklaşım tanıtılmaktadır.

Kaynakça

  • S. Karacabey, “Veritabanı modelleri ve hiyerarşik veritabanından ilişkisel veritabanına dönüşüm”, Yüksek Lisans Tezi, Yıldız Teknik Üniversitesi (1997).
  • C. Ireland, D. Bowers, M. Newton, K. Waugh, “Understanding object-relational mapping: A framework based approach”, International Journal on Advances in Software, vol 2 no 2&3, (2009).
  • M. K. Awang, “Transforming object oriented data model to relational data model”, International Journal of New Computer Architectures and their Applications, 3(3):403-410 (2012).
  • C. Xia, G. Yu, M. Tang,.”Efficient Implement of ORM (Object/Relational Mapping) Use in J2EE Framework: Hibernate”, 1 - 3. 10.1109/CISE.2009.5365905 (2010).
  • X. Zhang, “A framework for object-relational mapping with an example in C++”, Masters thesis, Concordia University (2004).
  • Code Synthesis, “ODB - C++ Object-Relational Mapping (ORM)”, https://www.codesynthesis.com/products/odb/ (Accessed 2022-11-06).
  • L. Marty, “QxOrm : C++ Qt ORM Object Relational Mapping database library - QxEntityEditor : C++ Qt entities graphic editor (data model designer and source code generator)”, http://www.qxorm.com/qxorm_en/home.html/ (Accessed 2022-11-06).
  • L. Stryzhevskyi, “Oat++”, https://oatpp.io/ (Accessed 2022-11-06).
  • Emweb, “Wt, C++ Web Toolkit — Emweb”, https://www.webtoolkit.eu/wt/ (Accessed 2022-11-06).
  • TreeFrog Framework Project, “TreeFrog Framework | High-speed C++ MVC Framework for Web Application”, https://www.treefrogframework.org/ (Accessed 2022-11-06).
  • M. Garrigues, “Lithium C++ High Performance HTTP server”, https://matt-42.github.io/lithium/ (Accessed 2022-11-06).
  • P. Korzhyk, “GitHub - paulftw/hiberlite: C++ ORM for SQLite”, https://github.com/paulftw/hiberlite/ (Accessed 2022-11-06).
  • BrainlessLabs, “GitHub - BrainlessLabs/bun: Bun is a simple to use C++ Object Database, Object Relational Mapper (ORM) and key-value library”, https://github.com/BrainlessLabs/bun/ (Accessed 2022-11-06).
Yıl 2023, Cilt: 8 Sayı: 2, 151 - 158, 31.08.2023
https://doi.org/10.46578/humder.1219421

Öz

Kaynakça

  • S. Karacabey, “Veritabanı modelleri ve hiyerarşik veritabanından ilişkisel veritabanına dönüşüm”, Yüksek Lisans Tezi, Yıldız Teknik Üniversitesi (1997).
  • C. Ireland, D. Bowers, M. Newton, K. Waugh, “Understanding object-relational mapping: A framework based approach”, International Journal on Advances in Software, vol 2 no 2&3, (2009).
  • M. K. Awang, “Transforming object oriented data model to relational data model”, International Journal of New Computer Architectures and their Applications, 3(3):403-410 (2012).
  • C. Xia, G. Yu, M. Tang,.”Efficient Implement of ORM (Object/Relational Mapping) Use in J2EE Framework: Hibernate”, 1 - 3. 10.1109/CISE.2009.5365905 (2010).
  • X. Zhang, “A framework for object-relational mapping with an example in C++”, Masters thesis, Concordia University (2004).
  • Code Synthesis, “ODB - C++ Object-Relational Mapping (ORM)”, https://www.codesynthesis.com/products/odb/ (Accessed 2022-11-06).
  • L. Marty, “QxOrm : C++ Qt ORM Object Relational Mapping database library - QxEntityEditor : C++ Qt entities graphic editor (data model designer and source code generator)”, http://www.qxorm.com/qxorm_en/home.html/ (Accessed 2022-11-06).
  • L. Stryzhevskyi, “Oat++”, https://oatpp.io/ (Accessed 2022-11-06).
  • Emweb, “Wt, C++ Web Toolkit — Emweb”, https://www.webtoolkit.eu/wt/ (Accessed 2022-11-06).
  • TreeFrog Framework Project, “TreeFrog Framework | High-speed C++ MVC Framework for Web Application”, https://www.treefrogframework.org/ (Accessed 2022-11-06).
  • M. Garrigues, “Lithium C++ High Performance HTTP server”, https://matt-42.github.io/lithium/ (Accessed 2022-11-06).
  • P. Korzhyk, “GitHub - paulftw/hiberlite: C++ ORM for SQLite”, https://github.com/paulftw/hiberlite/ (Accessed 2022-11-06).
  • BrainlessLabs, “GitHub - BrainlessLabs/bun: Bun is a simple to use C++ Object Database, Object Relational Mapper (ORM) and key-value library”, https://github.com/BrainlessLabs/bun/ (Accessed 2022-11-06).
Toplam 13 adet kaynakça vardır.

Ayrıntılar

Birincil Dil Türkçe
Konular Bilgisayar Yazılımı
Bölüm Araştırma Makaleleri
Yazarlar

Abdullatif Kalla 0000-0001-5125-0411

Emin Tenekeci 0000-0001-5944-4704

Erken Görünüm Tarihi 30 Ağustos 2023
Yayımlanma Tarihi 31 Ağustos 2023
Gönderilme Tarihi 15 Aralık 2022
Kabul Tarihi 6 Ocak 2023
Yayımlandığı Sayı Yıl 2023 Cilt: 8 Sayı: 2

Kaynak Göster

APA Kalla, A., & Tenekeci, E. (2023). C++ Programlama Dili için Yerel Nesne-İlişkisel Haritalama Yaklaşımı. Harran Üniversitesi Mühendislik Dergisi, 8(2), 151-158. https://doi.org/10.46578/humder.1219421