21.02.24(DataBase)

_kim Hodu·2021년 2월 24일
0

IM26 TIL

목록 보기
11/12

DB Goals

3 Tier Architecture 를 이해한다.

  • 클라이언트 / 서버 / 데이터베이스 이렇게 3개의 Tier로 구성되어있다

클라이언트(프레젠테이션 계층)

  • 말 그대로 사용자가 직접 마주하게 되는 계층
  • 사용자 인터페이스를 지원
  • GUI 또는 프론트엔드라고도 부른다
  • 사용자 인터페이스와 관련없는 데이터를 처리하는 로직은 포함X
  • HTML,JS,CSS,사진자료 등이 이 계층에 해당

서버(어플리케이션 계층)

  • 요청되는 정보를 어떠한 규칙을 바탕을 처리하고 가공하는것 담당
  • 비즈니스 로직 계층 or 트랜잭션 계층이라고 함
  • 클라이언트 계층한테는 서버처럼 동작 (응답)
  • 데이터 계층에 대해선 클라이언트 처럼 행동 (요청)
  • 미들웨어 또는 백엔드라고 불림
  • HTML,CSS나 데이터 관리 관련 코드는 포함X
    -PHP,Java 등이 해당

데이터베이스 (데이터 계층)

  • 데이터베이스와 데이터에 엑세스해서 읽기 쓰기를 관리 하는 프로그램
  • 데이터베이스를 주로 뜻함
  • DB또는 File System에 접근 관리
  • back-end라고도 한다
  • MySQL,DB,Oracle DB

영속성(비휘발성)

  • 데이터를 생성한 프로그램이 실행이 종료되도 사라지지 않는 데이터의 특성
  • 파일 시스템 , 관계형 데이터베이스 , 객체 데이터베이스에서 활용해 구현
  • 영속성을 갖지않는건 메모리에만 존재하기때문에 프로그램을 종료하면 정보는 모두 날라가 버린다
  • 특정 데이터 구조를 이전 상태로 복원하게 해주어 프로그램이 종료되거나 재개로 부터 자유로움
  • DB서버가 없어지지않는한 한번 저장된 데이터는 영구적 저장됨

데이터베이스 종류

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

ex) Oracle, MySQL, PostgreSQL, MariaDB 등

장점

  • 업무 변화에 대한 적응력이 높아 쉽게 활용됨
  • 유지보수가 편함 => 생산성이 향상
  • 명확하게 스키마(틀)이 정의되어있다
  • 데이터 무결성을 보장

단점

  • 다른 DBMS보다 더 많은 자원활용으로 시스템이 부하가 높음
    DBMS는 데이터베이스 매니지먼트 소프트웨어

NoSQL (Not Only SQL)

ex) MongoDB, Cassandra, Hbase 등

장점

  • 스키마가 없기에 유연한 작성 가능
  • 데이터가 애플리케이션이 필요한 형태로 저장되 읽는 속도 빠름

단점

  • 유연성으로 인해 데이터 구조결정이 늦어질 수 있음
  • 데이터라 여러 컬렉션에 중복되 수정(update)할때 모든 컬렉션을 수정해야함

RDB에서 테이블이라하는걸 NoSQL에선 컬렉션이라 하고
RDB에서 레코드라 하는걸 NoSQL에선 문서라고 부른다

핵심적인 차이는

SQL세계에서는 정해진 스키마를 따르지 않으면 데이터를 추가할수없음

NoSQL세계에서는 다른 구조의 데이터를 같은 컬렉션(=table)에 추가 할수있음

NoSQL에는
조인(join)이라는 개념이 없다

관계형 데이터베이스와 NoSQL의 차이를 이해한다.
관계형 데이터베이스 및 NoSQL이 어떤 경우에 적합한지 이해한다.

profile
개발자를 향해

0개의 댓글