2024 05 08 SQL [트랜젝션]

김필립·2024년 5월 8일

SQL

목록 보기
10/10

❎👶📗📘📙📚📖📃📂🤔🎷✍🍼🔒🔓🔏🔐💾🔑📃📜📄📑📰📂📁🍼🔒📌

트랜잭션이란?

📂트랜잭션의 특징

원자성(Atomicity)

  • 트랜잭션에 포함된 작업은 전부 수행,아니면 전부수행되지 않아야 함.
    [all or notting]

일관성(Constency)

  • 트랜잭션을 수행하기 전이나 수행한 후나 데이터베이스는 항상 일관된 상태를 유지

고립성(Isolation)

  • 수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경 중인 데이터 값을 훼손 X

지속성(Durability)

  • 성공적으로 수행된 트랜잭션은 영원히 반영되어야 한다.

✍트랜잭션의 수행과정

🤔 버퍼를 쓰는 이유가 뭔가요?

  • 개발자가 확인하기위한 (LOG)입니다. 패치 기록이나 사용기록등을 확인합니다.

📂 트랜잭션의 성질


📚 원자성(Atomictity)이란?

  • 리턴이 있냐 없다에 따라 프로시저,펑션이 나뉜다.

📰 일관성

🍼 고립성(Isolation)

  • 트랜잭션 1이 모두 사용되어야 트랜잭션 2가 1이 사용하던 권한접근 가능
    • 쓰레드 우선순위 왔다갔다 [특정시간을 정해서 사용가능]

📃 지속성(durability)


👶 트랜잭션과 DBMS

외워야함📌

  • 원자성,지속성 = 회복관리자를 사용
  • 일관성 = 무결성 제약조건
  • 고립성 = 동시성 제어 알고리즘


📙 동시성 제어개념

동시성 제어 (concurrency control)

  • 오손=쓰레기
  • 쓰기,쓰기 동일시 되면 독립성 위반 = 허용 XXX

📖 갱신 손실문제

  • 그냥 일어나면 안되는 애임 A가 저장할때 B가 영향받으면
    파일 자체가 덮어씌워짐

📂 락

  • 공중화장실 안에 사람이 있는지 모르는데 열려있다?
    • 문을 열었는데 사람있으면 당황스럽기때문에 자물쇠 사용

🔓 락의 개념

  • 락을 걸면 > 언락 해줘야함

🔓 락의 유형

🙄2단계 락킹?

  • 락을 걸고 해제하는 시점에 데이터 일관성이 깨질 수 있어 이를 방지하는 방법

🔐 데드락?(deadlook)

  • 교착상태
    [두개 이상의 트랜잭션이 데이터 락을 획득하고
    상대방 데이터에 대한 락을 요청했을때 무한 대기에 빠질 수 있는현상]
    t1 = A[락요청] t2 = B[락요청]
    알고보니 둘 다 a,b를 사용해야함.
    A는 B가 끝날때까지 무한대기 B도 동일
  • 해결방법: A자체를 지워버림 [롤백] B는 A,B사용가능

연습문제 풀이

  • 1-2 정답은 1번!
  • 병행성이 낮아진다? [동시실행성이 낮아짐]
  • 락킹 오버헤드?
    • 내 허용치를 벗어나는 경우 발생 [단위가 작아질수록 늘어남]

📂 오손읽기 (dirty read)

♻ 반복 불가능 읽기

  • Update = 반복불가능

👻유령데이터 읽기

  • 유령데이터 읽기는 반복불가능 읽기와 비슷하지만 삽입 = 유령데이터

😴 트랜잭션 고립수준 명령어


📖 연습문제 풀이

  • 공유락이 걸려있기에 반복불가능 읽기의 현상이 이러나는 것
    • 트랜잭션 t2에서 락을 걸어줘야함

🧊회복의 개념 (recovery)

🥐로그파일 (log file)


🥚 로그파일을 이용한 회복

  • 재실행 REDO
  • 취소 UNDO

🌮 체크포인트를 이용한 회복

트랜잭션 시작 과 끝 (ROLLBACK , COMIT)= SAVEPOINT

  • 로그와 상관X
    체크포인트 = 로그파일에서 사용(UNDO,REDO,CHAECK POINT)
  • 로그를 위한 친구 [COMMIT 있어야 REDO사용 가능]

🌮즉시 갱신 방법

  • 작업이 동시에 진행 [기록 동시기록]

🌮지연 갱신 방법

  • 로그가 끝나고 진행

🧇그림표


🧂 데이터 베이스 업무


🧂 로그인 사용자 관리 [권한관리]

🧇권한관리 예제

  • 찾을 수 없는이유 GRANT(권한)부여를 하지 않았기 때문에

준 권한 뺏기

REVOKE = ON TO FROM
GRANT = ON TO WHITH


역활 - ROLE

DBA - 관리자


profile
기억에 남는 사람입니다

0개의 댓글