[转]四级数据库笔记-程序员宅基地

技术标签: 学习笔记  优化  磁盘  服务器  存储  数据库  sql server  

引言
   1. 数据是描述现实世界事物的符号记录,是用物理符号记录下来的可以识别的信息。
  数据是信息的符号表示,是载体;信息是数据的语义解释,是内涵。
   2. 数据模型是对现实世界数据特征的抽象,是数据库系统的形式框架,用来描述数据的一组概念和定义,包括描述数据、数据联系、数据操作、数据语义以及数据一致性的概念工具。
  满足三条件:比较真实地模拟现实世界;易于人们理解;易于计算机实现
  三个组成要素:数据结构(静态,数据对象本身结构及之间的联系)、数据操作(对数据对象操作及操作规则的集合)和完整性约束(语义约束:数据模型、数据内部及之间联系)
   3. 模式是对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,也称为逻辑模式或概念模式。
  外模式是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示,也称为子模式、用户模式或用户视图。
  内模式是对数据库中数据的物理结构和存储方式的描述,也称为物理模式或存储模式。
  当数据库模式发生变化时,通过调整外模式 / 模式间的映像关系,使得应用程序不必随之修改,从而保证数据与应用程序间的逻辑独立性,简称数据的逻辑独立性。
  当数据库数据的物理存储结构改变时,通过调整模式 / 内模式映像关系,保持数据库模式不变,使数据库系统的外模式和应用程序不随之改变,保证数据与应用程序间的物理独立性,简称数据的物理独立性。
   4. 数据库是存储在计算机内的共享数据集合,数据库管理系统是一种数据管理系统软件。数据库系统则是在计算机系统中引入数据库后的软硬件系统构成,包括了数据库、数据库管理系统和数据库应用程序。
   5. DBMS 的主要功能有数据定义、数据操纵、数据库运行管理与控制、数据库建立与维护。
   DBMS 包括查询处理器和存储管理器。查询处理器实现面向用户的查询分析处理和优化功能。存储管理器为用户和应用程序提供了访问存储在数据库文件中的应用数据的接口。
   6. 关系模型 用二维表表示实体及实体之间的联系,现实世界中的每个客观对象对应表中的一行叫做一条记录,表中的每个列(属性)描述对象类的某一特征,列的值(属性的取值)刻画和描述客观对象的某一具体的特征。
  优缺点:建立在 集合 ”“ 关系 上,严格成熟的理念基础;用关系表示实体及之间联系,简单易懂;存储路径透明,较好的数据独立性和安全保密性;查询效率低于非关系模型。

数据库应用系统生命周期
   2.1 软 件生命周期是指软件产品从考虑其概念开始,到该产品不再使用的整个时期。一般包括概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装部署及交付阶 段、运行阶段与维护阶段。数据库应用系统需求是指用户对数据库应用系统在功能、性能、行为、设计约束等方面的期望和要求:数据及数据处理、业务、性能、其 他存储安全备份与恢复等。
   2.2 数据库应用系统生命周期模型
   1. 瀑布模型原理,项目规划、需求分析、系统设计、实现与部署、运行管理与维护五部分
   2. 快速原型模型和增量模型原理,允许渐进、迭代地开发 DBAS
   3. 根据 DBAS 的软件组成和各自功能,细化 DBAS 需求分析和设计阶段,引入了数据组织与存储设计、数据访问与处理设计、应用设计三条设计主线,分别用于设计 DBAS 中的数据库、数据库事务和应用程序。
   4. 设计阶段细分为概念设计、逻辑设计、物理设计三个步骤,每一步涵盖三条设计主线。

