뷰는 기본 테이블로부터 유도되어 만들어지는 가상 테이블이다. 독립된 저장 공간을 차지하지 않으므로 물리적으로 존재하지 않는 테이블이라고 설명한다. 데이터베이스 관리자가 기본 테이블에서 임의로 유도해 만들고, 사용자에게 접근이 허용된 자료만 제한적으로 보여 주는 데 쓴다.
뷰를 통한 검색은 기본 테이블을 직접 다룰 때와 차이가 없다. 제약이 따르는 쪽은 갱신 연산이다. 삽입, 갱신, 삭제에는 제약이 있으므로 검색에도 제약이 있다고 서술하면 뷰의 특징을 잘못 잡은 것이다.
뷰는 논리적 데이터 독립성을 제공한다. 기본 테이블의 구조가 바뀌어도 뷰를 거쳐 쓰는 쪽의 논리적 관점을 유지할 수 있기 때문이다.
뷰를 쓰는 목적은 데이터 사용의 단순화, 조인을 되풀이하지 않도록 하는 것, 접근 허용 범위를 제한하는 보안, 임시 작업의 편의 같은 데 있다. 사용을 복잡하게 만드는 것은 뷰의 목적이 아니므로, 복잡화를 유도한다는 설명은 목적에서 벗어난다.
예제
선지 판단은 뷰를 기본 테이블에서 유도된 가상 테이블로 읽는지, 뷰가 물리적으로 존재하지 않는다고 보는지, 검색에는 제약이 없고 갱신에만 제약이 따른다고 가르는지, 논리적 데이터 독립성 제공을 뷰의 성질로 잡는지, 접근이 허용된 자료만 제한적으로 보여 준다는 쓰임을 아는지, 뷰의 목적에 복잡화 유도를 넣었는지에서 갈린다.
대표 기출 3문항
뷰(view)에 대한 설명 중 가장 거리가 먼 것은?
뷰는 원칙적으로 하나 이상의 기본 테이블로부터 유도된 이름을 가진 가상 테이블을 말한다.
기본 테이블은 물리적으로 구현되어 데이터가 실제로 저장되지만 뷰는 물리적으로 구현되어 있지 않다.
뷰는 근본적으로 기본 테이블로부터 유도되지만 일단 정의된 뷰가 또 다른 뷰의 정의에 기초가 될 수도 있다.
뷰의 정의만 시스템 내에 저장하였다가 필요시 실행시간에 테이블을 구축하므로 시스템 검색에 있어서 뷰와 기본 테이블 사이에 약간의 차이가 있다.
정답과 해설 보기
정답 ④ · 뷰에 대한 설명 중 틀린 내용을 찾는 문제이다. 뷰는 하나 이상의 기본 테이블로부터 유도되어 만들어진 가상 테이블로, 물리적 구현 없이 정의만 시스템에 저장된다.
뷰는 기본 테이블로부터 유도된 가상 테이블이며, 검색 시 기본 테이블과 차이가 없다.
데이터베이스관리자가 기본 테이블에서 임의로 유도하여 만드는 테이블로서 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위한 테이블을 무엇이라 하는가?
임시테이블(temporary table)
뷰 테이블(view table)
색인테이블(index table)
기본테이블(base table)
정답과 해설 보기
정답 ② · 기본 테이블에서 유도되어 접근 허용된 자료만 제한적으로 보여주는 테이블의 명칭을 묻는 문제다. 뷰는 기본 테이블로부터 유도되는 가상 테이블로서 실제 데이터를 저장하지 않고 정의만 저장되며, 사용자에게 허용된 자료만 노출하는 보안 목적으로 활용된다.
뷰는 기본 테이블에서 유도된 가상 테이블로 접근 허용 자료만 제한적으로 보여준다.
관계 데이터베이스의 테이블인 수강(학번, 과목명, 중간성적, 기말성적)에서 과목명이 ‘DB'인 모든 튜플들을 성적에 의해 정렬된 형태로 검색하고자 한다. 이때 정렬 기준은 기말성적의 내림차순으로 정렬하고 기말성적이 같은 경우는 중간성적의 오름차순으로 정렬하고자 한다. 다음 SQL질의문에서 ODER BY 절의 밑줄 친 부분의 내용으로 옳은 것은?
중간성적 DESC, 기말성적 ASC
기말성적 DESC, 중간성적 ASC
기말성적 DOWN, 중간성적 UP
기말성적 UP,중간성적 DOWN
정답과 해설 보기
정답 ② · ORDER BY 절에 들어갈 정렬 조건을 작성하는 문제이다. ORDER BY는 나열한 기준 순서대로 정렬을 적용하며 내림차순은 DESC, 오름차순은 ASC로 표기한다.
ORDER BY는 나열한 기준 순서대로 정렬을 적용하며 내림차순은 DESC, 오름차순은 ASC이다.