[TIL] Day49- SQL

공부중인 개발자·2021년 6월 17일
0

TIL

목록 보기
49/64
post-thumbnail

SQL

  • SQL 이란?

structured Query Language 구조화된 Query 언어
데이터베이스 용 프로그래밍 언어
데이터베이스에 query를 보내 원하는 데이터만을 뽑을 수 있다.

  • Query 란?

직역하면 "질의문"
검색창에 적는 검색어도 Query 의 일종
저장되어있는 정보를 필터 하기 위한 질문

데이터베이스가 필요한 이유

  • In-memory

끄면 사라짐
JavaScript에서 변수를 만들어 저장한다고 해도 프로그램 실행이 종료가 되는 순간 해당 프로그램이 사용하던 데이터도 같이 없어짐
데이터가 프로그램에 의존
원하는 데이터를 원하는 시간에 꺼내오기가 힘들어지고 데이터의 수명이 프로그램의 수명에 의존

  • File I/O

원하는 데이터만 가져올 수 없고 항상 모든 데이터를 가져온 뒤 서버에서 필터링 필요
(서버에 부하가 많이 감)

  • Database

필터링 외에도 File I/O 로 구현이 힘든 관리를 위한 여러 기능들을 가지고 있는 데이터에 특화된 서버

데이터 베이스가 필요한 이유는 필터링 필터링-> Query

기본 쿼리문

Select
Where
And, Or, Not
Order By
Insert Into
Null Values
Update
Delete
Count
Like
Wildcards
Aliases
Joins
Inner Join
Left Join
Right Join
Group By

https://www.w3schools.com/sql/default.asp
이곳에서 각각의 역할과 사용법에 대해서 알 수 있다.

트랜잭션

트랜잭션이란 여러 개의 작업들을 하나의 실행 유닛으로 묶어준 것
각 트랜잭션은 하나의 특정 작업으로 시작을 해 묶여 있는 모든 작업들을 다 완료해야 끝나게 되어있음
만약 한 개의 작업이라도 실패하게 된다면 전부 실패
트랜잭션은 성공 혹은 실패 이 두 개의 결과만 존재
트랜잭션은 미완료된 단계 없이 전부를 성공
데이터베이스 트랜잭션의 정의는 ACID 특성들을 가지고 있다.

ACID

ACID : Atomicity, Consistency, Isolation, Durability
데이터베이스 내에서 일어나는 하나의 트랜잭션 (transaction) 의 안전성을 보장하기 위해 필요한 성질

Atomicity

원자성 (Atomicity)
하나의 트랜잭션이 전부 성공하거나 전부 실패해야 된다

Consistency

데이터베이스 상태 일관성에 대한 성질
트랜잭션 이전과 이후 데이터베이스 상태는 이전과 같이 유효해야 한다
데이터베이스의 제약이나 규칙에 의거한 데이터베이스이어야 한다

Isolation

고립성 (isolation)
하나의 트랜잭션이 다른 트랜잭션과 독립되어야 한다
동시에 여러 개의 트랜잭션들이 수행될 때에 각 트랜젝션은 고립되어 있어 연속으로 실행된 것과 동일한 결과를 나타내야함

Durability

지속성 (durability)
하나의 트랜잭션이 성공적으로 수행되었다면 해당 트랜잭션에 대한 로그가 남고 런타임 오류나 시스템 오류가 발생해도 해당 기록은 영구적이어야 한다


아직 SQL에 대한 지식이 부족하다고 생각해서 더 공부해 본 뒤 뒷 내용을 작성해야겠다.

profile
열심히 공부하자

0개의 댓글