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