태그 미디어로그 위치로그
'How to 알티베이스'에 해당되는 글 7건
[How to 알티베이스_7]SQL 테이블 변경 / 삭제
알티베이스™ 라이프

안녕하세요. Jun~입니다.

한해 동안 알티베이스에 관심 가져 주시고 힘을 실어주신 여러분들에게 진심으로
감사드립니다. 2008년 새해에는 지금보다 더 많은 성원 부탁드리며 저도 새로운
각오와 자세로 화이팅 하겠습니다. 연말연시 알차게 보내시고 새해 복 많이 받으세요.

—————————————————————————————————————————-
“How to 알티베이스 7″에서는 저번 시간에 이어서 SQL 에 대해 알아보겠습니다.
—————————————————————————————————————————-

How to  알티베이스 6에서는 테이블의 정보를 조회하는 select, 테이블을 생성하는
create, 테이블에 필요한 속성값을 추가하는 insert에 대해서 알아보았습니다.

오늘은 테이블을 변경하고 삭제해 보는 것에 대해서 알아보려고 합니다.

  * 테이블 변경 및 삭제를 알아보기에 앞서 “DESC(RIBE)”에 대해서 잠시 살펴보고
    갈께요. DESC는 테이블 정의를 나타내는 필수적인 명령어 입니다. 테이블의 각
    칼럼명, 데이터 형, 길이와 크기까지 모두 확인 할 수 있습니다.
    
    저번 시간에 만들어본 dept 테이블 정보를 확인해 볼께요.
    (문법형식 : DEPT table_name)   

사용자 삽입 이미지

   

1) delete
    → delete문은 테이블에서 로우를 제거합니다.
    → 형    식 : DELETE [FROM] table_name [WHERE condition]
    → 예    제 : delete from dept  where deptno =20;
        
    우선 테이블의 로우를 지우기 전에 dept 테이블에 들어있는 값들을 살펴 볼께요.
    How to 6에서 알아본 “select * from dept”로 검색해 보겠습니다.   

사용자 삽입 이미지

 
   총 4개의 로우가 존재하는 군요. 그럼 delete에 예제처럼 전 deptno가 20인
   로우를 삭제하려고 합니다. 실행해 보겠습니다.

사용자 삽입 이미지

   dept  테이블에서 deptno가 20인 로우가 삭제된 것을 확인했습니다.

2) update
    → 데이터베이스에 있는 기존의 데이터를 변경할때 사용합니다.
    → 형    식 : UPDATE table_name SET column_name1 = expression1 
                          [, column_name2 = expression2] … [ WHERE condition]
                        * 여기에서 table_na,e은 변경할 테이블 명이며, column_name은 변경
                           되는 테이블의 칼럼, expression은 SQL 수식이고, condition은 조건
                           문 입니다.
    → 예   제 : update dept
                       set dname = ‘SEOUL’
                       where deptno = 30;
                       * 이것은  테이블의 deptno가 30인 로우에 대해서 dname을 CHCAGO
                          에서 SEOUL로 변경하는 예제입니다. 실행해 볼께요.

사용자 삽입 이미지

3) drop /  truncate
    → 테이블을 삭제 할때 사용합니다. 단 여기서 말한 테이블 삭제는 엄밀히 말해서
         DROP을 말합니다. 즉, 구조와 데이터 모두를 삭제하죠. 그러나 TRUNCATE를
         수행했을 경우 테이블 구조는 여전히 남아 있습니다.
        
        실습을 통해서 명령어의 차이점을 알아보겠습니다.
    → 형    식 : DROP TABLE table_name;
                        TRUNCATE TABLE table_name;  
    → 예    제 : drop table dept;
                         truncate table dept_ex;

사용자 삽입 이미지

      * drop table dept를 수행한 경과 테이블이 삭제되어 desc로 dept테이블 검색을
         하면 존재하지 않은 테이블이라고 나오는군요.
         그럼 truncate를 실행해서 둘의 차이점을 비교해 볼까요?

사용자 삽입 이미지

   
    * truncate를 수행하고 select를 이용하여 dept_ex테이블을 검색한 결과 로우값은
      존재하고 있지 않지만 테이블 구조는 여전히 남아 있군요.

오늘은 테이블의 변경 / 삭제에 대해서 알아봤습니다. 열심히 만들어논 테이블을
한줄의 명령으로 날려버리다니 가슴 아프시죠?! 물론 간단한 롤백으로 지운 테이블을
되살릴 수 있지만 drop, truncate 명령어는 롤백이 불가능 합니다.

하지만 백문이 불여일타!!! 
한번더 테이블을 생성하고 삭제를 해본다면 다시 명령어 사용법을 위해 책이나 웹을
뒤지지 않아도 될꺼에요. 그럼 오늘도 수고하셨습니다.

'알티베이스™ 라이프' 카테고리의 다른 글

[ALTIBASE MMDBMS Case Study]10_LGT WAP 1.2 GW  (0) 2014.02.07
행복한 2008년 되세요~~~~  (0) 2014.02.07
2007년을 보내며..  (0) 2014.02.07
shift 연산  (2) 2014.02.07
어느 농부의 이야기  (0) 2014.02.07
[How to 알티베이스_6]SQL 기본
알티베이스™ 라이프

안녕하세요. Jun~입니다.

2007년 12월 19일 오늘은 17대 대통령선거일 입니다.
5년동안 대한민국을 책임질 대통령을 선출하는 의미있는 날이죠.

저는 벌써부터 어떤 후보가 대통령이 될 지 조바심을 내며 방송에 경청하고 있답니다.

후보 중 누구라도 국민의 지지를 얻어 대통령이 되신다면 초심을 잃지 말고 진정으로
국민을 위해서 힘써 주셨으면 좋겠네요. 그리고 자신이 뽑은 후보가 대통령에 당선
되지 않았다고 실망하거나 낙담하지 마시고 당선된 대통령을 믿고 힘을 실어주어야
겠습니다.

