第七章
1.数据库设计,数据库设计分6个阶段。
需求分析。 概念结构设计。 逻辑结构设计。 物理结构设计。 数据库实施。 数据库运行和维护。 2.
数据项是不可再分的数据单位 数据结构反映了数据之间的组合关系。 数据流是数据结构在系统内传输的路径。
数据存储是数据结构停留或保存的地方,也就是流的来源和去向之一。 具体处理逻辑一般用判定表或判定树来描述。
数据字典是关于数据库中数据的描述,是元数据,而不是数据本身。 数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。 概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。
自顶向下的进行需求分析,自低向上的设计概念结构。
定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。 物理设计的第一任务就是要确定选择那些存取方法,即建立哪些存取路径。
3. E—R图
实体型:用矩形表示,矩形框内写明实体名
属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)
联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来
在关系总数尽量少的情况下,该E-R图转换后关系模式包括: 学生(学号,姓名,性别,专业,出生日期,学院编号) 课程(课程编号,课程名称,课程类别,学分)
学院(学院编号,学院名称,办公室电话,院长教职工编号) 教职工(教职工编号,姓名,参加工作时间,职称,学院编号) 选课(学号,课程号,成绩)
第八章
1.游标。
使用:声明游标、打开游标、从一个游标中提取信息、关闭释放游标。
声明游标:Declare XXX cursor
For select ******
打开游标:open XXX 关闭游标:close XXX 释放游标:deallocate XXX
声明一个名为curAllCourse的游标,完成统计有多少学生选修了全部课程,输出学生学号和姓名。
declarecurAllCoursecursor forSELECTSNO,sname
fromstudent
wheresnoin( )
selectsno fromsc groupbysno havingCOUNT(*)>= ( )
selectCOUNT(*) fromcourse
//声明游标
forreadonly
opencurAllCourse
declare@snochar(10),@snamechar(10)
//声明变量
//打开游标
set@sno=0
fetchnextfromcurAllCourseinto@sno,@sname //从游标中取数据 while@@FETCH_STATUS= 0 begin
if@snameisnull
set@sno=@sno+ 1
select@sno学号,@sname姓名
fetchnextfromcurAllCourseinto@sno,@sname
end
CLOSEcurAllCourse
DEALLOCATEcurAllCourse
//释放游标 //关闭游标
2.存储过程。
类似与C语言中的函数。
编写一个存储过程,在sc表统计每个学生的平均分.
createprocavergrade //创建存储过程
as begin
selectsno,avg(grade)平均分 fromsc groupbysno end
execavergrade
dropprocedureavergrade
//执行存储过程
//删除存储过程
对练习1的存储过程进行改进,添加一个输入参数——学号,使存储过程能根据输入的学号计算该学生的平均分
createprocavergrade @snochar(10) as begin
selectsno,avg(grade)平均分 fromsc
wheresno=@sno groupbysno end
execavergrade'04'
dropprocedureavergrade
在练习2的基础上添加一个输出参数——平均分,计算指定学号的平均分,然后将平均分输出。
createprocavergrade @snochar(10), @savingintout