반응형
SMALL
ER Model은 1976년 ER모델에 대한 Peter Chen의 논문에 의해 발표되고 미국 산업 표준으로 채택되었으며 시스템 개발의 최고의 기법이며 데이터베이스 설계를 위한 최고의 방법론으로 선정되었습니다. 현장에서는 이 모델링 기법보다는 IE(Information Engineering) 기법이 적용되고 있습니다.
엔터티(Entity)
- 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 함
- 유일한 식별자에 의해 식별이 가능해야 함
- 영속적으로 존재하는 인스턴스의 집합이어야 함
- 업무 프로세스에 의해 이용되어야 함
- 반드시 속성이 있어야 함
- 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함
엔터티의 분류
- 유무형에 따른 분류
- 유형 엔터티
- 개념 엔터티
- 사건 엔터티
- 발생시점에 따른 분류
- 기본/키 엔터티
- 중심 엔터티
- 행위 엔터티
속성
- 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 엔터티는 속성들에 의해 설명됨
속성의 분류
- 특성에 따른 분류
- 기본 속성
- 업무분석을 통해 바로 정의한 속성
- 설계 속성
- 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성
- 파생 속성
- 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
- 기본 속성
- 구성방식에 따른 분류
- PK(Primary Key) 속성
- 엔티티를 식별할 수 있는 속성
- FK(Foreign Key) 속성
- 다른 엔티티와의 관계에서 포함된 속성
- 일반 속성
- 엔티티에 포함되고 PK, FK가 아닌 속성
- PK(Primary Key) 속성
관계
- 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
식별자
- 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미
- 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분함(유일성)
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함(최소성)
- 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함(불변성)
- 주식별자가 지정되면 반드시 데이터 값이 존재(존재성)
식별자의 분류 및 표기법
분류 | 식별자 | 설명 |
대표성여부 | 주식별자 | 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조 관계를 연결할 수 있는 식별자 |
보조식별자 | 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조 관계 연결을 못하는 식별자 | |
스스로 생성 여부 | 내부식별자 | 엔터티 내부에서 스스로 만들어지는 식별자 |
외부식별자 | 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자 | |
속성의 수 | 단일식별자 | 하나의 속성으로 구성된 식별자 |
복합식별자 | 둘 이상의 속성으로 구성된 식별자 | |
대체 여부 | 본질식별자 | 업무에 의해 만들어지는 식별자 |
인조식별자 | 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자 |
관계에 따른 식별자
부모 엔터티의 주식별자가 자식 엔터티의 주식별자 혹은 일반 속성으로 상속이 되는지에 따라 데이터 모델링에서는 다양한 의미를 가질 수 있습니다.
항목 | 식별자 관계 | 비식별자 관계 |
목적 | 강한 연결 관계 | 약한 연결 관계 |
관계 | 자식 주식별자 구성에 포함 | 자식 일반 속성에 포함 |
표기법 | 실선 | 점선 |
고려사항 | ☞ 반드시 부모 엔터티 타입 종속 ☞ 자식 주식별자 구성에 부모 주식별자 포함 필요 ☞ 상속 받은 주식별자 속성을 타 엔터티에 이전 필요 |
☞ 약한 종속 관계 ☞ 자식 주식별자 구성에 독립적으로 구성 ☞ 자식 주식별자 구성에 부모 주식별자 부분 필요 ☞ 상속받은 주식별자 속성을 타 엔터티 타입에 차단 필요 ☞ 부모쪽의 관계 참여가 선택 관계 ☞ SQL 문장이 Join의 조건절 연결로 너무 길어질 경우 |
확장(Extended) ER Model
- 기본적 개체-관계 모델에 일반화와 집단화를 지원할 수 있는 기능들을 첨가해서 모델을 만듬
- 하나의 개체 집합을 몇 개의 하위 개체(Subtype) 집합으로 분리하고 상위 개체의 속성을 상속함(특수화)
- 특수화의 역방향 설계로서 몇 개의 개체 집합으로 합해서 상위 레벨의 한 개체 집합으로 만듬(일반화)
- 부분집합들의 합집합 개념(집단화)이 있으며 아래의 두 가지 경우가 있음
- 한 엔터티의 속성들을 집단화해서 하나의 엔터티로 만드는 경우
- 엔터티와 엔터티 간의 관계 집합 자체를 하나의 복합 개체로 만들어 일반 개체 집합으로 취급하는 경우
- 대표적으로 수퍼타입/서브타입 모델링 기법이 있으며 수퍼타입/서브타입 관계를 살펴보면 아래와 같음
- 공통의 속성을 가지는 수퍼 타입과 공통 부분을 제외하고 두 개 이상의 엔터티 타입의 속성이 상호간 차이가 있을 때 별도의 서브타입으로 존재
- 수퍼타입과 서브타입은 1:1 관계를 가짐
- 서브 타입을 구분할 수 있는 구분 형식에 따라 수퍼 타입의 특정 엔터티가 반드시 하나의 서브 타입에만 속해야 하는 배타적 관계(Exclusive Relationship)와 수퍼타입의 특정 엔터티가 두 개 이상의 서브 타입에 포함될 수 있는 포함 관계(Inclusive Relationship)로 구분
- 논리적인 데이터 모델링을 전개할 때 수행하는 방식
- 물리적인 데이터 모델링을 할 때는 관계형 데이터베이스에 생성하기 위해 아래의 변환과정을 거쳐야 함
구분 | OneToOne Type(Rollup) | Plus Type(Rolldown) | Single Type(Identity) |
특징 | 개별 테이블 유지 | 수퍼/서브 타입 테이블 | 하나의 테이블 |
확장성 | 우수함 | 보통 | 나쁨 |
조인 | 나쁨 | 나쁨 | 우수함 |
I/O | 좋음 | 좋음 | 나쁨 |
연결 함정(Connection Trap)
- 데이터모델의 관계가 연결되어 있음에도 불구하고 정확하게 정보를 찾아갈 수 없는 함정을 의미함
- 연결 함정의 종류는 아래와 같음
1) 부채꼴 함정(Fan Trap)
- 기준 엔터티를 중심으로 양쪽으로 1:M의 관계를 형성
2) 균열 함정(Chasm Trap)
- 선택 관계가 양쪽에 존재할 때 조부모에서는 중간에 경로가 끊기는 관계를 의미함
데이터 무결성
- 데이터의 중복이나 누락이 없는 정확성과 원인과 결과 의미의 연속성이 보장되는 일관성이 확보된 상태
- 자료의 효율적 관리가 가능
- 사용자 및 개발자의 생산성 향상
- 약간의 성능 저하를 동반
- 무결성 종류는 아래와 같음
종류 | 의미 |
엔터티 무결성 | PK의 속성이 Null을 허용할 수 없음 |
키 무결성 | 한 릴레이션에 같은 키 값을 가진 튜플을 허용하지 않음 |
참조 무결성 | FK가 참조하는 다른 개체의 해당하는 값이 PK 값이나 Null이어야 함 |
속성 무결성 | 속성의 값은 기본값, Nullable, 도메인이 지정된 규칙을 준수하여 존재해야 함 |
사용자 무결성 | 사용자의 의미적 요구사항을 준수 해야함 |
OR매핑(Object Relational Database Mapping)
- 객체지향 프로그래밍시 설계할 클래스들과 데이터 저장소로 이용될 RDBMS 테이블 간의 Mapping을 의미함
- OR매핑은 아래와 같은 절차로 수행됨
- Class를 Table로 변환
- Attribute를 Column으로 변환
- Operation은 변환하지 않음
- 클래스의 관계를 테이블의 관계로 변환함
이번 학습을 마치겠습니다.
그럼 이만-_-
반응형
LIST
'Database' 카테고리의 다른 글
[Database] 데이터 품질과 표준화 (0) | 2020.11.12 |
---|---|
[Database] 함수 종속성(Functional Dependency)과 정규화(Normalization) (0) | 2020.11.11 |
[Database] 데이터베이스와 모델링 (0) | 2020.11.06 |
[Big Data] 데이터 적재 및 저장 (0) | 2020.10.27 |
[Big Data] 데이터 수집 및 전환 (0) | 2020.10.25 |