1. 데이터모델링의 특징
• 추상화(현실세계 -> 데이터베이스에서 표현)
• 단순화: 제한된 표기법
• 명확화: 애매모호함 제거
2. 데이터 모델링 단계
• 개념적 모델링: 핵심 엔터티 도출. 높은 추상화. ERD 작성
• 논리적 모델링: 어떤 데이터베이스 이용하는지 결정. 세부속성. 식별자. 관계 표현
정규화 완료. 재사용성 높음
• 물리적 모델링: 실제적으로 사용. 저장을 고려한 설계. 추상화 수준 가장 낮음.
3. 데이터 모델링 3가지 관점
• 데이터 관점: 구조분석, 정적분석
• 프로세스 관점: 시나리오분석, 도메인분석, 동적분석
• 데이터 프로세스의 상관 관점: CRUD (Create, Read, Update, Delete)
(업무의 처리)
4. 데이터 모델링을 위한 ERD (Entity Relationship Diagram)
: 데이터베이스를 표현한 다이어그램 (관계도)
: 대표적인 표기법 - Chen, IE 방식, Barker, UML
• ERD 작성 순서
o 엔터티 도출
o 엔터티 배치
o 엔터티 관계 설정
o 관계명 기술
o 관계 참여도 기술
o 관계 필수 여부 기술
5. 3단계 구조 스키마
• DB의 독립성을 위해 3단계 구조가 있음
• 3단계: 사용자(외부), 설계자(내부), 개발자(개념)
• 각 계층을뷰라고 함
6. 3단계 구조 특징
• 외부스키마: 응용프로그램으로 접근
• 개념스키마(일반적인 스키마): 관리자의 관점으로 규칙과 구조 표현
• 내부스키마: 설계자 관점.. 어떻게 저장? 어떻게 관리? 하는 관점
7. 엔터티
• 데이터의 집합
• 저장되며 관리되는 데이터
• 개념/사건/장소 등의 명사
• 유형과 무형에 따른 분류
o 유형: 사원, 제품, 교수 등
o 개념: 제목, 강의, 부서, 금융상품 등
o 사건: 구매, 판매, 영업, 수납 등
• 발생 시점에 따른 엔터티 분류
o 기본 엔터티: 키엔터티. 독립적으로 생성 및 관리(고객, 부서, 판매제품…)
o 중심 엔터티: 기본 엔터티부터 발행되는 행위 엔터티를 생성하는 중간 엔터티(계좌, 주문, 수납 등)
o 행위 엔터티: 상위에 있는 2개 이상의 엔터티로부터 발생되는 엔터티(주문이력, 접속입력, 수납이력 등)
8. 속성 (Attribute)
• 엔터티가 가지는 항목 [ex) 책(엔터티) - 제목, 저자…(속성)]
• 속성은 분리되지 않음 (제목이 2개일 순 없음)
• 업무에 필요한 데이터만
• 가장 최소의 데이터 단위
• 속성의 특징
o 업무에서 관리되는 정보
o 하나의 값만 가짐
o 주식별자에 함수적으로 종속. 기본키에 따라 속성의 값도 변경
• 특성에 따른 속성의 종류
o 기본속성: 비즈니스 프로세스에서 도출된 본래의 속성 (책 제목, 저자 등 안 바뀌는 요소)
o 설계속성: 모델링 과정에서 발생되는 속성 (바뀔수 있음.상품코드, 지점코드 등)
o 파생속성: 다른 속성에 의해 만들어지는 속성 (판매량, 평단가 등)
9. 관계의 개념
• 엔터티 간 논리적인 연관성, 엔터티의 정의에 따라 영향을 받을 수 있음
10. 관계의 분류: 존재에 의한 관계(부서-사원), 행위에 의한 관계(고객-주문)
11. 관계의 표기법
• 관계명
o 관계에 엔터티(부서, 사원)가 참여하는 행태 정의
o 각 두개의 명을 가진다 (부서: 포함한다 - 사원: 소속된다)
o 능동적 또는 수동적으로 명명
o 현재형 동사로 표현
• 관계차수
o 1:1, 1:M (부서, 사원), M:N (고객, 주문상품)
• 관계선택사양: 필수관계, 선택관계
o 엔터티가 관계에 있어 항상 참여하는지, 선택적으로 참여하는지
o 선택관계는 IE 표기법에서는 동그라미로, Barker 표기법에서는 점선으로 표현
12. 식별자 개념
• 엔터티를 대표하는 속성 [ex) 고객번호. 고객명은 중복될 수 있기 때문]
• 하나의 엔터티는 반드시 하나의 유일한 식별자를 갖고 있어야 함
13. 식별자 특징
• 엔터티 내 각 인스턴스를 유일하게 구분할 수 있는 구분자
• 다른 엔터티와 관계를 연결하는 식별자 [ex. 테이블1: 고객번호 - 성명, 테이블2: 고객번호 - 대여금]
• 주식별자 특징: 유일성, 최소성, 불변성, 존재성
o 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
o 존재성: NULL 값이면 안됨
14. 키의 종류 (ex. 학번, 과명, 주민번호, 번호, tel, 이름)
• 기본키: 후보키 중에서 엔터티를 대표할 수 있는 키 (학번)
• 후보키: 유일성과 최소성을 만족하는 키 (학번, 주민번호)
• 슈퍼키: 유일성은 만족. 최소성은 만족하지 않음. (과명+전화번호 합친것 tag)
• 대체키: 여러 개의 후보키 중에서 기본키를 선정하고 남은 키 (주민번호)
• 외래키: 타 테이블의 기본키 핑드를 가리키는 것으로, 참조무결성을 확인하기 위해 사용되는 키
(ex 학생 기본테이블_학번 - 학교 도서관테이블_학번)
15. 식별자 분류
• 내부식별자: 엔터티 내부에서 스스로 생성되는 식별자
• 외부식별자: 다른 엔터티와 관계로 인해 만들어진 식별자(학생- 도서관 책 대여)
• 단일 식별자: 하나의 속성으로 구성
• 복합 식별자: 다수의 속성으로 구성[ex. 과명+번호, 학생-대여]
• 본질식별자: 비즈니스 프로세스에서 만들어지는 식별자
• 인조식별자: 인위적으로 만들어진 식별자 (로그기록, 순번 등)
16. 주식별자 도출방법
• 해당 업무 및 데이터에서 주로 사용되는 속성을 주식별자로 지정 (공공기관 - 주번, 학교 - 학번)
• 이름, 길이가 일정하지 않은 내용 등은 지정하지 X
• 복합키를 구성할 땐 너무많은 속성을 포함시키지 마 (최소한으로)
17. 식별자 관계와 비식별자 관계 [ex. 학생테이블 - 도서관 대여테이블]
• 강한 관계: 부모 엔터티의 주식별자가 자식 엔터티의 주식별자로 상속되는 경우
o 학생테이블 주식별자를 대여테이블의 주식별자로 사용
• 약한 관계: 부모 엔터티의 주식별자가 자식 엔터티의 일반 속성으로 상속되는 경우
o 순번(1,2,3…) 등 인조식별자를 주식별자로 쓰고, 학생테이블의 주식별자를 일반 속성으로 사용
'SQL > SQLD 공부' 카테고리의 다른 글
[SQLD 공부] 2과목_SELECT 문 등 (0) | 2024.08.07 |
---|---|
[SQLD 공부] 2과목_관계형 데이터베이스 개요 (0) | 2024.08.01 |
[SQLD 공부] 1과목_데이터 모델과 SQL (0) | 2024.07.11 |
댓글