Data Base

DB는 여러 사람이 공유하여 사용할 목적으로 체계화 통합, 관리 하는 데이터의 집합 저장되는 대상/저장하는 방법에 따라 웹 서비스의 목적과 성능이 달라짐

Data Base Management System

데이터 베이스를 관리하는 시스템 데이터 베이스를 관리하는 프로그램

종류

RDB

  • Relational Database
    • MS SQL Server
    • MariaDB
    • MySQL
    • PostgreSQL
    • SQLite
    • ORACLE

NoSQL

  • Not only SQL
  • MongoDB

RDB ?

  • 관계형 데이타 모델에 기초를 둔 데이타베이스
  • 데이터를 테이블 형태 ( 열 & 행 ) 로 저장
  • 데이터를 표와 같은 형태로 저장하는 DBMS

SQL

  • Structured Query Language
  • DBMS 에서 데이터를 조작하고 관리하기 위한 언어
    • INSERT
    • SELECT
    • DELETE

SQL의 종류

  • DML
    • Data Manipulation Language
    • 레코드를 조회하거나 수정하거나 삭제하는 등의 역할
    • SELECT : 데이터 조회
    • INSERT : 데이터 삽입
    • UPDATE : 데이터 갱신
    • DELETE : 데이터 삭제
  • DDL
    • Data Definition Language
    • 데이터베이스를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할
    • CREATE : 테이블 생성
    • ALTER : 테이블 변경
    • DROP : 테이블 삭제
    • RENAME : 테이블 이름 변경
    • TRUNCATE : 테이블 초기화
  • DCL
    • Data Control Language
    • 접근하거나 객체에 권한을 주는 등의 역할
    • GRANT : 유저 권한 부여
    • REVOKE : 권환 회수
    • COMMIT : 데이터베이스에 작업 반영
    • ROLLBACK : 작업 이전의 상태로 되돌림
    • SAVEPOINT : 롤백의 기준점

NoSQL

  • 비관계형 데이터 베이스

구조를 정의할 필요 없이 데이터를 저장 및 검색 확장성 , 가용성이 장점 ( 실시간 웹 어플리케이션 & 빅데이터 )

트랜잭션

  • Transaction
  • 데이터베이스의 상호작용 단위
  • 논리적 작업 단위
    • 돈을 계좌에서 인출 하는 작업
    • 학생을 테이블에서 삭제하는 작업

트랜 잭션의 4대 성질

  • ACID
  • 원자성
    • Atomicity
    • 트랜잭션에 속한 각각의 문(데이터를 읽기, 쓰기, 업데이트 또는 삭제하기 위함)을 하나의 단위로 취급합니다. 문 전체를 실행하거나 그 문의 어떤 부분도 실행하지 않거나 둘 중 하나입니다. 이 속성이 있으면 예컨대 스트리밍 데이터 소스가 스트리밍 중에 갑자기 오류를 일으키더라도 데이터 손실과 손상이 방지됩니다.
  • 일관성
    • Consistency
    • 트랜잭션이 테이블에 변경 사항을 적용할 때 미리 정의된, 예측할 수 있는 방식만 취합니다. 트랜잭션 일관성이 확보되면 데이터 손상이나 오류 때문에 테이블 무결성에 의도치 않은 결과가 생기지 않습니다.
  • 격리
    • Isolation
    • 여러 사용자가 같은 테이블에서 모두 동시에 읽고 쓰기 작업을 할 때, 각각의 트랜잭션을 격리하면 동시 트랜잭션이 서로 방해하거나 영향을 미치지 않습니다. 각각의 요청이 실제로는 모두 동시에 발생하더라도, 마치 하나씩 발생하는 것처럼 발생할 수 있습니다.
  • 영속성
    • Durability
    • 트랜잭션 실행으로 인해 데이터에 적용된 변경 사항이 저장되도록 보장합니다. 시스템 오류가 발생해도 마찬가지입니다.