一星题
日志文件用来记录对数据库中数据进行的每一次更新操作。
索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的(查询)速度。
where子句后不能放聚合函数。
用二维表来表示实体集及实体集之间联系的数据模型称为关系模型。
数据库系统与文件系统的主要区别是:文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决。
数据库管理系统DBMS是系统软件。
数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。
MySQL忘记root密码,不管哪种解决方案,最终都要实现更新mysql数据库下的user表。
SQL 采用集合操作方式。
概念模型是用于信息世界的建模,与具体的 DBMS 无关。
数据库系统不仅包括数据库本身,还要包括相应的硬件、软件和各类相关人员。
在Access数据库的表设计器中可以修改字段类型、设置索引和增加字段。要想删除表中的记录,需要打开表进行删除。
SQL支持的备份类型有四种:
- 完全数据库备份
- 差异备份或称增量备份
- 事务日志备份
- 数据库文件和文件组备份
- 串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
- 未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据
- 提交读(Read Committed):只能读取到已经提交的数据
- 可重复读(Repeated Read):在同一个事务内的查询都是事务开始时刻一致的
数据库分类:
- Mongodb数据库属于文档型非关系数据库
- PostgreSQL属于关系型数据库
- Redis属于KV键值数据库
- Hbase属于列数据库
在手机开发中常用的数据库是sqlLite。
关系模型中,一个关键字,可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成。
在合并分E-R图时必须消除各分图中的不一致。各分E-R图之间的冲突主要有三类,即属性冲突、命名冲突和结构冲突,其中命名冲突是指同名异义或同义异名。
在数据系统中,对存取权限的定义称为授权。
索引的描述存放在数据字典中。
SQL语言具有两种使用方式,分别称为交互式SQL和嵌入式SQL。
数据库的物理结构设计的目的是:找到一个有效、可实现的数据库存储结构。
(1)若视图的字段是来自字段表达式或常数,则不允许对此视图执行INSERT、UPDATE操作,允许执行DELETE操作;
(2)若视图的字段是来自库函数,则此视图不允许更新;
(3)若视图的定义中有GROUP BY子句或聚集函数时,则此视图不允许更新;
(4)若视图的定义中有DISTINCT任选项,则此视图不允许更新;
(5)若视图的定义中有嵌套查询,并且嵌套查询的FROM子句中涉及的表也是导出该视图的基表,则此视图不允许更新;
(6)若视图是由两个以上的基表导出的,此视图不允许更新;
(7)一个不允许更新的视图上定义的视图也不允许更新;
(8)由一个基表定义的视图,只含有基表的主键或候补键,并且视图中没有用表达式或函数定义的属性,才允许更新。相对于非关系模型,关系数据模型的缺点之一是:存取路径对用户透明,需查询优化。
一个关系数据库文件中的各条记录,前后顺序可以任意颠倒,不影响库中的数据关系。
不借助第三方工具,通过
explain plan
查看SQL的执行计划。数据库的网状模型应满足的条件是:允许一个以上结点无双亲,也允许一个结点有多个双亲。
数据库并发操作带来的数据不一致性包括丢失修改、不可重复读、读“脏”数据。
事务四大特性(简称ACID)
1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。
2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。
3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。
4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。左连接时,结果集的行数可能大于左表的行数。
解释:如果 left join on的条件在右表中有所重复,那么最终记录数目会大于原表数量。
创建表:CREATE TABLE
创建视图:CREATE VIEW
创建索引:CREATE INDEX
CREATE SCHEMA 是 CREATE DATABASE 的一个代名词。
子模式DDL用来描述,数据库的局部逻辑结构。
SQL语言是(非过程化)的语言。
1.等值连接,在两个表中的广义笛卡尔积中选取属性值相等的元组
2.自然连接(特殊的等值连接),在等值连接的基础上去掉重复项
3.外连接分为左外连接右外连接
注:等值连接需要标出具体哪个元组相等
对数据表进行修改时,删除列可以省略column,添加列必须说明数据类型。
alter table employee drop column age;
alter table employee drop age;
关系模型的三个组成部分,是指关系数据模型的数据结构、数据操作和完整性约束。
存储过程的好处:重复使用、SQL优化、更加安全。
并发控制指的是当多个用户同时更新运行时,用于保护数据库完整性的各种技术。
- DCL(数据控制语言):grant revoke
- DML(数据操纵语言):insert delete update select
- DDL(数据定义语言):create drop alter
- TCL(事物控制语言):commit rollback
物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
在数据库系统中,外模式/模式映象保证数据的逻辑独立性,模式/内模式映象保证数据的物理独立性。
对于串行调度,各个事务的操作没有交叉,也就没有相互干扰,当然也不会产生并发所引起的。事务对数据库的作用是将数据库从一个一致的状态转变为另一个一致的状态。多个事务串行执行后,数据库仍旧保持一致的状态。 可串行性(Serializability) 是并发事务正确调度的准则。在RDBMS中,作为并发控制的正确性准则。一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度。
聚合函数MAX(<列名>)用于求某一列值的最大值,它对列名不限制数据类型。
数据库保护又叫做数据库控制,是通过四方面实现的,即安全性控制、完整性控制、并发性和数据恢复。
第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。
第二范式(2NF):首先是1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。
第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。
第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于,2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非主键列。
(1)实体类型的转换
将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。
(2)联系类型的转换
1)实体间的联系是1:1,
可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
2)实体间的联系是1:N,
则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
3)实体间的联系是M:N,
则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。注意:一对一关系,一对多关系不需要新表。
两星题
为了反映事物本身及事物之间的联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示,一个具体的数据模型应当正确地反映出数据之间存在的整体逻辑关系,所以数据模型质量的高低直接影响数据库性能的好坏。
共享锁:是非独占的,允许其他事物同时读取其锁定的资源(也可再加共享锁),但不允许修改。
独占锁(即排他锁):只能自己使用,不允许其他事物读取和修改。
如果想使用NULL,则需要使用IS NULL或者IS NOT NULL。如果将NULL与比较运算符,则结果都是NULL。
在使用limit子句时,如果没有足够的行,MySQL将只返回它能返回的那么多行。
数据库的基本特点是:
(1)数据可以共享(或数据结构化) (2)数据独立性
(3)数据冗余小,易扩充 (4)统一管理和控制数据库是按照一定的数据模型组织的,长期存储在计算机内,可为多个用户共享的数据的聚集。
选择是将表进行水平分割的运算,其目的是为了保留某些符合条件的元组。投影是对表进行垂直分割的运算,其目的是实现属性的筛选。
关系的描述称为关系模式。对关系的描述,一般表示为:关系名(属性1,属性2…..属性n)。例如:课程(课程号、课程名称、学分、任课老师)
限制输入到列的值的范围,应使用CHECK约束。
外键中的属性允许为null,只要没有被声明为not null。
在数据库的安全控制中,为了保证用户只能存取他有权存取的数据,在授权的定义中数据对象的(范围越小),授权子系统就越灵活 。
在嵌入式 SQL 中,当 SQL 语句中引用宿主语言的程序变量时,程序变量应(加前缀:)。
“元组”所表达的概念与二维表的”行”的概念最接近。
数据库系统包括数据库和数据库管理系统 [数据库系统>数据库管理系统>数据库]。
实体完整性指表中行的完整性
域完整性指列的值域的完整性,如数据类型、格式、值域范围、是否允许空值等等
参照完整性基于外键与被引用主键之间的关系,确保键值在所有表中的一致性
数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。
关系术语 一般表格的术语 关系名 表名 关系模式 表头(表格的描述) 关系 一张二维表 元组 记录或行 属性 列 属性名 列名 属性值 列值 分量 一条记录中的一个列值 非规范关系 大表中嵌着小表 外模式又称子模式,对应于用户级。外模式反映了数据库的用户观。
内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,它是数据库的存储观
模式又称概念模式或逻辑模式,对应于概念级.反映了数据库系统的整体观- SQL语句关键字顺序为:select, from, where, group by, having, order by, limit
- where增加分组前的限定,having增加分组后的限定
- group by 通常和集合函数SUM(),AVG(),MAX(),MIN(),COUNT()等结合在一起,后接限制条件语句 having,不可用where语句!
数据库常用的关系运算有三种
1、选择 从二维表中选出符合条件的记录,它是从行的角度对关系进行运算
2、投影,从二维表中选出所需要的列,它是从列的角度对关系进行运算:从关系中挑选出指定的属性组成新关系的运算
3、连接,同时涉及到两个二维表的运算,它是将两个关系在给定的属性上满足一定条件的记录连接起来 从而得到一个新的关系
- 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物理顺序。
- 非聚集索引:数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。
- 一个表只能有一个聚集索引和多个非聚集索引。
按所使用的数据模型来分,数据库可分为三种模型:层次、关系和网状。
在数据库中存储的是数据以及数据之间的联系。
数据库系统的数据独立性体现在不会因为数据存储结构与数据逻辑结构的变化而影响应用程序。
- 丢失更新:当两个或多个事物读入同一数据并修改,会发生丢失更新问题,即后一个事物更新的结果被前一事务所做更新覆盖 即当事务A和B同事进行时,事务A对数据已经改变但并未提交时B又对同一数据进行了修改(注意此时数据是A还未提交改变的数据),到时A做的数据改动丢失了
- 读‘脏数据’:指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
- 不可重复读:这是由于查询时系统中其他事务修改的提交而引起的。比如事务T1读取某一数据,事务T2读取并修改了该数据,T1为了对读取值进行检验而再次读取该数据,便得到了不同的结果。
- 幻读:幻读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,比如这种修改涉及到表中的“全部数据行”。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入“一行新数据”。那么,以后就会发生操作第一个事务的用户发现表中还存在没有修改的数据行,就好象发生了幻觉一样.一般解决幻读的方法是增加范围锁RangeS,锁定检索范围为只读,这样就避免了幻读。
按照规范的设计方法,一个完整的 数据库设计 一般分为以下六个阶段:
⑴需求分析:分析用户的需求,包括数据、功能和性能需求;
⑵概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
⑶逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;进行关系规范化。
⑷数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
⑸数据库的实施:包括编程、测试和试运行;
⑹数据库运行与维护:系统的运行与数据库的日常维护。数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括:日志文件、数据库后备副本。
数据库中,
optimize table TabName;
命令可以整理表数据文件的碎片。对数据库中表的字段进行相关操作时,添加时column可以省略,删除时column不能省略。
1
ALTER TABLE tableName DROP COLUMN columnName;
1
ALTER TABLE tableName ADD columnName;
三星题
1)候选键: 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了。(即该属性组内不应该存在一个真子集也能标识一个元组)。这样的属性组称作候选码。
2)主键:当有多个候选码时,可以选定一个作为主码,选定的候选码称主键
3)外键:关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键。
候选码可以唯一标识一个实体,可以有一个或者多个。
主码唯一且非空,也是唯一标识一个实体的码。
如果候选码有多个,可以从中选定一个主码。
- 模式:只能有一个
- 内模式:只能有一个
- 外模式:任意多个
索引类型分类:
普通索引:没有任何限制
唯一索引:不允许建立索引的列有重复的值,但可以有空值
主索引:特殊的唯一索引,不允许有空值
候选索引:也要求唯一性,一个表中可以有多个候选索引
视图设计的几种方法:
- 自顶向下。先全局框架,然后逐步细化
- 自底向上。先局部概念结构,再集成为全局结构
- 由里向外。先核心结构,再向外扩张
- 混合策略。1与2相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构
对于各种范式之间的关系如下: 5NF⊂ 4NF⊂ BCNF ⊂3NF ⊂ 2NF⊂ 1NF
- 等值连接是从关系R和S的广义笛卡尔积中选取A和B“属性值”相等的元组,所以只要两个关系里面的有元组属性值相等就可以进行
- 自然连接是要求R和S中有一个或者多个相同的属性组
3NF——只消除非主属性对主属性的传递依赖
BCNF——消除所有属性对主属性的传递依赖为了提高数据库的性能,需要针对系统设计基准测试进行压力测试,那么进行压力测试时需要考虑以下指标:
- 响应时间
- 并发性
- 吞吐量
关系运算中花费时间可能最长的运算是笛卡尔积。
数据库对象的四种视图模式:详细模式,小图标,大图标,列表。
WITH CHECK OPTION 用于限制视图,通过视图进行修改时,必须要能通过该视图看到修改后的结果,即对其的修改要再次满足查询中的条件。
若数据库中只包含成功事务提交的结果,则此数据库就称为处于(一致)状态。
ACCESS的字段属性,定义字段默认值的含义是该字段值不允许为空。
SQL结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常以及(冗余度大)的缺陷。
关于oracle系统进程和作用的描述:
- 数据写进程(dbwr):负责将更改的数据从数据库缓冲区高速缓存写入数据文件
- 监控进程(pmon) :负责在一个 Oracle 进程失败时清理资源
- 归档进程(arcn) :在每次日志切换时把已满的日志组进行备份或归档
- 系统监控(smon) :检查数据库的一致性,如有必要还会在数据库打开时启动数据库的恢复
概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是实体-联系模型。
数据库技术的根本目标是要解决数据共享的问题。
ORDB(对象关系数据库)中,同类元素的无序集合,并且允许一个成员可多次出现,称为多集类型。
复合类型有下列五种:
1.结构类型: 不同类型元素的有序集合。
2.集合类型: 相同类型元素的无序集合,并且所有的元素必须是不同的。
3.数组类型: 同类元素的有序集合。
4.多集类型: 同类元素的无序集合并且允许有重复的元素。
(5.列表类型: 类型相同并且允许有重复的元素的有序集合。)
数据库管理系统的主要功能是定义数据库。
在使用left jion时,on和where条件的区别如下:
- on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
- where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
四星题
约束主要有一下几种:
- NOT NULL : 用于控制字段的内容一定不能为空(NULL)。
- UNIQUE : 控制字段内容不能重复,一个表允许有多个 Unique 约束。
- PRIMARY KEY: 也是用于控制字段内容不能重复,但它在一个表只允许出现一个。
- FOREIGN KEY: FOREIGN KEY 约束用于预防破坏表之间连接的动作,FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
- CHECK: 用于控制字段的值范围。
- DEFAULT: 用于设置新记录的默认值。
共享锁(S锁):读锁,可查看但无法修改和删除,已加该锁则其他事务只能加S锁;
排他锁(X锁):写锁、独占锁,可写可读,已加该锁则其他事务不能再加任何类型的锁。RDBMS 是SQL的基础,同样也是所有现代数据库系统的基础,比如MS SQL Server, IBM DB2, Oracle, MySQL以及Microsoft Access。
hadoop是分布式数据库。
Access的数据库对象:
1、表,主要用于存储数据。
2、查询,主要用于提取数据。
3、窗体,用户与程序的交互。
4、报表,主要用于展示数据。
5、页,主要用于数据共享。
6、宏,用于自动化完成。候选码中属性称为主属性。
数据流程图(DFD)是用于描述结构化方法中(需求分析)阶段的工具。
sql注入中使用延时注入时常用的语句:
数据库 延时注入语句 MySQL 1. benchmark(100000000,md5(1)) 2. sleep(5) Postgresql 1. pg_sleep(5) 2. generate_series(1,10000) Microsoft Sql Server waitfor delay ‘0:0:5’ 事务是 DBMS 的基本单位,它是用户定义的一组逻辑一致的程序序列。
- 左联结,返回左表中所有记录及右表中联结字段相同的记录。
- 同理,右联结,返回右表中所有纪录及左表中联结字段相同的记录。
- 内部联结,只返回两个表联结字段相同的记录。
A INNER JOIN B:返回A和B中符合on条件式的记录
A LEFT JOIN B:返回A中的所有记录和B中符合on条件式的记录
A RIGHT JOIN B:返回B中的所有记录和A中符合on条件式的记录
关系规范化中的4个问题:
- 数据冗余,浪费很大的存储空间。
- 更新异常,由于数据冗余,当更新数据库中的数据时,系统要付出很大的代价来维护数据库的完整性,否则会面临数据不一致的危险。
- 插入异常,应该插入的数据未被插入
- 删除异常,不该删除数据的被删除
HAVING子句中应后跟(组条件表达式)。
在进行数据库逻辑设计时,可将E-R图中的属性表示为关系模式的属性,实体表示为元组,实体集表示为关系,联系表示为关系。
E-R图 关系模式 属性 属性 实体 元组 实体集 关系 联系 关系 关系型数据库:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
非关系型数据库:
NoSql、Cloudant、MongoDb、redis、HBase
Over
PS:
原文档丢失了,恢复回来的就只有这些了。当文档内容被自己亲手覆盖,真的是心痛到无法呼吸,差点就自闭了。想剁了自己的右手,是他点击了“确定”,蓝瘦、香菇。一周的心血毁于一旦,也让我也体会到了,在工作中,一定要细心,有些操作是无法挽回的,造成的后果是可怕的。在细心工作中逐步提高效率,细心、安全是前提。