电大本科数据库技术.docx

上传人:b****4 文档编号:4820755 上传时间:2023-05-07 格式:DOCX 页数:41 大小:40.38KB
下载 相关 举报
电大本科数据库技术.docx_第1页
第1页 / 共41页
电大本科数据库技术.docx_第2页
第2页 / 共41页
电大本科数据库技术.docx_第3页
第3页 / 共41页
电大本科数据库技术.docx_第4页
第4页 / 共41页
电大本科数据库技术.docx_第5页
第5页 / 共41页
电大本科数据库技术.docx_第6页
第6页 / 共41页
电大本科数据库技术.docx_第7页
第7页 / 共41页
电大本科数据库技术.docx_第8页
第8页 / 共41页
电大本科数据库技术.docx_第9页
第9页 / 共41页
电大本科数据库技术.docx_第10页
第10页 / 共41页
电大本科数据库技术.docx_第11页
第11页 / 共41页
电大本科数据库技术.docx_第12页
第12页 / 共41页
电大本科数据库技术.docx_第13页
第13页 / 共41页
电大本科数据库技术.docx_第14页
第14页 / 共41页
电大本科数据库技术.docx_第15页
第15页 / 共41页
电大本科数据库技术.docx_第16页
第16页 / 共41页
电大本科数据库技术.docx_第17页
第17页 / 共41页
电大本科数据库技术.docx_第18页
第18页 / 共41页
电大本科数据库技术.docx_第19页
第19页 / 共41页
电大本科数据库技术.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电大本科数据库技术.docx

《电大本科数据库技术.docx》由会员分享,可在线阅读,更多相关《电大本科数据库技术.docx(41页珍藏版)》请在冰点文库上搜索。

电大本科数据库技术.docx

电大本科数据库技术

数据库技术——简答

什么是数据和数据处理?

数据与信息的区别联系是什么?

  参考答案:

  数据(Data)是一组表示数量、行动和目标的非随机的可鉴别的符号。

  数据处理通常包括查找、统计、分类、修改、计算、汇总等各种方法。

  数据(Data)是一组表示数量、行动和目标的非随机的可鉴别的符号。

  信息(Information)是经过加工的,能对接收者的行为和决策产生影响的、有价值的数据。

  如果将数据比喻为原料,那么信息就是数据经过加工而生产的产品,是有价值的数据。

与原料和产品的概念相似,一个系统的产品可能是另一个系统的原料,那么一个系统的信息可能成为另一个系统的数据。

  2.数据库、数据库管理系统、数据库系统之间到底是什么关系?

  参考答案:

  数据库就是各种相关数据的集合和容器。

数据库所保存的数据是指长期储存在计算机内、有组织的、可共享的数据集合。

数据库中的数据必须按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可以被一定范围内的各种用户共享。

  数据库管理系统是对数据库进行管理的系统软件,位于用户和操作系统之间,为用户或应用程序提供访问数据库的方法和工具。

  广义上,数据库系统就是采用了数据库技术的计算机系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。

狭义上讲,数据库系统主要指数据库和数据库管理系统,由于这二者在应用中的相互依赖性,所以在一般不引起混淆的情况下常常把数据库系统简称为数据库。

  3.请描述一下SQLServer数据库的存储结构。

  参考答案:

  SQLServer数据库的存储结构包括物理存储结构和逻辑存储结构两个层面。

  在物理层面上,SQLServer数据库是由两个操作系统文件组成的,即数据文件和事务日志文件,它们的后缀分别是MDF和LDF。

数据文件主要用于存储数据,事务日志文件主要用于存储数据库的更新情况等事务日志信息。

  在逻辑层次上,数据库是由表、视图、存储过程等一系列数据对象组成的。

当采用SQLServer企业管理器将上述数据库文件“打开”后,就能看到数据库的逻辑结构了,如图XXX所示。

数据库中的数据分别存储在几个不同的对象中,而这些对象是用户在操作数据库时,实际能够看到和接触到的,属于逻辑存储结构。

