Research Article
BibTex RIS Cite

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

Year 2023, Volume: 8 Issue: 2, 151 - 158, 31.08.2023
https://doi.org/10.46578/humder.1219421

Abstract

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.

References

  • 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).
Year 2023, Volume: 8 Issue: 2, 151 - 158, 31.08.2023
https://doi.org/10.46578/humder.1219421

Abstract

References

  • 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).
There are 13 citations in total.

Details

Primary Language Turkish
Subjects Computer Software
Journal Section Research Articles
Authors

Abdullatif Kalla 0000-0001-5125-0411

Emin Tenekeci 0000-0001-5944-4704

Early Pub Date August 30, 2023
Publication Date August 31, 2023
Submission Date December 15, 2022
Acceptance Date January 6, 2023
Published in Issue Year 2023 Volume: 8 Issue: 2

Cite

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