[데이터베이스] 관계 제약

2025. 3. 26. 14:46·CS/데이터베이스
728x90

국민대에서 데이타베이스시스템(정익사, 이석호저) 교재를 사용하신
김혁만 교수님의 강의를 듣고 정리한 글입니다

키는 투플을 유일하게 식별할 수 있는 속성의 집합이다

예를 들어 속성 중 학번이나 학수번호가 해당 된다

 

기본키에 대해 알아보기 전에 배워야 할 키가 있다

후보키와 슈퍼키이다

 

후보키(Candidate Key)는 릴레이션 집합R에 대한 속성집합 A가 있을 때 A는 유일성과 최소성은 만족해야함

해당 집합은 유일해야하며, 튜플들을 구별하기 위해 최소로 필요하는 속성들을 말한다

 

슈퍼키는 유일성은 만족하지만, 최소성은 보장하지 못하는 키이다

슈퍼키 또한 키의 역할을 할 수 있지만, 속성 수가 너무 많기에 키로 사용하지는 않는다

 

기본키(Primary Key, PK)

후보키 중 키로 사용하기로 한 단 하나의 키이다

일반적으로 키는 이 기본키를 의미한다

기본키를 제외한 후보키에서 선택받지 못한 키들은 대체 키(Alternate Key)가 된다

 

두번째로 알아야 하는 것은 외래키이다

외래키(Foreign Key, FK)

https://velog.io/@so_oyv/기본-키Primary-key와-외래-키Foreign-key-후보키-슈퍼키

한 테이블의 컬럼이 다른 테이블의 기본키를 참조하는 관계를 말한다

일단 참조 관계는 한 테이블의 컬럼이 다른 테이블의 특정 컬럼(보통 기본키)를 바라보는 관계를 말한다

쉽게 말하면 한 테이블의 기본키를 다른 테이블에서 참조해서 사용하면 그 키는 외래키가 되는것이다

 

무결성 제약(Integrity Constraints)

  • 개체 무결성(entity integrity)
    • 기본키 값은 유일하며, 널 값을 가질 수 없다
  • 참조 무결성(referential integrity)
    • 외래키 값은 부모 테이블의 기본키 값과 같거나, 널 값을 가진다

여기서 널 값은 0이나 빈 문자열을 의미하는 것이 아니라 값이 없거나, 아직 모르거나, 비어있다는 것을 의미

 

이외에도 중요한 제약들이 있다

  • 다중값 제약(Multiple value constraint)
    • 속성에 다중값을 저장할 수 없다
    • 예시로 “a, b, c” 같이 다중값을 저장할 수 없다
  • 도메인 제약(Domain constraint)
    • 속성에서 가능한 값의 범위나 형태를 제한할 수 있다
    • 예로 점수는 0~100, 글자는 8자까지
  • 유일성 제약(Uniqueness constraint)
    • 속성의 값이 unique해야 한다, 즉 중복된 값이 들어가면 안된다
728x90

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

[데이터베이스] 개념적 설계(개념적 데이터 모델링)  (0) 2025.04.04
[데이터베이스] 관계 데이터 연산  (0) 2025.03.31
[데이터베이스] 관계 데이터 구조  (0) 2025.03.26
[데이터베이스] DBS  (0) 2025.03.26
[데이터베이스] DB & DBMS  (0) 2025.03.19
'CS/데이터베이스' 카테고리의 다른 글
  • [데이터베이스] 개념적 설계(개념적 데이터 모델링)
  • [데이터베이스] 관계 데이터 연산
  • [데이터베이스] 관계 데이터 구조
  • [데이터베이스] DBS
Dlawoct
Dlawoct
WeekEnd 개발자
  • Dlawoct
    Week-End
    Dlawoct
  • 전체
    오늘
    어제
    • 분류 전체보기 (52)
      • Language (9)
      • Algorithm (8)
      • Backend (7)
        • Spring (7)
        • Node.js (0)
      • DataEnginering (3)
        • Big Data (0)
      • CS (21)
        • 데이터베이스 (10)
        • 컴퓨터네트워크 (9)
        • 운영체제 (2)
      • IT 지식 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    network layer
    스프링
    김영한
    컨테이너
    UDP
    운영체제
    자바
    select
    데베
    프로그래밍 언어
    SQL
    top-n 쿼리
    데이터베이스
    southbound api
    TCP
    northbound api
    Java
    검색문
    쿠버네티스
    관계
    백준
    sdn controller
    db
    언어
    백엔드
    김영한 java 강의
    DML
    SQLD
    도커
    spring
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
Dlawoct
[데이터베이스] 관계 제약
상단으로

티스토리툴바