4.1 데이터베이스의 기본
2026-06-07
스터디를 함께 진행했음
데이터베이스 : 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음
DBMS : 데이터베이스를 제어, 관리하는 통합 시스템

엔터티
여러 개의 속성을 지닌 명사
- 약한 엔터티 : 다른 엔터티의 존재에 의존적인 엔터티
- 강한 엔터티 : 다른 엔터티의 존재에 의존적이지 않은 엔터티
릴레이션
데이터베이스에서 정보를 구분해서 저장하는 기본 단위. 엔터티에 대한 정보를 릴레이션 하나에 담아서 관리한다.
- 관계형 데이터베이스에서는 테이블이라 한다. (레코드 → 테이블 → 데이터베이스)
- NoSQL 데이터베이스에서는 컬렉션이라고 한다. (도큐먼트 → 컬렉션 → 데이터베이스)

속성
릴레이션에서 관리하는 구체적이고 고유한 이름을 갖는 정보
예: 이름, 별명, 전화번호, …
도메인
각각의 속성들이 가질 수 있는 값의 집합
필드와 레코드
- 필드 :
- 레코드 : 테이블에 쌓이는 행 단위의 데이터. 튜플이라고도 한다.

필드 타입 (MySQL 기준)
- 숫자
TINYINTSMALLINTMEDIUMINTINTBIGINT
- 날짜
DATEDATETIME: 5바이트TIMESTAMP: 4바이트.DATETIME보다 표현할 수 있는 날짜 범위가 작다.- DATETIME과 TIMESTAMP 관련 참고 : MySQL DATETIME, TIMESTAMP 데이터 타입에 대한 분석
- 문자
CHAR(N): 고정 길이 문자열VARCHAR(N): 가변 길이 문자열TEXT: 큰 문자열 저장 (예 : 게시판의 본문, …)BLOB: 이미지, 동영상, … 보통은 직접 저장하기보다는 S3같은 서버에 이미지를 올리고 DB에는VARCHAR로 파일 경로를 저장하는 방식을 사용한다.ENUM: 단일 선택만 가능SET: 복수 선택도 가능
관계
테이블과 테이블 사이의 관계
- 1:1 관계
- 1:N 관계
- N:M 관계
키

- 기본키(Primary Key, PK) : 후보키 중에서 선택된 키. NOT NULL 조건을 만족해야 한다.
- 자연키 : 중복되지 않는 것을 자연스레 뽑다가 나오는 키. 언젠가는 변할 수도 있다.
- 인조키 : 인위적으로 부여한 키 (ID 같은 것). 변하지 않기 때문에 보통 기본키는 인조키로 설정한다.
- 외래키(Foreign Key, FK) : 다른 테이블의 기본키를 참조하는 값. 관계를 식별할 때 사용한다.
- 후보키 : 유일성과 최소성을 만족하는 키. 기본키가 될 수 있는 후보들.
- 대체키 : 후보키가 2개 이상일 때 기본키로 지정되지 않은 후보키들
- 슈퍼키 : 유일성을 갖춘 키