▶ 관계형 데이터 모델
데이터를 릴레이션(relation) 으로 표현하는 '논리적 데이터 모델' 이다
* 릴레이션은 테이블이다
▷ 관계형 데이터 모델에 등장하는 용어
속성(attribute)
튜플(tuple)
도메인(domain)
릴레이션(relation)
릴레이션 스키마(relation schema)
릴레이션 인스턴스(relation instance)
디그리(degree, 차수)
카디널리티(cardinality, 대응수)
▷ 관계형 데이터 구조 : 릴레이션
데이터를 원자값(atomic value)으로 갖는 2차원 테이블 형태 -> 릴레이션(relation)
원자값 : 더 이상 쪼개질 수 없는 단위
▷ 릴레이션은 '논리적 구조'
'물리적인 저장 구조'가 아니다
▷ 릴레이션 구조 = 스키마 + 인스턴스
▷ 관계형 데이터 모델에 등장하는 용어
속성(attribute) : 릴레이션의 열(column)
행(row) : 튜플(tuple)
도메인(domain) : 하나의 속성(attribute)이 취할 수 있는 같은 타입의 원자값들의 집합
차수(defree) : 속성(attribute)의 개수
카디널리티(cardinality) : 튜플(tuple)의 개수
▶ ER model -> 관계형 데이터 모델 변환
개념적 데이터 모델 -> 논리적 설계 데이터 모델
▷ 매핑 룰 (mapping rule)
개념적 데이터 모델인 ER 모델을 논리적 데이터 모델인 릴레이션 스키마로 변환하는 것
ER 모델 | 릴레이션 |
속성 | 컬럼 |
식별자 | 기본키 |
관계 | 기본키 + 외래키 |
- 식별자
식별자는 개체(entity)의 성격을 좌우하는 속성이다.
하나의 속성으로 해당 개체(entity)의 식별자를 선정할 수 있다.
여러 개의 속성(attribute)으로 해당 개체(entity)의 식별자를 선정하는 것도 가능하다.
개체(entity)의 식별자는 물리 모델링을 할 때 인덱스로 구현되며 그 중 유니크 식별자(Unique Identifier)는 기본키(Primary Key)로 구현된다.
이처럼 식별자는 해당 개체(entity)의 키 값이 되며, 해당 테이블의 속성을 좌우한다.
여러개의 data에서 각각의 data를 구분할 수 있는 논리적인 이름을 identifier 이라고 한다
▷ ER 모델의 '관계'를 관계형 데이터 모델로 변환
개체 A, B 와 관계 Y 로 이루어진 ER 모델을 관계형 데이터 모델의 릴레이션 스키마로 변환하는 과정이다.
- 개체 A, B 는 → 독립적인 릴레이션 A, B 로 표현
- ER 모델에서 각 개체의 속성은 → 릴레이션의 속성들로 정의
- ER 모델의 기본키 속성 → 릴레이션 에서도 밑줄 그어 표시
- 관계 Y 가 1 : 1 이면 → 릴레이션 A의 기본키를 릴레이션 B의 외래키로 추가하거나, 반대로 B 의 기본키를 A의 외래키로 추가 하여 표현
- 관계 Y 가 1:N 이면 → 릴레이션 A의 기본키를 릴레이션 B의 외래키로 추가
- 관계 Y 가 N:M 이면 → 릴레이션 A 와 B의 기본키를 모두 포함한 별도의 릴레이션을 추가하여 표현. 이때 추가된 릴레이션을 교차 릴레이션(intersection relation) 혹은 교차 엔티티 (intersection entity)라 함.
- 관계 Y가 1:1이면 -> 릴레이션 A의 기본키를 릴레이션 B의 외래키로 추가하거나, 반대로 B의 기본키를 A의 외래키로 추가하여 표현한다
* 실제 1:1 관계는 잘 사용되지 않는다. 차라리 두 테이블을 합치는 게 낫다
서비스 중인 개체(entity)에 추가적인 속성(attribute)를 부여할 때 사용하기도 한다
- 관계 Y가 1:N이면 -> 릴레이션 A의 기본키를 릴레이션 B의 외래키로 추가한다
- 관계 Y가 N:M이면 -> 릴레이션 A와 B의 기본키를 모두 포함한 별도의 릴레이션을 추가하여 표현한다
-- N:M 관계 예시
회원과 게시물에 좋아요란 별도의 테이블이 만들어진다
미생물의 좋아요 갯수는? 3개
토글을 누르면 좋아요 또 누르면 좋아요 사라진다
▶ 릴레이션 스키마의 다른 표현들
↓ 실무에서는 위보단 아래와 같은 표기를 더 잘 사용한다
▷ 속성만 기록한 도형으로 표기하기
▷ 속성과 타입으로 표시하기
속성에 대한 자료의 타입, 크기, 제약사항들을 표기한다.
이러한 구조를 물리 개체 관계도 (물리 ERD)라고 한다
▷ 정보공학적 도형 표기 (IE 표기법)
▷ 실무 예
▷ 테이블 명세서
▶ 식별 관계(identifying)
식별관계란 개체 A, B 사이의 관계에서 A 개체의 기본키가 B 개체의 외래키이면서 동시에 B 개체의 기본키가 되는 관계
B 개체의 존재 여부가 A 개체의 존재 여부에 의존적인 경우에 발생한다
도형에서 식별 관계는 '실선' 으로 표시한다
▶ 비식별 관계(Non-identifying)
개체 A, B 사이의 관계에서 A 개체의 기본키가 B 개체의 비기본키 영역에서 외래키가 되는 관계
B 개체의 존재 여부는 A 개체의 존재 여부와 관계 없이 존재한다
일반적으로 현실세계에서는 '비식별 관계' 로 존재하는 경우가 많으며 도형에서 비식별 관계는 '점선' 으로 표시한다
'database > DataBase 설계' 카테고리의 다른 글
[Oracle] PL/SQL (0) | 2022.09.05 |
---|---|
[DB 설계] 정규화 (0) | 2022.09.04 |
[DB 설계] ER-Model (0) | 2022.09.04 |