需求分析及功能建模方法
   3.1 数据元素(列)是数据处理中的最小单位。
   3.2 DFD 图:数据流(标有名字的箭头)、处理、数据存储(横圆柱)、数据源 / 终点(棱形)
   3.3 IDEF0 图:更好地理解需求; ICOM (输入、控制、输出、机制)码;至少一个控制和输出箭头。 A-0 A0 (顶层图); A1 A11
   3.4 DFD IDEF0 的比较:结构化分析思想:自顶而下逐级细化

   1.DFD 图用箭头也叫数据流来描述数据移动的方向、数据处理之间的数据依赖关系, IDEF0 图也用箭头表示数据流,但不强调流或顺序,强调数据约束,箭头语义更丰富。
   2.DFD 模型有四种元素, IDEF0 图只有两种:箭头和活动
   3.IDEF0 图更加规范。其概念、建模方法、画图规则等均有说明和规定
   4.IDEF0 模型结构更清楚,便于理解和沟通
   3.5 结构化分析及建模方法的优点:
   1 )不过早陷入具体的细节,从整体或宏观入手分析问题,如业务系统的总体结构,系统及子系统的关系。
   2 )通过图形化的模型对象直观地表示系统完成什么功能,方便系统分析员理解和描述系统。
   3 )模型对象不涉及太多技术术语,便于用户理解模型。

数据库概念设计与数据建模
   4.1 概念设计的目的和任务:面向现实世界,理解和描述应用领域中的数据需求,分析确定系统需要存储和处理什么数据。过程:确定实体集;确定联系和联系类型;建立由信息模型表示的业务模型;确定实体集属性;优化信息模型。
   4.2 实体集描述具有相同属性特征和性质的事物集合;属性描述实体集具有的某一特征或性质
   4.3 IDEF1X :标定型(子依父实例才标定)(确定型);非标定型(确定型);分类;不确定

关系数据库逻辑设计
   5.1 关系数据库:按照二维表格组织和存储的相互关联的关系(表)的集合。
  关系数据库采用关系模型在计算机中组织、存储、处理和管理数据。
   5.2 主码约束:惟一性;最小性,不能取空值,并且取值要唯一
  外码约束:如果两个关系 R S X R 的属性或属性组,且 X 不是 R 的码,但 X S 的码,则称 X R 的外码。或者取空值,或者等于 S 中某个元组的主码的值。
   5.3 逻辑设计的内容:定义和描述数据库的全局逻辑结构、数据之间的关系、数据的完整性等
  目的:得到实际数据库管理系统可以处理的数据库模式。
  步聚: ER 图转化关系模式;优化关系模式;数据完整性设计;外模式设计
   5.4 关系模式描述关系的静态结构,由模式名、属性、完整性约束组成,关系是一个表中记录的集合,关注和强调的是值(模式实例)的集合,也是关系模式在某一时刻状态的反映。
   5.5 关系的完整性(完整性约束):对关系所满足条件的定义。作用:限定和检查数据库所含实例的合法性和正确性。静态:主码、外码、域(用户定义);动态:基于业务规则
   5.6 伪传递规则: X Y YW Z ,则 XW Z 成立。
   5.7 规 范化设计理论的主要内容是范式,即关系模式满足的条件,它是数据库逻辑设计的指南,也是衡量关系模式设计优劣的标准。目的:消除数据冗余及避免操作异常, 基本过程:对关系进行分解。一个低级范式的关系模式通过分解(投影)方法可转换成多个高一级范式的关系模式的集合,这个过程叫规范化。
   5.8 1NF R 的每一属性均不可再分;
   2NF :是 1NF 且每个非主属性完全依赖于主码。在 1 上消除非主属性对主码的部分函数依赖;
   3NF :是 1NF 且每个非主属性只依赖于主码。在 2 上消除非主属对主码的传递函数依赖。
   5.9 ER 模型转换关系模型:实体集转为同名关系;联系转为一个关系,各实体集的码及联系的属性转为关系的属性( 1 1 均可、 1 n n m n 取集);合并具有相同码的关系。

