SQL 정규화 시 누락 데이터 탐지 및 보고서 작성 방법

SQL 정규화 과정에서 누락된 데이터를 탐지하는 보고서 작성 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

데이터 분석

대상자

SQL 개발자 및 데이터 분석가 (중간~고급 수준)

핵심 요약

  • NOT EXISTS, IS NULL, CASE 문을 활용해 누락된 레코드, NULL 값, 데이터 형식 오류, 논리 불일치를 탐지
  • TRY_CASTCASE를 통해 데이터 무결성 검증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 CONSTRAINTFOREIGN 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 KEYCHECK CONSTRAINT를 사용해 데이터 오류 예방