1. 관계(Relationship)
-
관계는 엔터티 간의 관련성을 의미하며, 존재 관계와 행위 관계로 분류 됨
-
존재 관계는 두 개의 엔터티가 존재 여부의 관계가 있는 것
-
행위 관계는 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것
2. 관계의 종류
(1) 존재 관계
-
존재 관계는 엔터티 간의 상태를 의미
-
ex)고객이 은행에 회원가입을 하면, 관리점이 할당되고, 그 할당된 관리점에서 고객을 관리 함
(2) 행위 관계
-
행위 관계는 엔터티 간에 어떤 행위가 있는 것
-
ex)계좌를 사용해서 주문을 발주하는 관계가 만들어짐
3. 관계 차수(Cardinality)
(1) 관계 차수(Relation Cardinality)
-
관계 차수는 두 개의 엔터티 간에 관계에 참여하는 수를 의미
-
ex)한 명의 고객은 여러 개의 계좌를 개설할 수 있다.(1대N 관계)
(2) 관계 차수의 종류
*1대1 관계
-
완전 1대1 관계: 하나의 엔터티와 관계되는 엔터티의 관계가 하나인 경우로 반드시 존재함
-
선택적 1대1 관계: 하나의 엔터티에 관계되는 엔터티의 관계가 하나이거나 없을 수도 있음
*1대N 관계
-
엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러 개 있는 관계
-
ex)고객은 여러 개의 계좌를 가질 수 있음
*M대N 관계
-
두 개 엔터티가 서로 여러 개의 관계를 가지고 있는 것
-
관계형 데이터베이스에서 M대 N관계의 조인(Join)은 카테시안 곱이 발생함, 그래서 M대N관계를 1대N, N대1로 해소해야함
*카테시안 곱(Cartesian Product): 두 테이블 사이의 조인 조건이 기술되어 있지 않은 경우, 두 테이블의 모든 행들이 무조건 결합해 테이블들에 존재하는 행 개수를 곱한 만큼의 결과 값이 반환 되는 것
*필수적 관계와 선택적 관계
-
필수적 관계는 반드시 하나는 존재해야 하는 관계
-
필수적 관계는 ‘|’로 표현됨
-
선택적 관계는 없을 수도 있는 관계임
-
선택적 관계는 ‘O’로 표현됨
4. 식별 관계와 비식별 관계
(1) 식별 관계(Identification Relationship)
-
고객과 계좌 엔터티에서 고객은 독립적으로 존재할 수 있는 강한 개체(Strong Entity)
-
강한 개체는 어떤 다른 엔터티에게 의존하지 않고 독립적으로 존재함
-
강한 개체는 다른 엔터티와 관계를 가질 때 다른 엔터티에게 기본키를 공유 함
-
강한 개체는 식별 관계로 표현 됨
-
강한 개체의 기본키 값이 변경되면 식별관계(기본키를 공유받은)에 있는 엔터티의 값도 변경 됨
-
실선으로 표현함
(2) 비식별 관계(Non-Identification Relationship)
-
비식별 관계는 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것
-
관리점 엔터티의 기본키는 지점 코드이고 고객 엔터티와 비식별 관계를 가지고 있음(즉, 지점코드는 고객 엔터티의 기본키가 아닌 일반 칼럼으로 참조 됨)
-
점선으로 표현함
식별자: 엔터티를 대표할 수 있는 유일성을 만족하는 속성(회원ID, 계좌번호, 주민번호, 여권번호 등)
1. 주식별자(기본키, Primary key)
-
최소성: 주식별자는 최소성을 만족하는 키
-
대포성: 주식별자는 엔터티를 대표할 수 있어야 함
-
유일성: 주식별자는 엔터티의 인스턴스를 유일하게 식별함
-
불변성: 주식별자는 자주 변경되지 않아야 함
-
기본키(Primary key): 후보키 중에서 엔터티를 대표할 수 있는 키
-
후보키(Candidate key): 후보키는 유일성과 최소성을 만족하는 키
-
슈퍼키(Super key): 슈퍼키는 유일성은 만족하지만 최소성을 만족하지 않는 키
-
대체키(Alternate key): 대체키는 여러 개의 후보키 중에서 기본키를 선장하고 남은 키
-
외래키(Foreign key): 하나 혹은 다수의 다른 테이블의 기본 키 필드를 가리키는 것으로 참조 무결성을 확인하기 위해서 사용됨, 허용됨 데이터 값만 데이터베이스 저장하기 위해서 사용됨
2. 식별자의 종류
-
식별자는 대표성, 생성 여부, 속성의 수, 대체 여부로 분류됨
(1) 식별자의 대표성
-
주식별자: 엔터티를 대표하는 식별자, 유일성과 최소성 만족, 다른 엔터티와 참조 관계로 연결 가능
-
보조 식별자: 유일성과 최소성은 만족하지만 대표성을 만족하지 못함
(2) 생성여부
-
내부 식별자: 엔터티 내부에서 스스로 생성되는 식별자
-
외부 식별자: 다른 엔터티와의 관계로 인해 만들어지는 식별자
(3) 속성의 수
-
단일 식별자: 하나의 속성으로 구성됨
-
복합 식별자: 두 개 이상의 속성으로 구성
(4) 대체여부
-
본질 식별자: 비즈니스 프로세스에서 만들어지는 식별자
-
인조 식별자: 인위적으로 만들어지는 식별자
*인조식별자는 후보 식별자 중에서 주식별자로 선정할 것이 없거나 주식별자가 너무 많은 칼럼으로 되어 있는 경우에 사용
'SQL 공부' 카테고리의 다른 글
(SQLD)관계형데이터베이스(Relation Database)/SQL 종류 (0) | 2020.08.07 |
---|---|
(SQLD)반정규화(De-Normalization)/분산 데이터베이스 (0) | 2020.08.06 |
(SQLD)정규화(Normalization)/정규화와 성능 (0) | 2020.08.04 |
(SQLD)엔터티(Entity)/속성(Attribute) (0) | 2020.07.31 |
(SQLD)데이터 모델링/3층 스키마 (0) | 2020.07.29 |