반응형
데이터 모델의 이해
모델링의 개념
- 현실세계의 데이터를 약속된 표기법에 따라 도식화한 것
- 데이터베이스 구축 및 업무 형상화(추상화, 가시화, 명세화)를 진행하여 이를 설계, 개발 또는 시스템 관리에 사용
모델링의 특징
추상화(Abstraction)
- 대상의 주요 특징을 추출하여 일정한 형식으로 표현
단순화(Simplification)
- 복잡한 현실세계를 그대로 표현하지 않고 단순하게 표현
- UML(Unified Modeling Language), ERD(Entity Relationship Diagram)과 같은 약속된 표기법을 사용
명확화(Clarity)
- 보는 사람 관점에 따라 다르게 해석되지 않도록 대상을 명확하게 모호하지 않게 표현
데이터 모델링
- 일정한 표기법을 사용하여 대상이 되는 데이터를 추상화, 단순화, 명확화 하여 표현
- 주의사항으로 중복(Duplication) 최소화, 비유연성(Inflexibility) 최소화, 비일관성(Inconsistency) 최소화
- 응용 프로그램과 테이블은 느산하게 결합하는 것이 유리
모델링의 세 가지 관점
데이터 관점(대상, what)
- 업무 데이터에 집중하여 어떤 데이터들이 서로 관계를 맺고 사용되는지 모델링
프로세스 관점(처리방법, How)
- 업무 흐름에 집중하여, 업무가 실제로 처리하는 일이 어떻게 처리되는지 모델링(동적 분석, 도메인 분석 기반)
데이터와 프로세스의 상관 관점(대상과 처리방법의 상관관계, Interaction)
- 업무의 데이터와 프로세스가 서로 어떻게 관계를 맺고 영향을 주고받는지를 모델링(CRUD 분석 기반)
모델링의 세 가지 단계
개념적 데이터 모델링(Conceptual Data Modeling)
- 가장 높은 추상화 레벨을 가진 모델링으로 업무와 개념 중심으로 포괄적인 수준에서 모델링을 수행
- 전사적 차원의 데이터 모델링을 수행할 때 이루어짐
- EA(Enterprise Architecture)를 수립할 때 많이 이용되며, 이 단계에서 엔터티(Entity)와 속성(Attribute)을 도출
논리적 데이터 모델링(Logical Data Modeling)
- 데이터 모델에 대한 키(Key), 속성(Attribute), 관계(Relationship) 등을 정의하고 정규화를 통해 중복 데이터를 최소화
- 서로 다른 DBMS(Database Management System)에 적용이 가능한 수준에서 추상화 레벨을 가지므로 재사용성 높음
물리적 데이터 모델링(Physical Data Modeling)
- 특정 DBMS에 맞추어 구현이 가능한 수준에서 모델링을 수행하는 것으로 DBMS의 성능이나 저장, 보안, 가용성 등 물리적인 성격을 고려하여 설계
- 가장 낮은 수준의 추상화 레벨을 가지며 성능 향상을 위해 반정규화를 수행, 테이블, 인덱스, 함수 등을 생성
ANSI-SPARC에서 정의한 3단계 스키마 구조
- 데이터 독립성을 보장하기 위한 설계방법으로 3단계 스키마 구조를 가지며 사용자, 설계자, 개발자 관점에서 스키마를 정의한 것
외부 스키마(External Schema)
- 사용자 또는 애플리케이션(응용 프로그래머) 관점에서 DB 스키마를 정의
- 다중 사용자 뷰 제공
개념 스키마(Conceptual Schema)
- 설계자 또는 모든 사용자(조직 전체) 관점에서 DB 스키마를 통합하여 전체 DB에 저장되는 데이터와 그 관계를 정의
- 통합된 뷰 제공
내부 스키마(Internal Schema)
- 개발자 관점에서 디스크나 메모리 상의 물리적, 실질적 저장구조를 나타내며, 테이블, 칼럼, 인덱스 등을 정의
- 물리적 뷰 제공
논리적 데이터 독립성
- 외부 스키마와 개념 스키마 간의 독립성
- 개념 스키마가 변경되어도 외부 스키마는 영향X
물리적 데이터 독립성
- 개념 스키마와 내부 스키마 간의 독립성
- 내부 스키마가 변경되어도 개념 스키마와 외부 스키마는 영향 X
데이터 모델링의 유의사항
- 데이터 정의를 프로세스와 분리하여 유연성을 향상
- DB내 같은 데이터를 저장하지 않도록 하여 중복성 최소화
- 데이터 상호 간의 연관관계를 정의하여 데이터 일관성 유지
- 데이터의 정의(스키마, 테이블)와 데이터를 사용하는 방법(프로세스, 프로그램)을 느슨하게 결합하여 유지보수성 향상
ERD
- DB를 구성하는 데이터 논리적 구성요소를 엔터티(Entity)로 정의하고 엔터티들 간의 관계를 특별한 표기법으로 나타냄으로써 스키마를 설계하는 방법을 제공
- 1976년 피터 첸(Peter Chen)에 의해 Entity-Relationship Model(E-R Model)이라는 표기법이 만들어짐
ERD 작성순서
- 엔터티 도출
- 도출된 엔터티를 적절하게 배치, 중요 엔터티는 왼쪽 상단에 배치
- 엔터티 간의 관계 설정
- 관계명 기술(행위 관계, 존재 관계 표현)
- 관계의 참여도(Cardinality)를 기술(1:1, 1:N, N:N 표현)
- 관계의 필수/선택 여부를 기술(Not Null 여부)
엔터티(Entity)
엔터티의 개념
- DB 구성요소 중 독립적으로 식별 가능한 객체(Object)로 보다 상세히 표현하기 위해 속성(Attribute)이라는 하위요소를 가짐
- ERD로 표현할 때 PK(Primary Key, 주식별자) 속성과 일반 속성은 칸막이로 구분
엔터티의 특징
- 업무에서 필요로 하고 관리하고자 하는 정보이어야 함
- 식별이 가능하도록 유일한 식별자를 가져야 함
- 영속적으로 존재하는 인스턴스가 두 개 이상인 집합을 이루어야 함
- 하위요소로 반드시 속성을 가져야 함
- 다른 엔터티와 한 개 이상의 관계를 가져야 함(통계성 엔터티나 코드성 엔터티의 경우 관계 생략 가능)
- 교차 엔터티(Interaction Entity): N:N(다대다) 관계를 해소하기 위하여 만들어진 엔터티
엔터티의 분류
발생 시점/상속 관계에 따른 분류
- 기본 엔터티: 자신의 고유한 주식별자를 가지는 독립적으로 생성되는 엔터티
- 중심 엔터티: 기본 엔터티로부터 주식별자를 상속받아 생성되며 업무의 중심 역할을 하는 엔터티
- 행위 엔터티: 두 개 이상의 엔터티를 상속받아 생성되는 엔터티, 내용이 자주 변경되거나 데이터 양이 계속 증가
물리적 형태의 존재 여부에 따른 분류
- 유형 엔터티: 물리적 형태가 존재하는 엔터티
- 개념 엔터티: 물리적 형태 없이 개념적으로 정의되는 엔터티
- 사건 엔터티: 업무를 수행하면서 발생하는 행위나 이벤트를 나타내는 엔터티
속성(Attribute)
속성의 개념
- 엔터티에 대한 자세하고 구체적인 정보를 나타낸 것으로 엔터티의 하위요소
- 의미상으로 더 이상 분리되지 않는 최소의 데이터 단위
- 개수 제한은 없지만 처리하고자 하는 업무 프로세스에 꼭 필요한 것으로 정의하여 최소화
속성값
- 속성이 가질 수 있는 특정 값을 의미
- 하나의 엔터티 인스턴스에서 각각의 속성은 한 개의 속성값만을 가짐
- 만약 한 개 이상의 속성값을 가질 수 있는 경우에는 1차 정규화를 수행하여 한 개만 갖도록 해야 함
엔터티, 인스턴스, 속성값
- 한 개의 엔터티는 두 개 이상의 인스턴스를 가져야 함(엔터티는 인스턴스의 집합)
- 한 개의 엔터티는 두 개 이상의 속성을 가져야 함(엔터티는 속성의 집합)
- 한 개의 속성은 한 개의 속성값만 가짐
속성의 분류
속성의 특성에 따른 분류
- 기본 속성: 엔터티가 본래부터 가지고 있어야 하는 속성
- 설계 속성: 엔터티가 본재부터 가지고 있던 속성은 아니지만 설계 시 필요하다고 판단되어 도출된 속성
- 파생 속성: 원래의 속성으로부터 계산되거나 특정 규칙에 따라 변형되어 만들어진 속성
속성의 구성 방식에 따른 분류
- PK(Primary Key, 기본키) 속성: 해당 엔터티의 인스턴스를 유일하게 식별할 수 있는 속성
- FK(Foreign Key, 외래키) 속성: 관계를 통해 다른 엔터티의 속성을 가져와 포함시키는 속성
- 일반 속성: 키(PK, FK)가 아닌 나머지 속성
도메인
- 속성이 가질 수 있는 값의 범위(값의 데이터 타입과 크기)를 정의한 것
- 도메인이 지정된 속성은 해당 도메인의 데이터 타입, 크기, 제약사항 등을 따름
관계(Relationship)
관계의 개념
- 엔터티와 엔터티 간에 맺고 있는 연관성을 의미
- 엔터티 관계는 존재적 관계와 행위적 관계로 나눌 수 있으나 ERD에서는 이 둘을 구분하지 않고 동일하게 표현
- UML의 클래스 다이어그램에서는 연관관계와 의존관계로 구분하며 표기도 실선과 점선으로 다르게 표현 (ERD에서는 실선과 점선의 구분은 식별자 관계와 비식별자 관계를 구분할 때 사용)
존재적 관계
- 존재 자체로 서로 연관성을 갖는 관계를 의미(예: 회원과 등급)
행위적 관계
- 한 엔터티가 일으키는 특정 행위가 연관성이 발생하는 관계를 의미(예: 회원과 주문)
엔터티 관계를 도출할 때 참고사항
- 두 개의 엔터티 사이에 정보의 조합이 발생하는가?
- 두 개의 엔터티 사이에 관심 있는 연관규칙이 존재하는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
표기법
관계명(Membership)
- 관계의 이름, 존재적 관계와 행위적 관계를 기술
관계차수(Cardinality)
- 1:1(일대일), 1:N(일대다), N:N(다대다)과 같이 관계를 맺는 엔터티 인스턴스의 차수
관계선택사양(Optionality)
- 필수적 관계인지 선택적 관계인지를 나타냄(Not Null 여부를 의미, 필수적 관계인 경우 Null 값을 가질 수 없음)
- 선택적 관계인 경우에는 까치발 기호에 O 표시가 덧붙음
식별자(Identifier)
식별자의 개념
- 유일하게 구별할 수 있는 엔터티의 대표 속성
주식별자
- 엔터티 인스턴스를 유일하게 구별해 주는 대표성을 가진 식별자로써 PK(Primary Key)에 해당하는 속성
- 아래 네 가지 성질을 만족해야 함
- 유일성: 인스턴스를 유일하게 구별할 수 있어야 함
- 최소성: 유일성을 보장하면서도 최소 개수의 속성이어야 함
- 불변성: 최초 생성 시 부여된 값에서 변경되지 않아야 함
- 존재성: 반드시 값을 가져야 함(Not Null)
- 해당 업무에서 자주 사용되는 속성을 주식별자로 지정하는 것이 유히
- 후보키(Candidate Key): 유일성과 최소성을 만족하는 속성
식별자의 분류
대표성 여부
- 주식별자(Primary Identifier): 인스턴스를 유일하게 구별할 수 있는 유일성, 최소성, 불변성, 존재성을 만족하는 대표성에 따른 식별자, 다른 엔터티와 참조 관계를 연결할 수 있음
- 보조식별자(Alternate Identifier): 인스턴스를 유일하게 구별할 수 있는 식별자이기는 하나 대표성을 가지지 못하며 다른 엔터티와 참조관계를 연결할 수 없는 식별자
스스로 생성 여부
- 내부식별자(Intenal Identifier): 엔터티 내부에서 스스로 만들어지는 식별자
- 외부식별자(External Identifier): 관계를 통해 다른 엔터티로부터 받아오는 식별자(FK)
속성의 수
- 단일식별자(Single Identifier): 식별자를 구성하는 속성이 하나인 식별자
- 복합식별자(Composite Identifier): 식별자를 구성하는 속성이 둘 이상인 식별자 (너무 많은 속성을 포함하지 않는 것이 유리)
대체 여부
- 본질식별자, 원조식별자(Original Identifier): 업무(비즈니스 프로세스)에 존재하는 본래의 식별자
- 인조식별자, 대리식별자(Surrogate Identifier): 업무에 존재하지 않으나 원조식별자가 복잡하게 구성되어 있어 인위적으로 만든 식별자
식별자 관계, 비식별자 관계
식별자 관계
- 엔터티 간의 강한 연결 관계를 표현하며 ERD로 그릴 때 실선으로 표현
- 부모 엔터티의 식별자가 자식 엔터티의 주식별자 구성에 포함되며, 같은 생명주기를 가질 때 적합
- 부모 엔터티의 주식별자를 자식 엔터티에서 받아 손자 엔터티까지 계속 흘려보내고 싶을 때 고려
비식별자 관계
- 엔터티 간의 약한 연결 관계를 표현하며 ERD로 그릴 때 점선으로 표현
- 부모 엔터티의 식별자가 자식 엔터티의 일반 속성이 되며, 다른 생명주기를 가질 때 적합
- 여러 개의 엔터티를 통합하면서 각각의 여러 관계가 통합되거나 자식 엔터티에서 독립적인 주식별자의 구조를 갖길 원할 때 고려
반응형
'자격증' 카테고리의 다른 글
SQLD - 3. SQL 기본 및 활용 (1) | 2025.05.30 |
---|---|
SQLD - 2. 데이터 모델과 SQL (0) | 2025.05.26 |
정보처리기능사 - 요약본 이것만 외우면 됩니다. (0) | 2025.04.14 |
정보처리기능사 - 19. 뉴미디어와 멀티미디어 (0) | 2025.04.07 |
정보처리기능사 - 18. 정보 통신망 (0) | 2025.04.06 |