数据库设计

    这篇文章介绍自己做这个项目时设计的数据库。

    管理空间数据的方式有很多,本系统采用基于Oracle的空间数据库插件SDE来管理。存放空间数据的表结构是根据用户自定义标准来创建的,采用这种方式主要因为空间数据并没有固定的格式,不同格式的空间数据需要建立不同的表结构来存放数据,而且这样是管理空间数据更加灵活。

本系统数据库的设计主要是管理空间数据需要用到的辅助表结构设计,由于这些表结构都比较简单就没有设计ER图了,而是直接设计表逻辑结构了。

(1)管理人员信息表(USERS):设计此表的目的是对管理人员的信息进行统一的管理,管理人员的信息有用户名、密码、部门等,如表1-1所示。

表1-1 管理人员信息表


Name

Code

Data Type

Length

说明

USERNAME

USERNAME

VARCHAR2(30)

30

用户名

PASSWORD

PASSWORD

VARCHAR2(30)

30

用户密码

DESCRIPTION

DESCRIPTION

VARCHAR2(100)

100

描述

DEPARTMENT

DEPARTMENT

VARCHAR2(40)

40

部门

TYPE

TYPE

VARCHAR2(10)

10

用户类型


(2)数据分类表(CATEGORY):此表的作用是记录空间数据的分类,分类的方法可能是根据不同的用处或是不同的功能来划分,此表结构定义如表1-2所示。

表1-2 数据分类表


Name

Code

Data Type

Length

说明

ID

ID

NUMBER

 

分类编号

NAME

NAME

VARCHAR2(30)

30

分类名称

DESCRIPTION

DESCRIPTION

VARCHAR2(100)

100

分类描述


(3)图层分类表(ELEMENT):图层分类是建立在数据分类基础下的,把具有相同或相似功能的图层分为一类,这个表就是来记录有关图层分类的详细信息,如分类名称、分类描述等,具体定义如表1-3所示。

表1-3 图层分类表


Name

Code

Data Type

Length

说明

ID

ID

NUMBER

 

分类编号

NAME

NAME

VARCHAR2(50)

50

图层分类名称

DESCRIPTION

DESCRIPTION

VARCHAR2(500)

500

图层分类描述

CATEGORY

CATEGORY

VARCHAR2(30)

30

数据分类

DATASETNAME

DATASETNAME

VARCHAR2(50)

50

数据集


(4)图层信息表(LAYER):此表是用于管理图层相关信息的,如图层编号、图层所对应的表名称、图层类型等,如表1-4所示。

表1-4 图层信息表


Name

Code

Data Type

Length

说明

ID

ID

NUMBER

 

图层编号

TABLE_NAME

TABLE_NAME

NVARCHAR2(160)

160

表名称

TABLE_MAPNAME

TABLE_MAPNAME

NVARCHAR2(160)

160

映射表名称

DESCRIPTION

DESCRIPTION

NVARCHAR2(200)

200

描述信息

TYPE

TYPE

VARCHAR2(10)

10

图层类型

PID

PID

NUMBER

 

图层分类


(5)操作日志表(OPTLOG):此表用于记录数据管理员对数据库的各种操作,以便查看数据管理员以前的操作记录,表结构定义如表1-5所示。

表1-5 操作日志表


Name

Code

Data Type

Length

说明

USERNAME

USERNAME

VARCHAR2(30)

30

操作用户名

TYPE

TYPE

VARCHAR2(20)

20

操作类型

DESCRIPTION

DESCRIPTION

VARCHAR2(200)

200

操作描述

OPTTIME

OPTTIME

DATE

 

操作时间


(6)数据更新日志表(UPDATEDATA_LOG):这个表唯一作用是记录哪些表被更新过,用于数据库之间的同步,如表1-6所示。

表1-6 数据更新日志表


Name

Code

Data Type

Length

说明

ID

ID

NUMBER

 

日志编号

TABLENAME

TABLENAME

VARCHAR2(50)

50

被更新的表名称

TABLETYPE

TABLETYPE

VARCHAR2(10)

10

表的类型

OPERTYPE

OPERTYPE

VARCHAR2(10)

10

更新类型

OPERDATE

OPERDATE

DATE

 

更新时间


(7)数据库监控日志表(ALERT_LOG):监控数据库时,如果发现异常就把异常信息写入此表,数据库管理员可以根据此表来解决异常和优化数据库。详细定义如表1-7所示。

表1-7 数据库监控日志表


Name

Code

Data Type

Length

说明

HAPPENTIME

HAPPENTIME

DATE

 

异常发生时间

TYPE

TYPE

VARCHAR2(40)

40

异常类型

CONTENT

CONTENT

VARCHAR2(200)

200

具体内容


