검색

검색어를 입력하세요

4.1 데이터베이스의 기본

스터디를 함께 진행했음

데이터베이스 : 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음

DBMS : 데이터베이스를 제어, 관리하는 통합 시스템

데이터베이스와 DBMS

엔터티

여러 개의 속성을 지닌 명사

  • 약한 엔터티 : 다른 엔터티의 존재에 의존적인 엔터티
  • 강한 엔터티 : 다른 엔터티의 존재에 의존적이지 않은 엔터티

릴레이션

데이터베이스에서 정보를 구분해서 저장하는 기본 단위. 엔터티에 대한 정보를 릴레이션 하나에 담아서 관리한다.

  • 관계형 데이터베이스에서는 테이블이라 한다. (레코드 → 테이블 → 데이터베이스)
  • NoSQL 데이터베이스에서는 컬렉션이라고 한다. (도큐먼트 → 컬렉션 → 데이터베이스)

엔터티와 릴레이션

속성

릴레이션에서 관리하는 구체적이고 고유한 이름을 갖는 정보

예: 이름, 별명, 전화번호, …

도메인

각각의 속성들이 가질 수 있는 값의 집합

필드와 레코드

  • 필드 :
  • 레코드 : 테이블에 쌓이는 행 단위의 데이터. 튜플이라고도 한다.

필드와 레코드


필드 타입 (MySQL 기준)

  • 숫자
    • TINYINT
    • SMALLINT
    • MEDIUMINT
    • INT
    • BIGINT
  • 날짜
  • 문자
    • 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개 이상일 때 기본키로 지정되지 않은 후보키들
  • 슈퍼키 : 유일성을 갖춘 키