您的当前位置:首页正文

数据库2012-2013第二学期期末试卷B卷答案

2024-03-19 来源:好走旅游网
上海应用技术学院2012—2013学年第2学期 《信息系统与数据库技术》期末(B)试卷答案

一、

单项选则题 (20分,每小题1分)

BBAAD CADCB DADAC CCBAD 二、

简答题(40分,每小题4分)

1. 简述数据库管理系统的功能。

数据库管理系统是数据库系统的核心软件。一般说来,其功能主要包括以下5个方面: (1) 数据定义功能 (2) 数据操纵功能

(3) 数据库的运行管理功能 (4) 数据库的维护功能。

(5) 支持所采用数据模式下的数据库语言

2. 解释关系模型的基本概念:关系、元组、属性、域、关系模式、主键、外键。 关系:一个关系就是一张二维表。

元组:二维表中的行称为元组,每一行是一个元组。

属性:二维表的列称为属性,每一列有一个属性名,属性值是属性的具体值。 域:是属性的取值范围。

关系模式:对关系的信息结构及语义限制的描述称为关系模式,用关系名和包含的属性名的集合表示。 主键:在一个关系的若干候选关键字中,被指定作为关键字的候选关键字称为该关的主键或主码。 外键:一个关系的某个属性(或属性组合)不是该关系的主键或只是主键的一部分,却是另一个关系的主码,则称这样的属性为该关系的外键或外码。

3. SQL语言的特点是什么?SQL语言包括哪几类语言,各有什么作用? 特点:

(1)非过程化

非过程化语言,不必描述解决问题的全过程,只需提出“做什么”,至于“如何做”的细节则由语言系统本身去完成并给出操作的结果。

(2) 高度一体化:集数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和T-SQL增加的语言元素于一体,可独立完成数据库生命周期的所有活动。 (3)两种不同的使用方式

联机交互方式: SQL语言既可独立使用

嵌入程序设计语言中:例如VB.net程序设计语言中。 (4) 语言简洁、易学易用 SQL语言包括:

(1)DDL(Data Definition Language) 数据库定义语言

定义数据库结构、各对象及属性的语句 (2)数据库操纵语言

实现对数据库基本操作的语句,主要包括查询、插入、修改、删除等 (3)DCL(Data Control Language) 数据库控制语言

保证数据库一致性和完整性 (4)T-SQL增加的语言元素

变量、运算符、函数、流程控制语句和注解等。

4. 简述数据库设计的基本步骤。

1)需求分析:了解和分析用户的应用需求(包括信息需求和处理需求),进行需求收集和分析,并以数据流图、数据字典等形式加以描述。

2)概念设计:把需求分析阶段得到的用户需求进行综合、归纳和抽象,形成一个独立于具体DBMS的概念数据模型。

3)逻辑设计:按照一组转换规则,将概念设计阶段产生的概念模型转换为某个DBMS支持的逻辑数据模型。

4)物理设计:是为逻辑模型选取一个最适合应用环境的物理结构(包括存取结构和存取方法)。

5)数据库实施:设计人员运用DBMS提供的数据库语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

6)数据库运行与维护:数据库试运行后,即可投入正式运行。数据库在运行期间应不断地对其进行评价、调整与修改。

5. 简述应用程序通过ADO.NET访问数据库数据的过程。 (1)创建SqlConnection对象,建立数据库连接。

(2)通过SqlCommand创建数据适配器SqlDataAdapter,建立数据库和数据集之间的“桥”。 (3)建立数据集DateSet。通过数据库与DataSet之间的桥SqlDataAdapter,编写程序代码用于填充数据集和更新数据集。即将数据库中的数据填充到内存数据集DataSet中;也可以通过SqlDataAdapter将更新过的DataSet中的数据回填到数据库中。

(4)在VB.NET程序窗体上添加控件并设置其属性,使其和DataSet对象中的表和属性列相关联。应用程序针对DataSet进行数据检索和数据更新操作。 三、

关系代数(12分,每小题4分)

现有数据库中存在如下3个基本表:

学生S(SNO,SNAME,AGE,SEX)

其中SNO表示学号,SNAME表示姓名,AGE表示年龄,SEX表示性别 学习SC(SNO,CNO,GRADE)

其中SNO表示学号,CNO表示课程号,GRADE表示成绩 课程C(CNO,CNAME,TEACHER)

