얼마전 연구실에서 실험을 돌릴 때 특정 index에 해당하는 문제를 대상으로 프로그램을 돌려야 하는 일이 있었다.
인덱스를 쿼리로 따로 뽑아서 돌려도 되지만 view형태로 만들어서 출력해 놓으면 일도 분담할 수 있고 보다 보기 편할 거 같아서 view를 생성해 두었다.
그런데 친구가 묻기를
'view와 table이 어떻게 다른거야??'
나름 직전학기 Database 과목 조교였던 나였지만 이 질문에 쉽게 대답을 하지 못하였다.
'그러게... key가 있고 없고의 차이인가??'
이 정도로 대답하고 속으로도 view는 어떤 기능을 하는 것일까 생각만하고 필요한 실험만 돌렸다.
그렇게 실험을 하던 중 view와 table의 차이를 발견하게 되었다.
view를 생성하기 위해 참조하였던 table에 새로운 데이터가 추가되거나 변경됨에 따라 view가 시시각각 변하는 것이었다.
아.. 비로소 감이 왔다. view를 생성할 때 사용되는 query문의 형식은 다음과 같다.
CREATE VIEW WORKS_ON1
AS SELECT Fname, Lname, Pname, Hours
FROM EMPLOYEE, PROJECT, WORKS_ON
WHERE Ssn=EssnAND Pno=Pnumber;
찾아보니.. 내가 강의한 자료에도 있다.
Efficient view implementation
-Query modification: present the view query in terms of a query on the underlying base tables
-View materialization: involves physically creating and keeping a temporary table
maintaining correspondence between the base table and the view when the base table is updated: incremental update
여튼 간단한 걸 길게 써봤는데.... 이런식으로 체감하면서 느끼는 것은 절대 안 잊어버릴 거 같아서 길게 써봤다.