常用的数据库对象主要包括:

表(Table)、索引(Index)、视图(Views)、触发器(Triggers)、存储过程(StoreProcedures)、缺省(Default)、约束(Constraints)、用户(Users)以及图表(Diagram)和用户自定义的数据类型等。

在以后的章节中,我们将逐步学习这些对象的使用方法。

  4.简述关系模型的组成。

  参考答案:

  系模型是目前最重要的一种数据模型。

关系数据库系统采用关系模型作为数据的组织方式。

关系模型由三部分组成:

数据结构、关系操作集合和关系的完整性。

  数据结构是指在关系模型中,无论是数据还是数据之间的联系都是以二维表(关系)这一种简单的结构表示的,这即符合人们使用数据的习惯,同时也便于计算机实现。

  关系操作是指关系代数(或等价的关系演算)中并、交、差、选择、投影、连接等。

关系模型给出了关系操作的能力和特点,但不对DBMS的语言给出具体的语法要求。

关系语言的特点是高度的非过程化。

其操作方式的特点是集合操作,即操作的对象和结果是集合,称为一次一集合的方式,而不是一次一个记录的方式。

  关系完整性包括实体完整性、参照完整性和用户自己定义的完整性。

实体完整性是保证数据库中记录的惟一性,即每个记录的主键不能为空值,也不能与其他记录的主键相同。

参照完整性是保证表与表之间语意上的完整性,即当一个表引用在另一个表中定义的实体时,要保证这个实体的有效性。

这两种完整性是关系模型必须满足的约束条件,应该由关系系统自动支持。

而用户自定义完整性反映了用户的要求,是用户自行定义的。

什么是SQL,请简要说明它的组成和特点。

  参考答案:

  结构化查询语言,StructuredQueryLanguage,简称SQL,是关系数据库的标准语言。

SQL语言共分为四大类:

数据定义语言,数据查询语言,数据操纵语言,数据控制语言。

它的特点包括:

非过程化语言,统一的语言,是所有关系数据库的公共语言。

  2、索引的作用是什么?

SQLServer有哪几类索引,各自的特点是什么?

  参考答案:

  索引(Index)提供了一种快速访问数据的途径,索引是在基本表的列上建立的一种数据加对象,索引是为了加速查询速度而创建的。

  实际的索引通常是这两大类5种方式的组合。

  

(1)单列索引:

对基本表的某一单独的列进行索引,是最简单和最常用的索引类型,通常情况下,应对每个基本表的主关键字建立单列索引。

  

(2)惟一索引:

一旦在一个或多个列上建立了惟一索引,则不允许在表中相应的列上插入任何相同的取值。

使用惟一索引不但能提高查询性能,还可以维护数据的完整性。

  (3)复合索引:

是针对基本表中两个或两个以上列建立的索引。

  (4)聚集索引:

会改变基本表中记录的物理存储顺序。

即表中记录的物理排序顺序不再按插入的先后排列,而是根据索引列重新排序。

  (5)非聚集索引:

表中记录的物理顺序与索引顺序不同,表中的记录仍按实际插入的先后顺序排列,不按索引列排序。

  3、什么是基本表?

什么是视图?

视图有什么特点?

在什么情况下需要创建视图?

  参考答案:

  表是一个由行、列组成的二维结构,通常把行称做记录,把列称为字段。

  视图是由查询数据库表产生的,它其实是一个虚拟的表,它限制了用户能看到和修改的数据。

  视图的特点是在基本表或其他视图上建立的表,它的结构和内容都来自某个基本表,是依据基本表存在而存在的。

删除一个视图时,不会对基本表产生任何影响,但当删除一张基本表时,与之相关联的视图就会自动被删除。

  如果要限制用户能够看到的数据库中的信息,可以使用视图。

  4、谓词LIKE的作用是什么?

  参考答案:

  确定给定的字符串是否与指定的模式匹配。

模式可以包含常规字符和通配符字符。

模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。

  5、如果创建一个数据库其SQL语句是什么?

  参考答案:

  CREATEDATABASE数据库名称

  6、存储过程的含义是什么?

