1. 트랜젝션에 대해 설명해주세요.
트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다.
트랜잭션의 주요 목적은 데이터의 무결성과 일관성을 보장하는 것입니다. 여러 작업을 단일 트랜잭션으로 그룹화하여 트랜잭션 내의 모든 작업이 성공적으로 실행되거나 아무 것도 실행되지 않도록 할 수 있습니다.
트랜잭션은 신뢰할 수 있고 일관된 데이터 처리를 보장하는 ACID속성을 따릅니다.
트랜잭션은 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)의 4가지 특징을 가집니다.
원자성은 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것을 의미합니다.
일관성은 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것을 의미합니다.
독립성은 둘 이상 트랜잭션이 동시 실행시 어떤 트랜젝션이라도 다른 트랜잭션 연산에 끼어들 수 없다는 점을 의미합니다.
지속성은 트랜잭션이 성공적으로 완료됬을 경우, 결과는 영구적으로 반영되어야 한다는 점입니다.
2. 인덱스란 무엇인가요?
인덱스는 데이터베이스에서 검색 속도를 높이기 위해 사용되는 자료구조입니다. 인덱스를 생성하면 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장됩니다.
인덱스의 장점은 검색 속도를 향상시키는 것입니다. 하지만 인덱스 생성에 따른 추가적인 저장 공간이 필요하며, 삽입, 삭제, 수정 작업 시에도 인덱스를 업데이트해야 하므로 성능 저하가 발생할 수 있습니다.
'코딩공부 > 개발지식' 카테고리의 다른 글
[14회 - 데일리과제] 시간복잡도&공간복잡도 / typeORM & Sequelize (0) | 2023.05.03 |
---|---|
[13회 - 데일리과제] 정규화 (0) | 2023.05.01 |
[11회 - 데일리과제] RDBMS와 NoSQL의 특징 및 차이 (0) | 2023.04.26 |
[10회 - 데일리과제] 웹서버와 웹어플리케이션서버/ 프로그래밍언어와 스크립트 언어 (0) | 2023.04.26 |
[9회 - 데일리과제] 정규표현식 / 호이스팅 (0) | 2023.04.25 |