본문 바로가기
Coding/CS

CS - RDBMS 기본

by z쿳쿳z 2026. 10. 18.
728x90
반응형

## 테이블 구성: 필드와 레코드

 - 필드 타입: 각 필드로 사용가능한 데이터 유형

 - 키: 테이블 내의 특정 레코드를 식별할 수 있는 값

   - 각 레코드를 식별하고, 테이블 간의 참조를 위해 사용, 테이블의 접근 속도를 높이기 위해 사용

 

키 종류

키 조건 학생 테이블 예시
슈퍼키 유일성 만족 {학번, 이름}
후보키 유일성 + 최소성 학번, 이메일
기본키 후보 키 중 하나를 선정, NULL 불가 학번
외래키 다른 테이블의 기본 키를 참조 수강 테이블의 학번
대체키 기본 키로 선정되지 않은 후보 키 이메일
복합키 두 개 이상의 필드로 구성 수강 테이블의 {학번, 강의번호}

 

기본 키(PRIMARY KEY, PK)

 - 한 레코드를 식별하도록 선정되어 테이블당 하나만 존재 하는 키

 - 유일성과 최소성 만족

 - 중복된 값이 없어야 하고, 반드시 값이 존재해야 하며 레코드를 구분하기 위한 최소한의 정보만으로 이루어져야 한다.

 

외래 키(FOREIGN KEY, FK)

 - 다른 테이블의 기본 키를 참조하는 필드로, 테이블 간의 참조 관계를 형성할때 사용

 

## 테이블 관계

 - 1:1 관계

     - 하나의 레코드가 다른 테이블의 한개 레코드와 대응되는 관계

 - 1:N 관계

     - 하나의 레코드가 다른 테이블의 여러 레코드와 대응되는 관계

 - N:N 관계

     - 한 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 대응되는 관계

     - 테이블 간 N:N 대응 관계는 일반적으로 중간 테이블을 수반

 

## 무결성 제약 조건

 - 데이터베이스에 저장된 데이터의 일관성과 유효성을 유지하기 위해 마땅히 지켜야하는 조건

 

제약조건

1. 도메인 제약

2. 키 제약

3. 엔티티 무결성 제약

4. 참조 무결성 제약

 

도메인 제약

 - 테이블이 가질 수 있는 필드 타입과 범위에 대한 규칙

     - 각 필드 데이터는 원자 값을 가져야 함(더 이상 쪼갤 수 없는)

     - 지정된 필드 타입을 준수해야 함

     - 값의 범위나 기본값이 지정되었을 경우 그를 따라야 함

 

키 제약

 - 중복 값이 존재해서는 안된다.

 

엔티티 무결성

 -  기본키로 지정한 필드는 고유값이어야 하며, null 이 되어서는 안됨 (NOT NULL)

 

참조 무결성

 - 외래키를 통해 다른 테이블을 참조할 때 데이터의 일관성을 지키기 위한 조건

 - 외래키는 참조하는 테이블의 기본 키와 같은 값을 갖거나 null 값을 가져야 함

 

* 만약 참조하는 테이블의 레코드가 수정 or 삭제 되었을 땐?

1. 연산제한(Restrict)

 - 주어진 연산을 수행하지 않는다

2. 기본값 설정(SET DEFAULT)

 - 설정된 기본값으로 대체한다.

3. Null 설정(SET NULL)

 - Null로 대체한다.

4. 연쇄변경(Cascade)

 - 참조하는 레코드도 함께 수정 or 삭제한다.

 

## 마무리

 - Imprint를 개발할 당시 supabase를 통해 DB를 만들었다. Claude Code가 테이블 간 참조에 Cascade를 적용해줬다. 당시에는 뭔지는 정확히 몰랐다. 하지만 강의를 통해서 Cascade의 정확한 기능을 알게되었다.

 - Foreign key는 항상 헷갈렸는데 이번에 개념도 제대로 잡을 수 있었다.

 

참고. 이것이 컴퓨터 과학이다 - 강민철

728x90
반응형

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

CS - 데이터베이스 설계  (0) 2026.10.22
CS - 효율적 쿼리  (0) 2026.10.21
CS - Database SQL  (0) 2026.10.19
CS - Database 용어 정리 및 사용이유  (0) 2026.10.16