본문 바로가기

Computer Engineering/Database

[데이터베이스] Relational-algebra

#Relational-algebra, 이름의 의미

Relational-algebra는 '관계 대수'라고 해석된다. 번역해놓으니 직관적으로 와닿지 않아서 그냥 relational algebra로 알고있는 편이 의미적인 면에서 더 좋아보인다. 영어표현을 그대로 보면 relation에 대한 algebra라고 생각할 수 있겠다.

[Algebra]
Algebra (from Arabic: الجبر (al-jabr, meaning "reunion of broken parts" and "bonesetting") is one of the broad parts of mathematics, together with number theory, geometry and analysis. In its most general form, algebra is the study of mathematical symbols and the rules for manipulating these symbols;
- wikipedia

algebra는 '부러진 부분을 다시 모으다'란 의미를 가지는 아랍어에서 유래한 단어로, symbol과 그 symbol을 다루는 방법에 대한 수학의 넓은 분야이다. $x+2=5$처럼 숫자와 문자를 함께 다룬다. 그러니까 DB에선 relation을 다루는 연산이란 의미를 가진다.


#Relational-algebra와 SQL의 관계

relational-algebra를 공부하다보면 누구나 가졌을 의문일 것 같다. 이미 SQL을 배웠는데 왜 굳이 유사한 기능을 하는 다른 연산을 다시 배우는 것일까. 의문을 품고 이리저리 검색하다보니 조금은 그 이유를 알게되었다.

relational-algebra를 기반으로 SQL이 만들어졌다. Table을 다루기 위해 relational-algebra를 사용해야 하는데 여기에 사용되는 기호들은 키보드로 직접 타이핑할 수 없다. (TeX 문법을 사용하면 입력은 가능하지만 번거롭다.) 예를들면 $\sigma, \Pi, \bowtie$ 같은 것들이다.

사용하기에 불편한 이런 기호들 대신 User가 사용하기 편리하게 새로운 언어로 표현한 것이 SQL이다. 그래서 당연히 유사할 수 밖에 없고 SQL 연산의 대부분은 relational-algebra로 표현할 수 있다.
SQL같은 경우 relational-algebra로 작성가능한 기본적인 기능 이외에도 부가적인 기능들을 포함하고 있는데 이런 기능들은 relational-algebra로 표현할 수 없다.


#Relational-algebra의 활용에 대한 생각

Relational-algebra는 종류가 몇 개 없다. 기본 연산이 6개, 부가적으로 서너개의 연산이 추가된다. 합쳐도 10개정도 밖에 되지않는다. 이들은 개념 자체도 단순하고 이해하기 쉽다.
그렇다면 결국 이 기본적인 것들을 어떻게 조합하느냐가 관건이다. 다른 언어들과 마찬가지로 잘 조합해야 한다. 구상하기에 따라 같은 작업이라도 복잡해질수도 있고 아주 심플해질 수도 있을 것이다.
잘 조합하기 위해서 각각의 연산의 기능을 단순히 외워둘 것이 아니라 각각이 어떤 의미를 가지는지 깊이 음미해 봐야할 것 같다.

'Computer Engineering > Database' 카테고리의 다른 글

[데이터베이스] SQL 기초  (0) 2020.05.08