그럼 차분한 마음으로 How to 알티베이스 6를 시작하겠습니다.
—————————————————————————————————————————-
“How to 알티베이스 6″에서는 SQL 기본 문법에 대해서 알아보겠습니다.
—————————————————————————————————————————-
전 시간에 SQL(Strucutred Query Language)은 데이터 베이스로 저장되는 데이터를
조작하고, 관리하며 검색하기 위한 언어라고 말씀드렸는데요. SQL은 영어와 유사해
습득하기가 비교적 수월합니다. 그럼 따라해 볼까요?!

1) select 
    → 알티베이스에 존재하는 테이블에 대한 정보를 보여 줍니다.
    → 문법형식 : SELECT Select_list FROM table_name;
    → 예        제 : select * from tab;

사용자 삽입 이미지


2) create table
    → 알티베이스에 새로운 테이블을 생성합니다.
    → 문법형식 : CREATE TABLE table_name(
                               columm_name1 datatype,
                                ….
                               columm_nameN datatype);
          ; 여기서 table_name은 새로 만들려는 테이별 명이며 columm_name1에서
            columm_nameN은 새로운 테이블에 포함될 칼럼 명입니다. 그리고 datatype은
            각 칼럼의 데이터 형을 나타냅니다. 쉽죠?! 이처럼 SQL은 사람의 말처럼 풀어
            서 쓰는 듯한 느낌이 듭니다.
     → 예        제 : CREATE TABLE dept(
                                deptno number(2),
                                dname varchar(14),
                                loc barchar(13));
 
           ;dept 테이블의 속성 값 표현
                                deptno(부서번호)
                                dname(부서이름)
                                loc(부서위치)

사용자 삽입 이미지

    select 문으로 방금 생성한 dept 테이블을 조회해 봤습니다.
    테이블만 만들었기 때문에 안에 아무런 내용이 없겠죠?
    이제 안에 관련된 내용을 추가해 보도록 하겠습니다.

3) insert
     →  생성된 테이블에 로우를 추가합니다.
     →  문법형식 : INSERT INTO table_name
                                [column_name1, column_name2, ...]
                                VALUES
                                [column_value1, column_value2, …);
              ;여기서 table_name은 로우가 삽입되는 데이블 이름이며, column_name은
               table_name에 속산 칼럼이고, column_value는 데이터형이 column_name와
               일치하는 문자 값 또는 수식입니다.
      → 예        제 : INSERT INTO dept
                                (deptno, dname, loc)
                                VALUES
                                (10, ‘ACCOUNT’, ‘NEW_YORK’);

사용자 삽입 이미지

가장 기본이 되는 SELECT, CREATE, INSERT에 대해서 알아 보았습니다.  
이러한 명령어는 프로그램 내부 구문에서도 사용되고 수많은 데이터를 검색하고
입력 하는데 사용됩니다. 물론 더 많은 기능들이 있고 더 쉽게 테이블을 만들과 값을
입력하는 많은 방법을 알티베이스는 제공하고 있습니다.

추가적으로 알티베이스는 사용자의 편의를 위해 ADMIN CENTER라는 사용자 툴을
제공하여 쉽게 데이터 베이스를 관리하고 테이블을 추가 및 삭제할 수 있습니다.

이러한 관련 툴은 나중에 살펴 보도록 하고 우선 더 깊이 SQL에 대해서 공부할께요.

그럼 다음 HOW TO 알티베이스 7에서는 더 자세히 알티베이스 SQL 문법에 대해서 
알아보겠습니다. 

'알티베이스™ 라이프' 카테고리의 다른 글

shift 연산  (2) 2014.02.07
어느 농부의 이야기  (0) 2014.02.07
심리학의 초두효과와 첫인상의 중요성  (0) 2014.02.07
[ALTIBASE Hybrid DBMS_09]KTF LMSC 시스템  (0) 2014.02.06
금연 성공 시상식  (0) 2014.02.06
[How to 알티베이스_5]DDL(데이터정의어), DML(데이터조작어), DCL(데이터제어어)
알티베이스™ 라이프

안녕하세요. Jun~ 입니다.

이제 대통령 선거가 D-7일 앞으로 다가왔습니다.
어떤 후보를 선택하고 소중한 한 표를 던질지 결정하셨나요?
얼마전까지 저 또한 아직 결정하지 못하고 주변 사람들의 의견만 수렵하던 중에
팀장님께서 이런 말씀을 해주시더군요. “자신에게 가장 소중히 생각하는 가치가 무엇인
지 물어보라고…” 그 가치에 맞는 사람에게 한표를 주면 된다고 말입니다.

여러분도 자신의 가치를 존중한다면 그 가치에 맞는 후보에게 소중한 한표를 행사하시
기 바랍니다.

그럼 How to 알티베이스 5를 시작하겠습니다.
—————————————————————————————————————————-
“How to 알티베이스 5″에서는 SQL(Strucutred Query Language)와 DDL(데이터정의어),
 DML(데이터조작어), DCL(데이터제어어)에 대해서 알아보겠습니다.
—————————————————————————————————————————-
SQL(Strucutred Query Language)은 데이터베이스로 저장되는 데이터를 조작하고, 
관리하며 검색하기 위한 언어로 간단히 말해서 알티베이스와 통신, 즉 의사소통 하기
위한 명령언어 입니다. SQL은 조금씩 차이가 있지만 알티베이스는 SQL/92의 표준
사양을 지원하며 사용자가 유용하게 사용할 수 있는 다양한 시스템 함수를 지원하고
 있습니다.

SQL은 크게 3가지로 분류할 수 있습니다.