(8)图层表结构定义表(FIELDDEFINE):此表是用于记录图层对应的表结构信息,如表名称、字段名称、字段类型等,完整定义如表1-8所示。

表1-8 图层表结构定义表


Name

Code

Data Type

Length

说明

TABLE_NAME

TABLE_NAME

VARCHAR2(40)

40

表名称

NAME

NAME

VARCHAR2(40)

40

名称

ALIAS_NAME

ALIAS_NAME

VARCHAR2(60)

60

别称

TYPE

TYPE

VARCHAR2(20)

20

类型

LENGTH

LENGTH

NUMBER

 

字段的长度

SCALE

SCALE

NUMBER

 

小数位

ISNULL

ISNULL

VARCHAR2(4)

4

是否空

UNI

UNI

VARCHAR2(4)

4

是否唯一

DESCRIPTION

DESCRIPTION

VARCHAR2(80)

80

字段描述

CHECKDEFINE

CHECKDEFINE

VARCHAR2(100)

100

字段约束

DEFAULTVALUE

DEFAULTVALUE

VARCHAR2(40)

40

默认值


(9)图层表之间字段关联表(RELATION):这个表用于维护图层表之间的关联关系,当一个表的数据更新了程序可以通过查询这张表来级联更新与之有关联的表,保证数据的完整性和一致性。这个表结构定义如表1-9所示。

表1-9 图层表之间字段关联表


Name

Code

Data Type

Length

说明

FIRST

FIRST

VARCHAR2(50)

50

主表

SECOND

SECOND

VARCHAR2(50)

50

关联表

BITS

BITS

NUMBER

 

字段关联的位数


(10)数据库监控索引表(MONITORINDEX):此表是为了记录有关索引相关信息而设计的,通过这个表的信息可以决定是否优化数据库。这个表的定义如表1-10所示。

表1-10 数据库监控索引表

Name

Code

Data Type

Length

说明

INDEX_NAME

INDEX_NAME

VARCHAR2(50)

50

索引名称

DEL_LF_ROWS

DEL_LF_ROWS

NUMBER

 

 

LF_ROWS

LF_ROWS

NUMBER

 

 

RATE

RATE

NUMBER(4,2)

 

比率

MONITORDATE

MONITORDATE

DATE

 

监控日期

(11)运行维护制度表(OPERATION_MAINTAIN):这个是为了记录运维的制度而设计的。如表1-11所示。

表1-11 数据库监控索引表


Name

Code

Data Type

Length

说明

PUBDATE

PUBDATE

DATE

 

发布日期

TITLE

TITLE

VARCHAR2(100)

100

主题

CONTENT

CONTENT

CLOB

 

内容


(12)元数据库信息表(DATABASEINFO):为了记录元数据库的相关信息设计了此表,主要记录了元数据库名称、元数据库描述等,如表1-12所示。

表1-12 元数据库信息表


Name

Code

Data Type

Length

说明

ID

ID

VARCHAR2(20)

20

元数据库的ID编号

NAME

NAME

VARCHAR2(30)

30

元数据库名称

DESCRIPTION

DESCRIPTION

VARCHAR2(200)

200

元数据库描述

CONNECTDRIVER

CONNECTDRIVER

VARCHAR2(50)

50

元数据库连接驱动

CONNECTSTRING

CONNECTSTRING

VARCHAR2(100)

100

元数据库连接字符串

MAPNAME

MAPNAME

VARCHAR2(40)

40

元数据库映射名称


(13)目录信息表(DIRINFO):设计此表为了对元数据按目录进行分类管理,此表就是记录目录相关信息,如表1-13所示。

表1-13 目录信息表


Name

Code

Data Type

Length

说明

SYSID

SYSID

VARCHAR2(40)

40

系统ID编号

ID

ID

VARCHAR2(40)

40

ID编号

NAME

NAME

VARCHAR2(60)

60

目录名称

DESCRIPTION

DESCRIPTION

VARCHAR2(500)

500

目录描述

PID

PID

VARCHAR2(40)

40

父目录ID编号

DEFINE

DEFINE

VARCHAR2(100)

100

定义


(14)元数据标准信息表(METASTAND):用于记录元数据标准相关信息,可以根据记录的标准创建元数据库和一条相应的元数据信息,如表1-14所示。

表1-14 元数据标准信息表


Name

Code

Data Type

Length

说明

ID

ID

VARCHAR2(20)

20

元数据标准ID

NAME

NAME

VARCHAR2(50)

50

元数据标准名称

CONTENT

CONTENT

CLOB

 

元数据标准内容

ORG

ORG

VARCHAR2(60)

60

元数据标准发布组织

VERSION

VERSION

VARCHAR2(60)

60

元数据标准版本