存储技术与数据库物理设计
   6.1 物理设计是在具体的硬件环境、 OS DBMS 约束下,基于逻辑设计,设计具体数据存储结构和存取方式。目的:占用空间少、访问效率高、维护代价低。主要步骤有数据库逻辑模式调整、文件组织与存取设计、数据分布设计、安全模式设计、确定系统配置、物理模式评估。
   6.2 索引技术( Indexing )是一种快速文件访问技术,它将文件记录在某个或某些域(或称为属性)上的取值与该记录的物理地址直接联系起来,提供了一种根据记录域的取值快速访问文件记录的机制。索引文件是一种利用索引技术支持快速文件访问的文件组织和存取方法。
  索引加快了查询记录却减慢了数据更新速度,本身还占用一定的存储空间。
   6.3 文件组织:如何将关系数据库中的关系映射为操作系统中的数据库文件,及管理文件。
  文件结构:如何将 DB 文件中的逻辑记录映射到物理文件的中磁盘块。
  文件存取:针对某种结构的 DB 文件,如何查、添删改其中的逻辑记录
   6.4 数据字典:数据库各类对象的描述信息、数据库管理系统的控制信息。包括关系模式信息、与视图描述有关的信息、关系的存储结构和存取方法信息、完整性约束、安全性有关的信息、数据库运行统计信息。
  作用: DBA 用来监视 DBMS 的使用情况并协助完成管理工作;一般用户可用于查阅部分数据库结构信息; DBS 运行时各子系统频繁使用以完成相应的存储和查询处理功能。
   6.5 DBMS 的三种完整性控制机制: CHECK 子句、断言、触发器
  断言语句: Create assertion 断言约束名 check (…)
   6.6 堆文件:数据量少且操作频繁;批量加载数据(先选为堆文件再调整文件结构)

  顺序文件:查询条件定义在查找码上;快速的二分查找
  散列文件:基于散列域值的等值匹配,特别是访问顺序是随机的。非精确查询;非散列域
   B -树和 B+ -树:大数据量基本表;聚焦文件:多表连接操作
   6.7 有序索引技术利用索引文件实现查找码取值到记录物理地址间的映射关系。索引文件由索引记录组成,每个记录中的索引项记录了某个特定的查找码值和具有该值的数据文件记录的物理地址。
  当需要访问数据文件中某个数据记录时,先根据查找码值查阅索引文件,找到对应的索引项,然后从索引项中找出数据记录在数据文件中的物理地址.根据这个地址访问数据记录。
   6.8 散列技术是一种快速文件访问技术,它利用散列函数实现文件记录域取值到记录物理地址间的直接映射关系。当需要访问数据文件中查找码值为 si 的某个或某些文件记录时,将 si 作为散列函数 h 的输入计算得出的散列函数输出值 h(si) 就是文件记录在数据文件中的物理地址。
   6.9 权限:允许用户对一给定的数据库对象可执行的操作(查询、添删改、新建、备份等)。

数据库应用系统功能设计
   7.1 软件体系结构:软件架构= { 构件,连接件,约束 }
   7.2 软件设计包括系统的总体结构设计、系统的过程设计、系统的数据设计三方面内容( + 人机界面设计),从工程管理的角度,分为概要设计、详细设计

   7.3 应用软件分为数据库事务和应用程序。后者一方面可以与数据库事务协调合作,另一方面还可实现与数据库访问无关的功能,如通信、人机交互。
   7.4 事务:具有逻辑独立功能的一系列操作的集合,实现了某些特定的业务规则。
   7.5 事务概要设计的核心是辨识和设计事务自身的事务处理逻辑,采用面向数据流的程序设计方法设计事务内部的数据处理流程和结构。
   7.6 C/S 结构特点:数据管理和数据处理被分在客户端和服务器上;服务器可支持多个客户端;客户端也可访问多个服务器;客户端=人机交互 + 数据处理
   B/S 结构特点:表示层, WEB 浏览器;功能层, WEB 应用服务器;数据层, DBMS 服务
  优点:实现人面交互、应用业务逻辑处理、数据管理三层分离,提高了系统的可维护性;用 WEB 浏览器可访问多个异构应用平台,解决了跨平台数据管理问题。

  sql
   8.1 sql structured query language ,结构化查询语言

   8.2 二进制字符串是用十六进制表示的, 0x 前缀
   8.3 创建表: create table table_card

