'데이터 구조'에 해당되는 글 2건

  1. 2016.10.31 데이터 모델링이란 무엇인가?
  2. 2013.08.09 R 데이터 구조에 대한 정리

데이터 모델링이란 무엇인가?

|



데이터 모델링이란 무엇일까? 

먼저 데이터를 기반으로 모델을 만드는 것을 생각해 볼 수 있다. 

그러나 처음부터 모델을 만드는 것에 집착하는 것은 바람직하지 않다. 

너무 추상적이기도 하고, 어떤 모델을 어떻게 만들어야 할지 막막하기만 하다. 


다른 측면에서 데이터 모델링을 정의해 보면, 

데이터 모델링은 데이터의 속성을 설명할 수 있고 이해하는 것이라 할 수 있다. 

흔히 데이터 분석을 이야기할 때, 먼저 데이터의 특성을 파악하라고 한다. 


데이터의 특성을 파악하기 위해서는 다음 세 가지 항목을 알아야 한다. 

데이터 구조, 데이터 연산, 그리고 데이터 제약조건이다. 

특히 데이터 제약조건은 데이터 의미를 파악하는데 유용하게 활용할 수 있다. 


데이터 구조 

데이터 구조는 정형(structued), 반정형(semi-structured), 비정형(unstructued)으로 나누어진다.   

정형 데이터는 데이터베이스와 같이 구조화된 형태로 제공되는 것을 의미한다. 

반정형 데이터는 고정된 필드로 저장되어 있지는 않지만, HTML이나 XML과 같이 메타 데이터나 스키마를 포함한 것을 말한다. 

비정형 데이터는 동영상, 이미지와 같이 구조화 되어 있지 않은 것을 의미한다. 


빅데이터 분석에서 기본적으로 정형, 반정형 데이터를 기반으로 하지만, 비정형 데이터도 처리할 수 있어야 한다


데이터 연산

다양한 데이터 연산이 있지만 간략하게 네 가지만 살펴보기로 한다. 

첫째, 데이터 부분집합(subsetting)으로 전체 데이터의 일부분을 가져오는 것을 의미한다. 

보통 특정 조건을 만족하는 데이터 셋을 가져오는데 사용한다. 


둘째, 데이터 추출(substructure extraction)로 데이터 일부분을 가져온다는 측면에서 부분집합과 유사하다. 

그러나 데이터 구조를 나타내는 필드 중 특정 조건에 적합한 일부 필드만을 가져온다는 차이점은 있다. 


셋째, 유니온(union)으로 데이터간 결합을 의미한다.

일반적으로 동일한 데이터 필드를 가진 두 개의 데이터 셋을 결합할 때 사용하며, 

중복을 제거하고 새로운 데이터 셋을 생성하게 된다. 


넷째, 조인(join)으로 데이터를 결합하는 연산이 있다. 

유니온과 달리 서로 다른 필드를 가진 데이터 셋 결합도 가능하며, 보통 두 데이터셋을 연결하는 키(key)를 가지고 있다. 


데이터 제약조건(constrains)

제약조건은 논리적으로 데이터의 특성을 나타내는 역할을 한다. 

예를 들어, "영화는 제목을 하나 가지고 있다."와 같은 부분이 제약조건이라고 할 수 있다. 


데이터 타입에 대한 제약조건으로 Value constraints, Uniqueness constraints, Cardinality constraints가 있다. 

Value constraints: 나이는 음수가 나올 수 없다. 

Uniqueness constraints: 영화는 제목이 하나만 나온다. 

Cardinality constraints: 혈액형은 O형, A형, B형, AB형으로 나눈다. 


또한 세부 데이터가 아닌 데이터 구조에 따른 제약조건도 있다. 

행렬을 구조적으로 표현하기 위해 다음과 같은 제약조건을 활용할 수 있다. 

신고



Trackback 0 And Comment 0

R 데이터 구조에 대한 정리

|



R을 활용하기 위한 데이터 구조를 정리해 보도록 하겠습니다. 

일반적인 프로그래밍 언어와 달리 R에서는 벡터가 중요한 역할을 합니다. 



실제로 R에서는 다음과 같은 숫자나 문자열 모두 벡터로 저장됩니다. 



그래서 R에서는 스칼라 혹은 단일한 수치 값은 존재하지 않습니다. 

단일 숫자처럼 보이지만 실제로는 한 개의 원소를 갖는 벡터로 이해하면 됩니다. 


행렬

수학에서는 행과 열로 이루어진 행렬을 많이 사용합니다. 

R에서도 행렬을 데이터 구조로 취급할 수 있는데요..

행의 개수와 열의 개수를 속성으로 가지고 있는 벡터라고 생각하면 됩니다. 


행렬을 만들기 위해서는 rbind()와 cbind()의 두 가지 함수를 제공합니다. 

이름에 나타난 것처럼 열(row) 기준인지 행(column) 기준인지를 나타냅니다. 


다음 예를 살펴보시죠.



리스트

리스트는 벡터 처럼 여러 값들을 가지고 있지만, 서로 다른 데이터 타입으로 이루어져 있을 때 사용합니다. 

리스트의 각 원소를 구분하는 기호는 $입니다. 



이외에도 파일이나 데이터베이스에서 데이터를 읽기 위해 사용하는 데이터 프레임(data.frame) 등이 있으며,

객체 지향 언어이므로 클래스 개념도 존재하는데요.. 

이러한 것들은 추후 필요할 때 정리하도록 할 예정입니다. 


미니의 R 주요 강좌...

데이터 통계 분석을 위한 R 설치와 활용

R 실행을 위한 기본적인 내용들~

R 데이터 구조에 대한 정리

R 패키지 설치하기

R 데이터셋 처리 함수들에 대한 간단한 정리~

R 데이터셋 정렬하기~

R 데이터셋의 일부 데이터 가져오기

R의 lapply, sapply, vapply를 이해하자~

R의 apply, tapply의 활용법을 알아보자~

R의 split 활용

R의 함수 작성 및 활용~

R 시뮬레이션 - 랜덤 변수 샘플링

R 함수에서 캐시 활용하기~

R 디버깅 툴 활용하기~


신고



Trackback 0 And Comment 0
prev | 1 | next