[DB] 데이터베이스(1)

Soo·2023년 3월 17일
0

DB 구조 & 설계


Q. Primary key가 무엇인지 설명해 주세요.

  • candidate key 중 선택한 main key로써, 각 row를 unique하게 구분하는 column(또는 column의 집합)을 말합니다. 그래서 기본키는 Null 값을 가질 수 없고, 중복된 값을 가질 수 없습니다. 기본키는 table당 1개만 지정해야합니다.

Primary Key

Super Key(슈퍼키)는 각 row를 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합입니다. 슈퍼키는 유일성만 만족하면 슈퍼키가 될 수 있습니다.

  • 유일성 : 하나의 key 값으로 특정 row만을 유일하게 찾아낼 수 있어야 합니다.
  • 예시
    • (학번)
    • (학번,이름)
    • (학번, 이름, 학과)
    • (주민등록번호)
    • (주민등록번호, 학과, 성별)
    • 등등

Candidate key(후보키)는 Super key 중에서 더이상 쪼개질 수 없는 Superkey를 Candidate Key라고 합니다. 즉 각 row를 유일하게 식별할 수 있는 최소한의 속성들의 집합입니다.

  • 최소성 : 모든 row를 유일하게 식별하는데 꼭 필요한 속성만으로 구성되어야 합니다.
  • 예시
    • (학번)
    • (주민등록번호)

Primary key(기본키)는 candidate key 중 선택한 main key로써, 각 row를 구분하는 유일한 열을 말합니다. 그래서 기본키는 Null 값을 가질 수 없고, 중복된 값을 가질 수 없습니다. 기본키는 table당 1개만 지정해야합니다.

Alternative key(대체키) 는 후보키가 두 개 이상일 경우, 기본키로 지정이 되지 못하고 남은 후보키들을 말합니다.

Q. Primary Key와 Foreign Key에 대해 설명해 주세요.

[핵심 답변]

Primary key는 candidate key 중 선택한 main key로써, Null 값을 가질 수 없고, 중복된 값을 가질 수 없습니다. Candidate key 중 선택했으므로 유일성최소성을 만족합니다.

Foreign key는 다른 table의 Primary key column과 연결되는(참조되는) table의 column을 의미합니다

Q. Candidate key에 대해 설명하시오

[핵심 답변]

Candidate key는 table을 구성하는 column들 중에서 최소성과 유일성을 만족하는 column 또는 column의 집합입니다. 즉 primary key로 사용할 수 있는 column들을 말합니다.

Q. alternate key에 대해 설명하시오.

[핵심 답변]

primary key를 제외한 나머지 candidate key들을 말합니다. 대체키/보조키라고도 부릅니다.

Q. composite key에 대해 설명하시오

[핵심 답변]

Composite key란 table에서 각 row를 식별할 수 있는 두 개 이상의 column으로 구성된 candidate key를 말합니다.

Q. 관계형 데이터베이스의 N:M 관계에 대해서 설명해 주세요.

관계형 데이터베이스에서 양쪽 entity 모두가 서로에게 1:N 관계를 갖는 구조를 말합니다.

1:N

관계형 데이터베이스에서 하나의 entity(table)가 관계를 맺은 entity의 여러 객체를 가질 수 있는 구조를 말합니다.

두 table간의 관계를 mapping cardinality로 표현하고, 종류는 크게 다음과 같습니다.

  • 1:1
  • 1:N
  • N:M

사진출처: https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%A0%84%EA%B3%B5%EB%A9%B4%EC%A0%91-cs-%EC%99%84%EC%A0%84%EC%A0%95%EB%B3%B5?inst=8edb4798&utm_source=instructor&utm_medium=referral&utm_campaign=inflearn_%ED%8A%B8%EB%9E%98%ED%94%BD_promotion-link

profile
Soogineer's Devlog

0개의 댓글