데이터 통합
여러 데이터 저장소로부터 온 데이터를 합치는 과정으로 향상된 데이터 품질, 효율성, 통찰력, 더 나은 의사 결정 및 경쟁 우위를 제공하는 분석에 중요함
- 데이터 원천, 데이터 소스 : 데이터베이스, 데이터 큐브, 플랫파일 등 다양한 형태로 존재
- 데이터 웨어하우스 : 다수의 원천 데이터부터 하나의 통일된 데이터 저장소로 결합시키는 통합 작업이 필요한 데이터 분석 작업
- 데이터 마이닝 : 대용량의 데이터 집단에서 특정 정보를 추출하기 위한 처리 과정
데이터 통합과정에서 동일한 의미의 개체들이 서로 다르게 표현되어 있을 경우 이를 일치시켜야 하는데 이 문제를 개체식별문제 라고 하며 이를 해결하기 위해 다양한 기술과 방법이 사용됨
개체식별문제 - 메타데이터 활용
메타데이터 : 각 속성의 이름과 의미, 데이터 타입, 허용값 범위(도메인), Null 규칙 등을 포함하며 스키마 통합 과정에서 오류를 피하는데 필요함
- 예시로 A 데이터베이스는 성별을 'M', 'F'로 표현하고 B 데이터베이스는 '1', '2'로 사용할 때 두 데이터베이스를 통합하려면 성별 값 표기의 차이를 메타데이터를 통해 인식하고 적절히 변환해야 함
1. 개체식별문제
A데이터베이스 customer 테이블의 customer_id와,
B데이터베이스 cust 테이블의 cust_number에 대해
둘 다 기본키 이며 두 속성 모두 동일한 데이터타입과 도메인을 가지고 있다면, 두 속성은 이름은 다르지만 동일한 속성으로 판단이 가능함
-> 데이터 통합 시 일원화된 속성으로 정의가 가능
1-1. 속성의 동일성 판단 고려 사항
- 속성의 데이터 타입 : 같은 데이터 타입을 가진 속성들은 동일성 기준으로 고려 가능
- 속성의 명칭 : 속성의 이름이 동일할 경우 판단 기준으로 사용될 수 있음
- 도메인 값 범위 : 속성이 허용하는 값의 범위가 같으면 동일하다고 볼 수 있음
- 길이와 정밀도 : 특히 문자열이나 소수점을 다루는 데이터타입의 경우 길이와 정밀도가 중요한 판단 근거가 됨
- 기본값 : 속성에 정의된 기본값이 다르면 동일한 데이터를 다뤄도 다르게 해석
- 제약조건 : 유일성, 외래키, 체크 제약조건 등 속성에 설정된 제약조건들은 동일성 판단에 중요 근거가 됨
- NULL 허용 여부 : NULL값 허용 여부도 중요 고려사항
2. 함수적 종속성
- 데이터 무결성 유지 : 데이터의 정확성과 일관성을 유지하는 데 중요
- 정규화 : 중복을 제거하고 데이터 구조를 최적화하여 데이터베이스의 설계를 개선 (정규화 과정에서 함수적 종속성은 중요한 역할을 함)
- 쿼리 최적화 : 쿼리(질의) 처리 시 DB의 성능 향상에 도움이 됨
학번 | 학생이름 | 학과 |
12345678 | 홍길동 | 컴퓨터공학과 |
12345679 | 이순신 | 경영학과 |
12345670 | 김민수 | 신소재공학과 |
해당 테이블에서
- 학번에 의해 학생이름과 학과가 고유하게 구분됨
- 이를 보고 학과와 학생이름은 학번에 함수적으로 종속되어있다고 함
- 학번 = 결정자, 학생이름과 학과 = 종속자
- 학번 -> {학생이름, 학과} 라고 표기함
학번 | 과목코드 | 성적 | 학생이름 |
12345678 | 01 | A | 홍길동 |
12345678 | 02 | B+ | 홍길동 |
12345670 | 01 | A+ | 김민수 |
해당 테이블에서
- 학생이름 결정요소는 학번
- 또다른 학생이름 결정 요소는 학번과 과목코드
- 성적의 결정요소는 학번과 과목코드 ( {학번, 과목코드} -> 성적 )
- 즉 학생이름은 현재 함수적 종속성이 두개 ( 학번 -> 학생이름, {학번, 과목코드} -> 학생이름 )
- {학번, 과목코드} -> 학생이름 과 같은 함수적 종속은, 속성집합 전체가 아닌 학번만, 즉 일부분에도 함수적으로 종속되어 있는 것을 부분 함수적 종속 이라고 함
- {학번, 과목코드} -> 성적 과 같은 함수적 종속은, 속성집합의 일부만으로는 성적을 결정지을 수 없으며 무조건 속성집합의 전체만으로 결정지을 수 있는데 이런 종속을 완전 함수적 종속 이라고 함
3. 유도속성
다른 속성이나 속성 집합으로부터 계산되거나 유도되는 속성으로 원본데이터를 바탕으로 추가적 정보제공, 데이터베이스의 성능 최적화, 특히 조회 성능을 향상시키기 위한 반 정규화 과정에서 자주 활용됨
유도 속성의 예시
- 연령 : 개인의 생년월일에서 유도 가능
- 총점 : 학생의 여러 과목 점수를 합산하여 얻는 속성
- 평균 : 학생의 총점에서 과목 수로 나눈 속성
- 연 소득 : 월 소득을 기반으로 계산하는 속성
- BMI : 키와 몸무게로 유도하는 속성
-> 유도 속성 사용시에는 데이터 중복으로 인해 데이터 불일치 문제가 발생할 수 있음
4. 반 정규화
정규화의 반대 개념이며 일반적으로 정규화는 데이터 중복을 제거하는 과정이지만, 반 정규화는성능 향상을 위해 중복을 허용하는 과정을 의미함
- 릴레이션의 수직/수평 분할 등
4-1. 정규화되지 않은 테이블
- 데이터 중복
- 같은 정보가 여러 행에 걸쳐 반복적으로 저장됨
- 저장공간을 불필요하게 소모하며 데이터 업데이트 시 여러 행을 모두 찾아야 함 - 데이터 일관성 저해
- 데이터 중복으로 일관성 유지가 어려움
- 예시로, 구매자의 주소 정보가 여러 행에 중복 저장되어있고 일부 행만 업데이트 되는 경우 동일한 구매자의 주소가 서로 다르게 나타날 수 있음 - 데이터 불일치
- 같은 구매자에 대해 서로 다른 주소정보가 존재하면 데이터의 불일치가 발생
- 데이터의 신뢰성과 정확성을 저해 - 조인 연산 회피와 성능 향상
- 정규화를 회피하는 가장 큰 이유로, 조회 시 조인 연산을 줄여 성능을 향상시킬 수 있음
- 이로 발생하는 상위의 문제들은 신중하게 고려가 필요함
5. 정규화가 필요한 이유
- 정규화는 데이터베이스 내의 데이터 관계를 명확히 정의하고 무결성 제약 조건을 적정히 설정함으로써 데이터의 일관성과 무결성을 유지하는데 도움을 줌
- 정규화는 불필요한 중복 데이터를 제거함으로써 공간 낭비를 줄이고 더 빠른 검색 및 갱신이 가능하게 함
- 삽입이상 방지
- 정규화를 통해 테이블을 적절히 분리하면, 새로운 데이터를 삽입할 때 불필요한 데이터를 함께 삽입해야 하는 상황을 방지할 수 있음 (데이터의 무결성 유지) - 갱신이상 방지
- 중복된 데이터 중 일부만 갱신되어 데이터간 불일치가 발생하는 상황을 방지하여 일관성과 정확성을 유지할 수 있음 - 삭제이상 방지
- 정규화되지 않은 테이블은 데이터 삭제 시 관련된 다른 중요 데이터가 함께 삭제될 위험이 존재하나, 정규화를 통해 해당 삭제이상을 방지 가능
5-1. 삽입이상, 갱신이상, 삭제이상
학번 | 학생이름 | 학과 | 과목코드 | 성적 |
12345678 | 홍길동 | 컴퓨터공학과 | 012345 | A |
12345678 | 홍길동 | 컴퓨터공학과 | 024567 | B+ |
12345670 | 김민수 | 신소재공학과 | 056789 | C+ |
해당 테이블에서의 삽입이상
- 아직 수업을 하나도 수강신청하지 않은 학생의 경우, 학번과 과목코드가 Primary Key이므로 삽입이 불가능함
- 삽입하려면 '수강 미정'과 같은 과목코드를 불필요하게 삽입해야 함
해당 테이블에서의 갱신이상
- '홍길동'이 신소재공학과로 전과하면 홍길동의 모든 레코드를 신소재공학과로 변경해야 함
- 일부만 변경된 경우, 컴퓨터공학과와 신소재공학과가 혼재하여 식별할 수 없음
해당 테이블에서의 삭제이상
- '김민수'가 '056789' 과목을 수강취소할 경우 '김민수'에 대한 모든 정보가 삭제되는 이상이 발생하게 됨
6. 정규화 (Normal Form)
- 제1정규화 (1NF)
- 데이터베이스의 각 속성이 원자값(분회될 수 없는 단일값)을 갖도록 설계를 변경하는 과정
- 예시로, 취미 리스트와 같은 속성은 여러 값을 가질 수 있으므로 해당 속성 값의 취미가 별도의 레코드로 표현되야 함 - 제2정규화(2NF)
- 복합 주식별자(Composite Primary Key)를 가진 테이블에서 주식별자가 아닌 속성들 중에 주식별자의 일부분에만 종속된 속성을 찾아 제거하는 과정
- 각 비주식별자 속성이 테이블의 전체 주식별자에 완전히 종속되도록 하는 과정 - 제3정규화(3NF)
- 주식별자가 아닌 속성들 사이의 종속관계(즉, 비주식별자A가 비주식별자B에 종속되는 경우)를 제거
- 모든 비주식별자 속성이 서로 독립적이도록 함
7. 상관분석
- 두 속성간 엄격한 함수적 종속관계가 성립하지는 않지만 상관분석을 통해 한 속성이 다른 속성을 얼마나 강하게 암시하는지를 데이터를 톡해 측정
- 두 속성간 상관도가 높다면 이를 중복으로 보고 하나의 속성을 제거할 수 있음
7-1. 상관계수
상관계수는 절대값이 클수록 더 강한 상관성을 있다는 것을 나타내며 일반적으로 두 속성간 상관계수가 클 수록 중복속성으로 판단하여 하나의 속성을 배제해도 되지만 예외가 존재함
- 어떤 지역의 병원 수와 자동차 수의 상관관계를 분석해도 병원 수와 자동차 수 사이의 어떤 인과관계가 존재한다고는 할 수 없고 두 속성 모두 인구에 의한 인과관계로 보는 것이 타당하는 것과 같이, 상관관계가 인과관계를 직접 의미하는것은 아님
-> 고로 두 속성간 상관관계가 높다고 하더라도 중복 속성 여부를 판단할 때에는 해당 도메인의 지식을 충분히 고려하여 최종 판단을 하여야 함
8. 데이터값 충돌 탐지 및 해결
- 표현, 척도, 부호화 차이
- 서로 다른 데이터 원천의 데이터들을 통합할 때, 동일 개체에 대해서도 속성값이 다를 수 있음(미터와 마일과 같이)
- 데이터값의 기준을 정하고, 해당 기준에 따라 변환하여 통합 - 데이터 구조 조정
- 통합 과정에서 데이터의 속성 뿐 아니라 데이터의 구조, 즉 원천 시스템의 종속성과 제약 사항도 목표 시스템과 일치시켜야 함 - 시스템 간 차이 해결
- 시스템 별로 데이터에 차이가 발생하는 경우(어디서는 할인이 적용되도, 다른 시스템에서는 안되는 등)를 해결해야 함
'빅데이터 관련 개념 정리' 카테고리의 다른 글
추정과 검정 (0) | 2024.04.22 |
---|---|
데이터 축소 (0) | 2024.04.21 |
데이터 정제 (0) | 2024.04.20 |
데이터 전처리 (0) | 2024.04.20 |
탐색적 데이터 분석 (1) | 2024.04.20 |