★SQL 분류(3가지)
    - DDL(데이터정의어) : 데이터의 구조를 정의
      * 새로운 테이블을 만들고, 기존의 테이블을 변경 / 삭제하는 등의 데이터를 정의하
        는 역할을 합니다.
      * CREATE       : 새로운 테이블을 생성한다.
         ALTER          : 기존의 테이블을 변경한다.
         DROP           : 기존의 테이블을 삭제한다.
         RENAME      : 테이블의 이름을 변경한다.
         TURNCATE : 테이블을 잘라낸다.

    - DML(데이터조작어) : 데이터를 조회하거나 변경
      * 새로운 데이터를 삽입 / 변경 / 삭제 하는 등의 데이터를 조작하는 역할을 합니다.
      * INSERT        : 새로운 데이터를 삽입한다.
         UPDATE       : 기존의 데이터를 변경한다.
         DELETE       : 기존의 데이터를 삭제한다.

     - DCL(데이터제어어) : 데이터베이스 사용자에게 부여된 권한을 정의
      * 데이터 접근 권한을 다루는 역할을 합니다.
      * GRANT : 권한을 준다
         REVOKE : 권한을 제거한다.

그럼 알티베이스에서 DDL, DML, DCL에 대한 SQL 정의어 목록표를 살펴 볼까요?

데이터정의어(DDL)
    



SQL 


    


ALTER DATABASE


데이터베이스 정의 변경


ALTER INDEX


PERSISTENT 인덱스 변경


ALTER REPLICATION


이중화의 시작종료


ALTER SEQUENCE


시퀀스의 정의 변경


ALTER TABLE


테이블의 정의 변경


ALTER TABLESPACE


테이블스페이스 정의 변경


ALTER TRIGGER


트리거 정의 변경


ALTER USER


사용자의 암호 변경


ALTER VIEW


뷰 재 컴파일


CREATE DATABASE


데이터베이스 생성


CREATE DIRECTORY


디렉토리 생성


CREATE INDEX


인덱스 생성


CREATE QUEUE


큐 생성


CREATE REPLICATION


이중화 생성


CREATE SEQUENCE


시퀀스 생성


CREATE SYNONYM


시노님 생성


CREATE TABLE


테이블 생성


CREATE TABLESPACE


테이블스페이스 생성


CREATE TRIGGER


트리거 생성


CREATE USER


사용자 생성


CREATE VIEW


뷰 생성


DROP DIRECTORY


디렉토리 삭제


DROP INDEX


인덱스 삭제


DROP REPLICATION


이중화 삭제


DROP SEQUENCE


시퀀스 삭제


DROP SYNONYM


시노님 삭제


DROP TABLE


테이블 삭제


DROP TABLESPACE


테이블스페이스 삭제


DROP TRIGGER


트리거 삭제


DROP USER


사용자 삭제


DROP VIEW


뷰 삭제


GRANT


권한 부여


RENAME


테이블시퀀스뷰 이름 변경


REVOKE


권한 삭제


TRUNCATE TABLE


테이블의 모든 레코드 삭제



데이터  조작어(DML)



SQL 


설명


DELETE


데이터의 삭제


INSERT


데이터의 삽입


LOCK TABLE


특정한 모드에서 테이블 잠금


SELECT


데이터의 검색


UPDATE


데이터의 변경


MOVE


데이터의 이동

데이터  제어어(DCL)
  <시스템 제어문>
 -  디스크에 반영(checkpoint) 또는 현재 데이터베이스 상태저장을 할 때 사용됩니다.




SQL 


설명


ALTER SYSTEM


checkpoint, backup 수행

  <작업 제어문>
 - 한 개의 작업 설정 사항을 변경하는 것으로 현재 작업에만 적용됩니다.




SQL 


설명


ALTER SESSION


작업의 설정 사항 변경

   <트랜잭션 제어문>
 - 트랜잭션 설정 사항을 변경하고 종료와 철회를 사용자가 명시적으로 할 때 사용됩니다.




SQL 


설명


COMMIT


트랜잭션 정상 종료


ROLLBACK


or


ROLLBACK TO SAVEPOINT savepoint_name


트랜잭션 철회


SAVEPOINT savepoint_name


지금까지의 트랜잭션을 임시저장


SET TRANSACTION


현재 트랜잭션의 설정 사항 변경


[How to 알티베이스_4] 데이타 딕셔너리
알티베이스™ 라이프

안녕하세요. Jun~ 입니다.

2007년 12월… 어느덧 한해가 저물어 간다는 아쉬움이 밀려오는 요즘입니다.

사랑하는 가족들과  목표했던 무언가를 위해서 열심히 고군분투 했던 여러분
정말 수고하셨습니다. 얼마 남지않은 12월 마무리 잘 하시기 바라며, 행복만
가득하시길 바랄께요~

그럼 How to 알티베이스 4를 시작하겠습니다.

—————————————————————————————————————————-
“How to 알티베이스 4″에서는 알티베이스 데이타 딕셔너리에 대해서 알아보겠습니다.
—————————————————————————————————————————-

알티베이스 데이타 딕셔너리(DATA Dictionary)란 무엇인가?

 - 알티베이스의 데이타 딕셔너리란 데이타베이스가 생성될 때 만들어 지는 데이타베이
   스를 관리하기 위해 유용한 정보들이 존재한 곳입니다.

   이러한 딕셔너리는 데이타베이스 객체 정보를 저장하는 메타테이블과 시스템 프로
   세스 정보를 저장하는 프로세스 테이블로 나뉘어질 수 있습니다.
  
메타테이블

 - 메타테이블은 시스템이 테이터베이스 객체를 관리하기 위해 생성하는 시스템 정의
   테이블로 사용자가 생성하는 일반 테이블과 동일한 구조를 가집니다.

   이러한 메타테이블이 사용하는 데이타 타입 및 레코드 저장 형태는 일반 테이블과 
   동일 합니다. 하지만 메타테이블은 이름이 “SYS_”로 시작하며 종류는 다음과 같습
   니다.

   알티베이스는 구동 시 데이타베이스 객체 정보를 로딩하고, “DDL(Data Definition
   Language) - 데이터” 정의어문 수행 시 데이타베이스 객체 정보를 조회, 저장 및 변경
   하기 위해 이 메타테이블을 사용합니다.




Meta Table Name


Description


SYS_COLUMNS_


칼럼 메타 테이블


SYS_CONSTRAINTS_


제약 조건 메타 테이블


SYS_CONSTRAINT_COLUMNS_


제약 조건 관련 칼럼 메타 테이블


