everydayminder
트랜잭션 DB에서의 트랜잭션이란, 보통 데이터베이스의 어떤 변경을 유발하는 작업 단위를 의미한다. 논리적으로 한 개의 실행 단위를 뜻하며, 물리적으로는 한 개 혹은 여러 개의 실행단위가 묶여 실행되기도 한다. 설명의 편의성을 위해, 종종 은행 계좌간 돈을 이체하는 사례가 주로 인용된다. 트랜잭션의 특징 - ACID DB에서의 트랜잭션은 아래 네 개의 특징을 지닌다. Atomicity Consitency Isolation Durability Atomicity(원자성) 트랜잭션은 논리적으로 하나의 실행단위여야 한다. 물리적으로 여러 개의 statement로 구성되어 있다 하더라도 논리적인 단위로 묶일 수 있어야 한다. 하나의 실행단위라면, 실행시 두 개의 상태로 귀결된다. 성공하거나 실패하거나 (all or..
DB 설치하지 않고 온라인으로 쿼리 실행해 보려면? DB가 설치되어 있고 적절한 DB client가 설치되어 있다면, 직접 접속해서 실행해 보면 제일 정확할 것이다. 그러나, 다음과 같은 상황이라면 어떨까? 기본적인 동작 구조만 확인하고 싶다. 다른 종류의 DB에서는 어떻게 동작하는지 확인하고 싶다. 다른 종류의 DB에서는 어떤 구문/ 문법으로 쓰이는지 확인하고 싶다. 실제 데이터는 아니지만, 소규모 데이터로도 동작시킬 수 있다. 대략, 이와 같은 조건이 만족된다면 굳이 해당 종류의 DB를 직접 설치할 필요는 없을 것이다. 물론, 실제 개발까지 지속적으로 한다면 설치를 하는 것이 맞는 선택일 것이다. 그러나, 요새는 docker를 적극 활용하면 예전처럼 모든 것을 처음부터 직접 설치하고 설정하는 번거로움..
만약, DB의 한글 설정이 UTF-8로 되어 있고 (show variables like 'c%' 로 확인) 웹서버든 프로그램 상에서든 인코딩을 맞춰서 넣어준다고 치자. 컴퓨터에서 HeidiSQL 같은 프로그램을 써서 DB에 접속해 보면, 한글이 문제 없이 디스플레이 된다. 그러나, command로 mySQL client 접속해보면, 한글이 깨지는 경우가 있다. 그럴 때, set names euckr 이라고 하면, 테이블의 데이터가 정상으로 디스플레이된다. 물론, 그 상태에서 update 문을 실행해도 이상없이 업데이트가 수행된다.