[정보처리기사 필기] 기출문제 - 401 ~ 450. 오답노트

403. 절차형 SQL 유형의 프로시저, 트리거, 사용자 정의 함수

  • 트리거
    • 데이터베이스에 특정한 변경이 가해졌을 때 (명시된 이벤트가 발생할 때마다) DBMS가 이에 대응해서 자동적으로 호출하는 일종의 프로시저
    • 트리거의 실행 : 트리거링 사건에 의해 내부적으로 이루어지며 트리거를 이벤트(사건)-조건-동작(ECA) 규칙으로 실행
  • 프로시저
    • 사용자의 호출 명령에 의해 실행
  • 사용자 정의 함수
    • 사용자의 호출 명령에 의해 실행
    • RETRUN 값을 반드시 명시해야 함

404. 관계 모델 / 관계 데이터 모델의 구성

  • 관계 모델
    • E.F CODE 박사가 1972년 제안한 데이터 모델
    • 오늘날 대부분의 데이터베이스 관리시스템에서 지원하는 데이터 모델
    • 실세계 데이터를 행과 열로 된 표(테이블, 릴레이션) 형태로 저장
    • 한 테이블의 필드값을 이용하여 다른 테이블에 관련된 데이터를 찾는 식으로 검색하는 데이터 모델
  • 관계 데이터 모델의 구성
    • 데이터 베이스의 테이블들의 집합(모임)으로 표현
    • 테이블 : 튜플 (행, 레코드)들의 집합으로 표현
    • 튜플 : 애트리뷰트 (컬럼, 필드, 속성)들로 구성
요소 설명
속성 Attributes 개체의 성질, 분류, 식별, 수량, 상태 등을 나타내는 세부 정보의 관리 요소로서 개체를 구성하는 항목
튜플 Tuple •릴레이션의 행을 구성하는 속성 값들의 집합
•행(row), 레코드(record)와 같은 개념
차수 Degree 속성들의 수
카디날리티 Cardinality 튜플들의 수
도메인 Domain •하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합
•표현되는 속성 값의 범위를 나타냄
릴레이션 인스턴스 Relation Instance •릴레이션의 어느 시점에 들어있는 튜플(행)들의 집합 (동적인 성질)
•튜플(행)들의 집합으로 현재 들어가 있는 실제 데이터를 지칭

 

406. 릴레이션의 Degree와 Cardinality

  • 차수 Degree : 속성의 수
  • 카디널리티 Cardinality : 튜플(향)의 수

407. 데이터베이스의 키

  • 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 속성들
  • 데이터베이스 키의 특징
    • 유일성 Uniqueness
      • 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함
      • 기본키 primary key, 후보키 candiate key, 슈퍼키 super key
    • 최소성 Minimality
      • 속성의 집합인 키가 릴레이션의 모든 튜플을 유일하게 식별하기 위해 꼭 필요한 속성들로 구성된 것을 의미
      • 기본키 primary key, 후보키 candiate key
  • 데이터베이스 키의 종류
    • 후보키 candidate key
      • 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별할 수 있는 하나 또는 몇 개의 속성 집합
      • 유일성과 최소성을 모두 만족
    • 기본키 primary key
      • 릴레이션의 유일한 식별자 (유일성, 최소성 모두 만족)
      • 기본키로 지정된 속성은 같은 값을 갖지 못함
      • 후보키 중에서 선정된 키로 중복값을 가질 수 없음
      • Not null, Unique, 외래키 foreign key로 참조될 수 있음
    • 대체키 alternate key
      • 후보키가 둘 이상 되는 경우에 기본키로 선택되지 못한 후보키들
      • 후보키 = 기본키 + 대체키
    • 슈퍼키 super key
      • 유일성만 있고 최소성이 없는 속성의 집합
    • 외래키 foreign key
      • 한 테이블의 키 중 다른 테이블의 튜플을 식별할 수 있는 키

408. 데이터 무결성

  • 데이터 무결성 강화 : 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말하며, 데이터가 무결성을 가지도록 하는 행위
  • 데이터 무결성 종류
종류 설명 제약조건
엔티티(개체) 무결성
Entity Integrity
• 기본키는 반드시 값을 가짐 - NULL 허용 안함
•기본키는 유일성을 보장하는 최소한의 집합
Primary Key, NOT NULL
참조 무결성
Referential Integrity
•외래키 속성은 참조할 수 없는 값을 지닐 수 없음
•외래키 값은 그 외래키가 기본키로 사용된 릴레이션의 기본키 값이거나 NULL 값일 것
Foreign Key
속성 무결성
Attribute Integrity
컬럼은 지정된 데이터 형식을 반드시 만족하는 값만 포함 Character, Date, LONG, VARCHAR2, NUMBER
키 무결성
Key Integrity
한 릴레이션에 같은 키 값을 가진 튜플들은 허용 안됨 Primary Key + Unique Index
사용자 정의 무결성
User Defined Integrity
모든 데이터는 업무 규칙을 준수해야 함 Trigger, User Define, Data Type, Check, DEFAULT Value
도메인 무결성
Domain Integrity
특정 속성 값이 미리 정의된 도메인 범위에 속해야 함 CHECK, DEFAULT

409. 참조 무결성

  • 참조 무결성 유지를 위해 관계를 맺고 있는 릴레이션에서 참조 속성에 대한 DML를 수행 시 지켜야 하는 관계 규칙
규칙 세부내용 사례
Restrict 자식 Table에 참조하는 값이 미 존재 시 수정/삭제 허용 부서번호 10은 홍길동이 참조, 삭제 불가
Cascade 부모 Table PK, 자식 Table의 FK를 연쇄 삭제 부모테이블에서 기획부(10) 삭제 시 자식 테이블의 홍길동도 같이 삭제
Default 부모 Table 수정/삭제 허용, 자식 Table의 FK는 지정된 값으로 변경 Default값이 '99'이면 부모 Table PK 삭제 시 자식 Table의 FK값을 '99'로 변경
Customized 특정 조건 만족 시 수정/삭제 허용 특정조건 : 계약기간 만료, 계약기간 만료 시 데이터 삭제 허용
Null 부모 Table PK 삭제 시 자식 Table FK를 Null 부모 Table PK 삭제 후 자식 Table FK를 "Null"
No Effect 조건없이 수정/삭제 허용 부모 Table PK 자유롭게 삭제 가능
  • 테이블 제약 조건 설계
    • 삭제 제약 조건 설계 Delete Constraint
      • 참조된 기본키의 값이 삭제될 경우의 처리 내용을 정의
      • Cascade : 참조한 테이블에 있는 외부키와 일치하는 모든 Row가 삭제
      • Restricted : 참조한 테이블에 있는 외부키에 없는 것만 삭제 가능
      • Nullify : 참조한 테이블에 정의된 외부키와 일치하는 것을 Null로 수정
    • 수정 제약 조건 설계 Update Constraint
      • 참조된 기본키의 값이 수정될 경우의 처리 내용을 정의
      • Cascade : 참조한 테이블에 있는 외부키와 일치하는 모든 Row가 수정
      • Restricted : 참조한 테이블에 있는 외부키에 없는 것만 수정 가능
      • Nullify : 참조한 테이블에 정의된 외부키와 일치하는 것을 Null로 수정

410. 개체 무결성

  • 엔티티 무결성
  • 테이블의 모든 행들이 유일하게 식별되는 무결성
  • 대부분의 경우 기본키에 의해 강화
  • 기본키 : 반드시 값을 가짐(NULL 허용 안함), 유일성을 보장하는 최소한의 집합
  • 제약조건 : Primary Key, NOT NULL

