SQL 뷰를 사용하는 좋은 이유는 무엇입니까?
SQL Server 2008 성경책을 읽고 뷰 섹션을 다루고 있습니다.하지만 저자는 정말로 관점의 목적을 설명하지 않는다.뷰에 적합한 용도는 무엇입니까?웹 사이트에서 사용해야 하며 어떤 장점이 있습니까?
이전 답변에서는 언급되지 않았던 또 다른 용도는 테이블 구조의 변경을 보다 쉽게 도입할 수 있다는 것입니다.
를 들어.T_OLD
유저의 하고, 에, 「 「」 「」 「」 「」 「」 「」)를 가지는 을 사용합니다.T_NEW
단, 및 사용자, 이 추가되어 .), 「 」, 「 」, 「 」, 「 」, 「 」, 「1」이 있습니다.active
.
가 있는 「 「 」 「 」 「 」 「 」 。SELECT whatever FROM T_OLD WHERE whatever
롤아웃에는 다음 두 가지 선택지가 있습니다.
1) 콜드 터키 - 튀르키예d를 동시에 변경하고 해당 쿼리가 포함된 수많은 코드를 변경, 테스트 및 해제합니다.실행(또는 조정)이 매우 어렵고 매우 위험합니다.나빠.
2) 단계적 - DB를 생성하여T_NEW
,, " " "T_OLD
테이블 대신 VIEW를 만듭니다.T_OLD
의 흉내를 내다를 내다T_OLD
100를 들어 뷰 는 100%입니다).SELECT all_fields_except_active FROM T_NEW WHERE active=1
를 참조해 주세요.
현재 에서되고 있는 .T_OLD
T_OLD
로로 합니다.T_NEW
한가할 때
이것은 단순한 예이며, 더 많은 다른 것들이 관련되어 있습니다.
P.S. 반면에, 당신은 아마도 저장 프로시저 API를 가지고 있어야 합니다.T_OLD
을 사용법
(Google 검색에서 처음 나온 튜토리얼에서 복사한 것입니다(링크는 현재 사용되지 않습니다). 하지만 이 튜토리얼에는 제가 직접 수동으로 입력할 수 있는 모든 이점이 있습니다.)
뷰에는 다음과 같은 이점이 있습니다.
- 보안 - 기본 테이블에 직접 액세스할 수 없는 상태에서 사용자가 보기에 액세스할 수 있습니다.이를 통해 DBA는 사용자에게 필요한 데이터만 제공하면서 동일한 테이블의 다른 데이터를 보호할 수 있습니다.
- 단순성 - 보기를 사용하여 복잡한 쿼리를 숨기고 재사용할 수 있습니다.
- 열 이름 단순화 또는 설명 - 보기를 사용하여 열 이름에 별칭을 제공하여 더 기억에 남거나 의미 있는 이름을 만들 수 있습니다.
- 디딤돌 - 보기는 "다단계" 쿼리의 디딤돌을 제공할 수 있습니다.예를 들어, 각 영업 사원의 판매 수를 세는 조회 보기를 만들 수 있습니다.그런 다음 해당 보기를 쿼리하여 판매 담당자를 판매한 개수에 따라 그룹화할 수 있습니다.
Wikipedia의 몇 가지 이유:
뷰는 테이블에 비해 다음과 같은 이점을 제공합니다.
- 뷰는 테이블에 포함된 데이터의 서브셋을 나타낼 수 있습니다.
- 뷰를 통해 여러 테이블을 하나의 가상 테이블로 결합 및 심플화 가능
- 뷰는 데이터베이스 엔진이 데이터(합계, 평균 등)를 집계하여 계산된 결과를 데이터의 일부로 표시하는 집계된 테이블로 기능할 수 있습니다.
- 뷰는 데이터의 복잡성을 숨길 수 있습니다.예를 들어 뷰는 Sales2000 또는 Sales2001로 표시되며 실제 기본 테이블을 투과적으로 분할할 수 있습니다.
- 뷰는 저장 공간이 거의 없습니다.데이터베이스에는 뷰의 정의만 포함되며 뷰가 제공하는 모든 데이터의 복사본은 포함되지 않습니다.
- 사용하는 SQL 엔진에 따라 뷰는 보안을 강화할 수 있습니다.
- 뷰는 테이블 또는 테이블이 외부 세계에 노출되는 정도를 제한할 수 있습니다.
VIEWS는 SELECT/CODE의 재사용 가능한 섹션으로 사용할 수 있습니다.이 섹션은 가입할 다른 선택/쿼리에 포함할 수 있으며 매번 SELECT 전체를 다시 작성할 필요 없이 다양한 필터를 사용할 수 있습니다.
또, 로직은 1개의 장소에 배치되기 때문에, 코드 베이스 전체를 변경할 필요가 없습니다.
봐주세요
저장 프로시저, 함수, 뷰, 트리거, 인라인 SQL 중 선택 가능
뷰의 주요 장점은 대부분의 경우 테이블처럼 사용할 수 있지만 테이블과 달리 매우 복잡한 계산과 일반적으로 사용되는 조인을 캡슐화할 수 있다는 것입니다.또한 저장 프로시저를 제외한 DB 내의 거의 모든 개체를 사용할 수 있습니다.보기는 주문 상세 내역과 함께 주문과 같은 테이블 세트를 항상 결합해야 요약 계산 필드 등을 가져올 때 가장 유용합니다.
뷰는 추상화 계층이며 데이터베이스 스키마를 캡슐화하고 내부 구현 세부사항 변경의 결과로부터 사용자를 보호하는 등 모든 양호한 추상화 계층이 수행하는 작업을 수행합니다.
인터페이스입니다.
다음은 테이블이 아닌 뷰를 직접 사용하는 여러 가지 이유 중 몇 가지입니다.
- 단순성 - 보기를 사용하여 복잡한 쿼리를 숨길 수 있습니다.
- 보안 - 선택한 일부 열에 보기를 생성하여 최종 사용자에게 중요한 정보를 숨길 수 있습니다.
- 보안 - VIEW를 사용하여 테이블 구조를 변경할 수 있는 보안 테이블.
- 용장성 - 공통 뷰를 사용하여 모든 프로시저/쿼리에서 용장 코드를 줄입니다.
- 계산 - 뷰 쿼리에서 모든 계산을 한 번 수행할 수 있습니다.
- 의미 있는 이름 - 테이블에는 tbl_org_emp_id와 같은 ID 이름이 있을 수 있으며 [Employee No]와 같은 별칭이나 의미 있는 이름이 있을 수 있습니다.
imexploring.com 에서
여기에는 특정 기준에 의해 기업을 제약하기 위해 뷰를 사용하는 매우 일반적인 용도가 있습니다.
표: 모든 사용자가 포함된 USER
표시: ACTIVE_USER 에는, 액티브한 요건의 일부로서 장래에 정의하는 조건을 만족시키지 않는, 일시정지, 금지, 액티브한 유저를 제외한 모든 유저가 포함되어 있습니다.ACTIVE_USER는 불필요한 행을 항상 숨길 수 있기 때문에 USER 테이블에서 행을 삭제할 필요가 없습니다.
이렇게 하면 사용자 관리 페이지의 테이블을 사용할 수 있지만 나머지 애플리케이션은 ACTIVE_USER를 사용할 수 있습니다.이는 ACTIVE_USER만이 프로세스를 실행하고 데이터에 액세스/변경할 수 있기 때문입니다.
뷰를 사용하면 여러 테이블의 데이터를 조합하여 포맷할 수 있습니다(필드 조합, 보다 의미 있는 필드 이름 부여 등). 최종 사용자가 쉽게 사용할 수 있습니다.데이터베이스 모델의 추상화입니다.또한 사용자가 테이블 자체에 직접 액세스하지 않고도 테이블 내의 데이터에 액세스할 수 있도록 할 수도 있습니다.
일반적인 이유/사용법 목록:
데이터의 형식 또는 '모양'을 변경하는 데 사용합니다(즉, 이름과 성을 함께 결합할 수 있습니다).
데이터에 대해 계산 또는 기타 조회를 수행합니다.
데이터 정규화 해제(여러 테이블의 데이터를 한 지점에 포함)
그 전망은 사악하다!가능하면 사용하지 않고 DVK에서 언급한 이유(일시적인 데이터 마이그레이션)에만 사용하십시오.
100개의 테이블이 있는 데이터베이스에서는 각 테이블의 용도를 기억하기 어렵다는 것을 이해해야 합니다.여기에 300개의 뷰를 추가하면 완전히 엉망이 됩니다.'연인 보기'는 중첩된 보기를 사용한 다음 저장 프로시저에서 중첩된 보기를 사용하는 경향이 있습니다.나는 지금 4번 상세하게 중첩된 뷰가 있는 데이터베이스로 작업하고 있다!저장 프로시저의 가장 간단한 논리를 이해하려면 먼저 모든 보기를 살펴봐야 합니다.
언급URL : https://stackoverflow.com/questions/2680207/what-is-a-good-reason-to-use-sql-views
'programing' 카테고리의 다른 글
Swift - 문자열을 여러 줄로 분할합니다. (0) | 2023.04.12 |
---|---|
WPF에서 *를 사용하여 그리드 열의 너비를 프로그래밍 방식으로 설정 (0) | 2023.04.12 |
일반적으로 어떤 열이 좋은 인덱스를 만드나요? (0) | 2023.04.12 |
git은 왜 기본적으로 빨리 감기 병합을 실행합니까? (0) | 2023.04.12 |
UPDATE 문의 영향을 받는 행 수를 반환합니다. (0) | 2023.04.12 |