SQL

김수영·2021년 7월 24일
0

SQL(Structured. Query Language)이란?

  • 관계형 데이터베이스 관리 시스템(RDBMS0의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어디ㅏ.
  • 데이터가 구조화된(고정된) 테이블을 사용한다.
  • MySQL, Oracle, SQLite, PostgresSql, MariaDB 등이 있다.

Query란?
질의문, 즉 데이터베이스에 저장되어 있는 정보를 Query를 통해 요청해서 받아오는 것
Query의 예시로는 url의 “?” 뒷부분도 Query의 일종이다.

##File I/O

  • 파일을 읽는 방식으로 작동하는 형태다.
  • in-Memory에 비해 엑셀, CSV 같은 파일 형태로 데이터를 저장하는 방식으로 데이터를 저장할 수는 있었다.
  • 하지만, 데이터가 필요할 때마다 전체 파일을 읽어야 해서 파일의 크기가 커지면 무거워진다는 단점이 있다.
  • 또한, 파일이 손상되거나 여러 개의 파일을 동시에 다뤄야하는 등 복잡하고 데이터 량이 많아질수록 작업이 힘들어진다.

ACID

  • 트랜잭션(Transaction)이란?

데이터베이스의 상태를 변환시키는 하나의 기능을 수행하기 위한 작업을 의미 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.
트랜잭션의 특징은 성공과 실패가 분명하고 상호 독립적이며, 일관되고,믿을 수 있는 시스템을 의미한다.

Atomicity(원자성)

  • 트랜잭션의 작업이 전부 성공하거나 전부 실패해서 결과를 예측할 수 있어야 한다.
  • 하나의 작업은 성공했지만 그 다음 작업이 실패했다면 트랜잭션은 실패로 돌아가야 한다.
  • 즉, 하나의 단위로 묶여있는 작업 중 하나라도 실패한다면 모든 작업을 실패하게 만들어 기존의 데이터를 보호 하게 된다.

Consistency(일관성)

  • 데이터의 상태가 일관되어야 한다.
  • 즉, 트랜잭션이 성공하기 전과 성공 후의 데이터베이스의 상태는 이전의 규칙을 만족해서 유효해야 한다.

Isolation(격리성, 고립성)

  • 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 한다.
  • 동시에 여러 개의 트랜잭션이 수행될 때, 트랜잭션은 연속적으로 실행된 것과 동일한 결과를 나타낸다.

Durablity(지속성)

  • 하나의 트랜잭션이 성공적으로 수행되었다면, 해당 트랜잭션에 대한 로그가 남아야 한다.
  • 오류가 발생하더라도, 로그가 남아야 한다.
  • 성공이든 오류든 기록은 영구적으로 남아야 한다.
profile
기술과 인문학의 교차점

0개의 댓글