标红为重点,是我刷题库刷到的知识点。
B站: 计算机三级数据库技术_哔哩哔哩_bilibili 该系列视频有部分内容有误
CSDN: 数据库的部分依赖、完全依赖、传递依赖
CSDN: 数据库设计5-逻辑结构设计
一、考试内容及要求
-
掌握数据库技术的基本概念、原理、方法和技术。
-
能够使用SQL语言实现数据库操作。
-
具备数据库系统安装、配置及数据库管理与为维护的基本技能。
-
掌握数据库管理与维护的基本方法。
-
掌握数据库性能优化的基本方法。
-
了解数据库应用系统的生命周期及其设计、开发过程。
-
熟悉常用的数据库管理和开发工具,具备用指定的工具开发简单数据库应用系统的能力。
-
了解数据库技术的最新发展。
二、考试系统使用说明
## 题型及内容 范围预测
-
数据库应用系统分析及规划(选择题)
-
数据库设计及实现(选择题和应用题)
-
数据库存储技术(选择题, 应用题,设计与应用题)
-
数据库编程技术(设计与应用题)
-
事务管理(选择题、应用题、设计与应用题)
-
数据库管理与维护(选择题、应用题)
-
数据库技术的发展及新技术(选择题、应用题)
## 考试形式及考试时间
-
考试形式: 无纸化上机考试。
-
考试时间: 120分钟。
-
考试时间由系统自动进行计时,提前5分钟自动报警提醒考生。
-
考试剩余时间为0时,系统自动交卷。
## 考试系统使用说明
1、PC机
2、软件环境
考试软件系统
操作系统:中文Windows7或以上
应用软件:SQL Server 2008
## 分值
满分100分
选择题40分(30个小题)
应用题30分(10个小题)
评分标准:多个空的时候需要于顿号隔开,填写正确的答案
设计与应用题(3个大题)
三、数据库应用系统开发方法
第一节 数据库的基本概念
-
1.数据
-
数据(Data)是数据库中存储的基本对象。
-
定义: 描述事物的符号序列
-
数据的种类:数字、文字、图形、图像声音及其他特殊符号。
计算机中的数据分为两部分:
临时性数据: 指放在内存里的数据。在电脑关机,断电或超时后会丢失的数据。
持久性数据:存储在数据库、磁盘或磁带中的信息
数据有型(Type)与值(Value)之分:
型: 数据表示的类型,如整型、字符型等。
值:给出了符合给定型的值。
-
2.数据库
-
数据库-----Datebase,简称DB
-
数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。
-
按数据所提供的数据模式存放的。
-
3.数据库系统
-
数据库系统——Database System,简称DBS
-
指在计算机系统中引入数据库和数据库管理系统(DBMS)后的完整系统
-
在不引起混淆的前提下常常把数据库系统简称为数据库
-
实现有组织的、动态的存储大量相关数据,提供数据处理和资源共享服务
-
组成:
-
数据库(数据)
-
数据库管理系统(软件)
-
数据库管理人员(人员)
-
硬件平台:计算机和网络
-
软件平台:操作系统、数据库系统开发工具、接口软件
-
4.数据库应用系统
-
数据库应用系统----Database Application System,简称DBAS
-
组成: 数据库系统+应用软件 + 应用界面
第二节 软件工程与数据库技术
-
1.软件工程
-
软件工程是用工程、科学和数学的原则与方法来开发、维护计算机软件的有关技术和管理方法
-
软件工程由方法、工具和过程三部分组成------软件工程的三要素。
-
2.软件生存周期
-
一般来说,软件产品从定义开始,经过开发,使用与维护,直到最后退役的全过程称为软件生存周期。
-
3.数据库工程:
-
数据库应用系统的开发是一项软件工程,但又有自己的特点,所有特称为"数据库工程"。数据库工程按内容可分成两部分,一部分是数据库设计,一部分是相应的应用的设计与实现。
-
数据库应用系统的设计开发必须由软件过程模型作为指导。
-
典型的软件开发模型由:瀑布模型,快速原型模型,螺旋模型。
第三节 DBAS生命周期模型
-
参照软件工程中软件开发瀑布模型原理,DBAS的生命周期由项目规划、需求分析、系统设计、实现与部署、运行管理与维护等5个基本活动组成
-
根据DBAS的软件组成和各自功能,分为数据组织与存储设计、数据访问与处理设计、应用设计三条设计主线,分别用于设计数据库、数据库事物和应用程序。
-
根据数据库系统三级模式结构,DBAS设计阶段分为概念设计、逻辑设计、物理设计三个步骤,每一步设计内容涵盖了三条设计主线。
-
规划与分析
-
是DABAS生命周期的第一步,目标是面向实际应用和需求,确定整个数据库应用系统的目标和任务,从技术、操作和经济三个方面进行可行性分析,并制定合理的项目开发计划。
-
规划与分析的主要内容:
-
系统规划与定义:任务陈述、确定任务目标、确定范围和边界、确定用户试图
-
可行性分析:技术、经济、操作可行性及开发方案选择
-
项目规划: 项目团队、环境、活动、成本预算、进度计划
-
需求分析
-
准确了解与分析用户需求(包括数据与处理)
-
最困难、最耗费时间的一步
-
需求分析过程由 需求获取、需求分析、需求描述与规划说明、需求验证等步骤组成。
-
各种需求的主要工作:
-
数据需求分析:描述用户需要组织的信息内容 形成数据字典
-
功能需求分析:描述系统做什么 数据处理需求分析、业务规则需求分析
-
性能需求分析: 描述系统应当做到什么程度 数据操作响应时间、系统吞吐量、 硬件资源等
-
其他需求:存储需求、安全性需求、备份与恢复需求
-
系统设计
-
如果需求分析阶段的任务是解决"干什么"的问题,那么系统设计阶段的任务是确定"怎么干".
-
系统设计包括:
-
概念设计:数据库概念模型设计、系统总体设计
-
逻辑设计:数据库逻辑结构设计、数据库事务概要设计、应用程序概要设计
-
物理设计:数据库物理结构设计、数据库事务详细设计、应用程序详细设计
-
实现与部署
-
也称为DBAS的实施。需要根据设计结果建立数据库,编写应用程序,集成DBAS软硬件,组成完整的DBAS。
-
包括建立数据库结构、数据加载、事物和应用程序的编码及测试,系统集成、测试与运行、系统部署。
-
运行管理与维护
-
主要包括日常维护、系统监控与分析、系统性能优化调整、系统进化升级等。这些工作主要由DBA负责。(数据库管理员(Database Administrator,简称DBA))
-
DBAS生命周期模型中时间最长的阶段
第四节 应用案例
-
1.案例概述
-
针对商场建立一个数据库应用系统,即商场经营管理系统。该系统应实现顾客管理、商品采购入库、商品销售、财务管理、人力资源管理和查询统计等大类功能。出于篇幅,忽略财务核算、退货、发票等功能。
-
2.案例业务功能需求以及非功能性需求
-
会员网络查询本人积分并修改自己信息。(顾客功能需求)
-
登记供应商及其商品的信息(商品采购功能需求)
-
系统应能支持顾客现金支付或银行卡刷卡方式支付。(商品销售业务功能需求)
-
对各类员工进行绩效考核,核定管理员工工资。(人力资源管理功能需求)
-
系统能支持商场的财务业务活动,如银行业务往来,生成财务报告等。(财务管理功能需求)
-
提供商场业务情况数据查询服务。(查询统计管理功能需求)
-
整个系统对基本销售业务实现秒级响应。(性能需求 实时性)
-
商场平均销售业务量约为1万笔/天; 每笔平均3条件销售细节。在线保存至少1年销售
(性能需求 数据处理)
四、需求分析
第一节 需求分析
-
1.需求分析的概念与意义
-
需求是指用户对软件的功能和性能的要求,就是用户希望软件能做什么事情,完成什么样的功能,达到什么性能。
-
需求分析是在计算机系统的软件功能分配和软件设计之间起重要桥梁作用的一项软件工程活动。描述待开发的系统所要完成的功能。
-
需求分析使系统工程师能够刻画出软件的功能和性能,指明软件和系统其他元素的接口,并建立软件必须满足的约束。
-
需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
-
2.需求分析往往因为软件产品的下列特性而困难重重。
-
软件功能复杂
-
需求的可变性
-
软件产品的不可见性
通常,一个计算机应用系统分析工作是在系统分析人员与用户不断交互的过程中完成的。
-
3.需求获取的方法
-
面谈: 系统分析员与用户方的专家和业务人员进行知识交流、与他们会谈,获取需求
-
准备访谈
-
计划和安排访谈日程
-
访谈开始和结束
-
引导访谈
-
访谈整理工作
-
实地观察: 实地观察用户的操作过程。对比现有的系统,思考如何采取更高效的方式。
-
现场观察法
-
询问法
-
直接访问、堵截访问、电话访问、邮寄访问等。
-
问卷调查: 若需访谈的个体太多,且需要回答容易确定的细节问题,可采取问卷调查方式。
-
适合使用情况:
-
需访谈的个体太多
-
需要问答容易确定的细节问题
-
希望有详细的结果
-
注意事项:
-
使用问卷表尽可能的简短
-
估计回答问题需要时间,并在问卷表开头标注时间
-
制定问题前,先确定你需要的答案
-
查阅资料: 收集和查阅相关的文献资料,组织机构图、规章制度、相关文档、图表及报告等。
-
书面需求文档
-
现在的业务操作流程及其改进意见文档
-
现在使用的数据表和文件及其格式,并确定数据的来源。
-
4.需求分析的过程
-
1.标识问题:需求分析的第一步,通过对问题和标识获得的对所有求解问题及其运行环境的理解。
-
2.建立需求模型:目前在信息系统的需求分析中可使用结构化模型或面向对象分析模型。
-
3.描述需求:需求、功能、信息、性能、环境、其他需求。
-
4.确定需求:需求确认及评审。审核功能需求、数据需求、性能、数据管理及其他需求。
第二节 需求分析方法
-
1.目前在信息系统的需求分析中可使用如下方法:
-
结构化分析与建模方法(SAD)
-
DFD建模、IDEF建模
-
面向对象分析与建模方法(OOA)
-
UML用例建模
-
2.结构化分析与设计方法是一种面向数据流的传统软件开发方法,它以数据流为中心构建软件的分析模型和设计模型。结构化分析SA、结构化设计SD、结构化程序设计SP构成了完整的结构化方法。结构分析与设计方法是瀑布模型的首次实践。
-
3.结构化分析任务
-
建立分析模型。SA模型是描述软件需求的一组模型,主要包括 功能模型、数据模型、行为模型。
-
编写需求规格说明书。SRS是分析阶段编写的以文字为主的文档,主要内容包括:引言、信息描述、功能描述、行为描述、质量保证、接口描述以及其他需求。
-
结构化分析的指导思想。抽象与分解是结构化分析的主要指导思想。
-
4.DFD需求建模方法
-
数据流图(Data Flow Diagram,DFD):DFD建模方法的核心是数据流,从应用系统的数据流着手以图形方法刻画和表示一个具体业务系统的数据处理过程和数据流。
-
数据流:数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须有流向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。
-
数据源(终点) :代表系统之外的实体,可以是人、物或其他软件系统。
-
对数据的加工(处理): 加工是对数据进行处理的单元,它接受一定的数据输入,对其进行处理,并产生输出。
-
数据存储:表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等。
-
5.DFD建模过程
-
具体建模过程及步骤:
-
(1)明确目标,确定系统范围.
-
将用户对目标系统的功能需求完整、准确、一致地描述出来。
-
(2)建立顶层DFD图
-
说明系统边界,即系统地输入和输出数据流,顶层DFD只有一张。
-
(3)构建第一层DFD分解图
-
中间层DFD,描述了其个过程的分解,而它的组成部分又要进一步分解。
-
(4)开发DFD层次结构图(原则:保持均匀的模型深度,按困难程度选择)
-
底层DFD,由一些不可再分解的过程组成
-
(5) 检查确认DFD图(5条规则)
-
父图中描述过的数据流必须在相应子图出现。
-
一个处理至少有一个输入流和输出流
-
一个存储必定有流入的数据流和流出的数据流。
-
一个数据流至少有一端是处理框。
-
表示描述的信息是全面、完整、正确和一致的。
-
6.IDEF0需求建模方法
-
IDEF方法: ICAM DEFinition Method,由美国空军发明,从IDEF0到IDEF14(包括IDEF1X在内)共有16套方法,每套方法都是通过建模程序来获取某个特定类型的信息。
-
最常用使用的是IDEF0~IDEF4;
-
IDEF0:描述系统功能及其相互关系;
-
IDEF1:系统信息及其数据之间联系;
-
IDEF2:系统模拟,动态建模;
-
IDEF3:过程描述及获取方法;
-
IDEF4:面向对象设计;
-
7.UML用例建模方法
-
UML方法采用面向对象思想建模,使用用例图描述系统功能需求。用例图由系统、角色、用例三种模型元素及其之间关系构成。
五、数据库结构设计
第一节 数据库概念设计
-
一个设计良好的数据库,在很大程度上决定了系统的成功与否。
-
一般分为: 数据库概念设计、数据库逻辑设计、数据库物理设计
-
概念设计是数据库设计和核心环节。通过对用户需求进行综合、归纳与抽象,形成一个独立具体DBMS的概念模型。
-
1.数据库概念设计的目标
-
定义和描述应用领域设计的数据范围
-
获取信息模型
-
描述数据的属性特征
-
描述数据之间的关系
-
定义和描述数据的约束
-
说明数据的安全性要求
-
支持用户的各种数据处理需求
-
保证信息模型能转化成数据库的逻辑结构(即数据库模式)
-
2概念设计的依据及过程
-
依据:
-
数据库概念设计以需求分析结果为依据,即需求说明书、DFD图以及在需求阶段收集到的应用利用中的各类报表等。
-
过程:
-
(1)明确建模目标(模型覆盖范围)
-
(2)定义实体集(自底向上标识和定义实体集)
-
(3)定义联系(实体间关联关系)
-
(4)建立信息模型(构造ER模型)
-
(5)确定实体集属性(属性描述一个实体集的特征或性质)
-
(6)对信息模型进行集成与优化(检查和消除命名不一致、结构不一致等)
-
结果:
-
概念设计的结果是概念模型(ER)与概念设计说明书。
-
概念设计是DB设计和核心环节。概念数据模型是对现实世界的抽象和模拟。
-
3.概念模型设计
-
概念设计目前采用最广泛的是ER建模方法。将现实世界抽象为具有属性的实体及联系。
-
1976年,Peter.Chen提出E-R模型(Entity-Relationship Model),即 实体联系模型 ,用E-R图描述数据库的概念模型。
-
观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。
-
与E-R模型有关的概念
-
实体(Enity)或实例(Instance)
-
客观存在并可相互区分的事物叫实体。
-
如学生张三、工人李四、计算机系、数据库
-
实体集(Entity Set)
-
同型实体的集合称为实体集。
-
如全体学生。
-
属性(Attribute)
-
实体所具有的某一特性。一个实体可以由若干个属性来刻画。每个属性的取值范围称为域。
-
如:学生可由学号、姓名、年龄、系、年纪等组成。
-
码(键)(key)
-
码(键)(key)是实体集中唯一标识每一个实体的属性或属性组合。
-
用来区别同一个实体集中的不同实体的称作主码(主键)。
-
一个实体集中任意两个实体在主码上的取值不能相同。
-
如: 学号是学生实体的主码。
-
联系(Relationship)
-
描述实体之间的相互关系
-
如学生与老师间的授课关系,学生与学生间有班长关系。
-
联系也可以有属性,如学生与课程之间有选课联系。每个选课联系都有一个成绩作为其属性。
-
同类联系的集合称为联系集。
-
实体间的联系有三类:
-
实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目。
-
一对一联系(1:1) 如:"系"与"系主任"(一个系只有一个系主任,一个系主任只负责管理一个系)
-
一对多联系(1:n) 如:"系"与"学生"(一个系招收若干学生,一个学生只属于一个系)
-
多对多联系(m:n) 如:"学生”与"课程"(一名学生可选修多门课程,每门课程可被多名学生选修)
-
E-R模型的表示:
![](https://img-blog.csdnimg.cn/img_convert/0093bcbd0fbbddc5abac61e3688ce3a3.png)
-
E-R图实例:
![](https://img-blog.csdnimg.cn/img_convert/48f977d3f2b2f133d9e74d541a93dd52.png)
-
4. IDEF1X建模方法
-
IDEF1X与前面介绍的IDEF0是一个系列的建模工具。
-
IDEF0是功能建模方法
-
IDEFX是数据建模方法
-
5.概念设计实例(商场经营管理系统)
-
建模目标:支持顾客管理、采购与库存管理、销售管理、人力资源管理、财务管理等多项业务活动。
-
定义实体集:顾客、会员卡、员工、收银台、销售单据、供应商、商品、采购入库单据
-
定义联系(难点):依据语法约束定义
-
建立信息模型
-
确定实体属性
-
对信息模型进行集成与优化
第二节 数据库逻辑设计
-
1.逻辑设计的任务:
-
将概念模型(如ER图)转换为DBMS支持的数据模型(如关系模型),并对其进行优化。
-
2.逻辑设计的依据和阶段目标:
![](https://img-blog.csdnimg.cn/img_convert/56e88b777f6ef03f0c2780d9db4cbdf9.png)
-
3.补充相关概念
-
1.关系模型
-
有三种主要的数据模型:层次模型、网状模型、关系模型。
-
其中关系模型简单灵活,并由着坚实的理论基础,已成为最流行的数据模型。
-
关系模型就是用二维表格结构来表示实体及实体之间联系的模型。
-
关系的描述称为关系模式(Relation Schema)。关系模式由五部分组成,即它是一个五元组:R(U,D,DOM,F);
R:关系名 ,U:组成该关系的属性名集合, D:属性组U中属性所来自的域,
DOM:属性到域的映射,F:属性组U上的一组数据依赖。
由于D、DOM对模式设计的关系不大,这里吧关系模式简化为一个三元组:R<U,F>,当且仅当U上的一个关系R满足F时,R称为关系模式R<U,F>的一个关系。
![](https://img-blog.csdnimg.cn/img_convert/1a0f9285af1bc16c5a3ecfdc019dc8e3.png)
-
将上述概念模型E-R图中的学生实体可以转换为如下关系模式:
-
学生(学号, 姓名,出生日期,所在系,年级,平均成绩)
-
关系数据库设计的核心:关系模式的设计。
-
关系模式的设计目标:按照一定的原则从数量众多而又相互关联的数据中,构造出一组即能较好的反映现实世界,而又有良好的操作性能的关系模式。
新奥尔良法,数据库设计步骤:
需求分析-> 概念结构设计(E-R图)-> 逻辑结构设计(关系模式)->物理结构设计
-
2.数据依赖
-
定义: 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称"X函数确定Y"或”Y函数依赖于X",记作X->Y。
-
数据依赖:
-
关系内部属性与属性之间的一种约束关系。
-
是现实世界属性间相互联系的抽象
-
数据的内在性质
-
语义的体现
-
完整性约束的表现形式
-
限定属性的取值范围,如年龄<60
-
定义属性间值的相互关联(主要体现于值的相互与否),这就是数据依赖。
-
数据依赖的类型
-
函数依赖(Functional Dependency FD)
普遍存在于生活中,这种依赖关系类似于数学中的函数y=f(x),自变量x确定之后,相应的函数值y也就唯一地确定了。
如关系:公民(身份证号,姓名,地址,工作单位)
身份证号-确定,则其地址就唯一确定,因此地址函数依赖身份证号
姓名-确定,不一定能确定地址。
-
多值依赖(Multivalued Dependency,MD)
教师号可能多值依赖课程号,因为给定一个(课程号,参考书号)组合,可能有对应多个教师号。这是因为多个老师可以使用相同或不同地参考书上同一门课。
简单点讲,函数依赖就是唯一确定的关系,多值依赖却不能唯一确定。
-
平凡函数依赖与非平凡函数依赖
如果X->Y,且Y不属于X,则X->Y称为非平凡函数依赖
如果X->Y,且Y属于X,则X->Y为平凡函数依赖
由于Y属于X时,一定有X->Y,平凡函数依赖必然成立,没有意义,所以一般所说的函数依赖,总是指非平凡函数依赖。
例:Sno代表学生的学号,Cno代表课程号, Grade代表成绩
在关系SC(Sno,Cno,Grade)中,
非平凡函数依赖:(Sno,Cno)->Grade
平凡函数依赖:
(Sno,Cno)-> Sno
(Sno,Cno)-> Cno
-
完全函数依赖和部分函数依赖
设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
例如:通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB.
设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
例如:通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB。
-
传递函数依赖
设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。
例如:通过A得到B,通过B得到C,但是C得不到B,B得不到A,那么成C传递依赖于A
-
思考题:
已知关系模式R(学生学号,课程名,学生专业号,专业名,成绩),说出下面是什么关系?
-
(学生学号,课程名,学生专业号) 成绩 (函数依赖,部分函数依赖)
-
(学生学号) 专业名 (函数依赖,传递函数依赖)
-
(学生学号,专业名) 成绩 (不是函数依赖)
-
(学生学号,课程名) 成绩 ( 完全函数依赖)
-
(课程名,专业名,成绩)(课程名,成绩) (平凡函数依赖)
-
3.候选码、主码、外码
-
候选码:如果某属性组的值能唯一确定整个元组的值,则成为该属性组为候选码或候选关键字。
例如: (学号,姓名,性别,年龄)
学号是关键字,(学号,姓名)不是关键字,性别不是关键字。
候选码如果有多个,可以选其中的一个作为主码(Primary Key)
-
外码: 属性或属性组X不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模式的码,则称X 是R的外部码,