반응형
데이터 모델링 시 유의점
- 여러 장소에 같은 정보를 저장하지 않도록 한다.
- 사소한 업무 변화에 데이터모델이 수시로 변경되면 유지보수가 어렵다.
- 데이터의 중복이 없어도 비 일관성이 발생
- 반정규화를 하면 데이터 무결성을 해친다.
- 반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성을 증가시키지만 데이터의 일관성 및 정합성이 저하될 수 있음
- 과도한 반정규화는 오히려 성능을 저하
- 반정규화를 위해서는 사전에 데이터의 일관성과 무결성을 우선으로 할지, 데이터베이스의 성능과 단순화를 우선으로 할지 결정해야 한다.
- 반정규화 방법에는 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가 등이 있다.
엔터티(Entity)
- 업무에서 관리해야 하는 데이터 집합을 의미
- 개념, 사건, 장소 등의 명사이다.
특징
- 엔터티는 유일한 식별자가 있어야 한다.
- 2개 이상의 인스턴스가 있따.
- 반드시 속성을 가지고 있다.
- 다른 엔터티와 최소한 한 개 이상 관계가 있어야 한다.
- 업무에서 관리되어야 하는 집합이다.
종류
- 유형과 무형에 따른
- 유형 엔터티
- 사건 엔터티
- 개념 엔터티
- 발생 시점에 따른
- 기본 엔터티
- 중심 엔터티
- 행위 엔터티
속성(Attribute) = 컬럼
- 업무에 필요한 정보인 엔터티가 가지는 항목을 말한다.
- 더이상 분리되지 않는 단위로, 업무에 필요한 데이터를 지정할 수 있다.
- 인스턴스의 구성요소이다.
특징
- 업무에서 관리되는 정보
- 하나의 값만 가진다
- 주식별자에게 함수족으로 종속된다.
종류
- 분해 여부에 따른
- 단일 속성
- 복합 속성
- 다중값 속성
- 특성에 따른
- 기본속성
- 설계속성
- 파생속성
※ 도메인 : 속성이 가질 수 있는 값의 범위를 말한다.
인스턴스(Instance) = 행
- 인스턴스는 데이터 베이스에 저장된 데이터 내용의 전체 집합을 의미
비식별자 관계(Non - Identifying - Relationship)
- 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우가 있을때
- 자식엔터티에서 받은 속성이 반드시 필수가 아니어도 무방하기 때문에 부모 없는 자식이 생성될 수 있다
- 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우
- 예를 들어 부모엔터티의 인스턴스가 자식의 엔터티와 관계를 가지고 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우가 이에 해당
- 이에 대한 방안으로 물리데이터베이스 생성시 Foreign Key를 연결하지 않는 임시적인 방법을 사용하기도 하지만 데이터 모델상 관계를 비식별자관계로 조성하는 것이 가장 좋은 방법
- 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질 때이며 이에 해당된다.
데이터 모델링
논리적 데이터 모델링
- 논리적 시스템으로 구축하고 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현하며 재사용성이 높다.
개념적 데이터 모델링
- 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링 진행.
- 전사적 데이터 모델링, EA 수립시 많이 사용
- 핵심 엔터티와 그들 간의 관계를 발견하고, 그것을 표현하기 위해서 엔터티 - 관계 다이어 그램을 생성하는 것
- 엔터티 - 관계 다이어그램은 조직과 다양한 데이터베이스 사용자에게 어떠한 데이터가 중요한지 나타내기 위해서 사용
- 개념 데이터 모델은 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원
- 개념 데이터 모델은 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용
논리적 데이터 모델링
- 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음
- 논리 데이터 모델링은 데이터베이스 설계 프로세스 input으로서 비지니스 정보의 논리적인 규칙을 명확하게 표현하는 기법 또는 과정
- 데이터 모델링 과정에서 가장 핵심이 되는 부분
- 이 단계에서 하는 중요한 활동은 정규화
- 정규화 :
- 논리 데이터 모델 상세화 과정의 대표적인 활동
- 논리 데이터 모델의 일관성 확보, 중복제거로 속성들이 가장 적절한 엔터티에 배치되도록 함 → 신뢰성있는 데이터 구조를 얻는 목적
물리적 데이터 모델링
- 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의를 물리적 스키마라 함
- 이 단계에서 결정되는 것 : 테이블, 컬럼 등으로 표현되는 물리적인 저장구조와 사용될 저장장치, 자료를 추출하기 위해 사용될 접근 방법
파생 속성
- 타 속성에 의 해 영향을 받아 자신의 값이 변한다 (최초주문일자, 주문수량, 총 주문금액 등)
관계차수(Cardinality)
- 두 개의 엔터티간 관계에서 참여자의 수를 표현하는 것
- 가장 일반적인 관계차수 표현방법은 1:M, 1:1, M:N이다.
- 가장 중요하게 고려해야 할 상항은 한 개의 관계가 존재하느냐 아니면 두 개 이상의 멤버쉽이 존재하는지를 파악하는 것이 중요
속성 (Attrubute) = 컬럼
- 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리 되지 안흔 초소의 데이터 단위
- 업무에서 필요한 정보인 엔터티가 가지는 항목
- 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.
- 인스턴스의 구성요소
제 2 정규형
- 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속된 상태
정규형
- 제1정규형 : 모든 속성의 도메인이 원자 값(atomic Value)으로만 (다중값이 아닌) 구성되어 있으며 제1정규형에 속한다.
- 제2정규형 : 제1정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제2정규형에 속한다.
- 제3정규형 :
- 제2정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속이 되지 않으면 제3정규형에 속한다.
- 속성간의 함수 종속성이 발생하지 않는 경우
- 제1정규화 대상 : 제1정규형의 조건을 만족하지 못하는 상태
- 제2정규화 대상 : 제1정규형이지만 제2정규형의 조건을 만족하지 못하는 상태
- 제3정규화 대상 : 제2정규형이지만 제3정규형의 조건을 만족하지 못하는 상태
반응형
'SQL Developer > SQLD 공부' 카테고리의 다른 글
SQLD 자격증 공부 (0) | 2023.11.07 |
---|---|
SQLD 자격증 공부 8 일차 (Execute Immediate / Stored Module / 트리거(Trigger) / CBO / 규칙기반 옵티마이저 / 실행계획 읽는 순서 (2) | 2023.11.04 |
SQLD 자격증 공부 7일차 (GROUPING SETS / 윈도우 함수 / RANK / DENSE_RANK / PARIRION BY /ROW_NUMBER / 권한 주는 명령어 / ROLE (1) | 2023.11.01 |
SQLD 자격증 공부 6일차 (서브쿼리, <>비교 연산자, 뷰(View), ROLLIP 함수, CUBE) (0) | 2023.10.30 |
SQLD 자격증 공부 5일차 (1) | 2023.10.27 |