1절 데이터 모델의 이해
모델링: '현실세계'를 일정한 표기법에 의해 표현하는 것
모델링 특징 :
추상화: 일정한 형식에 맞춰 표현
단순화: 제한된 표기법이나 언어로 표현
명확성: 이해가 쉽게 표현
모델링의 관점:
데이터 관점: 업무와 데이터 및 데이터 사이의 관계
프로세스 관점: 진행되고 있거나 진행되어야 하는 업무
상관 관점: 데이터에 대한 업무 처리 방식의 영향
-------------------------------------------------------------------------------------------------------------------------------
데이터 모델링: 정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법
데이터 모델링의 목적:
1) 정보에 대한 표기법을 통일하여 업무 내용 분석 정확도 증대
2) 데이터 모델을 기초로 DB생성
데이터 모델링의 기능
1) 가시화 2) 명세화 3) 구조화된 틀 제공 4) 문서화 5) 다양한 관점 제공 6) 구체화
데이터 모델링의 중요성
- 파급효과(Leverage): 데이터 모델의 변경이 불가피한 경우, 전체 시스템 구축 프로젝트에 큰 위험요소
- 간결한 표현(Conciseness): 정보 요구사항과 한계를 간결하게 표현하는 도구
데이터 품질(유의점)
유일성: 데이터 중복 저장 방지 - (중복)
유연성: 데이터 정의와 사용 프로세스 분리 - (비유연성)
일관성 - (비일관성)
이해관계자: 1) 개발자 2) DBA 3) 모델러 4) 현업업무 전문가
데이터 모델링 3단계
개념적 모델링: 엔티티와 속성을 도출하고 ERD를 작성, 업무 중심적이고 포괄적인 수준의 모델링, EA수립시 사용
논리적 모델링: 식별자를 도출하고 속성과 관계 등을 정의, 정규화를 수행하여 데이터 모델의 독립성과 재사용성 확보, 논리 데이터 모델은 데이터 모델링 완료 상태
물리적 모델링: DB구축, 성능 및 보안 등 물리적인 성격 고려
프로젝트 생명주기(Life Cycle): 계획 -> 분석 -> 설계 -> 개발 -> 테스트 -> 전환/이행
1) 계획과 분석은 개념적 모델링 2) 분석은 논리적 모델링 3) 설계는 물리적 모델링
-------------------------------------------------------------------------------------------------------------------------------
DB의 3단계 구조: 데이터 독립성 확보를 목표
DB 독립성의 필요성: 데이터의 중복성과 데이터 복잡도 증가로 인한 1) 유지보수 비용 증가 2) 요구사항 대응 저하
3층 스키마(3-level Schema)
외부 스키마: 각 사용자 단계의 개인적 DB 스키마, 사용자 관점, 응용 프로그램이 접근하는 DB 정의
개념 스키마: 조직 전체의 통합된 DB 스키마, 설계자 관점
내부스키마: 물리적으로 데이터가 저장되는 방법을 표현하는 스키마, 개발자 관점, 물리적 저장 구조
데이터 독립성
논리적 독립성: 외부 스키마가 개념 스키마의 변화에 무관함, 논리적 사상 없음
물리적 독립성: 개념 스키마가 내부 스키마에 변화에 무관함, 물리적 사상 없음
매핑(Mapping): 상호 독립적인 개념을 연결시켜주는 다리 - 외부적/개념적 사상 + 개념적/물리적 사상
데이터 모델링 3요소: 개체, 관계, 속성
ERD: 1) 엔티티는 사각형 2) 관계는 마름모 3) 속성은 타원형 / 현실의 데이터 모두 표현 가능
엔티티 도출 - 엔티티 배치 - 엔티티간의 관계설정 - 관계명 기술 - 관계의 참여도 기술 - 관계의 필수여부 기술
좋은 데이터모델의 요소
1) 완전성 2) 중복배제 3) 업무규칙 4) 데이터 재사용 5) 의사소통 6) 통합성
2절 엔티티
엔티티 : 업무에서 관리해야 하는 데이터의 집합, 명사형, 인스턴스의 집함
엔티티의 특징:
1) 업무에서 필요로 하는 정보
2) 식별자에 의해 식별이 가능 해야함
3) 인스턴스의 집합
4) 업무프로세스에 의해 이용
5) 속성을 포함
6) 관계의 존재
엔티티의 분류:
가. 유무형에 따른 분류: 유형 엔티티, 개념 엔티티, 사건 엔티티
나. 발생시점에 따른 분류: 기본 엔티티, 중심 엔티티, 행위 엔티티
명명규칙: 1) 현업업무에서 사용하는 용어 2) 약어 지양 3) 단수 명사 4) 유일성 보장 5) 명확성
3절 속성
정의: 엔티티가 가지는 최소 의미 단위, 인스턴스의 구성요소
엔티티와 인스턴스 및 속성과 속성값 간의 관계
1) 한 개의 엔티티는 두개 이상의 인스턴스 집합이어야 한다.
2) 한 개의 엔티티는 두개 이상의 속성을 갖는다.
3) 한 개의 속성은 한 개의 속성값을 갖는다.
속성 표기법: IE 표기법, Barker 표기법
특징: 하나의 속성에는 한 개의 값, 하나의 속성에는 여러 개의 값이 있는 다중값일 경우 별도의 엔티티를 이용하여 분리
종류
특성에 따른 분류:
기본 속성: 비지니스 프로세스에서 도출되는 본래의 속성
설계 속성: 데이터 모델링 과정에서 업무 규칙화를 위해 발생하는 속성
파생 속성: 다른 속성에 의해 만들어지는 속성 (↔저장 속성은 유도 속성을 생성하는데 사용되는 속성)
분해 가능 여부에 따른 분류:
단일 속성: 하나의 의미
복합 속성: 여러 의미, 단일 속성으로 분해 가능
단일값 속성: 하나의 값
다중값 속성: 여러 값, 엔티티로 분해 가능
엔티티 구성방식에 따른 분류
기본키 속성: 엔티티를 식별할 수 있는 속성
외래키 속성: 다른 엔티티와의 관계에서 포함된 속성
일반 속성: 엔티티에 포함되고 PK나 FK 속성이 아닌 속성
도메인: 속성이 가질 수 있는 값의 범위, 엔티티 내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것
4절 관계
정의: 엔티티 간의 논리적인 관련성, 동사형
관계의 페어링: 인스턴스 간 개별적 관계
관계 표기법:
1) 관계명 : 관계의 이름
2) 관계 차수: 1:1, 1:M, M:N
3) 관계 선택사양: 필수는 l 선택은 O
종류
ERD 기준: 표기구분 안함
존재 관계: 엔티티 간의 상태
행위 관계: 엔티티 간에 발생하는 행위
UML(Unified Modeling Language) 기준
연관 관계(Association): 실선
의존 관계(Dependency): 점선
식별자에 따른 분류
식별 관계: 부모 엔티티의 식별자를 자식 엔티티에서 주식별자로 사용
※ 약한 엔티티: 부모 엔티티에 종속되어 존재(↔ 강한 엔티티는 독립적으로 존재)
비식별 관계: 부모 엔티티의 식별자를 자식 엔티티에서 일반 칼럼으로 참조 사용, 약한 종속 관계
※식별 관계만으로 연결되면 주식별자 수가 많아질 수밖에 없으므로 1) 관계 강약 분석 2)자식 엔티티의 독립 PK
필요성 3) SQL 복잡성과 개발 생산성 고려 필요
관계 읽기: 각각의/하나의 > 기준 엔티티 > 관계차수 > 대상 엔티티 > 관계선택사양 > 관계명
5절 식별자
정의: 엔티티를 대표할 수 있는 유일성을 만족하는 속성
특징: 1) 유일성 2) 최소성 3) 불변성 4) 존재성
종류
대표성 여부에 따른 분류
주식별자: 대표성을 만족하는 식별자
보조식별자: 유일성과 최소성만 만족하는 식별자, 참조 관계 연결에 사용할 수 없음
※DB키의 종류
기본키: 엔티티를 대표하는 키, 후보키 중 선정
후보키: 유일성과 최소성을 만족
슈퍼키: 유일성만 만족
대체키: 기본키를 제외한 나머지 후보키
외래키: 여러 테이블의 기본 키 필드, 참조 무결성을 확인하기 위해 사용됨(허용된 값만 저장하기 위함)
생성 여부에 따른 분류
내부 식별자: 자연스럽게 존재하는 식별자( ~ 본질 식별자)
외부 식별자: 다른 엔티티와의 관계를 통해 생성되는 식별자
속성 수에 따른 분류
단일 식별자: 하나의 속성
복합 식별자: 여러 속성
대체 여부에 다른 분류
본질 식별자: 대체될 수 없는 식별자
인조 식별자: 인위적으로 만들어지는 대체가능한 식별자
주식별자 도출기준:
1) 해당 업무에서 자주 이용되는 속성을 주식별자로 지정
2) 명칭, 내역등과 같이 이름으로 기술되는 것을 피함
3) 속성의 수가 많아지지 않도록 함
식별자관계와 비식별자 관계에 따른 식별자