데이터 모델의 이해
모델링의 이해
- 모델링의 정의 : 다양한 현상을 표기법의 맞게 표기
- 특징 : 추상화(형식에 맞게), 단순화(단순하게), 명확화(정확하게)
- 모델링의 3가지 관점
- 데이터 모델의 구분
- Thing : 어떤 것
- Attributes : 성격
- Relationship : 연관성
데이터 모델의 기본 개념의 이해
데이터 모델링의 정의 : 데이터관점의 업무분석기법
데이터 모델링의 중요성 및 유의점
- 유의점
- 중복 : 여러 장소에 같은 데이터를 저장하면 안됨
- 비유연성 : 데이터 정의를 사용 프로세스와 분리해야함 - 데이터의 작은 변화가 DB에 중대한 변화를 일으킬 가능성을 줄여야함
- 비일관성 : 데이터 중복이 없어도 발생, 상호 관계에 명확히 정의해야 위험 예방
데이터 모델링의 3단계 진행
- 개념적 데이터 모델
- 논리적 데이터 모델
- Key, 속성, 관계 등을 정확하게 표현
- 높은 재사용성
- 정규화
- 물리적 데이터 모델
- 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격 고려 설계
프로젝트 생명주기에서 데이터 모델링
개념
- 계획 → 분석 → 설계
- 계획 : 개념적 모델링 → 분석 : 논리적 모델링 → 설계 : 물리적 모델링
실제
- 분석 → 설계
- 분석 : 개념적 모델링 + 논리적 모델링 → 설계 : 물리적 모델링
데이터 모델링에서 데이터 독립성의 이해
- 데이터 독립성의 필요성
- 유지보수비용 증가
- 데이터 복잡도 증가
- 데이터 중복성 증가
- 요구사항대응 저하
- 데이터 독립성의 효과
- 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경이 가능
- 단계별 시그마에 따라 DDL과 DML이 다름을 제공
- 데이터베이스의 3단계 구조
- 외부 단계 : 사용자와 가까운 단계, 사용자 개개인이 보는 자료에 대한 뷰과 관련된 부분
- 개념적 단계 : 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 뷰를 스키마 형태로 디자인한 형태
- 내부적 단계 : 데이터가 물리적으로 저장된 방법에 대한 스키마 구조
-
데이터 독립성 요소
-
두 영역의 데이터 독립성
- 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마에는 영향을 끼치지 않는다.
- 물리적 독립성 : 내부 스키마가 변경되어도 외부/개념 스키마는 영향을 미치지 않는다.
-
사상(Mapping)
상호 독립적인 개념을 연결시켜주는 다리
- 외부적 / 개념적 사상
- 개념적 / 물리적 사상
데이터 모델링의 중요한 세가지 개념
- 데이터 모델링 세 가지 요소
- Things : 어떤 것
- Atrributes : 성격
- Relationships : 관계
데이터 모델의 표기법인 ERD의 이해
- 데이터 모델 표기법
- 엔티티 - 사각형
- 관계 - 마름모
- 속성 - 타원형
- ERD 표기법
- 절차
- 엔티티 그리기
- 엔티티 배치
- 엔티티 관계 설정
- 관계명 기술
- 관계의 참여도 기술
- 관계의 필수여부 기술
좋은 데이터 모델의 요소
- 완전성
- 중복 배제
- 업무 규칙
- 데이터 재사용
- 의사소통
- 통합성
엔터티
엔터티의 개념
엔터티 : 실체, 객체
엔터티와 인스턴스에 대한 내용과 표기법
엔터티의 특징
- 업무에서 필요로 하는 정보
- 식별자에 의해 식별이 가능 해야함
- 인스턴스의 집합
- 업무 프로세스에 의해 이용
- 속성을 포함
- 관계의 존재
엔터티의 분류
- 유무형에 따른 분류
- 유형 엔터티 : 물리적 형태
- 개념 엔터티 : 개념적 정보
- 사건 엔터티 : 업무 수행에 발생
- 발생시점에 따른 분류
- 기본 엔터티 : 고유 식별자 O
- 중심 엔터티 : 기본에서 발생 업무에 중심 역할
- 행위 엔터티 : 두개이상 부모, 내용자주바뀜
속성
속성의 개념
업무에서 필요로 하는 인스턴스로 관리하고자하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
엔터티, 인스턴스와 속성, 속성값의 관계
- 한개의 엔터티는 두개 이상의 인스턴스 집합이어야 한다
- 한 개의 엔터티는 두개 이상의 속성을 갖는다
- 한 개의 속성은 한개의 속성값을 갖는다.
속성의 특징
- 하나의 속성에는 한 개의 값
- 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리
속성의 분류
속성의 특성에 따른 분류
- 기본 속성 : 업무로부터 도출한 모든 속성
- 설계 속성 : 속성을 새로 만들거나 변형하여 정의
- 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성 계싼값
엔터티 구성방식에 따른 분류
- PK 속성 : 엔터티를 식별할 수 있는 속성
- FK 속성 : 다른 엔터티와의 관계에서 포함된 속성
- 일반 속성 : 엔터티에 포함되어 있고 PK, FK에 포함되지 않는 속성
- 의미를 쪼갤 수 있는지에 따라 단순형, 복합형으로 분류
- 단일값 : 속성 하나에 한 개의 값, 다중값 : 속성 하나에 여러 개의 값
도메인
각 속성이 가질 수 있는 값의 범위
- 엔터티 내에서 속성에 대한 데이터 타입, 크기 그리고 제약사항을 지정하는 것
관계
개념
- 엔터티의 인스턴스 사이의 논리적인 연관석으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
- 관계의 페어링 : 페어링은 엔터티안에 인스턴스가 개별적으로 관계를 가니는 것이고, 이것의 집합을 관계로 표현
- 관계의 분류
- ERD : 존재에 의한 관계 / 행위에 의한 관계
- UML : 연관 관계 / 의존 관계
관계의 표기법
식별자
식별자 개념
- 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성
- 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 한다
식별자의 특징
식별자 분류
- 대표성 여부 : 주식별자 / 보조식별자
- 엔터티 내에서 스스로 생성 : 내부식별자 / 외부식별자
- 단일 속성 여부 : 단일식별자 / 복합식별자
- 업무적으로 의미가 있던 식별자 속성을 대체하여 새로 만들었는지 : 본질식별자 / 인조식별자
식별자 표기법
주식별자 도출 기준
- 해당 업무에서 자주 이용되는 속성
- 명칭, 내역 등과 같이 이름으로 기술되는 것은 피함
- 속성의 수가 많아지지 않도록함
식별자관계와 비식별자 관계에 따른 식별자
- 식별자 관계와 비식별자 관계의 결정 : 다른 엔터티와의 관계를 통해 자식 엔터티에 생성되는 속성을 외부식별자라고 하며 데이터베이스 생성시 Foregin Key 역할을 한다
- 식별자 관계 : 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우
- Null 값이 오면 안되므로 반드시 부모엔터티가 생성되어야 자기자신의 엔터티 생성
- 문제점 : 주식별자 속성이 지속적으로 증가, 복잡성과 오류 가능성 유발
- 비식별자 관계 : 부모 엔터티로부터 속성을 ㅗ받았지만 자식 엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우
- 문제점 : 쓸데없이 부모엔터티까지 찾아가야 하는 경우가 발생한다.