자세히보기

공부 나눔 (Sharing Study)

[CS] 데이터베이스의 기본

윤스톤 2023. 9. 12. 10:53

* 이 게시글은 ⌜면접을 위한 CS 전공지식 노트⌟ 서적으로 공부한 내용을 개인적으로 정리한 것입니다.

 

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

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

→ DBMS마다 정의된 쿼리언어를 통해 삽입, 삭제, 수정, 조회등을 수행할 수 있으며 실시간 접근과 동시 공유가 가능

 

엔터티 : 여러 개의 속성을 지닌 명사 (ex.회원)

A가 B의 존재 여부에 따라 종속적이라면 A는 약한 엔터티, B는 강한 엔터티 (ex. 방과 건물)

 

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

(관계형 데이터베이스에서는 "테이블" / NoSQL 데이터베이스에서는 "컬렉션" 이라고 함)

 

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

(ex. '차' 라는 엔터티의 속성: 차 번호, 바퀴 수, 색상, 차종 등)

 

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

(ex. 성별이라는 속성의 도메인: {남, 여})

 

레코드가 쌓여서 테이블이, 테이블이 쌓여서 데이터베이스가 됨

 

필드 타입 : 필드는 타입을 가짐

- 숫자 타입 : TINYINT(1), SMALLINT(2), MEDIUMINT(3), INT(4), BIGINT(8) 등

- 날짜 타입

   : DATE(3) : 날짜O, 시간X

     DATETIME(8) : 날짜O, 시간O + 1000년~9999년

     TIMESTAMP(4) : 날짜O, 시간O + 1970년~2038년

- 문자 타입

    : CHAR : 글자수 입력 + 글자수 고정

      VARCHAR : 글자수 입력 + 글자수 가변

      TEXT : 큰 문자열 저장 (게시판 본문)

      BLOB : 큰 데이터 저장 (이미지, 동영상) > 대신 파일을 서버에 올리고 경로를 VARCHAR로 저장함

      ENUM : 문자열 열거 + 단일 선택 (최대 65,535개)

      SET : 문자열 열거 + 다중 선택 (최대 64개)

 

관계 : 데이터베이스에는 여러 개의 테이블이 있고 테이블은 서로의 관계가 정의되어있음

- 1:1 관계 : 한 유저당 유저 이메일은 한 개씩 (유저 - 유저 이메일)

- 1:N 관계 : 한 유저당 여러 개의 상품을 장바구니에 넣음 (유저 - 상품)

- N:M 관계 : 학생도 여러 개의 강의를, 강의도 여러 명의 학생을 포함 가능 (학생 - 강의)

     (이 경우, 학생_강의 라는 새로운 테이블을 만들어 1:N, 1:M으로 연결)

 

: 테이블 간의 관계를 더 명확하게 하고, 테이블 자체의 인덱스를 위해 설정된 장치

- 기본키 : 유일성과 최소성을 만족하는 키, 테이블 중 고유하게 존재하는 속성

     (자연스럽게 뽑다가 나오는 자연키 + 인위적으로 부여하는 인조키)

- 외래키 : 다른 테이블의 기본키를 그대로 참조하는 값, 개체와의 관계를 식별하는 데 사용 (중복가능)

- 후보키 : 기본키가 될 수 있는 후보 + 유일성과 최소성을 만족하는 키

- 대체키 : 후보키가 두 개 이상일 경우, 어느 하나를 기본키로 지정하고 남은 후보키

- 슈퍼키 : 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키

반응형