일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 데이터베이스
- AWSCloudPractitioner
- SQLD
- 파이썬
- RDBMS
- 클라우드컴퓨팅
- 쉘스크립트
- 코딩테스트
- SQL
- 클라우데라자격증
- programmers
- sql자격증
- 빅데이터
- hive
- 하둡
- AWS자격증
- 클라우드자격증
- IAM
- CCAAdministrator
- mysql
- 프로그래머스
- CCA131
- Multi Factor Authentication
- hadoop
- CLF-01
- EC2
- MFA
- 빅데이터실무자격증
- 리눅스
- Identity and access management
- Today
- Total
Sherry IT Blog
[SQLD 핵심 요약] 데이터모델링의 이해 본문
*데이터 모델링
-정보시스템을 구축하기 위한 데이터 관점의 업무 분석기법
-현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
-데이터 베이스를 구축하기 위한 분석/설계 과정
-단순화,명확화,추상화 > 3대 특징
*데이터 모델링이 중요한 이유 3가지
1. 파급효과(Leverage) : 불가피한 상황에 데이터 모델에 따른 구조변경이 일어날 수 있기 때문에 중요한 데이터 설계과정
2.간결한표현(Conciseness) : 복잡한 정보 요구사항을 정확하고 간결하게 표현되어야 한다
3.데이터품질(Data Quality) : 데이터 구조, 중복데이터, 데이터 구조의 비즈니스 정의의 불충분 등 여러 문제로 인한 문제가 대두될 수 있다
*데이터 모델링할 때 유의해야할 점
1. 중복(저장공간 주의)
2.비유연성 (데이터의 정의를 데이터의 사용 프로세스와 분리로 해결)
3.비일관성(중복이 없더라도 비일관성 발생하기 때문에 데이터 간 상호 연관 관계에 대한 명확한 정의 필요)
*데이터 모델링 3단계
개념적 데이터 모델링 | 논리적 데이터 모델링 | 물리적 데이터 모델링 |
추상화 수준 ▲ 포괄적인 수준,전사적 데이터 모델링 |
구체적 key,속성,관계 등을 정확하게 표현 재사용성이 높다 |
구체적 ▲ 실제 DB에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려 |
*프로젝트 생명주기(Life Cycle)에서 데이터 모델링
분석 ► 설계 ► 개발 ► 테스트 ►전환 / 이행
*분석단계에서 개념적 데이터 모델링 , 논리적 데이터 모델링
*설계단계에서 물리적 데이터 모델링
* 데이터 독립성 <> 데이터 종속성
*데이터 독립성이 필요한 이유
-증가하는 유지보수 비용 절감
-증가하는 데이터 복잡도 낮추기
-증가하는 데이터 중복 낮추기
-낮은 요구사항 대응
*데이터 독립성을 확보하면 얻게 되는 효과
-각 view의 독립성을 유지하고 계층별 view에 영향을 주지 않고 변경 가능
-단계별 schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 정의
*데이터베이스 3단계 구조
-데이터독립성 모델을 위한 3단계 구성
외부스키마 (External Schema) |
개념스키마 (Conceptual Schema) |
내부스키마 (Internal Schema) |
개개 사용자 단계로 사용가자 보는 개인적DB스키마 - 사용자 관점 접근 특성에 따른 스키마구성 |
사용자 관점을 통합한 조직 전체의 DB를 기술 -통합관점 |
내부단계,내부스키마로 구성,DB가 물리적으로 저장된 형식 -물리적 저장구조 |
*ERD작성 순서
엔터티 도출 ► 엔터티 배치 ► 엔터티 관계 설정 ► 관계명 기술 ► 관계 참여도 기술 ►관계 필수여부 기술
===============================================
*엔터티의 개념(Entity)
-변별할 수 있는 사물 >peter chen(1976)
-데이터베이스 내에서 변경 가능한 객체 > C.J Date(1986)
-정보를 저장할 수 있는 어떤 것 > James Martin(1989)
-정보가 저장될 수 있는 사람,장소,물건 사건 그리고 개념 등 > Thomas Bruce (1992)
-엔터티는 사람,장소,물건,사건,개념 등의 명사에 해당한다
-엔터티는 업무상 관리가 필요한 관심사에 해당한다.
-엔터티는 저장이 되기 위한 어떤 것(Thing)이다.
-인스턴스의 집합(인스턴스 : 엔터티의 하나의 값에 해당)
*엔터티의 일반적인 특징
- 다른 엔터티와 최소 한 개 이상의 관계를 가져야 한다.
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 엔터티는 업무 프로세스에 의해 이용되어야 한다.
- 엔터티는 반드시 속성을 포함해야 한다.
- 영속적으로 존재하는 인스턴스의 집합이어야한다.(두 개 이상)
*발생시점에 따른 엔터티 분류
1) 기본엔터티
-그 업무에 원래 존재하는 정보, 다른엔터티와 관계에 의해 생성되지 않고 독립적으로 생성 가능
- 자신의 고유한 주식별자를 가지게됨
ex) 사원,부서,고객,상품,자재
2) 중심엔터티
- 기본엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할을 함
- 데이터양이 많이 발생되고, 다른 엔터티와의 관계를 통해 많은 행위엔터티를 생성
ex) 계약,사고,예금원장,청구,주문,매출
3) 행위엔터티
-두 대 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가된다.
ex) 주문목록,사원변경이력
*속성(Attribute)
- 엔터티에 대한 자세하고 구체적인 정보를 나타냄
- 하나의 엔터티는 두개 이상의 속성을 갖는다.
- 한 개의 속성은 한개의 속성 값을 갖는다
- 속성도 집합이다.
- 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 단위
*속성의 특성에 따른 분류
- 기본속성 : 원래 가지고 있어야 하는 속성, 업무로 부터 추출한 모든 속성
- 설계속성 : 원래 존재하지 않지만 필요에 의해 설계자가 추가한 속성( 코드성 데이터, 일련번호)
- 파생속성 : 다른 속성의 영향을 받아 발생하는 속성, 계산된 값, 합계
*도메인(Domain)
-속성의 범위 , 각 엔터티(테이블)의 속성에 대해 어떤 유형의 값이 들어가는지를 정의하는 개념
- 즉, 엔터티 내에서 속성에 대한 데이터 타입, 크기, 제약사항을 지정함
*속성의 명칭 부여
- 해당 업무에서 사용하는 이름을 부여한다.
- 서술식 속성명은 사용하지 않는다.
- 약어 사용은 가급적 제한한다.
- 전체 데이터 모델에서 유일성을 확보하는 것이 좋다
*관계(Relationship)
- 엔터티의 인스턴스 사이의 논리적인 연관성으로 조냊의 형태로서나 행위로서 서로에서 연관성이 부여된 상태
- 존재적 관계 : ex) 부서와 사원 엔터티 간 '소속' 관계
- 행위적 관계 : ex) 주문과 배송 엔터티 간 '배송 근거' 관계
*관계의 표기법
- 관계명 : 관계의 이름
- 관계차수 : 1:1, 1:M, M:N ► Relationship Cardinality
- 관계 선택사양 : 필수관계, 선택관계
===============================================
*식별자의 종류
1. 엔터티내에서 대표성을 가지는지에 따라 ► 주식별자,보조식별자
2.엔터티내에서 스스로 생생되어있는지 ► 내부식별자, 외부식별자
3.단일속성으로 식별이 되는가에 따라 ► 단일식별자, 복합식별자
4.원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분에 따라
► 본질식별자,인조식별자
*주식별자(Primary Identifier)
-엔터티 내에서 대표성을 가지는 주식별자
-주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야한다.
-주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야한다.
-지정된 주식별자이 값은 자주 변하지 않는 것이어야 한다,
-주식별자가 지정이 되면 반드시 값이 들어와야한다.
*주식별자의 특징
- 유일성 : 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야함
- 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
- 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재해야 함(NOT NULL)
*식별자와 비식별자 관계 비교
항목 | 식별자 관계 | 비식별자 관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함 | 자식 일반 속성에 포함 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 |
- 반드시 부모엔터티 종속 -자식 주식별자구성에 부모 주식별자포함 필요 -상속받은 주식별자속성을 타 엔터티에 이전필요 |
-약한 종속관계 -자식 주식별자구성을 독립적으로 구성 -자식 주식별자구석에 부모 주식별자 부분필요 -상속받은 주식별자속성을 타 엔터티에 차단 필요 -부모쪽의 관계참여가 선택관계 |
'DataBase > SQLD' 카테고리의 다른 글
[SQL 핵심요약] SQL 활용 (0) | 2021.03.20 |
---|---|
[SQLD 핵심 요약] 데이터 모델과 성능 (0) | 2021.03.19 |
[SQL 핵심요약] SQL 기본 (2) | 2021.03.19 |