SYS_DATABASE_


데이터베이스 메타 테이블


SYS_GRANT_OBJECT_


객체 권한 메타 테이블


SYS_GRANT_SYSTEM_


시스템 권한 메타 테이블


SYS_INDEX_COLUMNS_


인덱스 키 칼럼 메타 테이블


SYS_INDICES_


인덱스 메타 테이블


SYS_PRIVILEGES_


권한 메타 테이블


SYS_PROCEDURES_


저장 프로시저 및 함수 메타 테이블


SYS_PROC_PARAS_


저장 프로시저 및 함수의 파라미터 메타 테이블


SYS_PROC_PARSE_


저장 프로시저 및 함수 구문 메타 테이블


SYS_PROC_RELATED_


저장 프로시저 및 함수 접근 테이블 메타 테이블


SYS_REPLICATIONS_


이중화 메타 테이블


SYS_REPL_HOSTS_


이중화 호스트 메타 테이블


SYS_REPL_ITEMS_


이중화 테이블 메타 테이블


SYS_TABLES_


테이블 메타 테이블


SYS_TBS_USERS_


테이블스페이스 사용자 메타 테이블


SYS_TRIGGERS_


트리거 메타 테이블


SYS_TRIGGER_DML_TABLES_


트리거 접근 테이블 메타 테이블


SYS_TRIGGER_STRINGS_


트리거 구문 메타 테이블


SYS_TRIGGER_UPDATE_COLUMNS_


트리거 변경 칼럼 메타 테이블


SYS_USERS_


사용자 메타 테이블


SYS_VIEWS_


뷰 메타 테이블


SYS_VIEW_PARSE_


뷰 구문 메타 테이블


SYS_VIEW_RELATED_


뷰 접근 테이블 메타 테이블


   이처럼 중요한 메타테이블의 소유자는 시스템 사용자로 일반 사용자는 메타테이블의
   접근이 제한적입니다.

   그럼 실제로 메타테이블을 조회해 보겠습니다.
   * SQL 화면 출력이 짤리는 것을 방지하기 위해서  ISQL 명령어중 출력옵션 제어 명
      령어인 “SET LINESIZE <숫자: default(100)>”을 사용하겠습니다.
    
      ISQL은 차차 알아보도록 할께요. 
     

사용자 삽입 이미지

     
성능 뷰 테이블

 - 성능 뷰(performance view)는 알티베이스 시스템 내부의 정보, 즉 시스템 메모리
   프로세스 상태, 세션, 버퍼 등의 메모리 구조를 일반 테이블 형태로 나타내어 사용자
   가 모니터링이 가능하도록 해 주는 구조를 말합니다.

    “DML(Data Management Language) - 데이터 조작어” 중 select(테이블에서 조건에
     맞는 튜플을 검색함)로 테이블을 검색하는 것처럼, 알티베이스 운용 시 사용되는
     메모리 객체(ex. 세션정보, 로그정보)에 관한 내용을 검색함으로써 운용하는데 있어
     편의성을 제공하고 있습니다.

     성능 뷰 테이블은 V$로 시작하며 종류는 다음과 같습니다.





Fixed Table Name


Description


V$ALLCOLUMN


성능 뷰를 구성하는 칼럼 정보


V$ARCHIVE


아카이브 관련 정보와  백업 정보


V$BUFFPAGEINFO


버퍼 메니저의 버퍼 프레임 통계 정보


V$BUFFPOOL_STAT


버퍼 풀 hit ratio를 비롯버퍼 풀 관련 통계 정보


V$DATABASE


메모리 데이터베이스 공간의 내부 정보


V$DATAFILES


테이블스페이스에서 사용하는 데이타 파일의 정보


V$DISKGC


디스크  공간 회수 (disk garbage collection) 정보


V$DISKTBL_INFO


디스크 테이블 정보


V$MEMTBL_INFO


메모리 테이블 정보


V$FLUSHINFO


버퍼 플러쉬 정보


V$INDEX


테이블의 인덱스 정보


V$INSTANCE


현재 알티베이스의 다단계 startup 정보


V$LATCH


버퍼 풀의 버퍼 제어 블록(BCB) latch 정보와


read or write try된 페이지에 대하여


read/ write latch에 대한 통계 정보


V$LFG


그룹커밋 관련 통계값


V$LOCK


현재 시점에서  데이터베이스의 모든 테이블 lock 노드 정보


V$LOCK_WAIT


트랜잭션의 락 대기 상태 정보


V$LOG


로그 앵커 정보


V$LOCK_STATEMENT


Lock statement정보


V$MEMGC


메모리 공간 회수 (memory garbage collect) 정보


V$MEMSTAT


알티베이스 프로세스가 사용하는 메모리 통계 정보


V$MUTEX


알티베이스 프로세스에서 사용되고 있는 동시성 제어 관련 mutex 통계 정보


V$PLANTEXT


SQL의 실행 계획 텍스트 정보


V$PROCTEXT


저장 프로시저의 텍스트 정보를 나타냅니다


V$PROPERTY


알티베이스 내부에 설정된 프로퍼티(Property) 정보


V$REPEXE


리플리케이션 관리자 정보


V$REPGAP


리플리케이션 송신자의 작업 로그 파일이 현재 생성된 최근 로그 파일간의 차이 정보


V$REPRECEIVER


리플리케이션 수신자 정보


V$REPRECEIVER_TRANSTBL


리플리케이션 송신자의 트랜잭션 테이블 정보


V$REPSYNC


SYNC 중인 테이블의 정보


V$REPSENDER


리플리케이션 송신자 정보


V$REPSENDER_TRANSTBL


리플리케이션 수신자의 트랜잭션 테이블 정보


V$SEQ


시퀀스 관련 정보


V$SERVICE_THREAD


Multiplexing 관련 서비스 쓰레드(Thread) 정보


V$SESSION


알티베이스 내부에 생성된 클라이언트에 대한 세션 정보


V$SESSIONMGR


알티베이스의 세션 통계 정보


V$STATEMENT


