一、
单项选则题 (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
因篇幅问题不能全部显示,请点此查看更多更全内容