자격증/SQLD
[데이터모델링의이해] 1-1. 데이터모델링의 이해
염두리안
2023. 3. 13. 03:23
728x90
반응형
목차 |
01. 데이터 모델의 이해 02. 엔티티(Entity) 03. 속성(Attribute) 04. 관계(Relationship) 05. 식별자(Identifiers) 06. 3층 스키마 |
01. 데이터 모델의 이해
- 모델링? 현실 세계를 단순화해 표현하는 기법
- 모델링 특징
- 추상화(Abstraction) : 현실 세계를 일정한 형식으로 표현하는 것... 아이디어&개념을 간략히 표현하는 과정
- 단순화(Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순하게 쉽게 표현하는 것
- 명확화(Clarity) : 불분명함 제거, 명확히 해석할 수 있도록 기술
- 모델링의 세 가지 관점
- 데이터 관점(What)
- 프로세스 관점(How)
- 데이터와 프로세스의 상관 관점(Interation) : 프로세스 흐름에 따라 데이터가 어떤 영향을 받는지
- 모델링의 세 가지 단계
- 개념적 모델링(Conceptual) : 전사적 데이터 모델링 수행 시 행해짐 / 추상화 레벨 젤 높음 / 업무 중심적&포괄적인 수준의 모델링 진행
- 논리적 모델링(Logical) : 재사용성이 가장 높은 모델링 / DB 모델에 대한 키, 속성, 관계 등 모두 표현하는 단계
- 물리적 모델링(Physical) : 실제 DB로 구현할 수 있도록 성능, 가용성 등 물리적 성격 고려해 모델 표현하는 단계
- 데이터의 독립성
- 목적) DB에 대한 사용자들의 관점&DB가 실제로 표현되는 물리적 방식을 분리하기 위해서...
- 3단계 스키마 구조
- 외부 스키마(External Schema) - 사용자관점 : Multiple User's View 단계 / 각 사용자가 보는 DB의 스키마 정의
- 개념 스키마(Conceptual Schema) - 통합된 관점 : Community View of DB 단계 / 모든 사용자가 보는 DB의 스키마를 통합해 전체 DB에 나타내는 것... DB에 저장되는 데이터&데이터 간 관계 표현
- 내부 스키마(Internal Schema) - 물리적 관점 : Physical Representation 단계 / 물리적 구조 나타냄... 실직적인 데이터 저장구조, 칼럼 정의, 인덱스 등 포함
- 3단계 스키마 구조가 보장하는 독립성
- 논리적 독립성 : 개념 스키마가 변경돼도 외부 스키마는 영향 X
- 물리적 독립성 : 내부 스키마가 변경돼도 외부/개념 스키마 영향 X
- ERD(Entity Relationship Diagram) : 존재하는 엔티티&어떤 관계 있는지 나타내는 다이어그램
- 작성순서) 엔티티 도출&그림 → 엔티티 적절히 배치 → 엔티티 간 관계 설정 → 관계명 기입 → 관계 참여도 기입 → 관계의 필수/선택 여부 기입
- 표기방식
![]() |
![]() |
- 데이터 모델링 고려사항) 데이터 모델의 독립성 / 고객 요구사항의 표현 / 데이터 품질 확보
02. 엔터티(Entity)
- 정의
- 1976, 피터 첸 : 식별할 수 있는 사물
- 1986, C.J Date : DB 내에서 식별 가능한 객체
- 1989, James Martin : 정보를 저장할 수 있는 어떤 것
- 1992, Thomas Bruce : 정보를 저장할 수 있는 사람, 장소, 물건, 사건, 개념 등
- 엔티티는 자신을 더 상세히 나타내기 위해 속성을 갖게 됨
- 엔티티 특징
- 업무 : 업무에 쓰이는 정보여야 함(안 쓰이면 삭제하는 것이 바람직)
- 식별자 : 유니크함을 보장할 수 있는 식별자가 있어야 함(인스턴스가 중복 or 식별 모호하면 그 엔티티는 설계가 잘못된 것)
- 인스턴스 집합 : 2개 이상의 인스턴스를 가지고 있어야 함(1개만 있으면 엔티티로 볼 수 X)
- 속성 : 반드시 속성을 갖고 있어야 함
- 관계 : 다른 엔티티와 1개 이상의 관계를 가지고 있어야 함
- 엔티티 분류
- 유형 VS 무형
- 유형 : 업무에서 도출, 지속적으로 사용, 물리적 형태 O // 고객, 강사, 사원 등
- 개념 : 물리적형태 X, 개념적 사용 // 거래소 종목, 생명보험 상품
- 사건 : 비즈니스 프로세스를 실행하면서 생성되는 엔터티 // 주문, 취소주문 등
- 발생시점
- 기본 : 키 엔터티 / 독립 생성, 자식 엔티티 가질 수 있음 // 고객, 상품, 부서 등
- 중심 : 기본과 행위 중간에 있는 것 / 기본으로부터 파생, 행위 엔티티 생성 // 계좌, 주문, 취소 등
- 행위 : 2개 이상의 엔티티로부터 파생 // 주문 이력 등
- 유형 VS 무형
- 이름 정할 때 주의점) 실제 쓰이는 용어 사용 / 한글은 약어X, 영문은 대문자 표기 / 단순 명사 표현, 띄어쓰기X / 다른 엔티티와 의미상 중복 X / 해당 엔티티가 갖고 있는 데이터가 뭔지 명확히 표현
03. 속성(Attribute)
- 정의 - 사물, 개념의 특징을 설명해 줄 수 있는 항목들의 속성 / 더이상 쪼개지지 않는 레벨 / 프로세스에 필요한 항목이어야 함
- 속성값 - 각각의 속성은 속성값을 갖고 엔티티에 속한 하나의 인스턴스를 구체적으로 나타내는 데이터 / 하나의 속성은 한 개의 속성 값만 가질 수 있음! (if 여러 개 갖는다면 분리하는 게 좋음)
- 엔티티, 인스턴스, 속성, 속성값의 관계 - 엔티티 ⊃ 인스턴스 ⊃ 속성
- 하나의 엔티티는 2개 이상의 인스턴스를 가짐
- 하나의 인스턴스는 2개 이상의 속성을 가짐
- 하나의 속성은 하나의 속성값을 가짐
- 분류
- 특성에 따른 분류) 기본속성 / 설계속성 / 파생속성
- 기본속성 : 업무 프로세스 분석을 통해 바로 정의가 가능한 속성 / 가장 일반적인 속성 // 회원ID, 이름
- 설계속성 : 업무에 존재 X, 설계하다보니 필요하다고 생각되어 도출한 속성... 유일한 값 부여 // 상품코드, 지점코드
- 파생속성 : 다른 속성의 속성값 계산 or 특정 규칙으로 변형해 생성한 속성 // 합계, 평균
- 구성방식에 따른 분류) PK속성 / FK속성 / 일반속성
- PK 속성(Primary Key) : 엔티티의 인스턴스들을 식별할 수 있는 속성 / 유니크함을 부여함
- FK 속성 (Foreign Key) : 다른 엔티티의 속성에서 가져온 속성 / 다른 엔티티와 관계를 맺게 해주는 매개체 역할
- 일반 속성 : PK, FK 제외한 나머지 속성
- 분해여부) 단일속성 / 복합속성 / 다중값속성
- 단일속성 : 하나의 의미로 구성된 것 // 회원ID, 이름
- 복합속성 : 여러 개의 의미가 있는 것 // 주소(시, 군, 구, 동)
- 다중값속성 : 속성에 여러 개의 값을 가질 수 있는 것... 엔터티로 분해됨 // 상품 리스트
- 도메인(Domain) : 속성이 가질 수 있는 속성값의 범위 // ex. 성별 속성의 도메인은 여자, 남자
- 특성에 따른 분류) 기본속성 / 설계속성 / 파생속성
04. 관계(Relationship)
- 정의 - 엔터티-엔터티간 관계 / 어떤 연관성이 있는지 타입을 분류해 존재 관계, 행위 관계로 나눌 수 있음
- 존재관계 : 엔터티 간의 상태.... 존재 자체로 연관성 있는 관계
- 행위관계 : 엔터티 간 어떤 행위가 있는 것... 특정 행위 함으로써 연관성이 생기는 관계
- 표기법) 관계명 / 관계차수 / 관계선택사양(필수?/선택?)
- 관계명 : 어떤 관계를 맺고 있는지 나타내주는 문장 / 명확한 문장으로 표현
- 관계차수 : 관계에 참여하는 수 / 1:1, 1:N, N:M 등등등...
- 관계선택사양 : 필수적 관계(참여자 반드시 존재) / 선택적 관계(참여자가 없을 수도 있는 관계)
05. 식별자(Identifiers)
- 정의 - 속성 중 각각의 인스턴스를 구분 가능하게 만들어주는 대표격인 속성을 의미
- 주식별자 : PK(기본키)에 해당하는 속성... 하나 이상의 속성이 주식별자가 될 수 있음 / 유일성, 최소성, 불변성, 존재성(Null X)
- 키의 종류) 기본키(후보키 중 엔터티 대표) / 후보키(유일성, 최소성 만족) / 슈퍼키(유일성 만족, 최소성 만족X) / 대체키(여러 개의 후보키 중 기본키 선정하고 남은 키) / 외래키(다른 테이블의 기본키 필드를 기리키는 것)
- 분류
- 대표성 여부) 주식별자 / 보조식별자
- 주식별자(Primary Identifier) : 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자 / 다른 엔터티랑 참조 관계로 연결
- 보조식별자(Alternate Identifier) : 인스턴스를 식별할 수 있지만 대표는 X / 다른 엔티티랑 참조 관계로 연결 X
- 생성 여부) 내부식별자 / 외부식별자
- 내부 식별자 : 엔터티 내부에서 스스로 생성
- 외부식별자 : 다른 엔티티에서 옴, 다른 엔티티와의 연결고리 역할
- 단일 속성 여부) 단일식별자(하나의 속성) / 복합식별자(두개 이상의 속성)
- 대체 여부) 원조식별자 / 대리식별자
- 원조식별자(Origianl) : 업무 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자(본질식별자)
- 대리식별자(Surrogate) : 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어 사용하는 식별자(인조식별자) // 후보 식별자 중 주식별자로 선정할 게 없거나 주식별자가 너무 많은 칼럼으로 되어 있는 경우 사용(순서번호 사용해 식별자 만듦)
- 대표성 여부) 주식별자 / 보조식별자
- 식별자 관계 VS 비식별자 관계
- 식별자 관계 : 부모 엔티티의 식별자가 자식 엔티티의 주식별자가 되는 관계 / 주식별자는 반드시 존재 ~> 부모엔티티가 있어야 생성 가능 / 단일?복합? 1:1 or 1:N 결정
- 비식별자 관계 : 부모 엔티티의 식별자가 자식 엔티티의 주식별자가 아닌 일반 속성이 되는 관계 / 일반 속성은 Null 가능... 부모가 없는 자식 생성 가능, 자식 존재하는 상태에서 부모 삭제 가능
06. 3층 스키마(3-Level Schema)
- 3층 스키마? 사용자, 설계자, 개발자가 DB를 보는 관점에 따라 DB 기술하고 이들간의 관계를 정의한 ANSI표준... 데이터 독립성 확보하기 위한 방법 -> 각 계층을 뷰(View)라고 함.
- 독립성) 논리적 독립성 / 물리적 독립성
- 3층 스키마 구조
- 외부 스키마) 응용 프로그램이 접근하는 DB 정의 / 사용자 관점, 업무상 관련 있는 데이터 접근 / 관련 DB의 뷰 표시
- 개념 스키마) 통합 DB 구조 / 설계자 관점, 사용자 전체 집단 DB 구조 / 전체 DB 내의 규칙, 구조 표현
- 내부 스키마) 개발자 관점, DB의 물리적 저장 구조 / 데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등 의미
728x90
반응형