이행 결과 대조
객체 대응, 실제 데이터, 업무 호출의 대조 기준 및 실습 기대값과 실제 출력, 미확인 결과의 구분
#핵심 요약
객체 개수, 컴파일 상태, 건수만으로 업무 이행 완료를 판단하지 않음
같은 조건으로 데이터 값과 합계, 날짜, NULL, 문자열을 비교하고 정상, 실패 호출과 이력을 확인하는 실습 예가 있음
#개념과 동작 원리
| 대조 항목 | 객체 및 데이터 비교 기준 |
|---|---|
| 대상 목록 | 이행 객체, 제외 객체, 다른 스키마 또는 DB 참조 |
| 구조 | 테이블, 컬럼, 기본키, 유니크, 외래키, 인덱스 구성 |
| 프로그램 | 프로시저, 함수, 뷰, 트리거의 대응과 활성 상태 |
| 실제 데이터 | COUNT, 금액, 급여 합계, 날짜 최소, 최대, 문자, 바이트 길이 |
| NULL | 합계와 별도로 NULL 건수 확인하는 연습 |
| 채번 | 기존 데이터 최대값과 다음 시퀀스, AUTO_INCREMENT, IDENTITY 발급값 |
| 업무 | 함수, 뷰 결과, 정상 주문, 길이 초과 실패, 급여 인상, 리포트 적재 |
| 부작용 | 트리거 이력 중복, 누락, 실패 시 주문과 이력의 취소, 번호 소비 |
Oracle의 함수 1개, 트리거 2개가 PostgreSQL에서 함수 3개, 트리거 2개로 대응하는 실습 예가 있음
추가 함수 2개는 트리거 함수이므로 DB별 객체 개수를 무조건 같게 맞추는 기준으로 쓰지 않음
#필수 명령어 또는 SQL
SELECT COUNT(*), SUM(amount), MIN(reg_date), MAX(reg_date) FROM orders;
SELECT SUM(sal) FROM emp_m;결과 해석: 양쪽 같은 범위의 건수, 금액, 날짜, 급여를 비교하는 실습 조회임(확인 불가)
Oracle→타깃 데이터 본문에는 해당 최종 결과 숫자가 기재되어 있지 않음(확인 불가)
#사용 조건과 주의사항
| 실습별 결과 | 읽는 법 |
|---|---|
| Oracle→Oracle 소스, 타깃 실습 | 이력 11건 중복, 8건 복귀와 새 주문 후 1건 차이는 실습 시나리오 설명으로만 취급 |
| Oracle→PostgreSQL 저장 프로그램 | 주문번호 1010, 주문/이력 9건 등은 수업 자료가 예시값으로 명시, 실제 시퀀스 소비 이력과 대조 필요 |
| Oracle→MySQL 데이터 적재 | Records 8, Warnings 0은 실습의 테이블별 예시, 전체 이행의 완료 여부는 확인 불가 |
| MySQL→PostgreSQL 실습 출력 | 비교 시 주문 9건, 합계 700000, 이력 9건, 후속 정상 호출 뒤 주문/이력 10건, 리포트 합계 733000 출력이 있음 |
| DB 전체 Data Pump 프로젝트 | 최종 로그, 실제 건수 대조가 남았다고 수업 자료가 명시 |
MySQL→PostgreSQL 실습은 테이블 7개 50행과 주문, 이력 호출 결과가 기록되어 있음
상품 연습의 건수와 합계는 정답 기준이며 실제 실행 출력은 아님
전 항목의 기술 검토, 전체 열 값의 일치, 운영 전환 완료까지 확인된 것은 아님
실습의 같은 0% 인상 호출은 MySQL 0명, PostgreSQL 2명으로 기록됨
처리 건수의 의미, 접속 방식, 옵션을 확인해야 함
JDBC에서의 결과는 확인 불가
소스, 타깃에 서로 다른 테스트 주문이 추가된 이후에는 같은 집계 범위를 다시 정해야 함
실습 Oracle 실습은 특정 주문번호까지의 합계를 비교함
실패 호출 뒤 시퀀스 조회 주석과 번호 소비 메모가 서로 달라 실제 다음 번호는 확인 불가
수업 자료에 기록된 부분 결과와 건수, 합계만으로 모든 값이 일치하고 서비스 전환까지 완료됐다고 주장하지 않음