링크
•
모델링의 특징
◦
단순화
◦
추상화
◦
명확화
•
데이터 모델링의 유의점 (피해야할 요소)
◦
중복
◦
비유연성
◦
비일관성
•
데이터 모델링 3가지 요소
◦
대상
◦
속성
◦
관계
•
데이터 모델링의 3단계
◦
개념적 모델링
▪
추상화 수준이 높음
▪
핵심 엔터티를 추출하는 단계 → ERD
◦
논리적 모델링
▪
개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 표현
◦
물리적 모델링
▪
데이터 정규화 수행
•
데이터 모델의 표기법 (ERD: Entity Relationship Diagram)
◦
엔터티와 엔티티 간의 관계를 시각적으로 표현한 다이어그램
•
ERD 작성 절차 (6단계
◦
엔티티 도출후 그림
◦
배치
◦
관계
◦
관계명 서술
◦
관계의 참여도 기술
◦
관계의 필수 여부 확인
•
엔터티의 개념
◦
현실 세계에서 독립적으로 식별 가능한 객체나 사물을 나타낸다.
◦
instance들로 이루어진 집합
◦
엔티티와 속성 인스턴스 등의 관계
•
엔터티의 특징
◦
유일한 식별자에 의해 식별이 가능하다
◦
인스턴스의 집합
◦
업무 프로세스에 의해 이용
◦
다른 엔터티와 최소 1개 이상의 관계를 가지고 있어야 한다.
•
엔터티의 분류
◦
유형
▪
물리적 형태가 있음
•
사원, 물품
◦
개념
▪
물리적인 형태가 없음
•
조직, 보험상품 등
◦
사건
▪
업무를 수행에 따라 발생하는 엔티티
•
주문, 청구, 미납
◦
발생시점
▪
기본엔터티
•
그 업무에 원래 존재하는 정보
•
고유한 주식별자를 가진다.
◦
사원, 부서, 고객, 상품 등
▪
중심엔티티
•
기본 엔티티로부터 발생되고 파생되는 것
◦
계약, 사고, 청구, 주문, 매출
▪
행위엔티티
•
2개 이상의 부모 엔ㅌ어티로부터 발생
◦
주문 (고객과 상품이 필요)
◦
엔티티의 명명
▪
단수 명사 사용
▪
유일하게 이름 부여
◦
엔티티와 인스턴스 표기법
▪
엔티티는 사각형
•
엔티티에 대한 표기법
•
속성의 개념
◦
업무에서 필요로 하는 고유한 성질, 특징을 의미 → 컬럼으로 표현할 수 있는 단위
•
엔티티, 인스턴스, 속성, 속성값의 관계
◦
한개 엔티티는 2개 이상의 인스턴스의 집합
◦
한개 엔티티는 2개 이상의 속성을 갖는다
◦
한개의 속성은 1개의 속성값을 갖는다.
•
속성의 특징
◦
정해진 주식별자에 함수적 종속성을 가져야 한다.
◦
하나의 속성이 하나의 값을 갖고있는 것 → 원자성
•
함수적 종속성
◦
어떤 값에 대해 다른 속성도 유일하게 결정된다면, 함수적으로 종속되었다라고 한다.
•
속성의 분류
◦
기본속성
▪
업무로 부터 추출된 모든 속성
•
원금, 예치기간
◦
설계속성
▪
상품코드, 지점코드
◦
파생속성
▪
일반적으로 계산된 값들이 해당
•
함계평균 이자 등등
•
엔티티 구성방식에 따른 분류
◦
기본기 pk
◦
외래키 fk
◦
일반 속성
•
분해 여부에 따른 속성
◦
단일 속성
▪
하나의 의미로 구성
◦
복합 속성
▪
여러개의 의미로 구성
◦
다중값 속성
▪
속성에 여러 개의 값을 가질 수 있는 경우
•
속성의 명명규칙
◦
서술식 안됨
◦
유일한 명칭
•
도메인
◦
각 속성이 가질 수 있는 값의 범위
•
관계의 개념
◦
관계는 엔티티간의 연관성을 나타낸 개념
◦
엔티티를 어떻게 정의하느냐에 따라 변경하기도 함
•
관계의 종류
◦
존재적 관계
◦
행위적 관계
•
관계의 구성
◦
관계명
◦
차수
◦
선택성
•
관계의 차수
◦
한 엔티티의 레코드가 다른 엔티티의 레코드와 어떻게 연결되는지를 나타내는 표현
▪
1대1 관계
▪
선택적 1대1 관계
•
한쪽이 없어도 되는 관계
▪
1대 n의 관계
•
고객은 여러 개의 계좌를 가질 수 있음
▪
m대 n의 관계
•
연결 엔티티를 추가해서 1대n관계로 해소할 필요가 있음
•
관계의 페어링
◦
엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것
◦
관계와 차수, 페어링의 차이
▪
학생과 강의 엔티티는 관계를 가짐
▪
인스턴스의 관계로 페어링
▪
차수는 하나의 엔티티와 다른 엔티티간의 레코드간의 연결
•
식별자 개념
◦
엔티티를 대표할 수 있는 속성을 나타냄
◦
유일한 식별자가 존재해야함
◦
논리 모델링에서 사용하는 용어, 물리 모델링에서는 키라고 표현
•
주식별자 특징
◦
유일성
▪
주식별자에 의해 모든 인스턴스를 유일하게 구분
◦
최소성
▪
주식별자를 구성하는 속성은 유일성을 만족하는 최소한의 속성으로 구성
◦
불변성
▪
주식별자가 한번 특정 엔티티에 지정되면 그 식별자의 값은 변하지 않아야 함
◦
존재성
▪
주식별자가 지정되면 반드시 값이 존재해야하며 null은 허용 안된다.
•
식별자 분류
◦
대표성 여부에 따른 식별자 분류
▪
주식별자
▪
보조식별자
◦
생성 여부에 따른 식별자의 종류
▪
내부식별자
▪
외부식별자
◦
속성 수에 따른 식별자 종류
▪
단일 식별자
▪
복합 식별자
◦
대체 여부에 따른 식별자의 종류
▪
본질식별자
▪
인조식별자
•
ie 표기법
•
barker표기법
•
주식별자 도출기준
◦
자주 이용되는 속성을 주식별자
◦
명칭이나 내역등과 같은 이름은 피함
◦
속성의 수를 최대한 적게 구성
•
관계간 엔티티 구분
◦
강한개체
▪
독립적으로 존재
◦
약한개체
▪
독립적 x
•
식별관계 비식별관계
◦
식별관계
▪
서로 주식별자를 가지고 있느냐
▪
한쪽에서 강한 식별자를 가지고 있느냐
▪
다른 엔티티가 기본키의 하나로 공유하는 관계
▪
실선으로 표시
◦
비식별관계
▪
기본키가 아닌 일반 속성으로 관계
▪
ERD에서 점선으로 표시
•
정규화의 개념
◦
엔티티를 분해하는 과정
◦
중복을 제고하고 데이터 모델의 독립성을 확보하기 위함
◦
논리 데이터 모델링 수행시점에 고려
◦
1정규화에서 5정규화 까지 존재하는데, 3정규화 까지 수행
•
이상현상
◦
정규화를 하지 않아서 발생하는 현상(삽입이상, 갱신이상, 삭제이상)
•
정규화 단계
◦
1정규화
▪
테이블 컬럼이 원자성을 갖도록 테이블을 분해하는 단계
▪
한 속성에 배열이 들어가있으면 쪼개는 과정
◦
제 2정규화
▪
제 1정규화를 진행한 테이블에 대해 완전 함수 종속을 만들도록 테이블을 분해
▪
완전함수 종속
•
기본키를 구성하는 컬럼이 다른 켤럼을 결정 짓는 상태
◦
두개키가 다른 속성을 결정 짓지 못하는 것 → 완전함수종속을 위배했다.
◦
이 속성들을 테이블로 쪼개는 과정
•
수강이력 ex
◦
완전함수종속을 위반하는 것을 찾아 pk로 부터 분리하는 과정
◦
제 3정규화
▪
이행적 종속을 없애도록 테이블을 분리
▪
이행적 종속이란
•
a가 b를 결정하고 b가 c를 결정하는 것
▪
이행적 종속관계를 분리하는 과정
▪
계좌번호 제 3정규화
•
반정규화의 개념
◦
데이터베이스의 성능 향상을 위해서 데이터 중복을 허용하고 조인을 줄이는 데이터 베이스 성능향상 방법
◦
수행케이스
▪
활용성은 향상되지만, 수행 속도가 느려지는 경우
▪
다량의 범위를 자주 처리해야하는 경우
•
관계의 개념
◦
엔티티 인스턴스 사이의 논리적인 연관성
◦
상속된 속성을 매핑키로 활용
◦
예시
▪
부서번호가 조인키
•
관계의 분류
◦
존재관계
◦
행위관계
•
조인의 의미
◦
데이터의 중복을 피하기 위해 테이블은 정규화에 의해 분리된다.
◦
테이블은 분리되면서 서로 관계를 맺게된다.
•
계층형 데이터 모델
•
상호 배타적 관계
◦
둘중에 하나만 가능한 관계
•
트랜잭션이란
◦
하나의 연속적인 업무 단위를 말함
◦
서로 독립적으로 발생하면 안됨
◦
부분 commit 불가
•
필수적 관계와 선택적 관계의 ERD
•
null의 특성
◦
ie표기법에서는 null허용여부를 알 수 없음
◦
barker표기법은 앞에 동그라미가 있다.
•
식별자 구분
◦
본질 식별자
▪
본질적으로 존재하는 업무에서 만들어진 식별자
◦
인조 식별자
▪
업무에는 필요가 없지만, 관리목적으로 생성한 식별자.
▪
중복 데이터 발생 가능성이 있다.
▪
불필요한 인덱스를 생성하게 된다.
▪
인덱스는 dml처리시 index split현상으로 인해서 성능이 저하된다.
•