익명 사용자
로그인하지 않음
계정 만들기
로그인
youngwiki
검색
View 문서 원본 보기
youngwiki
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
원본 보기
역사
←
View
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
상위 문서: [[SQL]] ==개요== 모든 유저들이 데이터베이스 내의 모든 logical model(relation)을 볼 수 있는 권한을 가지는 것은 보안상의 측면에서 권장되지 않는다. 또한 어떤 사용자는 특정 릴레이션(relation)에 접근할 수는 있어도, 모든 속성(attribute)에 접근하는 것이 바람직하지 않을 수 있다. 예를 들어, 어떤 직원(employee)는 강사(instructor)의 ID, name, dept_name 속성에 접근할 필요가 있지만, 강사의 salary 속성을 볼 필요는 없을 수 있다. 따라서 해당 직원은 다음과 같은 SQL 쿼리(query)로 표현된 릴레이션에 접근해야 한다. <syntaxhighlight lang="sql"> select ID, name, dept_name from instructor; </syntaxhighlight> 즉, 위 쿼리의 결과를 계산하여 저장한 다음 저장된 릴레이션을 사용자에게 제공하는 방식으로 특정 사용자에게 제한된 릴레이션을 제공할 수 있다. 하지만 instructor, course, section 릴레이션 안의 데이터가 변경된다면, 저장된 쿼리 결과는 다시 쿼리를 실행했을 때의 결과와 일치하지 않는다.(out-of-date) 따라서 위와 같은 해결 방식, 즉 쿼리 결과를 계산해서 저장하는 것은 좋은 생각이 아니다. 대신 SQL에는 '''view'''라는 기능이 있다. View는 '''개념적인 모델(conceptual model)에는 없지만 사용자에게 virtual relation으로 보이도록 만든 릴레이션'''이다. 이를 위해 SQL은 쿼리에 의해 정의되는 '''virtual relation'''이라는 기능을 제공한다. Virtual relation은 '''미리 계산되어 저장되는 것이 아니라, virtual relation이 사용될 때마다 쿼리를 실행하여 계산된다. 이는 [[Nested Subquery#The With Clause|with 절]]과 유사한 기능이다. <syntaxhighlight lang="sql"> </syntaxhighlight> <syntaxhighlight lang="sql"> </syntaxhighlight> <syntaxhighlight lang="sql"> </syntaxhighlight> <syntaxhighlight lang="sql"> </syntaxhighlight> <syntaxhighlight lang="sql"> </syntaxhighlight> <syntaxhighlight lang="sql"> </syntaxhighlight> <syntaxhighlight lang="sql"> </syntaxhighlight> ==각주== [[분류:데이터베이스 시스템]]
View
문서로 돌아갑니다.
둘러보기
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록