DBMS 2

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

Basic Terminology & Concepts

DBMS 2
Informix 가이드
Informix 프로그래머 가이드
Basic Terminology & Concepts
작성자
admin
작성일
2021-02-19 14:02
조회
865

Basic Terminology & Concepts

IBM Informix Data Types

IBM Informix Data Types


Built-in Data Types
CHARACTER
  • CHAR (n)
  • VARCHAR (m,r)
  • LVARCHAR
BOOLEAN
  • INTEGER / INT8
  • FLOAT
  • SMALLFLOAT
  • DECIMAL (p,s)
  • MONEY (p,s)
  • SERIAL / SERIAL8

표 2: type 크기


TIME
  • DATE
  • DATETIME
  • INTERVAL
입력값 99.06.04 02.06.04 02.12.31
DBCENTURY 설정에 P??1999.06.04 1902.06.04 1902.12.31
따라 저장된 값 F??2099.06.04 2102.06.04 2002.12.31
※ 오늘날짜 C??1999.06.04 2002.06.04 2002.12.31
: 2002.06.04 R??2099.06.04 2002.06.04 2002.12.31
LARGE-OBJECTS
  • Simple Large-Objects
  • TEXT
  • BYTE
  • Smart Large-Objects
  • BLOB
  • CLOB

Complex Data Types / User Defined Data Types

Complex Data Types
Complex Data Types

· Collection Data Types


  • SE
  • MULTISET
  • LIST
User-Defined Data Types

· Row Data Types


  • Distinct Types
  • Opaque Types
SQL New Functions
CASE WHEN condition1 THEN result

           WHEN condition2 THEN result2
ELSE resultn
END

NVL(value1, value2)

같은 의미 : CASE value1
WHEN null THEN value2
ELSE value1
END

DECODE(value1, value2, value3, value4, ... valuen)

같은 의미 : CASE value1
WHEN value2 THEN value3

ELSE valuen
END

TO_DATE(string, [,fmt] )
TO_CHAR(date, [,fmt] )
format 문자 의미
%Y 4자리 연도
%m
%B 월 (January, February, March, April, ...)
%d
%A 요일 (Monday, Tuesday, Wednesday, ...)
%R 24시간:분
%H 24시간
%M 분d>
%Fn 소수점 이하 n자리 초
TRIM( { LEADING | TRAILING | BOTH } trim_expr FROM source_ )
TRIM(source_expr) = TRIM( TRAILING‘ ’ FROM source_expr )
LPAD ( string, length, [,pad] )
RPAD ( string, length, [,pad] )
UPPER
LOWER
INITCAP
REPLACE ( string, old [,new] )
SUBSTR(string,start [,length] )

start : Positive - Counts forward
Negative - Counts backward
0 - equivalent to 1

SUBSTRING( start [FOR length] )

Start : Positive - Counts forward
Negative - Counts backward from one position before the first character
0 - counts from one position before the first character

IBM Informix Dynamic Server Terminology
  • Chunk
  • Page
  • Extent
  • Tblspace
  • Dbspace
  • Blobspace
  • Smart blobspace

그림 3: IBM Informix Dynamic Server Terminology


Logical Concepts / Physical Concepts

그림 4: Logical Concepts


Physical Concepts

 create table first_table (
tab_id int,
name char(20) ,
address char(50)
) extent size 32 next size 16 ;
create table second_table
tab_id int,
name char(20) ,
address char(50)
) extent size 16 next size 8 ;

informix


Data Page monitoring
테이블 생성

CREATE TABLE monitoring (col1 SERIAL, col2 CHAR(2000));
CREATE TABLE dummy (col1 INT);


데이터 입력 (8건)

INSERT INTO monitoring VALUES (0,'data');


컬럼 추가

ALTER TABLE monitoring ADD col3 INT;


데이터 입력 (1건)

INSERT INTO monitoring VALUES (0,'data');


Monitor

oncheck -pT stores_demo:monitoring


Index Page
인덱스 종류
  • Unique
  • Duplicate
  • Composite
  • Cluster
인덱스 생성 기본 구문
  • CREATE [ UNIQUE ] [ CLUSTER ] INDEX index_name
    ON table_name ( column_name_list ) [ IN dbspace ] ;
  • ALTER INDEX index_name TO CLUSTER ;
  • RENAME INDEX old_index_name TO new_index_name ;
인덱스 삭제

DROP INDEX index_name ;


다음과 같은 이유로 인덱스 키는 작게 만드는 것이 바람직하다
  • 하나의 페이지에 저장되는 인덱스키가 많아진다
  • 인덱스 페이지의 노드 레벨이 감소한다

그림 6: Cost of Indexing


인덱스 사용의 장점
  • 데이터 페이지의 입출력 횟수가 감소한다
  • 인덱스 데이터에 대하여 정렬 작업이 생략된다
  • 데이터의 유일성을보장할 수 있다(Unique index)
  • Key- only 검색으로 데이터 페이지를 읽지 않을 수 있다
인덱스 소요 비용
  • 디스크 사용 공간
  • DML 문장 수행 시간

informix


인덱스 사용 가이드
  • 선택적인 필터 컬럼, 조?? 컬럼에 사용한다
  • 중복값이 많은 커럼에는 사용하지 않는다
  • 주요 인덱스의 개수를 제한한다
  • 키값의 크기를 작게한다
  • Composite 인덱스로 유일성을 증가시킨다
  • Cluster 인덱스로 데이터 조회 속도를 증가시킨다
  • 대량의 update, delete, insert 작업 전에 미리 인덱스를 disable 한다