411. 제약조건

  • 제약 조건 : 데이터베이스에 저장되는 데이터의 정호가성을 보장하기 위해 키를 이용하여 입력되는 데이터 제한을 주는 것
  • 제약 조건의 종류
    • 도메인 제약 조건
      • 각 필드의 값은 반드시 그 필드의 도메인에 속하는 원자값
      • 사례 : Student 테이블의 Gpa 필드의 값은 4.5 이내의 실수값
    • 엔티티 제약 조건
      • 테이블마다 튜플을 서로 구분할 수 있는 필드가 존재 -> 이 필드를 Primary key(기본키)라고 함
      • 기본키 값은 널 값이 될 수 없다는 조건을 엔티티 무결성 제약 조건
      • 사례 : Student 테이블에서 SSN 필드는 각 학생들을 구분하는 필드
    • 참조 무결성 제약 조건
      • 한 테이블의 필드값은 다른 테이블의 기본키 값을 참조할 때 두 테이블 사이에 참조 무결성 제약조건
      • 사례 : Student 테이블의 dno 필드 값은 Department 테이블의 dnumber 필드값을 가져야 함. 이 때 Student 테이블의 dno 필드를 외래키 foreign key라고 함
  • 데이터베이스 무결성 보장 방법 : 응용 프로그램, 트리거, 제약조건을 이용

416. 관계 데이터 언어

  • 관계 데이터 언어
    • 관계 데이터베이스의 릴레이션을 조작하기 위한 기본 연산에는 관계대수와 관계해석이 있음
    • 사용자의 입장에서 볼 때 데이터를 처리하는 데이터 언어가 되며 관계대수는 절차적 언어, 관계해석은 비절차적 언어
  • 관계 대수
    • 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는 가를 기술하는 절차적인 언어
    • 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어
    • 피연산자가 릴레이션이고 결과도 릴레이션
  • 관계 해석
    • 코드 E.F.Code 박사가 제안한 것
    • 수학의 술어해석에 기반
    • 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특징을 갖고 있음
    • SQL문과 같은 질의어를 사용
    • 튜플 관계해석과 도메인 관계해석으로 구성되며 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어

417. 관계 대수의 연산자

  • 순수 관계 연산자 : 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
종류 연산자 기호 설명
Select 시그마
σ
•릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션 생성
•릴레이션의 행(가로)에 해당하는 튜플을 구하는 것(수평 연산)
Project 파이
π
•주어진 릴레이션에서 속성 리스트에 제시된 속성만 추출하는 연산
•릴레이션의 열(세로)에 해당하는 속성을 추출하는 것 (수직 연산자)
Join 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
Division ÷ X ⊃ Y 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
  • 일반 집합 연산자
종류 유형 설명
합집합 UNION 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플 제거
교집합 INTERSECTION 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
차집합 DIFERENCE 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
교차곱 CARTESIAN PRODUCT 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산

418. 관계 대수의 순수관계 연산자

  • 순수 관계 연산자 : 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
종류 연산자 기호 설명
Select 시그마
σ
•릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션 생성
•릴레이션의 행(가로)에 해당하는 튜플을 구하는 것(수평 연산)
Project 파이
π
•주어진 릴레이션에서 속성 리스트에 제시된 속성만 추출하는 연산
•릴레이션의 열(세로)에 해당하는 속성을 추출하는 것 (수직 연산자)
Join 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
Division ÷ X ⊃ Y 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산

 

419. 관계 대수 중 일반집합 연산자

  • 일반 집합 연산자
종류 유형 설명
합집합 UNION 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플 제거
교집합 INTERSECTION 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
차집합 DIFERENCE 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
교차곱 CARTESIAN PRODUCT 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산

 