事务高度与并发控制
   9.1 调度:定义在多个事务上的调度是这些事务的所有操作的一个执行序列,代表了这些操作的执行顺序;冲突操作:事务 Ti 的操作 Ii 与事务 Tj 的操作 Ij 是冲突的,当且仅当 Ii Ij 访问数据库中同一个数据项 Q ,并且 Ii Ij 中至少有一个是写操作 write(Q) ;冲突可串行:一个并发调度冲突等价于某个串行调度(判断一个并行调度是否正确)
  死锁是指数据库系统中部分或全部事务由于无法获得对需要访问的数据项的控制权而处于等待状态,并且将一直等待下去的一种系统状态。
   9.2 ACID Atomicity 原子性; Consistency 一致性; Isolation 隔离性; Durability 持久性
   9.3 1 级加锁协议要求事务 T 在修改数据项 Q 之前必须先对 Q X 锁,直到事务结束才释放该锁。事务结束包括正常结束( commit )和非正常结束( rollback )。但事务如果是只读 Q 而不对其进行修改,是不需要对 Q 加锁的。
   2 级加锁协议是在 1 级加锁协议基础上,要求事务 T 在读取数据项 Q 之前必须先对其加 S 锁,读完 Q 后可以立即释放 S 锁。
   3 级加锁协议则是在 1 级加锁协议基础上,要求事务 T 在读取数据项 Q 之前必须先对其加 S 锁,但是需要等到事务结束时才释放该 S 锁。
   9.4 2 阶 段锁协议将每个事务的执行过程分为加锁阶段和解锁阶段。在加锁阶段,事务可以申请获得数据项上的任何类型的锁,但不允许释放任何锁。在解锁阶段,事务可以 释放任何数据项上的任何类型的锁,但不能再申请任何锁。每个事务开始执行后就进入了加锁阶段。当第一次释放锁后,即转入解锁阶段。
   9.5 解决死锁主要采用死锁预防和死锁检测与恢复两类方法。
  死锁预防利用死锁预防协议,通过破坏死锁产生的必要条件来避免系统进入死锁状态。
  一次性加锁法;顺序加锁法
  死锁检测与恢复则是允许系统进入死锁状态,并且定期检查系统是否发生死锁。当发现系统发生死锁后,采取相应的恢复机制使系统摆脱死锁状态。
   9.6 活锁产生的原因是在系统非死锁状态下,某些事务由于始终无法获得对所需访问的数据项的控制权而长期等待下去,无法继续执行。
   9.7 锁粒度大:被加锁数据项少、事务并发执行度低、系统开销小;锁粒度小则反之
   9.8 基于锁的并发控制技术的原理

数据库的实施、运行和维护
   10.1 试运行:功能测试;性能测试
   10.2 数据库维护:数据库的转储和恢复;数据库的安全性、完整性控制;数据库性能的检测和改善;数据库的重组和重构
   10.3 数据库安全:行政手段制定规范;权限管理、口令等;维护多个数据副本;防及除毒
   10.4 数据库重组:按照系统设计要求对数据库存储空间进行全面调整;数据库重构:业务小范围变化需对数据库逻辑结构作必要改变。
   10.5 数据库监控分析: DBA 借助相应工具监测数据库系统的运行情况,对监测数据进行分析,评估整个系统的运行状态,为系统的安全运行和性能优化提供依据。
   10.6 数据库空间管理:数据量增加和碎片使性能降低;空间溢出会带来灾难性停机故障。
  包括:创建修改删除数据库空间、新建移动关联数据文件等。
   10.7 数据库参数调整:外部调整: CPU 、网络;调整内存分配 ( 改善程度大 ) ;调整磁盘 I/O(I/O 时间是响应时间的最大组成部分 ) ;调整竞争
   10.8 数据库查询优化:合理使用索引;避免或简化排序( Order by Group by ,磁盘排序比内存排序开销大速度慢);避免相关子查询、外连接(左右连接比内连接消耗大);存储过程
   10.9 属于 Oracle 但不属于 SQL Server 的逻辑和物理空间结构:表空间、段、区

