안녕하세요. 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 |
안녕하세요. 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 |
안녕하세요. 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 | 현재 트랜잭션의 설정 사항 변경 |
'알티베이스™ 라이프' 카테고리의 다른 글
성공은 실패라는 고통의 붓으로 그린 그림이다. (0) | 2014.02.06 |
---|---|
[2007 알티베이스 컨퍼런스 다시보기]Main Sesson 03. 데이터 통합/연동을 위한 Anyware Data Integration Suite (0) | 2014.02.06 |
2007년 12월 생일파티 현장 (0) | 2014.02.06 |
[How to 알티베이스_4] 데이타 딕셔너리 (0) | 2014.02.06 |
상처없는 새가 어디 있으랴 (0) | 2014.02.06 |
안녕하세요. Jun~ 입니다.
2007년 12월… 어느덧 한해가 저물어 간다는 아쉬움이 밀려오는 요즘입니다.
사랑하는 가족들과 목표했던 무언가를 위해서 열심히 고군분투 했던 여러분
정말 수고하셨습니다. 얼마 남지않은 12월 마무리 잘 하시기 바라며, 행복만
가득하시길 바랄께요~
그럼 How to 알티베이스 4를 시작하겠습니다.
—————————————————————————————————————————-
“How to 알티베이스 4″에서는 알티베이스 데이타 딕셔너리에 대해서 알아보겠습니다.
—————————————————————————————————————————-
알티베이스 데이타 딕셔너리(DATA Dictionary)란 무엇인가?
- 알티베이스의 데이타 딕셔너리란 데이타베이스가 생성될 때 만들어 지는 데이타베이
스를 관리하기 위해 유용한 정보들이 존재한 곳입니다.
이러한 딕셔너리는 데이타베이스 객체 정보를 저장하는 메타테이블과 시스템 프로
세스 정보를 저장하는 프로세스 테이블로 나뉘어질 수 있습니다.
메타테이블
- 메타테이블은 시스템이 테이터베이스 객체를 관리하기 위해 생성하는 시스템 정의
테이블로 사용자가 생성하는 일반 테이블과 동일한 구조를 가집니다.
이러한 메타테이블이 사용하는 데이타 타입 및 레코드 저장 형태는 일반 테이블과
동일 합니다. 하지만 메타테이블은 이름이 “SYS_”로 시작하며 종류는 다음과 같습
니다.
알티베이스는 구동 시 데이타베이스 객체 정보를 로딩하고, “DDL(Data Definition
Language) - 데이터” 정의어문 수행 시 데이타베이스 객체 정보를 조회, 저장 및 변경
하기 위해 이 메타테이블을 사용합니다.
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_ | Memory tablespace의 backup 파일이 저장되는 위치를 표시한다 |
V$MEM_TABLESPACE_ | Memory tablespace상태 값의 의미 |
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 알티베이스_5]DDL(데이터정의어), DML(데이터조작어), DCL(데이터제어어) (0) | 2014.02.06 |
---|---|
2007년 12월 생일파티 현장 (0) | 2014.02.06 |
상처없는 새가 어디 있으랴 (0) | 2014.02.06 |
[2007 알티베이스 컨퍼런스 다시보기 ]Main Sesson 02. Real Alternative DBMS, ALTIBASE 5 (0) | 2014.02.06 |
기분이 좋기 때문에 뜻대로 된다 (0) | 2014.02.06 |
안녕하세요. 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 : 데이타베이스 생성
——————————————–
오늘은 알티베이스 데이타베이스 생성 방법과 구동 및 종료에 대해서 알아봤
습니다. 다음 시간부터 데이타 딕셔너리에 대해서 알아볼께요.
그럼 좋은 한주 되세요~!!!
'알티베이스™ 라이프' 카테고리의 다른 글
[ALTIBASE MMDBMS Case Study_09]삼성전자 CDMA 서버 장비 (0) | 2014.02.06 |
---|---|
[2007 알티베이스 컨퍼런스 다시보기] Main Session 01. Why ALTIBASE? (0) | 2014.02.06 |
11월 Joint 워크샵 (with 경영지원팀,컨설팅팀,기획팀) (2) | 2014.02.06 |
[ALTIBASE Hybrid DBMS Case Study_08]KTF 기업형 MMS G/W 서비스 (0) | 2014.02.06 |
[How to 알티베이스_2]알티베이스 Architecture (0) | 2014.02.06 |
안녕하세요. 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″은 본격적으로 알티베이스에 데이터베이스를
생성하고 구동 및 종료하는 방법을 실행해 볼께요.
'알티베이스™ 라이프' 카테고리의 다른 글
11월 Joint 워크샵 (with 경영지원팀,컨설팅팀,기획팀) (2) | 2014.02.06 |
---|---|
[ALTIBASE Hybrid DBMS Case Study_08]KTF 기업형 MMS G/W 서비스 (0) | 2014.02.06 |
[2007 ADD 다시보기: 환영사]ALTIBASE 01_Real Alternative DBMS의 비전 (0) | 2014.02.06 |
셰익스피어가 존경하는 사람 (0) | 2014.02.06 |
[How to 알티베이스_1]알티베이스 설치하기! (0) | 2014.02.06 |
안녕하세요. 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개 참고하세요.
메일이 왔는지 확인해 볼까요?!
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 디렉토리 구조에 대해서 알아보려고 합니다.
그럼 즐거운 한주 되세요.
'알티베이스™ 라이프' 카테고리의 다른 글
[2007 ADD 다시보기: 환영사]ALTIBASE 01_Real Alternative DBMS의 비전 (0) | 2014.02.06 |
---|---|
셰익스피어가 존경하는 사람 (0) | 2014.02.06 |
[Hybrid DBMS Case Study_07]LG텔레콤 뮤직온 서비스 (0) | 2014.02.06 |
울 사장님.. 도산벤처상 타셨어요.. ^^ (0) | 2014.02.06 |
A u professional? or Amarteur? (3) | 2014.02.06 |