421. 튜플 관계 해석식

  • 튜플 관계 해석식의 일반적 형태의 풀이
    • 튜플 관계 해석식의 일반적 형태 : {t1.A1, t2.A2, ..., tn.An | COND(t1, t2, ..., tn, tn+1, tn+2, ..., tn+m)}.
    • t1, t2, ..., tn, tn+1, tn+2, ..., tn+m은 튜플 변수
    • 각 Ai는 ti가 범위로하는 릴레이션의 애트리뷰트
    • COND는 조건 또는 튜플 관계 해석의 식 formula
    • 막대 | 
      • 막대 | 왼편 기술한 한정 애트리뷰트들 : 목표 리스트
      • 막대 | 오른편 기술한 조건에 만족하는 튜플로부터 추출
  • 튜플 변수
    • 범위변수 range variable
    • 지정된 릴레이션의 튜플을 하나씩 그 값으로 취할 수 있는 변수
    • 튜플 변수가 특정 릴레이션의 튜플들을 하나씩 그 변수 값으로 취한다는 표현을 명시적으로 하기 위해서 범위식을 사용
  • 한정 애트리뷰트
    • 릴레이션 R에 대해 튜플 변수 t가 나타내는 튜플의 어떤 애트리뷰트 A의 값을 표현하기 위한 것
    • t.A 또는 t[A]로 나타내며 아래의 튜플 해석식에서 한정 애트리뷰트는 a, 주문수량, a.주문액수, a.고객번호

423. 개념적 설계 단계

  • 한 조직체에서 사용되는 정보 모델 구축
  • 높은 추상화 수준의 데이터 모델을 사용
  • 개체 타입, 관계 타입, 속성들을 식별하고, 속성들의 도메인을 결정, 후보키와 기본키를 결정
  • 개념적 스키마 (ER 스키마)는 ER 다이어그램으로 표현
  • 논리적 설계 단계의 앞 단계에서 수행
  • 대표적인 데이터 모델 : ER 모델

426. 데이터 모델링

  • 사용자 요구사항을 분석하고 필요한 데이터 요소를 도출하여 적절한 데이터 구조를 정의하는 데이터베이스 설계 과정의 핵심 기법
  • 개념적 데이터 모델
    • 숙련된 설계자는 모델링 과정에서 개체 타입과 속성, 식별자를 한 번에 도출할 수 있지만 일반적으로 개념 모델링을 수행
    • 업무의 관심 대상이 되는 정보를 갖고 있거나, 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체)을 의미
    • 현실 세계를 관찰하여 컴퓨터로 관리해야 할 정보, 혹은 데이터를 개체 타입 또는 관계 타입으로 도출

429. 함수 종속성의 유형

  • 완전 함수종속
    • 일반속성이 식별자 전부에 종속
  • 부분 함수종속
    • 일반속성이 식별자 일부에 종속
    • 제 2정규화 필요
  • 이행 함수종속
    • 일반속성 간 함수적 종속
    • 제 3정규화 필요
  • 결정자 함수종속
    • 결정자가 후보키가 아닌 경우 존재, 후보키에 종속자 존재
    • BCNF 정규화 필요

431. 정규화

  • 관계형 데이터베이스 설계 시 중복을 최소화하도록 데이터를 구조화하는 프로세스
  • 제대로 조직되지 않은 테이블들과 관계들을 작고 잘 조직된 테이블과 관계들로 나누는 무손실 분해를 포함
  • 정규화를 수행하는 목적
    • 하나의 테이블에서의 데이터의 삽입, 삭제, 변경이 정의된 관계들로 인하여 데이터베이스의 나머지 부분들로 전파되게 하는 것
    • 어떤 관계라도 데이터베이스 내에서 표현이 가능하도록 만드는 것
    • 관계에서 바람직하지 않은 삽입, 삭제, 갱신 이상이 발생하지 않도록 하는 것
    • 새로운 형태의 데이터가 삽입될 때 관계를 재구성 할 필요성을 줄임
    • 보다 간단한 관계 연산에 기초하여 검색을 보다 효율적으로 함
  • 정규화의 원칙 : 낮은 차수의 정규화를 만족한 상태로 높은 차수의 정규화를 진행
    • 무손실 표현 : 같은 의미의 정보를 유지하면서 더 바람직한 구조를 만듬
    • 자료의 중복성 감소 : 중복되는 정보는 삭제하거나 통합
    • 분리의 원칙 : 독립적인 관계는 별개의 릴레이션으로 표현, 릴레이션 각각에 대해 독립적 조작이 가능

