You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DB에서의 트랜잭션과
서버 어플리케이션의 트랜잭션은 비슷한 기능이지만
각각 처리하는 곳이 다르다.
DB의 트랜잭션은 DB 내의 작업에 대한 단위이고
서버 어플리케이션의 트랜잭션은 서버 로직(가령 비즈니스 로직과 같은 것..?)을 처리하는 대한 단위
Atomicity (원자성)
페이 사용자가 결제를 시도할 때 성공을 한다면 성공 처리가 되어야 하고 실패를 한다면 실패 처리가 되야 한다. 중간에 성공이나 실패가 처리되다가 종료될 수 없다.
Consistency (일관성)
받은 금액 - 보낸 금액 = 0원이 되야한다. <제로썸 게임>
Isolation (고립성)
다른 트랜잭션 단위에 간섭을 받지 않는다.(MUTEX)
Durability? (지속성)
시스템 장애 시에도 트랜잭션 작업의 결과가 보장된다.
이를 보장하려면 회복기능이 필요하다.
트랜잭션의 필요성
트랜잭션의 상태
커밋
롤백
인덱싱
인덱스란?
<정의>
데이터베이스의 색인 기능입니다.
데이터의 주소에 빠른 접근이 하도록 <키,포인터> 구조로 관리하는 파일이다.
<필요한 이유>
<인덱스가 안좋은 상황>
Problem :
유찬 - Update나 Delete 연산이 잦은 테이블에 인덱스 적용은 좋지 않다. 읽기/쓰기 측면으로 유리한 부분을 채택
Why? :
찬양 - 수정, 삭제가 자주 발생하면 계속해서 다시 인덱스를 수정해야하기 때문에 성능상 문제가 발생한다.
영범 - 파편화...? Row 별로 메모리에 Range 가 저장되어 있으면 중간에 빵꾸나서 파편화가 나려나 ㅋ
포스팅 - 인덱스 파일을 따로 두기에,
추가 - 애초에 RDB가 쓰기가 아닌 읽기를 주목적으로 둔 DB이기에 빠른 조회를 위해 설계된 인덱스를 사용하는 것은 장점을 더 부각하는 것, 쓰기 성능이 주목적이라면 NOSQL을 사용하는게 좋다.
관계형 데이터베이스 (RDB)
관계형 데이터베이스란?
특징
관계를 사용하는 데이터베이스
장점
실세계와 연관성이 있기에 보편적이다. (보편성)
확장성 있다. (확장성)
관계를 정의하기 좋다 (흐음.. **성..?ㅠ)
단점
구조로 표현은 가능하다해도 구현의 난도가 있는 경우가 있다.
(성능을 개선하는 방안이 있지만) 대용량을 처리하는 상황에서 비효율적이다.
설계에 많은 시간을 할애해야한다.
트랜잭션이란?
트랜잭션 Wiki
DB를 지탱하는 트랜잭션
정의
RDB에서 한 작업을 처리해야할 단위
성공
실패
4가지 특성 ACID
예시 - 각 회사의 결제 시스템을 예시를 들어보자.
페이 사용자가 결제를 시도할 때 성공을 한다면 성공 처리가 되어야 하고 실패를 한다면 실패 처리가 되야 한다. 중간에 성공이나 실패가 처리되다가 종료될 수 없다.
받은 금액 - 보낸 금액 = 0원이 되야한다. <제로썸 게임>
다른 트랜잭션 단위에 간섭을 받지 않는다.(MUTEX)
시스템 장애 시에도 트랜잭션 작업의 결과가 보장된다.
이를 보장하려면 회복기능이 필요하다.
트랜잭션의 필요성
트랜잭션의 상태
커밋
롤백
인덱싱
인덱스란?
<정의>
데이터베이스의 색인 기능입니다.
데이터의 주소에 빠른 접근이 하도록 <키,포인터> 구조로 관리하는 파일이다.
<필요한 이유>
<인덱스가 안좋은 상황>
Problem :
유찬 - Update나 Delete 연산이 잦은 테이블에 인덱스 적용은 좋지 않다. 읽기/쓰기 측면으로 유리한 부분을 채택
Why? :
찬양 - 수정, 삭제가 자주 발생하면 계속해서 다시 인덱스를 수정해야하기 때문에 성능상 문제가 발생한다.
영범 - 파편화...? Row 별로 메모리에 Range 가 저장되어 있으면 중간에 빵꾸나서 파편화가 나려나 ㅋ
포스팅 - 인덱스 파일을 따로 두기에,
추가 - 애초에 RDB가 쓰기가 아닌 읽기를 주목적으로 둔 DB이기에 빠른 조회를 위해 설계된 인덱스를 사용하는 것은 장점을 더 부각하는 것, 쓰기 성능이 주목적이라면 NOSQL을 사용하는게 좋다.
Primary Index & Secondary Index
차트월드맨
B+ Tree
B-Tree
B+Tree
Hash Table
<동작 과정>
운영체제
페이징기법
The text was updated successfully, but these errors were encountered: