TIL - DB

Taesol Kwon·2020년 3월 1일
0

Wecode

목록 보기
12/32

1. Database

  • 데이터를 저장 및 보존하는 시스템
  • 데이터를 장기 기간동안 보존 하기 위해서 DB에 저장한다.
  • DB없이 쓸 때는 메모리에 저장한다. 메모리는 DB에 비해 매우 빠르지만 종료하면 보존이 되지 않는 단점이 있다.
  • 파일에 저장해도 되는데 왜 DB에 저장하는 걸까? 원하는 데이터를 뽑아 쓰기 쉽게 하려는 이유이다.

1-1. 관계형 데이터베이스(RDBMS, Relational DataBase Management System)

  • 관계형 데이터란, 데이터를 서로 상호관련성을 가진 형태로 표현한 데이터를 말한다.

  • 모든 데이터는 2차원 테이블로 표현 되는데, 각 로우는 고유 키(Primary Key)를 가지고 있어 이를 통해 해당 로우를 찾을 수 있다.

  • 테이블 연결에는 크게 3종류가 있다.

    • one to one
    • one to many
    • many to many
  • 어떻게 테이블과 테이블을 연결하는가?
    : Foreign key(외부키)를 이용하여 주로 연결한다. 위 그림에서 one to one 예에서 user_profiles 테이블의 user_id칼럼은 users 테이블에 걸려있는 외부 키라고 지정한다.

  • 왜 테이블들을 나누어서 저장하는가?
    : 하나의 테이블에 모든 정보를 다 넣으면 동일한 정보들이 불필요하게 중복되어 저장된다. 그래서 효율적으로 테이블을 나누어 연결해 사용한다. 이것을 normalization 이라고 한다.

  • ACID(Atomicity, Consistency, Isolation, Durability)
    : 원자성, 일관성, 고립성, 지속성을 말하는데 어려운 내용이므로 다음에 자세히 공부해보겠다.

  • 트랜잭션(Transaction)
    : 일련의 작업들이 마차 하나의 작업처럼 취급뒤어서 모두 다 성공하거나 아니면 모두 다 실패하는걸 이야기 한다. 예) 송금(돈을 보냈지만 돈을 못 받거나 할 수 없다)

1-2. NoSQL 데이터베이스

  • 비관계형 타입의 데이터를 저장할때 주로 사용하는 시스템
  • 관계형은 데이터를 저장하기 전에 어디에 어떻게 저장해야할지 정의해야 하지만 비관계형은 정의할 필요가 없다.

1-3. SQL VS NoSQL

SQL에 대해 더 알고 싶다면,
<참조블로그> https://stackoverflow.com/c/wecode/questions/147/148#148

profile
사진촬영을 좋아하는 프론트엔드 개발자입니다.

0개의 댓글