DB2-스키마

이 장에서는 스키마의 개념을 소개하고 설명합니다.

소개

스키마는 데이터베이스에서 논리적으로 분류 된 명명 된 개체의 모음입니다.

데이터베이스에서 동일한 이름으로 여러 데이터베이스 개체를 만들 수 없습니다. 이를 위해 스키마는 그룹 환경을 제공합니다. 데이터베이스에 여러 스키마를 생성 할 수 있으며 다른 스키마 그룹을 사용하여 동일한 이름으로 여러 데이터베이스 객체를 생성 할 수 있습니다.

스키마는 테이블, 함수, 인덱스, 테이블 스페이스, 프로 시저, 트리거 등을 포함 할 수 있습니다. 예를 들어 "직원"데이터베이스에 대해 "Professional"및 "Personal"이라는 두 개의 서로 다른 스키마를 생성합니다. "Employee"라는 동일한 이름으로 두 개의 서로 다른 테이블을 만들 수 있습니다. 이 환경에서 한 테이블에는 전문적인 정보가 있고 다른 테이블에는 직원의 개인 정보가 있습니다. 이름이 같은 두 개의 테이블이 있음에도 불구하고 두 개의 서로 다른 스키마 인 "Personal"과 "Professional"이 있습니다. 따라서 사용자는 문제없이 둘 다 사용할 수 있습니다. 이 기능은 테이블 이름 지정에 제약이있을 때 유용합니다.

스키마와 관련된 몇 가지 명령을 살펴 보겠습니다.

현재 활성 스키마 가져 오기

Syntax:

db2 get schema

Example: [현재 데이터베이스 스키마 가져 오기]

db2 get schema

현재 환경에 다른 스키마 설정

Syntax:

db2 set schema=<schema_name>

Example: [현재 인스턴스 환경에 'schema1'정렬]

db2 set schema=schema1

새 스키마 생성

Syntax: [권한 된 사용자 ID로 새 스키마를 작성하려면]

db2 create schema <schema_name> authroization <inst_user>

Example: [ 'db2inst2”로 권한 부여 된“schema1”스키마 작성]

db2 create schema schema1 authorization db2inst2

운동

이름은 같지만 스키마가 다른 두 개의 다른 테이블을 만들어 보겠습니다. 여기서는 개인용과 전문적인 정보 용의 두 가지 스키마가있는 직원 테이블을 만듭니다.

Step 1: 두 개의 스키마를 생성합니다.

Schema 1: [프로페셔널이라는 스키마를 생성하려면]

db2 create schema professional authorization db2inst2

Schema 2: [person이라는 스키마를 생성하려면]

db2 create schema personal authorization db2inst2

Step 2: 직원 세부 정보에 대해 동일한 이름으로 두 개의 테이블 만들기

Table1: professional.employee

[스키마 이름 'professional'을 사용하여 데이터베이스에 새 테이블 'employee'를 생성하려면]

db2 create table professional.employee(id number, name 
varchar(20), profession varchar(20), join_date date, 
salary number);

Table2: personal.employee

[같은 데이터베이스에 'personal'스키마 이름으로 새 테이블 'employee'생성]

db2 create table personal.employee(id number, name 
varchar(20), d_birth date, phone bigint, address 
varchar(200));

이 단계를 실행하면 이름이 'employee'이고 스키마가 서로 다른 두 테이블이 생성됩니다.