创建存储过程的SQL语句是什么?

  参考答案:

  存储过程(StoredProcedure)是一组预先编译好的,以一种可执行的形式永久地存储在数据中的SQL代码,在master数据库中存储了一些SQLServer事先定义好的系统存储过程,通常以sp_xxxx做为存储过程的名字。

当用户创建数据库时,也会自动生成一些事先定义好的存储过程,通常以dt_xxxx做为名字。

  创建存储过程的SQL语句是:

  

(1)语句格式:

  CREATEPROC[EDURE]<存储过程名>AS

  

(2)语句功能:

  创建一个存储过程,多数是指利用SQLServer的Transact-SQL编写的程序。

  7、什么是事务?

举例说明事务处理的作用是什么?

  参考答案:

  事务(Transaction)是并发控制的基本单位,它反映了现实世界中需要以一个完整的单位提交的一项工作。

SQLServer通过事务机制,将逻辑相关的一组操作捆绑在一起,以便服务器保持数据的完整性。

它是SQL复杂程序设计必不可少的内容。

  事务需要用户根据实际业务规则定义,有一定的难度,但其原理比较简单。

举例说,如果我们正在使用UPDATE语句同时对学生表、成绩表中的学号”20030001”改为”20040001”。

这个任务需要两条UPDATE语句组成,即:

  UPDATE学生表SET学号=’20040001’WHERE学号=’20030001’

  UPDATE成绩表SET学号=’20040001’WHERE学号=’20030001’

  如果在执行完第一个语句后,计算机突然断电,而第二条语句还没来得急执行,数据出现了不一致怎么办?

这时候就需要用到SQL的事务控制功能了。

  如果使用了SQLServer的事务控制机制,以上两个问题均可获得很了的解决。

在使用事务的情况下,SQLServer可以保证,要么所有的记录要么全部处理,要么一行也不处理。

如果修改了全部记录的一半时服务器出错了,SQLServer会返回到以前未执行UPDATE操作前的位置,清除它已经修改过的数据,这就是事务处理的作用。

  8、SQLServer有哪些数据类型,它们的主要用途是什么?

  参考答案:

  SQLServer提供了数值型、字符型、日期型、二进制型、位型、双字节型等6大类数据类型。

  数据类型是数据的一种属性,表示数据所表示信息的类型。

任何一种计算机语言都定义了自己的数据类型。

  9、假设某教学管理数据库有以下三张表,请写出下列问题的SQL语句:

  学生(学号,姓名,年龄,性别)

  课程(课程号,课程名,任课教师)

  成绩(学号,课程号,成绩)

  

(1)如何在SQLServer上创建这三张表;

  参考答案:

  学生表:

  createtable学生表(

  学号char(8)primaryKey,

  姓名char(8),

  年龄int,

  性别bit)

  课程表:

  createtable课程表(

  课程号char(7)primaryKey,

  课程名char(20),

  任课教师char(8))

  成绩表:

  createtable成绩表(

  学号char(8),

  课程号char(7),

  成绩Numeric(4,2))

  

