MySQL
의 CREATE VIEW
구문을 읽었지 만 실제로 사용하지는 않았습니다.MySQL에서 VIEW를 적용하는 좋은 예는 무엇입니까?
응용 프로그램의 몇 가지 예를 보여주십시오.
MySQL
의 CREATE VIEW
구문을 읽었지 만 실제로 사용하지는 않았습니다.MySQL에서 VIEW를 적용하는 좋은 예는 무엇입니까?
응용 프로그램의 몇 가지 예를 보여주십시오.
비 구체화 된 뷰는 실제로 매크로입니다. 뷰를 참조하면 뷰가 참조 뷰에 사용되는 쿼리임을 나타냅니다. IE :
CREATE VIEW your_vw AS
SELECT *
FROM EMPLOYEES
이 :
SELECT * FROM your_vw
... 사용하는 당신이 얻을했던 것과 일치하는 결과 집합을 반환합니다
SELECT x.*
FROM (SELECT *
FROM EMPLOYEES) x
나는 비 구체화 언급하지만, MySQL을 구체화 된보기를 지원하지 않습니다. 다른 데이터베이스 (오라클, SQL Server는 그것들을 "인덱스 된 뷰"라고 부르며, DB2)는 구체화 된 뷰를 지원하지만 이는 문제가되지 않습니다. 이제부터는 뷰를 작성할 때 구체화되지 않은 뷰에 대해서만 설명하겠습니다.
뷰는 캡슐화/추상화에 사용됩니다. 사용자가 액세스 할 수있는 경우가 아니라면 뷰의 기본 쿼리가 무엇인지 알 수 없습니다. 이것은 상황에 따라 좋거나 나쁘다. 데이터 모델 정보를 제공하는 것이 걱정된다면 좋을 것이다. 다른 대부분의 경우에는 좋지 않습니다. 보기에서 ORDER BY를 사용하는 것은 주문을 적용하는 데 리소스가 필요하기 때문에 나쁘다. 캡슐화/추상화로 인해 다른 사람이 주문을 적용 할 수 있습니다. 이는 리소스 낭비입니다. 뷰를 쌓아 올리는 것 (뷰에 빌드 된 뷰)은 또 다른 나쁜 습관입니다. 뷰가 실행될 때까지는 오류가 발생하지 않습니다.
테이블에 대한 액세스 권한을 부여 할 필요없이 데이터에 대한 액세스를 제공하기 위해 사용한 뷰이지만 기본 테이블 업데이트를 지원하도록 발전했습니다. 나는 그러한 상황을 위해 테이블에 대한 접근 권한을 부여하는 것을 선호한다.
RDBMS와 관계없이보기는 기본 테이블에 대한 액세스를 단순화하거나 제한하는 데 사용됩니다.
예를 들어, 최종 사용자 및 비정형 화 조인이 쉽게 이해하고 소비 할 수 있도록 열 이름을 변경하는 경우가 있습니다.
다른 하나는 중요한 정보 (예 : 급여)에 대한 액세스를 차단합니다. 즉, 모든 사용 권한이 테이블에서 제거되고보기를 통해 제공되는 제어 된 액세스입니다.
뷰를 업데이트 할 수 있습니다 - [MySQL] (http://dev.mysql.com/doc/refman/5.0/en/create-view.html), Oracle과 SQL Server는이 기능을 지원합니다. –
@OMG 조랑말 : 물론. 나는 그들이 할 수 없다는 인상을주지 않기를 바랍니다. 나는 그들이 없을 수도있는 한 가지 예를 제공했다. –
그리고 주어진 답변에 덧붙여 기사를 보여주고 싶습니다. http://www.oraclesolved.com/general/Q_25482999-Reasons-for-using-views.jsp PS : 그 기사를 읽고 추가 할 때 그것은 내 북마크에 그것은 어떤 등록없이 읽을 수있었습니다 : - – zerkms