数据库原理测试(二)
任务一、数据库完整性
1、使用Ms SQL Server2005 创建数据库School,包含表学生表Students和班级表Classes,其中学生与班级之间有如下联系,一个学生属于一个班级,一个班级有多个学生。学生与学生之间有一个班长的联系,每个学生都有自己的班长,一个班长与多个学生有联系。
2、创建班级表Classes
属性有班级号(整数,从1开始自动编号),班级名(变长字符串50位,不能为空,不能重复),班级人数(整数)。
3、创建学生表Students
属性有 学号(整数,从1开始自动编号),姓名(变长字符串,20位),性别(只能是男或女),年龄(16-25的整数),班级(外码,参照班级表的主码。要求删除时拒绝,更新时,级联更新)和班长(外码,参照本表(students)的主码。要求删除时拒绝,更新时,拒绝更新)。
数据表关系与设计后的属性、约束如下图所示。
任务二、触发器设置
1、先向班级表内插入一行元组,如:1,2011软件工程1班,0
2、编写触发器,当向学生表内插入一行元组,如:1,张同学,男,18,1,1
使得对应的班级人数(班级表内)加1。
参考代码:
create database school;
go
use school
go
create table classes
(
cid int identity(1,1