데이터베이스
-
성장하자! - 트랜잭션데이터베이스 2025. 3. 19. 15:44
이 글을 작성하는 이유는 내가 최근에 기술면접을 보았다. 거기 질문 중에 하나였던 "트랜잭션을 왜 쓸까요?" 였다. 나는 단순하게 "변경사항이 있으면 commit 하거나 예기치 못한 예외가 있으면 Rollback를 해주기 위해서 사용한다" 라고 답을 했다. (너무 수준이 낮은 답변이였다고 생각한다.) 그리고 또 이런 질문이 있었는데 "DB Lock 알고 있나요?", "트랜잭션 격리 수준이 뭘까요?" 답을 제대로 못했다... 면접이 끝나고 면접 복기를 하는데 이 질문의 의도가 무엇이고 어떤 답을 했어야 했을까? 라는 생각이 들었다. 그래서 이번 글에서는 MySQL의 동시성에 영향을 미치는 Lock, 트랜잭션, 트랜잭션의 격리 수준에 대해서 다시 공부를 하고자 이 글을 쓴다.우선 트랜잭션이다. 단순히 트랜..
-
[데이터베이스] Trigger 트리거데이터베이스 2024. 10. 6. 19:50
Trigger는 MYSQL 에서 테이블에서 어떤 이벤트가 발생 했을 때 자동으로 실행되는 것을 말한다 이벤트 리스너라고 이해하면 된다 다시 말해,어떤 테이블에서 특정한 이벤트가 발생했을때 (연산 inser, delete, update 등등) 실행시키고자 하는 추가 쿼리 작업들을 자동으로 수행할 수 있게끔 트리거를 미리 설정해 두는 것이다(테이블에 부착되는 프로그램 코드) MYSQL은 View에 트리거 부착이 불가능하다고 한다 트리거 종류 행 트리거 테이블 안의 영향을 받은 행 각각에 대해 실행 된다변경 전 행이나 변경 후 행은 OLD, NEW 라는 가상 줄 변수를 사용하여 읽을 수 있다여기에서 OLD 는 이름의 뜻처럼 예전 데이터 라는 의미이며 delete로 삭제되 데이터나 update로 바뀌기전의..
-
[데이터베이스] index는 무엇인가데이터베이스 2024. 8. 9. 14:37
인덱스란? 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터 베이스 테이블의 검색 속도(조회)를 향상시키기 위한 자료구조이다즉, 저장 공간에 번호를 매기는 것 과 같다고 이해 하면 된다 사용자가 특정 데이터를 찾기 위해 query 문을 입력하게 된다고 하면 테이블의 모든 데이터를 검색해야 한다 -> 시간이 오래 걸림 하지만 index란 자료구조를 사용하게 된다고 하면 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회 할 수 있다 위 그림과 같이 user가 조회를 한다고 하면 index에서 해당 데이터의 위치를 찾고 table에서 가져온다 기존에는 table에서 Full Scan을 수행해야한다 하지만 index 로 인해 시간을 단축 시킬수 있다 조회(SELECT) 뿐만이 아닌 UPDATE, ..
-
[DB] 트랜잭션의 모든 것데이터베이스 2024. 6. 28. 10:48
트랜잭션이란?트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 특징트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다.사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위이다.하나의 트랜잭션은 Commit되거나 Rollback된다. ACID원자성(Atomicity)트랜잭션이 DB에 모두 반영되거나 전혀 반영되지 않아야 한다일관성(Consistency)트랜잭션의 작업 처리 결과는 항상 일관성 있어야 한다독립성(Isolation)둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 ..
-
[데이터베이스] 정규화? 비정규화? (Normalization & De-normalization)데이터베이스 2024. 5. 24. 14:43
정규화 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정테이블 간에 중복되는 데이터를 허용하지 않는다는 것중복된 데이터를 허용하지 않음으로써 무결성을 유지할 수 있다 릴레이션 : 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다. 결국, 릴레이션은 DB 테이블이다.무결성 : 데이터의 정확성, 일관성, 유효성이 유지 되는 것을 의미이상현상 : 테이블을 설계할때 잘못 설계하여 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류 (삽입 이상, 갱신 이상, 삭제 이상) 장점 데이터베이스 변경 할때 이상현상을 제거 할 수 있음정규화된 데이터베이스에서는 새로운 데이터 형의 추가로 인한 확장 시 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다 단점 릴레이션을 나눔으로써 릴레이션 ..