IT개발/Oracle Database2008. 6. 24. 10:40
인덱스(Index)란 것은

영어사전 같은것을 보시면 사전을 펴지 않아도 옆에 A, B, C, D ... 같은 식으로
구분이 되어 있어서 내가 찾을 단어가 'T' 로 시작한다면 바로 T 라고 씌여진 부분을
들춰보면 되지요?

이것이 바로 인덱스 입니다. 위의 예로든 사전에서 쓰이는 인덱스랑 데이타베이스에서
쓰이는 인덱스는 의미상 크게 차이가 없습니다.

사전에 인덱스가 없다면 어떨까요? 어디가 어딘지 몰라서 찾는 시간이 더 오래 걸릴것입니다.
데이타베이스에서도 인덱스는 이와 같은 역활을 합니다.
인덱스를 부여하면 위의 사전 인덱스에서 찾는 방식과 마찬가지로 찾기 때문에 찾는 시간이
훨씬 단축되죠. (즉, query 에 대한 결과가 더 빨리 나온다는 말)


뷰(View) 라는 것은요.

단어 뜻 그대로 기존의 테이블 외에 (하나 이상의 테이블에서 파생된) 데이터를 보는 또 다른
방법을 제공합니다.
이것은 가상테이블 이라고 보셔도 됩니다.

데이타베이스를 사용하다가 보면은... 여러개의 테이블을 만들게 되는데,
이것들 각자는 현실세계의 실체를 모델링한 객체들 입니다.

물론 실체는 하나이지만... 데이타베이스를 디자인함에 있어서 하고자 하는 작업의 목적에
따라서 여러개의 방식으로 표현할 수가 있지요.

보통의 경우는 기존의 테이블 만으로도 작업하는데 충분하기도 하지만, 종종은
다른 관점에서 데이타를 봐야할 경우가 있습니다.

그럴때에 마치 새로운 테이블을 생성하는 것과 같이(그러나 전혀 새로운것을 만드는것은 아님)
기존의 테이블을 기반으로 하여서 여기에서 필요한 요소들을 불러다가 새로운 테이블을
만들어 놓고 이것을 마치 존재하는 테이블처럼 쓸 수 있습니다.. (이것은 실제의 테이블이
아니고 가상테이블임)

이것을 View 라고 합니다. View라는 이름이 말해 주듯이 새로운 관점을 제공하는 것입니다.
Posted by 시티락