Key

  • 필요이유: 레코드간의 순서가 의미가 없으므로 레코드를 구분하기 위해서는 각 레코드의 값을 이용해야 하기 때문
  • 레코드를 구별 하는데 사용할 수 있는 고유한 값을 가진 레코드의 하나의 필드 혹은 복수의 필드(composite key)
  • 시간의 독립적으로 항상 존재해야 함 Time dependent
  • 유일하게 식별을 해야 하기 때문에 NULL값을 가질 수 없음

Key의 3가지 종류

  • 슈퍼키(super key): 아무런 제약 조건 없이 레코드들을 식별할 수 있는 필드의 집합
  • 후보키(candidate key): 최소한의 필드만으로 구성된 키 어떠한 데이터가 들어오고 지워져도 식별이 가능해야 함
  • 기본키(primary key): 후보키 중에서 식별자로 정의한 하나의 키 되도록 하나의 필드로 구성된 후보키를 선정하는 것이 유리함

foreign key

  • 어떤 테이블의 속성이 다른 테이블의 기본Key 값을 가지고 있는 경우
    • 이 점을 이용해서 해당 테이블의 속성에 값이 추가될 때 해당 값이 잘못된 값 인지 아닌지 판별 가능
  • 테이블과 테이블 사이의 관계를 표현하고 설정하는 것이 가능
  • 다른 테이블의 기본Key를 참조하는 필드 집합
  • 두 테이블 스키마 X, Y에 대해 X의 어떤 필드집합 XK가 다음 두 조건을 만족하면 XK는 Y의 기본키인 YK를 참조하는 X의 외래키임
    • XK의 필드들은 테이블 스키마 Y의 기본키 YK와 동일한 도메인(값의 범위)을 가짐
    • X의 각 레코드의 XK값은 Y의 레코드 중 하나의 YK값과 일치하거나 널이 됨
      • 이때 X 레코드의 XK값이 널이 된다는 것은 알지 못하거나 아직 결정되지 않았다는 것을 의미함
    • X: 참조하는 테이블
    • Y: 참조되는 테이블
  • 자신의 테이블을 참조하는 형태의 외래키도 존재 가능

Key

  • 필요이유: 레코드간의 순서가 의미가 없으므로 레코드를 구분하기 위해서는 각 레코드의 값을 이용해야 하기 때문
  • 레코드를 구별 하는데 사용할 수 있는 고유한 값을 가진 레코드의 하나의 필드 혹은 복수의 필드(composite key)
  • 시간의 독립적으로 항상 존재해야 함 Time dependent
  • 유일하게 식별을 해야 하기 때문에 NULL값을 가질 수 없음

Key의 3가지 종류

  • 슈퍼키(super key): 아무런 제약 조건 없이 레코드들을 식별할 수 있는 필드의 집합
  • 후보키(candidate key): 최소한의 필드만으로 구성된 키 어떠한 데이터가 들어오고 지워져도 식별이 가능해야 함
  • 기본키(primary key): 후보키 중에서 식별자로 정의한 하나의 키 되도록 하나의 필드로 구성된 후보키를 선정하는 것이 유리함

foreign key

  • 어떤 테이블의 속성이 다른 테이블의 기본Key 값을 가지고 있는 경우
    • 이 점을 이용해서 해당 테이블의 속성에 값이 추가될 때 해당 값이 잘못된 값 인지 아닌지 판별 가능
  • 테이블과 테이블 사이의 관계를 표현하고 설정하는 것이 가능
  • 다른 테이블의 기본Key를 참조하는 필드 집합
  • 두 테이블 스키마 X, Y에 대해 X의 어떤 필드집합 XK가 다음 두 조건을 만족하면 XK는 Y의 기본키인 YK를 참조하는 X의 외래키임
    • XK의 필드들은 테이블 스키마 Y의 기본키 YK와 동일한 도메인(값의 범위)을 가짐
    • X의 각 레코드의 XK값은 Y의 레코드 중 하나의 YK값과 일치하거나 널이 됨
      • 이때 X 레코드의 XK값이 널이 된다는 것은 알지 못하거나 아직 결정되지 않았다는 것을 의미함
    • X: 참조하는 테이블
    • Y: 참조되는 테이블
  • 자신의 테이블을 참조하는 형태의 외래키도 존재 가능

'CS > DataBase' 카테고리의 다른 글

집계 함수  (0) 2023.04.01
SQL 1  (0) 2023.03.24
관계 대수  (1) 2023.03.17
릴레이션  (0) 2023.03.11
데이터와 데이터베이스  (1) 2023.03.03

+ Recent posts