3、 系统数据库
安装Sybase数据库时自动生成的下列系统数据库:
● 主数据库master;
● 模型数据库model;
● 系统过程数据库sybsystemprocs;
● 临时数据库tempdb。
也可选择下列数据库:
● 安全审核数据库sybsecurity;
● 示例数据库pubs2;
● 命令语法数据库sybsyntax。
(1) master数据库
包含许多系统表和系统过程,从总体上控制用户数据库和SQL Server的操作,构成了SYBASE系统的数据字典。MASTER数据库主要记录信息为:
● 登录帐号(SQL服务器用户名);syslogins,sysremolelogins
● 正在执行的过程;sysprocesses
● 可修改的环境变量;sysconfigures
● 系统错误信息;sysmessages
● SQL服务器上每个数据库的信息;sysdatabases
● 每个数据库占用的存储空间;sysusages
● 系统上安装的磁带及磁带信息;sysdevices
● 活动锁信息;syslocks
(2) model数据库
提供了新用户数据库的初型。当我们每次用CREATE DATABASE命令 时,SQL Server都产生一个model数据库的拷贝,然后把它扩展到命令要求的尺寸。如果我们修改了model数据库,那么以后新创建的数据库都将随它而改变。下面是几个通常用到的对model数据库的改变:
● 增加用户数据库类型、规则或缺省;
● 可存取SQL Server上所有数据库的用户用sp_adduser增加到model数据库上;
● 缺省权限(特别是guest帐号)可在model中建立;
● 诸如select into/bulkcopy那样的数据库选项可在model中设置。这些设置反映到所有新创建的数据库中。它们在model中最原始的值是关(off)。
在一般情况下,大多数用户无权修改model数据库,又没被授权读取。因为model中所有内容已拷贝到新数据库中,授权读model没什么意义。
1> use model
2> go
3> sp_help
4> go
Name Owner Object_type
--------------- --------------- ----------------------
sysalternates dbo system table
syscolumns dbo system table
syscomments dbo system table
sysconstraints dbo system table
sysdepends dbo system table
sysgams dbo system table
sysindexes dbo system table
syskeys dbo system table
syslogs dbo system table
sysobjects dbo system table
sysprocedures dbo system table
sysprotects dbo system table
sysreferences dbo system table
sysroles dbo system table
syssegments dbo system table
systhresholds dbo system table
systypes dbo system table
sysusermessages dbo system table
sysusers dbo system table
(3) sybsystemprocs数据库
库中存储系统过程,当用户执行一存储过程(以sp_开始)时,SQL 服务器首先在用户当前数据库中搜索指定的存储过程,如果没有相应过程,则到系统过程数据库中寻找,若没有,再到MASTER数据库中寻找。
(4)临时数据库tempdb
该数据库为临时表和临时工作提供了一个存储区域。临时数据库是SQL Server上所有数据库共享的工作空间。由于这些表都是临时的,所以每当用户退出或系统失败,这些表都将消失。
(5)安全审核数据库sybsecurity
数据库中保存系统的安全审核信息,它可跟踪记录每个用户的操作情况,为维护系统安全提供控制手段。
(6)示例数据库pubs2
为用户提供一个学习SYBASE的数据库模型。
(7)命令语法数据库sybsyntax
库中保存SYBASE数据库的命令语法及支持的语言库。
4、用户数据库
用户数据库是指用Create database 命令创建的数据库。所有新的用户数据库都要在master数据库中创建,也就是说,不能存取master数据库的用户是无权创建新的数据库的。SA可以将创建数据库的权限授予其他用户。新建数据库中存在一些系统表,在sysusers表中至少有一条记录,既该数据库的创建者。数据库创建时,创建者既为该数据库的 owner, 当然创建者可以将这一地位或这一所有权用系统过程授予别的用户。
5、数据库对象
(1)表(Tables)
在一个关系数据库中,表是最重要的数据库对象,对应于关系数据库理论中关系,与DBASE或FOXPRO中的DBF文件是类似。一切数据都存放在表中。其它数据库对象都是为了用户很好地操作表中的数据。表都以一张二维表的形式存在。其中,每一列称之为一个字段,或一个域;而每一行称之为一个记录,也就是一项数据。
有一类表,它们的名字都是以sys开头的,这些表称为系统表,系统表记录着有关SQL Server的信息。在master数据库中的表大部分为系统表,这些表是随着master数据库的创建而建立的。另外,每个用户数据库在创建时都有一个系统表的子集。
例如,只有在master数据库中才有的系统表有:sysconfigures、sysdatabases、sysdevices、syslogins等;在用户数据库和系统数据库中都有的系统表有:sysalternates、syscolumns、sysindexs、syslogs、sysobjects、sysusers等。
例:
1> use master
2> go
3> sp_help
4> go
Name Owner Object_type
------------------------------ -----------------------------------------------
spt_committab dbo user table
spt_datatype_info dbo user table
spt_datatype_info_ext dbo user table
spt_monitor dbo user table
spt_server_info dbo user table
spt_values dbo user table
sysalternates dbo system table
syscharsets dbo system table
syscolumns dbo system table
syscomments dbo system table
sysconfigures dbo system table
sysconstraints dbo system table
syscurconfigs dbo system table
sysdatabases dbo system table
sysdepends dbo system table
sysdevices dbo system table
sysengines dbo system table
sysgams dbo system table
sysindexes dbo system table
syskeys dbo system table
syslanguages dbo system table
syslisteners dbo system table
syslocks dbo system table
sysloginroles dbo system table
syslogins dbo system table
syslogs dbo system table
sysmessages dbo system table
sysmonitors dbo system table
sysobjects dbo system table
sysprocedures dbo system table
sysprocesses dbo system table
sysprotects dbo system table
sysreferences dbo system table
sysremotelogins dbo system table
sysroles dbo system table
syssegments dbo system table
sysservers dbo system table
syssrvroles dbo system table
systestlog dbo system table
systhresholds dbo system table
systypes dbo system table
sysusages dbo system table
sysusermessages dbo system table
sysusers dbo system table
sp_configure dbo stored procedure
sp_dboption dbo stored procedure
sp_getmessage dbo stored procedure
sp_procxmode dbo stored procedure
sp_prtsybsysmsgs dbo stored procedure
sp_validlang dbo stored procedure
说明见附录表1
(2)视图(Views)
视图是查看一张或几张表中的数据的一种方式。通过将一张或几张表中的一部分数据进行组合得到视图。视图看上去与表非常相象,但与表还是有着本质的区别。通过视图看到的数据实际上都是存放在表中的,在数据库中仅存在视图的定义。
使用视图的好处是:
● 操作方便
● 安全性
(3)索引(Index)
索引是对字段生成的,用于加快数据的检索。在Sybase数据库中,索引是由系统自动管理的,也就是说,Sybase的索引操作对用户是透明的。表的索引一旦建立,系统会自动对其进行更新维护以使它与相应表对应一致;操作时,用户无须指定索引,系统会自动确定是否使用索引进行操作。
Sybase支持三种不同类型的索引,一是复合索引,即包含几个列的索引;二是唯一性索引,即任意两行中的索引列不能有相同的取值;三是簇类索引(Clustered indexes)和非簇类索引(Nonclustered indexs),簇类索引使SQL服务器不断重排表行的物理顺序以使其与逻辑索引顺序相一致,非簇类索引则不需要表行的物理顺序与逻辑顺序一致。每个表最多只能建立一个簇类索引,非簇类索引则可建立多个。与非簇类索引相比,簇类索引的检索速度要快。应当在建立任何非簇类索引以前建立簇类索引。