故障管理
   11.1 故障种类:事务内部故障(事务回滚撤消修改)、系统故障(影响事务不坏数据)、介质故障(软件容错、硬件容错)、病毒
   11.2 系统故障对策:重启,撤消( UNDO )未提交的事务,重做( REDO )已提交的事务
   11.3 软件容错:备份、日志文件,利用恢复技术;硬件容错:双物理存储设备
   11.4 恢复基本原理:冗余,即所有数据均可通过存储在别处的冗余数据来重建。
   11.5 对于经常进行数据操作的数据库:完全转储 + 差异转储
   11.6 以记录为单位的日志文件:开始标记( Ti BEGIN TRANSACTION )、结束标记 (Ti COMMIT 或者 Ti ROLLBACK) 、每个事务的所有操作( Ti A 50 80
   11.7 以数据块为单位的日志文件:存放更新前和更新后的整个数据块。只有事务标识和被更新的数据块,没有操作类型和操作对象。
   11.8 日志的作用:用来进行业务故障和系统故障恢复;协助后备副本进行介质故障恢复(动态转储必用);记录操作监视行为分析问题
  登记原则:登记次序严格按并行事务执行次序;必须先写日志文件再写数据库
   11.9 检查点:最大限度减少数据库完全恢复时所必须执行的日志部分(针对系统故障)。
   11.10 数据库镜像:提高数据库可用性的解决方案(比如介质故障,两台服务器相互备份)
  优点:提供完整或几近完整的数据冗余,增强数据保护;发生介质故障时,数据不会丢失且服务不会中断,提高数据库可用性;提高镜像数据库在升级期间的可用性。
  双机互备援模式(均为主);双机热备份模式(一主一备份机)。数据库镜像可用于并发操作。
   11.11 RAID 廉价冗余磁盘阵列:(镜像冗余、)校验冗余:对成员磁盘上的数据执行异或( XOR )操作得到其校验值并存放在另外的校验磁盘上。当某个磁盘发生故障时,只须计算其他磁盘上的校验数据和数据的异或便可重新得到该磁盘的值。

sql server2000 数据库管理系统
   12.1 四个服务: sql server 核心服务;
   sql server agent :代理服务,代理定期进行的管理工作;
   dtc:distributed transaction coordinator ,分布式事务协调器,

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kougq819/article/details/6110188

智能推荐

没有U盘Win10电脑下如何使用本地硬盘安装Ubuntu20.04(单双硬盘都行)_没有u盘怎么装ubuntu-程序员宅基地

文章浏览阅读3.6k次,点赞2次,收藏2次。DELL7080台式机两块硬盘。_没有u盘怎么装ubuntu

【POJ 3401】Asteroids-程序员宅基地

文章浏览阅读32次。题面Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains K asteroids (1 <= K <= 10,000), which are conv...

工业机器视觉系统的构成与开发过程(理论篇—1)_工业机器视觉系统的构成与开发过程(理论篇—1-程序员宅基地

文章浏览阅读2.6w次,点赞21次,收藏112次。机器视觉则主要是指工业领域视觉的应用研究,例如自主机器人的视觉,用于检测和测量的视觉系统等。它通过在工业领域将图像感知、图像处理、控制理论与软件、硬件紧密结合,并研究解决图像处理和计算机视觉理论在实际应用过程中的问题,以实现高效的运动控制或各种实时操作。_工业机器视觉系统的构成与开发过程(理论篇—1

plt.legend的用法-程序员宅基地

文章浏览阅读5.9w次,点赞32次,收藏58次。legend 传奇、图例。plt.legend()的作用:在plt.plot() 定义后plt.legend() 会显示该 label 的内容,否则会报error: No handles with labels found to put in legend.plt.plot(result_price, color = 'red', label = 'Training Loss') legend作用位置:下图红圈处。..._plt.legend

深入理解 C# .NET Core 中 async await 异步编程思想_netcore async await-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏11次。深入理解 C# .NET Core 中 async await 异步编程思想引言一、什么是异步?1.1 简单实例(WatchTV并行CookCoffee)二、深入理解(异步)2.1 当我需要异步返回值时,怎么处理?2.2 充分利用异步并行的高效性async await的秘密引言很久没来CSDN了,快小半年了一直在闲置,也写不出一些带有思想和深度的文章;之前就写过一篇关于async await 的异步理解 ,现在回顾,真的不要太浅和太陋,让人不忍直视!好了,废话不再啰嗦,直入主题:一、什么是异步?_netcore async await

IntelliJ IDEA设置类注释和方法注释带作者和日期_idea作者和日期等注释-程序员宅基地

文章浏览阅读6.5w次,点赞166次,收藏309次。当我看到别人的类上面的多行注释是是这样的:这样的:这样的:好装X啊!我也想要!怎么办呢?往下瞅:跟着我左手右手一个慢动作~~~File--->Settings---->Editor---->File and Code Templates --->Includes--->File Header:之后点applay--..._idea作者和日期等注释

随便推点

发行版Linux和麒麟操作系统下netperf 网络性能测试-程序员宅基地

文章浏览阅读175次。Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。工作原理Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,c..._netperf 麒麟

万字长文详解 Go 程序是怎样跑起来的?| CSDN 博文精选-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏3次。作者| qcrao责编 | 屠敏出品 | 程序员宅基地刚开始写这篇文章的时候,目标非常大,想要探索 Go 程序的一生:编码、编译、汇编、链接、运行、退出。它的每一步具体如何进行,力图弄清 Go 程序的这一生。在这个过程中,我又复习了一遍《程序员的自我修养》。这是一本讲编译、链接的书,非常详细,值得一看!数年前,我第一次看到这本书的书名,就非常喜欢。因为它模仿了周星驰喜剧..._go run 每次都要编译吗

C++之istringstream、ostringstream、stringstream 类详解_c++ istringstream a >> string-程序员宅基地

文章浏览阅读1.4k次,点赞4次,收藏2次。0、C++的输入输出分为三种:(1)基于控制台的I/O (2)基于文件的I/O (3)基于字符串的I/O 1、头文件[cpp] view plaincopyprint?#include 2、作用istringstream类用于执行C++风格的字符串流的输入操作。 ostringstream类用_c++ istringstream a >> string

MySQL 的 binglog、redolog、undolog-程序员宅基地

文章浏览阅读2k次,点赞3次,收藏14次。我们在每个修改的地方都记录一条对应的 redo 日志显然是不现实的,因此实现方式是用时间换空间,我们在数据库崩了之后用日志还原数据时,在执行这条日志之前,数据库应该是一个一致性状态,我们用对应的参数,执行固定的步骤,修改对应的数据。1,MySQL 就是通过 undolog 回滚日志来保证事务原子性的,在异常发生时,对已经执行的操作进行回滚,回滚日志会先于数据持久化到磁盘上(因为它记录的数据比较少,所以持久化的速度快),当用户再次启动数据库的时候,数据库能够通过查询回滚日志来回滚将之前未完成的事务。_binglog

我的第一个Chrome小插件-基于vue开发的flexbox布局CSS拷贝工具_chrome css布局插件-程序员宅基地

文章浏览阅读3k次。概述之前介绍过 移动Web开发基础-flex弹性布局(兼容写法) 里面有提到过想做一个Chrome插件,来生成flexbox布局的css代码直接拷贝出来用。最近把这个想法实现了,给大家分享下。play-flexbox插件介绍play-flexbox一秒搞定flexbox布局,可直接预览效果,拷贝CSS代码快速用于页面重构。 你也可以通过点击以下链接(codepen示例)查_chrome css布局插件

win10下安装TensorFlow-gpu的流程(包括cuda、cuDnn下载以及安装问题)-程序员宅基地

文章浏览阅读308次。我自己的配置是GeForce GTX 1660 +CUDA10.0+CUDNN7.6.0 + TensorFlow-GPU 1.14.0Win10系统安装tensorflow-gpu(按照步骤一次成功)https://blog.csdn.net/zqxdsy/article/details/103152190环境配置——win10下TensorFlow-GPU安装(GTX1660 SUPER+CUDA10+CUDNN7.4)https://blog.csdn.net/jiDxiaohuo/arti

推荐文章

热门文章

相关标签