데이터 모델
데이터 모델링 (data modeling) : 현실 세계의 데이터를 변환하여 컴퓨터 데이터베이스에 저장하는 과정
추상화 : 특정 데이터를 선별 및 정리하는 과정
데이터 모델링을 통해 데이터 사이의 관계와 그 흐름에 필요한 처리 과정과 제약 조건 등을 추상화하여 표현한 개념적인 모형을 데이터 모델이라고 한다.
데이터 모델의 구분
데이터 모델은 크게 개념적 데이터 모델과 논리적 데이터 모델로 나눈다.
개념적 데이터 모델
현실 세계의 사용자(사람)가 이해할 수 있는 추상적인 구조로 표현한 모델. 정보 모델이라고도 부른다.
(예) E-R 모델 (개체-관계 모델)
논리적 데이터 모델
개념적 데이터 모델을 컴퓨터가 이해할 수 있도록 변환한 모델
(예) 관계형 데이터모델, 계층모델, 네트워크 모델
일반적으로 ‘데이터모델’은 논리적 데이터 모델을 지칭한다. 관계형 데이터 모델이 가장 선호되고 있다.
E-R 모델
개체-관계 모델이라고도 불리는 E-R 모델은 데이터 구조를 설계하는 데 있어 각각의 요소를 개체(Entity)와 속성(Attribute), 관계(Relation)으로 나누어 기술하는 것을 뜻한다. 이를 다이어그램으로 표현한 것을 E-R 다이어그램이라고 한다.
- 개체(Entity)
- 저장할 가치가 있는 중요 데이터를 가진 사람이나 사물, 개념 등으로 지정.
- 속성(Attribute)
- 의미있는 데이터의 가장 논리적 단위인 속성은 개체 혹은 관계가 가진 고유 특성을 뜻한다.
- 관계(Relationship)
- 개체와 개체 사이에 연관성 및 개체 집합 사이의 대응관계, 즉 매핑(mapping)을 의미한다.
- 관계는 세가지 형태를 가진다. - 일대일 관계 (1:1) - 일대 다 관계 (1:n) - 다대 다 관계 (n:M)
SQL 데이터 타입
데이터 모델을 설계할 때 각 필드의 속성에는 그 성격에 적합한 형태의 데이터를 저장해야 한다.
여기서 데이터의 성격, 즉 자료의 형태를 결정하는 유형을 자료형이라 하며 DBMS마다 자료형의 명칭이 조금씩 다르다.
숫자형
명칭 | 자료유형 | 자료크기 | 참고 |
---|---|---|---|
INTEGER | 정수형 | 4byte | -2,147,483,648 ~ 2,147,483,647 혹은 0 ~ 4,294,967,295 범위의 숫자 표현 |
FLOAT | 실수형 | 4byte | 부동 소수형 데이터 타입, 고정 소수점 사용 형태 |
NUMBER | 숫자형 | 22byte | 가변길이 숫자타입 |
문자형
명칭 | 자료유형 | 자료크기 | 참고 |
---|---|---|---|
CHAR | 고정길이 문자열 | 최대 255byte | 지정 길이보다 짧은 데이터 입력 시 나머지 공간은 공백으로 채움 |
VARCHAR | 가변길이 문자열 | 최대 65535byte | 지정 길이보다 짧은 데이터 입력시 나머지 공간은 채우지 않음 |
날짜형
명칭 | 자료유형 | 자료크기 | 참고 |
---|---|---|---|
DATE | 일자 | 3byte | 날짜(년도, 월, 일) 형태의 기간 표현 |
TIME | 시간 | 3byte | 시간(시, 분, 초) 형태의 기간 표현 |
TIMESTAMP | 일자+시간 | 4byte | 시스템 변경시 자동으로 그 날짜와 시간 저장 |
이 외 다른 데이터는 필요에 따라 천천히 알아보도록 하자.
데이터베이스에서 자료를 효율적으로 취급하려면 각 필드의 성격에 맞는 적절한 자료형을 사용하는 감각이 중요하며, 이 감각은 경험으로 터득할 수 밖에 없기 때문에 주기적으로 꾸준히 공부해야 한다.