数据库系统原理实验指导书Word格式.docx
《数据库系统原理实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验指导书Word格式.docx(12页珍藏版)》请在冰点文库上搜索。
一、实验目的与要求
1.初步熟悉E-R模型的概念;
2.进一步理解E-R模型的两个要素:
实体和联系;
3.理解E-R模型实体型与实体型之间的三种联系类型:
一对一、一对多和多对多;
4.能够根据具体的应用环境的需求建立概念世界的E-R模型。
二、实验环境
SQLSERVER2000
三、实验预习与准备
掌握以下操作语句的一般格式:
1976年P.P.S.Chen提出实体-联系法(Entity-Relationship)表示概念模型,简称为E-R图。
该方法提供了表示实体型、属性和联系的方法。
实体型:
用矩形表示,矩形框内写明实体名。
属性:
用椭圆形表示,并用无向边将其与相应的实体连接起来。
联系:
用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,无向边旁标上联系的类型。
四、实验内容和步骤
1.根据具体的应用环境的需求设计信息世界的概念模型,如下列示例:
为银行设计一个数据库系统,通过所给的需求分析利用E-R图设计出概念模型。
银行的主要需求如下:
银行有多个分支机构。
每个分支机构位于某个城市,由唯一的名字标识,银行监控每个分支机构的资产。
银行员工通过身份证号来标识。
银行的管理机构存储每个员工的姓名、电话号码、工作部门、亲属姓名及其开始工作的日期。
银行的客户也通过其身份证号来标识。
银行存储每个客户的的姓名及其居住的城市和街道。
客户可以通过存/取资金的业务同银行员工发生联系,该员工是此客户的银行帐户负责人。
银行记录每次存取资金的数额、日期及余额。
银行提供储蓄帐户。
一个客户也可以有两个或两个以上的帐户。
每个帐户被赋以唯一的帐户号。
银行记录每个帐户的帐户余额以及每个帐户所有者访问该帐户的最近日期。
另外,每个存储帐户有其利率。
2.某医院病房的信息管理系统需要如下信息:
科室:
名称,电话,职工人数
病房:
病房号,床位数
医生:
职工号,姓名,职称
病人:
病历号,姓名
其中,一个科室有多个病房、多名医生,一个病房以及每个医生只属于一个科室,一个医生可负责多个病人,而一个病人的主管医生只有一个,每个病房可住多个病人。
用E-R图画出该医院的概念模型
3.一个图书借阅管理数据库要求提供下述信息;
(1)对于书籍,要求随时能够查阅书籍的书名、书号、数量与存放位置;
(2)对于借阅人,要求随时提供借书人单位、姓名、借书证号,借阅人在借书时借书日期和还书日期;
(3)该数据库还要提供出版社的情况,出版社有名称、电话、邮编及地址等信息。
我们约定:
任何人可借多种书,任何一种书可为多人所借;
一个出版社可出版多种书籍,同一种书仅为一个出版社出版,书号、借书证号、出版社名具有唯一性。
根据以上情况,试作如下设计:
构造满足需求的E-R图
4.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生;
每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。
请用E一R图画出此学校的概念模型。
五、实验报告要求
根据实验要求完成实验内容。
六、实验注意事项
1.注意在E-R模型中标注实体型与实体型的联系类型;
2.在E-R模型中联系若有属性必须明确;
3.有效区分实体与属性的划分。
实验二SQL语言的数据定义(设计型,2学时)
六、实验目的与要求
1.初步熟悉一下SQLSERVER2000环境;
2.利用SQL语言提供的CREATE语句建立基本表STUDENT、COURSE和SC表;
3.利用ALTER语句修改基本表、利用DROP语句删改表;
4.利用CREATE语句建立索引和利用DROP语句删除索引;
七、实验环境
SQLSERVER2005
八、实验预习与准备
1.CREATETABLE(<
列名>
<
数据类型>
[列极完整性约束条件][,<
[列极完整性约束条件]]…[,<
表极完整性约束条件>
]);
2.ALTERTABLE<
表名>
[ADD<
新列名>
[完整性约束]][DROP<
完整性约束名>
][MODIFY<
];
3.DROPTABLE<
;
4.CREATE[UNIQUE][CLUSTER]INDEX<
索引名>
ON<
表名>
(<
[<
次序>
][,<
[<
]]…);
5.DROPINDEX<
索引名>
九、实验内容和步骤
1.验证教材提供的操作语句;
2.验证课堂教学中提供的语句;
3.根据要求设计操作语句完成相应功能。
一十、实验报告要求
根据实验要求完成实验内容所涉及的全部操作语句的实现和验证。
1.建立基本表STUDENT、COURSE和SC表放在学生—课程数据库中;
2.建表时需注意属性的数据类型、长度及其列级约束条件;
3.表级约束条件一旦确定就应遵守,尤其是参照完整性约束。
实验三SQL语言的数据查询(设计型,2学时)
一十一、实验目的与要求
1.利用SELECT语句进行单表、连接、嵌套和集合查询。
一十二、实验环境
一十三、实验预习与准备
SELECT[ALL|DISTINCT]<
目标列表达式>
[,<
]…
FROM<
表名或视图名>
[,<
表名或视图名]…
[WHERE<
条件表达式>
]
[GROUPBY<
列名1>
[HAVING<
]]ORDERBY<
列名2>
[ASC|DESC]];
一十四、实验内容和步骤
3.根据要求设计操作语句完成相应功能:
(1)查询学生的姓名、所在系、年龄
(2)查询学生的姓名、出生年月、所在系;
并且结果的属性名(列名)分别用Name、Birthday、Department表示。
(3)查询所有有学生选修的课程号
(4)查询成绩不及格的学生学号
(5)查询成绩在80~90分之间的学生学号
(6)在学生_选课数据库中查询所有姓名第二字为“小”,并且姓名由三个字组成的所有学生的学号和姓名。
(7)查询以“DB_”开头,且最后一个字符为n的课程的课程号和学分。
(8)查询选修1号课程,并且成绩在80~90之间的学生学号和成绩,并将成绩乘以0.8输出。
(9)求数学系或计算机系姓张的学生的所有信息。
(10)查询被选修过的课程总数。
(11)计算学号为2300101同学所选课程的总分
(12)求修过课的学生学号及选修的课程总数。
(13)查询有15人以上选修的课程号,及选课人数。
(14)查询成绩大于80分的学生姓名、课程号、成绩。
(15)查询所选课程平均分在80分以上的学生姓名、课程名、成绩。
(16)查询与“信息系统”课程学分相同的所有课程的名称。
(17)求成绩比230010所有课程成绩高的学生学号。
(18)查询其它系中比计算机系某一学生年龄大的学生的姓名和年龄。
(19)查询选修了全部课程的学生姓名。
一十五、实验报告要求
1.进行多表连接查询时,注意连接字段;
2.进行嵌套查询时,注意嵌套的层次,如果使用谓词时注意它的含义,如:
ANY和ALL等。
实验四SQL语言的数据更新和视图(设计型,2学时)
1.利用SQL语言提供的INSERT语句、UPDATE语句和DELETE语句对建立基本表STUDENT、COURSE和SC表进行插入、修改和删除操作;
2.利用SQL语言提供的CREATEVIEW定义视图;
利用DROPVIEW、SELECT和UPDATE操作语句对所定义的视图进行删除、查询和修改操作;
3.熟练掌握以上各种操作语句。
1.INSERTINTO<
[(<
属性列1>
属性列2>
…]
VALUES(<
常量1>
常量2>
或
INSERTINTO<
[(<
…]子查询
2.UPDATE<
SET<
列名>
=<
表达式>
条件>
3.DELETE
FROM<
2.验证课堂教学中提供的操作语句;
3.根据要求设计操作语句完成相应功能:
(1)将一个新学生记录
(学号:
95020;
姓名:
陈冬;
性别:
男;
所在系:
IS;
年龄:
18岁)插入到Student表中。
(2)将信息系所有学生的年龄增加1岁。
(3)将计算机科学系全体学生的成绩置零。
(4)删除2号课程的所有选课记录。
(5)删除计算机科学系所有学生的选课记录。
4.实现教材课后习题5相应操作语句。
六、实验注意事项
利用INSERT语句、UPDATE语句和DELETE语句对建立基本表STUDENT、COURSE和SC表进行插入、修改和删除操作时需注意完整性约束,特别是参照完整性约束。
实验五数据的安全性控制(设计型,2学时)
1.利用SQL语言提供的GRANT和REVOKE语句向用户授予权限和收回权限;
2.掌握的GRANT和REVOKE操作语句。
1.GRANT<
权限>
[ON<
对象类型>
对象名>
TO<
用户>
WITHGRANTOPTION;
2.REVOKE<
ON<
FROM<
3.根据要求设计操作语句完成相应功能;
4.实现教材课后习题8、9相应操作语句。
对授权和收回权限的数据对象要明确。
实验六数据的完整性控制(设计型,2学时)
使用SQL对数据进行完整性控制(三类完整性、CHECK短语、CONSTRAIN子句、触发器)。
CREATETABLE(<
])。
4.实现教材课后习题6相应操作语句。
根据实验要求完成实验内容所涉及的全部操作语句的验证和实现,记录典型的实验用例,认真填写实验报告。
实验证实过程中,当操作违反了完整性约束条件时,系统是任何处理的。
实验七数据库编程(设计型,2学时)
1.熟悉RDBMS的预编译程序;
2.通过嵌入式SQL(主语言为C语言)编程访问数据库。
1.建立数据库连接的ESQL语句是
EXECSQLCONNECTTOTARGET[ASconnection-name][USERuser-name];
对应嵌入式SQL语句为
EXECSQLSETCONNECTIONconnection-name|DEFAULT;
2.关闭数据库连接的ESQL语句是
EXECSQLDISCONNECT[connection]。
1.运行本章所涉及的程序实例;
2.根据要求设计程序完成相应功能。
根据实验要求完成实验内容所涉及的程序,认真填写实验报告。
建立数据库连接的语句ESQL的正确使用,并对程序做必要的注释。