코드 3-1과 같이 CustomerSales 테이블에 서로 다른 뷰를 만들 수 있다.
코드 3-1 역정규화된 테이블을 정규화하는 뷰
CREATE VIEW vCustomers AS
SELECT DISTINCT cs.CustFirstName, cs.CustLastName, cs.Address,
cs.City, cs.Phone
FROM CustomerSales AS cs;
CREATE VIEW vAutomobileModels AS
SELECT DISTINCT cs.ModelYear, cs.Model
FROM CustomerSales AS cs;
CREATE VIEW vEmployees AS
SELECT DISTINCT cs.SalesPerson
FROM CustomerSales AS cs;
그림 3-1과 같이 vCustomers 뷰에는 Tom Frank 로우가 두 개 들어 있는데, 원본 테이블에 이 사람의 주소가 두 개 있기 때문이다. 하지만 더 작은 데이터 집합으로 작업하는 것이 좋다. CustFirstName과 CustLastName으로 정렬하면 중복된 데이터를 쉽게 찾을 수 있고, CustomerSales 테이블에 있는 데이터를 올바르게 수정할 수 있다.
▲ 그림 3-1 vCustomers 뷰 데이터