모델링
모델링과 현실 연관
1) 일정한 형식에 맞추어 추상화
2) 시스템 구현, 업무 분석, 업무 형상화. 데이터베이스 구축 위한 사전작업
3) 복잡한 현실을 단순화
4) 애매함 배제 -> 정확하게
데이터 모델링의 목적
1) 업무정보를 구성하는 기초 정보를 일정한 표기법에 의해 표현하여 업무 내용을 정확히 분석
2) 분석된 모델을 통하여 실제 DB를 생성, 개발 , 데이터 관리
데이터 모델링 품질 유의 사항
1) 중복(duplication) - 데이터 베이스가 여러 장소에 같은 정보를 저장 하지 않도록
2) 비유연성(inflexibility) - 데이터 정의와 사용을 분리 하여, 작은 변화에도 큰 작업이 일어 나지 않도록
3) 비일관성(inconsistency) - 데이터 간의 상호 연관 관계를 명확하게 정의 하여 한쪽만 데이터를 갱신하는 실수를 방지 해야 한다.
데이터 모델링의 개념
1) 개념적 데이터 모델링 : 추상화 수준이 높으며, 업무 중심적, 포괄적 모델링.
2) 논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무의 key,속성,관계 등을 정확하게 표현 -> 재사용성 높임
3) 물리적 데이터 모델링 : 실제로 데이터베이스에 이식 가능 하도록 성능, 저장 등 물리적 성격 고려
데이터 베이스 스키마 3층 구조
1) 외부 스키마(External Schema) : 프로그래머나 사용자의 관점으로 필요한 데이터의 논리적 구조를 나타냄. 여러 외부 스키마 존재 가능.
2) 개념 스키마(Conceptual Schema) : 개체간의 관계와 제약조건을 나타내고 접근 권한, 보안, 무결성 규칙에 관한 명세를 정의. 단순히 스키마라고 하면 개념 스키마를 의미
기관이나 조직의 관점에서 데이터베이스를 정의한 것 - 관리자에 의해 구성 된다.
3) 내부 스키마(Internal Schema) : 전체 데이터베이스의 물리적 저장 형태를 기술하는 것 실제 레코드 내에 저장 되는 것
ERD
ERD란 ?
각각의 엔티디들이 서로 어떤 관계를 가지고있는지. Entity Relationship Model
ERD 표현
ERD 설명
1) 1976년 피터 첸이 만든 표기법
2) 작성 순서 : 엔티티 도출 -> 엔티티 배치 -> 관계 설정 -> 관게명 기술 (도배설기)
3) 관계 명칭은 관계를 잘 설명 하도록
4) 엔티티 위치는 상관 없음. 그러나 가장 중요한것을 왼쪽 상단 조금 아래 배치하면 깔끔하게 배치, 중요할 수록 왼쪽 위로(가독성)
엔티티 특징
1) 반드시 해당 업무에서 필요하고 관리하고자 하는 정보
2) 유일한 식별자에 의해 식별이 가능 해야 함
3) 두개 이상의 인스턴스의 집합
4) 업무 프로세스에 이용 되어야 한다.
5) 반드시 속성이 있어야 한다.
6) 다른 엔티티와 최소 1개 이상의 관계가 필요. ( 예외 : 공통 코드, 통계성 엔티티)
엔티티 분류
1) 기본 엔티티 : 그 업무에 원래 존재하는 정보, 타 엔터티의 부모 역할, 자신의 고유한 주식별자 가짐 ex)사원,부서
2) 중심 엔티티 : 기본 엔티티로부터 발생, 다른 엔터티와의 관계로 많은 행위 엔터티 생성 ex)계약, 사고, 주문
3) 행위 엔티티 : 2개 이상의 부모엔티티로부터 발생, 자주 바뀌거나 양이 증가 ex)주문목록, 사원변경이력
엔터티 명명
1) 현업 업무에서 사용하는 용어 사용
2) 약어 사용 하지 않기
3) 단수명사 사용
4) 유일하게 이름이 부여
5) 엔터티 생성의미대로 이름을 부여.
속성 (attribute) 란?
의미상 더 이상 분리 되지 않는 최소의 데이터 단위
속성의 특징
1) 엔티티에 대한 자세하고 구체적인 정보를 나타냄
2) 하나의 엔티티는 두개 이상의 속성을 가짐
3) 속성은 각각 하나의 속성값만 가질 수 있다.
4) 속성도 집합이다.
속성의 특성에 따른 분류
1) 기본 속성 : 업무로부터 추출한 모든 일반적인 속성
2) 설계 속성 : 업무를 규칙화하기 위해 새로 만들거나 변형, 정의하는 속성 ex)일련번호
3) 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성, 빠른 성능을 낼 수 있도록 원래 속성의 값을 계산 ex)합
도메인
각 엔터티의 속성에 대해서 어떤 유형의 값이 들어가는지, 그 값의 범위를 저장.
데이터 모델링 관계
-
데이터 모델링 관계 : ERD에서는 관계를 연결 할 때 관계와 행위에 의한 관계로 구분 되지만, 단일화 된 표기. 관계명, 관계차수, 선택성 개념 사용
-
UML (Unified Modeling Language) : 연관관계와 의존관계가 있고 실선과 점선의 표기법으로 다르게 표현
관계의 표기법
1) 관계명(Membership) : 관계의 이름
2) 관계차수(Cardinality) : 1:1, 1:N, M:N 관계
3) 관계선택사양(Optionality) : 필수관계인지 선택관계인지
두개의 엔티티 사이에서 관계 도출 시
1) 두 개의 엔터티 사이에 관심있는 연관규칙이 존재
2) 두 개의 엔터티 사이의 정보의 조합이 발생
3) 업무기술서, 장표에 관계연결에 대한 규칙 서술
4) 업무기술서, 장표에 관계연결을 가능하게 하는 동사 존재
주식별자 / 보조식별자
주식별자
- 엔터티 내 각 어커런스를 구분 할 수 있는 구분자. 타 엔터티와 참조관계를 연결 가능한 식별자
1) 주식별자에 의해 엔터티 내의 모든 인스턴스들이 유일하게 구분 되어야 한다.
2) 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
3) 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
4) 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
보조식별자
- 엔터티 내에서 각 어커런스를 구분 할 수 있는 구분자지만, 대표성을 가지지 못해 참조관계 연결 불가
내부식별자 vs 외부식별자
내부 식별자
- 엔터티 내부에서 스스로 만들어지는 식별자
외부 식별자
- 타 엔터티와 관계를 통해 타 엔터티로부터 받아오는 식별자
단일식별자 vs 복합 식별자
단일 식별자
- 하나의 속성으로 구성된 식별자
복합 식별자
- 둘 이상의 속성으로 구성된 식별자
본질식별자 vs 인조 식별자
본질 식별자
- 원래 업무적으로 의미가 있던 것으로, 업무에 의해 만들어지는 식별자
인조 식별자
- 업무적으로 만들어지지는 않았지만, 원조 식별자가 복잡한 구성을 가지고 있어서 인위적으로 만든 식별자
식별자 선정
-
이름으로 기술되는 것은 주식별자로 지정하기에 적합X. 동명 이인 가능성도 있어 특히 사람 이름은 금지
-
해당 업무에서 자주 사용되는 속성을 주식별자로
-
복합으로 주식별자로 구성시 너무 많은 속성이 포함되지 않도록.
-
자주 수정되는 속성은 별로.
식별자 관계 vs 비식별자 관계
식별자 관계
1) 목적 : 강한 연결 관계 표현
2) 자식 주식별자 영향 - 자식 주식별자의 구성에 포함
3) 표기법 - 실선 표현
4) 연결 고려사항
-
반드시 부모엔터티 종속
-
자식 주식별자 구성에 부모 주식별자 포함 필요
-
상속받은 주식별자속성을 타 엔터티에 이전 필요
비식별자 관계
1) 목적 : 약한 연결관계 표현
2) 자식 주식별자 영향 : 자식 일반 속성에 포함
3) 표기법 : 점선 표현
4) 연결 고려사항
- 약한 종속 관계
- 자식 주식별자구성을 독립적으로 구성
- 자식 주식별자구성에 부모 주식별자 부분 필요
- 부모쪽의 관계참여가 선택관계
끝
ps
다음은 데이터 모델과 성능으로..
시험은 6.8일인데 갑자기 예비군이 6.3,4,5,7 일에 잡히는 기염을 토하여,..
하루에 최소 1파트 이상 요약을 하려 합니다….
남은것은 - 데이터 모델과 성능 - SQL 기본 - SQL 활용 - SQL 최적화 기본