japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
『신개념 4단계 리눅스기술지원 시스템 공개』

※ 『무료 리눅스 배포판 배송서비스』 ※

※ 게시판 용도에 맞지 않는 글(광고및 홍보 글 등)은 임의삭제될 수 있습니다.

 
작성일 : 09-11-17 17:55
[CUBRID] - 큐브리드 매니저를 이용한 데이터 갱신과 트랜잭션
 글쓴이 : 문학청년
조회 : 2,189  
본 문서는 CUBRID(큐브리드)의 매니저를 이용한 데이터 갱신 방법과 트랜잭션에 대해서 설명합니다.


큐브리드 매니저를 이용한 데이터 갱신

큐브리드 매니저를 이용하면 SQL문을 입력하지 않고도 간단히 데이터를 갱신할 수 있다. 복잡한 질의를 통해 계산된 값을 입력하는 경우에는 불편할 수 있지만, 단순한 데이터를 갱신할 때는 SQL문을 작성하는 것보다 편리할 때가 있다. 큐브리드 매니저는 GUI에서 데이터를 갱신하면 갱신 과정과 동일한 기능을 하는 SQL문을 자동으로 생성하여 보여준다.

개최 연도가 ‘2012’년이고 개최 국가가 ‘England’, 개최 도시가 ‘London’인 Olympic 정보를 삽입해보자. 그림.1과 같이 해당 테이블 목록에서 마우스 오른쪽을 누른 뒤 데이터 입력을 클릭하면 그림.2와 같은 데이터 입력 창이 뜨는데, 해당 값들을 입력하고 입력 버튼을 클릭하면 대화 상자 하단에 해당 SQL문이 자동으로 생성되고 레코드의 삽입이 완료된다.



그림.1

그림.2


트랜잭션

트랜잭션은 일관성이 보장된 특정 데이터 작업의 최소 단위를 말한다. 여기서 말하는 일관성이란 하나의 작업에서 두 개의 쿼리를 사용한다고 가정할 때, 두 쿼리 모두 완벽하게 실행이 되었을 경우에만 작업이 완료되는 것을 말하며, 두 쿼리 중 하나라도 오류가 발생하게 되면 작업을 쿼리 실행 전으로 되돌리는 것을 말한다.



예제 1

√ 문제

 Olympic 테이블에서 slogan이 NULL인 모든 레코드의 값을 ‘Fighting’ 으로 수정하는 쿼리를 작성하라.


√ SQL문 1

 
UPDATE olympic 
SET slogan = 'Fighting' 
WHERE slogan IS NULL 


√ SQL문 2

 
SELECT  host_year, host_nation, host_city, slogan 
FROM   Olympic 



√ 결과

 
NO host_year host_nation host_city slogan
5 1988 Korea Seoul Harmony and progress
6 1984 USA Los Angeles Play part in History
7 1980 USSR Moscow Fighting
8 1976 Canada Montreal Fighting
9 1972 Germany Munich Fighting
10 1968 Mexico Mexico City Fighting



 


예제 1에서 20건의 모든 slogan 컬럼의 값이 수정되는 것이 아니면 하나의 레코드도 갱신되지 않도록 DBMS가 일관성을 보장 해야 한다. 예를 들어, 10번째 레코드까지 수정한 상태에서 컴퓨터 시스템이 다운된 후에 다시 가동되었을 경우, DBMS는 어떻게 대응 해야 하는가? 만약에 수정 연산이 처음부터 다시 시작하게 된다면 10번째 레코드까지는 두 번 중복되게 수행하는 결과를 초래한다.

따라서 DBMS는 단일 SQL문을 이용하여 데이터를 갱신할 때 전체가 다 반영되거나 하나도 반영 되지 않도록 한다. 이러한 속성을 원자성(Atomicity)이라 한다.

트랜잭션에 대해 보다 자세한 사항은 아래 링크를 참조한다.

http://www.cubrid.com/online_manual/cubrid_820/syntax/syntax_tran_intro.htm



자동 커밋 모드를 해제한 상태라 하더라도 테이블을 생성하거나 제거하는 등 데이터 정의어를 이용한 SQL문은 자동 커밋이 된다.


그림 3

예제 2

√ 문제

 자동 커밋 모드를 해제한 상태에서 code 테이블의 모든 데이터를 삭제한 후, code 테이블의 레코드들의 수를 조회하고, ROLLBACK 명령을 이용하여 트랜잭션을 철회한 후 code 테이블의 레코드들의 수를 조회하라.


√ SQL문 1

 

  --- <자동 커밋 모드 비활성화> -- 
DELETE FROM code;

SELECT COUNT(*) 
FROM code ;


√ 결과 1

 
NO COUNT(*)
1 0


√ SQL문 2

 

ROLLBACK;

 

SELECT COUNT(*) 
FROM code;



√ 결과 2

 
NO COUNT(*)
1 6



√ 설명

 자동 커밋 모드가 비활성인 상태이면 모든 데이터 갱신은 COMMIT 명령을 수행할 때까지 실제 시스템에는 반영되지 않는다. 그러나 현재 연결 중인 질의 편집창에서는 그 동안 갱신한 내역이 반영된 상태로 조회할 수 있다. 갱신 질의들은 ROLLBACK 명령을 이용하여 한꺼번에 취소할 수 있다.



예제 3

√ 문제

 1988년 서울 올림픽 때, 전산 오류로 인해 한국의 금메달 5개가 동메달로 잘못 기록되었으므로 한국의 동메달 5개를 빼고 금메달 5개를 추가하는 쿼리를 작성하라.


√ SQL문 1

 

  --- <자동 커밋 모드 비활성화> -- 
UPDATE participant SET gold = gold + 5 
WHERE host_year=1988 AND nation_code='KOR' 


 

SELECT host_year, nation_code, gold, silver, bronze

FROM participant;

 

 

√ 결과 1

 
NO host_year nation_code gold silver bronze
1 1988 KOR 17 10 6


√ SQL문 2

 

UPDATE participant SET bronze = bronze - 5 
WHERE host_year=1988 AND nation_code='KOR'; 


 

COMMIT ;

 

SELECT host_year, nation_code, gold, silver, bronze

FROM participant;



√ 결과 2

 
NO host_year nation_code gold silver bronze
1 1988 KOR 17 10 6



 



이 글을 트위터로 보내기 이 글을 페이스북으로 보내기

 
   
 


『신개념 4단계 리눅스기술지원 시스템 공개』

CentOS 리눅스 전문서적 국내최초출시

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.

 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~
 
▷ 질문과 답변
리눅스
서버해킹/보안
네트워크
아파치
메일서버
DNS
PHP
JSP
MySQL
큐브리드
Oracle
MRTG
SMS
Weblog
Domain
S/W
하드웨어
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.