현재 알티베이스에 생성된 모든 세션의 구문 정보


V$SQLTEXT


시스템에서 수행되는 SQL의 텍스트 정보


V$TABLE


모든 성능 뷰의 레코드 및 칼럼 정보


V$TABLESPACES


테이블스페이스 정보


V$TRACELOG


트레이스 로깅 정보


V$TRANSACTION


트랜잭션 객체 정보


V$TRANSACTION_MGR


알티베이스 트랜잭션 관리자 정보


V$UNDO_BUFF_STAT


Undo table space의 버퍼 풀 관련 통계 정보


V$VERSION


데이터베이스 버전 관련 정보


V$CATALOG


저장관리자의 System catalog table.


V$DISK_BTREE_HEADER


디스크 BTREE 인덱스들의 헤더 정보


V$MEM_BTREE_HEADER


메모리 BTREE 인덱스들의 헤더 정보


V$MEM_BTREE_NODEPOOL


메모리 BTREE 인덱스를 위한 노드 풀 정보


V$MEM_TABLESPACES


현재 Memory에 생성된 Tablespace들에 대한 정보를 표시한다.


V$MEM_TABLESPACE_
CHECKPOINT_PATHS


Memory tablespace의 backup 파일이 저장되는 위치를 표시한다


V$MEM_TABLESPACE_
STATUS_DESC


Memory tablespace상태 값의 의미
(offline, online, dropped
)


V$STABLE_MEM_DATAFILES


현재 Memory DB에 생성된 Datafile들의 정보.


V$DB_FREEPAGELISTS


현재 Memory DB Free Page List들의 정보를 보여준다.


V$SEGMENT


현재 Disk DB에 생성된 Segmemt들의 정보를 보여준다.


V$UNDO_TBS


현재 Disk DB에 생성된 Undo Tablespace정보를 보여준다.


V$DATATYPE


DATABASE에서 제공하는 TYPE 정보


V$SESSTAT


Session 정보


V$STATNAME


통계정보의 종류와 ID


V$ST_ANGULAR_UNIT


Geometry Data의 각도 단위 정보


V$ST_AREA_UNIT


Geometry Data의 면적 단위 정보


V$ST_LINEAR_UNIT


Geometry Data의 거리 단위 정보


V$SYSSTAT


통계정보의 종류 및 해당 값

     
     정말 많은 데이터베이스 관련 정보를 확인 할 수 있는데요. 알티베이스 자체에 대한
     모니터링 기능은 필수적으로 필요한 것이며 그 만큼 관리지에게 편의성을 제공하여
     성능에 대한 분석을 쉽고 빠르게 할 수 있도록 도와줍니다.

     성능 뷰는 알티베이스 운용과정에서 사용되는 대부분의 내부 메모리 구조체를
     뷰 형태로 제공하며, 해당 테이블에 대한 조회를 하는 순간에 그 데이타가 실시간으
     로 생성되기 때문에 언제나 프로세스 내부의 최신 정보를 얻을 수 있습니다.

     그럼 성능 뷰 전체목록을 iSQL에서 select  명령어를 통해서 조회해 보겠습니다.

사용자 삽입 이미지


   성능 뷰는 언제나 읽기 전용 속성을 가지고 있습니다. 만일 sys로 접근해서 변견을
   시도한다면, 알티베이스는 에러를 내고, 해당 트랜잭션에 대한 부분철회를 수행할
   것입니다.

이렇게 오늘은 데이타 딕셔너리에 대해서 알아봤습니다. 저도 아직은 모든 메타테이블
과 성능 뷰 테이블의 각각의 기능을  알지 못하지만 하나씩 만저보고 결과를 모니터링
하면서 배워 나가고 있습니다. 뭐든지 많이 해보고 경험해 볼 수록 실력이 쑥쑥~ 자란
다고 생각해요.

알티베이스를 마스터 하는 그날까지 함께 노력해 보도록 하겠습니다.
오늘도 정말 수고하셨구요. 다음 How to 알티베이스 5에서는 iSQL과 DDL(데이터정의
어), DML(데이터조작어), DCL(데이터제어어)를 알아볼까 합니다.

그럼 힘내자구요!!!

[How to 알티베이스_3] 알티베이스 구동 및 종료하기!
알티베이스™ 라이프

안녕하세요. Jun~입니다.

지난 11월 26일은 알티베이스 창립 8주년 되는 날이었습니다.
오직 최고의 DBMS를 만들겠다는 굳은 심정으로 묵묵히 외길을 걸어오신
알티베이스의 모든 임직원 분들에게 찬사를 보내며 알티베이스 행보에
늘 관심을 가지고 지켜봐 주신 여러분들께 진심으로 감사드립니다.

———————————————————————-
“How-to 알티베이스 3″에서는 알티베이스를 구동 시켜보고 종료 시키는 
방법을 실습해 보려고 합니다. 
———————————————————————-
* 각 그림을 클릭하시면 크게 보실 수 있습니다.

알티베이스 구동에 앞서 알티베이스를 사용하기 위해서는 반드시 데이타
베이스를 생성 시켜 놓아야 합니다.

“CREATE DATABASE” 명령어를 이용하여 데이타베이를 만들 수 있으며 데이타
베이스 생성 시 자동적으로 시스템메타 테이블들이 만들어 집니다.

데이타베이스를 생성하려면 iSQL 관리자 모드로 접근해야 겠죠?

사용자 삽입 이미지

iSQL 관리자 모드로 접근후에 바로 “CREATE DATABASE” 명령어를 이용해서
데이타베이스를 생성하려고 하니 에러 메세지가 나오는군요.

“CREATE DATABASE” 명령어를 수행하기 위해서는 서버 프로세스를 구동
시켜야 합니다. 그럼 잠깐 서버 프로세서 구동 순서를 살펴봐야 겠네요.

   여기서 잠깐! 서버 프로세서 구동 순서
  ——————————————————————-
 1. Pre-Process 단계
    서버를 구동하기 이전 단계
 2. Process 단계
    create database 및 property들을 조회하고 변경할 수 있는 단계
 3. Control 단계
    database 파일 로드, recovery 준비 단계
 4. Meta 단계
    recovery 완료, meta data upgrade 기능, 온라인 로그 reset 할 수 있는 단계
 5. Service 단계
   사용자에게 서비스 가능한 최종 단계
  ——————————————————————-

