Abstract
The following paper presents the effects of combining two technologies: object-relational mapping and SQL’s recursive queries. Both technologies are widely used in modern software, and yet, modern ORM systems still lack the support for recursive database querying. The currently used methods for querying graph and hierarchical structures are either inefficient, difficult to maintain, or do not allow for any portability. The authors of the following paper propose extensions to the general functionality of modern ORM systems and present the results for two ORM systems: Hibernate for Java and Django-models for Python. With this extension programmers using one of those systems can benefit from the support for the recursive queries offered by various object-relational database management systems and write a maintainable code compliant with the used ORM standard. The proposed solution works with IBM DB2, Oracle and PostgreSQL DBMS and proved to be many times faster than the approaches currently used.
The authors were supported by the grant N N516 077837 from the Ministry of Science and Higher Education of the Republic of Poland and by the National Centre for Research and Development (NCBiR) under the grant SP/I/1/77065/10 by the Strategic scientific research and experimental development program: “Interdisciplinary System for Interactive Scientific and Scientific-Technical Information”.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Brandon, D.: Recursive database structures. J. Comput. Small Coll. 21(2), 295–304 (2005)
Przymus, P., Boniewicz, A., Burzańska, M., Stencel, K.: Recursive Query Facilities in Relational Databases: A Survey. In: Zhang, Y., Cuzzocrea, A., Ma, J., Chung, K.-i., Arslan, T., Song, X. (eds.) DTA and BSBT 2010. Communications in Computer and Information Science, vol. 118, pp. 89–99. Springer, Heidelberg (2010)
Ghazal, A., Crolotte, A., Seid, D.Y.: Recursive SQL Query Optimization with k-Iteration Lookahead. In: Bressan, S., Küng, J., Wagner, R. (eds.) DEXA 2006. LNCS, vol. 4080, pp. 348–357. Springer, Heidelberg (2006)
Burzańska, M., Stencel, K., Wiśniewski, P.: Pushing Predicates into Recursive SQL Common Table Expressions. In: Grundspenkis, J., Morzy, T., Vossen, G. (eds.) ADBIS 2009. LNCS, vol. 5739, pp. 194–205. Springer, Heidelberg (2009)
django-models, https://docs.djangoproject.com/en/dev/topics/db/models/
Burzańska, M., Boniewicz, A., Szumowska, A., Wiśniewski, P.: Hibernate the Recursive Queries - Defining the Recursive Queries Using Hibernate ORM. To appear in Proceedings of ADBIS 2011 (2011)
Melnik, S., Adya, A., Bernstein, P.A.: Compiling mappings to bridge applications and databases. ACM Transactions on Database Systems (TODS) 33(4), 1–50 (2008)
Keller, W.: Mapping objects to tables: A pattern language. In: EuroPLoP (2007)
Hibernate, http://www.hibernate.org
DeMichiel, L.: Java Specification Requests JSR 317: JavaTM Persistence 2.0 (2009), http://jcp.org/en/jsr/detail?id=317
Burzańska, M., Stencel, K., Suchomska, P., Szumowska, A., Wiśniewski, P.: Recursive Queries Using Object Relational Mapping. In: Kim, T.-h., Lee, Y.-h., Kang, B.-H., Ślęzak, D. (eds.) FGIT 2010. LNCS, vol. 6485, pp. 42–50. Springer, Heidelberg (2010)
Bauer, C., King, G.: Java Persistence with Hibernate. Manning Publications Co., Greenwich (2006)
O’Neil, E.J.: Object/relational mapping 2008: hibernate and the entity data model (edm). In: Proc. ACM SIGMOD, pp. 1351–1356 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Szumowska, A., Burzańska, M., Wiśniewski, P., Stencel, K. (2011). Efficient Implementation of Recursive Queries in Major Object Relational Mapping Systems. In: Kim, Th., et al. Future Generation Information Technology. FGIT 2011. Lecture Notes in Computer Science, vol 7105. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-27142-7_10
Download citation
DOI: https://doi.org/10.1007/978-3-642-27142-7_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-27141-0
Online ISBN: 978-3-642-27142-7
eBook Packages: Computer ScienceComputer Science (R0)