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'이고 스키마가 서로 다른 두 테이블이 생성됩니다.