Database

»

Database

데이터베이스가 필요한 이유

  • in-memory 끄면 데이터가 없어짐
  • File I/O 원하는 데이터만 가져올 수 없고 항상 모든 데이터를 가져온 뒤 서버에서 필터링 필요
  • Database 필터링 외에도 File I/O로 구현이 힘든 관리를 위한 여러 기능들을 가지고 있는 데이터에 특화된 서버

SQL

ACID

SQL과 NoSQL의 차이

Schema

데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명입니다

데이터베이스의 청사진과 같습니다

엔티티(Entity)는 고유한 정보의 단위입니다 데이터베이스에서 테이블로 표현됩니다

각 엔티티에는 해당 엔티티의 특성을 설명하는 필드(Filed)가 있습니다 행렬에선 열에 해당됩니다

즉 테이블에 저장된 모든 항목에는 해당 필드가 표현됩니다

레코드는 테이블에 저장된 항목입니다 행렬에서 행으로 볼수 있습니다

다른 테이블에서 테이블의 기본키를 참조할 때 해당 값을 외래 키라고 합니다

데이터베이스 설계

관계형 데이터베이스

구조화된 데이터는 하나의 테이블로 표현할 수 있습니다

  • 데이터(data): 각 항목에 저장되는 값입니다.
  • 테이블(table; 또는 relation) : 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적됩니다.
  • 칼럼(column; 또는 field) : 테이블의 한 열을 가리킵니다.
  • 레코드(record; 또는 tuple) : 테이블의 한 행에 저장된 데이터입니다.
  • 키(key) : 테이블의 각 레코드를 구분할 수 있는 값입니다. 각 레코드마다 고유한 값을 가집니다. 기본키(primary key)와 외래키(foreign key) 등이 있습니다.

관계 종류

테이블과 테이블 사이의 관계

  • 1:1 관계 하나의 레코드가 다른 테이블의 레코드 한개와 연결된 경우입니다 자주 사용하지 않습니다
  • 1:N 관계 관계형 데이터베이스에서 가장 많이 사용하는 관계
  • N:N 관계 여러 개의 레코드가 다른 테이블의 여러개의 레코드와 관계있는 경우입니다 N:N 관계를 위해 스키마를 디자인할때는 join 테이블을 만들어 관리합니다

테이블 스스로 관계를 가질 수도 있습니다.

  • self referencing 관계