(2)查询刘峰教师所授课程号,课程名;

  参考答案:

  Select课程号,课程名from课程表where任课教师=’刘峰’

  (3)查询年龄大于20岁的所有男同学的学号、姓名;

  参考答案:

  Select学号,姓名from学生表where性别=1and年龄>20

  (4)查询至少选修了两门课程(含两门)的学生学号;

  参考答案:

  select学号from成绩

  groupby学号

  havingcount(学号)>=2

  (5)查询王文芳同学选修的所有课程的课程号;

  参考答案:

  Select课程号from成绩表,学生表

  Where学生表.姓名=’王文芳’and学生表.学号=成绩表.学号

  (6)查询王文芳同学不学的课程的课程号;

  参考答案:

  select课程号from成绩表

  where课程号notin(select课程号from学生表,成绩表

  where学生表.姓名='王文芳'and学生表.学号=成绩表.学号)

  (7)查询所有上刘峰老师课程的学生学号;

  参考答案:

  Select学号from成绩表,课程表,学生表

  Where课程表.任课教师='刘世峰'and课程表.课程号=成绩表.课程号and课程表.学号=成绩表.学号

  (8)查询所有选修“数据库原理”的学生的学号;

  参考答案:

  Select学号from成绩表,课程表

  where课程表.课程名='数据库技术'and课程表.课程号=成绩表.课程号

  (9)向学生表中插入一条记录(’2003001’,’吴红’,21,’女’);(1表示女,0表示男)

  参考答案:

  insertinto学生表values('2003001','吴红','21',1)

  (10)删除三张表中所有学号为20020001的学生信息;

  参考答案:

  Deletefrom学生表where学号=’>20020001’

  Deletefrom学生表where学号=’20020001’

  (11)把学号为20030002的学生的年龄改为22岁;

  参考答案:

  Update学生表set年龄=’22’where学号=’20030002’

设关系模式R有N个属性,在模式R上可能成立的函数依赖有多少个?

  参考答案:

  函数依赖有N×(N-1)个

  2.设有关系模式R(职工号,职工名,项目号,项目名,工资),假设一个职工可参加多个项目,在每个项目中各领一份工资。

那么请回答以下问题:

  

(1)请写出这个关系模式的函数依赖和主关键字;

  函数依赖包括:

职工号→职工名,项目号→项目名,(职工号,项目号)→工资

  主键为(职工号,项目号)

  

(2)这个关系符合第几范式,为什么?

  这个关系符合第一范式,因为它的每个属性都不可再分。

  (3)请举例说明,这个关系存在哪些问题;

  这个关系没有达到第二范式,可能出现数据冗余和操作异常。

  例如,某个职工参与了多个项目的工作,他的职工号、职工名会重复多次存储。

同样,如果一个项目有多名职工参加,项目号和项目名也会重复我次存储。

另外,如果现在增加了一个新的项目,但暂时还没有安排职工参加,那么由于主键是(职工号,项目号),这个项目的信息可能无法插入。

  (4)请把这个关系模式分解成3NF,并说明理由。

  修改后的各个关系如下:

  职工关系=(职工号,职工名)

  项目关系=(项目号,项目名)

  职工选择项目关系=(职工号,项目号,工资)

  (注:

此处的工资是指职工参加某个项目得到的劳动报酬)

  3.关系完整性的主要内容是什么?

为什么要保证关系的完整性?

  参考答案:

  关系完整性就是关系模型中数据的正确性、一致性和有效性。

关系完整性又包括实体完整性、参照完整性和用户定义的完整性三个方面。

  只有保证了关系的完整性,才能使数据库中的数据正确、一致和有效。

  4.SQLServer中进行关系完整性的主要方法是什么,请写出相应的SQL语句。

  参考答案:

  1)SQLServer通过约束机制来实现数据库完整性保护。

主要包括:

PrimaryKey约束、ForeignKey约束、Default约束、Unique约束、Check约束等。

  PrimaryKey约束:

  学号char(8)NOTNULL

  PRIMARYKEY(学号)

  ForeignKey约束:

  学号char(8)NOTNULL

  REFERENCES学生表(学号)

  Default约束:

  成绩numeric(9,2)DEFAULT0.00

  Unique约束:

  学号char(8)NOTNULL

  UNIOQUE(学号)

  Check约束:

  年龄intCHECK(年龄)17and年龄<25)

  2)使用规则实施数据的完整性。

  创建规则的语法结构如下:

  CREATERULE规则名AS条件表达式

  3)使用默认实施数据完整性管理。

  创建默认的语法如下:

  CREATEDEFAULT默认名AS默认值

  5.为什么要进行规范化?

规范化的相关理论是什么?

请简要说明。

  参考答案:

  为确保数据库设计的正确性,在数据库逻辑设计阶段,常使用关系规范化理论来指导关系型数据库的设计。

