PE Notes · DB
식별·비식별 관계와 ORDBMS·NoSQL 모델링
개념·논리·물리 모델링, 식별·비식별 관계 ERD, ORDBMS의 UDT·상속과 문서형 내장·참조 선택을 비교합니다.
모델이 어긋나면 이상과 조인과 운영 비용이 같이 커집니다. 정형 트랜잭션은 관계형, 복잡한 타입은 , 스키마가 자주 바뀌는 문서는 NoSQL 쪽으로 기울입니다.
세 단계와 식별·비식별
개념은 엔티티와 관계를 고르고, 논리는 속성·정규화·식별 여부를 정하며(DBMS 독립), 물리는 테이블·인덱스·파티션과 DDL입니다.
는 부모 기본키가 자식 기본키에 들어갑니다. 주문-주문상세가 대표입니다. 자식은 부모 없이 존재할 수 없고, ERD는 실선, 복합키가 생깁니다.
는 부모 키가 자식의 외래키로만 남습니다. 고객-주문처럼 자식이 자체 PK를 갖습니다. ERD는 점선입니다. 요즘 설계는 이쪽이 많습니다.
| 축 | 식별 | 비식별 |
|---|---|---|
| 부모 PK | 자식 PK에 포함 | 자식 FK만 |
| ERD | 실선 | 점선 |
| 자식 독립 | 낮음 | 높음 |
| 복합키 | 생김 | 없음 |
ORDBMS
관계형에 객체 개념을 얹습니다. 로 주소(시·구·우편)를 한 타입으로 두고, 테이블 상속, 배열·중첩 테이블, OID 참조, 타입에 메서드를 붙입니다. PostgreSQL의 CREATE TYPE이 그 예입니다. 복잡 객체를 여러 표 조인 없이 한 컬럼에 담습니다.
NoSQL 쪽 선택
문서 저장은 정규화보다 역정규화가 기본입니다. 주문 문서 안에 고객 요약과 상품 줄을 넣습니다.
| 축 | RDBMS | ORDBMS | 문서 | 그래프 |
|---|---|---|---|---|
| 구조 | 표 | 표+객체 | JSON | 노드·엣지 |
| 스키마 | 쓰기 시 고정 | 고정+UDT | 읽기 시 유연 | 유연 |
| 확장 | 수직 위주 | 수직 위주 | 수평 | 수평 |
| 적합 | 트랜잭션 | 복잡 타입+트랜잭션 | 반정형 | 관계 탐색 |
내장(Embed)은 작고 같이 읽히며 갱신이 드문 값, 참조(Reference)는 크거나 자주 바뀌거나 여러 곳에서 재쓰는 값입니다.
표기법은 IE· Barker 등 실선·점선 약속만 답안에 명시하면 충분합니다. 품질은 이상 없음, 업무 표현, 물리 성능을 같이 봅니다.