본문 바로가기
데이터베이스

데이터베이스

by 성건희 2019. 5. 16.
반응형

DBMS

  • 데이터베이스 관리 시스템 (Database Management System)
  • 이게 굳이 왜 있어야 할까?
    • 데이터베이스를 좀 더 효율적으로 관리하도록 도와주는 소프트웨어
    • 생산성
      • DBMS가 없다면 : 개발에 필요한 기본 기능(CRUD)들을 수작업으로 구현해야함
      • DBMS 사용 시 : 기본 기능들이 구현이 되어있어 효율적
    • 기능성
      • DB를 다루는 다양한 기능 제공
      • ex) 다수의 요청 대응, 유저에 의한 DB 관리 기능 확장
    • 신뢰성
      • 하드웨어(하드디스크 등..)를 여러대로 구성하여 확장성(Scalability), 부하 분산(Load balancing)을 구현
      • export, import등의 기능을 통해 데이터베이스 백업이 가능

Scalability (확장성) 란?

  • 규모의 조절이 가능한 것
  • 운영의 효율을 위해 사용자가 늘어나면 서버를 늘리고, 사용자가 줄어들면 서버를 줄이는 구조를 가진 서비스는 Scalable하다고 말할 수 있다.
  • ex) Scale Out

Scale Up VS Scale Out

 

Scale Up

  • 장점
    • 한대의 서버 운영 프로그램만 작성하면 되니 구현이 비교적 쉽다.
    • 서버 운영의 부담이 적다.
  • 단점
    • 하드웨어 성능이 좋아질수록 가격이 기하급수적으로 증가해 서버를 여러대 두는 것 보다 비싸다.
    • 효율적으로 자원을 활용하지 못한다.
    • 상대적으로 Scalable하지 못하다.

Scale Out

  • 장점
    • 필요에 따라 서버 추가, 제거가 용이하다. (Scalable)
    • 초기 투자 비용이 적다.
    • 서버 대수가 증가할수록 완전한 서버 중단이 일어날 확률이 줄어든다.
  • 단점
    • 여러 대의 서버 인스턴스를 효율적으로 사용하기 위해 프로그램 구현 시 고려해야 할 사항이 증가한다.
    • 서버간 통신이 필요할 경우 Scale Up 방식보다 성능이 떨어질 수 있다.
    • 서버 운영에 대한 부담이 증가한다.
    • 여러대의 서버를 이용하더라도 사용자에게는 단일 시스템으로 보여지도록 하기위한 작업이 필요함 (네트워크 장비, 컨트롤러 등)

SQL 명령

  • DDL
    • 데이터 정의 명령어
    • CREATE, DROP
  • DML
    • 데이터 조작 명령어
    • SELECT, INSERT, UPDATE, DELETE
  • DCL
    • 데이터 제어 명령어
    • 트랜잭션, 데이터 접근권한 제어하는 명령어 포함
    • GRANT, REVOKE

데이터베이스 종류

  • 계층형 데이터베이스
    • 폴더처럼 계층 구조로 데이터를 저장하는 방식
    • 거의 사용안함.
  • 관계형 데이터베이스
    • 엑셀 처럼 표 형식으로 데이터를 저장하는 방식
    • SQL을 사용하는 유일한 데이터베이스
    • RDBMS로 불림
    • 대표적인 제품
      • Oracle
      • MySQL
      • SQLite
        • DB를 파일로 저장
        • 임베디드 시스템에 자주 쓰이는 작은 RDBMS
  • 객체지향 데이터베이스
    • 객체 자체를 데이터로 저장하는 방식
  • XML 데이터베이스
    • XML 형식으로 기록된 데이터를 저장하는 방식
  • 키-밸류 스토어(KVS)
    • 해시 테이블처럼 키와 밸류로 구성된 데이터를 저장하는 방식
    • NoSQL (Not only SQL)부터 생겨난 데이터베이스
    • 열 지향 데이터베이스로 불린다.
    • 주로 세션을 관리하는 별도의 세션 서버 데이터베이스로 사용됨
    • ex) Redis

데이터베이스 방언

RDBMS의 제품들마다 조작은 비슷하지만 명령어가 조금씩 다르다.

이것을 '방언'이라고 한다.

이러한 방언때문에 만약 회사 서비스의 DB가 MySQL이었는데, 추후 Oracle로 변경할 경우 방언이 달라 코드를 전부 수정하고 이해해야 하는 비용이 발생하여 DB를 바꿀 엄두가 안나는 상황이 발생하게 된다.

최근에는 이러한 문제를 해결하기 위한 '표준 SQL'이 도입되어 방언이 많이 줄었다.

RDBMS의 클라이언트/서버

RDBMS는 Web 처럼 요청(request)과 응답(response) 형태로 동작한다.

하지만 RDBMS는 데이터베이스에 접근하는 ID, PWD를 통한 사용자 인증 작업을 추가로 한다.

인증에 실패하면 데이터베이스에 접속할 수 없다.

루프백 (Loop Back) 주소

자기 자신을 가리키기 위한 목적으로 쓰기 위해 예약된 IP주소

ex ) 127.0.0.1, localhost

 

참고

SQL 첫걸음 ~ p.50
반응형

'데이터베이스' 카테고리의 다른 글

Liquibase (리퀴베이스) 사용기  (0) 2022.07.08
대용량의 데이터로 MySQL 학습하기  (0) 2022.01.12
인덱스란?  (0) 2019.10.17
MySQL 데이터 저장 시 한글 깨짐 현상  (2) 2019.04.08

댓글