아하~! 지금 Pre-Process단계이고, Process단계로 진행이 되어야 이와같은
명령어를 사용할 수 있겠군요. 진행은 간단하군요. 말 그대로 “startup proce
ss”입니다.

실행 화면을 보시죠.

사용자 삽입 이미지

Process단계까지 진행되었습니다. 이제 CREATE DATABASE 명령으로 데이
타베이스를 생성해 볼께요.

사용자 삽입 이미지

사실 데이타베이스 생성 시 인자로 주어지는 데이터베이스의 크기는 크게 의미
가 없습니다. 왜냐하면 알티베이스 운용 중 공간이 부족할 경우에 데이타베이스
공간이 자동적으로 확장되기 때문이죠. 이때 매번 조금씩의 양을 늘리는 것은
비효율적이기 때문에 PERS_PAGE_CHUNK_SIZE 파라미터에 의해서 지정된
페이지 개수만큼씩 늘어나게 됩니다.

그럼 화면에서 임의로 띄웠던 서버를 먼저 종료 하겠습니다.

사용자 삽입 이미지

데이터베이스 생성후 서비스를 바로 start 할 수 없으므로 shutdown abort를
한 이후에 다시 startup service를 실행해야 합니다.

서버를 종료하면 iSQL은 다시 서버에 접속하지 않은 Pre-Process 상태가 되며,
서버 프로세스도 종료됩니다.

이제 알티베이스 구동 및 종료를 해볼께요. 우선 명령어를 알아보겠습니다.
$isql -sysdba
구동시 : startup service
종료시 : shutdown normal(정상종료)
            shutdown immediate(강제종료)
            shutdown abort(강제종료 - 서비스 실행시 복구 과정 필요)

사용자 삽입 이미지
사용자 삽입 이미지

한가지 더 말씀드리자면 알티베이스 구동 및 종료시 사용자의 편의를 위해서
미리 스크립트로 만들어 놨습니다. 때문에 꼭 isql 모드로 들어가서 시작할
필요는 없습니다. 아래 스크립트를 확인해 보세요!^^
——————————————–
   server start : 알티베이스 구동
   server stop : 알티베이스 정상 종료
   server kill : 알티베이스 강제 종료
   server status : 테이블 목록 출력
   server restart : 알티베이스 재 시작
   server create : 데이타베이스 생성
——————————————–

오늘은 알티베이스 데이타베이스 생성 방법과 구동 및 종료에 대해서 알아봤
습니다. 다음 시간부터 데이타 딕셔너리에 대해서 알아볼께요.
그럼 좋은 한주 되세요~!!!

[How to 알티베이스_2]알티베이스 Architecture
알티베이스™ 라이프

안녕하세요. Jun~입니다.

어제는 서울에 첫눈이 내렸습니다.
여러분은 첫눈을 보면서 어떤 생각을 하셨나요?
첫사랑? 부모님? 사랑하는 가족들…?

정말 여러 기억들이 수많은 눈송이처럼 떠오르시나요.

전 눈이 내리면 가장 먼저 행여 지나던 학생들이 미끄러질까 이른 꼭두새벽
부터 허옇게 탄연탄가루를 뿌리던 나이 지긋하신 동네 할머니가 생각납니다.
아무도 알아주지 않지만 뒤에서 묵묵히 지나던 사람들의 안전을 지켜주시던
그 할머니를 보면서 추운겨울 훈훈한 정을 느낄 수 있었답니다.

여러분도 마음 따스한 겨울을 보내시길 바라며 “How to 알티베이스 2″를
시작하겠습니다.
———————————————————————-
“How to 알티베이스 2″에서는 알티베이스 동작방법과 디렉토리 구조에 대해서
알아보겠습니다.
———————————————————————-
* 각 그림을 클릭하시면 크게 보실 수 있습니다.

시작하기 앞서 세계 최초로 알티베이스에서 개발한 Hybrid DBMS의 
기본 컨셉과 왜 Hybrid DBMS인가에 대해서 생각해 볼까요?

Hybrid DBMS는 단일 DBMS내에서 MMDBMS와 디스크 DBMS를 제공, 
하나의 데이터베이스를 여러 개의 저장매체(stored media)에 나누어 저장하여
관리할 수 있도록 설계되어 있었습니다. 이로써 데이터의 성능 가중치에 따라
자주 그리고 빠르게 접근하는 데이터는 메모리에, 그렇지 않은 데이터는 디스크
에 저장하여 관리할 수 있어 10배 이상 빠른 트랜잭션 속도를 제공하는 MMDBMS
의 장점과 대용량 데이터 처리를 지원하는 디스크 DBMS의 장점을 동시에 이용할
수 있다는 장점을 제공합니다.


고성능 정보처리와 대용량 정보처리를 하나의 DBMS에서 통합해서 처리하는 구조
이기 때문에, MMDBMS와 DRDBMS를 각각의 인스턴스로 쓰는 혼용구조에서 나타
나는 동기화의 문제, 장애처리 시 복잡한 문제,응용프로그램이 복잡해지는 문제를 
해결할 수 있습니다.


또한 고객의 환경이나 필요에 따라 MMDBMS 전용 혹은 DRDBMS 전용, Hybrid MM
DBMS 형태로 다양한 구성이 가능합니다.

사용자 삽입 이미지

사실 인간의 기본적인 욕구는 끝이 없다고 합니다. 그 대상이 무엇이든지
좀 더 좋고 이쁘며 성능까지 만족하기를 갈망하죠. IT 분야에서 한 예로
CPU 속도는 계속 증가되고 내일 어떤 기능이 추가되어 나올지 누구도
예상치 못하게 되었죠. 거기에 발맞춰 사람들의 기대심리는 점점 증가하고
어제 나왔던 CPU는 구 모델로 전락해 버리기 일쑤입니다.

