[코비] 4.1 데이터베이스의 기본

최정윤·2023년 9월 11일
0

코비

목록 보기
15/38
  • 데이터베이스는 일정한 규칙, 혹은 규악을 통해 구조화되어 저장되는 데이터의 모음이다.
  • 해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS라고 하며, 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 query를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다.
  • 또한 데이터베이스는 실시간 접근과 동시 공유가 가능하다.

4.1.1 엔터티

  • 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다.

    A라는 엔티티가 B라는 엔티티에 종속적이라면 A는 약한 엔티티이고 B는 강한 엔티티가 된다.

4.1.2 릴레이션

  • 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다.
  • 엔티티에 관한 데이터를 릴레이션 하나에 담아서 관리한다.
  • 릴레이션은 관계형 데이터베이스에서 테이블이라고 하며, noSQL 데이터베이서 컬렉션이라고 한다.
  • 관계형 데이터베이스는 record - table - database로 이루어져 있고,
    NoSQL 데이터베이스는 document - collection - database로 이루어져 있다.

4.1.3 속성

릴레이션이 관리하는 구체적이며 고유한 이름을 갖는 정보이다.

4.1.4 도메인

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

4.1.5 필드와 레코드

record

테이블에 쌓이는 row 단위의 데이터를 record 또는 tuple이라고 한다.

Field Type

숫자 타입

날짜 타입

DATE

  • 날짜
  • 1000-01-01 ~ 9999-12-31
  • 3byte

DATETIME

  • 날짜 및 시간
  • 1000-01-01 00:00:00 ~ 9999-- 12-31 23:59:59
  • 8byte

TIMESTAMP

  • 날짜 및 시간
  • 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07
  • 4byte

문자 타입

CHAR

  • 고정 길이 문자열이며 길이는 0 ~ 255 사이의 값을 가진다.
  • 레코드를 저장할 때 선언한 길이 값으로 고정해서 저장한다.
  • 유동적이지 않은 길이를 가진 데이터에서 효율적이다.

VARCHAR

  • 가변 길이 문자열이며 0 ~ 65,535 사이의 값을 가진다.
  • 입력된 데이터에 따라 용량을 가변시켜 저장한다.
  • 길이 정보를 저장하기 위해 255 이하의 길이는 1byte, 255를 초과하는 길이는 2byte의 추가 공간이 필요하다.
  • 유동적인 길이를 가진 데이터에서 효율적이다.

TEXT

  • 게시판 본문 등 큰 문자열을 저장할 때 사용한다.

BLOB

  • 이미지, 동영상 등 큰 데이터를 저장할 때 사용한다.

ENUM

  • 열거한 문자열에서 단일 선택만 가능하다.
  • 각각의 enum 값은 index가 할당된다. (1부터 시작하며 0은 빈 문자열 오류 값의 index)
  • 최대 65,535개의 요소를 넣을 수 있다.

SET

  • 여러 개의 데이터를 선택할 수 있다.
  • 비트 단위의 연산이 가능하다.
  • 최대 64개의 요소를 넣을 수 있다.

4.1.6 관계


데이터베이스는 여러 개의 테이블이 있고 테이블 간의 관계가 정의되어 있다. 이 관계를 관계 화살표로 나타낸다.

4.1.7 키

Primary key

유일성과 최소성을 만족하는 키이다.

자연키

  • 주민등록번호 등의 속성
  • 언젠가 변하는 속성을 가진다.

인조키

  • 인위적으로 id 부여 ex. Oracle: sequence, MySQL: auto increment
  • 자연키와 대조적으로 변하지 않는다.
  • 보통 인조키를 기본키로 설정한다.

Foreign Key

다른 테이블의 기본키를 그대로 참조하여 개체와의 관계를 식별하는 데 사용한다.

Candidate key

기본키가 될 수 있는 후보들이며 유일성과 최소성을 모두 만족해야 한다.

Alternate key

후보키 중에서 기본키로 선택되지 않고 남은 키이다.

Super key

각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키이다.

[참고링크]

profile
개발 기록장

0개의 댓글