데이터베이스

임찬형·2022년 7월 8일

CS 공부

목록 보기
11/19

데이터베이스

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

DBMS(Database Management System): MySQL등 데이터베이스를 제어, 관리하는 통합 시스템

엔티티

Entity: 여러 개의 속성을 가진 명사. (서비스의 요구 사항에 맞춰)

  1. 강한 엔티티: 혼자서 존재할 수 있으며 종속적이지 않음.
  2. 약한 엔티티: 혼자서 존재할 수 없으며 강한 엔티티에 종속적임

릴레이션

데이터베이스에서 정보를 구분하여 저장하는 기본 단위.

  • 관계형 데이터베이스: '테이블'로 저장
  • NoSQL 데이터베이스: '컬렉션'으로 저장 (ex. key-value 등)

도메인

릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합.

ex) 성별 속성 - {남, 여}

필드와 레코드

예시)

회원(Entity)

  • 속성: 이름, 아이디, 주소, 전화번소
nameIDaddressphone
홍길동gildong1서울112

필드: name, ID, address, phone
레코드: 홍길동, gildong1, 서울, 112

필드 타입

  1. 숫자 타입 (바이트)
    TINYINT(1), SMALLINT(2), MEDIUMINT(3), INT(4), BIGINT(8)

  2. 날짜 타입

  • DATE: 날짜 부분 있고 시간 부분이 없는 값. 3바이트
    1000-01-01 ~ 9999-12-31 범위

  • DATETIME: 날짜 및 시간 부분 포함. 8바이트
    1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 범위

  • TIMESTAMP: 날짜 및 시간 부분 포함. 4바이트
    1970-01-01 00:00:01 ~ 2038-01-19 03:14:07 범위

  1. 문자 타입
    CHAR, VARCHAR 존재하며 모두 "(숫자)"를 뒤에 추가하여 사이즈 지정 가능
  • CHAR: 테이블 생성 시 선언한 길이로 크기 고정해 저장. (0~255 값)
  • VARCHAR: 가변 길이 문자열. 입력 데이터에 따라 용량 가변시켜 저장함 (0~65535 값)
  1. TEXT와 BLOB
    큰 데이터를 저장할 때 쓰는 타입
  • TEXT: 큰 문자열 저장에 쓴다 (게시판 본문)
  • BLOB: 이미지, 동영상 등 큰 데이터 저장. 하지만 보통은 서버에 파일 올리고 VARCHAR로 링크 저장하는 방식 사용.
  1. ENUM과 SET
  • ENUM: ENUM('1', '2') 처럼 쓰이며 이 중에서 단일 선택만 가능하고 이외의 값을 삽입하면 빈 문자열이 삽입됨. (최대 65535개 요소)
  • SET: ENUM과 비슷하나 여러 선택이 가능함. (최대 64개 요소)

관계

1:1 관계: 유저 당 유저 아이디 한 개와 같이 하나씩만 대응. 테이블을 두 개의 관계로 나누어 이해하기 쉽도록 할 수 있음.

1:N 관계: 한 개체가 다른 많은 개체를 포함하는 관계

N:M 관계: 학생과 강의처럼 서로 여러 개체를 포함할 수 있는 관계. N:M은 테이블 두 개를 직접 연결하지 않고 1:N, 1:M 관계를 갖는 테이블로 나누어 사용함.

테이블 간 관계 명확하게 하기 위함 및 테이블 자체의 인덱스를 위해 설정.

  1. 기본키(Primary key): 유일성과 최소성을 만족해 모든 튜플들을 구분 가능한 키. Null 값을 가질 수 없음.

  2. 외래키(Foreign key): 다른 테이블의 기본키를 참조하는 값으로 개체와의 관계를 식별.

  3. 후보키(Candidate key): 기본키가 될 수 있는 후보들로 유일성과 최소성 만족하는 키.

  4. 대체키(Alternate key): 후보키가 두 개 이상인 경우 기본키 외의 키.

  5. 슈퍼키(Super key): 각 레코드를 식별할 수 있는 유일성을 갖춘 키.

0개의 댓글