Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

데이터 통합(Data Integration)이란 무엇일까요?

데이터 통합(Data Integration)이란 무엇일까요?

데이터 통합은 서로 다른 여러 데이터 소스로부터 데이터를 하나로 결합하는 단계를 말합니다. 데이터 통합을 구현할 때는 데이터의 중복(redundancy), 불일치(inconsistency), 중복 기록(duplicity) 같은 문제를 반드시 처리해야 합니다.

데이터 마이닝 관점에서 데이터 통합은 데이터 전처리(pre-processing) 기법 중 하나입니다. 수많은 이기종(heterogeneous) 데이터 소스의 데이터를 일관성 있는(coherent) 형태로 병합함으로써, 정보에 대한 통합된 관점을 유지하고 지원하는 것이 목적입니다.

데이터 통합은 데이터 웨어하우징(data warehousing)을 포함해 다양한 소스의 데이터를 하나의 일관성 있는 데이터 저장소로 모읍니다. 여기에는 여러 개의 데이터베이스, 데이터 큐브(data cube), 플랫 파일(flat file) 등이 포함될 수 있습니다. 그렇다면 데이터 통합 과정에서는 어떤 문제들을 고려해야 할까요?

1. 스키마 통합과 객체 매칭

스키마 통합(schema integration)과 객체 매칭(object matching)은 생각보다 복잡한 작업입니다. 예를 들어 동일한 엔티티 식별자가 한 데이터베이스에서는 emp_id, 다른 데이터베이스에서는 emp_no로 표현되는 경우가 있습니다. 이런 문제는 메타데이터(metadata)를 활용하면 효과적으로 방지할 수 있습니다.

2. 데이터 중복성

중복성(redundancy)도 데이터 통합의 대표적인 난제입니다. 예컨대 '연간 매출' 속성은 다른 속성이나 속성 집합으로부터 도출될 수 있다면 중복 속성에 해당합니다. 또한 속성이나 차원(dimension)의 이름을 짓는 규칙이 일치하지 않으면, 결과 데이터셋에 불필요한 중복이 생길 수 있습니다.

3. 상관 분석으로 중복 찾아내기

일부 중복은 상관 분석(correlation analysis)을 통해 발견할 수 있습니다. 두 속성이 주어졌을 때 상관 분석은, 가용한 데이터를 바탕으로 한 속성이 다른 속성을 얼마나 강하게 암시하는지 계산합니다. 수치형 속성이라면 상관계수(correlation coefficient)를 구해 두 속성 A와 B 사이의 상관관계를 평가할 수 있습니다. 이 계수는 발명자인 칼 피어슨(Karl Pearson)의 이름을 따서 피어슨 적률상관계수(Pearson's product-moment coefficient)라고도 부릅니다.

$$r_{A,B}=\frac{\sum_{i=1}^{n}(a_{i}-A')(b_{i}-B')}{N\sigma _{A}\sigma _{B}}=\frac{\sum_{i=1}^{n}(a_{i}b_{i})-NA'B'}{N\sigma _{A}\sigma _{B}}$$

여기서 N은 튜플(tuple)의 개수, ai와 bi는 i번째 튜플에서 각각 속성 A와 B의 값, A'와 B'는 각각 A와 B의 평균값, σA와 σB는 각각 A와 B의 표준편차를 뜻합니다. Σ(aibi)는 AB 교차곱(cross-product)의 합으로, 각 튜플마다 그 튜플의 A 값에 B 값을 곱한 것을 모두 더한 값입니다.

4. 상관관계는 인과관계가 아니다

꼭 기억해야 할 점은 상관관계(correlation)가 곧 인과관계(causality)를 의미하지 않는다는 사실입니다. A와 B가 상관관계에 있다고 해서 반드시 A가 B의 원인이거나, B가 A의 원인이라고 단정할 수 없습니다.

예를 들어 인구통계 데이터베이스를 분석하다 보면, 특정 지역의 병원 수와 자동차 절도 건수 사이에 상관관계가 나타날 수 있습니다. 하지만 이것이 병원이 절도를 유발한다거나 그 반대라는 뜻은 아닙니다. 두 속성 모두 '인구' 같은 제3의 속성과 함께 움직이는 경우가 일반적입니다.

5. 데이터 값 충돌의 탐지와 해결

데이터 통합에서 마지막으로 짚어야 할 중요한 문제는 데이터 값 충돌(data value conflict)의 탐지와 해결입니다. 동일한 실제 세계의 엔터티(entity)라고 해도, 소스마다 속성 값이 서로 다르게 나올 수 있습니다. 이런 차이는 대개 표현 방식(representation), 스케일(scaling), 인코딩(encoding)의 차이에서 비롯됩니다.