
(1)建立数据库结构。
(2)数据加载。
(3)事务和应用程序的编码及测试。
(4)系统集成、测试及运行
(5)系统部署。
左边的输入箭头表示完成活动需要的数据;(输入)
矩形框上方的控制箭头描述了影响这个活动执行的事件或约束条件;(控制)
右边的输出箭头说明由活动产生的结果及信息;(输出)
下方进入的机制箭头表示实施该活动的物理手段或完成活动需要的资源(机制)
从功能角度DBAS系统通常可以划分为四个层次实现:表示层:负责所有与用户交互的功能,用户对数据库应用系统的最直观感受均在这层实现。
业务逻辑层:负责根据业务逻辑需要将表示层获取的数据进行组织后,传递给数据访问层,或将数据访问层获取的数据进行相应的加工处理后,传送给表示层用于展示。
数据访问层:负责与DBMS系统进行交互,提取或存入应用系统所需的数据。
数据持久层:负责保存和管理应用应用系统数据。
(1)创建数据库。
(2)装载数据。
(3)编写与调试应用程序。
(4)数据库试运行。
数据库事务详细设计是根据事务概要设计得到的事务流程,采用高级语言或DBMS提供的事务实现机制,设计数据库事务,即数据库事务的相关设计是在数据库事务详细设计(属于物理设计阶段)进行的。
ER建模方法关系模式个数=实体集数+多对多关系数
业务逻辑层概要设计 1、一个构件或模块只负责完成一项任务,也就是单一责任原则。
2、各个构件均应具有独立的功能,并最大限度地减少与其他构件功能重叠。
3、构件之间的接口应尽量简单明确。
4、如果两个构件间的关系比较复杂,应考虑进一步进行模块划分。
5、如果构件过于复杂,可以考虑将其细分。
该阶段的工作是将构件或模块细化,而不是越弄越复杂。关系复杂的构件合并之后会更复杂
系统规划与定义的内容包括 任务陈述、确定任务目标、确定系统范围和边界、确定用户视图;
可行性分析阶段的任务包括技术可行性、经济可行性、操作可行性、开发方案选择。
IDEFIX中,从属实体集在IDEF1X中,如果实体集的一个实例的唯一标识依赖于该实体集与其他实体集的联系,那么它就是从属标识符实体集或简称为从属实体集。 是标定型联系
如果子女实体集中的每一个实例都能被唯一的确认而无需了解与之相联系的双亲实体集的实例,该联系就被称为"非标定型联系"。
DBAS的性能指标DBAS的性能指标主要包括:数据操作响应时间、系统吞吐量、允许并发访问的最大用户数、每TPS代价值。
数据库物理设计内容包括数据库物理设计内容包括:数据库逻辑模式描述、文件组织与存取设计、数据分布设计、确定系统配置、物理模式评估。
DFD的组成DFD方法由四种基本元素组成:数据流、处理、数据存储和外部项。
数据安全设计数据安全设计主要有五个方面:安全性保护(防止非法用户对数据库非法的使用,其中一种主要方式即是用户权限设计)、完整性保护、并发控制、数据库的备份与恢复、数据加密传输。
完整性约束条件完整性约束条件的作用对象分为列、元组和关系三种级别。
1、对列的约束主要指对其值类型、范围、精度、排序等的约束条件。
2、对元组的约束主要指对记录中各个属性之间的联系的约束条件。
3、对关系的约束是指对若干记录间、关系集合上以及关系之间联系的约束条件。
由角色,用例,系统三部分组成
用例用于描述从系统用户的角度来观察,系统应该具有哪些功能,帮助分析人员理解系统的行为。
角色是与系统进行交互的外部实体,可以是系统用户也可以是其他系统或者硬件设备。
系统是在边界线以内的区域(即用例的活动区域)抽象地表示能够实现的所有基本功能。
一个角色可以执行多个用例,反过来,一个用例也可以被多个角色使用。
架构(Schema,也称为模式)是数据库下的一个逻辑命名空间,可以存放表、视图等数据库对象。一个数据库可以包含一个或多个架构,架构由特定的授权用户所拥有;在同一个数据库中,架构名必须唯一;架构名可以是显示的,也可以由DBMS提供默认名
因此用户在使用表时不需要显式指明表所属的架构
创建分区函数的SQL语句是:CREATE PARTITION FUNCTION PFl(int) AS RANGE LEFt(RIGHT) FOR VALUES (……n)
其中……n用于指定分区的值的数目,所创建的分区数等于n+1。本题中n值分别为1、100、200,因此可以创建4个分区。由于釆用了LEFT关键字,在指定分区间隔值是由数据库引擎按升序从左到右排列时,指定边界值间隔处于左侧分区;而关键字RIGHT是指定边界值间隔在右侧分区。题目中边界值间隔在左侧分区。
创建分区表通过以下几个步骤实现:
(1)创建分区函数。创建分区函数的目的是告诉数据库管理系统以什么方式对表进行分区。
(2)创建分区方案。分区方案的作用是将分区函数生成的分区映射到文件组中。
(3)使用分区方案创建表。
水平划分将一张基本表划分为多张具有相同属性、结构完全相同的子表。垂直划分则是将一张基本表划分为多张子表,每张子表包含的属性是原基本表的子集。
分区表是将表中的数据按水平方式划分成不同的子集,这些数据子集存储在数据库的一个或多个文件组中。
分区表是从物理上将一个大表分成几个小表,但从逻辑上来看还是一个大表。对于用户而言,所面对的仍然是一个大表,用户只要对大表进行操作就可以了,数据库管理系统会自动对小表进行操作
聚集索引键值的逻辑顺序决定表中对应行的物理顺序。一个表或视图只允许同时有一个聚集索引。
聚集索引和非聚集索引的创建与顺序无关,
SQL Server数据库组成 SQL Server将数据库映射为一组操作系统文件,分为数据文件和日志文件。
其中:数据文件分为主要数据文件(每个数据库有且只有一个)、次要数据文件(可无可有,个数无限制)。
每个数据库必须至少有一个事务日志文件,也可以有多个事务日志文件。
SQL Server有两种类型的文件组:主文件组(包含主要数据文件和任何没有明确分配给其他文件组的其他数据文件)和用户定义的文件组(用户可以创建自己的文件组,以将数据文件组织起来,便于管理和数据分配)。
说明:
1)日志文件不包括在文件组内。
2)一个文件不能属于多个文件组
3)如果文件组中有多个文件,则它们在所有文件被填满前不会自动增长,而填满后这些文件会循环增长。
角色是一组具有相同权限的用户集合。用户定义的角色属于数据库一级的角色,用户定义的角色的成员可以是数据库的用户,也可以是用户定义的角色。只要权限没有被拒绝过,则角色中成员的权限就是其所在角色的权限加上他们自己所具有的权限
安全控制机制 Oracle的安全控制机制可分为数据库级的安全控制、表级、行级和列级的安全控制。
数据库级的安全性通过用户身份认证和授予用户相应系统权限来保证,而表级、行级、列级的安全性是通过授予或回收对象特权保证的。
Oracle数据库中的用户按其操作权限大小可分DBA用户和普通用户
身份验证模式 SQL Server 2008的身份验证模式有"Windows身份验证模式"和"混合身份验证模式"两种。混合身份验证模式是指SQL Server允许Windows授权用户和SQL授权用户登录到SQL Server数据库服务器。
当登录账户成为数据库中的合法用户之后,该账户除了具有一些系统视图的查询权限之外,并不对数据库中的用户数据和对象具有任何操作权限,因此,下一步就需要为数据库中的用户授予数据库数据及对象的操作权限,
db_datereader角色 该角色是固定数据库角色,是定义在数据库级别上的,而且存在于每个数据库中。用户不能添加、删除或更改固定数据库角色 db_datereader。具有查询数据库中所有用户数据的权限
db_datawriter角色 db_datawriter是固定数据库角色之一,具有插入、删除和更改数据库中所有用户数据的权限。
sa系统管理员角色系统管理员在数据库服务器上具有全部的权限。每个数据库管理系统在安装好之后都有自己默认的系统管理员,SQL Server 2008默认的系统管理员是“sa”。在安装好之后也可以授予其他用户具有系统管理员的权限。
运行维护与优化 数据库重构和重组 数据库重组是指按照系统设计要求对数据库存储空间进行全面调整,如调整磁盘分区方法和存储空间、重新安排数据的存储、整理回收碎块等,以提高数据库性能。
数据库的重构是指由于数据库应用环境的不断变化,增加了新的应用或新的实体,取消了某些应用,有的实体与实体间的联系也发生了变化等,使得原有的数据库设计不能满足新的需求,此时需要调整数据库的模式和内模式。
数据库的重组并不修改数据库原有设计的逻辑结构和物理结构,而数据库的重构则不同,它可以部分修改数据库的模式和内模式。
根据监控分析实现的方法不同,监控分析机制分为两种,一种是由数据库系统建立的自动监控机制,另一种是由管理员手动实施的监控机制。
根据监控对象的不同,监控分析可以分为两种:
(1)对数据库架构体系的监控
主要监控内容:空间基本信息、空间使用率与剩余空间大小、空间是否具有自动扩展的能力、哪些表的扩展将引起空间的扩展,以及段的占用空间与区间数等。
(2)对数据库性能的监控
主要监控内容:数据缓冲区的命中率、库缓冲、用户锁、锁与等待、回滚段、临时段使用情况、索引的使用情况、等待事件和共享池等。
用户登录次数及执行的语句不属于监控内容
数据库运行维护工作主要包括数据库的转储和恢复;数据库的安全性和完整性控制;数据库性能的监控分析和改进;数据库的重组和重构。其中新建数据库用户属于数据库的安全性和完整性控制的一项功能。
索引的使用索引的使用要恰到好处,其使用原则一般如下:
①经常在查询中作为条件被使用的列,应为其建立索引。
②频繁进行排序或分组的列,应为其建立索引。
③一个列的值域很大时,应为其建立索引。
④如果待排序的列有多个,应在这些列上建立复合索引。
⑤可以使用系统工具来检查索引的完整性,必要时进行修复。另外,当数据库表更新大量数据后,删除并重建索引也可以提高查询速度
水平分割是对一张表在水平方向分割,分割后得到的表结构相同,查询时需要使用UNIOn运算;垂直分割则是对一张表在垂直方向分隔,分割后每张表中除主码列外,其他列均不同,查询时需要使用JOIN运算。
分割的目的是提高性能。
事务内部故障
预期的事务内部故障 解决方法: 事务回滚 非预期的事务内部故障 事务故障的恢复由系统自动完成
系统故障
又称软故障 解决方法:重启后undo(撤销)所有未提交的事务;redo(重做)所有已提交的事务
介质故障
又称硬故障 容错策略:软件容错和硬件容错
计算机病毒故障
解决方法:防火墙,杀毒软件,数据库备份文件数据库备份设备
数据库备份设备可以是磁带也可以是磁盘,数据库备份设备可以为本地设备,也可以使用远程网络设备。
SQL Server支持两种备份方式,一种是先建立备份设备,然后再将数据库备份到备份设备上,这样的备份设备称为永久备份设备;另一种是直接将数据库备份到物理文件上,这样的备份设备称为临时备份设备。
创建备份设备的 T-SQL存储过程为sp_addumpdevice。
事务日志备份 事务日志备份仅用于完整恢复模式和大容量日志恢复模式,它并不备份数据库本身,只备份日志记录,而且只备份从上次备份之后到当前备份时间发生变化的日志内容。但是不允许对大容量操作日志备份进行时点恢复。
结尾日志备份在出现故障时进行,用于防止丢失数据,可以包含纯日志记录或者大容量操作日志记录
数据转储/数据备份 静态转储保证了数据的有效性,却是以降低数据库的可用性为代价的;而动态转储虽然提高了数据库的可用性,但数据的有效性却可能得不到保证。
为了保证数据的一致性,需使用日志文件和动态转储结合使用。在制定备份策略时,需要考虑备份空间、时间等因素。
为了既能保证数据的有效性又不会降低数据库的可用性,需要引入日志文件,用它记录转储期间各事务对数据库的修改活动记录,然后使用动态转储的备份副本加上日志文件就可以将数据库恢复到某一时刻的正确状态。
完全转储是对数据库中所有数据进行转储,需占用较多的时间和空间。转储速度并不快
差量转储是对最近一次数据库完全转储以来发生的数据库变化进行转储。差量转储和完全转储相比速度快,占用空间小;差量转储和增量转储相比速度慢、占用空间多,但是恢复速度快。
增量转储只复制上次转储后发生变化的文件或数据块。增量转储所需的时间和空间都比较短,但增量转储数据只能和完全转储配合,才能对数据库进行恢复。增量转储的恢复时间比完全转储要长。
转储速度:增量转储>差量转储>完全转储
存储空间占用:完全转储>差量转储>增量转储
恢复时间:增量转储>完全转储 增量转储>差量转储
数据库恢复模式 通常,对于用户数据库,简单恢复模式只用于测试和开发数据库,或用于主要包含只读数据的数据库(如数据仓库),这种模式并不适合生产系统,因为对生产系统而言,丢失最新的更改是无法接受的。
可以使用alter database语句对数据库恢复模式进行修改
数据库备份内容、备份时间 在SQL Server 2008系统数据库中,只有tempdb数据库不需要备份,其他的都需要备份。tempdb只是一个临时数据库,每次SQL Server启动时都会重新新建tempdb数据库。
对于SQL Server的系统数据库(不包括tempdb数据),一般是在进行了修改之后立即做备份比较合适。比如对master数据库的备份,通常在执行了创建、修改或删除数据库的操作,或是更改了服务器或数据库的配置、建立或更改登录账户等操作后,都应对它进行备份。
对用户数据库应该采用周期性的备份方法,至于多长时间备份一次,与数据的更改频率和用户能够允许的数据丢失多少有关。但在进行了下列操作后,最好能立刻对用户数据库进行备份:
(1)创建数据库之后,或者在数据库中批量加载了数据之后。
(2)创建索引之后。
(3)执行了清理事务日志的操作之后。
(4)执行了大容量数据操作之后。
事务日志备份并不备份数据库本身,它只备份日志记录,而且只备份从上次备份之后到当前备份时间发生变化的日志内容
大规模数据库架构 XML 数据库与传统数据库相比,XML数据库具有以下优势:
(1)XML数据库能够对半结构化数据进行有效的存取和管理。如网页内容就是一种半结构化数据,而传统的关系数据库对于类似网页内容这类半结构化数据无法进行有效的管理。
(2)提供对标签和路径的操作。传统数据库语言允许对数据元素的值进行操作,但不能对元素名称进行操作,半结构化数据库提供了对标签名称的操作,包括对路径的操作。
(3)当数据本身具有层次特征时,由于XML数据格式能够清晰表达数据的层次特征,因此XML数据库便于对层次化的数据进行操作。XML数据库适合管理复杂数据结构的数据集。
现阶段在现实环境中,一边使用的是原有的关系数据库厂商在其传统商业产品中进行了相关的扩充,使其能够处理XML数据的产品。
数据分片有四种基本方法:
(1)水平分片是在关系中从行的角度(元组)依据一定条件划分为不同的片断,关系中的每一行必须至少属于一个片断,以便在需要时可以重构关系。
(2)垂直分片是在关系中从列的角度(属性)依据一定条件分为不同的片断,各片断中应该包含关系的主码属性,以便通过连接方法恢复关系。
(3)导出分片是导出水平分片,分片的依据不是本关系属性的条件,而是其他关系属性的条件。
(4)混合分片指以上三种方法的混合。
BigTable表的索引是行关键字、列关键字和时间戳,每个单元由行关键字、列关键字和时间戳共同定位。
在BigTable中,不仅可以随意地增减行的数量,同在一定的约束条件下,还可以对列的数量进行扩展。
BigTable数据模型的特点是:
(1)表中的行关键字可以是任意的字符串。
(2)列族是由列关键字组成的集合,是访问控制的基本单位。
(3)时间戳记录了BigTable中每一个数据项所包含的不同版本的数据的时间标识。
分片透明性是指数据分片是用户无需考虑的,完全透明的,在编写程序时用户只需要对全局关系进行操作,是最高级别的透明性;
位置透明性是指数据分片的分配位置对用户是透明的,用户编写程序时只需要考虑数据分片情况;
局部数据模型透明性,使用户在编写程序时不但要了解全局数据的分片情况,还要了解各片断的副本复制情况及各片断和它们副本的场地位置分配情况。
所以三种级别从高到低的排序是:分片透明性、位置透明性、局部透明性。
分布式数据库最基本特征 本地自治、非集中式管理以及高可用性是分布式数据库最基本的特征。
数据划分轮转法保证了元组在多个磁盘上平均分配,最适合扫描整个关系的应用,负载均衡,并行性好,但是点查询和范围查询效率很低。
散列划分使用散列函数,根据一个或多个属性进行散列**,适合点查询,对于顺序扫描也非常高效**,但是对散列函数的优劣依赖很大。
范围划分有利于范围查询以及点查询,但是也可能引起数据分布不均匀,导致并行处理能力下降。
快照是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。它反映的是某个时间点内的数据,该数据具有不可以改变性。而商场商品销售表、电信公司通话详单属于动态数据,不适合用快照的方式获取数据
快照适合数据更新变化量少的数据
元数据元数据是关于数据的数据,或者叫做描述数据的数据,它描述了数据的结构、内容、链和索引等项的内容。
数据仓库的数据特征数据仓库中数据特征包括面向主题性,集成性,不可更新性,时间特性。
其中不可更新并不意味着不再向数据仓库追加新的数据,只是一般不对数据仓库内的原始数据进行修改,数据的载入和更新通常是以批量方式进行操作。
时间特性是指随着时间的推移,部分数据不再需要,将会被删除,但不是像操作型数据库那样直接删除。
数据仓库四个特点:
1、主题性:从实际需求出发,具有较高的抽象性,数据可用性比OLTP较为宽松。
2、集成性:需要将数据抽取、转换、清理、装载。
3、稳定性:是面向决策支持应用主题的,数据进入数据仓库后不允许修改。
4、动态性:数据需要定期更新。
分类器的构造方法有统计方法、机器学习方法、神经网络方法等。
统计方法包括贝叶斯法和非参数法;
机器学习方法包括决策树法和规则归纳法;
神经网络方法主要是BP算法。
数据库三级填空题 数据仓库与数据挖掘关键字UNIQUE是用来注明该索引是唯一索引,关键字NONCLUSTERED是用来注明该索引是非聚集索引,关键字CLUSTERED是用来注明该索引是聚集索引。
创建索引的语法格式为:
CREATE [UNIQUE][CLUSTERED|NONCLUSTERED] INDEX index_name ON
定义架构,命令词为create schema
SELECT INTO语句表示从一个表中选取数据,然后把该数据插入到另一个表中。该语句结构通常用于创建表的备份复件或者用于对记录进行存档。该语句使用时要求目标表不存在,因为在插入时会自动创建。
对于已经存在的表,一般使用INSERT INTO语句插入数据,通常有两种方式,一种是插入一个元组,另一种是插入查询结果。
SELECT基本语法格式是
SELECT查询内容
FROM表名
WHERe 条件表达式
GROUP BY 待分组的列名
HAVINg 列名
ORDER BY 待排序的列名
SQL Server提供了四个排名函数**:RANK、DENSE_RANK、NTILE和ROW_NUMBER**,其中**RANK()**函数返回结果集中每个分区内行的序列号,每个分区的第一行从1开始。函数返回结果集中每行数据在每个分区内的排名,并且每个分区内的排名从1开始,但排名中间数值可能有间断
DENSE_RANK()函数与RANK()函数的作用基本一样,使用方法也一样,唯一的区别是DENSE_RANK()的函数排名中间没有任何间断,即该函数返回的是一个连贯的整数值。
**[]**匹配指定范围内或者属于方括号所指定的集合中的任意单个字符;
**_**匹配一个字符;
**[^]**匹配不在方括号之间指定的范围或集合内的任何单个字符;
**%**匹配包含零个或多个字符的任意字符串。
SQL Server提供了两种开窗函数:排名开窗函数和聚合开窗函数。PARTITION BY:将结果集划分为多个分区,OVER子句用于确定在应用关联的开窗函数之前对行集的分区和排序。
外连接是SQL语句多表连接查询方法之一,包括左外连接(left join或left outer join)、右外连接(right join或right outer join)、完全外连接(full join或full outer join)。