데이터 모델리의 중요성 및 유의점
ㅇ 중복: 같은 시간 같은 데이터 제공
ㅇ 비유연성: 사소한 업무변화에 데이터 모델이 수시로 변경되면 안됨.
ㅇ 비일관성: 데이터 간 상호 연관 관계에 대해 명확히 정의
데이터 모델링
개념적 모델링: ex. ERD
논리적 모델링: ex. 정규화, 반정규화
물리적 모델링: ex. 테이블 설계
데이터 독립성 요소
외부 스키마: 사용자가 보는 개인적 DB스키마
개념 스키마: 모든 사용자 관점을 통합한 전체 DB
내부 스키마: 물리적 장치에서 데이터가 실제 저장
데이터 독립성
데이터 모델링 3요소
어떤 것 (Thigs) / 성격(Attributes) / 관계(Relataionship)
데이터 표기법
ER(Entity Relationship)
- 좌상에서 우하로
- 관계형 반드시 표기 X
- UML은 객체지향에서만 쓰임
좋은 데이터 모델의 요소
1. 완전성: 모든 데이터가 정의되어야 함
2. 중복배제: 동일한 사실은 한번만
3. 업무규칙: 많은 규칙을 사용자가 공유
4. 데이터 재사용: 데이터가 독립적으로 설계
5. 의사소통: 최대한 자세히 표현
6. 통합성: 동일한 데이터는 한번만 정의
엔티티: 업무에 필요하고 유용한 정보 저장
ex. 엔티티: 과목 - 인스턴스: 수학, 영어
엔티티 특징
1. 반드시 업무에 필요한 것 관리
2. 유일한 식별자에 의해 식별
3. 두 개 이상의 인스턴스의 집합 ex. 과목만 있고, 영어,수학은 없음 뭔소용?
4. 업무 프로세스에 의해 이용
5. 반드시 속성이 있어야 함
6. 최소 1개 이상의 관계가 있어야 함
엔티티의 분류
유무형
유형: 물리적 형태 ex) 사원, 물품, 강사
개념: 개념적 정보 ex) 조직, 보험상품
사건: 업무 수행시 ex) 주문, 청구, 미납
발생시점에 따른 분류
Key 기본: 업무에 원래 존재하는 정보 ex) 사원, 부서
Action 중심: 기본 엔티티로 부터발생, 관계로 많은 엔티티 생성 ex) 주문목록, 변경이력
엔티티의 명명
현업에서 사용하는 용어 사용, 약어 금지
단수명사 사용, 고유한 이름 사용, 생성의미 부여
속성
* 엔티티는 2개 이상의 인스턴스 집합
* 엔티티는 2개 이상의 속성을 가짐
* 속성은 1개의 속성값을 가짐
도메인
속성에 대한 데이터 타입, 크기, 제약사항 지정
ex. check, PK, FK, not null
속성의 명명
업무에서 사용하는 이름 부여
서술식 속성명 금지
약어 금지
구체적 명명
관계 엔터티의 인스턴스 사이의 관계
ex) 강사 - "가르친다" - 수강생
페어링 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것
UML
연관관계(실선): 항상 이용 ex. 소속
의존관계(점선): 상대 행위에 의해 발생 ex. 주문
1:1 , 1:M, M:N
식별자: 엔터티 내에서 인스턴스를 구분하는 구분자
식별자의 특징: 유일성, 최소성, 불변성, 존재성
유일성!! 대표적인 게 PK --> ex. 학번
최소성:: 주식별자의 속성의 수는 최소의 수여야 함
불변성:: 자주 변하면 안됨
존재성:: 반드시 값 有 (not null)
식별자 분류
대표성여부: 주식별자, 보조식별자
스스로 생성여부:
내부식별자 - 스스로 생성
외부식별자 - 타 엔터티로부터 반아오는 식별자
주식별자 - 강한관계, 조인하면 PK 多. SQL 복잡해짐
비식별자 - 약한관계, SQL 느려짐