2023. 3. 15. 10:51ㆍSQLD 정리
데이터 모델링 특징
- 추상화 : 현실세계를 일정한 형식에 맞춰 표현하기 위함
- 정확화 : 누구나 이해할 수 있도록 현상을 기술
- 단순화 : 복잡한 현실을 이해하기 쉽게 제한된 언어와 표기법으로 단순하게 표현하기 위함
>>> 현실세계를 단순하게 추상화하여 정확하게 공유하는 작업이 데이터 모델링
- 정보시스템을 구축하기 위한 업무 분석 기법
- 현실세계의 데이터에 대해 약속된 표기법으로 표현
- 데이터베이스를 구축하기 위한 분석과 설계를 위한 과정
데이터 모델링 유의사항
- 중복성 : 중복을 최소화해야 함(같은 정보를 여러번 저장하는 것을 피해야함)
- 비유연성 : 데이터 또는 프로세스의 변화가 데이터베이스에 중대한 변화를 초래하지 않도록 유연하게 관리해야 함
- 비일관성 : '약속된 표기법'을 준용하는 등 업무를 명확하게 정의해서 정보 관리의 일관성을 최대화 해야함
데이터 모델링의 단계
- 개념적 데이터 모델링 : 추상화 수준이 높음, 전사적 모델링 시 많이 함, 포괄적 수준의 모델링
- 논리적 데이터 모델링: KEY 속성, 관계 등을 정확히 기술하는 모델링
- 물리적 데이터 모델링 : 실제로 데이터 베이스에 이식 가능하도록 저장, 성능 등 물리적인 특성을 고려한 모델링
데이터베이스 스키마 구조 3단계
- 외부 스키마 : [사용자 관점] 프로그램을 사용하는 사용자 관점에서 데이터베이스를 정의하는 구조
- 개념 스키마 : [통합 관점] 모든 사용자의 관점을 통합한 조직 전체의 관점의 통합적 데이터 베이스 구조
- 내부 스키마 : [개발자 관점] 어떤 데이터를 어떻게 저장할 것인지 데이터베이스의 물리적 저장 구조
참고) 스키마 : 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 그리고 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의를 말하고 사용자의 관점에 따라 외부스키마, 개념스키마, 내부스키마가 있다.
데이터의 구성
엔티티
- 해당 업무에서 필요하고 관리해야하는 정보여야 한다
- 유일한 식별자에 의해 식별이 가능해야 함
- 하나의 엔티티는 반드시 두개 이상의 인스턴스를 가져야한다.
- 하나의 엔티티는 반드시 속성이 2개 이상 있어야 함
- 하나의 엔티티는 반드시 다른 엔티티와 1개 이상의 관계가 있어야 함(통계성, 코드성 엔티티 제외)
발생시점에 따른 엔터티 분류
- 기본엔티티 : 독립적 생성되는 엔터티
- 중심엔터티 : 기본 엔터티로부터 발생하고 행위 엔터티를 생성함
- 행위엔터티 : 기본, 중심 엔터티 등 2개 이상의 엔터티로부터 발생함
물리적 형태에 따른 엔터티 분류
- 유형 엔터티 : 물리적 형태가 있는 엔터티 EX) 고객, 상품, 부서
- 개념 엔터티 : 물리적 형태는 없지만 관리해야하는 개념적 정보 EX) 주문, 계좌
- 사건 엔터티 : 비즈니스 프로세스 중 생기는 엔터티 EX) 주문이력, 체결이력
속성
- 인스턴스에서 관리하고자 하는 의미가 더 이상 분리되지 않는 최소의 데이터 단위
- 1개의 속성은 1개의 속성값을 가진다
- 기본속성/ 설계속성/ 파생속성
> 설계속성 : 코드성 칼럼, 일련번호 등 규칙화를 위한 속성 EX) 회원번호, 상품번호
> 파생속성 : 계산된 값(테이블 내에 적을수록 좋음) EX) 총 가격, 점수 평균
> 기본속성 : 업무상 바로 정의가 가능한 속성 EX) 상품명, 가격
도메인
- 각 속성이 가질 수 있는 값의 범위를 속성의 도메인이라고 한다.(데티어타입, 크기, 제약사항 등 지정)
관계
- 하나의 엔티티는 반드시 다른 엔티티와 1개 이상의 관계가 있어야 함(통계성, 코드성 엔티티 제외)
- 관계의 구분 : 행위에 위한 관계, 존재에 의한 관계
>> ERD 에서는 두 관계를 구분없이 동일한 표기법으로 표현함
ERD(Entity -Relationship Model)
ERD 작성 순서
1) 엔티티 도출 & 그리기
2) 엔티티 배치(가장 중요한 엔티티를 조측 상단에 배치, 추가 발생하는 엔티티는 우측과 하단에 배치
3) 엔티티 간의 관계를 설정
4) 엔티티 간의 관계명 기술
5) 관계의 참여도 기술( 1:1, 1:N, M:N )
6) 관계의 필수여부 기술(필수적 관계 : | , 선택적 관계 : O)
ERD 식별관계와 비식별관계
- 식별관계 : 부모 엔티티의 기본키를 자식 엔티티의 기본키 중 하나로 공유(실선으로 표시, 강한 연결관계)
- 비식별관계 : 부모 엔티티의 기본키를 자식 엔티티의 기본키로 갖는 것이 아닌, 일반 컬럼으로 참조(점선으로 표시, 약한 연결관계)
식별자 구분
-대표성 여부
> 주식별자 : 유일성, 대표성, 최소성을 만족하는 식별자이며 타 엔티티와 참조관계로 연결될 수 있다.
> 보조식별자 : 유일성, 최소성은 만족하지만 대표성을 갖지 못하는 식별자
참고)
유일성 : 주식별자에 의해 엔티티 속 모든 인스턴스들이 유일하게 구분될 수 있어야 함
최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
불변성 : 지정된 주식별자의 값은 자주 변하지 않는 것이어야 함
존재성 : 주식별자가 지정되면 반드시 값이 있어야 함(not null)
- 속성의 수
> 단일 식별자 : 1개의 속성
> 복합 식별자 : 2개 이상의 속성으로 구성된 식별자
-스스로 생성 여부
> 내부 식별자 : 엔티티 내에서 생성된 식별자
> 외부 식별자 : 타 엔티티와의 관계를 통해 받아오는 식별자(Foreign Key)
-대체여부
> 본질 식별자 : 업무에 의해 만들어지는 식별자
> 인조 식별자 : 복잡한 원조 식별자 대신에 인위적으로 만들어진 식별자(ex. 일련번호)
출저) [SQLD 자격증] 8만명이 유튜브에서 검증한 메타코드M의 대표강의 | Udemy
'SQLD 정리' 카테고리의 다른 글
SQL - 성능 데이터 모델링, 정규화, 반정규화 (0) | 2023.03.15 |
---|---|
SQL - PL/SQL, 분산 데이터베이스 (0) | 2023.03.15 |
SQL - 옵티마이저, INDEX (0) | 2023.03.14 |
SQL - 윈도우함수, 파티션 (1) | 2023.03.14 |
SQL - 계층형 조회 (0) | 2023.03.14 |