SQLServer2008创建数据表与视图约束

需积分: 5 0 下载量 32 浏览量 更新于2024-09-07 收藏 412KB DOC 举报
"数据库设计与管理" 在数据库管理系统中,三级数据库结构是一种常见的组织方式,它由外模式、模式和内模式组成,以适应不同层次的需求并确保数据的独立性。 外模式,也称为用户模式,是用户看到和操作的数据视图,反映了用户或应用程序对数据的需求。它可以是整个数据库的一部分,或者是一个逻辑上的数据子集,提供了数据的逻辑表示。外模式允许用户以他们理解的方式访问数据,而无需了解底层数据存储的细节。 模式,又称为概念模式或逻辑模式,是数据库的整体逻辑结构,包括所有表、字段、关系以及约束等。它是数据库管理员工作的主要层面,描述了所有数据的精确结构和关系。在这个例子中,创建工作表时的“最高工资必须大于等于最低工资,但不能超过最低工资的2倍”的约束就是一个逻辑层的规则。 内模式,也称存储模式,是数据在物理存储层的表示,包括数据的物理结构和存储方式。例如,数据如何在磁盘上分布,索引是如何构建的,是否使用了数据压缩等。这个层次的设计直接影响到数据存取的效率。 SQLServer2008中的创建表语句示例展示了如何定义这些约束。在这些语句中,"主键"定义了唯一标识记录的字段,"check"约束则确保了最高工资符合规定的条件。值得注意的是,在某些语句中,主键和约束的声明顺序有所不同,但不影响其功能。 数据库的角色和权限管理是数据库安全的重要组成部分。SQLServer中,`sp_addsrvrolemember`是一个存储过程,用于向登录账户授予服务器级别的角色。例如,可以将一个登录账户设置为`db_owner`角色,使其拥有对数据库的全部控制权,或者设置为`db_datareader`,允许只读访问。 视图是数据库的虚拟表,基于一个或多个表的查询结果。在统计每个系选课人数的例子中,创建视图`V1`需要使用聚合函数`COUNT()`来计算每个系的选课人数,并使用`GROUP BY`语句根据所在系名进行分组,以确保统计结果按系别展示。完整的`CREATE VIEW`语句可能是这样的: ```sql CREATE VIEW V1 (系名, 人数) AS SELECT 所在系名, COUNT(选课表.学号) FROM 选课表 JOIN 学生表 ON 选课表.学号 = 学生表.学号 GROUP BY 所在系名 ``` 这个视图将自动更新,反映出选课表和学生表的最新状态,为数据分析和报告提供便利。 数据库设计涉及表结构定义、约束设置、视图创建以及权限管理等多个方面,需要综合考虑数据的完整性和安全性。在SQLServer这样的关系型数据库管理系统中,通过有效的SQL语句和存储过程,我们可以实现复杂的数据操作和管理。