SQL - 데이터 모델링, 데이터의 구성(엔티티, 속성, 인스턴스), 도메인, ERD, 식별자

2023. 3. 15. 10:51SQLD 정리

반응형

데이터 모델링 특징

- 추상화 : 현실세계를 일정한 형식에 맞춰 표현하기 위함

- 정확화 : 누구나 이해할 수 있도록 현상을 기술

- 단순화 : 복잡한 현실을 이해하기 쉽게 제한된 언어와 표기법으로 단순하게 표현하기 위함

>>> 현실세계를 단순하게 추상화하여 정확하게 공유하는 작업이 데이터 모델링

- 정보시스템을 구축하기 위한 업무 분석 기법

- 현실세계의 데이터에 대해 약속된 표기법으로 표현

- 데이터베이스를 구축하기 위한 분석과 설계를 위한 과정

 

데이터 모델링 유의사항

- 중복성 : 중복을 최소화해야 함(같은 정보를 여러번 저장하는 것을 피해야함)

- 비유연성 : 데이터 또는 프로세스의 변화가 데이터베이스에 중대한 변화를 초래하지 않도록 유연하게 관리해야 함

- 비일관성 : '약속된 표기법'을 준용하는 등 업무를 명확하게 정의해서 정보 관리의 일관성을 최대화 해야함

 

데이터 모델링의 단계

- 개념적 데이터 모델링 : 추상화 수준이 높음, 전사적 모델링 시 많이 함, 포괄적 수준의 모델링

- 논리적 데이터 모델링: 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