클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

데이터 입출력 구현 8 - Session 42~44 : 트랜잭션 분석 및 인덱스와 뷰 본문

자격증 공부/정보처리기사 실기

데이터 입출력 구현 8 - Session 42~44 : 트랜잭션 분석 및 인덱스와 뷰

huenuri 2024. 9. 25. 15:40

점심시간에 자투리 시간을 활용해 공부를 시작해본다. 얼마 하지 못하겠지만 그래도 조금이라도 하며 시간을 절약하고 싶었다.


 

 

 

 

세션 42 - 트랜잭션 분석 / CRUD 분석

 


 

 


 

 

 

 

 

 

 

회원에 대한 정보를 읽고 주문 테이블을 생성한다. 주문 변경할 때는 주문된 것 을 읽고 주문목록을 업데이트하면 된다.


 

 

 

 

 

이제 문제를 풀어볼 것이다. 1번은 트랜젝션이다. 2번은 원자성, 독립성이다. 3번은 일관성이고, 4번은 CRUD이다. 5번은 넘어간다.

3번은 원자성이었다. 원자성은 데이터베이스에 모두 반영되도록 완료(COMMIT)되든지 아니면 전혀 반영되지 않도록 복구(ROLLBACK)되어야 하는 것을 뜻한다.

 


 

 

 

세션 43 - 인덱스

 

 

찾고 싶은 데이터를 눈에 볼 수 있도록 표시해주어야 한다.

 

 

 

 

이렇게 학생의 학번과 주소의 인덱스를 만들어준다. 그러면 학번 1004는 실제 기억장소인 471에 저장되어 있도록 해준다.

 

 

 


 

 

 

 

 

 

 

1번은 인덱스이다. 2번은 잘 모르겠고, 3번은 클러스터드 방식이다.

트리 기반 인덱스는 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것이다. 비트맵 인덱스는 인덱스 컬럼의 데이터를 Bit 값이 0 또는 1로 변환하여 인덱스 키로 사용하는 방법이다. 도메인 인덱스는 개발자가 필요한 인덱스를 직접 만들어 사용하는 것이다.


 

 

 

 

섹션 45 - 뷰 / 클러스터

 

 

 

사용자는 모든 테이블이 아닌 검색한 테이블만 볼 수 있다. 앞의 두 테이블은 보여지지 않는데 이렇게 실제로 존재하지 않는 데이터를 뷰라고 한다.

 

 

 

 

 

 

 

 

 

문제를 풀어보겠다. 1번은 CREATE, DELETE 같다. 2번은 뷰이고, 3번은 클러스터.. 다른 건 잘 모르겠다. 이제 답지를 보며 채점을 해보자.

두 문제나 틀렸다. 뷰 하나 겨우 맞췄다. 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용한다. 이 부분은 읽지도 않은 내용이었다. 처리 범위가 넓은 경우에는 단일 테이블 클러스터링을, 조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용한다.

 


 

 

 

학습을 마치고

점심을 먹고 오후 수업에 40분이나 늦게 왔더니 부담임 선생님께 조금 혼났다. 다음에는 2시에 가능하면 맞춰서 와야겠다. 늦게 와도 집에서 공부를 더 많이 하는 건 아니었다. 점심도 먹고 하다보면 1시간이 금방 지나간다. 이제 오후 공부는 2시간 반밖에 남지 않아서 정말 아쉽다.

인덱스와 뷰 많이 어렵지는 않지만 외워야 하는 것들이 참 많았다.