1.试述关系模型的三个组成部分。
关系模型组成:数据结构、数据操纵、完整性约束。
2.试述(SQL)的特点。
特点:综合统一、高度非过程化、用同一种语法结构提供两种使用方式、语言简洁易学易用、面向集合的操作方式。
3.主码、候选码、外码。
当一个关系有多个候选码时,应选定其中的一个候选码为主码;而如果关系中只有一个候选码,这个唯一的候选码就是主码。
若关系中的某一属性组或单个属性的值能唯一确定一个元组,则称该属性组为候选码;
设F是基本关系R的一个或一组属性,但不是关系R的码。
4.笛卡尔积、关系、元组、属性、域。
给定一组域D1,D2,…,Dn,则D1,D2,…,Dn的笛卡地积为:D1×D2×…×Dn﹦{(dl,d2,…,dn)∣di∈Di,i=1,2,…,n}所有域的所有取值的一个集合,不能重复。
D1×D2×…×Dn的子集称作在域D1,D2,…,Dn上的关系,表示为:R(D1,D2,…,Dn)。其中,R表示关系的名字,n是关系的目。
关系模型的一行称为一个元祖。
关系中的每一列称为一个属性。
域是一组具有相同数据类型的值得集合。
概念模型实体:客观存在并相互区别的事物及
事物之间的联系。
5.试述存储过程的定义和优点。
存储过程是在数据库服务器中执行的一系列
T-SQL语句的集合,经编译器编译后存储在数据库
服务器端,在数据库中普遍应用的一种数据库对象。
优点:执行速度快、效率高;允许模块化程序
设计;减少网络流量;可作为安全机制使用。
6.触发器
触发器是一种特殊的存储过程,他是在执行某
些特定的T-SQL语句时自动执行的一种存储过程。
7.什么是范式
第一范式(1NF):关系模型R的所有属性都
是不可分的基本数据项。
第二范式(2NF):关系模型属于第一范式,
并且每一个非主属性都完全函数依赖于R的码。
第三范式(3NF):关系模型R中非主属性不
存在函数依赖关系。
8.试述数据库的用户、角色、权限。
用户:用户是数据库系统的合法使用者;
角色:角色是由一个或多个用户组成的单元,
角色也称职能组。
数据库权限:指对数据库各种数据内容的可操
作性。
事务:是一系列的数据库操作,是数据库应用的基
本逻辑单位。
9.特性:原子性,一致性或可串性,隔离性,持久性
创建数据库:create database [数据库名]
修改数据库:alter database[数据库名]
建表:create table [表名]
修改表:update 表名set 列名=表达式
删除表:delete 表名
添加列:alter table [表名]
Add 列名列的描述
删除列:drop column 列名
修改列:alter column 列名,列的描述
插入元组:insert into 表名values(插入的数
据)
删除表:drop table 表名
去除重复行:distinct
或者:between
检查空值:is null
创建视图:create view 视图名as 子查询语
句
主键约束:primary key(属性名)
唯一性约束:unique
默认值约束:default
范围约束:Check(约束条件)
级联:primary key(学号,课程号)
Foreign key(学号)references 学生(学
号)
级联删除on delete cascade
级联更新on update cascade
拒绝删除on delete no action
存储过程:create procedure 名[定义] as
修改存储过程:alter procedure 名主体
删除存储过程:drop procedure 名
存储过程例子:
创建存储过程,查询总成绩为第1名的。执行存储过程,把总成绩为第一名的课程号及总成绩打印出来。
create procedure zcj1
@kch char(3) output,@szcj int output
as
select top 1 @kch=课程号,@szcj=sum(成绩) from 成绩
group by 课程号
order by sum(成绩) DESC
执行:
declare @kch char(3) ,@szcj int
exec zcj1 @kch output,@szcj output
print '课程号'+@kch
print '总成绩'+str(@szcj)
游标例子:
创建游标,查询统计选课人数为第3名的课程号,打开游标,把选课人数为第3名的课程号及选课人数打印出来。
use xssjk DECLARE pjcj SCROLL CURSOR
FOR SELECT 课程号,sum(课程号) as ‘选课人数’FROM dbo.成绩
GROUP BY 课程号
ORDER BY sum(课程号) DESC
open pjcj
DECLARE @kch nvarchar(7),@num int
FETCH ABSOLUTE 3
FROM pjcj
into @ kch,@ num
print '课程号:'+@kch
print '选课人数:'+str(@num)
Close pjcj