2023年7月13日发(作者:)
4.8 习题
1. 简述数据库设计过程。
答:通常将数据库设计分为以下六个阶段:
1) 需求分析阶段。
2) 概念设计阶段。
3) 逻辑设计阶段。
4) 物理设计阶段。
5) 实现阶段。
6) 运行维护阶段。
2. 简述数据库设计过程的各个阶段上的设计描述。
答:
1) 需求分析:需求分析阶段应对系统的整个应用情况作全面的、详细的调查、确定用户的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户需求,并把这些要求写成用户和数据库设计者都能够接受的文档。确定用户需求可以通过对不同层次的企业管理人员进行个人访问得到。还应了解系统将来要发生的变化,充分考虑系统的可能的扩充和变动,使系统设计更符合未来发展方向。
2) 概念结构设计:概念模型可以看成是现实世界到机器世界的一个过渡的中间层次。在设计数据库系统时,要把现实世界的事物通过认识和抽象转换为信息世界的概念模型,再把概念模型转换为机器世界的数据模型。
概念结构设计是整个数据库设计的关键通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
3) 逻辑结构设计:逻辑结构设计将概念结构转换为某个DBMS所支持的数据模型,并对
1 其进行优化。
4) 物理结构设计:物理结构设计为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
5) 数据库实施:运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果,建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
6) 数据库运行和维护:数据库应用系统经过试运行后即可投入正式运行。
3. 简述数据库设计的特点。
答:数据库设计的3个特点:
(1) 反复性(Iterative)
一个性能优良的数据库不可能一次性的设计完成,需要经过多次的、反复的设计。
(2) 试探性(Tentative)
一个数据库设计完毕,并不意味着数据库设计工作的完成,还需要经过实际使用的检测。通过试探性的使用,再进一步完善数据库设计。
(3) 分步进行(Multistage)
由于一个实际应用的数据库往往都非常庞大,而且涉及到许多方面的知识,所以需要分步进行,最终达到用户的需要。
4. 需求分析的设计目的是什么?
答:需求分析阶段应对系统的整个应用情况作全面的、详细的调查、确定用户的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户需求,并把这些要求写成用户和数据库设计者都能够接受的文档。确定用户需求可以通过对不同层次的企业管理人员进行个人访问得到。还应了解系统将来要发生的变化,充分考虑系统的可能的扩充和变动,使系统设计更符合未来发展方向。
2
5. 简述概念结构设计通常采用的四类方法。
答:概念结构设计通常有四类方法:
1) 自顶向下。即先定义全局概念结构再逐步细化。
2) 自底向上。即先定义各局部概念结构再逐步整和,是概念结构设计最常用的方法。
3) 逐步扩张。即先定义核心概念结构再逐步扩展。
4) 混合策略。即综合自顶向下和自底向上方法设计。
6. 逻辑结构设计的任务是什么?
答:概念结构设计就是将需求分析得到的信息,抽象化为概念模型。概念结构设计应该能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。同时还有易于理解、易于更改,易于向关系、网状、层次等各种数据模型转换。
7. 数据库物理结构设计包括哪些设计?
答:数据库物理结构设计包括:选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。主要解决选择文件存储结构和确定文件存取方法的问题。在数据库中访问数据的路径主要表现为如何建立索引。如要直接定位到所要查找的记录,应采用索引方法存取方法(索引表)。顺序表只能从起点进去向后一个个访问记录。数据库的物理实现取决于特定的DBMS,在规划存储结构时主要应考虑存取时间和存储空间,这两者通常是互相矛盾的,要根据实际情况决定。
3 8. 试用自底向上法设计一个超市管理系统的E-R图。超市管理系统包括商品实体、职工实体、生产厂家实体、销售实体。其中商品实体具有商品编号、商品名称、数量、单价、生产厂家编号属性;职工实体具有职工编号、姓名、性别、出生日期、职务属性;生产厂家实体具有厂家编号、厂家名称、地址、联系方式、负责人属性;销售实体具有销售编号、销售时间、职工编号、商品编号、数量属性。
答:E-R图如下:
9. 试完成一个完整的数据库设计,设计一个公司人事管理系统。公司人事管理系统包括职工实体、部门实体、工资实体、职务实体、工程实体、客户实体。其中职工实体具有职工编号、姓名、性别、出生日期、职务编号、部门编号属性;部门实体具有部门编号、部门名称、负责人编号、地点属性;工资实体具有职工编号、基本工资、奖金属性;职务实体具有职务编号、职务名称属性;工程实体包括工程编号、工程名称、开始时间、结束时间、负责人编号、客户编号;客户实体包括客户编号、客户名称、法人姓名、地址、联系方式。
答:E-R图如下:
4
5.4 习题
1. SQL Server 2005数据库管理系统产品家族分为哪几种版本?
答:SQL Server 2005产品家族将其分为五个新的版本:企业版、开发版、标准版、工作组版和精简版。其中最常用的是企业版、标准版、工作组版。
2. 安装、配置SQL Server 2005。
答:略。
3. 熟悉SQL Server Management Studio环境。
答:SQL Server 2005简单易学,它提供了大量的图形工具和命令行工具,能够完成对SQL Server 2005的管理和开发任务。主要工具包括:
1) SQL Server Management Studio
2) Business Intelligence Development Studio
3) SQL Server Profiler
4) SQL Server Configuration Manager
5) Database Engine Tuning Advisor
5 6) 命令行工具
7) 帮助
6.4 习题
1. 简述SQL语言的特点。
答:SQL语言的特点是:
1) 高度非过程化
2) 综合统一
3) 是所有关系数据库的公共语言
4) 以同一种语法结构提供两种使用方式
5) 简单易学
2. SQL Server 2005提供了丰富的系统数据类型,可以归纳为哪些类别。
答:SQL Server 2005提供了丰富的系统数据类型。数据类型归纳为下列类别:
(1) 精确数字型
精确数字型包括bigint、bit、decimal、money、numeric、smallint、smallmoney、tinyint。
(2) 近似数字型
近似数字型包括float、real。
(3) 日期和时间型
日期和时间型包括datetime、smalldatetime。
(4) 字符串型
字符串型包括char、text、varchar。
(5) Unicode字符串型
6
Unicode字符串型包括nchar、ntext、nvarchar。
(6) 二进制字符串型
二进制字符串型包括binary、image、varbinary。
(7) 其他数据类型
SQL Server还有一些其他的数据类型,包括cursor、sql_variant、table、timestamp、uniqueidentifier、xml。
3. 以下变量名中,哪些是合法的变量名,哪些是不合法的变量名?
A1,1a,@x,@@y,&变量1,@姓名,姓名,#m,##n,@@@abc##,@my_name
答:合法的变量名:A1,@x,@@y,&变量1,@姓名,姓名,#m,##n,@@@abc##,@my_name
不合法的变量名:1a
4. SQL Server 2005所使用的运算符类别有哪些?
答:
SQL Server 2005运算符类别
运算符类所包含运算符
别
赋值运算=(赋值)
符
算术运算+(加)、-(减)、*(乘)、/(除)、%(取模)
符
按位运算&(位与)、|(位或)、^(位异或)
符
7 字符串串+(连接)
联运算符
比较运算=(等于)、>(大于)、>=(大于等于)、<(小于)、符 <=(小于等于)、<>(或!=,不等于)、!<(不小于)、!>(不大于)
逻辑运算all(所有)、and(与)、any(任意一个)、between符 (两者之间)、exists(存在)、in(在范围内)、like(匹配)、not(非)、or(或)、some(任意一个)
一元运算+(正)、-(负)、~(取反)
符
5. 计算下列表达式:
(1) 9-3*5/2+6%4 (2) 5&2|4 (3) '早上'+'好' (4)
(5) DECLARE @d SMALLDATETIME
SET @d='2006-10-26'
SELECT @d+10,@d-10
答:9-3*5/2+6%4=4
5&2|4=4
'早上'+'好'='早上好'
~10=-11
8
~10 6. 举例说明,如果表达式@a=@b-@c成立,则变量@a、@b、@c都可以是什么数据类型?
答:
@a
数值数据
数值数据
日期时间
7. 用CASE函数,求当前日期是否是闰年?
答:
DECLARE @Result CHAR(20),@Year INT
SELECT @Year=2000
SELECT @Result =
CASE
WHEN (@Year % 4 = 0) AND (@Year % 100 != 0) THEN '闰年'
WHEN (@Year % 400 = 0) THEN '闰年'
ELSE '不是闰年'
@b
数值数据
日期时间
日期时间
@c
数值数据
数值数据
日期时间
END
SELEct @Result
8. 符号“=”可以是关系运算符等于,也可以是赋值运算符。那么什么情况下是关系运算符,什么情况下是赋值运算符?
答:在SET语句中“=”是赋值运算符,在输出语句或判断语句中是关系运算符。
9. 用T-SQL流程控制语句编写程序,求两个数的最大公约数和最小公倍数。
答:
DECLARE @Num1 INT,@Num2 INT,@T1 INT,@T2 INT
9 SELECT @Num1 = 15
SELECT @Num2 = 35
SELECT @T1 = @Num1 % @Num2
SELECT @T2 = @Num1 * @Num2
WHILE @T1 != 0
BEGIN
SELECT @Num1 = @Num2
SELECT @Num2 = @T1
SELECT @T1 = @Num1 % @Num2
END
SELECT @Num2, @T2/@Num2
10. 用T-SQL流程控制语句编写程序,求斐波那契数列中小于100的所有数。(斐波那契数列1,2,3,5,8,13,„)
答:
DECLARE @N0 INT,@N1 INT, @R INT
SELECT @N0 = 1, @N1 = 2
SELECT @R = @N0 + @N1
SELECT @N0
SELECT @N1
WHILE @R < 100
BEGIN
SELECT @R
SET @N0 = @N1
SET @N1 = @R
SET @R = @N0 + @N1
END
11. 计算下列表达式:
(1) ABS(-5.5)+SQRT(9)*SQUARE(2)
(2) ROUND(456.789,2)-ROUND(345.678,-2)
(3) SUBSTRING(REPLACE('北京大学','北京','清华'),3,2)
答:
ABS(-5.5)+SQRT(9)*SQUARE(2)=18
ROUND(456.789,2)-ROUND(345.678,-2)=157
10
SUBSTRING(REPLACE('北京大学','北京','清华'),3,2)= '大学'
(4) 计算今天距离2008年8月8号,还有多少年,多少月,多少天?
datediff(year,getdate(),'2008-8-8')
datediff(month,getdate(),'2008-8-8')
datediff(day,getdate(),'2008-8-8')
12. 定义一个用户标量函数,用以实现判断并返回三个数中的最大数。
答:
CREATE FUNCTION MyMAX(@X INT,@Y INT,@Z INT)
RETURNS INT
AS
BEGIN
DECLARE @T INT
IF @X>=@Y
IF @X>=@Z
SET @T=@X
ELSE
SET @T=@Z
ELSE
IF @Y>=@Z
SET @T=@Z
ELSE
SET @T=@Y
RETURN @T
END
-- 下面为调用测试语句
SELECT (89, 56, 90)
13. 定义一个用户标量函数,用以实现判断并返回一个日期时间数据位于该年的第几天。
答:
IF OBJECT_ID('DaysOfYear') IS NOT NULL
DROP FUNCTION DaysOfYear
GO
11 CREATE FUNCTION DaysOfYear(@Date CHAR(10))
RETURNS INT
AS
BEGIN
DECLARE @Date0 CHAR(10)
SELECT @Date0 = STR(DATEPART(YEAR, @Date)) + '-1-1'
RETURN DATEDIFF(DAY, @Date0, @Date)
END
-- 下面是函数调用测试语句
SELECT Year('2010-2-1');
12
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689245589a225583.html
评论列表(0条)