데이터 모델
데이터 모델의 개요
현실 세계(개체) <=> 개념 세계(개념) <=> 컴퓨터 세계(자료)
현실 세계 (개체)
- 개체 => 특성 => 값
개념 세계 (개념)
- 개체 타입 => 속성 => 값
컴퓨터 세계 (자료)
- 레코드 타입 => 필드 => 값
개념적 모델링 (Conceptual Modeling)
- 현실 세계에 대한 인식(추상적 개념)을 표현하는 과정
- 개체 타입(Entity Type) : 현실 세계의 개체들을 추상화
- 속성 (Attribute) : 개체 타입에 속하는 개체들의 공통적인 특징
데이터 모델링 (Data Modeling)
- 데이터 모델(Data Model)로 표현하는 과정
- 현실 세계의 업무적인 프로세서를 물리적으로 데이터베이스화하기 위한 과정
- 실체(실제로 존재하는 것)와 관계를 중심으로 체계적으로 표현하고 문서화하는 기법
- 정보 시스템의 중심을 데이터의 관점에서 접근하는 데이터 중심의 분석 방법
데이터 구조화 (Data Structuring)
- 컴퓨터가 접근할 수 있는 저장 장치 위에 자료가 표현될 수 있도록
물리적 데이터 구조(Physical Data Structure)로 변환
현실 세계 (업무 프로세스) -> 개념적 데이터 모델링 -> 개념화 -> 논리적 데이터 모델링 (단순화, 추상화)
|
|
V
컴퓨터 세계 물리적 DB <- 개념적 데이터 모델링 (데이터 구조화) <- 데이터 모델
D = <S, O, C> : [ S: Structure, O: Operation, C: Constraint ]
데이터 구조 (Data Structure)
- 데이터베이스에 표현될 대상으로 개체 타입과 이들 간의 관계
- 개체 타입 : 단독으로 존재할 수도, 다른 것과 의미를 가질 수도 있다.
- 개체와 개체관의 연관성이 있어야 관계형이라는 말이 성립된다.
연산 (Operation)
- 데이터베이스에 표현된 개체의 값을 처리하는 작업
- 데이터베이스를 조작하는 기본적인 도구
- 어떤 한시점에서 존재하고 표현되어 있는 값들을 데이터베이스의 상태라고 한다.
제약조건 (Constraint)
- 데이터베이스에 허용될 수 있는 값의 논리적 제약
- 제약조건을 걸어 데이터베이스가 무결한(신뢰도가 높은) 상태로 존재할 수 있도록 한다.
개체, 관계, 속성
개체 (Entity)
: 업무에 관한 어떤 것
관계 (Relation)
: 업무에 관계되어 있는 어떤 것
간의 관계
속성 (Attribute)
: 어떤 것이 가지는 성격
ex) 로미오와 줄리엣은 사귀고 있다.
로미오와 줄리엣 - 개체
사귀고 있다 - 관계
속성 - 로미오의 이름 로미오, 로미오의 성별 남자
줄리엣의 이름 줄리엣, 줄리엣의 성별 여자
개체 (Entity)
- 데이터베이스에 표현하려고 하는 유형, 무형의 객체(Object)로 서로 구분되는 것을 의미함
- 현실 세계에 대해 사람이 생각하는 개념이나 정보의 단위로서 의미를 가짐
- 컴퓨터가 취급하는 파일의 레코드(Record)에 해당
- 하나 이상의 속성(Attribute)을 가짐
- 데이터베이스 업무지시 관련하여 명사로 존재하는 것들은 대부분 개체일 확률이 높다
학과 개체 (무형)
, 학생 개체 (유형)
개체(Entity)와 객체(Object)의 차이?
객체가 개체보다 포괄적인 의미입니다.
객체는 Entity와 행동을 의미합니다.
관계 (Relation)
- 개체와 개체 혹은 개체와 속성 간의 연관성
- 일반적으로 동사형
학생이 학과에 소속되어 있음
속성 (Attribute)
- 데이터의 가장 작은 논리적 단위
- 하나의 개체는 한 개 이상의 속성으로 구성
- 개체의 특성, 상태 등을 기술
- 파일 구조상의 데이터 항목 (Data Item) 또는 데이터 필드 (Field)에 해당하여
개체를 구성하는 항목
학과 개체의 속성
: 학과장, 학과이름, 학과위치
학생 개체의 속성
: 학번, 이름, 학과
ERD
: Entity Relation Diagram
개념적 데이터 모델과 논리적 데이터 모델
개념적 데이터 모델
-
현실 세계에 존재하는 데이터를 의미 있는 개체와 개체 내의 공통된 속성과
개체들 사이의 관계를 정의하는 추상화 과정 -
현실 세계를 추상화하여 개념적으로 표현하여 이해하기 쉽게 할 뿐 아니라
의사소통을 원활하게 해주는 과정을 의미 -
정보 모델링이라고도 함
개체 관계 모델 (E-R : Entity-Relationship Model)
- 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는
가장 대표적인 개념적 데이터 모델
논리적 데이터 모델
- 개념적 데이터 모델은 DBMS(database management system)가 직접 이해할 수 없음
- 컴퓨터가 이해할 수 있도록 논리적 데이터 모델로 변환해야 함
- 논리적 데이터 모델은 데이터 모델링이라고도 함
- 관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델 등이 있음
개념적 데이터 모델
약한 개체 타입 => 직사각형 (개체 타입) 두번 중첩
식별 관계 타입 => 다이아몬드 (관계 타입) 두번 중첩
다중 값 속성 => 원 (속성 타입) 두번 중첩
유도 속성 => 점으로 그려진 원
복합 속성 => 두 개 이상의 연결 기호
전부 참여 개체 타입 => =
부분 참여 개체 타입 => -
ISA관계등.. 필요시 찾아보기
개체(Entity) : 학번 | 이름 | 학과 <= 개체 타입 (Entity Type)
개체 집합 (Entity Set) : 001 | 이근환 | 컴퓨터 <= 개체 인스턴스 (Entity Instance)
002 | 대장부 | 변호사
003 | 태양초 | 고추장
...
개체 인스턴스의 집합을 개체 집합이라고 한다.
단순 속성 (Simple Attribute)
- 더 이상 작은 구성 원소로 분해할 수 없는 속성
- 학번, 이름등… 값으로서 의미가 있는 것들이 해당된다.
복합 속성 (Composite Attribute)
- 몇 개의 기본적인 단순 속성으로 분해할 수 있는 속성
- 가령 생일은 년,월,일로 분해할 수 있다.
단일 값 속성 (Single-Valued Attribute)
- 각 개체에 대해 하나의 값만 갖는 것
다중 값 속성 (Multi-Valued Attribute)
- 한 개체에 대해서 여러 개의 값을 갖는 것
유도 속성 (Derived Attribute)
- 속성의 값이 다른 속성이나 개체가 가지고 있는 값으로부터 유도되어 결정되는 경우
저장 속성 (Stored Attribute)
- 유도 속성을 생성하는데 사용된 속성
생년월일 (저장속성) - 학생 - 나이 (유도 속성 : 현재날짜 - 생년월일 = 나이)
ㄴ
널 속성 (Null Attribute)
- 널 값(Null Value )을 갖는 속성
- 어느 특정 속성에 대한 값을 가지고 있지 않을 때 이를 명시적으로 표시하기 위해 사용
- 0도 ‘‘(공백문자)도 아니다. (JavaScript 세계관으로 이해하면 안됨)
관계 타입 (Relationship Type)
- 개체-관계 모델에서 개체 사이의 연관성을 표현하는 개념
- 두 개의 개체 타입 사이의 업무적인 연관성을 논리적으로 표현한 것
- 관게를 정의할 때 동사구로 관계를 정의
- 개체 집합(타입)들 사이의 대응(Correspondence), 즉 사상(Mapping)을 의미
관계 집합 (Relationship Set)
- 한 관계 타입에 속하는 모든 관계 인스턴스(Relationship Instance)를 말함
- ERD에서 개체들 사이의 관계 타입은 마름모를 사용하여 표현한 후 그 관계에 연관된 개체에 선으로 연결하여 표시
학과[네모] - 지도[마름모] - 학생[네모]
관계 유형
- 관계에 참여하는 하나의 개체에 대해 다른 개체가 몇 개 참여하는지를 나타내는 것
카디날리티 (Cardinality)
- 하나의 관계에 실제로 참여할 수 있는 인스턴스의 수를 의미
- 표현방법 : 일대일(1:1), 일대다(1:N), 다대다(N:N)
카디날리티 비율의 최소값과 최대값
- 비율에 최소값과 최대값을 표시하여 관계의 유형을 좀 더 명확하게 나타낼 수 있음
- ER 다이어그램에서 최소값과 최대값은 관계 타입과 개체 타입을 연결하는 실선 위에 (min, max) 형태로 표기
고객(0,N) - 카드발급 - 카드 (1,N)
고객은 카드가 필요 없을 수도 있지만,
카드는 발급되려면 최소한 1명의 고객이 있어야 한다.
고객은 여러명일 수 있고 고객은 카드를 만들고자할 때 여러개를 만들 수 있다.
ISA 관계
- 상위 개체와 하위 개체 간의 관계를 의미
- 특정 개체는 서로 구별되는 여러 하위 개체로 나누어질 수 있음
논리적 데이터 모델
논리적 데이터 모델링
- 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터 환경에 맞도록 변환하는 과정 (데이터 모델링)
논리적 데이터 모델링 목적
- 개념적 설계에서 추출된 개체 속성들의 관계를 관계형 데이터베이스 이론에 맞게 구조적으로 설계하는 단계
- 정확한 업무 분석을 통한 자료의 흐름을 분석하여 실체와 속성들의 관계를 구조적으로 설계
계층 데이터 모델
- 데이터를 저장하는 단위(Entity)의 구조가
상하 종속적
인 관계로 구성
교수 - 학생 - 수강과목
교수 - 과목 - 수강학생
네트워크(Network) 데이터 모델
- 그래프를 이용하여 데이터 논리구조를 표현한 데이터 모델
관계 데이터 모델
- 계층 모델과 네트워크 모델의 복잡한 구조를 단순화시킨 모델
- 표 (Table)를 이용해서 데이터 상호관계를 정의하는 구조
- 많은 개발자로 부터 사랑받는 모델
- 업무 프로세스나 생산성, 모델 작성의 난이도등 합리적이다.