SQL 정규화 과정에서 누락된 데이터를 탐지하는 보고서 작성 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
데이터 분석
대상자
SQL 개발자 및 데이터 분석가 (중간~고급 수준)
핵심 요약
NOT EXISTS
,IS NULL
,CASE
문을 활용해 누락된 레코드, NULL 값, 데이터 형식 오류, 논리 불일치를 탐지TRY_CAST
및CASE
를 통해 데이터 무결성 검증 및 1/0 플래그 기반 보고서 생성- 뷰, 저장 프로시저, 스케줄링을 통해 자동화된 데이터 모니터링 구현
섹션별 세부 요약
1. 누락된 레코드 및 오라phan된 주문 탐지
NOT EXISTS
로 외래키 참조 오류 확인:
```sql
SELECT o.OrderID, o.CustomerID FROM Orders o WHERE NOT EXISTS (SELECT 1 FROM Customers c WHERE c.CustomerID = o.CustomerID);
```
LEFT JOIN
+CASE
로 오라phan 플래그 생성:
```sql
CASE WHEN c.CustomerID IS NULL THEN 1 ELSE 0 END AS OrphanedOrderFlag
```
2. 필수 필드 누락 및 데이터 형식 오류 검출
CASE
문으로 필수 필드 누락 확인:
```sql
CASE WHEN FirstName IS NULL OR LastName IS NULL THEN 1 ELSE 0 END AS MissingNameFlag
```
TRY_CAST
로 숫자 형식 오류 탐지:
```sql
CASE WHEN TRY_CAST(ZipCode AS INT) IS NULL THEN 1 ELSE 0 END AS InvalidZipCodeFlag
```
3. 데이터 무결성 보고서 자동화
- 1/0 플래그 기반 Power BI, Grafana 등 대시보드 연동
CHECK CONSTRAINT
및FOREIGN KEY
제약 조건 강제 적용- 중복 데이터 탐지:
```sql
SELECT EmailAddress, COUNT() AS Occurrences, CASE WHEN COUNT() > 1 THEN 1 ELSE 0 END AS DuplicateFlag FROM Customers GROUP BY EmailAddress;
```
결론
CASE
,TRY_CAST
, 1/0 플래그를 통합해 무결성 보고서를 대시보드에 직접 연동- 뷰 또는 저장 프로시저로 중복 로직 centralize
- SQL Agent 또는 cron job으로 보고서 자동화 및 이메일 알림 설정
FOREIGN KEY
및CHECK CONSTRAINT
를 사용해 데이터 오류 예방