Relational Algebra
SQL은 결과를 말하고, DBMS는 관계 대수로 실행 방법을 만든다
사용자는 선언형 SQL로 원하는 결과를 적습니다. 옵티마이저는 그 의미를 보존한 채 관계 대수 표현식과 실행 계획으로 바꿉니다.
사용자 입력
SQL
SELECT 이름 FROM 학생 WHERE 학과 = '컴퓨터'
->
옵티마이저 내부
관계 대수
π이름(σ학과='컴퓨터'(학생))
->
실행
실행 계획
필터, 인덱스, 조인 순서 같은 물리적 방법을 선택합니다.
관계 해석은 무엇을 원하는지 적는다
튜플이 만족해야 할 조건을 선언합니다. SQL의 사고방식과
가깝습니다.
관계 대수는 어떻게 얻을지 연산 순서를 적는다
선택, 투영, 조인 같은 연산을 조합해 결과 릴레이션을 만듭니다.
관계 완전 관계 해석과 관계 대수는 표현력은 같지만 관점이 다릅니다. SQL은 해석처럼 쓰고, DBMS는 대수처럼 실행합니다.