Database
[Modeling] Ch01. 데이터 모델링 이론
OptimizerStart
2025. 5. 12. 00:14
데이터 모델링
- 데이터 모델을 만드는 것.
- 실제 업무를 분석해서 테이블을 그루핑하고 테이블과 관계를 맺어주기
- 실제 업무를 본뜻 것
데이터 모델
- 그룹화 (테이블) iv
- 관계 (Relationship) 줄긋기
모델링
모델을 만드는 것
모델
- 실제(업무)를 관찰하여 본떠 만든것
- 진짜가 아닌 이상적, 가상적인 것.
ex. 패션 모델, 모델 하우스, 프라모델 - OOP와 유사.
- 관찰 분석(개념 설계) → 설계(논리 설계) → 구현(물리 설계)
- 개념설계 : 업무 분석 (개념 모델링)
- 논리 설계 : 이상적 설계
- 모든지 가능하다고 판단하고 이상적으로 설계
- 물리 설계 : 현실적 설계
- 개념 설계, 논리 설계가 중요. 물리설계는 기술적 요소 고려해야함.
DB 모델링
설계
- 테이블
- 관계
- Table(그룹)을 설계
- 그룹(테이블)을 만들고 관계를 맺어줌
데이터모델 종류
- 개체 관계 모델
- 관계 모델
- 계층 모델
- 망 모델
개체 관계 모델 Entity-Relationship Model
- 실제 업무를 객체와 관계로 표현
- 개체 Entity로 테이블 Table 만듦.
- [ OOP ] Class cf. Entity
특성
- 완정성 : 업무 내용 빠진 것 있으면 안됨
- 최소성 : 중복X
- 자명성 : 이해하기 쉬워야함
- 확장성 : 큰 변경 없이 바꿀 수 있어야함. 변경 유리.
구성 요소
- 엔티티 Entity 현실세계에 실제로 존재. 개념적인 것
- 엔티티(객체)는 정확히 엔티티 타입(클래스) 임.
엔티티 Entity
종류
- 일반화/특수화 과정으로 발생
- 슈퍼타입 엔티티 공통 속성. 하나 이상의 서브타입 엔티티와 관계를 맺음
- 서브타입 엔티티 특수 속성. 슈퍼 타입의 모든 특성(식별자, 속성, 관계) 상속 받음. 서브타입에만 존재하는 고유 속성을 관리. 개별적
일반화 및 특수화
- 일반화 generalization JOIN 개수 늘림. 추상화. 공통적인 것을 묶음
- 계층 표현 방식 -2
- 고정된 관계ex. 대댓글 (제한 있는 경우), 상중하
- 관계가 있다. = JOIN = 원래 하난데 쪼갰다.
- 동적인 관계 재귀관계 self join
- ex. 대대..댓글
- 계층 표현 방식 -2
- 특수화 specialization JOIN 개수 줄임. 슈퍼타입 엔티티를 2개 이상의 서브 엔티티로 분할. 일반화 반대.
ERD
- 그룹의 관계를 그림으로 그린것.
- 그룹 만들고 줄 긋기
- Diagram 그림
사이트 분석 방법
- 화면 보고 뭐가 있는지 적고
- 그루핑
SW 갖춰야 할 사항 cf. ER모델 특성
- 신뢰
- 확장
- 유지 보수
관계 Relationship
- 엔티티간의 업무 규칙 정의
구성 ⭕ 암기
- 관계 수 (카디널리티) 대응되는 인스턴스 개수 여러개 >
- 1 : 1 , 1 : M, N : M
- 어떤 엔티티의 인스턴스 하나가 다른 엔티티의 인스턴스 몇 개 연결 가능한지
- 선택성 필수 | , 선택 O
- 상대 인스턴스를 꼭 가리켜야하는지
- 최소 인스턴스 수
- 상대 엔티티에 표시된 것으로 해석
- 식별자 상속 식별자(PK) . 다른 개체의 PK 상속 실선(─) , 비식별자(점선)
- 식별 관계 PK 와 FK를 동시에 갖고있음 ⭕ 암기
- 가까운 관계
- 다른 테이블의 PK를 내 PK로 포함해 갖고있는것
- 한 테이블에 위치해도 됨
- 비식별 관계 두 엔티티간 거리가 멂. NOT PK
- 식별 관계 PK 와 FK를 동시에 갖고있음 ⭕ 암기
유형
- 기본 관계
- 재귀적 관계
- 자기 자신(엔티티)와 관계를 맺음
- 계층적인 구조 표현 (self join)
- 필수 관계 못가짐 ✅왜?
- 병렬 관계
- 슈퍼타입/ 서브타입 관계
참고 서적
[핵심 데이터 모델링] 유동오