其基本思想是,每个关系都应满足一定的规范,才能使关系模式设计合理,达到减少冗余,提高查询效率的目的。

  一个好的数据库关系,应该没有数据冗余、更新异常、插入异常、删除异常问题的存在,这就必须进行规范化处理。

  规范化使用的理论是函数依赖。

  6.什么是一个“好”的关系模式,一个“不好”的关系模式有什么缺点?

  参考答案:

  “好”的关系模式通常是指符合第三范式要求的关系,“不好”的关系模式会存在数据冗余、更新异常、插入异常、删除异常等问题。

  7.请写出一个符合第三范式的关系模式,并说明理由。

  参考答案:

  学生=(学生号,姓名,性别,专业)

  课程=(学生号,课程号,成绩)

  选课=(课程号,课程名,课程学分)

请简要说明数据库应用系统设计的步骤。

  参考答案:

  数据库应用系统设计的步骤包括需求分析、概念设计、逻辑设计和物理设计。

  2.数据库设计的目的是什么,请谈谈你的理解。

  参考答案:

  数据库设计指的是设计数据库及其应用系统的技术,是指对于一个给定的应用环境,包括硬件环境和操作系统、数据库管理系统(DBMS)等软件环境,如何使用这个环境来表达用户的要求,构造最优的数据库模式,建立数据库及围绕数据库展开的应用系统,使之能够有效地收集、存储、操作和管理数据,满足企业组织中各类用户的应用需求(信息需求和处理需求)。

  3.基本表设计的主要原则是什么,坚持这些原则有什么好处?

  参考答案:

  基本表设计最主要的原则是关系规范化,尽可能达到第三范式。

规范化有助于消除数据库中的数据冗余,减少更新异常。

规范化有好几种形式,但第三范式通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。

简单来说,遵守第三范式标准的数据库的表设计原则是:

“OneFactinOnePlace”(一个事实对应一个地方),即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。

表之间的关系通过外键相连接。

  4.进行SQLServer数据库设计时,一般有哪些命名规则?

  参考答案:

  首先,命名的长度应尽量充足。

假设某企业现有职工在一千人以内,如果用数字表示职工号的话,职工号的长度为3位即可,它最大可以表示999个职工。

但是,如果考虑到企业未来的发展,那么职工号最好设为4位,当企业职工数目突破千人时,根本无需重构整个数据库。

  其次,小心保留词。

要保证字段名没有与SQL等保留词或者常用访问方法名发生冲突。

  最后,慎用使用触发器。

触发器在保证数据完整性方面发挥着积极作用,但它同时也会带来效率方面的问题,因此要慎用。

触发器的功能通常可以用其他方式实现。

  5.什么是数据流程图,数据字典的主要作用是什么,谈谈你的理解。

  参考答案:

  数据流图(DataFlowDiagram,简记DFD),是在业务流程分析基础上,描述实际数据流动和加工过程的图形表示法,它一般有4种符号,即外部实体、数据流、加工和存储。

外部实体数据的来源和去向;数据流用带箭头的连线表示,反映数据的流动方向;加工用椭圆、圆或方框代表(本教材利用圆形表示加工),表示对数据的加工处理动作;存储表示数据的存档情况。

  数据字典(DataDictionary,简记DD),是对数据流程图中数据流和存储结构的描述。

在数据库应用系统设计中,数据字典是表、视图设计的主要依据。

  6.什么是E-R图,它的作用是什么?

  参考答案:

  E-R图是E-R(实体-关系)方法的重要组成部分。

E-R方法是描述概念模型的有力工具。

E-R图方法是一种有效的信息抽象方法。

在E-R图中,用长方形表示实体,用椭圆形表示属性,用菱形表示联系。

在图形内标识它们的名字,它们之间用无向线段相连,表示联系的线段上标明是哪种联系。

  它的作用是采用E-R图模型将现实世界的信息结构统一用实体、属性以及实体之间的联系来描述。

  7.简要说明需求分析阶段的主要任务和目的。

  参考答案:

  需求分析阶段的主要目的是回答“干什么”的问题。

