제 1장 데이터모델링의 이해
모델링의 특징
- 추상화, 단순화, 명확화
데이터 모델링의 세가지 중요 개념
- 업무가 관여하는 어떤 것 (Thing)
- 업무가 관여하는 어떤 것의 성격(Attributes)
- 업무가 관여하는 어떤 것의 관계(Relationships)
데이터모델링의 유의할 사항
- 중복(Duplication) : 여러 장소의 데이터베이스에 같은 정보가 저장되지 않도록 (중복 최소화)
- 비유연성(Inflexibility) : 프로세스의 작은 변화가 데이터베이스에 큰 변화가 되지 않게
데이터의 정의를 데이터의 사용 프로세스와 분리하여 유연성을 높인다.
- 비일관성(Inconsistency) : 데이터 간의 상호연관관계를 명확하게 정의하여 일관성있게 유지되도록 한다.
데이터모델링의 개념
- 개념적 데이터 모델링 : 전사적 데이터모델링이나 EA수립시에 많이 하며, 추상화 수준을 높이고 업무중심적이면서 포괄적인 수준의 모델링을 진행하는 것.
- 물리적 데이터 모델링 : 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등의 물리적인 성격을 고려한 데이터 모델링
- 논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무에 대하여 key, 속성, 관계 등을 정확하게 표현하는 것. 재사용성이 높다.
스키마의 구조 3단계
- 외부스키마(External Schema) : 개개인 사용자가 보는 개인적 데이터베이스 스키마
- 개념스키마(Conceptual Schema) : 모든 사용자관점을 통합한 전체 데이터베이스
- 내부스키마(Internal Schema) : 물리적 장치에 데이터가 실제로 저장
ERD
- 1976년 피터첸(Peter Chen) 에 의해 Entity-Relationship Model(E-R Model)이라는 표기법이 만들어졌다.
- ERD 작성 방법 : 엔터티 도출 -> 엔터티 배치 -> 관계 설정 -> 관계명 기술
- 관계의 명칭은 관계표현에 있어서 매우 중요
- 가장 중요한 엔터티는 왼쪽 상단에 배치하고 추가 발생되는 엔터티들은 오른쪽편과 하단에 배치 (좌상 -> 우하)
ERD 작성 순서
1. 엔터티를 그린다.
2. 엔터티를 적절하게 배치한다.
3. 엔터티간 관계를 설정한다.
4. 관계명을 기술한다.
5. 관계의 참여도를 기술한다.
6. 관계의 필수여부를 기술한다.
엔터티의 개념 : 실체, 객체
엔터티의 특징
1. 반드시 해당 업무에서 필요하고 관리하고자 함
2. 유일한 식별자에 의해 식별가능
3. 2 개 이상의 인스턴스가 존재
4. 업무프로세스에 의해 이용되어야 함
5. 반드시 속성 값이 있어야함
6. 다른 엔터티와의 관계가 최소 1개 이상 있어야 함
발생시점에 따른 엔터티 분류
- 기본 엔터티 : 그 업무에 원래 존재하는 정보. 타 엔터티의 부모역할. 자신의 고유한 주별자를 가짐 ex) 사원, 부서
- 중심 엔터티 : 기본엔터티로부터 발생. 타 엔터티와의 관계로 많은 행위 엔터티 생성 ex) 계약, 사고
- 행위 엔터티 : 2개 이상의 부모엔터티로부터 발생. 자주 바뀌거나 양이 증가 ex) 주문목록, 사원변경이력
유무형에 따른 분류
- 유형 엔터티 : 물리적형태 ex) 사원, 물품
- 개념 엔터티 : 개념적 정보 ex) 조직, 보험상품
- 사건 엔터티 : 업무 수행시 발생 ex) 주문, 청구
엔터티 명명기준
- 가능하면 협업업무에서 사용하는 단어
- 가능하면 약어는 사용하지 않는다.
- 단순명사를 사용
- 모든 엔터티를 통틀어서 유일한 이름을 부여
- 엔터티 생성의미대로 이름 부여
속성 : 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
사물의 성질, 특성 등
- 엔터티에 대한 자세하고 구체적인 정보를 나타낸다.
- 하나의 엔터티는 두 개 이상의 속성을 갖는다.
- 속성도 집합이다.
- 하나의 인스턴스에서 각각의 속성은 하나의 속성값을 가질 수 있다.
엔터티, 인스턴스, 속성, 속성값의 관계
- 1개 엔터티는 2개 이상 인스턴스
- 1개 엔터티는 2개 이상 속성
- 1개 속성은 1개의 속성값
속성의 특성에 따른 분류
- 기본 속성 : 원래 속성 ex) 제품이름, 원가 등
업무로 부터 추출한 모든 일반적인 속성
- 설계 속성 : 1:1 치환 ex) 약품용기코드, 일련번호
업무를 규칙화하기 위해 새로 만들거나 변형, 정의하는 속성
- 파생 속성 : 계산 값 ex) 계산값, 합
다른 속성에 여향을 받아 발생하는 속성. 빠른 성능을 낼 수 있게 원래 속성 값을 계산하여 저장할 수 있음. 적을 수록 좋음.
도메인(Domain)
- 각 속성이 가질 수 있는 값의 범위. 속성에 대한 데이터 타입, 크기, 제약사항 등을 지정하는 것
속성의 명명규칙
- 해당 업무에서 사용하는 이름 부여
- 서술식 용어 사용 금지
- 약어 사용 금지
- 구체적으로 명명하여 유일성 확보
관계 : 엔터티의 인스턴스사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
ex) 강사 -- 가르친다(관계) -- 수강생
- 관계는 존재에 의한 관계나 행위의 의한 관계로 구분될 수 있다.
- ERD에서는 관계를 연결할 때 존재와 행위를 구분하지 않고 단일화된 표기법을 사용한다.
- UML(Unified Modeling Language)에는 클래스다이어그램의 관계 중 연관관계(Association)과 의존관계(Dependency)가 있고 이것은 실선과 점선의 표기법으로 다르게 표기한다.
ㄴ 연관관계(항상 이용하는 관계) : 실선 / 의존관계(상대 행위에 의해 발생) : 점선
관계의 표기법의 개념
- 관계명(Membership) : 관계의 이름
- 관계 차수(Cardinality) : 1:1, 1:M, M:N
- 관계선택성(선택사양, Optionality) : 필수관계, 선택관계
관계 체크사항
- 2개의 엔터티 사이에 관심있는 연관규칙이 있는지
- 2개의 엔터티 사이에 정보의 조합이 발생하는지
- 업무기술서, 장표에 관계연결에 대한 규칙을 서술하는 지
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는지
식별자 : 엔터티 안에서 인스턴스를 구분하는 구분자. 식별자는 논리적, key는 물리적 데이터모델링단계에서 사용.
- 하나의 엔터티에 구성되어 있는 여러 속성중 엔터티를 대표할 수 있는 속성을 의미
식별자의 종류
- 대표성 유무
- 주식별자 : 엔터티내에서 각 어커런스를 구분할 수 있는 구분자. 타 엔터티와 참조관계를 연결 할 수 있다.
- 보조식별자 : 구분자이나, 대표성은 없다. 타 엔터티와 참조관계 연결할 수 없다.
- 스스로 생성 여부
- 내부식별자 : 스스로 생성된 식별자
- 외부식별자 : 타 엔터티에서 받아오는 식별자
- 속성의 수
- 단일식별자 : 하나의 속성으로 구성
- 복합식별자 : 2개 이상의 속성으로 구성
- 대체여부
- 본질식별자 : 업무에 의해 만들어진
- 인조식별자 : 인위적으로 만들어진, ex) 일련번호
주식별자를 지정할 때 고려할 사항
- 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 함 (유일성)
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함 (최소성)
- 지정한 주식별자 값은 자주 바뀌면 안됨 (불변성)
- 주식별자의 값은 반드시 있어야 함 (존재성)
주식별자 특징
- 유일성 : 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분함
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
- 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재 (Null 안됨)
주식별자를 도출하는 기준
- 해당 업무에서 자주 이용되는 속성
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 안됨
- 복합으로 주식별자를 구성할 경우 너무 많은 속성은 안됨 -> 많다면 인조식별자 지정
식별자 관계 연결
- 식별자 관계 : 자식의 주식별자로 부모의 주식별자 상속
부모로부터 받은 식별자를 자식 엔터티에서 주 식별자로 쓰는경우
강한 연결관계 표현 (실선 표기)
식별자관계로만 설정시 주식별자 증가로 오류 유발
- 비식별자관계 : 부모속성을 자식의 일반속성으로 씀
부모없는 자식이 생성될 경우
부모와 자식의 생명주기가 다른경우 (별도로 소멸)
여러개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가진 경우
SQL문장이 길어져 복합성 증가되는것을 방지
약한 연결관계 표현 (점선표기)
비식별자 관계로만 설정 시 부모 엔터티와 조인하여 성능 저하
'자격증 > SQLD' 카테고리의 다른 글
SQLD 자격증 보수교육 배속 변경 (1) | 2024.11.11 |
---|---|
제 2장 데이터 모델과 성능 -2 (0) | 2023.03.08 |
제 2장 데이터 모델과 성능 -1 (0) | 2023.03.06 |