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
- 트랜잭션 실행으로 인해 데이터에 적용된 변경 사항이 저장되도록 보장합니다. 시스템 오류가 발생해도 마찬가지입니다.