DB2 – 架构
本章介绍并描述了架构的概念。
简介
架构是数据库中按逻辑分类的命名对象的集合。
在数据库中,不能创建多个同名的数据库对象。 为此,该模式提供了一个组环境。 您可以在数据库中创建多个架构,并且可以使用不同的架构组创建多个具有相同名称的数据库对象。
架构可以包含表、函数、索引、表空间、过程、触发器等。例如,您为"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"的表,具有两种不同的架构。