1. 데이터 모델링의 이해
1) 데이터 모델링의 특징
- 추상화
- 현실 세계를 간략하게 표현
- 단순화
- 누구나 쉽게 이해할 수 있도록 표현
- 명확성
- 명확하게 의미가 해석되어야 하고 한 가지 의미만을 가져야함
2) 데이터 모델링 단계
- 개념적 모델링
- 고객의 비즈니스 프로세스를 분석하고 업무 전체에 대해서 데이터 모델링을 수행
- 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하는 단계
- 추상화 수준이 가장 높은 단계
- 논리적 모델링
- 개념적 모델링을 논리적 모델링으로 변환하는 작업
- 식별자를 정의하고 관계, 속성 등을 모두 표현
- 정규화를 통해서 재사용성을 높임
- 물리적 모델링
- 데이터베이스를 실제 구축
- 성능, 보안, 가용성 등을 고려하여 데이터베이스를 구축
3) 데이터 모델링 관점
- 데이터
- 비즈니스 프로세스에서 사용되는 데이터를 의미
- 구조 분석, 정적 분석
- 프로세스
- 비즈니스 프로세스에서 수행되는 작업을 의미
- 시나리오 분석, 도메인 분석, 동적 분석
- 데이터와 프로세스
- 프로세스와 데이터 간의 관계를 의미
- CRUD(Create, Read, Update, Delete)분석
4) 데이터 모델링을 위한 ERD(Entity Relationship Diagram)
- ERD 작성 절차
- 엔터티를 도출하고 그린다
- 엔터티를 배치
- 엔터티 간의 관계 설정
- 관계명 서술
- 관계 참여도 표현
- 관계의 필수 여부 표현
5) 데이터 모델링 고려사항
- 데이터 모델의 독립성
- 중복된 데이터를 제거 → 정규화
- 고객 요구사항의 표현
- 고객의 요구사항을 간결하고 명확하게 표현
- 데이터 품질 확보
- 데이터 표준 확보를 통한 데이터 품질 향상
2. 3층 스키마(3-Level Schema)
1) 3층 스키마
- 데이터베이스의 독립성을 확보하기 위한 방법
- 데이터 복잡도 감소, 데이터 중복 제거, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용 절감 등의 장점
2) 3층 스키마 구조
- 외부 스키마
- 응용 프로그램이 접근하는 데이터베이스를 정의
- 사용자 관점, 업무상 관련이 있는 데이터 접근
- 개념 스키마
- 통합 데이터베이스 구조
- 설계자 관점
- 전체 데이터베이스 내의 규칙과 구조를 표현
- 내부 스키마
- 개발자 관점
- 데이터베이스의 물리적 저장 구조
- 데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 정의
3. 엔터티(Entity)
1) 엔터티
- 엔터티는 변별할 수 있는 사물
- 정보를 저장할 수 있는 어떤 것
- 데이터베이스 내부에서 변별 가능한 객체
- 정보가 저장될 수 있는 장소, 사람, 사건, 개념, 물건 등
2) 엔터티 특징
- 식별자
- 엔터티는 유일한 식별자가 존재
- 인스턴스 집합
- 2개 이상의 인스턴스가 존재
- 인스턴스(=행의 수): 테이블이 가질 수 있는 값
- 속성
- 반드시 속성이 존재
- 관계
- 다른 엔터티와 최소한 한 개 이상의 관계가 존재
- 업무
- 업무에서 관리되어야 하는 집합
3) 엔터티 종류
- 유형과 무형에 따른 엔터티 종류
- 유형 엔터티
- 지속적으로 사용되는 엔터티
- 개념 엔터티
- 개념적으로 사용되는, 물리적 형태가 없는 엔터티
- 사건 엔터티
- 비즈니스 프로세스를 실행하면서 생성되는 엔터티
- 유형 엔터티
- 발생 시점에 따른 엔터티 종류
- 기본 엔터티
- 독립적으로 생성되는 엔터티
- 중심 엔터티
- 기본 엔터티로부터 발생되고 행위 엔터티를 생성
- 행위 엔터티
- 2개 이상의 엔터티로부터 발생
- 기본 엔터티
4. 속성(Attribute)
1) 속성의 특징
- 업무에서 관리되는 정보
- 일반적으로 하나의 값만 가짐
- 주식별자에게 함수적으로 종속
- 기본키가 변경되면 속성의 값도 변경된다는 의미
2) 속성의 종류
- 분해 여부에 따른 속성의 종류
- 단일 속성
- 하나의 의미로 구성된 것
- Ex) 회원ID, 이름
- 복합 속성
- 여러 개의 의미가 있는 것
- Ex) 주소는 시, 군, 동으로 분해됨
- 다중값 속성
- 속성에 여러 개의 값을 가질 수 있는 것
- Ex) 상품 리스트
- 단일 속성
- 특성에 따른 속성의 종류
- 기본 속성
- 비즈니스 프로세스에서 도출되는 본래의 속성
- 설계 속성
- 데이터 모델링 과정에서 발생되는 속성
- 파생 속성
- 다른 속성에 의해서 만들어지는 속성
- 기본 속성
5. 관계(Relationship)
1) 관계
- 엔터티 간의 관련성을 의미
2) 관계의 종류
- 존재 관계
- 엔터티 간의 상태를 의미
- 행위 관계
- 엔터티 간에 어떤 행위가 있는 것
3) 관계 차수(Relation Cardinality)
- 관계 차수
- 두 개의 엔터티 간에 관계에 참여하는 수를 의미
- 필수적 관계
- 반드시 하나가 있어야하는 관계
- | 로 표현
- 선택적 관계
- 없을 수도 있는 관계
- O로 표현
6. 엔터티 식별자(Entity Identifier)
1) 주식별자(기본키, primary key)
- 최소성
- 대표성
- 유일성
- 불변성
- 존재성
2) 키의 종류
- 기본키
- 후보키 중에서 엔터티를 대표할 수 있는 키
- 후보키
- 유일성과 최소성을 만족하는 키
- 슈퍼키
- 유일성은 만족하지만 최소성을 만족하지 않는 키
- 대체키
- 여러 개의 후보키 중에서 기본키를 선정하고 남은 키
- 외래키
- 다른 테이블의 기본키 필드를 가리키는 것으로 참조 무결성을 확인하기 위해 사용
3) 식별자의 종류
- 대표성 여부에 따른 식별자의 종류
- 주식별자
- 유일성과 최소성을 만족하면서 엔터티를 대표하는 식별자
- 보조 식별자
- 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자
- 주식별자
- 생성 여부에 따른 식별자의 종류
- 내부 식별자
- 엔터티 내부에서 스스로 생성되는 식별자
- 외부 식별자
- 다른 엔터티와의 관계로 인하여 만들어지는 식별자
- 내부 식별자
- 속성의 수에 따른 식별자의 종류
- 단일 식별자
- 하나의 속성으로 구성
- 복합 식별자
- 두 개 이상의 속성으로 구성
- 단일 식별자
- 대체 여부에 따른 식별자의 종류
- 본질 식별자
- 비즈니스 프로세스에서 만들어지는 식별자
- 인조 식별자
- 인위적으로 만들어지는 식별자
- 후보 식별자 중에서 주식별자로 선정할 것이 없거나, 주식별자가 너무 많은 컬럼으로 되어 있는 경우 사용
- Ex) 순서번호(Sequence Number) 등
- 본질 식별자
'SQLD' 카테고리의 다른 글
2. 데이터 모델과 SQL (0) | 2024.02.26 |
---|