본문 바로가기

전체 글

(185)
19. SQL-DML 보호되어 있는 글입니다.
18. SQL-DDL 보호되어 있는 글입니다.
17. 데이터베이스 보안 데이터베이스 보안은 다음 4가지 측면에서 볼 수 있다 1. 윤리 2. 정책 Ex) 어떤 정보를 보여줄지 3. 시스템 관련 issues Ex) HW 레벨에서 볼지, OS레벨에서 볼지 등등 4. 보안 레벨 Ex) top secret, secret, confidential, unclassfied 등 DB의 정보보안 3원칙 1. 무결성 - 의도적이거나, 예상치 못한 일로 데이터가 무단으로 변경되는 사항 방지 2. 가용성 - 정당한 권한이 있는 사용자가 데이터를 이용할 수 있게 함 3. 기밀성 - DB는 인증되지 않은 사용자로부터 기밀 데이터를 보호해야 함 이 3원칙을 지키기 위한 방법들은 다음 4가지가 있다. 1. access control 접근 제어라고 하며, 인증받지 않은 사용자의 접근을 차단한다. DBMS..
16. Database Recovery Database 에 문제가 발생하면, 마지막으로 성공한 작업으로 돌아감(consistent state) system log는 이런 상황을 대비해, 트렌젝션들에 의해 변경된 data 정보 기록 하지만, 메인 메모리에 대한 정보는 잃음 Recovery 방법엔 크게 2가지가 있다. 1. catastrophic failure - 백업된 다른 archival stoarge로 복구 - 백업된 로그에서, 커밋된 트렌젝션 작업을 실패 지점까지 돌리거나, 다시 실행해 최신 상태 재구성(redo) 2. noncatastrophic failure - 데이터베이스에서 inconsist를 유발할 수 있는 변경 사항 파악 - 디스크에서 완전히 커밋되지 않은 트렌젝션은 처음부터 다시 해야 함(undo) - 일관성 유지를 위해, 작..
15. Dead lock 교착상태. 2개의 트렌젝션 A, B가 각각 X, Y에 대한 lock 을 가지고 있을 때, 다음을 가정해보자. 1. A는 Y의 lock을 요구한다. 2. B는 X의 lock을 요구한다. A가 Y의 lock을 받기 위해선, B가 X를 받아야 하고, 그 반대의 경우도 마찬가지다. 이렇게 서로 상대방의 lock만 보는 상황을 Dead lock, 교착 상태라 한다. Transaction Timestamp (TS) 가장 많이 쓰는 prevention 기법 Transaction이 시작한 시간별로, wait를 할지, restart를 할지 결정 시간이 작으면, old 트렌젝션 시간이 크면 new 트렌젝션 으로 본다. Ex) 오후 2시 : 14:00, 오후 4시 : 16:00 wait-die Ti가 old 트렌젝션, Tj..
14. Concurrency Control Concurrency Control Protocols 이전 장에서 본 Serialize 검증 기법은 너무 비효율적이기에 설계된 프로토콜. 다음 방식들을 상용한다. 1. Locking 2. Timestmap 3. Multiversion CC Protocols 4. Optimistic protocols 5. Multiple granularity Concurrency Control Two-Phase Locking 기법 0(unlock)과 1(lock)을 사용해, 외부 트렌젝션의 접근 차단 2PLP라고도 한다. 규칙은 다음과 같다. 1. 데이터 X에 대해 read/write 연산을 하고 싶으면, X에 대한 lock을 얻어야 한다. 2. 종료되기 전엔 모든 개체에 대해 unlock (lock 반환) 3. lock..
13. serialize schedule n개의 transaction으로 구성된 스케줄이 있을 때, 그 스케줄이 동일한 transaction으로 구성된 임의의 serial 스케줄하고 equivalent하면, 그 스케줄은 serializable 하다. 여기서 equivalent는 '동등한'뜻을 가지고, 똑같다란 의미가 아닌 동격이란 의미로 봐야 함 Result equivalent 결과의 동등. 스케줄 S와 S`의 DB에서의 최종 결과가 같을 때, 이 두 스케줄을 equivalent하다고 본다. 다만 연산 과정에서 지금 예시처럼 안 맞는 문제가 발생해, 적절한 방법은 아니다. 이처럼 연산에 위 예시처럼 '100이 들어가는 가정하에' 란 가정(assumption)이 들어가면 안 되고, 양쪽 연산이 동일하게 적용돼야 equivalent한 스케줄이라 볼..
12. Transaction Processing Transaction - 데이터베이스 처리(process)의 논리적 연산 - Transaction은 하나 이상의 DB접근 연산자를 포함함 - read-only, read-write transaction으로 나뉜다. Transaction의 성질 Atomicity(원자성) : 실패 아니면, 성공만 있고, 반만 성공하는 경우는 없다. 은행을 예로 들면, Transaction에 실패해 예금 됐단 기록은 남았는데, 돈이 보내지는 경우가 생기면 안 되므로, 돈이 보내지지 않았다면, 예금 됐단 기록도 없던 걸로 한다. Consistency(일관성) : 성공적으로 수행된 Transaction들만 DB에 저장되어야 한다. Isolation(고립성) : 여러 Transaction이 동시에 수행되더라도, 다른 Transac..