[SQLD]「1」(1.1) 데이터 모델, 엔티티, 속성, 관계, 식별자
> 「1」 데이터 모델링의 이해
「2」 SQL 기본 / 활용
「3」 관리 구문
> 1. 데이터 모델의 이해
> 2. 엔티티
> 3. 속성
> 4. 관계
> 5. 식별자
1. 데이터 모델의 이해
모델링
⸰ 현실 세계를 단순화하여 표현하는 기법
모델링 특징
⸰추상화
: 현실 세계를 일정한 형식으로 표현
⸰단순화
: 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현
⸰명확성
: 불분명함을 제거하고 명확하게 해석할 수 있도록 기술
⸰ 모델링의 기능 :가시화
문서화
구조화된 틀 제공
명세화
모델링의 세 가지 관점
⸰데이터 관점(What, Data)
⸰프로세스 관점(How, Process)
⸰데이터와 프로세스의 상관 관점(Data vs Process, Interaction)
데이터 품질 보장을 위한 유의사항
⸰비중복
: 같은 데이터가 여러 엔티티에 중복 저장되는 것을 지양
⸰유연성
: 유지보수를 위해 데이터 모델과 프로세스를 분리하여 유연성 높임
⸰일관성
: 일부 데이터만 변경될 수 있기 때문에 데이터 간 연관관계를 명확하게 정의해야 함
모델링의 세 가지 단계
①개념적 데이터 모델링
: 업무 중심적이고 포괄적인 수준의 모델링
②논리적 데이터 모델링
: 재사용성이 가장 높은 모델링, Key / 속성 / 관계 등 모두 표현
③물리적 데이터 모델링
: 성능이나 가용성 등 물리적인 성격을 고려하여 모델링
데이터의 독립성
외부 스키마 1 | 외부 스키마 2 | 외부 스키마 3 |
----------------------------------------------------------(논리적 독립성) | ||
개념 스키마 | ||
----------------------------------------------------------(물리적 독립성) | ||
내부 스키마 |
⸰외부 스키마
: View 단계로 여러 개의 사용자 관점으로 구성
⸰개념 스키마
: 모든 사용자의 관점을 통합한 조직 전체 관점의 통합적인 표현
⸰내부 스키마
: 물리적인 저장 구조 나타냄
⸰논리적 독립성
: 개념 스키마가 변경되어도 외부 스키마는 영향받지 않음
⸰물리적 독립성
: 내부 스키마가 변경되어도 외부 / 개념 스키마는 영향받지 않음
ERD
⸰ ERD 표기 방식
⸰ IE/Crow's Foot 표기법
⸰ ERD 작성 순서
엔티티 도출
>배치
>관계 설정
>관계명 기입
>참여도 기입
>필수 / 선택 여부 기입
2. 엔티티
엔티티
⸰ 데이터를 용도별로 분류한 그룹이며, 명확한 조건이 기준이 되어야 함
⸰엔티티
: Table
⸰인스턴스
: Row
⸰속성
: Column
엔티티의 특징
⸰ 업무에서 쓰이는 정보여야 함
⸰ 식별자가 있어야 함
⸰ 2개 이상의 인스턴스 보유
⸰ 속성이 있어야 함
⸰ 다른 엔티티와 1개 이상 관계를 가져야 함
엔티티의 분류
⸰ 유형 / 무형에 따른 분류
-유형 엔티티
: 물리적 형태 존재, 안정적 / 지속적 > 상품, 회원
-개념 엔티티
: 물리적 형태 없음, 개념적 > 부서, 학과
-사건 엔티티
: 행위로 발생, 빈번함 / 통계 자료 > 주문, 이벤트 응모
⸰ 발생시점에 따른 분류
-기본 엔티티
: 독립적으로 생성되어 자신의 주식별자를 가지며, 다른 엔티티의 부모 역할 > 상품, 회원, 부서, 사원
-중심 엔티티
: 기본 엔티티로 파생되어, 행위 엔티티 생성, 업무에 중심적인 역할을 하며 데이터 양 많음 > 주문, 매출
-행위 엔티티
: 2개 이상의 엔티티로 파생, 데이터 자주 변경되거나 증가 > 주문 내역, 이벤트 응모 기록
⸰ 엔티티 이름 정할 때 주의사항
- 실제 쓰이는 용어 사용
- 한글 약어 사용 X, 영문 대문자
- 단수 명사로, 띄어쓰기 X
- 다른 엔티티와 의미상으로 중복 X
- 갖고 있는 데이터를 명확하게 표현
3. 속성
속성
⸰ 엔티티의 특징을 나타내는 최소의 데이터 단위
속성값
⸰ 엔티티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터
⸰ 하나의 속성에 한 개의 속성값
엔티티, 인스턴스, 속성, 속성값의 관계
⸰ 한 개의 엔티티는 두 개 이상의 인스턴스
⸰ 한 개의 인스턴스는 두개 이상의 속성
⸰ 한 개의 속성은 하나의 속성값
분류
⸰ 특성에 따른 분류
-기본 속성
: 업무 프로세스 분석을 통해 바로 정의가 가능한 속성
-설계 속성
: 업무에 존재하지 않지만 필요하여 도출된 속성 > 학번
-파생 속성
: 다른 속성값 계산하거나 특정 규칙으로 변형하여 생성한 속성 > 재고
⸰ 구성방식에 따른 분류
-PK 속성
: 인스턴스들을 식별할 수 있는 속성
-FK 속성
: 다른 엔티티와 관계를 맺게 해주는 매개체 역할을 하는 속성
-일반 속성
: PK, FK 제외한 속성
도메인
⸰ 속성이 가질 수 있는 속성값의 범위, 데이터 타입과 크기로 나타냄
⸰용어 사전
: 속성의 이름을 직관적으로 부여하여, 같은 의미의 데이터를 공통된 이름으로 적용하기 위해 사용
⸰시스템 카탈로그
: 시스템 자체에 관련된 데이터(메타 데이터)를 담는 데이터베이스, SELECT만 가능
4. 관계
관계
⸰ 엔티티와 엔티티 간 관계, 존재 관계와 행위 관계로 나눔
존재 관계
⸰ 존재 자체로 연관성 있는 관계 > 직원 / 부서(소속된다), 학생 / 학과(소속된다)
행위 관계
⸰ 특정 행위를 하여 연관성이 생기는 관계 > 회원 / 주문(주문한다), 학생 / 출석부(출석한다)
표기법
⸰관계명
: 관계의 이름, 모든 관계는 두 개의 관계명 소유 > 학과 / 학생(포함한다 / 소속된다)
⸰관계차수
: 관계에 참여하는 수, 1 : 1, 1 : M, M : N
⸰관계선택사양
: 필수 / 선택 여부
- 필수적 관계(참여자 반드시 존재) > 주문 / 주문상품
- 선택적 관계 > 회원 / 주문
5. 식별자
식별자
⸰ 속성 중 각각의 인스턴스를 구분 가능하게 해주는 대표적인 속성
주식별자(PK)
⸰유일성
: 각 인스턴스가 식별 가능해야 함
⸰최소성
: 최소 개수의 속성
⸰불변성
: 속성값이 되도록 변하지 않아야 함
⸰존재성
: NULL이면 안됨
분류
⸰ 대표성 여부에 따른 분류
-주식별자
: 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자, 다른 엔티티와 참조 관계로 연결
‣ 회원번호, 상품번호, 주문번호, (주문번호, 상품번호(FK))
-보조식별자
: 인스턴스 식별 가능하지만 대표 식별자 X, 다른 엔티티와 참조 관계로 연결 X
‣ 아이디
⸰ 스스로 생성되었는지 여부에 따른 분류
-내부식별자
: 엔티티 내부에서 스스로 생성된 식별자
‣ 회원번호, 상품번호, 주문번호
-외부식별자
: 다른 엔티티에서 온 식별자, 다른 엔티티와 연결고리 역할
‣ 회원번호(FK)
⸰ 단일 속성의 여부에 따른 분류
-단일식별자
: 하나의 속성으로 구성된 식별자
‣ 회원번호, 상품번호, 주문번호
-복합식별자
: 두 개 이상의 속성으로 구성된 식별자
‣ (주문번호, 상품번호(FK))
⸰ 대체 여부에 따른 분류
-원조(본질)식별자
: 업무 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자
‣ 회원번호, 상품번호, 주문번호, (주문번호, 상품번호(FK))
-대리(인조)식별자
: 주식별자의 속성이 두 개 이상인 경우, 하나로 묶어 사용하는 식별자
‣ 주문번호(주문일자 + 순번)
식별자 관계 vs 비식별자 관계
⸰식별자 관계
- 부모 엔티티의 식별자가 자식 엔티티의 주식별자가 되는 강한 관계, 부모 엔티티 있어야 생성 가능
- 자식 엔티티는 단일식별자를 갖거나 복합식별자를 가질 수 있음, 1 : 1, 1 : M 관계 형성, 실선으로 표현
‣ 게시글 / 댓글(게시글번호, 1 : M)
⸰비식별자 관계
- 부모 엔티티의 식별자가 자식 엔티티의 일반 속성이 되는 약한 관계, 부모 엔티티 없는 자식 엔티티 생성 가능
- 자식 엔티티가 존재하는 상태에서 부모 엔티티 삭제 가능, 점선으로 표현
‣ 주문번호 / 상품(상품코드)
유선배 SQLD 과외노트
'💠기타 > 자격증' 카테고리의 다른 글
[SQLD]「2」(2.1) SELECT 문, 다양한 함수 (0) | 2024.05.31 |
---|---|
[SQLD]「1」(1.2) 정규화, 반정규화, 트랜잭션, NULL (0) | 2024.05.29 |
[정처기 실기] 「6」 신기술 용어 - (6.1) 신기술 용어 (1) | 2024.04.03 |
[정처기 실기] 「5」 정보보안 - (5.2) 정보보안(2) (2) | 2024.04.03 |
[정처기 실기] 「5」 정보보안 - (5.1) 정보보안(1) (0) | 2024.04.03 |