需要从多方面对拟开发数据库应用系统的企事业单位进行调查,收集和分析各项应用对信息和处理两方面的需求。

了解和掌握数据库应用系统开发对象(或称用户)的工作业务流程和每个岗位、每个环节的职责,了解和掌握信息从开始产生或建立,到最后输出、存档或消亡所经过的传递和转换过程,了解和掌握各种人员在整个系统活动过程中的作用;通过同用户充分地交流和沟通,决定那些工作应由计算机来做,哪些工作仍由手工来做,决定各种人员对信息和处理各有什么要求,对视屏操作界面和报表输出格式各有什么要求,对数据(信息)的安全性(保密性)和完整性各有什么要求等等。

需求分析阶段的主要工作就是,通过调查从用户处获得对数据库的下列需求。

  信息需求:

用户将从数据库中获得的信息的内容和性质,有信息要求导出数据要求,即在数据库中存储哪些数据。

  处理需求:

用户要完成什么处理功能,对某种处理的执行频度、用户要求的响应时间,以及处理的方式是联机处理还是批处理等。

  安全性和完整性的约束

请简要说明数据库安全机制?

  参考答案:

  一个用户访问SQLServer必须要经过4个层次的安全控制,操作系统的安全性;服务器的安全性;数据库的安全性;表和列的安全性。

从上述流程可以看出,用户使用SQLServer时,需要经过两个安全性阶段:

身份验证和权限认证。

  身份验证阶段系统只检验用户是否有连接SQLServer实例的权力,如果身份验证通过了,只表示用户可以连接SQLServer实例,否则系统将拒绝用户的连接。

然后需要检验用户是否有访问服务器上数据库的权限,为此需要授予每个数据库中映射到用户登录的账号访问权限,权限认证就可以控制用户在数据库中进行的操作。

  2.登录账号和用户账号的含义是什么?

它们有什么区别联系?

  参考答案:

  登录账号用于身份验证,使得用户到达登录到SQLServer服务器,属于服务器层面,相当于大门的钥匙;用户账号用于权限验证,属于数据库层面,相当于自己房间的钥匙。

用户账号在定义时便与一个登录账号相关联,即任何一个用户账号背后都有一个登录账号。

  3.请简要说明使用企业管理创建登录账号和用户账号的过程。

  参考答案:

  

(1)在SQLServer的企业管理器下,展开“SQLServer组”文件夹,找到需要建立登录账号的服务器并展开其文件夹,再展开“安全性”文件夹,在“登录”选项上右击鼠标,在出现的快捷菜单中单击“新建登录”菜单命令,打开“SQLServer登录属性->新建登录”对话框。

  

(2)SQLServer支持“Windows身份验证”和单击“SQLServer身份验证”两种认证模式。

选择“SQLServer身份验证”单选钮,在“名称”文本框中输入要创建的登录账号名称,例如“mysa”,在“身份验证”选项组中,并输入密码。

  (3)设置完毕后,单击“确定”按钮,即可完成登录账号的创建。

  接下来,开始创建用户账号,基本方法是:

  

(1)在企业管理器中,展开SQLServer组及其服务器,在“数据库”文件夹中,展开某一数据库,例如“进销存”的文件夹,然后在“用户”选项上右击,在弹出的快捷菜单中选择“新建数据库用户”命令,打开新建用户对话框。

  

(2)单击“登录名”下拉列表框右端的下拉箭头,会看到刚刚创建的“mysa”登录帐号。

选择“mysa”登录账号,此时“用户名”文本框中自动显示为“mysa”。

可以更改“用户名”文本框中的用户名,也可以在“数据库角色成员”列表框中选择新建用户应该属于的数据库角色。

  (3)设置完毕后,单击“确定”按钮,即可在“进销存”数据库中创建一个新的用户账号。

如果不想创建用户账号,单击“取消”按钮即可。

  4.如何对用户账号进行授权管理,一般有哪些权限,请简要说明。

  参考答案:

  

(1)展开服务器组

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2