DBP정리

정예서·2026년 3월 25일

My_TIL

목록 보기
6/13
post-thumbnail

관계 데이터 모델과 제약조건

관계 데이터 모델?

데이터를 테이블 형태로 표현한다.

  • 데이터는 행(row)과 열(column)로 구성.
  • SQL을 사용하여 데이터 검색 가능.
  • 데이터 독립성을 제공하여 데이터와 프로그램의 관리가 독립적.

릴레이션

데이터를 저장한느 기본 구조로 2차원 테이블 형태의 데이터 집합을 의미합니다.
릴레이션 == 테이블 (릴레이션을 실제 데이터베이스 시스템에서는 테이블이라고 부름)
<릴레이션의 특징>

  • 튜플과 애트리뷰트의 순서는 의미가 없음
  • 각 애트리뷰트는 하나의 값만 가짐.
  • 관계 모델에서는 동일 튜플 존재 불가
    => BUT 실제 DBMS에서는 가능하기 때문에 제약조건을 걸어야한다!

튜플

릴레이션(테이블)의 각 행(row)
튜플 == 레코드

애트리뷰트

릴레이션(테이블)의 열(column)
애트리뷰트는 “값들을 묶는 기준(이름)” 의미를 알 수 있도록 이름을 부여한 것

도메인

애트리뷰트 값의 허용 가능한 범위를 의미한다.

INT => 정수
VARCHAR => 문자열
DATE => 날짜

NULL 값

릴레이션(데이터)에 튜플(레코드)을 삽입할 때 일부 애트리뷰트(속성) 값을 지정하지 않았다면 null값을 사용한다. (숫자 0 / 공백 문자 " " / 빈 문자열)

-- NULL의미 : 값 없음/해당 값이 존재X/해당 속성 적용
일반값 or null 다르게 연산에 참여하면 결과는 NULL

릴레이션 스키마 or 인스턴스

릴레이션 스키마
짧게 설명하자면 테이블의 설계도(틀)
ex) 튜플 테이블을 보면 사용자(이름, 나이, 성별)
사용자 = 테이블 이름
이름, 나이, 성별 = 애트리뷰트들

릴레이션 인스턴스
실제 데이터 튜플 테이블의 있는 철수,영희,민수,지은이의 데이터 값들을 설명하는 것이 릴레이션 인스턴스라고 합니다.

릴레이션 키?

릴레이션에서 각 튜플(레코드)을 고유하게 식별하기 위해 사용되는 애트리뷰트(속성)이다.

  • 슈퍼키(Super Key)
    • 튜플(레코드)을 고유하게 식별할 수 있는 속성 집합
    • 튜플을 식별할 수 있다면 모두 슈퍼키가 될 수 있다.
    • but 불필요한 속성이 포함될 수 있다.
  • 후보키(Candidate Key)
    • 슈퍼키 중에 불필요한 속성을 제거한 것이 후보키이다.
    • 후보키는 속성 삭제 가능.
    • 모든 릴레이션(데이터)에는 최소 한 개 이상 존재해야함
  • 기본키(Primary Key) : 후보키 중에서 하나를 선택하여 사용하는 키
    <조건>
    • NULL 값 불가
    • 중복 값 불가
  • 왜래키(Foreign Key)
    • 다른 데이터(릴레이션) 기본키를 참조하는 애트리뷰트
      ex) 만약 사용자의 테이블이 있고, 수강과목 테이블이 있다면 수강과목에 있는 사용자의 "이름"은 참조한(왜래키)이다.

무결성 제약조건

데이터베이스에 저장되는 데이터가 항상 올바른 상태로 유지되도록 제한하는 규칙이다.
종류로는 도메인, 엔티티, 참조 무결성이 있다.

도메인 무결성

속성이 가질 수 있는 값의 범위를 제한하는 것

엔티티 무결성

기본키(NULL값을 가질 수 없다, 중복될 수 없다)

참조 무결성

외래키 값이 참조하는 테이블의 기본키 값과 일치해야 한다는 규칙
외래키로 사용되는 값은 반드시 참조하는 테이블에 존재하는 값이어야 함

0개의 댓글