이러한 성능 변화의 배경에는 사용자의 욕구에 있다고 생각하는데요.
물론 DBMS 분야도 예외가 아니어서 더 빠른 DBMS 더 안정된 DBMS
가용성과 확장성이 추가된 DBMS를 요구했고 그 요구에 맞춰 알티베이스는
Hybrid DBMS를 개발하게 되었습니다.

Hybrid DBMS는 MMDBMS와 DRDBMS를 혼용하는 구조로 각각의 장점을
수용한 고객의 입맛에 맞춘 DBMS라고 생각합니다.

그럼 알티베이스 동작 방법을 크게 3단계로 나눠서 생각해 볼께요.

1. 구동시

   “Start up”으로 알티베이스가 시작되면 DBS에 있는
    Backup DB를 메모리로 로딩하기 시작하는데요. 만약 비정상 종료를
    했을경우 Log파일 이용하여 비정상 종료 전까지 완벽하게 복구를
    할 수 있습니다.

    여기서 잠깐! Log파일은??
    - 로그파일은 알티베이스 뿐만 아니라 모든 DBMS에서 매우 중요한
      파일로 데이타 볼륨이 손상되었을 경우 백업 볼륨과 함께 데이타
      베이스를 복구하는데 사용됩니다.

2. 운영시
    사용자 명령(Insert, Update, Delete)시 디스크 Log 파일에 기록을
    하는데요. 주기적으로 CheckPoint를 발생해서 Log 파일에 양이 많아져
    하드디스크의 공간 낭비되는 현상을 막아줍니다.

3. 종료시
    정상적으로 종료했을 경우 메모리의 DB를 하드디스크 Backup DB에
    반영하고 CheckPoint를 발생시킵니다. 반면 비정상 종료 시 메인메모리
    내의 DB를 하드디스크에 저장하지 않고 다음 알티베이스 구동 시
    log 파일을 이용하여 비정상 종료 전까지 복구를 할 수 있습니다.

그럼 다음으로 $HOME/altibase_home/에 있는 디렉토리 Structure에 대해서
알아볼까요?

사용자 삽입 이미지

알티베이스 디렉토리
알티베이스를 설치 하면 다음의 디렉토리가 생성되네요.
알티베이스 홈 디렉토리는 환경 변수 ALTIBASE_HOME에 지정됩니다.
이 홈 디렉토리가 포함하는 내용은 bin, conf, lib, include, msg, dbs, logs, 
sample, install, audit, trc, admin, 그리고 arch_logs 디렉토리를 포함하고 
있습니다.


admin 디렉토리
기존 install 디렉토리 밑에 있던 sql 파일들과 fixed table 관련 view 생성 스크
립트 파일이 있네요.


arch_logs 디렉토리
Sync가 끝난 로그 파일이 존재하는 디렉토리 입니다. 
이 디렉토리의 위치 및 디렉토리 명은 프로퍼티 파일에 명시되어 있습니다.


audit 디렉토리
이중화 동작 시 발생한 불일치를 해결하는 알티베이스 유틸리티인 audit의
예제 스크립트 파일이 들어있는 디렉토리 입니다.


bin 디렉토리
알티베이스를 포함한 알티베이스 관리도구와 알티베이스를 사용하는데 필
요한 지원도구들의 실행 파일이 존재하는 디렉토리입니다. bin 디렉토리 하위
에는 다음과 같은 파일이 존재합니다.
『aexport, altibase, altidump, altierr, altimon, audit, checkipc, checklogfiles,
checkServer, dumpdf, dumpla, dumplf, iloader, isql, killCheckServer, relink,
server, sesc, shmutil』

conf 디렉토리
알티베이스 라이센스와, 알티베이스가 취할 수 있는 다양한 옵션을 수록한 
프로 퍼티 파일(altibase.properties)이 존재하는 디렉토입니다. 알티베이스가
실행될 때 라이센스를 확인하고 프로퍼티 파일을 참조하여 서버 상태를 초기화
합니다.


dbs 디렉토리
데이터베이스 파일들이 존재하는 디렉토리입니다. 이 디렉토리의 위치 및 
디렉토리 명은 프로퍼티 파일에 명시되어 있구요.
mydb 파일에는 메모리 테이블들을, system 파일에는 디스크 테이블들을, 
temp 파일에는 쿼리 수행 시 중간 결과들이 저장됩니다. undo 파일에는 
MVCC에서 사용되는 이전 이미지 정보 레코드들이 저장됩니다.


include 디렉토리
응용 프로그램을 작성할 때 필요한 헤더 파일을 수록한 디렉토리입니다.


install 디렉토리
알티베이스 응용프로그램 작성에 필요한 makefile을 위한 매크로 설정 등이
포함된 altibase_env.mk 파일과 README 파일이 있습니다.


lib 디렉토리
응용 프로그램 작성에 필요한 라이브러리와 relink를 위한 파일을 수록한
디렉토리입니다.


logs 디렉토리
로그 파일 정보를 수록한 1개 이상의 로그앵커 파일들과 로그 파일들이 존재
하는 디렉토리입니다. 이 디렉토리의 위치 및 디렉토리 명은 프로퍼티 파일에 명시
되어 있네요. 로그앵커 파일명과 로그 파일명은 알티베이스 시스템에서 자동으로
결정됩니다. 그러나, 로그 앵커를 가진 파일 시스템의 오류에 대비하기 위해서는
프로퍼티를 변경하여 여러 개의 로그 앵커 파일들을 각각 서로 다른 파일 시스템
에 두어 관리하는 것이 좋습니다.


msg 디렉토리
오류 메시지를 수록한 파일들을 포함하는 디렉토리입니다.

sample 디렉토리
알티베이스의 응용 프로그램을 샘플로 제공한 디렉토리입니다. 
JDBC, ODBC, C/C++ Precompiler 라이브러리를 이용하여 작성된 프로그램과
Makefile이 수록되어 있습니다.


