三级数据库知识点总结

三级数据库知识点总结
一、数据库的基本知识
1.数据库系统(DBS):主要提供应用数据的组织、存储、维护、访问等数据管理功能。
2,。数据库应用系统(DBAS):不仅为用户提供数据管理功能,还根据具体应用领域业务规则,通过数据库应用程序,实现了更为复杂的数据处理功能。
3.数据库应用系统设计与开发:
(1)根据具体应用领域数据管理和处理需求,设计应用数据在数据库中的组织和存储方式,即设计数据库模式或结构。
(2)数据库的三级模式:由外模式,模式,内模式构成。外模式是用户可见的部分数据的存在形式;模式可以等价为全体数据逻辑结构且用户不可见,是三级模式的中间部分;内模式对应数据库的物理结构和存储方式。
4.软件开发方法
(1)瀑布模型(也称为软件生命周期模型):项目规划、系统分析、总体设计、详细设计、编码调试与集成测试、运行维护阶段。
(2)快速原型模型:快速分析、设计构造原型、运行原型、评价原型、改进原型。
(3)螺旋模型:项目规划、风险评估、工程实现、用户评估。
5.数据库应用系统(DBAS)
(1)面向数据管理和数据处理的复杂软件系统
(2)活动组成:项目规划、需求分析、系统设计、实现与部署、运行与维护
6.规划与分析
(1)系统规划与定义:任务陈述、确定任务目标、确定系统范围与边界、确定用户视图
(2)可行性分析:技术可行性、经济可行性、操作可行性、开发方案选择
(3)项目规划:项目团队、项目环境、项目活动、成本预算、进度计划
7.需求分析:需求获取(面谈、实地考察、问卷调查、查阅资料),需求分析(标示问题、建立需求模型、描述需求、确认需求),需求描述与规范说明、需求验证
(1)数据需求分析:数据字典(数据项、数据结构、数据流、数据存储、处理)
(2)功能需求分析{
(3)性能需求分析:数据操作或数据访问相应时间、系统吞吐量(每秒事务数TPS)、允许并发访问的最大用户数、每TPS代价值
(4)其他需求分析:存储需求分析、安全性能需求分析、备份与恢复需求分析
(5)需求分析方法
①DFD需求建模方法(也被称为过程建模和功能建模方法)(自顶向下):数据流、处理、数据存储、外部项(也称数据源或数据终点)
②IDEF0(自顶向下):矩形框(代表功能活动)和箭头
8.系统设计
(1)概念设计:数据库概念模型设计(ER方法)、系统总体设计
(2)逻辑设计:数据库逻辑结构设计(关系模型、层次模型、网状模型)、数据库事务概要设计(read、write两个元操作)、应用程序概要设计
(3)物理设计:数据库物理结构设计(文件形式存放)、数据库事务详细设计、应用程序详细设计
9.实现与部署:建立数据库结构,数据加载,事务和应用程序的编码及测试,系统集成、测试与试运行,系统部署
10.运行管理与维护
(1)日常维护:备份与恢复、完整性维护、安全性维护、存储空间管理、并发控制
(2)监控与分析:数据采集与统计、操作分析、基准程序评估
(3)性能优化调整:查询调整与优化、索引调整、事务调整、模式调整、参数调整、硬件调整与升级、应用程序优化
(4)系统进化:应用程序升级、数据库重组、DBMS和OS升级
二、数据库结构设计
1.数据库概念设计:
(1)明确建模目标
(2)定义实体集(分类标识、概括命名)
(3)定义联系(主要工作:表示依赖、命名联系及关于联系的说明)
(4)建立信息模型(ER方法,构造ER模型)
(5)确定实体集属性
(6)对信息模型进行集成与优化
2.ER建模方法(实体联系方法)
(1)实体或实例(也称为实体集实例或实例)
(2)实体集(矩形框表示)
(3)属性:每个属性的取值范围称为域。属性的具体取值称为属性值。(椭圆或圆角矩形表示)
(4)码:实体集中能唯一标识每一个实例的属性或属性组称为该实体集的码
(5)联系:联系描述现实世界中实物之间的联系(菱形表示)
①一对一联系(1:1))
②一对多联系(1:n)
③多对多联系(n:m)
3.IDEF1X建模方法
(1)实体集

