데이터의 구분
- 데이터가 속한 세계와 데이터의 특징
- 같은 대상을 관찰하더라도, 시각이나 그 대상이 속하는 세계에 따라 요소들이 달라질 수 있음



데이터 모델링 개요
- 현실 세계의 데이터를 데이터베이스(DB)에 표현하기 위한 모델을 개발하는 과정을 나타냅니다.
- 즉, 개념적 구조와 논리적 구조를 통해 실제 디스크에 저장 가능한 물리적 구조로 변환하는 일련의 데이터베이스 설계 과정을 의미합니다.

개념적 모델링
- 이는 현실 세계에서 수집한 데이터를 추상화하여 개념 세계의 추상적인 관점으로 표현하는 과정입니다.
- 이 과정을 개념적 스키마 설계(conceptual schema design) 또는 정보 모델링(information modeling)이라고도 합니다.
개념적 모델링의 방법
- 일반적으로 '개체 타입'으로 구성된 속성과 개체 타입 간의 '관계'라는 추상적 개념을 바탕으로 모델링을 진행
- 보통 개체-관계 모델(Entity-Relationship model, ER model)을 이용하며, 모델링 결과는 ER 다이어그램(diagram)으로 시각화
- 추상화(Abstraction)
: 모든 내용을 자세히 설명하지 않고, 필수적인 부분만을 나타내는 것.

논리적 모델링
- 이는 개념적 모델링의 산출물인 개념적 구조를 데이터베이스 관리 시스템(DBMS)이 이해할 수 있는 논리적 형태, 즉 데이터 모델로 변환하는 과정
- 변환 절차
- 이 과정은 논리적 스키마 모델링(logical schema modeling)이라고도 불림
- 논리적 모델링의 방법
- ER 다이어그램으로 표현된 개념적 구조를 DBMS가 지원하는 데이터 모델로 변환하는 방식
- 데이터 모델의 종류에 따라 변환 방법이 다름
- 데이터 모델의 유형에는 관계형, 네트워크형, 계층형 데이터 모델 등

물리적 모델링
- 데이터가 디스크에 저장될 수 있도록 논리적 구조를 물리적 구조로 변환하는 과정
- 물리적 스키마 모델링(physical schema modeling)
- 또는 데이터 구조화(data structuring)라고도 부름
- 저장 레코드 형식(각 필드의 이름, 데이터 유형, 크기 등)을 정의하고 인덱스(index)를 설계
데이터모델 개요
데이터 모델(data model) 정의
- 현실 세계의 복잡한 데이터를 이해하기 쉽게 설명하는 개념적도구
- 다시 말해, 데이터베이스에 저장할 데이터를 정의하고, 데이터 간의 관계를 설정하며, 데이터의 의미와 관련된 제약조건을 나타내는 도구
데이터 모델의 종류
1. 개념적 데이터 모델
- ‘개체’와 ‘관계’라는 추상적 개념으로 구성된 데이터 모델입니다.
- 대표적인 모델: ER(Entity-Relationship: 개체-관계) 모델입니다.
2. 논리적 데이터 모델
- ‘레코드’와 ‘관계’라는 논리적 개념으로 구성된 데이터 모델입니다.
- 대표적인 모델: 관계형 데이터 모델입니다.

데이터 모델(Data Model, DM)의 구성
1. 구조 (Structure)
데이터가 어떤 형태로 저장되고, 어떤 관계를 가지는지를 정의하는 요소
- 예: 개체(Entity), 속성(Attribute), 관계(Relationship)
- ER(Entity-Relationship) 다이어그램에서 개체와 개체 간의 관계를 표현하는 것과 관련
2. 연산 (Operation)
데이터에 대해 수행할 수 있는 조작 및 연산을 정의
- 예: 삽입(INSERT), 삭제(DELETE), 갱신(UPDATE), 검색(SELECT)
- 관계형 데이터 모델에서는 SQL의 기본 연산이 이에 해당
3. 제약 조건 (Constraint)
데이터의 일관성과 무결성을 유지하기 위해 설정
- 예: 기본키(Primary Key), 외래키(Foreign Key), 유일성(Unique), 도메인 제약(Domain Constraints)
CREATE TABLE 도서 (
ISBN CHAR(13), → 구조적 제약: 13자리 고정 제목 VARCHAR(100),
출판년도 NUMBER(4), → 구조적 제약: 숫자 4자리 가격 NUMBER(6),
...
);
개념적 데이터 모델
- 개념적 모델링을 통해 생성된 추상적인 데이터 구조로,
- 속성으로 구성된 '개체 타입'과 이들 간의 '관계'라는 다소 추상적인 개념을 바탕으로 표현된 데이터 모델
- 이는 데이터베이스 설계자가 이해할 수 있도록 돕기 위한 것이며, DBMS는 이러한 개념적 데이터 모델을 인식하지 못함
논리적 데이터 모델
- 논리적 모델링을 통해 형성되는 데이터베이스 내부의 데이터 구조
- 데이터 필드(field)로 구성된 '레코드 타입'과 이들 간의 '관계'라는 구체적인 개념으로 나타나는 데이터 모델
- 데이터베이스 관리 시스템(DBMS)은 하나의 논리적 데이터 모델을 기반으로 설계되므로, 논리적 데이터 모델에 대한 이해가 필수적
논리적 데이터 모델의 종류
- 관계 데이터 모델(relational data model)
- 계층 데이터 모델(hierarchical data model) - 네트워크 데이터 모델(network data model)
- 객체 지향 데이터 모델(object-oriented data model)
- 객체-관계 데이터 모델(object-relational data model)
데이터베이스 구축 6단계
- ISO/IEC 24744 및 여러 데이터베이스 설계 방법론에서도 유사한 단계를 제시

트랜잭션(transaction) 정의
- 특정한 논리적 기능을 수행하기 위한 작업의 단위로, 데이터의 일관된 변환을 위해 하나 이상의 데이터 조작 명령으로 구성
- 즉, 데이터베이스의 무결성을 보장하면서 요청된 작업을 수행하기 위한 기본적인 작업 단위를 의미
예) 은행 계좌 이체(A통장에서 B통장으로의 이체) 트랜잭션
1. A 통장의 잔액을 이체 금액만큼 감소시킴
2. B 통장의 잔액을 이체 금액만큼 증가시킴
-> 이 두 데이터 변경 작업이 모두 성공해야만 데이터베이스의 값이 실제로 변경됩니다.
DB의 라이프사이클
DB 의 라이프 사이클은1회성이 아닌 지속적으로 움직이는 살아있는 구조

DB 설계 방법
데이터 중심 (data-driven) DB 설계 (데이터 요구 분석 명세서)
- 데이터베이스의 내용과 구조에 중점을 두고 설계하는 방식
처리 중심 (processing-driven) DB 설계 (트랜잭션 요구 분석 명세서)
- 데이터의 처리 및 응용에 중점을 두고 설계하는 방식
두 방법은 상호 보완적이므로 함께 진행하는 것이 이상적