trc 디렉토리
알티베이스 운영 상태를 기록한 파일들이 존재합니다.

———————————————————————-
오늘은 알티베이스 동작 방법과 디렉토리 구조에 대해서 공부했는데요.
무척 지루하시죠? 하지만 어떤 DBMS를 사용하든지 그 동작 방법과 구조는
기본적으로 알고 있어야 된다고 생각해요.

다음 “How to 알티베이스 3″은 본격적으로 알티베이스에 데이터베이스를 
생성하고 구동 및 종료하는 방법을 실행해 볼께요.

[How to 알티베이스_1]알티베이스 설치하기!
알티베이스™ 라이프

안녕하세요. Jun~입니다.

날씨가 점점 쌀쌀해지네요. 
제가 알티베이스에 입사했을 때가 올해 햇볕이 뜨거운 여름이었는데…ㅎㅎㅎ

입사해서 다짐했던 일들중에 “알티베이스를 공부해서 마스터해야겠다~” 생각하고
있었는데 차일피일 미루다가 어느덧 시간이 많이 흘러버렸네요…
하지만 시작이 반이라고 지금부터 여러분과 함께 공부하고 하나씩 배워간다는 
마음으로 “How To 알티베이스”란을 개설합니다. 저도 시작하는 입장에서 이곳이
여러분과의 다양한 의견교환의 장이 되었으면 좋겠네요. 화이팅!!!^^

그럼 여러분~~~ 힘내자구요!!!^___________^
———————————————————————-
“How to 알티베이스_1″에서는 Ubunto에 알티베이스 설치하고 구동시켜 볼께요.
———————————————————————-
처음부터 알티베이스 특징이나 구조를 보고 있노라면~ 
머리가 지끈거리거나 or 쿨쿨…zzz Sleeping Mode로 진입하는 분들…ㅎㅎㅎ
저도 메뉴얼을 보고 있노라면 눈꺼풀이 무거워 지는 이유는 뭘까요?
그래서 오늘은 바로 설치를 해볼까요?^^ 실습!!! 실습이 중요하잖아용~

“백문이 불여일견(白聞耳 不如一見)” -> Ubunto + 알티베이스~~ 따라오세용!!!
  * 그림을 클릭하면 크게 보입니다.

1) 알티베이스는 “http://adc.altibase.com“에서 무료로 최신 버젼을 다운 받으실 수
    있으며 상업적인 목적으로는 사용하실 수 없습니다. 제품을 다운로드 받으시려면
    가입후 License 요청을 하셔야 합니다.
    —————————————–
    * 참고로 저는 OS : Ubuntu 7.04 ver.
                        Intel 2.00GHs(=2000Mhz)
                        1.00GB RAm 이고,
       “altibase-INTEL LINX-redhat_Enterprise_AS4-32bit-4.3.9.46-release-
        GCC.3.4.4.tgz”를 받았답니다.
    —————————————–

2) Ubunto이기 때문에 Linux에서 Server ver.으로 자신의 컴퓨터 환경에 맞는
   버젼을 찾아서 다운로드 합니다. 경로는 %$HOME/pkg 폴더에 다운로드
   하겠습니다. 

3) 다음은 Ubunto 터미널에 접속해서 알티베이스가 설치될 폴더를 하나 만들고,
    %$HOME/pkg에 복사한 “altibase~.tgz”파일을 설치될 폴더에 복사하겠습니당.
    -> 폴더는 %$HOME/altibase_home 입니다. 아래 화면을 참고하세요~

    
4) altibase_home에 받아논 “altibase~.tgz”파일… 이제 압축을 풀어야겠죠?!
    이제 곧 위풍당당~ 알티베이스를 체험하실 수 있어용~^^

5) 이제 환경세팅을 해야겠죠~^^ 
    $home에 “.bashrc”에 아래와 같은 환경세팅을 했습니다..
    (맨아래 추가하시면 됩니다.)
    ################
    #      Altibase       #
    ################
    export ALTIBASE_HOME=$HOME/altibase_home
    export PATH=$ALTIBASE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ALTIBASE_HOME/lib:$LD_LIBRARY_PATH

6) 이제 알티베이스를 구동시켜 볼까요?! 
    헉….. ㅡㅡ^ 라이센스가 없다고 나오는군요~ ㅜ.ㅜ

7) 1)에서 처럼 가입하시고 라이센스를 요청해야겠죠?!
    알티베이스에서는 가입할때 입력하신 E-mail 주소로 라이센스를
    보내줍니다.
    * 그림 3개 참고하세요.

8) 메일이 왔는지 확인해 볼까요?!
    Altibase 설치 방법에 대한 내용과 “license.dat”을 첨부파일로 메일이
    도착했네요.^^*
    “license.dat”의 확장명 “.dat”를 제거하고 확장명 없이 “license”로 파일명을
    변경하여 $HOME/altibase_home/conf 폴더에 넣어줄께요~

9) 그럼 잘 실행이 되는지 다시한번 확인해 볼까요?!
    우왕~~^^ 성공이네요.^^* 마지막으로 “Server stop”으로 알티베이스를 종료
    합니다. 
    과정이 복잡해서 힘들었지만 그래도 뿌듯하네요~~~^^*
    하지만 아직 가야할 길은 아직 멀기에….ㅜ.ㅜ (아자아자~~~!!!)
    다음 “How to 알티베이스_2″에서는 더 자세히 알티베이스에 대해서 알아보겠습니다.   

———————————————————————-
How to 알티베이스_2에서는…
———————————————————————-
설치만 하고 사용만 하면 되잖아?!… 라고 말씀하시는 분들!!! 그건 아.니.죠~~~

도대체 이 알티베이스가 어떤 구조로 수행되는지 그리고 $HOME/altibase_home
아래 있는 많은 디랙토리의 역할은 무엇인지 궁금하지 않으세요?ㅎㅎㅎ

그래서 다음 “How to 알티베이스_2″는 
                              1. Altibase 동작방법
                              2. Altibase 디렉토리 구조에 대해서 알아보려고 합니다.

그럼 즐거운 한주 되세요.