(2)联系:标定型联系、非标定型联系、分类联系、非确定联系
2.数据库逻辑设计
(1)任务:把数据库概念设计的结果(ER模型),转换为具体的数据库管理系统支持的数据模型。数据库逻辑设计是面向机器世界的,这个阶段将按照具体数据库管理支持的数据模型来组织和存储数据,包括定义和描述数据库的全局逻辑结构、数据之间的关系、数据的完整性及安全性要求等。
(2)目标:得到实际的数据库管理系统可处理的数据库模式,各模式结构合理,数据之间不存在不合理的数据依赖关系,且满足各类应用的处理和使用要求为数据库的物理设计及数据库搞笑、正确地运行打下基础。
(3)优化关系模式
1NF:每个属性都不可再分割
2NF:满足1NF消除了非主属性对码的部分函数依赖
3NF:满足2NF,其次非主属性之间不存在函数依赖(即传递依赖)
3.数据库物理设计
(1)目的是将数据库的逻辑描述转换为实现技术规范,其目标是设计数据存储方案,以便提供足够好的性能并确保数据库的完整性、安全性和可恢复性。
(2)数据库的物理结构:数据库中的应用数据是以文件形式存储在外设存储介质(如磁盘)上的,文件在逻辑上被组织成记录的序列,也就是说,每个DB文件可以看作是逻辑记录的集合。
(3)索引:索引技术的关键是建立记录域取值到记录的物理地址间的映射关系,这种映射关系成为索引
有序索引:聚集索引和非聚集索引,稠密索引和稀疏索引,主索引和辅索引,唯一索引,单层索引(线性索引)和多层索引(B树和B+树索引)
散列索引(也称为哈希索引机制):利用一个散列函数实现记录域取值到物理地址间的直接映射关系。
(4)物理设计内容:
①数据库逻辑模式描述(关系模式及其视图的转换):面向目标数据库描述基本表和视图、设计基本表业务规则
②文件组织与存取设计:
堆文件:数据量很少,并且插入、删除、更新等操作非常频繁;向新建表批量加载数据
顺序文件:支持基于查找码的顺序访问;也支持快速的二分查找
索引文件
散列文件:基于散列域值得等值匹配;访问顺序是随机的也用散列文件
③数据分布设计(水平划分和垂直划分)
④确定系统配置
⑤物理模式评估(时间、空间、维护代价等方面)
三、数据库应用系统功能设计与实施
系统设计:概要设计、逻辑设计、物理设计
功能设计:总体设计、详细设计
数据库事务功能设计:事务概要设计、事务详细设计
总体上按照DBAS生命周期模型:
1.DBAS总计设计
(1)DBAS体系结构设计
客户端/服务器(C/S)结构(胖客户端):人机交互功能、多个客户端应用提供共享的数据管理功能、通过网络访问多个不同数据库
浏览器/服务器(B/S)结构(瘦客户端):表示层(Web浏览器)、功能层(Web应用服务器)、数据层(数据库服务器)
(2)DBAS软件总体设计
(3)软硬件选型与配置设计
(4)业务规则初步设计
2.DBAS功能概要设计
表示层概要设计:人机界面设计
业务逻辑层概要设计:高内聚,松隅合
数据访问层概要设计:事务的设计(概要设计、详细设计)
3.DBAS功能详细设计
表示层详细设计:原型迭代法
业务逻辑层详细设计:UML的类图,活动图,协作图(通信图)
4.应用系统安全构架设计
(1)数据安全设计
数据库的安全性保护:用户身份鉴别、权限控制、视图机制
数据库的保护(约束):列(值的类型,范围,精度,排序)、元组(记录各属性之间关系)、关系
数据库的并发控制:排它锁(x锁)和共享锁(s锁)
数据库的备份与恢复:双机热备、数据转储(也称为数据备份)、数据加密存储
数据加密传输:数字安全证书、对称密钥加密、数字签名、数字信封
(2)环境安全设计:漏洞与补丁、计算机病毒防护(安装杀毒软件,计算机实时监控)、网络环境安全(防火墙、入侵检测系统(IDS)、网络隔离(物理隔离和逻辑隔离))、物理环境安全(UPS也被称为不间断电源)
(3)制度安全设计
5.DBAS实施
创建数据库:初始空间大小、数据库增量大小、访问性能
数据装载:筛选数据、转换数据格式、输入数据、校验数据
编写与调试应用程序
数据库系统试运行:功能测试、性能测试、系统联调
四、UML(统一建模语言)与数据库应用系统
UML语义的四层建模概念框架:元元模型层、元模型层、模型层、用户模型层
UML包括以下五种视图:结构视图、实现视图、行为视图、环境视图和用例视图
{

  1. DBAS业务流程与需求表达
    (1)业务流程与活动图
    活动图:主要用于描述系统,用例和程序模块中逻辑流程的先后执行次序,并行次序
    一张活动图只有一个起点,可有多个终点
    活动之间的转换由箭头表示,箭头表示执行方向,其标注为执行下一个活动的条件,加粗直线为同步条
    (2)系统需求与用例图
    用例模型由用例图构成。用例模型由用例、角色(与系统进行交互的外部实体)和系统(边界以内的区域)三部分组成。
    一个角色可以执行多个用例,在用例图中,用通用化关系来描述角色之间的行为。通用化关系是指把某些角色的共同行为抽取出来作为通用行为,这些通用行为构成他们的超类(用带空心三角形表示)。
    用例与角色之间有连接关系,此关系属于关联,又称作通信关联
    用例之间也有关系,包括扩展(一个用例增加新内容成为另一个用例,<>)、使用(一个用例使用另一个用例<>)、组合(把相关用例打包当作整体)。
  2. DBAS系统内部结构的表达
    2.1系统结构与类图
    (1)属性(可见性 名称:类型=缺省值{约束性})
    可见性:公有(+)、受保护(#)、私有(-)
    缺省值:属性的初始值
    (2)操作(可见性 名称(参数表):返回类型表达式{约束性})
    (3)关系
    关联:通常情况下关联是双向的(用直接连接)、导航关联(单向,带有方向的箭头)、聚集(共享聚集,空心菱形、组成,实心菱形)
    通用化(继承):带实线的空心三角形
    依赖:Y=f(x)
    精化:带虚线的空心三角形
    2.2系统结构与顺序图(强调时间)
    顺序图主要用于描述系统内对象之间的消息发送和接收序列,纵轴表示时间的持续过程,横向表示对象,每个对象用矩形框表示,纵向的虚线表示对象在序列中的执行情况,称为对象的“生命线”。
    2.3系统结构与通信图(强调空间)
    通信图中包含一组对象,并在图中展示这些对象之间的联系以及对象间发送和接收的信息
    3.DBAS系统微观设计的表达
    微观设计与对象图
    微观设计与状态机图
    微观设计与时间图
    4.DBAS系统宏观设计的表达
    宏观设计与包图(可见性:私有、保护、公有和实现,缺省的可见性为公有)
    宏观设计与交互概述图
    宏观设计与复合结构图
    5.DBAS系统实现与部署的表达
    系统实现与组件图(组件图展示了一组组价之间的组织和依赖,用于对源代码、可执行的发布、物理数据库等的系统建模。组件是逻辑设计中定义的概念和功能在物理架构中的实现)
    系统实现与部署图
    五、高级数据查询
    1.使用TOP限制结果集
    查询前n个数的结果:TOP n [precent] WITH TIES
    2.使用CASE函数
    简单CASE函数:WHEN 简单表达式 THEN 结果表达式
    搜索CASE函数:
    CASE
    WHEN 布尔表达式 THEN 结果表达式
    3.将查询结果保存到新表中
    SELECT 查询列表序列 INTO <新表名>(可以是临时表,局部临时表#(只能在当前连接中使用),全局临时表##)
    4.并运算(UNION)(ALL表示在结果集中包含所有查询语句产生的全部记录,包括重复的记录,若没有指定ALL则默认是删除合并后结果集中的重复记录)
    JOIN 操作是水平地合并数据(添加更多的列)
    UNION是垂直地合并数据(添加更多的行)
    5.交运算(INTERSECT)
    SELECT 语句1 INTERSECT SELECT 语句2
    6.差运算(EXCEPT)
    7.相关子查询(聚合函数不能出现在WHERE子句中)
    使用子查询进行基于集合的测试(先执行子查询再执行外层查询):WHERE 表达式 [NOT] IN(子查询)
    使用子查询进行比较测试(不相关子查询或嵌套子查询):WHRER 表达式 比较运算符(子查询)
    使用子查询进行存在性测试(先执行外层查询再执行内层查询):WHERE [ONT] EXISTS(子查询)
    DISTINCT:去掉重复行
    8.其他形式子查询
    (1)替代表达式的子查询:AS
    (2)派生表(有时也称为内联视图):类似于临时表
    9.其他一些查询功能
    (1)开窗函数(分区或分组计算的函数)
    OVER子句与聚合函数结合使用:SELECT----SUM(列)OVER(PARTITION BY----)AS’ —‘
    OVER子句与排名函数一起使用
    RANK()函数:函数并不一定返回连续整数
    DENSE_RANK()返回连续的整数值
    NTILE()返回所属组的编号
    ROW_NUMBER()返回结果集中每个分区内的序列号,每个分区的第一行从1开始
    (2)公用表表达式(CTE,不允许出现重复的列名)
    WITH—AS(SELECT语句)
    可以在一个WITH子句中定义多个CTE,也可以在一个查询中多次引用同一个CTE
    六、数据库及数据库对象
    1.SQL Server数据库概述
    (1)系统数据库:
    Master:记录所有系统级信息包括实例范围的元数据(例如登录账户)、端点、连接服务器和系统配置设置
    Msdb:供SQL Server代理服务调度报警和作业以及记录操作员时使用,保存关于调度报警、作业、操作员等信息。作业的执行不需要任何人人工干预
    Tempdb:临时数据库,每次启动会重新创建
    Resource:只读数据库
    (2)数据库的组成
    数据文件:主要数据文件(.mdf,只有一个,且不能小于3MB),次要数据文件(.ndf,0个或多个)
    事务日志文件.ldf
    数据库存储空间的分配:1页有8KB,行不能跨页存储
    (3)数据库文件组:主文件组(PRIMARY),用户定义文件组(FILEGROUP)
    (4)数据库文件的属性:文件名及其位置、初始大小、增长方式、最大大小
    2.创建数据库
    SELECT DATABASE database_name
    ON PRIMARY
    (NAME=----,
    FILENAME=’----‘,
    SIZE=—,
    MAXSIZE=----,
    FILEGOWTH=----)
    LOG ON(

)
3.修改数据库
(1)扩大数据中已有文件的大小
(2)为数据库添加新的文件
ALTER DATABASE —
ADD FILE(添加新的数据文件)
ADD LOG FILE(添加新的日志文件)
MODIFY FILE(指定要修改的文件)
4.收缩数据库空间
(1)收缩整个数据库的大小:DBCC SHRINKDATABASE
(2)收缩指定文件的大小:DBCC SHRINKFILE
5.添加和删除(REMOVE FILE)数据库文件
6.分离(EXEC sp_detach_db ‘ ‘,’ ture|false‘)和附加(ON—FOR)数据库
7.架构
定义架构:create schema(架构)----authorization(授权)----
删除架构drop schema <架构名> {|}
Cascade:删除架构的同时将该架构中的所有架构对象一起全部删除
Restrict:如果被删除的架构中包含架构对象,则拒绝删除此架构
8.分区表(水平方式)
创建分区函数:create patition function----as rangeleft|right for values----
创建分区方案:create patition scheme—as partition—to----
9.索引
(1)创建索引:create [unique] [clustered] [nonclustered] index—on—
(2)删除索引:drop index----
10.索引视图:建有唯一聚集索引的视图称为索引视图,也称为物化视图。
(1)适合建立索引试图的场合:
如果很少更新基础数据,则索引视图的效果更佳
如果经常更新基础数据,则维护索引视图的成本可能超过使用索引视图带来的性能收益
如果基础数据以批处理的形式定期更新,但在更新之间主要作为只读数据进行处理,则考虑在更新前删除所有索引视图,然后再重建索引视图,这样做可以提高更新的性能。
索引视图可以提高下列查询类型的性能:处理大量行的连接和聚合,许多查询经常执行的连接和聚合操作。
索引视图通常不会提高下列查询类型的性能:具有大量写操作的OLTP系统,具有大量更新操作的数据库,不涉及聚合或连接的查询,GROUP BY列具有高基数度的数据聚合(高基数度表示列包含许多不同的值)
(2)定义索引视图:
定义索引视图时,视图不能引用任何其他视图,只能引用基本表。
视图引用的所有基本表必须与视图位于同一个数据库,并且所有者也与视图相同
必须使用schemabinding选项创建索引视图
视图中的表达式引用的所有函数必须是确定的
对视图创建的第一个索引必须是唯一聚集索引,之后再创建其他的非聚集索引
定义视图
Create view — with schemabinding as (select语句)go
在视图上定义一个唯一聚集索引
Create unique clustered index — on ---- go
六、数据库后台编程技术
1.存储过程(系统存储过程、用户自定义存储过程、扩展存储过程)
创建存储过程create proc|procedure ---- as----
执行存储过程:exce — ---
删除存储过程:drop proc -----
2.用户定义函数(标量函数、内联表值函数、多语句表值函数)
(1)创建和调用标量函数(返回单个数据值的函数)
定义标量函数:create function— as begin — return — end
调用标量函数(函数拥有者名和函数名必须要有):select ----
(2)创建调用内联表值函数(返回值是一个表,该表的内容是一个查询语句的结果)
创建内联表值函数:create function---- returns(表名)as return(select语句)
调用内联表值函数:select * from—
(3)创建和调用多语句表值函数(返回一个表,表中的内容类似于存储过程
创建多语句表值函数:create function—returns— as begin—return end
调用多语句表值函数:select * from----
(4)删除用户自定义函数:drop function----
3.触发器(DML、DDL和登录触发器三种)
触发器是一种特属于的存储过程,其特殊性在于它不需要由用户来直接调用,而是在对表中的数据进行更新,插入或删除操作时自动触发执行的。触发器通常用于保证业务规则和数据完整性,其主要优点是用户可以用编程的方法来实现复杂的处理逻辑和商业规则,增强了数据完整性约束的功能。
创建触发器:create trigger—on—as—
创建后触发型触发器:create trigger—on—asif exists—begin rollback—end else----
创建前触发型触发器:create trigger —on—as if not exists----
删除触发器:drop trigger----
4.游标(cursor)
声明游标:declare----
打开游标:open----(只能打开已声明的游标)
提取游标:fetch—from
关闭游标:close—
释放游标:deallocate----
七.安全管理
(1)安全性是指保护数据以防止不合法的使用和造成数据被泄露、更改和破坏(保护数据以防止不合法的用户故意造成的破坏)
(2)完整性是指数据的准确性和有效性(保护数据以防止合法用户无意中造成的破坏)
数据库安全的威胁:可用性的损失、机密性数据的损失、私密性数据的损失、偷窃和欺诈、意外的损害
(3)安全控制模型:身份验证、操作权限控制、文件操作控制、加密存储与冗余
授权和认证:
(4)授权和认证:授权是将合法访问数据库或数据对象的权限授予用户的过程。认证是一种坚定用户身份的机制。
(5)存取控制
自主存取控制:权限种类(语句权限、对象权限),用户分类(系统管理员、数据库对象拥有者、普通用户)
强制存取控制:
敏感度标记:绝密、秘密、可信、公开。
主体的敏感度标记被称为许可证级别
客体的敏感度标记被称为密级:仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。
橘皮书和紫皮书两份文献给出了通用安全性分级模式,共定义了D、C、B和A四类安全级别,从D类到A类级别依次增高。D类提供最小保护,C类提供自主保护,B类提供强制保护,A类提供验证保护。
(6)审计跟踪:实质上是一种特殊的文件或数据库,系统在上面自动记录用户对常规数据的所有操作。
1.SQL Server的安全控制
Windows身份验证模式
混合身份验证模式(SQL Server允许Windows授权用户和SQL授权用户登录到SQL Server数据库服务器
建立登录账户:create login with — from—windows----with ---- password—
修改登录账户属性:alter login—
删除登录账户:drop login—
建立数据库用户:create user— login----
Guest用户:启用grant connect to—,禁用(回收)revoke connect to—
删除数据库用户:drop user----
角色:系统角色、用户定义角色
Oracle的安全控制机制可分为数据库级的安全控制、表级、行级、列级
运行状态监控与分析:自动监控机制、手动监控机制
事务内部故障分为预期和非预期的,其中大部分是非预期的(运算溢出故障、并发事务死锁故障、违反了某些完整性限制而导致的故障等)

你可能感兴趣的:(三级数据库知识点总结)