DB2 – 架构

本章介绍并描述了架构的概念。

简介

架构是数据库中按逻辑分类的命名对象的集合。

在数据库中,不能创建多个同名的数据库对象。 为此,该模式提供了一个组环境。 您可以在数据库中创建多个架构,并且可以使用不同的架构组创建多个具有相同名称的数据库对象。

schemas

架构可以包含表、函数、索引、表空间、过程、触发器等。例如,您为"employee(员工)"数据库创建两个不同的架构,分别命名为"Professional(专业)"和"Personal(个人)"。 可以创建两个具有相同名称"Employee"的不同表。 在这种环境中,一张表包含专业信息,另一张表包含员工的个人信息。 尽管有两个同名的表,但它们有两个不同的模式"Personal"和"Professional"。 因此,用户可以同时使用两者而不会遇到任何问题。 当表的命名受到限制时,此功能非常有用。

让我们看看一些与 Schema 相关的命令:

获取当前活动架构

语法:

db2 get schema  

示例:[获取当前数据库架构]

db2 get schema   

为当前环境设置另一个架构

语法:

db2 set schema=<schema_name>  

示例:[将"schema1"排列到当前实例环境]

db2 set schema=schema1 

创建新架构

语法:[使用授权用户 ID 创建新架构]

db2 create schema <schema_name> authroization <inst_user> 

示例:[创建由"db2inst2"授权的"schema1"架构]

db2 create schema schema1 authorization db2inst2 

练习

让我们创建两个具有相同名称但有两个不同架构的不同表。 在这里,您创建具有两种不同架构的员工表,一种用于个人信息,另一种用于专业信息。

第 1 步:创建两个架构。

架构 1:[创建名为 professional 的架构]

db2 create schema professional authorization db2inst2 

架构2:[创建名为personal的架构]

db2 create schema personal authorization db2inst2

第 2 步:为员工详细信息创建两个同名表

表1:professional.employee

[使用架构名称"professional"在数据库中创建新表"employee"]

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

表2:personal.employee

[在同一数据库中创建新表"employee",架构名称为"personal"]

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

执行这些步骤后,您将获得两个具有相同名称"employee"的表,具有两种不同的架构。