
제1장 데이터 모델의 이해
- 데이터 모델의 이해
- 엔터티
- 속성
- 관계
- 식별자
발생 시점에 따른 엔터티 분류
- 기본/키엔터티
- 중심엔터티
- 행위엔터티
데이터모델링이란 ?
- 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터(what)에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석/설계의 과정
데이터 모델링이 필요한 주요 이유
- 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현
- 분석된 모델을 가지고 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위함
- 데이터모델링 자체로서 업무의 흐름을 설명하고 분석하기 위함
데이터 모델링의 유의점
- 중복(Duplication) - 여러 장소의 데이터베이스에 같은 정보를 저장하지 않도록 하여 중복성을 최소화
- 비유연성(Inflexibility) - 데이터의 정의를 데이터의 사용 프로세스와 분리하여 유연성을 높임
- 비일관성(Inconsistency) - 데이터 간의 상호 연관관계를 명확하게 정의하여 일관성 있게 데이터가 유지되도록 함
데이터 모델링의 개념
- 개념적 데이터 모델링 : 추상화 수준이 높고 업무 중심적이고 포관적인 수준의 모델링을 진행하는 것
- 논리적 데이터 모델링 : 시스템으로 구축하고 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음
- 물리적 데이터 모델링 : 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
데이터베이스 스키마 구조 3단계
- 외부스키마 : 개인 사용자가 보는 개인적 DB 스키마
- 개념스키마 : 모든 사용자 관점을 조직 전체 관점으로 통합한 전체 DB, DB에 저장되는 데이터와 그들 간의 관계 표현
- 내부스키마 : 개발자 관점으로서, DB 물리적 저장 구조
ERD
- 1976년 피터첸에 의해 E-R-M이라는 개발
- 관계의 명칭이 상당히 중요
- 가장 중요한 데이터를 왼쪽 상단에서 아래쪽 중앙에 배치
ERD 작성 순서
- 엔터티를 그린다.
- 엔터티를 적절하게 배치
- 엔터티 간 관계 설정
- 관계명 기술
- 관계의 참여도 기술
- 관계의 필수여부 기술
엔터티의 특징
- 해당 업무에서 필요로 하고 관리하고자 하는 정보(ex) 환자, 토익의 응시 횟수)
- 유일한 식별자에 의해 식별이 가능해야 함
- 두 개의 인스턴스, 속성을 가져야 함
- 업무 프로세스에 의해 이용되어야 함
- 속성이 반드시 존재해야 함 (한 개의 속성은 한 개의 속성 값을 지님(한 개 이상 X, 무조건 한 개만 가져야 함)
- 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함 (코드성 엔티티는 생략 가능)
엔터티에 이름을 부여하는 방법
- 약어 X
- 현업의 업무용어 사용하여 업무상의 의미를 분명하게 함
- 모든 엔터티에서 유일한 이름이 부여되어야 함
- 엔터티가 생성되는 의미대로 자연스럽게 부여
- 단수 명사 사용
속성
- 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 엔터티에 대한 자세하고 구체적인 정보
속성의 특성에 따른 분류
- 기본속성 : BP에서 도출되는 속성 (id, name)
- 설계속성 : DB Modeling 과정에서 발생하는 속성(상품코드)
- 파생속성 : 다른 속성에 의해서 만들어지는 속성(합계, 평균) -> 원래 속성의 값을 계산하여 저장하기에 데이터를 조회할 때 빠른 성능을 낼 수 있도록 함
도메인(domain)
- 엔터티 내에서 속성에 대한 데이터 타입, 크기, 제약사항 지정
- ex) 주문이라는 엔터티가 있을 때 단가라는 속성 값의 범위는 100 ~ 10000 사이의 실수 값이고, 제품명이라는 속성은 길이가 20자리 이내의 문자열로 정의
속성의 명칭 부여
- 약어 사용 제한
- 서술식 용어 X
- 데이터 모델의 유일성 확보 (일관성 X)
- 해당 업무에서 자주 사용하는 이름 이용
관계
- 엔터티의 인스턴스 사이의 논리적인 연관성으로 존재의 형태로서나 행위로써 서로에게 연관성이 부여된 상태, 존재와 행위를 구분하지 않고 단일화된 표기법 사용
- 관계 페어링의 집합(엔터티 안에 인스턴스가 개별적으로 관계를 가짐)
- UML(Unified Modeling Language)에서는 관계를 연관관계(Association, 항상 이용하는 관계, ex) 소속된다)과 의존관계(Dependency, 상대 행위에 의해 발생하는 관계, ex) 주문하다)로 구분하지만, ERD에서는 구분 X
관계의 표기법
- 관계명 : 관계의 이름
- 관계차수 : 1:1, 1:M, M:N
- 관계선택성 : 필수관계, 선택관계
관계 체크 사항 (4가지)
- 2개의 엔터티 사이에 관심 있는 연관규칙이 존재하는가?
- 2개의 엔터티 사이에 정보의 조합이 발생하는가?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 존재하는가?
식별자
- 엔터티 내에서 인스턴스를 구분하는 구분자
- 주식별자에 의해 엔터티 내의 모든 인스턴스들이 유일하게 구분되어야 함
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 지정된 주식별자의 값은 자주 변하지 않는 것이어야 함
- 주식별자가 지정되면 반드시 값이 들어와야 함
식별자 분류
- 엔터티 내에서 대표성을 가지는가에 따라 주식별자(엔터티 내에서 각 어커런스를 구분할 수 있는 구분자, 타 엔터티와 참조관계 연결 O), 보조식별자(구분자 X, 대표성 X, 참조관계 연결 X)로 구분
- 스스로 생성되었는지 여부에 따라 내부식별자(스스로 생성), 외부식별자(타 엔터티의 의해 생성)로 구분
- 단일 속성으로 식별이 되는가에 따라 단일식별자(하나의 속성), 복합식별자(2개 이상의 속성)로 구분
- 업무에 의해 만들어지는가에 따라 본질식별자(업무에 의해 만들어지는 식별자), 인조식별자(인위적으로 만들어지는 식별자)로 구분
주식별자의 특징
- 유일성 : 주식별자에 의해 엔터티 내에 모든 인스턴스를 유일하게 구분
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
- 존재성 : 주식별자가 지정되면 반드시 데이터 값 존재(Null값 X)
식별자와 비식별자관계 비교
항목 | 식별자관계 | 비식별자관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함 | 자식 일반 속성에 포함 |
표기법 | 실선 | 점선 |
연결 고려사항 | 부모엔터티 종속, 자식 주식별자 구성에 부모 주식별자 포함 | 부모엔터티 종속 X, 자식 주식별자 구성을 독립적으로 구성, 부모쪽 개입 선택적 |
'SQL' 카테고리의 다른 글
[sqld] SQL 자격검정 실전문제 핵심정리 (4장 SQL 활용) (6.10 시험 대비용 정리) (2) | 2023.06.09 |
---|---|
[sqld] SQL 자격검정 실전문제 핵심정리 (3장 SQL 기본) (6.10 시험 대비용 정리) (2) | 2023.06.09 |
[sqld] SQL 자격검정 실전문제 핵심정리 (2장 데이터 모델과 성능) (6.10 시험 대비용 정리) (0) | 2023.06.06 |