436. 분산 데이터베이스

  • 하나의 데이터베이스 관리 시스템 DBMS이 여러 CPU에 연결된 저장장치들을 제어하는 형태의 데이터베이스
  • 분산 데이터베이스의 투명성
    • 분할 투명성 (단편화) : 하나의 논리적 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 사이트에 저장
    • 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요, 위치정보가 시스템 카탈로그에 유지되어야 함
    • 지역사상 투명성 : 지역 DBMS와 물리적 DB사이의 매핑 보장, 각 지역 시스템 이름과 무관한 이름 사용 가능
    • 중복 투명성 : DB 객체가 여러 site에 중복되어 있는지 알 필요가 없는 성질
    • 장애 투명성 : 구성요소(DBMS, Computer)의 장애에 무관한 트랜잭션의 원자성 유지
    • 병행 투명성 : 다수 트랜잭션 동시 수행 시 결과의 일관성 유지, Time Stamp, 분산 2단계 Locking을 이용 구현

437. 분산 데이터베이스의 장단점

  • 장점
    • 지역 자치성, 점증적 시스템 용량 확장
    • 신뢰성, 가용성
    • 효용성, 융통성
    • 빠른 응답 속도와 통신비용 절감
    • 데이터의 가용성과 신뢰성 증가
    • 시스템 규모의 적절한 조절
    • 각 지역 사용자의 요구 수용 증대
  • 단점
    • 소프트웨어 개발 비용
    • 오류의 잠재성 증대
    • 처리 비용의 증대
    • 설계, 관리의 복잡성과 비용
    • 불규칙한 응답 속도
    • 통제의 어려움
    • 데이터 무결성에 대한 위협

439. 데이터베이스 암호화

  • 외부로부터의 공격, 내부자의 불법행위로 인한 데이터 유출을 방지하기 위해 DB내에 저장된 데이터를 해독 불가능한 형식의 암호문으로 저장하는 행위
  • 데이터베이스 암호화 유형
    • 디스크 전체 Storage Level 암호화
      • DB 파일을 보호하고 비인가 사용자에 의한 불법적인 파일 열람을 제한
      • 인가된 서버만이 정상적인 암호화된 데이터를 해독하고 열람이 가능
    • 컬럼 Column Level 암호화
      • 개인정보, 기업의 민감한 정보를 담고 있는 특정 테이블의 컬럼만을 암호화
      • DB 서버에 접속하는 사용자들을 구분하고 정의된 암/복호화 정책에 따라 데이터를 제공
      • 컬럼 암호화의 종류
        • Plug - In 방식 : DB 서버 내의 플러그인을 장착하여 암복호화를 수행하는 방식
        • API 호출방식 : 애플리케이션 서버가 암복호화를 위한 API을 호출하여 수행하는 방식

440. 하둡 Hadoop

  • 대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어 오픈 소스 프레임워크
  • 가상화 기술을 이용하여 여러 개의 저렴한 컴퓨터를 마치 하나인 것처럼 묶어 대용량 데이터를 처리하는 기술
  • 수천대의 분산된 x86 장비에 대용량 파일을 저장할 수 있는 기능을 제공하는 분산파일 시스템
  • 저장된 파일 데이터를 분산된 서버의 CPU와 메모리 자원을 이용해 쉽고 빠르게 분석할 수 있는 컴퓨팅 플랫폼인 맵리듀스로 구성됨

