首页
瑞龙同学
资源下载
定制手环
功能尝鲜
推荐
NaTyphoon
应龙笔记
jampang
澪度の博客
Search
1
入站必读 Read Me!
447 阅读
2
湘馨:水系,魔攻
109 阅读
3
《北寒雷域》潜鳞本纪——来自友链:鹏龙-道记
96 阅读
4
20种战斗异常状态查询表
93 阅读
5
Python作业 - 根据输入的日期判断是今年的第多少天
90 阅读
瑞龙同学
异界亚比
小说
跨时空竞技
北寒雷域
学无止境
java
vue
数据库
其他
置顶和报告
登录
/
注册
Search
瑞龙同学
累计撰写
60
篇文章
累计收到
149
条评论
今日撰写
0
篇文章
首页
栏目
瑞龙同学
异界亚比
小说
跨时空竞技
北寒雷域
学无止境
java
vue
数据库
其他
置顶和报告
页面
瑞龙同学
资源下载
定制手环
功能尝鲜
推荐
NaTyphoon
应龙笔记
jampang
澪度の博客
用户登录
登录
注册
搜索到
9
篇与
数据库
的结果
2022-03-11
数据库基础 - 6:多表查询与函数
函数平均数avg示例:select id,year,avg(new) as avg_new from history where class=1, group by id,year having avg(new) >= 10多表查询语句格式select 表名1.列名1,表名2.列名2 from 表1,表2 where 表名1.列名1 = 表名2.列名2示例:select student.id,teacher.tid from student,teacher where student.id = teacher.tid;*注意where不要省略,省略where即为笛卡尔集,而且where条件要有效,两张表间有一个相同的字段,才好进行有效的多表查询
2022年03月11日
32 阅读
0 评论
1 点赞
2022-03-09
数据库基础 - 5:表的增删改查
添加字段alert table 表名 add 字段名 类型(长度) comment '注释',示例:alter table student add power varchar(50) comment '注释';修改字段*仅修改字段的数据类型alter table 表名 modify 字段名 新的数据类型(长度)同时修改字段名和字段类型alter table 表名 change 旧的字段 新的字段 新的数据类型(长度) comment '注释';删除alter table 表名 drop 字段名;示例:alter table student drop power;修改表的名称alter table 表名 rename to 新的表名;示例:alter table student rename to stu;删除表drop table if exists 表名;if exists指“如果表存在”,可以不加。删除表,并创建这张表(名称与之前相同)truncate table 表名;示例:create table text3(id int(3)); (先创建一个text3的表,然后将其删除) truncate table text3;修改数据update 表名 set 列1=值1,列2=值2,where id=1;示例:update student set class=17,power=1 where id=2;
2022年03月09日
23 阅读
0 评论
1 点赞
2022-03-09
数据库基础 - 4:表的排序
根据列名3,对一张表的列进行排序select 列名1,列名2,列名3 from 表名 order by 列名3;*系统默认从小到大进行升序排列*如果语句中有where,则order by必须放到where后面,如果没有,则order by放到表的后面手动升序/降序在句末的分号前加上asc/desc对多个列进行升降序例如:根据列名3升序,根据列名2降序,对一张表的列进行排序select 列名1,列名2,列名3 from 表名 order by 列名3 asc,列名2 desc;对第八列进行排序可直接在order by后面加上“ 8”(有空格),例如order by 8;*不推荐这样做,这样的数字含义不明确,可读性不强
2022年03月09日
32 阅读
0 评论
0 点赞
2022-03-07
数据库基础 - 3:查询与示例语句
对表中的所有数据进行查询select * from 表名称;用运算符拿出符合条件的列的值:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值示例:select id from user where id='19'结果:uid1用运算符拿出符合条件的列所在的行的值:SELECT * FROM 表名称 WHERE 列 运算符 值示例select * from user where id='19'结果:uidnameage1瑞龙19where 文本/数值如果where后面是文本,应该用:where name='瑞龙'如果where后面是数值,应该用:where age=19(区别在于有无引号)AND 和 OR 运算符AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。示例:{anote icon="fa-paper-plane" href="https://www.w3school.com.cn/sql/sql_and_or.asp" type="success" content="SQL AND & OR"/}ORDER BY用于对结果集进行排序语法:select 列名1, 列名2 from 表名 order by 列名1效果:根据列名1来进行“首字母”排序(升序)如果想要降序,在句末加上 desc 即可。详细信息:{anote icon="fa-paper-plane" href="https://www.w3school.com.cn/sql/sql_orderby.asp" type="success" content="SQL ORDER BY"/}INSERT INTO 语句语法:INSERT INTO 表名称 VALUES (值1, 值2,....)INSERT INTO 表名称 (列1, 列2,...) VALUES (值1, 值2,....)Update 语句UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
2022年03月07日
32 阅读
0 评论
1 点赞
2022-03-06
数据库基础 - 2:基础语句与数据类型
连接数据库打开根目,在bin文件夹下打开cmd输入mysql -u root -pexit; 退出新增/删除/进入数据库create database 数据库名;drop database 数据库名;use 数据库名;查看当前有哪些数据库show databases;修改数据库信息alter database 数据库名 [新的数据库选项]在表text2中,新增phone字段alter table text2 add phone varchar(10) not null;在表text2中,删除那name字段alter table text2 drop name;语句示例 - 创建表:非空,主键mysql> create table teacher( -> id int(5) comment '老师' not null, -> name char(5) comment '姓名' not null, -> primary key (id) -> ); Query OK, 0 rows affected (0.02 sec)语句示例 - 创建外链mysql> create table work( -> uid int(5), -> foreign key (uid) references teacher (id) -> ); Query OK, 0 rows affected (0.02 sec)数据类型{anote icon="fa-paper-plane" href="https://www.runoob.com/mysql/mysql-data-types.html" type="success" content="详细信息"/}常用的数据类型int大整数值char固定长度字符串varchar可变长度字符串float单精度浮点数值double双精度浮点数值date日期值time时间值datetime混合日期和时间值timestamp混合日期和时间值,时间戳当设计年龄时 - 0至255age tinyint unsigned (无符号的小整数值)若携带符号:age tinyint(-128至127)当设计分数(成绩)时 - 满分10分score double(4,2) 可表示0.00至99.99在表中插入新的行mysql> insert into typecho_users values (1,瑞龙,19); Query OK, 1 row affected (0.01 sec)此处三个值与原表中一一对应。语句格式INSERT INTO 表名称 VALUES (值1, 值2,....)或者:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)第二种格式,如果允许内容为空,则可以该字段可以不出现在语句中*如果id是自增的,插入值的时候也应该顺序后延,否则会报错。
2022年03月06日
33 阅读
0 评论
1 点赞
2022-03-06
数据库基础 - 1:基础杂谈
net stop/star msyl80sql通用语法单行注释 -- # 多行注释/ /create database [if not exists] [default charset字符集] [collate排序规则]drop database [if exists] 数据库名use 数据库名 使用/切换数据库select database() 查询当前数据库名{dotted startColor="#ff6c6c" endColor="#1989fa"/}show tables 查询单签数据库的所有表desc 表名 查询表结构show create table 表明 查询指定表的建表{dotted startColor="#ff6c6c" endColor="#1989fa"/}create table 表名( id int(5) comment '123' not null, 字段1 字段1类型 [comment 字段1注释], 字段2 字段2类型 [comment 字段2注释], 字段3 字段3类型 [comment 字段3注释])[comment 表注释]{dotted startColor="#ff6c6c" endColor="#1989fa"/}select database():查看数据库select version():查看数据库版本select now():查看数据库当前时间
2022年03月06日
32 阅读
0 评论
0 点赞
2022-03-05
数据库概论
以下内容是基础(理论)*可能有重复内容{card-default label="数据库概论1" width="100%"}数据库的4个基本概念:数据、数据库、数据库管理系统、数据库系统 | 描述事物的符号记录称为数据 | 数据的含义称为数据的语义 | 数据库是长期储存在计算机内、有组织的可共享的大量数据的集合,数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享 | 数据库系统由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的储存、管理、处理和维护数据的系统 | 发展:人工管理、文件系统管理、数据库系统/阶段 | 数据库系统特点:1、数据结构化,数据库系统的主要特征,与文件系统的本质区别 2、数据共享性高、冗余度低且易扩充 3、数据独立性高,数据独立性、物理独立性、逻辑独立性 4、数据由数据库管理系统统一管理和控制 | 数据模型也是一种模型,它是对现实世界数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的 | 数据模型(1概念模型-按用户观点对数据和信息建模,用于数据库设计 2逻辑模型-按计算机系统的观点对数据建模,主要用于数据库管理系统的实现 3物理模型-对数据最底层的抽象,它描述数据在系统内部的标识和存取方法,是面向计算机系统的) | 概念模型(基本概念-1实体:客观存在并可相互区别的事务、2属性:实体所具有的某一特性、3码:唯一标识实体的属性、4实体型:用实体及其属性名集合来抽象刻画同类实体、5实体集:同一类型实体的集合、6联系)| 数据模型组成要素:(1数据结构-描述数据库的组成对象及对象之间的联系 2数据操作-数据库中各种对象的实列允许执行的的操作的集合 3数据的完整性约束条件-一组完整性规则,用于限定数据库状态及状态的变化,以保证数据的正确有效和相容)| 常用数据模型: 层次、网状、关系模型 | 三级模式结构:(1模式-也称为逻辑模式,是全体数据的逻辑结构和特征的描述,所有用户的公共数据试图 2外模式-也称为子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 3内模式-也称为存储模式,一个数据库只有一个内模式、它是数据物理结构和粗存储方式的描述,是数据在数据库内部的组织方式)| 二级映像功能:1外模式/模式映像,当模式改变时由数据库管理员对外模式/模式映像做出相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性 2模式/内模式映像,当数据库的存储结构改变时由数据库管理员对模式/内模式映像做出相应改变,可以使模式保持不变。从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性 | 三类完整性约束:实体/参照/用户定义完整性 | 实体完整性规则:若属性(一组或一个属性)A是基本关系R的主属性,则A不能区空值(不知道、不存在、无意义) | 数据库安全性:指保护数据库以防止不合法使用所造成的数据泄露更改和破坏 | 数据的不安全因素(1非授权用户对数据库的恶意存取和破坏 2数据库中重要或敏感的数据泄露 3安全环境的脆弱性)| 视图:通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定的安全保护 | 数据库的完整性:指数据的正确性和相容性(维护数据库的完整性-1提供定义完整性约束条件的机制 2、提供完整性检查方案 3进行违约处理)| 数据依赖:是一个关系内部属性与属性之间的一种约束关系,这种关系是通过属性之间值的相等与否体现出来的数据间相关联系。最重要的是函数依赖和多值依赖 | 数据库设计定义:指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的管理和存储数据,满足各种用户的应用需求,包括信息管理要求和数据库操作要求 | 数据库转储:是数据库回复中采用的基本技术,即数据库管理员定期的将数据库复制到磁带、磁盘或其他存储介质上的过程,这些备用数据称为后备副本。数据转储有两种方式,分别可以在两种状态下进行,所以转储方法可分为四类-1动态海量转储 2动态增量转储 3静态海量转储 4静态增量转储 | 日志文件:用来记录事务对数据库更新操作的文件 作用:1事务故障恢复和系统故障恢复必须使用日志文件 2在动态转储方式中必须建立日志文件,后备副本和日志文件结合才能有效的恢复数据库 3在静态转储方式中也可以建立日志文件,在数据库毁坏并恢复到转储结束时的正确状态后,可用日志文件对已完成的事务做重做处理 | 并发控制(事务是并发控制的基本单位):事务只能串行执行,事务在执行过程中需要不同资源,如果事务串行执行,许多系统资源将处于空闲状态,因此为了充分利用系统资源、发挥数据库共享资源的特点,应允许多个事务并行执行。并发控制机制:多个用户并发存取数据库时会产生多个事务存取同一数据的情况,若不加以控制就可能会存取和存储不正确的数据破坏事务和数据库的一致性,所以数据库管理系统必须提供并发机制,并发控制是衡量数据库管理系统性能的重要标志之一。并发控制的主要技术:封锁、时间戳、乐观控制法和多版本并发控制等。{/card-default}{card-default label="数据库概论1" width="100%"}第一章1.1 数据库系统概述数据是数据库中存储的基本对象(描述事物的符号)数据的含义成为语义,语义和数据不可分开数据库是长期储存在计算机内,有组织的,可共享的大量数据的集合,具有较小的冗余度,较高的数据独立性和易扩展性。数据(Data)数据库(DB)数据库管理系统(DBMS)数据库系统(DBS)数据库管理系统是系统软件数据库管理系统提供数据定义语言(DDL),数据操纵语言(DML)数据库系统是由数据库、数据库管理系统、应用程序、和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。数据管理的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段1、数据不共享、数据不具有独立性2、数据共享性差、冗余度大、数据独立性差3、可共享、冗余度小、数据独立性高、易扩展从文件系统到数据库系统标志着数据管理技术的飞跃与人工管理和文件管理相比,数据库系统的特点为:1、数据结构化实现了整体数据的结构化,是数据库的主要特征之一,是数据库系统与文件系统的本质区别2、数据的共享性高、冗余度低且易扩充数据共享可以大大减少数据冗余,节约存储空间,还能避免数据之间的不相容性和不一致性。3、数据独立性高物理独立性:用户的应用程序 与 数据库中数据的物理存储 是相互独立的逻辑独立性:用户的应用程序 与 数据库的逻辑结构 是相互独立的4、数据由数据库管理系统统一管理和控制(1) 数据的安全性保护保护数据以防止不合法的使用导致数据泄密或破坏(2) 数据的完整性检查数据的正确性、有效性、相容性(3) 并发控制并发:多个用户可以同时存取数据库中的数据多用户同时进行同一操作可能会互相干扰导致错误,所以要对并发操作进行控制(4) 数据库恢复数据库的出现使信息系统从 以加工数据的程序 为中心 转向 围绕共享的数据库 为中心的新阶段。1.2 数据模型数据模型是数据库系统的核心和基础根据模型应用的不同目的,可以分为第一类:概念模型也称信息模型,按照用户观点来对数据进行建模,主要用于数据库设计第二类:逻辑模型和物理模型包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型。他是按计算机系统的观点对数据的建模,主要用于数据库管理系统的实现现实世界—抽象—》信息世界—转换—》机器世界概念模型(信息世界的基本概念)实体客观存在并可相互区别的事物成为实体属性实体具有的某一特性称为属性码唯一标识实体的属性集实体型用实体名及其属性名集合来抽象和刻画同类实体实体集同一类型的实体的集合联系实体之间的联系通常是指不同实体集之间的联系实体之间的联系有一对一、一对多和多对多概念模型的一种表示方法:实体联系方法(E-R方法,即E-R模型)数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成1、数据结构数据结构描述数据库的组成对象以及对象之间的联系2、数据操作数据操作是指对数据库中各种对象的实例允许执行的操作的集合,包括操作机有关的操作规则3、数据的完整性约束数据的完整性约束条件是一组完整性规则常用的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型。其中层次模型和网状模型统称为格式化模型。在格式化模型中数据结构的单位是基本层次联系,基本层次联系是指两个记录以及它们之间的一对多(包括一对一)联系联系的始点成为双亲结点,终点被称为子女结点层次模型在数据库中定义,满足下面两个条件的基本层次联系的集合为层次模型(结点双亲唯一)1、有且只有一个结点没有双亲结点,这个结点被称为根结点2、根以外的其他结点有且只有一个双亲结点层次模型的数据操纵主要有查询、插入、删除和更新。执行时要满足完整性约束条件。插入时,如果没有双亲就不能插入子女,删除双亲,子女也会被删除网状模型网状模型的代表是DBTG系统(CODASYL)系统。在数据库中定义,满足下面两个条件的基本层次联系的集合为网状模型1、允许一个以上的结点无双亲2、一个结点可以有多余一个的双亲层次模型中子女结点和双亲结点的联系是唯一的,在网状模型中这种关系可以不唯一关系模型关系模型的数据结构:关系:一个关系对应一张表元组:表中的一行为一个元组属性:表中的一列为一个属性码/键:表中的某个属性组,他可以唯一确定一个元组域:是一组具有相同数据类型的值的集合分量:元组中的一个属性值关系的没一个分量必须是一个不可分的数据项关系模型的数据操纵与完整性约束关系模型会将存储路径向用户隐藏,大大提高了数据的独立性,操作对象和操作结果都是关系1.3 数据库系统结构模式是相对稳定的,而实例是相对变动的)数据库系统的三级结构模式(外模式、模式、内模式)1、模式模式也称为逻辑模式,是所有用户的公共数据视图。他是模式结构的中间层,不涉及物理层面,也不涉及具体的应用程序。数据库管理系统提供模式数据定义语言来定义语言(模式DDL)2、外模式外模式又称为子模式,或用户模式,他是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集,一个数据库可以有多个子模式,但一个应用程序只能有一个子模式。外模式是保障数据库安全的一个有力措施,每个用户只能看见和访问自己所对应的子模式中的数据,其他数据不可见。3、内模式内模式也称为存储模式,一个数据库只有一个内模式,他是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。数据库系统在这三级模式之间提供了两层映像:外模式/模式,模式/内模式。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。1、外模式/模式映像保证了数据的逻辑独立性2、模式/内模式映像保证了数据的物理独立性2.3 关系的完整性关系模型中有三类完整性约束:实体完整性、参照完整性、用户自定义完整性,前两个被称为关系的两个不变性。实体完整性规则:主键不能为空。参照完整性规则:外键必须等于引用的表的主键,或者为空值。2.4 关系代数运算传统的集合运算(二目运算):并、差、交、笛卡尔积专门的关系运算:选择、投影、连接(等值连接、自然连接)、除运算选择(σ):选择一整条记录,即选择满足条件的一个元组,选择运算是选择关系中行的子集Eg.查询信息系(IS系)全体学生σ Sdept=‘IS’(Student)投影(π):投影是选取关系中列的子集(由于投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列之后,就可能出现重复行,投影结果中不应该包含重复行)连接(等值“=”,自然连接“ ⋈”):4.1数据库安全性概述数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏桔皮书:TCSEC、受信任电脑系统评价标准紫皮书:TCSEC/TDI、可信计算机系统评估准则关于可信数据库系统的解释cc准则:我国2001年采用的信息技术安全性评估标准从四个方面来描述安全性级别划分的指标:安全策略、责任、保证、文档TCSEC/TDI标准:B1:标记安全保护(对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制, B1级别的产品才被认为是真正意义上的安全产品) C1:自主安全保护(自主存取控制DAC)CC标准:EAL2:结构测试 C1 EAL3:系统地测试和检查 C2 EAL7:形式化验证的设计和测试 A14.3 视图机制可以为不同的用户定义不同的视图,把数据对象限制在一定的范围内。把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定程度的安全保护。5.1 实体完整性实体完整性:主键为避免全表扫描,关系数据库一般都会自动在主键上建立索引,从而大大提升搜索效率。5.2 参照完整性参照完整性:外键当进行的操作可能会破坏参照完整性约束时,会执行以下策略:拒绝执行(默认操作)、级联操作(被引用的表数据被修改后,级联删除所有相关的数据)、设置为空值5.3 用户自定义完整性可以根据用户要求定义属性上的约束条件,包括:列值非空(not null)列值唯一(unique)检查列值是否满足一个表达式(check)可以设置对属性的约束,也可以设置对元组的约束6.1 关系数据理论一个关系模式应当是一个五元组,即:R(U,D,DOM,F)R:关系名,U:一组属性,D:U中的属性所来自的域,DOM:属性到域的映射,F:U上的一组数据依赖。第一范式(1NF):数据库表的每一列都是不可分割的基本数据项。第一范式是对关系模式的基本要求,不满足第一范式的就不是关系型数据库。第二范式(2NF):每个表必须有主关键字,其他数据元素与主关键字一一对应。通常称这种关系为函数依赖关系。数据依赖:一个关系内部属性与属性之间的一种约束关系。函数依赖(FD),属于第二范式定义范围,多值依赖(MVD),属于第四范式定义范围一个好的模式应当不会发生插入异常,删除异常和更新异常,数据冗余尽可能的少。7.1 数据库设计概述数据库设计:数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并根据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。数据库设计的六个阶段:1、需求分析2、概念结构设计3、逻辑结构设计4、物理结构设计5、数据库实施6、数据库运行和维护10.1 事务的基本概念事务:用户定义的一个数据库操作序列,是不可分割的工作单位,一个程序包含多个事务。事务定义:Begin Transaction:标志事务的开始Commit:将事务中对数据库的更改写入物理磁盘Rollback:将事务中对数据库的所有已完成的操作全部撤销事务的ACID特性:原子性、一致性、隔离性、持续性1、原子性:事务不可拆分、要不全做、要不都不做2、一致性:事务的执行结果必须是使数据库从一个一致性状态变到另一个一致性状态,一致性跟原子性是密切相关的。3、隔离性:一个事务的执行不能被其他事务干扰,即并发执行的各个事务应该相互独立。4、持续性(永久性):一个事务一旦提交,对数据库的影响应该是永久的。10.2数据库恢复概述数据库必须拥有把数据库从错误状态恢复到某一已知的正确状态的功能。恢复子系统是数据库管理系统的一个重要组成部分,常常占整个系统代码的10%以上。10.3故障的种类1、事务内部发生的故障事务内部更多的故障是非预期的,是不能由应用程序处理的,应该执行事务撤销。2、系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。3、介质故障系统故障被称为软故障,介质故障称为硬故障4、计算机病毒恢复的原理非常简单,冗余。数据库中任何一处被破坏的或不正确的数据可以根据存储在别处的冗余数据来重建。10.4恢复的实现技术建立冗余数据最常用的技术是数据转储和登记日志文件。数据转储:人工的将某一时间节点的数据备份到其他物理存储设备上。静态转储:系统中无运行中的事务时进行动态转储:转储期间允许对数据库进行存取或修改海量转储:每次转储全部的数据库增量转储:仅转储距上次转储过后更新的数据(动态海量转储、动态增量转储、静态海量转储、静态增量转储)10.4.2日志文件日志文件:用来记录事务对数据库更新操作的文件(单位:记录、数据块)记录为单位的日志文件内容:开始结束标记、所有更新操作内容主要包括:事务标识、操作的类型、操作对象、更新前数据的旧值,更新后数据的新值登记日志文件时需遵循两条原则:1、登记的次序严格按照并发事务执行的时间次序2、必须先写日志文件,后写数据库11.1并发控制事务的执行从真正意义上来说只能串行,即每个时刻只有一个事务运行。单机处理器上的事务并行实际上是轮流串行执行,虽然没有真正意义上的并行,但是减少了处理机的空闲时间,提高了系统的效率。当多个用户并发的存取数据库时就会产生多个事务同时存取同一数据库的情况。若不进行并发控制,就会破坏事务和数据库的一致性。11.1.2并发控制概述事务是并发控制的基本单位。并发操作带来的数据不一致性包括:丢失修改、不可重复读、读脏数据产生上述不一致性的原因是并发操作破坏了事务的隔离性。脏数据:数据库有一数据S,T1对其进行修改操作,将S修改为S1,但是T1撤销了操作。这时有并发的T2读取到T1修改的数据S1,此时数据库中数据仍为S,S1就是脏数据。 并发控制的机制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。并发控制的主要技术有:封锁、时间戳、乐观控制法、多版本并发控制(MVCC)11.2封锁封锁是实现并发控制的一个非常重要的技术。基本封锁类型有两种:排他锁(写锁)和共享锁(读锁)11.3封锁协议何时申请锁、持锁时间、何时释放,这些规则称为封锁协议一级封锁协议:事务T在修改数据R前必须对其加写锁,直至事务结束才能释放仅防止丢失修改二级封锁协议:在一的基础上,增加T在读取数据R前对其添加读锁,读完后释放读锁既可防止丢失修改,又可以防止读脏数据三级封锁协议:在一的基础上,增加T在读取数据R前对其添加读锁,事务结束释放可以防止修饰修改,可以防止读脏数据,也可以防止不可重复读上述三级协议的主要区别在于什么操作需要申请封锁,以及何时释放锁。11.4活锁和死锁活锁:多个事务同时申请封锁时,有的事务可能会永远在排队,形成活锁避免活锁的简单方法是采用先来先服务的策略。死锁:两个事务互相封锁,互相等待,即两个事务永远不会结束,形成死锁预防死锁:一次封锁法、顺序封锁法诊断与解除死锁:超时法、事务等待图法通常会释放一个代价最小的锁,使得其他的事务可以继续运行下去{/card-default}{card-default label="数据库概论" width="100%"}1.1 数据库系统概述数据是数据库中存储的基本对象,数据的含义称为语义数据库是长期储存在计算机内,有组织的,可共享的大量数据的集合,具有较小的冗余度,较高的数据独立性和易扩展性。数据库管理系统是系统软件。数据(Data)数据库(DB)数据库管理系统(DBMS)数据库系统(DBS)数据库管理系统提供数据定义语言(DDL),数据操纵语言(DML)数据库系统是由数据库、数据库管理系统、应用程序、和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。数据管理的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段数据独立性分为:物理独立性和逻辑独立性数据库的出现使信息系统从 以加工数据的程序为中心 转向 围绕共享的数据库为中心的新阶段。数据库管理系统必须提供的数据控制功能:数据的安全性保护、数据的完整性检查、并发控制、数据库恢复1.2 数据模型数据模型是数据库系统的核心和基础数据模型分为:概念模型:也称信息模型,主要用于数据库设计逻辑模型和物理模型:包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型,主要用于数据库管理系统的实现(现实世界—抽象—》信息世界—转换—》机器世界)概念模型包括:实体、属性、码、实体型、实体集、联系概念模型的一种表示方法:实体联系方法(E-R方法,即E-R模型)数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成联系的始点成为双亲结点,终点被称为子女结点层次模型:只有一个根节点,且根以外的结点只有一个双亲结点网状模型:允许一个以上的结点无双亲、一个结点可以有多余一个的双亲层次模型和网状模型统称为格式化模型。关系模型:关系、元组、属性、码/键、域、分量关系的每一个分量必须是一个不可分的数据项关系模型会将存储路径向用户隐藏,大大提高了数据的独立性,操作对象和操作结果都是关系。1.3 数据库系统结构数据库系统的三级结构模式(外模式、模式、内模式)数据库系统在这三级模式之间提供了两层映像:外模式/模式,模式/内模式。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。1、外模式/模式映像保证了数据的逻辑独立性2、模式/内模式映像保证了数据的物理独立性2.3 关系的完整性关系模型中有三类完整性约束:实体完整性、参照完整性、用户自定义完整性,前两个被称为关系的两个不变性。实体完整性规则:主键不能为空。参照完整性规则:外键必须等于引用的表的主键,或者为空值。4.1数据库安全性概述数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏桔皮书:TCSEC紫皮书:TCSEC/TDIcc准则:我国2001年采用的信息技术安全性评估标准从四个方面来描述安全性级别划分的指标:安全策略、责任、保证、文档TCSEC/TDI标准:B1:标记安全保护(真正安全,实施强制存取控制(MAC)及审计)C1:自主安全保护(自主存取控制DAC)CC标准:EAL2:结构测试 C1 EAL3:系统地测试和检查 C2 EAL7:形式化验证的设计和测试 A14.3 视图机制可以为不同的用户定义不同的视图,把数据对象限制在一定的范围内。把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定程度的安全保护。5.2参照完整性当进行的操作可能会破坏参照完整性约束时,会执行以下策略:拒绝执行、级联操作、设置为空值5.3用户自定义完整性列值唯一,列值非空,列值是否满足表达式check6.1 关系数据理论五元组R(U,D,DOM,F)R:关系名,U:一组属性,D:U中的属性所来自的域,DOM:属性到域的映射,F:U上的一组数据依赖。第一范式(1NF):数据库表的每一列都是不可分割的基本数据项。第二范式(2NF):每个表必须有主关键字,其他数据元素与主关键字一一对应。通常称这种关系为函数依赖关系。数据依赖:一个关系内部属性与属性之间的一种约束关系。函数依赖(FD),属于第二范式定义范围,多值依赖(MVD),属于第四范式定义范围7.1 数据库设计概述数据库设计:数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并根据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。数据库设计的六个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护10.1事务的基本概念事务:用户定义的一个数据库操作序列,是不可分割的工作单位,一个程序包含多个事务。事务定义:Begin Transaction:标志事务的开始Commit:将更改提交到物理磁盘Rollback:回滚事务的ACID特性:原子性、一致性、隔离性、持续性10.2数据库恢复概述、故障的种类、恢复的技术恢复子系统是数据库管理系统的一个重要组成部分,常常占整个系统代码的10%以上。事务内部发生的故障、系统故障、介质故障、计算机病毒数据转储基本分为:静态转储、动态转储、海量转储、增量转储实现分为:动态海量转储、动态增量转储、静态海量转储、静态增量转储10.3日志文件日志文件:用来记录事务对数据库更新操作的文件(单位:记录、数据块)登记日志文件时需遵循两条原则:1、登记的次序严格按照并发事务执行的时间次序2、必须先写日志文件,后写数据库11.1并行控制单机处理器上的事务并行实际上是轮流串行执行,虽然没有真正意义上的并行,但是减少了处理机的空闲时间,提高了系统的效率。(不进行并发控制会破坏事务和数据库的一致性)事务是并发控制的基本单位。并发操作带来的数据不一致性包括:丢失修改、不可重复读、读脏数据并发控制的主要技术有:封锁、时间戳、乐观控制法、多版本并发控制(MVCC)11.2封锁封锁是实现并发控制的一个非常重要的技术。基本封锁类型有两种:排他锁(写锁)和共享锁(读锁)一级:写锁(防止丢失修改) 二级:写锁、读锁(读完释放)(+防止读脏数据)三级:写锁、读锁(事务结束释放)(+防止不可重复读)11.3活锁和死锁活锁:多个事务同时申请封锁时,有的事务可能会永远在排队,形成活锁避免活锁的简单方法是采用先来先服务的策略。死锁:两个事务互相封锁,互相等待,即两个事务永远不会结束,形成死锁预防死锁:一次封锁法、顺序封锁法诊断与解除死锁:超时法、事务等待图法通常会释放一个代价最小的锁,使得其他的事务可以继续运行下去{/card-default}
2022年03月05日
30 阅读
0 评论
0 点赞
1
2