데이터베이스에서 식별 관계와 비식별 관계는 엔터티(Entity) 간의 관계를 정의하는 데 사용되는 용어이다.
🔖 엔터티(Entity)
데이터베이스에서 정보를 저장하는 데 사용되는 기본적인 구성요소 중 하나이다. 현실 세계에서 독립적으로 존재할 수 있는 구조, 개념, 사물 또는 사건과 같은 것들로, 일반적으로 데이터베이스의 테이블에 해당하는 개념으로 이해할 수 있다.
학생, 강사, 과목, 주문, 고객 등은 모두 데이터베이스에서 개별적으로 취급되는 엔터티의 예시이다. 각각의 엔터티는 특정 속성을 가지며, 이러한 속성은 해당 엔터티에 대한 정보를 설명하고 저장하는 데 사용된다. 학생의 경우, 이름, 학번, 학과, 성적 같은 속성이 있을 수 있다.
데이터베이스 관계형 모델에서 각 엔터티는 테이블로 표현되며, 각 열은 특정 속성을 나타낸다. 행은 해당 엔터티의 개별 인스턴스를 나타내며, 각 인스턴스는 테이블 내의 고유한 식별자로 식별된다. 엔터티 간의 관계는 데이터베이스에서 중요한 정보를 추출하고 조작하는 데 사용된다.
⚝ 식별관계
-> 부모 테이블의 기본키를 자식 테이블의 기본키로 사용
- 식별 관계는 자식 엔터티의 주 키가 부모 엔터티의 주 키를 포함하는 관계를 나타낸다.
- 자식 엔터티는 부모 엔터티의 주 키를 포함하여 부모 엔터티에 종속된다.
- 부모 엔터티의 주 키가 변경되면 이에 종속된 자식 엔터티의 관련 키도 함께 변경된다.
- 보통 부모 테이블의 주 키가 자식 테이블의 외래 키로 사용된다.
⚝ 비식별관계
-> 부모 테이블의 기본키를 자식 테이블의 외래키로 사용
- 비식별 관계는 자식 엔터티의 주 키가 부모 엔터티의 주 키를 포함하지 않는 관계를 나타낸다.
- 자식 엔터티는 부모 엔터티에 완전히 종속되지 않는다.
- 부모 엔터티의 주 키가 변경되어도 자식 엔터티는 영향을 받지 않는다.
- 보통 부모 테이블의 주 키와 자식 테이블의 외래 키가 별도로 존재한다.
⚝ 정리
데이터베이스 설계에서 어떤 관계가 더 적합한지 결정하는 것은 상황에 따라 다르다.
식별 관계는 부모 엔터티와 자식 엔터티 간에 강한 종속성이 있는 경우로, 부모 엔터티의 변경이 자식 엔터티에 영향을 미치는 경우에 유용하다. 반면에 비식별 관계는 두 엔터티 간의 느슨한 결합을 나타내므로, 부모 엔터티의 변경이 자식 엔터티에 영향을 미치지 않는 경우 유용하다.
즉, 종속성과 관계의 특성을 고려하여 식별 및 비식별 관계 중 어느 것이 적합한지 판단해야한다.
'Backend > Datebase' 카테고리의 다른 글
MongoDB와 MySQL 차이 (0) | 2024.01.23 |
---|---|
재귀 쿼리 (0) | 2023.12.16 |
AWS RDS : Cannot Connect to Database Server 오류 (0) | 2023.11.23 |
서브쿼리(Subquery) (0) | 2023.11.10 |
REST API(Representational State Transfer API) (0) | 2023.10.19 |