본문 바로가기

개발자가 되기 까지48

트랜잭션 트랜잭션 트랜잭션은 하나의 논리적인 작업을 처리하기 위한 일련의 연산 집합으로서 데이터베이스에서 논리적인 작업의 단위가 된다. Commit 연산 - 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산. - 데이터를 변경한 트랜잭션이 완료되면, 그 트랜잭션에 의해 데이터베이스는 새롭게 일관된 상태로 변경되며, 이 상태는 시스템에 오류가 발생하더라도 취소되지 않는다. Rollback 연산 - 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성이 깨졌을 때 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산이다. - 해당 트랜잭션은 받았던 자원과 잠금을 모두 반환하고, 재시작되거나 폐기된다. SavePoint - 트랜잭션 내에서 일부 .. 2023. 10. 14.
이상현상, 함수적 종속성, 정규화 이상현상 이상현상은 데이터베이스에서 발생하는문제 또는 부작용을 의미한다. 이상현상은 데이터의 무결성이 깨지거나 의도치 않는 결과가 발생하는 현상으로, 주로 데이터의 삽입, 갱신, 삭제 작업이나 쿼리 수행에 따라 발생한다. 1. 삽입 이상(Insert Anomaly) - 데이터를 삽입할 때 발생하는 이상을 의미한다. - 테이블의 일부 속성을 삽입하기 위해 필요한 정보가 부족하거나, 특정 조건을 만족하지 않으면 데이터를 삽입할 수 없는 경우가 이에 해당한다. - 예를 들어, 학생 정보를 담고 있는 테이블에서 학생의 주소와 전화번호가 필요한데, 학생 저보만 삽입 되어 있고 주소나 전화번호 정보가 없는 경우가 있을 수 있다. 2. 갱신 이상(Update Anomaly) - 데이터를 갱신할 때 발생하는 이상을 의.. 2023. 10. 14.
인덱스 (Index) 인덱스? 인덱스는 데이터베이스에서 특정 테이블의 검색 속도를 향상시키기 위한 자료 구조이다. 인덱스는 테이블 내의 열(Column)에 대한 검색을 더 빠르게 수행할 수 있도록 데이터의 논리적인 순서를 유지하고, 검색 연산을 효율적으로 수행할 수 있도록 지원한다. 1. 빠른 검색 : 인덱스를 사용하면 특정 열에 대한 검색 연산(주로 WHERE 조건)을 빠르게 수행할 수 있다. 인덱스는 특정 값이나 범위에 해당하는 레코드를 빠르게 찾아준다. 2. 정렬 및 유지 : 인덱스는 해당 열의 데이터를 정렬하여 저장하고 유지한다. 따라서 정렬된 데이터를 유지함으로써 이진 검색과 같은 효율적인 알고리즘을 사용할 수 있다. 3. 고유성 보장 : 유니크 인덱스는 특정 열의 값이 고유하도록 보장하며, 기본 키 제약 조건을 구.. 2023. 10. 14.
HDD와 SSD, 랜덤 I/O, 순차 I/O HDD와 SSD CPU의 처리 속도나 RAM과 같은 전기적인 원리로 동작하는 메모리의 I/O 속도는 매우 빠른 속도로 발전했다. 하지만 디스크 같은 기계적 장치는 CPU, RAM 대비 제한적으로 발전했다. 특히 HDD는 마치 LP판 같이 특정 위치에 디스크 헤드를 위치시켜 플래터(원판)을 회전시켜 읽거나 쓰는 원리로 매우 성능이 느리다. 이를 플래시 메모리로 보완하여 HDD 대비 속도가 빠른 SSD가 등장하였다. 메모리와 HDD의 처리 속도는 10만배 이상 차이난다. 반면 플래시 메모리를 사용하는 SSD와 메모리의 차이는 1,000배 가량 차이난다. 또한 순차 I/O 에서는 SSD가 HDD 대비 조금 빠른 수준이나, 랜덤 I/O에서는 SDD가 HDD 대비 훨씬 빠르다. DBMS에서 발생하는 대부분의 I/.. 2023. 9. 29.