其中CNO表示课程号,CNAME表示课程名,TEACHER表示授课教师 请用关系代数表达式表达下面的查询语句: 1.检索学习课程号为C1的学生学号与成绩。

πSNO, GRADE(σCNO=’ C1’(SC))

2.检索选修课程名为ENGLISH的学生学号和姓名。

πSNO,SANME (σCNAME=’ENGLISH’(S  SC  C))

3.检索选修课程号为C2或C4的学生学号。

πSNO(σCNO='C2'∨CNO=’ C4’(SC))

四、

SQL语句(24分,每小题4分)

在Company数据库中有三个表,表的数据库模式如下:

Department(Dno, DName, Note)

其中Dno表示部门编号,DName表示部门名称,Note表示备注,主键为Dno。

Employee(Eno , EName, Ebirth, Eaddress,Ezipcode,Etel,Email,Dno)

其中Eno表示职工号,EName 表示职工姓名,Ebirth表示生日,Eaddress表示家庭住址,Ezipcode表示邮编,Etel表示联系电话,Email表示电子邮件,Dno表示职工所在部门的编号,主键为Eno。

Salary(Eno,SalaryDate,Salary)

其中Eno表示职工号,SalaryDate表示发工资的日期,Salary表示本月工资,主键为Eno和SalaryDate。 请在Company数据库中完成可实现以下功能的SQL语句。

(1) 查询“财务处”的所有职工的姓名、家庭住址和联系电话。 SELECT EName, Eaddress,Etel FROM Employee JOIN Department ON Employee. Dno = Department. Dno WHERE DName = „财务处‟

(2) 查询部门编号为“b3”的职工的基本信息。

SELECT Eno , EName, Ebirth, Eaddress,Ezipcode,Etel,Email FROM Employee JOIN Department

ON Employee. Dno = Department. Dno WHERE Department . DNO = „b3‟

(3) 查询每个职工的工资总收入,并按照姓名降序。 SELECT EName, SUM(Salary) as 工资总收入 FROM Salary JOIN Employee On Salary. Eno= Employee. Eno GROUP BY Employee. EName Order by EName desc

(4) 删除1998年的所有工资记录。 DELETE FROM Salary

WHERE year(SalaryDate)=1998

(5) 把部门编号为“b1”的所有职工的职工号前增加“b1” Update Employee SET Dno=‟b1‟ +Dno WHERE DNO = „b1‟

(6) 查询所有1980年以后出生的职工的职工号、姓名和生日。 SELECT Eno , EName, Ebirth FROM Employee

WHERE EBirth>‟1980-01-01‟

五、

数据库设计(12分)

某学生管理系统中需要如下信息:

学生:学号、姓名、出生年月、班级号、宿舍号 班级:班级号、专业名、系名、人数、入校年份 系:系号、系名、系办公地点、人数 社团:社团名、成立年份、地点、人数

其中:一个系有若干个专业,每个专业每年只招一个班,每个班有若干个学生,一个系的学生住在同一宿舍区,每个学生可以参加若干个社团,每个社团有若干学生。

根据以上需求,设计数据库中的数据表。每个表设计说明用如下表格形式描述。

字段名称 略

六、 编程题 (12分)

数据库Book的表间关系如下:

类型定义 属性限定 索引 关系(外键)

按书名BookName查询书的价格Price,库存量StockNum和出版社Publisher:要求在上方的TextBox框中输入书名中的部分字或词,点击查询按钮,在下方的DataGrid控件中显示所有相关书的情况。运行效果如图所示。写出相应的程序代码。

Imports System.Data.SqlClient Public Class Form1

Inherits System.Windows.Forms.Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim sql As String = \"select bookname as 书名,price as 价格, StockNum as 库存量,publisher as 出

版社\" & \" from T_BookInfo INNER JOIN T_Publisher\" _

& \" ON T_BookInfo.PublisherCode=T_Publisher.PublisherCode\" _ & \" where bookname like '%\" & TextBox1.Text & \"%'\"

Dim myconn As New SqlConnection(\"Initial Catalog=Book;Data Source=(local);\" & \"Integrated Security=SSPI;\")

Dim myadapter As SqlDataAdapter = New SqlDataAdapter(sql, myconn) Dim mydataset As New Data.DataSet myadapter.Fill(mydataset, \"T_BookName\")

DataGrid1.DataSource = mydataset.Tables(\"T_BookName\")

End Sub End Class

因篇幅问题不能全部显示,请点此查看更多更全内容