관계형 데이타베이스에 기반한 그래프 알고리즘의 표현과 구현

Representation and Implementation of Graph Algorithms based on Relational Database

  • 박휴찬 (한국해양대학교 기계정보공학부)
  • Park, Hyu-Chan (Dept. of Mechanical Information Engineering, Korea Maritime University)
  • 발행 : 2002.10.01

초록

그래프는 실세계의 많은 문제를 효과적으로 모델링하여 해를 구할 수 있는 강력한 방법을 제공하기 때문에 그래프의 표현 방법과 알고리즘 개발에 다양한 연구가 진행되어 왔다. 하지만, 대부분의 연구가 메인 메모리에 수용 가능한 크기를 갖는 그래프만을 고려하였기 때문에 큰 문제에 적용하기 위해서는 아직도 많은 어려움이 존재한다. 이를 극복하기 위하여 본 논문에서는 관계형 데이타베이스 이론에 기반하여 그래프를 표현하고 그래프 알고리즘을 정의할 수 있는 방법을 제안한다. 이 방법에서 그래프는 릴레이션으로 표현되며 그래프의 각 정점과 간선은 이 릴레이션의 튜플로서 저장된다. 이렇게 저장된 그래프에 대한 알고리즘은 추출, 선택, 죠인과 같은 관계대수 연산을 이용하여 정의되며 SQL과 같은 데이타베이스 언어를 사용하여 구현될 수 있다. 또한, 본 논문은 그래프의 저장 및 관리뿐만 아니라 다양한 응용프로그램 개발에도 사용될 수 있는 기본적인 그래프 함수들을 라이브러리화 하였다. 이와 같은 데이터베이스에 기반한 방법은 메모리에 수용되지 않는 크기의 그래프를 효과적으로 처리할 수 있는 방법을 제공할 뿐만 아니라 다양한 응용프로그램 개발을 용이하게 할 것이다. 또한, 데이타베이스가 제공하는 기본적인 기능인 다중사용자에 의한 동시공용 등과 같은 많은 장점을 가진다.

Graphs have provided a powerful methodology to solve a lot of real-world problems, and therefore there have been many proposals on the graph representations and algorithms. But, because most of them considered only memory-based graphs, there are still difficulties to apply them to large-scale problems. To cope with the difficulties, this paper proposes a graph representation and graph algorithms based on the well-developed relational database theory. Graphs are represented in the form of relations which can be visualized as relational tables. Each vertex and edge of a graph is represented as a tuple in the tables. Graph algorithms are also defined in terms of relational algebraic operations such as projection, selection, and join. They can be implemented with the database language such as SQL. We also developed a library of basic graph operations for the management of graphs and the development of graph applications. This database approach provides an efficient methodology to deal with very large- scale graphs, and the graph library supports the development of graph applications. Furthermore, it has many advantages such as the concurrent graph sharing among users by virtue of the capability of database.

키워드

참고문헌

  1. R. Gould, Graph Theory, The Benjamin/Cummings Publiching, Menlo Park, CA. 1988
  2. J. A. Mchugh, Algorithmic Graph Theory, Prentice-Hall, 1990
  3. E. Horowitz, S. Sahni, and S. Anderson-Freed, Fundamentals of Data Structures in C, Computer Science Press, New York, 1993
  4. Y. J. Chiang, M. T. Goodrich, E. F. Grove, and R. Tamassia, 'External Memory Graph Algorithms,' Proc. of the 6th Annual ACM-SIAM Symposium on Discrete Algorithms, 1995
  5. M. H. Nodian, M. T. Goodrich, and J. S. Vitter, 'Blocking for External Graph Searching,' Algorithmica, Vol.16, No.2, pp.181-214, Aug. 1996 https://doi.org/10.1007/BF01940646
  6. M. V. Mannino and L. D. Shapiro, 'Extensions to Query Languages for Graph Traversal Problems,' IEEE Trans. on Knowledge and Data Engineering, Vol.2, No.3, pp.353-363, Sept. 1990 https://doi.org/10.1109/69.60798
  7. Comput. Lang. v.15 no.2 An Extension of SQL for Querying Graph Relations J.Biskup;U.Rasch;H.Stiefeling https://doi.org/10.1016/0096-0551(90)90011-D
  8. J. Biskup, U. Rasch, and H. Stiefeling, 'An Extension of SQL for Querying Graph Relations,' Comput. Lang. Vol.15, No.2, pp.65-82, 1990 https://doi.org/10.1016/0096-0551(90)90011-D
  9. R. H. Guting, 'GraphDB: Modeling and Querying Graphs in Databases,' Proc. of the 20th Conference on VLDB, pp.297-308, 1994
  10. L. Sheng, Z. M. Ozsoyoglu, and G. Ozsoyoglu, 'A Graph Query Language and Its Query Processing,' Proc. of 15th Conference on Data Engineering, pp.572-581, 1999 https://doi.org/10.1109/ICDE.1999.754973
  11. SIAM J. Comput. v.24 no.6 Finding Regular Simple Paths in Graph Databases A.O.Mendelzon;P.T.Wood https://doi.org/10.1137/S009753979122370X
  12. N. Kiesel, A. Schuerr, and B. Westfechtel, 'GRAS, A Graph-Oriented(Software) Engineering Database System,' Information Systems, Vol.20, No.1, pp.21-52, 1995 https://doi.org/10.1016/0306-4379(95)00002-L
  13. A. O. Mendelzon and P. T. Wood, 'Finding Regular Simple Paths in Graph Databases,' SIAM J. Comput, Vol.24, No.6, pp.1235-1258, Dec. 1995 https://doi.org/10.1137/S009753979122370X
  14. D. E. Knuth, The Stanford GrapbBase: A Platform for Combinatorial Computing, Addison-Wesley, 1993
  15. A. Silberschatz, H. F. Korth, and S. Sudarshan, Database System Concepts, 3rd ed., McGraw-Hill, New York, 1997