답변:
오, 당신이 고려해야 할 많은 차이점이 있습니다
선택보기 :
삽입 / 업데이트보기 :
단점
보기는 다음을 수행 할 수 있습니다.
그리고 뷰와 일치하도록 테이블을 디자인해서는 안됩니다 . 기본 모델은 데이터의 효율적인 저장 및 검색과 관련이 있어야합니다. 뷰는 부분적으로 복잡성을 추상화 할 수 있도록함으로써 효율적이고 정규화 된 모델에서 발생하는 복잡성을 완화하는 도구입니다.
또한 "테이블에 대한 뷰 사용의 장점은 무엇입니까?"라고 묻는 것은 좋은 비교가 아닙니다. 테이블 없이는 갈 수 없지만 뷰 없이는 할 수 있습니다. 그것들은 각각 매우 다른 이유로 존재합니다. 테이블은 구체적인 모델이고 뷰는 추상화 된 뷰입니다.
매번 복잡한 논리를 따라야하는 경우보기가 허용됩니다. 예를 들어 모든 재무보고에 필요한 원시 데이터를 생성하는보기가 있습니다. 모든 보고서에서이보기를 사용하면 모든 보고서가 하나의 조인 집합을 사용하고 다른 보고서가 다른 결과를 제공하는 하나를 사용하는 것을 잊어 버리는 대신 동일한 데이터 집합에서 작업하게됩니다.
사용자를 특정 데이터 하위 집합으로 제한하려는 경우보기가 허용됩니다. 예를 들어, 레코드를 삭제하지 않고 현재 레코드 만 활성으로 표시하고 이전 버전을 비활성으로 표시하는 경우보기를 사용하여 활성 레코드 만 선택하도록 할 수 있습니다. 이것은 사람들이 쿼리에 where 절을 넣는 것을 잊고 나쁜 결과를 얻는 것을 방지합니다.
보기를 사용하여 사용자가 레코드 집합에만 액세스 할 수 있도록 할 수 있습니다. 예를 들어 특정 클라이언트에 대한 테이블보기와 테이블에 대한 보안 권한이 없으면 해당 클라이언트의 사용자가 데이터를 볼 수만 있음을 의미 할 수 있습니다. 그 클라이언트를 위해.
뷰는 데이터베이스를 리팩토링 할 때 매우 유용합니다.
보기를 사용하여보기를 호출 할 때보기는 허용되지 않습니다. 이는 최소한 SQL Server에서 끔찍한 성능을 초래할 수 있습니다. 누군가가 그런 방식으로 데이터베이스를 추상화하고 성능이 끔찍하고 시간 초과가 빈번했기 때문에 우리는 거의 수백만 달러의 클라이언트를 잃었습니다. 성능 문제가 전적으로 우리 잘못 이었기 때문에 우리는 클라이언트가 아닌 수정 비용을 지불해야했습니다. 뷰가 뷰를 호출 할 때 기본 뷰를 완전히 생성해야합니다. 저는 뷰를 뷰라고 부르는 뷰를 보았습니다. 그리고 사용자가 궁극적으로 필요로하는 세 가지를보기 위해 수백만 개의 레코드가 생성되었습니다. 이 뷰 중 하나가 레코드의 간단한 개수 (*)를 수행하는 데 8 분이 걸렸던 것을 기억합니다. 뷰를 호출하는 뷰는 매우 좋지 않은 아이디어입니다.
일반적으로 동일한 테이블의 필드 만 업데이트 할 수 있으므로 뷰는 종종 레코드를 업데이트하는 데 사용하는 것이 좋지 않습니다 (다시 말하지만 이것은 SQL Server이며 다른 데이터베이스는 다를 수 있음). 이 경우 사용 가능한 필드를 알 수 있도록 테이블을 직접 업데이트하는 것이 더 합리적입니다.
우선 이름에서 알 수 있듯이 뷰는 변경할 수 없습니다. 뷰는 DB에 저장된 쿼리에서 생성 된 가상 테이블에 불과하기 때문입니다. 이 때문에보기의 몇 가지 특성이 있습니다.
따라서 뷰가 테이블보다 더 잘 맞는 수 많은 사용 사례가 있습니다. 웹 사이트에서 활성 사용자 만 표시하는 것에 대해 생각해보십시오. 실제로 DB에있는 데이터의 하위 집합 (활성 및 비활성 사용자)에서만 작동하므로보기가 더 좋습니다.
도움이 되었기를 바랍니다 ..
에 따르면 위키 백과 ,
뷰는 기본 테이블이 외부 세계 에 노출되는 정도를 제한 할 수 있습니다. 지정된 사용자는 뷰를 쿼리 할 수있는 권한이있는 반면 나머지 기본 테이블에 대한 액세스는 거부 될 수 있습니다.
뷰는 여러 테이블 을 단일 가상 테이블 로 결합하고 단순화 할 수 있습니다 .
뷰는 데이터베이스 엔진이 데이터 (합계, 평균 등)를 집계하고 계산 된 결과를 데이터의 일부로 표시하는 집계 테이블 역할을 할 수 있습니다 .
보기는 데이터 의 복잡성 을 숨길 수 있습니다 . 예를 들어보기가 Sales2000 또는 Sales2001로 표시되어 실제 기본 테이블을 투명하게 분할 할 수 있습니다.
뷰는 저장하는 데 매우 적은 공간을 차지합니다 . 데이터베이스에는보기에 대한 정의 만 포함되며 제공하는 모든 데이터의 복사본은 포함되지 않습니다.
보기는 사용 된 SQL 엔진에 따라 추가 보안을 제공 할 수 있습니다 .