DATABASE

jihyun·2021년 9월 16일
0

backend

목록 보기
4/13
post-thumbnail

데이터베이스?

컴퓨터 안에 저장되어있는 숫자 (0 or 1)인 데이터의 집합
"우리가 사용하는 정보의 총 집합"

왜?
데이터를 오래, 체계적으로 보존, 관리하기 위해서!

DBMS?

데이터베이스를 효율적으로 관리하는 소프트웨어

왜?
1. 생산성
시스템 개발 과정에서의 생산성 향상
ex.데이터 검색, 추가, 삭제, 갱신
2. 기능성
데이터베이스를 다루는 고급 기능 제공
ex.기능 확장의 유연함, 고속 검색, 복수 유저 요청, 대용량 데이터 저장
3. 신뢰성
하드웨어를 여러 대로 구성하여 신뢰성을 높이는 동시에 성능 향상 도모
ex.확장성, 부하 분산, 데이터 추출, 데이터 리스토어

관계형 데이터베이스(RDBMS)

행과 열을 가지고 표 형식 데이터를 저장하는 형태의 데이터베이스
가로 방향(열) 세로 방향(행)을 가지는 2차원 표 형식 데이터

각 로우는 고유키(Primary Key)를 가진다.
다른 로우와 겹치지 않는, 하나의 데이터만 정확하게 지칭할 수 있는 고유한 번호인 Primary Key를 통해 특정 로우를 찾거나 인용할 수 있다.

#DB를 구성하고 있는 테이블들이 서로 상호관련성을 가진다.
=> 테이블이 완전히 독립적이지 않고 서로 연관된 사이

관계의 종류?

  1. 일대일 관계
    A 테이블 데이터는 오직 하나의 B테이블 데이터와 연결되고,
    B 테이블 데이터는 오직 하나의 A테이블 데이터와 연결된다.
    ->테이블을 쉽게 합칠 수 있음

    B 테이블의 3칼럼이 A 테이블의 id(PK)를 참조한다.
    ->A 테이블의 id가 B테이블에서 FK(Foreign Key)

    "두 테이블이 서로가 서로의 오직 한 로우에만 연결"

  2. 일대다 관계
    A 테이블 데이터는 B테이블의 여러 데이터와 연결되고,
    B 테이블 데이터는 오직 하나의 A테이블 데이터와 연결된다.

    ex.반려동물- 주인의 관계
    Pets 테이블의 user_id 칼럼은 users의 id(PK)를 참조한다.
    user(1) : pets(N)

    "한 테이블의 로우 하나에 다른 테이블의 로우 여러개가 연결"

  3. 다대다 관계
    A 테이블 데이터는 B테이블의 여러 데이터와 연결되고,
    B 테이블 데이터도 여러 A테이블 데이터와 연결된다.
    중간 테이블이 각 테이블의 PK를 참조한다.

    ex. 책 - 작가의 관계
    한 작가가 여러 책을 쓸 수 있고, 한 책에도 여러 작가가 있을 수 있다.
    #정규화

ACID

  • 원자성- 트랜잭션과 관련된 작업들이 부분적으로 실행되다 중단되지 않는것을 보장하는 능력
  • 일관성- 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성있는 데이터베이스 상태로 유지하는 것
  • 고립성- 트랜잭션을 수행시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것
  • 지속성- 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함

트랜잭션(transaction)

ACID를 보장하면서 일련의 작업들이 마침 하나의 작업처럼 취급되어서 모두 다 성공하거나 아니면 모두다 실패하는 것을 의미

0개의 댓글