키(Key) (슈퍼키, 후보키, 기본키, 대체키, 외래키) / 무결성 제약조건 (도메인 무결성, 개체무결성, 참조무결성)

2024. 3. 4. 16:16CS/DB

키(Key) (슈퍼키, 후보키, 기본키, 대체키, 외래키)

  • Key라는 것은 무엇인가를 식별하는 고유한 식별자를 의미한다.
  • Key의 종류
    • 슈퍼키
      • 각 행을 유일하게 식별할 수 있는 하나 혹은 그 이상이 속성들의 집합
      • 유일성만 만족하면 된다.
      • 다중 컬럼이어도 상관없음.
    • 후보키
      • 각 행을 유일하게 식별할 수 있는 최소한의 속성들의 집합으로, 유일성과 최소성이 만족해야한다.
    • 기본키
      • 후보키들 중에 하나를 선택한 키로, 최소성과 유일성을 만족하는 속성으로 테이블의 PK는 오직 1개만 지정가능하다.
    • 대체키
      • 후보키가 2개이상일 경우, 후보키 중 기본키를 제외한 나머지 키를 대체키라고 한다.
    • 외래키
      • 다른 테이블의 데이터를 참조할 때, 없는 값을 참조할 수 없도록 제약을 두는 것이다.
      • 이때, 참조될 열의 값은 참조될 테이블에서 기본키로 설정되어야한다.
      • 부모 테이블이 먼저 삭제될 수 없다. 왜냐하면 부모테이블이 먼저 삭제되면, 자식테이블은 참조하는 것이 없어지기 때문에 외래키 오류가 발생한다.
  • 참조블로그

무결성 제약조건 (도메인 무결성, 개체무결성, 참조무결성)

  • 데이터 무결성은 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말한다.
    • 도메인 무결성 제약조건
      • 도메인 무결성 제약조건은 도메인 제약이라고도 하며, 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만을 가져야한다.
        • 예를 들어, VARCHAR형으로 선언된 Name이라는 변수에는 정수형 integer값이 올 수 없는 경우를 의미한다.
    • 개체 무결성 제약조건
      • 개체 무결성 제약조건은 기본키 제약이라고도 하며, 릴레이션은 기본키를 지정하고, 기본키는 null값을 가져서는 안되며, 릴레이션 내의 오직 하나의 값만 존재해야한다.
    • 참조 무결성 제약조건
      • 외래키 제약이라고도 하며, 릴레이션 간의 참조관계를 선언하는 제약조건이다.
      • 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 동일해야하며, 자식 릴레이션의 값이 변경될 때, 부모 릴레이션의 제약을 받는다.
  • 참조블로그

사용했던 데이터베이스에 대해 설명하시오. (오라클DB, MySQL, MariaDB, MongoDB 등)

  • MySQL
    • 관계형 데이터베이스로, 오픈소스이다.
    • ACID속성을 이용하여 트랜잭션 무결성을 제공한다.
      • A(원자성), C(일관성), 격리(Isolation), 영속성(Durability)
    • InnoDB 및 MyISAM을 포함한 여러 스토리지 엔진을 지원한다.
    • 지리적으로 분산된 시스템에 대한 복제를 지원한다.
    • 많은 정보를 사용할 수 있는 대규모 사용자 커뮤니티이다.
  • 참조블로그