DB(DateBase)
DB是长期存储在计算机内的,有组织的、统一管理的的相关数据的集合。
数据库试运行也称为联合调试,其主要工作包括功能调试和性能调试。
数据的完整性是指:数据的正确性、有效性和相容性,防止错误的数据进入数据库。
数据的可恢复性:把数据从被破坏、不正确的的状态、恢复到最近一个正确的状态,DBMS的这种能力称为数据库的可恢复性。
DBMS必须具有数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的故障恢复。
数据的独立性:是指应用程序与数据库的数据结构之间的相互独立。
完整性约束:是完整性控制的核心。
完整性约束分成三大类:域约束、基本表约束和断言。
数据完整性是指数据库中存储的数据是有意义的或正确的。
一)实体完整性
每个元组都是可识别的和唯一的(主键非空)
表中不允许存在:无主码值的记录、主码值相同的记录。
1)主码不能为空。
2)每个实体具有唯一性标识。
3)在关系模型中,是使用主码作为唯一标识的,若假设主码取空值,则说明这个实体不可标识,既不可区分。.
二)参照完整性:描述多个实体之间的联系,一般用外码实现。(外码要么为空,要么为被参照表的主码)保证数据的一致性。
外码:取作子表(本表)属性之一的主表(外表、父表)主码。
关系R的外码或者值为空;或者等于被引用表(被参照表)中某个元组的主码值。
外码可以有重复值
.
三)用户定义的完整性(域完整性、语义完整性):用户定义应遵循的约束条件
DBMS要提供各种完整性约束的实现机构,保证对数据库的任何更新操作都不会破坏数据语意的正确性和准确性。
DBMS必须提供一种功能来保证数据库中数据是正确的,避免非法的不符合语义的错误数据的输入和输出,既所谓 垃圾进垃圾出
检查点机制的主要思想:
在DBS运行时,DBMS定时设置检查点。在检查点时刻才真正做到把对DB的修改写到磁盘,并在日志文件上写入一个检查点。当DB需要恢复时,只有那些在检查点后面的事务需要恢复。
数据库的生命期可分为两个阶段,分别是数据库 分析与与设计阶段、数据库实现与操作阶段。
数据库设计是从用户对数据需求出发,研究并构造数据库的过程。
DBA的主要职责:
定义模式:
定义内模式;
与用户的联络;
定义安全性规则,对用户访问数据库的授权;
定义完整性规则,监督数据库的运行;
数据库的转储与恢复。
数据库运行与维护阶段的主要工作。
数据库的转储与恢复
数据库安全性、完整性控制。
数据库性能的监督、分析和改进。
数据库的重组织和重构造。
SQL语句
撤销基本表: DROP TABLE
更新表信息: update Student set Sage=Sage+1;
#将所有学生的年龄+1
使用SQL/CLI时,函数调用中SQL语句将作为_字符串参数_动态的创建和传递。
删除触发器: drop trigger触发器
权限的授予与回收: GRANT 和 REVOKE
更新语句:ALTER
用户修改数据库模式的权限:
索引(Index)、资源(Resource)、修改(Alteration)、撤销(Drop)
INSERT INTO 学生表 VALUES(“01”,“张璐”,“计算机”)
UNION:查询结果进行并操作
INTERSECT: 进行交操作
EXISTS: 内部有一个子查询语句,找到子查询满足的条件再进行查询。
EXCEPT:返回两个结果集的差(既从左查询中返回右查询没有找到的所有非重复值)
定义游标的语法
EXEC SQL DECLARE <游标名> CURSOR FOR
<SELECT语句>
END_EXEC
SQL的调用和主要目的:
SQL调用包括SQL例程和调用规则
主要目的:
①提高SQL的灵活性
②提高SQL的有效性
③提高SQL的共享性
④使SQL具有更多的高级语言的特征
主语言
1)引用时,这些变量必须加冒号”:“作为前级标识,以示与数据库中变量有区别。
2)这些变量要用SQL的DECLARE语句说明。
游标的引入
由于SQL语句处理的的是记录集合,而主语言语句一次只能处理一个记录,因此需要用游标机制,把集合操作转换成单记录处理方式。
含义:游标是一个被SELECT语句检索出来的结果集。
创建游标的语句:DECLARE CURSOR
保存方式:
1)列表类型:是相同类型元素的有序集合,并允许有重复的元素出现;
2)数组类型:同类元素的有序集合;(面向对象)
3)集合类型:相同类型元素的无序集合,并且所有的元素必须是不同的。
存储过程的优点主要是提供了安全机制、改进了执行性能、减少了网络流量和增强了代码的复用性。
文档存储
文档存储的存储格式化可以多样化,适合存储系统日志等结构化数据。
视图
从一个或几个基本表导出的表,其本身不独立存储在数据库中称为 视图。
数据库系统投入运行后,有哪些维护工作:
1.数据库的转储和恢复。
2.数据库的安全性、完整性控制。
3.数据库性能的监督、分析和改进。
4.数据库的重组织和重构造。
Innodb
在MySQL中,只有使用了Innodb的数据库或表才支持事务。
事务的四大特性ACID
Atomicity、Consistency、Isolation、Durability
原子性、一致性、隔离性、持久性
数据库的并发操作会带来哪些问题:
丢失更新问题、读脏数据问题、不可重复读问题。
锁
一个锁实质上就是允许或阻止一个事务对一个数据对象的存取特权。
0级锁,被封锁的事务不重复写其他非0级封锁事务的未提交的更新数据。
1级锁,被封锁的事务不允许重写未提交的更新数据。
2级锁,被封锁的事务不重写也不读未提交的更新数据。
3级锁,被封锁的事务不读未提交的更新数据,不写任何未提交数据。
利用封锁技术,可以避免并发操作引起的各种错误。
但有可能产生其他三个问题:活锁、饿死和死锁。
封锁技术中主要有两种锁:排他型锁和共享型锁。
T-SQL语言中全局变量的含义:
全局变量由系统定义和维护,以两个@字符开头,用户不能定义全局变量。
扩展SQL标准的不足之处,这种扩展称为T-SQL
在客户端/服务器结构中,数据库系统管理系统称为后台
数据库应用的功能分成两部分。
客户机(前端部分):由一些应用程序构成,例如,格式处理、报表输出、数据输入、图形,实现前端处理和用户界面。
服务器(后端部分):包括存取结构、查询优化、并发控制、恢复等系统程序,完成事务处理和数据访问控制。
数据库管理系统是一个能够提供数据录入、修改、查询的数据操作软件,具有数据定义、数据操作、数据存储与管理、数据维护、通信等功能,所以是后端部分(后台部分)。
数据库技术发展
新一代的数据库系统。
第一代层次与网络数据库系统。
第二代关系库系统。
第三代以面向对象数据库模型为主要特征的新一代数据库系统。
T-SQL语言中,在单个Declare命令中声明多个变量时,需要使用__逗号__将他们互相隔开。
数据字典中通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。
关系模型
关系模式是型,关系是值,既关系模式是对关系的描述。
关系是元组的集合,是关系模式在某一时刻的状态或内容。
每一行代表一个元组,所有元组的个数称为基数;
每一个元组由多种属性/字段组成,所有属性/字段的个数称为元数。
所有属性/字段的个数称为元数。
关联是对类的实例之间联系的命名,与关联有关的类的个数称为关联元数或度数。
关系模式的设计尽可能使得相应关系中不出现插入、删除和修改等操作异常现象。
不好的关系模式会存在:数据冗余、更新异常、插入异常、删除异常的问题。
关系模式产生异常问题的原因,以及消除这些问题的方法,都与数据依赖密切相关。
候选码是指关系中的某一属性或属性组的值能唯一标识一个元组(行),其任何子集都不能再标识,所以同一个关系中不允许出现候选码或候选键完全相同的元组,在关系模式中,行列的顺序可任意交换,且每个属性不可分解。
候选码:能够唯一标识关系中的一个元组的一个属性或最小属性组。
主码:指定候选码中的一个作为主码
主属性:包含在任一候选码中的属性
非主属性:不包含在任意候选码中的属性
主键:用于唯一标识某一记录。
外键:当关系中的某个属性不是该关系的主码或候选码而是另一关系的主码时,则该属性为外键。
候选键:不能从中移去任何一个属性的键称为候选键,因此不存在多余的属性。
ODBC
开放数据库连接(Open Database Connectivity,ODBC)是为解决异构数据库间的数据共享而产生的,现已成为WOSA(The Windows Open System Architecture(Windows开放系统体系结构))的主要部分和基于Windows环境的一种数据库访问接口标准。 – 2021 year
数据库应用程序
驱动程序管理器
DB驱动程序
数据源
ODBC技术为应用程序提供了一套CLI(调用层接口)函数库和基于DLL(动态链接库)的运行支持环境。
存储过程
- 以return 传回整数
- 以output 格式传回参数
- recordset 传回值的区别:
output 和 return 都可在批次程式中使用变量接受,而 recordset 则传回到执行批次的客户端中,所以存储过程不一定必须包含 RETURN 语句。
存储过程中局部变量和用户变量的区别
1)局部变量声明时,在其前面没有使用@符号,并且它只能被声明它的BEGIN…END语句块所使用;
2)用户变量在声明时,会在其名称前面使用@符号,同时已声明的用户变量存在于整个会话中。
变量有用户变量和全局变量;
变量用于临时存储数据,变量中的数据可以随着程序的运行而变化;
变量属性有名字、数据类型。
存取路径分为主存取路径与辅助存取路径
主存存取路径主要用于主键索引
辅助存取路径主要用于辅助键索引
工具
power Builder作为一种数据库的前端开发工具,操作的核心是数据库中的数据。
使用DBS(数据库系统)的用户有哪几类:DBA,专业用户,专业程序员,终端用户。
PowerBuilder9.0 应用画板的功能: 应用画板是用来创建和编辑应用对象,叮以对应用程序的open、close、Error等事件编程和对对象的属性进行定制和修改。
PowerBar是PowerBuilder9.0提供的主控菜单工具栏;PainterBar是PowerBulider9.0提供的操作画板组件的工具栏。
PowerBuilder9.0中,提供规范化的Workspace(工作空间)对象,让程序员更方便地管理创建的__ 应用对象 __。
数据管道画板功能:用来实现数据库内、数据库之间,甚至不同的数据库管理系统之间快速的数据转换。
计算机辅助软件工具(Computer Aided Software Engineering)CASE
计算机辅助设计(Computer Aided Design)CAD
计算机辅助教学(Computer Aided Instruction)CAI
DBMS产品在实现标准SQL语言时各有差别,一般都做了某种扩充。因此,具体使用某个DBMS产品时,还应参阅系统提供的有关手册。
数据库的保护和安全:
一个触发器由三部分组成
它们是 事件–条件–动作
触发器是用户定义在关系表上的一类由事件驱动的数据库对象,也是一种保证数据完整性的方法。主要作用是实现主键和外键不能保证的复杂的参照完整性和数据一致性,从而有效地保护表中的数据。
大数据管理技术
(1)结构画板:创建全局结构
(2)函数画板:创建全局函数
(3)查询画板:图形化方式定义SQL Select语句,并保存为Query对象,供数据窗口或数据管道使用;
(4)工程画板:创建可执行文件,动态库、组件和代理对象。
孤立点:孤立点是指数据中与整体表现行为不一致的数据集合。
IBM概括的大数据的四个V为
1.大量化(Volume)、多样化(Variety)、快速化(Velocity)、真实和准确(Veracity)
范式
范式的命名由来 托马斯·库恩(Thomas Kuhn)
有1NF~5NF 个范式。
1属性不能重复(如果有课代表,老师,学生,则第一范式不成立)
2满足第一范式后,属性依赖于一个主键
3满足第二范式后,非主属性不能依赖于主属性
BCNF(Bovce Codd Normal Form 巴克斯范式)第三范式的加强。不能依赖于主键的子主键
4满足第三范式后,非主属性不应该有多值
5满足第四范式后,表必须可以分解为较小的表,除非那些表在逻辑上拥有与原始表相同的主键。
范式
第一范式:每个属性对应的域值都是不可分的。
第二范式:在第一范式的基础上,消除了非主属性对候选码的部分依赖。
第三范式:在第二范式的基础上,消除了非主属性对候选码的传递依赖。
BCNF: 在第三范式的基础上,消除了主属性对候选码的部分依赖和传递依赖。
文件系统主要有三大缺点:
数据冗余
数据不一致
数据联系弱
逻辑模型
模型又称为逻辑模型
逻辑模式是从数据库实现的观点出发,对数据建模。
逻辑模型独立于硬件,但依赖于软件。所有数据的逻辑结构
①数据库中全体数据的逻辑结构和特征的描述
②所有用户的公共数据视图,综合了所有用户的需求还有外部模型和内部模型
表达了DB的的局部逻辑结构的是外部模型;
表达了对硬件是内部模型
》表达了实体类型及实体间联系的数据模型称为网状模型
数据模型
概念层数据模型
逻辑层数据模型
物理层数据模型
函数依赖
A->B B依赖于A
如何还存在 C->B 则说明为局部依赖
关系代数的常用操作
选择:行
投影:列
链接:
并:U 元组合并,对两个表相同的元组去重生成新的视图
交:n 对两个表中相同元组 生成新视图
差:- 对比两个表,保留左表比右表多出的部分。
交叉并除
(笛卡尔积) 符号:X 对比两个表,循环生成 A表每个元组对应B表每个元组的 多属性二维视图元组。
选择:σ目标列age<20(目标表Student) 输出的是行
σ年龄>40(职工)
投影:Π目标列Sdep(目标表student) 输出的是列
Π年龄(职工)
自然链接:又称条件链接
等值链接:在自然链接的基础上列值完全相等的链接。
左连接:保留左边要舍弃的元组部分
右链接:保留右边要舍弃的元组部分
并
并运算用元组演算表达式可表示为:R∪S={t|R(t)∨S(t)}。
差
差运算用元组演算表达式可表示为:R-S={t|R(t)∧¬S(t)}。
选择
选择运算用元组演算表达式可表示为:σF(R)={t|R(t)∧F}。
F可以理解为条件,例如: t[3]=‘d’
完整的元组表达式需要写为 :σF(R)={t|R(t)∧ t[3]=‘d’}
DBS数据库系统
数据仓库是面向主题的。
数据库系统提供数据控制功能:数据安全性、数据一致性(既并发控制)、数据完整性。
数据库系统的最小逻辑工作单位是:事务。
事务是由一组操作序列组成。
事务具有ACID性质: 原子性、一致性、隔离性和持久性。
如果多个事务依次执行,则称为事务的串行调度。
什么是封锁的粒度: 封锁对象的大小称为封锁的粒度。粒度是指数据仓库中保护数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。
数据仓库环境中 粒度之所以是主要的设计问题,是因为它深深影响存储在仓库中的数据量的大小。
概念设计
概念设计的任务一般可以分为三步:
①进行数据抽象,设计局部概念模型。
②将局部概念模型综合成全局概念模型。
③评审。
通常使用 E-R 图作为数据库概念设计的描述工具。
E-R图,长方形表示实体,菱形表示判断,原型表示属性 ,M表示联系,N表示遇到
创建表
CREATE TABLE 类别 (类名 CHAR(5) PRIMARY KEY , 类名 CHAR(30) );