반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

관계, 키 본문

CS/데이터베이스

관계, 키

5_hyun 2022. 7. 19. 14:58

관계

DB에는 여러 테이블이 있고 테이블끼리 서로 관계가 정의되어 있고 관계화살표로 나타낼 수 있다.

 

-1 : 1 관계

예를 들면 유저당 이메일은 한 개씩 있다. 이런 경우 1 : 1 관계이다. 1 : 1 관계는 테이블을 2개로 나눠서 테이블 구조 이해가 쉽다.

 

-1 : N 관계

예를 들면 쇼핑몰에서 유저가 여러 개의 상품을 장바구니에 넣을 수 있다. 이런 경우 1 : N 관계가 된다. 하나도 넣지 않는 0개의 경우도 있으니 이런 경우에는 화살표를 통해 표현해야 한다. 한 개체가 다른 여러 개체를 포함하는 관계이다.

 

-N : M 관계

예를 들면 학생과 강의의 관계를 보면 학생은 여러 강의를 들을 수 있고 강의도 여러 명의 학생이 포함될 수 있다. 이런 경우 N : M이 된다.

N : M 관계는 테이블을 직접 연결하지 않고 1 : N, 1 : M 관계를 갖는 테이블 두 개로 나눠서 연결한다.

 

1. 키는 기본키, 외래키, 후보키, 슈퍼키, 대체키가 있다.

2. 슈퍼키는 유일성이 있다. 유일성은 중복되는 값이 없다.

3. 후보키는 최소성을 갖춘 키이다. 최소성은 필드를 조합하지 않고 최소 필드만 사용해서 키를 형성한다.

4. 후보키 중에서 기본키로 선택되지 않은 키는 대체키이다.

 

-기본키(Primary Key)

유일성과 최소성을 만족하는 키이다. 데이터가 고유하게 존재하는 속성이며 중복되는 데이터가 있으면 안된다.

이 그림에서 ID는 기본키로 설정할 수 있다. {ID, name}을 합친 복합키를 기본키로 설정할 수도 있지만 최소성을 만족하지 않는다. 그렇기에 기본키는 자연키 혹은 인조키 중에 설정해야 한다.

 

  • 최소성:  키를 구성하는 속성들 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질
  • 자연키: 사람 속성에는 여러 개가 있는데 이름 같은 속성은 중복될 수 있다. 주민등록번호는 중복되지 않는다. 이렇게 중복된 값을 제외하면서 중복되지 않는 것을 자연스럽게 뽑는 것을 자연키라고 한다. 자연키는 언젠가 변하는 속성을 가진다.
  • 인조키: 인조키는 사람이라는 엔티티가 있으면 각 사람마다 고유한 아이디를 부여해서 사용하는 것을 말한다. 자연키와 대조적으로 변하지 않는다. 보통 기본키는 인조키로 설정한다.

 

-외래키(Foreign Key)

외래키는 다른 테이블의 기본키를 그대로 참조하는 값이며 개체와의 관계를 식별할 때 사용한다. 외래키는 중복되어도 괜찮다.

 

-후보키(candidate key)

기본키가 될 수 있는 후보키들이며 유일성과 최소성을 동시에 만족한다.

 

-대체키(alternate key)

후보키 중에서 기본키가 되지 못한 남은 후보키를 의미한다.

 

-슈퍼키(super key)

각 레코드를 유일하게 식별할 수 있는 유일성을 가진 키이다.

 

 

728x90
반응형

'CS > 데이터베이스' 카테고리의 다른 글

인덱스  (0) 2022.12.20
데이터베이스의 종류  (0) 2022.08.27
트랜잭션과 무결성  (1) 2022.08.17
ERD와 정규화 과정  (0) 2022.08.04
데이터베이스-엔티티, 릴레이션, 속성, 도메인, 필드와 레코드  (0) 2022.07.10
Comments