自己做同城购物网站,怎么做网页的搜索功能,襄阳市做网站的公司,营销型企业网站建设的内容【本章学习建议】
根据考试大纲#xff0c;本章主要考查系统架构设计师单选题#xff0c;预计考5分左右#xff0c;以及案例分析1题#xff0c;25分。对应第二版教材2.3.3小节以及第6章#xff0c;主要考点在第6章#xff0c;这里一起合并到本章课程中。
3.1 数据库基本…【本章学习建议】
根据考试大纲本章主要考查系统架构设计师单选题预计考5分左右以及案例分析1题25分。对应第二版教材2.3.3小节以及第6章主要考点在第6章这里一起合并到本章课程中。
3.1 数据库基本概念
数据Data是描述事物的符号记录是数据库中存储的基本对象。数据的种类文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等。
数据库DataBaseDB是长期存储在计算机内、有组织的、可共享的大量数据的集合。其特点数据间联系密切冗余度小独立性高易扩展可为各类用户共享。
数据库系统DataBase SystemDBS是一个采用了数据库技术有组织地、动态地存储大量相关联数据从而方便多用户访问的计算机系统。其由数据库、硬件、软件和人员组成。
数据库管理系统DataBase Management SystemDBMS主要实现对共享数据有效地组织、管理和存取。其主要功能包括数据定义Data Definition LanguageDDL、数据库操纵Data Manipulation LanguageDML、数据库运行管理、数据组织、存储和管理、数据库的建立和维护、网络通信等。
DBMS的分类关系数据库系统Relation DataBase SystemRDBS、面向对象的数据库系统Object-Oriented DataBase SystemOODBS、对象关系数据库系统Object-Oriented Relation DataBase SystemORDBS。
3.1.1 数据库三级模式
1. 内模式
也称存储模式是数据物理结构和存储方式的描述是数据在数据库内部的表示方式定义所有的内部记录类型、索引和文件的组织方式以及数据控制方面的细节。一个数据库只有一个内模式。对应数据库中的物理存储文件。
2. 概念模式
也称模式是数据库中全部数据的逻辑结构和特征的描述。一个数据库只有一个概念模式。对应数据库中的基本表。
3. 外模式
也称用户模式或子模式是用户与数据库系统的接口是用户需要使用的部分数据的描述。一个数据库可以有多个外模式。对应数据库中的视图。
4. 数据库的两级映像
1模式/内模式映像实现了概念模式和内模式间的相互转换是表和数据的物理存储之间的映射保证了数据的物理独立性。
2外模式/模式映像实现了外模式和概念模式间的相互转换是视图和表之间的映射保证数据的逻辑独立性。
数据的独立性
1物理独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。当数据的物理存储改变时应用程序不需要改变。物理独立性存在于概念模式和内模式之间的映射转换说明物理组织发生变化时应用程序的独立程度。
2逻辑独立性。逻辑独立性是指用户的应用程序与数据库中的逻辑结构是相互独立的。当数据的逻辑结构改变时应用程序不需要改变。逻辑独立性存在于外模式和概念模式之间的映射转换说明概念模式发生变化时应用程序的独立程度。 3.1.2 数据库设计的基本步骤
一般将数据库设计分为如下6个阶段
1用户需求分析。即分析数据存储的要求产出物有数据流图、数据字典、需求说明书。获得用户对系统的三个要求信息要求、处理要求、系统要求。
2概念结构设计。就是设计E-R图也即实体-联系图。工作步骤包括选择局部应用、逐一设计分E-R图、E-R图合并。分E-R图进行合并时它们之间存在的冲突主要有以下3类。
·属性冲突。同一属性可能会存在于不同的分E-R图中。
·命名冲突。相同意义的属性在不同的分E-R图上有着不同的命名或是名称相同的属性在不同的分E-R 图中代表着不同的意义。
·结构冲突。同一实体在不同的分E-R图中有不同的属性同一对象在某一分E-R图中被抽象为实体而在另一分E-R图中又被抽象为属性。
3逻辑结构设计。将E-R图转换成关系模式。工作步骤包括确定数据模型、将E-R图转换成为指定的数据模型、确定完整性约束和确定用户视图。
4物理结构设计。是逻辑模型在计算机中的具体实现方案。步骤包括确定数据分布、存储结构和访问方式。
5数据库实施阶段。根据逻辑设计和物理设计阶段的结果建立数据库编制与调试应用程序组织数据入库并进行试运行。
6数据库运行和维护阶段。数据库应用系统经过试运行即可投入运行但该阶段需要不断地对系统进行评价、调整与修改。 3.2 数据模型
3.2.1 基本概念
1. 数据模型的定义
数据模型是对现实世界数据特征的抽象。最常用的数据模型分为概念数据模型和基本数据模型。
1概念数据模型也称信息模型是按用户的观点对数据和信息建模是用户和数据库设计人员交流的语言主要用于数据库设计。这类模型中最著名的是实体-联系模型简称E-R模型。
2基本数据模型它是按计算机系统的观点对数据建模是现实世界数据特征的抽象用于DBMS的实现。
2. 数据模型的三要素
1数据结构所研究对象类型的集合
2数据操作对数据库中各种对象的实例允许执行的操作集合
3数据的约束条件一组完整性规则的集合。
3.2.2 E-R模型
E-R模型就是实体-联系模型用来描述现实世界的概念模型接近于人的思维方式容易理解其中有三个主要的概念实体、联系和属性。
1. 实体
用矩形表示每个实体由一组属性表示包括候选键、主键、外键。实体集是指具有相同属性的实体集合。
候选键能唯一地标识一行元组的属性集。
主键从候选键中选一个作为主键。
外键在另一个关系模式中充当主键的属性。
2. 联系
用菱形表示实体集之间的对应关系称为联系分为一对一1:1、一对多1:n或1:*、多对多m:n或*:*。
①一对一联系1:1。实体集A中的一个实体最多只与实体集B中的一个实体相联系反之亦然。
②一对多联系1:n或1:*。实体集A中的一个实体可与实体集B中的多个实体相联系。
③多对多联系m:n或*:*。实体集A中的多个实体可与实体集B中的多个实体相联系。多对多的联系会产生一个新的关系模式此关系模式的属性由联系的两个实体的主键以及自己的特有属性所组成。
1:1一个学校只有一名校长而每位校长只在一个学校工作。
1:n或1:*一个学校有很多学生而每个学生只在一个学校上课。
m:n或*:*一名学生可以选修多门课程而一门课程也可以由多名学生选修。 3. 属性
用椭圆表示是实体某方面的特性。E-R模型中的属性分为
①简单和复合属性简单属性是原子的、不可再分的复合属性可以划分为多个子属性如通信地址。
②单值和多值属性对于一个特定的实体都只有一个单独的值单值属性。例如对于一个特定的员工只对应一个员工号、员工姓名。而员工可能有0个、1个或多个亲属那么员工的亲属姓名可能有多个这样的属性称为多值属性。
③NULL属性某个属性没有值或属性值未知时使用NULL值表示无意义或不知道。
④派生属性派生属性可以从其他属性得来。例如职工实体集中有“参加工作时间”和“工作年限”属性那么“工作年限”的值可以由当前时间和参加工作时间得到。“工作年限”就是一个派生属性。
弱实体集一个实体的存在必须以另一个实体为前提这类实体称为弱实体集。例如职工的家属必须以职工在职为前提依赖于职工。
4. 实体-联系方法 3.3 关系代数
3.3.1 关系数据库的基本概念
1. 属性和域
一个现实中的实体事物常用若干特征来描述这些特征称为属性。每个属性的取值范围对应的集合称为该属性的域。
例如员工员工号姓名性别参加工作时间部门号
2. 笛卡儿积与关系 3. 关系的相关名词
1候选码(Candidate Key)若关系中的某一属性或属性组的值能唯一地标识一个元组则称该属性或属性组为候选码。
2主码(Primary Key)若一个关系有多个候选码则选定其中一个为主码。
3主属性(Non-Key attribute)包含在任何候选码中的诸属性称为主属性。不包含在任何候选码中的属性称为非码属性。
4外码(Foreign Key)如果关系模式R中的属性或属性组不是该关系的主码但它是其他关系的主码那么该属性或属性组是关系模式R的外码。
员工员工号姓名性别参加工作时间部门号部门部门号名称电话负责人
4. 关系的三种类型
1基本关系。通常又称为基本表它是实际存在的表是实际存储数据的逻辑表示。
2查询表。查询表是查询结果对应的表。
3视图表。视图表是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库中数据库中只存放它的定义所以常称为虚表。
5. 关系数据库模式
关系的描述称为关系模式(Relation Schema)可以形式化地表示为 其中R表示关系名U是组成该关系的属性名集合D是属性的域dom是属性向域的映像集合F为属性间数据的依赖关系集合。
通常将关系模式简记为 其中R为关系名
为属性名或域名属性向域的映像常常直接说明属性的类型、长度。通常在关系模式主属性上加下划线表示该属性为主码属性。
员工员工号姓名性别参加工作时间部门号
E-R图转换为关系模式
首先每个实体都要转换为一个关系模式然后对于联系
1一对一两端实体中的任意一个实体的主键加入到另一个实体中作为外键
2一对多一端实体的主键加入到多端实体中作为外键
3多对多多对多的联系会产生一个新的关系模式此关系模式的属性由联系的两个实体的主键以及自己的特有属性所组成。
6. 完整性约束
完整性规则提供了一种手段来保证当用户对数据库做修改时不会破坏数据的一致性。防止对数据的意外破坏。关系模型的完整性规则是对关系的某种约束条件。关系的完整性分为三类
①实体完整性关系的主属性不能取空。
②参照完整性外键的值或者为空或者必须等于对应关系中的主键值。
员工员工号姓名性别参加工作时间部门号部门部门号名称电话负责人
③用户定义完整性根据语义要求所自定义的约束条件。
7. 关系运算
关系操作的特点是操作对象和操作结果都是集合。关系代数运算符有4类集合运算符、专门的关系运算符、算术比较符和逻辑运算符。 3.3.2 5种基本的关系代数运算
关系模式在代数运算时可以理解为数据库表的运算。
1. 并Union
关系R与S的属性及属性的个数相同。并的结果为属于R或属于S的元组构成的集合元组要去重。 2. 差Difference
关系R与S的属性及属性的个数相同。R−S差的结果为属于R但不属于S的元组构成的集合。 3. 广义笛卡尔积Extended Cartesian Product
如果关系模式R中有n个属性关系模式S中有m个属性则广义笛卡尔积的结果中有nm个属性其中前n个属性来自R后m个属性来自S。如果R中有k1个元组S中有k2个元组则运算结果又k1*k2个元组。 4. 投影Projection
从关系的垂直方向进行运算。在关系R中挑选若干属性列A组成新的关系。 5. 选择Selection
从关系的水平方向进行运算从关系R中选择满足条件的元组。 其中F中运算对象是属性名或列的序号或者常量用单引号括起来如’1’表示数字1、算术运算符(、≤、、≥、≠)、逻辑运算符(∧、∨、¬)。
3.3.3 扩展的关系代数运算
1. 交Intersection
关系R与S的属性及属性的个数相同。关系R与S的交是由属于R同时又属于S的元组构成的集合。 2. 连接Join
连接分为连接、等值连接和自然连接3种。连接运算是从两个关系R和S的笛卡尔积中选取满足条件的元组。
①连接从关系R与S的笛卡尔积中选取属性间满足一定条件的元组。 A B C A C D a b c a c d b a d d f g c d e b d g d f g 关系S 关系R 3. 除Division
除运算是同时从关系的水平方向和垂直方向进行运算。 练习设有关系R、S如下图所示求RS。 A B C D C D a b c d c d a b e f e f a b h k b d e f b d d I c k c d c k e f 关系R 4. 广义投影Generalized Projection
允许在投影列表中使用算术运算是对投影运算的补充。 5. 外连接Outer Join
在自然连接中关系R与S的一些元组因为没有公共属性会被抛弃。使用外连接就可以避免这样的丢失。外连接运算就是将自然连接时舍弃的元组也放入新关系并在新增加的属性上填入空值。 3.4 关系数据库SQL语言
SQL是结构化查询语言的简称是关系数据库中最普遍使用的语言包括数据查询、数据操纵、数据定义和数据控制是一种通用的、功能强大的关系数据库标准语言。
SQL语言支持关系数据库的三级模式。基本表和视图都是表基本表是存储在数据库中的表而视图是虚表是从基本表或其他视图导出的表。数据库中只存放视图的定义不存放视图的数据。用户可用SQL语言对视图或表进行查询等操作。 索引建立与删除
数据库中索引的作用①通过创建唯一性索引保证数据记录的唯一性②大大加快数据的检索速度③加速表与表之间的连接④在使用Order By和Group By子句中进行检索数据时可以显著减少查询中分组和排序的时间⑤使用索引可以在检索数据的过程中使用优化隐藏器提高系统性能。
索引分为聚簇索引和非聚簇索引。聚簇索引是指索引表中索引项的顺序与表中记录的物理顺序一致的索引。
3.5 关系数据库设计基本理论
3.5.1 函数依赖
关系数据库设计的方法之一就是设计满足合适范式的模式。关系数据库规范化理论主要包括数据依赖、范式和模式设计方法。其中核心基础是数据依赖数据依赖中最重要、最基本的就是函数依赖。
1函数依赖
设R(U)是属性集U上的关系模式X、Y是U的子集。若对R(U)的任何一个可能的关系rr中不可能存在两个元组在X上的属性值相等而在Y上的属性值不等则称X函数决定Y或Y函数依赖于X记作X→Y。
2部分函数依赖
如果X→Y但Y不完全函数依赖于X则称Y对X部分函数依赖。
例子(A,B)能确定CA也能确定C即(A,B)属性集中的部分属性A就可以确定C则C部分函数依赖于(A,B)。 3传递函数依赖 函数依赖求候选键从一个或一组属性出发通过函数依赖集中的依赖关系能决定关系模式中的其他所有属性则这个属性或属性组为候选键。
·求候选键最稳靠的办法是图示法。图示法求候选键的过程如下
1将关系的函数依赖关系用“有向图”的方式表示。
2找出入度为0的属性并以该属性集合为起点尝试遍历有向图若能正常遍历图中所有结点则该属性集即为关系模式的候选键。
3若入度为0的属性集不能遍历图中所有结点则需要尝试性的将一些中间结点既有入度也有出度的结点并入度为0的属性集中直至该属性集合能遍历所有结点则该属性集合为候选键。
·函数依赖求候选键第二种方法根据依赖集找出从未在右边出现过的属性必然是候选键之一以该属性为基础根据依赖集依次扩展看能否遍历所有属性若无法遍历所有属性则将无法遍历到的属性加入候选键中。
4函数依赖的公理系统(Armstrong公理系统)
设关系模式R(U,F)其中U为属性集F是U上的一组函数依赖那么有以下推理规则
·A1自反律若Y⊆X⊆U则X→Y为F所蕴涵。
·A2增广律若X→Y为F所蕴涵且Z⊆U则XZ→YZ为F所蕴涵。
·A3传递律若X→YY→Z为F所蕴涵则X→Z为F所蕴涵。
根据以上三条推理规则又可推出以下三条推理规则
·合并规则 若X→YX→Z则X→YZ为F所蕴含。
·伪传递规则 若X→YWY→Z则XW→Z为F所蕴含。
·分解规则 若X→YZ⊆Y则X→Z为F所蕴含。
3.5.2 规范化
关系数据库设计的方法之一就是设计满足适当范式的模式通常可以通过判断分解后的模式达到几范式来评价模式规范化的程度。范式有 其中级别越高模式规范化程度也就越高。
1. 1NF第一范式
定义若关系模式R的每一个分量是不可再分的数据项则关系模式R属于第一范式。即属性是原子不可再分的。
1NF存在的问题数据冗余、插入异常、删除异常等问题。
2. 2NF第二范式 3. 3NF第三范式 4. BCNF巴克斯范式
BCNF是修正的第三范式。规定了每个属性包括主属性都不传递依赖于码。即当3NF消除了主属性对码的部分函数依赖和传递函数依赖则称为BCNF。
5. 4NF第四范式
4NF主要是消除了多值依赖。
3.5.3 模式分解
1. 分解
模式分解将一个关系模式分解为多个子模式。
模式分解就是模式规范化的工具模式分解使用无损连接和保持函数依赖来衡量模式分解后是否导致原有模式中部分信息丢失。
2. 无损连接 3. 保持函数依赖 3.6 数据库的控制功能
3.6.1 事务管理
事务是DBMS的基本工作单位是由用户定义的一个操作序列。
事务的定义语句有Begin Transaction事务开始、Commit事务提交表示事务成功地结束、Rollback事务回滚表示事务非成功地结束。
事务的ACID性质
1原子性Atomicity要么都做要么都不做。
2一致性Consistency事务执行的结果必须从一个一致性状态转到另一个一致性状态。中间状态对外不可见。
3隔离性Isolation 事务之间相互隔离互不干扰。
4持久性Durability事务成功提交后对数据库的更新操作是永久有效的。
3.6.2 并发控制
并发操作就是在多用户系统中可能出现多个事务同时操作同一数据的情况。并发操作会导致3种数据不一致的问题
1. 丢失修改丢失更新
当两个事务T1和T2读入同一数据做修改并发执行时T1把T2或T2把T1的修改结果覆盖掉造成了数据的丢失更新问题导致数据不一致。 T1 T2 Read(X); Read(X); X:X-10; Write(X); X:X-20; Write(X);
2. 不可重复读
事务T1读取了数据R事务T2读取并更新了数据R。当事务T1再读取数据R以进行核对时得到的两次读取数据不一致。 T1 T2 读取X20; 读取Y10; 求和30; 读取X20; X:X-10; 写X10; 读取X10; 读取Y10; 求和20;(验证不对)
3. 读脏数据
事务T1更新了数据R事务T2读取了更新后的数据R事务T1由于某种原因被撤销进行了事务回滚数据R恢复原值事务T2读取了脏数据。 T1 T2 Read(X); X:X-10; Write(X); Read(X); 对X的处理操作 Rollback
造成以上3种数据不一致的主要原因是事务的并发操作破坏了事务的隔离性。
4. 并发控制技术
并发控制的主要技术是封锁Lock技术。 基本封锁类型 特点 排他锁X锁 事务T对数据A加X锁 1只允许事务T读取、修改数据A 2只有等该锁解除之后其他事务才能够对数据A加任何锁类型。 共享锁S锁 解决了X锁太严格不允许其他事务并发读的问题。 事务T对数据A加S锁则 1只允许事务T读取数据A但不能够修改 2可允许其他事务对其加S锁但不允许加X锁。
3.7 数据库安全
1. 数据库的故障类型
①事务内部故障如运算溢出、除零错误、并发事务发生死锁等
②系统故障也称为软故障是指造成系统停运的事件如CPU故障、OS故障、突然停电等
③介质故障也称为硬故障如磁盘损坏等
④计算机病毒。
2. 数据库的备份方法
数据库的转储分为静态转储和动态转储海量转储、增量转储和差量转储以及日志文件。
·静态转储即冷备份指在转储期间不允许对数据库进行任何存取、修改操作。
优点是非常快速、容易归档(直接物理复制操作)。
缺点是只能提供到某一时间点上的恢复不能做其他工作不能按表或按用户恢复。
·动态转储即热备份在转储期间允许对数据库进行存取、修改操作因此转储和用户事务可以并发执行。
优点是可在表空间或数据库文件级备份数据库仍可使用可达到秒级恢复。
缺点是不能出错否则后果严重若热备份不成功所得结果几乎全部无效。
·海量转储完全转储是指每次转储全部数据库。
·增量转储是指每次只转储上次转储后更新过的数据用于数据库很大事务处理频繁的场景。
·差量转储是对最近一次数据库完全备份以来发生的数据变化进行备份优点是速度快占用较小的时间和空间。
·日志文件在事务处理过程中DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入日志文件。一旦发生故障DBMS的恢复子系统利用日志文件撤销事务对数据库的改变回退到事务的初始状态。
数据仓库补充
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合用于支持管理决策。 OLAP服务器联机分析处理服务器快速汇总大量数据并进行高效查询分析为分析人员提供决策支持。
数据仓库与数据库的对比如下表所示 数据仓库 数据库 面向主题的 面向事务的 数据结构是集成的具有一致性 数据结构更为复杂 是静态的历史数据只能定期添加、刷新 是动态变化的业务发生数据就更新 存储历史数据 存储实时、在线数据 设计需要引入冗余 设计尽量避免冗余
分布式数据库补充
分布式数据库通常使用较小的计算机系统每台计算机可以单独放在一个地方每台计算机中都可能有DBMS的一份完整拷贝副本或部分拷贝副本并具有自己局部的数据库位于不同地点的许多计算机通过网络互相连接共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
分布式数据库的核心
1数据分片突破中心化数据库单机的容量限制将数据分散到多节点以更灵活、高效的方式来处理数据。分片方式包括①水平分片按行进行数据分割数据被分割为一个个数据组分散到不同节点上②垂直分片按列进行数据分割一个数据表的模式被切割为多个子模式。
2数据同步由于数据库理论传统上是建立在单机数据库基础上而引入分布式理论后一致性原则被打破。因此需要引入数据库同步技术来帮助数据库恢复一致性。
分布式数据库的分布透明性
·分片透明性用户或应用程序不需要知道逻辑上访问的表具体是如何分块存储的。
·位置透明性用户或应用程序不关心数据存放的物理位置。
·逻辑透明性用户或应用程序无需知道局部使用的是哪种数据模型。
·复制透明性用户或应用程序不关心复制的数据从何而来。
分布式数据库的特点高可扩展性、高并发性、高可用性。
大数据补充
大数据的4V特征大量化Volume、多样化Variety、价值密度低Value、快速化Velocity。
要处理大数据一般使用集成平台称为大数据处理系统其特征为高度可扩展性、高性能、高度容错、支持异构环境、较短的分析延迟、易用且开放的接口、较低成本、向下兼容性。