001 데이터 모델링의 이해
1 데이터 모델링
2 데이터 모델링의 특징
추상화단순화/명확하 되야한다.
추상화 : 현실 세계를 간략하게 표현한다.
단순화 : 누가나 쉽게 이해할 수 있도록 표현한다.
명확성 : 의미가 해석되어야 하고 한 가지 의미를 가져야 한다.
3 데이터 모델링 단계
(1) 개념적 모델링
- 업무 전체 대해서 데이터 모델링 수행 / 중요한 부분을 위주로 모델링
- 기술적인 용어 쓰지 않는다. / 엔티티와 속성을 도출하고 개념적 ERD를 작성한다.
(2) 논리적 모델링
- 개념적 모델링을 논리적 모델링으로 변환
- 필요한 모든 릴레이션을 정의
- 정규화를 수행해서 데이터 모델의 독립성을 확보함
(3)물리적 모델링
- 데이터에비이스를 실제 구축(테이블, 인덱스, 함수 등을 생성), 성능, 보안, 가용성을 고려해서 구축
- 데이터 모델링 단계
- 개념적 모델링
- 전사적 관점에서 모델링,, 추상화 수준이 가장 높은 수준의 모델링 / 업무 측면에서 모델링
- 논리적 모델링
- 특정 데이터베이스 모델에 종속, 관계 속성등을 모두 표현함. / 정규화를 통해서 재사용성을 높인다.
- 물리적 모델링
-
구축할 데이터베잇으 관리 시스템에 테이블, 인덱스 등을 생성하는 단계
-
성능, 보안, 가용성 등을 고려하여 데이터베이스를 구축함.
-
데이터 모델링 관점
- 데이터
- 비즈니스 프로세스에서 사용되는 데이터 / 구조 분석 & 정적 분석
- 프로세스
- 시나리오 분석, 도메인 분석, 동적 분석
- 데이터 와 프로세스
- 프로세스와 데이터 간의 관계, CRUD(Create, Read, Update, Delete) 분석
4 데이터 모델링을 위한 ERD(Entity Relationship Diagram)
- 엔티티와 엔티티 간의 관계를 정의하는 모델링 방법이다.
(1) ERD 작성 절차
- 엔티티를 도출하고 그린다.
- 엔티티를 배치한다. (엔티티를 도출한 후 엔티티 배치, 중요한 데이터를 왼쪽 상단에 배치)
- 엔티티 간의 관계를 설정한다.
- 관계명을 서술한다. (엔티티 간의 어떤 행위나 존재가 있는지 표현)
- 관계 참여도를 표현한다 (엔티티간의 참여하는 관계수)
- 관계의 필수 여부를 표현한다. (필수는 반드시 존재해야 하는 것, 필수는 작대기 표시)
(4) ERD 작성 시 고려사항
- 중요한 엔티티를 가급적 왼쪽 상단에 배치,
- 이해가 쉽고 복잡하지 않아야 함
5 데이터 모델링 고려사항
(1) 데이터 모델의 독립성
- 독립성이 확보된 모델은 고객의 업무 변화에 능동적으로 대응
- 독립성을 확보하기 위해서는 중복된 데이터를 제거해야 한다.
- 데이터 중복을 제거하는 방법이 바로 정규화이다.
(2) 고객 요구사항의 표현
- 고객과 데이터 모델러 간에 의사소통을 할 수 있어야 하므로, 고객의 요구사항을 간결하고 명확하게 표현해야 한다.
(3) 데이터 품질 확보
- 데이터베이스 구축 시에 데이터 표준을 정의하고 표준 준수율을 관리해야 한다.
- 데이터 표준을 확보해야 데이터 품질을 향상시킬 수 있다.
002 3층 스키마
1 3층 스키마
-
사용자,설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들간의 관게를 ANSI 표준이다.
-
3층 스키마는 데이터 베이스의 독립성을 확보하기 위한 방법이다.
-
데이터 복잡도 감소, 데이터 중복 제거, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용 절감 등의 장점 갖음
-
3단계 계층으로 분리해서 독립성을 확보하는 방법으로 각 계층을 뷰라고 한다.
-
3층 스키마의 독립성
- 논리적 독립성 : 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것이다.
- 물리적 독립성 : 내부 스키마가 변경되더라도 개념스키마가 영향을 받지 않는 것이다.
2 3층 스키마 구조
외부 스키마
개념 스키마
내부 스키마
- 3층 스키마의 구조
- 외부 스키마
-
사용자 관점, 업무상 관련이 있는 데이터 접근이다.
-
관련 데이터베이스의 뷰를 표시한다.
-
응용 프로그램이 접근하는 데이터베이스를 정의한다.
- 개념 스키마
-
설계자 관점, 사용자 전체 집단의 데이터베이스 구조이다.
-
전체 데이터베이스 내의 규칙과 구조를 표현한다.
-
통합 데이터베이스 구조이다.
- 내부 스키마
-
개발자 관점, 데이터베이스의 물리적 저장 구조이다.
-
데이터 저장구조, 레코드 구조, 필드 정의, 인덱스 등을 의미한다.
003 엔티티(Entity)
1 엔티티(Entity)
- 엔티티는 업무에서 관리해야 하는 데이터의 집합을 의미, 저장되고 관리되어야 하는 데이터
- 엔티티는 개념, 사건, 장소 등의 명사
2 엔티티 도출
- 엔티티는 고객의 비즈니스 프로세스에서 관리되어야 하는 정보를 추출해야 함.
3 엔티티 특징
- 식별자 : 엔티티는 유일한 식별자가 있어야 한다.
- 인스턴스 집합 : 2개 이상의 인스턴스가 있어야 한다.
- 속성 : 엔티티는 반드시 속성을 가지고 있다.
- 관계 : 엔티티는 다른 엔티티와 최소한 한 개 이상 관계가 있어야 한다.
- 업무 : 엔티티는 업무에서 관리되어야 하는 집합이다.
릴레이션과 테이블, 인스턴스
-
릴레이션과 테이블은 같은 의미라고 해석하면 된다. 릴레이션에 기본키 및 제약조건을 설정하면 테이블이 된다.
-
인스턴스는 릴레이션이 가질 수 있는 값을 의미함. (행의 수)
4 엔티티 종류
-
엔티티의 종류는 유형과 무형에 따른 종류 엔티티가 발생하는 시점에 따른 종류로 나누어진다.
-
엔티티를 유형과 무형으로 분류하는 기준은 물리적 형태의 존재 여부이다.
-
유형과 무형에 따른 엔티티 종류
- 유형 엔티티 : 지속적으로 사용되는 엔티티
- 개념 엔티티 : 물리적형태가 없음. 개념적으로 사용되는 엔티티)
- 사건 엔티티 : 비즈니스 프로세스를 실행하면서 생성되는 엔티티
- 발생 시점에 따른 엔티티 종류
- 기본 엔티티 : 키 엔티티 / 독립적으로 생성되는 엔티티 (고객, 상품, 부서)
- 중심 엔티티 : 기본 엔티티와 행위 엔티티 간의 중간에 있는 것./ 기본 엔티티로부터 발생되고, 해우이 엔티티를 생성하는 것(게좌, 주문, 취소, 체결)
- 행위 엔티티 : 2개 이상의 엔티티로부터 발생 ( 주문 이력, 체결 이력)
004 속성(Attribute)
1 속성(Attribute)
- 속성이라는 것은 업무에서 필요한 정보인 엔티티가 가지는 항목
- 속성은 더 이상 분리되지 않는 단위, 업무에 필요한 데이터를 저장함.
- 인스턴스의 구성요소이고 의미적으로 더 이상 분해되지 않는다.
2 속성의 특징과 종류
(1) 속성의 특징
- 속성은 업무에서 관리되는 정보이다.
- 속성은 하나의 값만 가진다.
- 주식별자에게 함수적으로 종속.
(2) 속성의 종류
- 분해 여부에 따른 속성의 종류
- 단일 속성 : 하나의 의미로 구성된 것
- 복합 속성 : 여러 개의 의미가 있느 ㄴ것
- 다중값 속성 : 속성에 여러 개의 값을 가질 수 있는 것 (상품 리스트)
- 특성에 따른 속성의 종류
- 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성
- 설계 속성 : 데이터 모델링 과정에서 발생되는 속성 / 유일 한 값을 부여
- 파생 속성 : 다른 속성에 의해서 만들어지는 속성
005 관계(Relationship)
1 관계(Relationship)
- 엔티티 간의 관련성을 의미, 존재 관계와 행위 관계로 분류
- 존재 관계 : 두 개의 엔티티가 존 재 여부의 관계가 있는 것
- 행위 관계 : 두 개의 엔티티가 어떤 행위에 의한 관련성이 있는 것
2 관계의 종류
(1) 존재 관계
- 엔티티 간의 상태를 의미함.
(2) 행위 관계
- 엔티티 간에 어떤 행위가 있는 것으로 계좌를 사용해서 주문을 발주하는 관계가 만들어지는 것과 유사함
3 관계 차수(Cardinality)
(1) 관계 차수 (Relation Cardinality)
- 관계 차수는 두 개의 엔티티 간에 관계에 참여하는 수를 의미함.
- 필수는 작대기, 선택은 동그라미, N 관계는 삼지창
(2) 관계 차수의 종류
- 1대 1 관계 : 완전 1대1 관계 , 선택적 1대 1 관계
- 1대 N 관계 : 엔티티에 행이 하나 있을 떄 다른 에티티티의 값이 여러 관계 있는 경우
- M대 N 관계 : 두개의 엔티티가 서로 여러개의 관계 (과목과 학생간의 관계) → 1대 N , N대 1로 해소해야 함
4 식별 관계와 비식별 관계
(1) 식별 관계(Identification Relationship)
- 강한 개체는 어떤 다른 엔티티에게 의존하지 않고 독립적으로 존재 / 다른 엔티티와의 관계를 가질 때 다른 엔티티에게 기본키를 공유 / 식별 관계로 표현됨
- 고객 엔티티의 기본 키인 회원ID를 계좌 엔티티의 기본키의 하나로 공유하는 것
- 강한 개체의 기본키 값이 변경되면 식별 관계에 있는 엔티티의 값도 변경
(2) 비식별 관계(Non-Identification Relationship)
- 비식별 관계는 강한 개체의 기본키를 다른 엔티티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것이다.( 이경우 점선으로 넣는다.)
006 엔티티 식별자(Entity Identifier)
- 식별자라는 것은 엔티티를 대표할 수 있는 유일성을 ㅁ나족한느 속성
1 주식별자(기본키, Primary Key)
-
최소성 / 대표성/ 유일성 / 불변성
-
키의 종류
- 기본키 : 엔티티를 대표할 수 있는 키
- 후보키 : 유일성과 최소성을 만족하는 키
- 슈퍼키 : 유일성은 만족하지만 최소성을 만족하지 않는 키
- 대체키 : 여러 개의 후보 키 중에서 기본키를 선정하고 남은 키
- 외래키 : 다수의 다른 테이블의 기본 키 필드를 가리키는 것 - 참조 무결성을 확인하기 위해서 사용되는 키
2 식별자의 종류
- 식별자는 대표성, 생성 여부, 속성의 수, 대체 여부로 분류된다.
(1) 식별자의 대표성
- 주식별자는 엔티티를 대표할 수 있는 식별자.
- 대표성 여부에 따른 식별자의 종류
- 주식별자 : 엔티티를 대표하는 식별자, 다른 엔티티와 참조 관계로 연결될 수 있음
- 보조 식별자 : 대표성ㅇ르 만족하지 못하는 식별자
(2) 생성 여부
- 생성 여부에 따른 식별자의 종류
- 내부 식별자 : 내부 식별자는 엔티티 내부에서 스스로 생성되는 식별자
- 외부 식별자 : 다른 엔티티와의 관계로 인하여 만들어지는 식별자
(3) 속성의 수
- 속성의 수에 따른 식별자의 종류
- 단일 식별자 : 하나의 속성으로 구성됨.
- 복합 식별자 : 두 개 이상의 속성으로 구성됨
(4) 대체 여부
- 대체 여부에 따른 식별자의 종류
- 본질 식별자 : 비즈니스 프로세스에서 만들어지는 식별자
- 인조 식별자 : 인위적으로 만들어지는 식별자
'Develope_MySQL' 카테고리의 다른 글
[SQLD] SQL D 정리 - 데이터 모델링의 이해 -2 (0) | 2021.02.08 |
---|