443. 데이터베이스 이중화

  • 물리적으로 떨어져 이쓴ㄴ 여러 개의 데이터베이스에 대하여 로컬 데이터베이스의 변경된 내용을 원격데이터베이스에 복제하고 관리하는 것
  • 데이터베이스 이중화의 목적 : 데이터베이스의 무정지 서비스
  • 데이터베이스 이중화 유형
    • Active - Active
      • 클러스터를 구성하는 컴포넌트를 동시에 가동하는 구성
      • 시스템 다운 시간이 짧고, 전환성능이 빠름
    • Active - Stand
      • 클러스터를 구성하는 컴포넌트 중 실제 가동하는 것은 Active, 남은 것은 Standby(대기)로 구성
      • Cold - Standby : 평소 Standby 서버 다운 / Hot - Standby : 평소 Standby 서버 기동
      • 세부 종류 : Fail-over 소요시간 - Hot < Warm < Cold
        • Hot Standby : Standby 쪽 장비 기동 후 즉시 사용이 가능, Fail-over 소요시간은 필요
        • Warm Standby : Standby  쪽 장비 기동 후 이용하기 위하여 어느 정도 설정 및 준비 필요
        • Cold Standby : Standby 측을 평소 정지 시켜두며 필요에 따라 직접 켜서 구성

445. 파티셔닝의 장단점

  • 장점
    • 가용성 : 물리적인 파티셔닝으로 인해 전체 데이터의 훼손 가능성이 줄어들고 데이터 가용성 향상
    • 관리용이성 : 큰 Table을 제거하여 관리가 쉬움
    • 성능 : 특정 DML과 Query의 성능 향상, 주로 대용량 Data Write 환경에서 효율적, 많은 Insert가 있는 OLTP 시스템에서 Insert 작업들을 분리된 파티션들로 분산시켜 경합을 줄임
  • 단점
    • 테이블 간의 조인에 대한 비용이 증가
    • 테이블과 인덱스를 별도로 파티션 작업은 불가, 테이블과 인덱스를 함께 파티셔닝이 가능

447. 파티셔닝의 방법

  • Horizontal Partitioning
    • 데이터의 개수를 기준으로 나누어 파티셔닝
    • 데이터의 개수가 작아지면서 인덱스의 개수도 작아지며 성능도 향상
    • 서버간의 연결 과정이 많아짐
    • 데이터를 찾는 과정이 기존보다 복잡하기 때문에 Latency가 증가
    • 하나의 서버가 고장나게 되면 데이터의 무결성이 깨질 수 있음
  • Vertical Partitioning
    • 테이블의 컬럼을 기준으로 나누어 파티셔닝
    • 정규화하는 과정도 이와 비슷하다고 볼 수 있지만 Vertical Partitioning은 이미 정규화된 Data를 분리하는 과정
    • 자주 사용하는 컬럼 등을 분리시켜 성능을 향상 

448. 클러스터

  • 어떤 정해진 컬럼 값을 기준으로 동일한 값을 가진 하나 이상의 테이블의 로우를 같은 장소에 저장하는 물리적인 기법
  • 디스크로부터 데이터를 읽어오는 시간을 줄이기 위해서 조인이나 자주 사용되는 테이블의 데이터를 디스크의 같은 위치에 저장시키는 방법
  • 클러스터의 장점
    • 그룹된 컬럼 데이터 행들이 같은 데이터 Block에 저장되기 때문에 디스크 I/O를 줄여줌
    • 클러스터된 테이블 사이에 조인이 발생할 경우 그 처리 시간이 단축
    • 클러스터 키 열을 공유하여 한번만 저장하므로 저장 영역의 사용을 줄여줌
    • 데이터 조회 성능을 향상시킴
  • 클러스터의 단점
    • 데이터 저장, 수정, 삭제 또는 한 테이블 전체 Scan의 성능을 감소시킴
  • 클러스터의 특징
    • 클러스터 하기 좋은 테이블
      • 주로 조회가 자주 발생하고 수정이 거의 발생하지 않는 테이블
      • 컬럼 안의 많은 중복 데이터를 가지는 테이블
      • 자주 조인되는 테이블
    • 클러스터 키가 되기 좋은 컬럼
      • 데이터 값의 범위가 큰 컬럼
      • 테이블 간의 조인에 사용되는 컬럼
    • 클러스터 키가 되기 나쁜 컬럼
      • 특정 데이터 값이 적은 컬럼
      • 자주 데이터 수정이 발생하는 컬럼
      • LONG, LONG RAW 컬럼은 포함할 수 없음