搜档网
当前位置:搜档网 › 数据库笔记

数据库笔记

数据库笔记
数据库笔记

lec1 数据库概述

1.数据data:事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材

数据库Database:Data + Base,大的结构化数据集合,模拟现实中组织,由实体entities和联系relationships 构成

数据库管理系统DBMS:用于数据库储存、管理和查询的软件

数据库系统Database System = Databases + DBMS

2.描述数据

数据模型data model:描述数据的一组概念集合

模式schema:使用数据模型对数据集合的描述

关系数据模型relational data model:广泛使用的数据模型,由行列表组成,每个关系对应一个模式

3.DBMS的抽象层次(由外到内):

外模式:定义视图,针对不同用户展示不同视图

概念模式:定义逻辑结构,储存关系

物理模式:定义物理结构,逻辑关系如何物理储存在磁盘上

数据独立性:应用程序不受数据结构和储存方式的影响

在DBMS中查询关系:以非程序方式执行,由数据库优化查询方案,SQL语言,用户程序并发执行

并发控制Concurrency Control:确保不同用户程序之间互不影响

事务Transaction:数据操作的原子序列,每个被完全执行的事务都保证数据库处于一致状态,不完整的事务导致系统崩溃

先写日志WAL:在更改数据库前,写日志到安全位置,崩溃后由日志完成不完整的事务

lec2 实体关系模型

1.数据库设计:需求分析,概念设计(ER模型),逻辑设计,模式细化,物理设计,安全设计

概念设计:实体和联系的储存,完整性约束integrity constraints,关系模式<=>ER图

实体Entity:现实世界中的对象,DB中使用一组属性描述

实体集Entity(方框):每个实体集中的对象都有相同的属性(椭圆),每个属性有一个域domain,每个实体集有一个键key

键key:最小的属性集,值唯一标识集合中的实体

候选键Candidate key:一个实体可以有多个键

主键Primary key(下划线):选定一个候选键为主键

联系Relationship:关联两个或更多实体,由参与的实体唯一标识,

联系集Relationship set(菱形):相似联系的集合;n个实体的联系集成为n元(n-ary)联系集;相同实体集可参与不同联系集,或在相同联系集中扮演不同角色

键约束Key Constraints(箭头):每个发出箭头的对象最多拥有一个被箭头指向的对象

参与约束Participation Constraints:

完全参与total(粗线):一个实体集中每个实体都参与到粗线连接的联系中

部分参与partial:一个实体集中部分实体参与到连接的联系中

弱实体Weak Entities:只能通过与所有者实体的关系来标识,一个实体可以关系多个弱实体,弱实体必须完全参与标识的关系,弱实体只有部分键partial key(虚下划线)

类层次Class Hierarchies(三角形中ISA):

交迭约束Overlap constraints:三角形下方连接的n个实体对于上方连接的实体是n选1的关系(不重复)覆盖约束Covering constraints:三角形上方连接的实体至少要与一个下方连接的实体关系(完全参与)聚合Aggregation:允许建立实体集和关系之间的关系

2.关系数据库:

定义:关系的集合

关系模式Schema:指定关联名称和每个字段的名称和类型

关系实例Instance:一组元组,包含关系模式的每个字段

查询语言:SQL,声明性语言

数据定义语言DDL:创建、修改、删除关系,指定约束,管理用户

数据操作语言DML:指定查询,创建、修改、删除元组

创建关系:CREATE TABLE + 关系名+ (属性名+ 字段类型)

插入元组:INSERT INTO + 关系名+ (属性名)+ VALUES + (属性值)

删除元组:DELETE FROM + 关系名WHERE + 条件

键:不同关系中关联语言的一种方法,是一种完整性约束,保证数据独立性

主键/超键superkey:关系中任意两个元组的超键值均不同;当一个关系有多个键时,仅有一个键是超键,其他是候选键

SQL定义超键:PRIMARY KEY + (属性名)

外键Foreign key:一个关系中的字段用于引用另一个关系中的元组,必须对应另一个关系的主键,类似逻辑指针;执行所有的外键约束实现引用完整性

SQL定义外键:FOREIGN KEY + (属性名)+ REFERENCES + 关系名

删除被引用关系中元组时保证引用完整性的方案:

同时删除引用关系中的对应元组(Cascade)

禁止删除被引用关系中被引用的元组(No Action)

将引用的值设为default(Set Default)

将引用的值设为null,显示unknown或inapplicable(Set NULL)

完整性约束IC:保证数据库中任何实例都正确,在定义关系模式时定义,在修改关系时检查

查询语义:概念评价方法:FROM做各个关系叉积,WHERE检查条件并选择符合条件的元组,SELECT删除不需要的字段;实际将做效率更高的调整

弱实体集:被转换为单个表,当所有者实体被删除时,弱实体集也被删除;FOREIGN KEY + (属性名)

REFERENCES + 关系名+ ON DELETE CASCADE

lec3 关系查询语言

1.查询语言:负责数据库的操作和检索

关系代数Relational Algebra:更多操作,善于表示执行计划

关系演算Relational Calculus:善于描述,不表示计算,非过程,声明式

2.关系代数

基本运算符:

选择Selection(σ):选择适当的行

投影Projection(p):选择适当的列,消除重复(真实系统中通常忽略)

叉积Cross-product(x):连接两个关系,继承字段名(可自行指定同名字段:C(第n个字段->字段名))差Set-difference(-):包含在第一个关系,但不在第二个关系中的元组

并Union:包含在第一个关系或第二个关系中的元组,两关系需满足并相容union-compatible(各字段数量和类型均依次相同)

每个基本运算操作都返回一个关系,因此可以组合操作,如:R 交S = R - (R - S)

连接join:计算叉积,选择合并在两关系中都出现的属性的相同值的元组,删除其他元组;条件连接、相等连接3.关系演算

查询:{T|p(T)},返回p(T)为真的元组

原子公式:

T 属于Relation

T.a op T.b

T.a op 常数(op = >/=/<=/!=)

公式:

原子公式

非p、p或q、p且q、p推出q(等价于非p或q)

存在R(p(R))、一切R(p(R))

变量:

自由变量Free Variables:{T|p(T)}中T是自由变量

绑定变量Bound Variables:除T外所有变量是绑定变量,由全称量词/存在量词指定不安全查询:语法正确但答案无限的查询,{T|非(T属于某关系)}

关系完整性Relational Completeness:查询语言可以表达关系代数中的任何查询

lec4 查询语言SQL

1.SQL基础

SELECT [DISTINCT] target-list

FROM relation-list

WHERE qualification

GROUP BY grouping-list

HAVING group-qualification

FROM:计算表的叉积

WHERE:检查条件,丢弃不满足的行

SELECT:删除不需要的属性

GROUP BY:组和集合的形式

HAVING:消除GROUP

DISTINCT:可选,表示查询结果消除重复的行

2.计算优化Query optimizer:选择性能最好的计算方式得到相同的答案

通配符:S.sname LIKE 'B_%B'表示满足条件的属性值

"_":任意一个字符

"%":任意数量字符

集合运算:

UNION:两个查找结果集合的并

INTERSECT:两个查找结果集合的交

EXCEPT:两个查找结果集合的差

IN:用法同LIKE,选择属于IN后集合的属性值

NOT IN:与IN相反

EXISTS:选择补集

op ANY/ALL(op = >/=/<=/!=):选择满足条件的属性值

空值NULL:表示未知unknown或无关inapplicable的字段值,使问题复杂,需要设置三值逻辑true/false/unknown 3.连接Joins:

SELECT (column_list)

FROM table1_name [INNER | {LEFT |RIGHT | FULL } OUTER] JOIN table2_name ON qualification_list WHERE qualification

内连接Inner Join:默认连接,只返回匹配的行

左外连接Left Outer Join:返回所有匹配的行和左关系中未匹配的行,null表示未匹配的属性

右外链接Right Outer Join:与左外连接相似

全外连接Right Outer Join:返回所有匹配的行和左右关系中未匹配的行,null表示未匹配的属性

4.视图Views:定义数据库外部模式

CREATE VIEW view_name

AS select_statement

有些情况下,视图可以代替数据库查询

5.一般性约束General Constraints

CREATE TABLE + 关系名+ (属性名+ 字段类型, CONSTRAINT + 约束名+ CHECK + 条件)

在完整性约束IC涉及到更多键时使用,可以使用查询表示约束,在插入和更新时检查,约束可以被命名

lec5 数据储存:磁盘和文件

1.DBMS结构(自顶向下):查询优化和执行->关系运算符->文件和访问方法->缓冲区管理->磁盘空间管理

DBMS储存在磁盘(随机存储)/磁带(连续存储)中,读写需经过内存完成,开销较大,磁盘检索时间与存储位置有关

单位固定:读写最小单位为磁盘块/数据页(8K)

2.磁盘组成:自旋盘、磁头组,同一时刻仅一个磁头在完成读/写,磁盘快大小是扇区大小的整数倍

访问磁盘时间:

寻道时间seek time:伸缩磁头臂使磁头移动到正确的轨道,0-10ms

旋转时间rotational delay:等待自旋盘旋转岛正确的扇区,0-3ms

传输时间transfer time:磁头读/写磁盘上的数据,0.2ms/8K数据块

减少I/O开销需减少寻道、旋转时间:文件块按序列排列在磁盘上(同一轨道/同一柱面/相邻柱面),连续扫面,预读取

磁盘空间管理:最底层DBMS负责管理,以供上层调用

3.缓冲区管理:DBMS只能处理读入内存的文件,缓冲区管理隐藏了并非所有文件都在内存中的事实

上层请求->缓冲池(内存中)->数据库(磁盘中)

缓冲池信息表包含<数据页,页号,是否被钉住pin_count,是否修改dirty>

如果选择的页面不在缓冲池中:

选择一个pin_count == 0的页面替换

如果被选中的页面被修改过(dirty),将它写回磁盘

将请求的页读入池中

钉住pin一页将返回它的地址,同时pin_count++

被请求的页面最终会解钉并根据dirty判断是否需要写回磁盘

选择缓冲池中替换的页的策略:最近最少使用LRU、MRU、clock等,对I/O时间影响很大

最近最少使用LRU:

通过一个指向缓冲池中页的指针队列,依次保存解钉的页,优先替换队列首页

优点:直观简洁,对经常重复访问页有效

缺点:连续扩散Sequential flooding,假设缓冲池大小为10,文件大小为11,对文件的每次扫描都需要重新读文件的每一页

时钟替换clock:与LRU类似,较之多设计1位,即替换第二次移动到队列首的页

4.记录文件:DBMS上层仅操作记录和记录文件

文件file:一组页面,每个页面包含记录的集合,支持插入、删除、查找、修改、遍历

堆文件Heap Files:没有特定顺序的记录集合,根据文件增减而增删磁盘页,需要跟踪文件中的页、页中空白和记录

页链表:用头指针分表链接满数据页和有空数据页

页目录:目录是一组页,包含<页指针,空白字节数>

索引Indexes:有效回答基于属性值查询的文件结构

记录格式:

定长记录Fixed Length:将文件中所有记录字段的类型信息储存在目录中,可以直接计算第i个元组的储存位置

紧缩型:空白记录全部在页尾,最后记录一个数字表示该页记录条数

离散型:空白记录分散在全页,最后记录一个大小为n的数组表示第n条记录是否为空和数字n表示该页记

变长记录Variable Length:记录之间用特殊字符分隔,或在页头部设置n个分别指向页中保存的n个记录的指针

页末记录一个大小为n的指针数组表示第n条记录的位置和长度和数字n表示该页记录条数

5.系统目录

对每个文件:保存名称、文件位置、文件结构,对每个属性保存属性名称和类型,对于每个索引保存索引名称,实现完整性约束

对每个索引:保存结构和搜索键

对每个视图:保存视图名称和定义

统计、授权、缓冲池大小等

lec6 文件和索引

1.RecordId:由存储这个记录的槽所在的数据页ID和槽的编号组成,

逻辑上,文件由记录组成;物理上,文件由数据页组成,而每个页包含一组记录

从随机访问的角度来说,读写一条记录需要一次磁盘I/O

文件在磁盘上的结构对数据库访问开销影响很大

2.文件组织File Organizations:

堆文件Heap files:适用于经常遍历扫描文件的系统

排序文件Sorted Files:适用于检索搜索键或范围擦找

聚簇文件Clustered Files:数据记录顺序与索引中数据项顺序相同或接近

3.分析代价模型Clustered Files:

分析均匀平均工作的负载情况

忽略:连续或随机I/O,预读取,所有内存操作

单记录插入删除

等值选择

堆文件:总是插入到文件末尾

排序文件:文件删除后需要压紧,仅搜索搜索键内容

4.索引Indexes:基于磁盘的快速查找程序

用途:允许在一个或多个字段中按值检索

搜索键Search key:关系中任何一列的子集,不一定是键,可以有多个匹配查找的元组

索引文件组成:

底部:数据项Data Entry <=> 数据记录data record

直接链接数据记录,一个文件只能有一个索引,聚簇

匹配符合的记录id,每个文件可以有多个不同的索引

匹配符合的记录链表,每个文件可以有多个不同的索引,定长记录中比记录id更紧凑顶部:引导部分,由树索引或Hash索引组成

聚簇文件:

优点:范围速锁高效,磁盘调度、预读取高效

缺点:维护成本高,堆文件需要先排序

5.开销小结

堆文件排序文件聚簇文件

遍历BD BD 1.5BD

等值搜索0.5BD D*log(2)B D*log(F)1.5B

范围搜索BD [log(2)B + #matchPG]*D [log(F)B + #matchPG]*D

插入2D D*(log(2)B+B) D*(log(F)1.5B+1)

删除0.5BD+D D*(log(2)B+B) D*(log(F)1.5B+1)

规定:

B:数据库的数量

R:每个数据块中的记录数量

D:读写一块的平均时间

F:索引树的扇出(平均分支数)

#matchPG:匹配的页数

6.复合搜索键Composite Search Keys:搜索键是字段的组合,如,可按字典序排序

lec7 树形结构索引

1.树形索引支持等值和范围检索,Hash索引仅支持等值检索

索引顺序存取方法ISAM:静态树,插入删除仅影响叶节点

创建:顺序分配数据记录,按搜索键排序,链接索引页,必要时增加溢出页

搜索:从根节点起,依次比较搜索键直到叶节点,开销Cost=log(F)N,无需“下一页”指针

插入:查找该页所属的叶节点并插入,所有页满时增加溢出页,用链表连接

删除:查找并删除,若获得一个空的溢出页,则删除该页并从链表中取消

B+树:动态,在插入和删除时调整结构,每个节点包含d<=m<=2d个元素(d是树的秩),每个子树高度相同(平衡树),各个节点都是

例:一颗秩为100的树,填充因子通常为66.7%,则平均扇出为2*100*66.7%=133,4级树可检索19G数据插入算法:

找到插入节点L,若L不满,直接插入;若L满,将L均匀分裂为L和L2,最中间的值向上插入到父节点中,可能递归执行,使树长高

如果不希望分裂节点,可以重分布节点,将被插入的节点与它左/右不满的节点重分布以容纳新元素

删除算法:

找到删除节点L,若L中元素个数>d,直接删除

若L中元素个数<=d,尝试与它的左/右节点重分布,若重分布失败,和左/右节点合并

若发生合并,需要删除父节点中指向它们之间的元素,可能递归执行,使树变矮

块加载:若数据量大,可将多个相邻元素合并视为一个,参与树运算

lec8 Hash索引

1.Hash索引支持等值检索,与树形相似的有静态和动态

静态哈希Static Hashing:

索引文件由一系列桶组成,每个桶有一个主页,可能链接溢出页

桶数量固定,主页按顺序分配,不会清理

桶内包含数据项,由公式h(k) mod N确定搜索键为k的数据在N号桶中

哈希函数h(k)作用于搜索键k,将各个元素散列到N个桶中,例:h(k)=(a*k+b)

缺点:长溢出链影响性能

可扩展哈希Extendible Hashing:

桶满时重新组织文件,将桶数翻倍

使用桶指针目录,翻倍桶数只需要翻倍目录(体积更小)

目录的全局深度Global depth:用于检索属于哪个桶的最大位数

桶的局部深度Local depth:用于检索是否属于这个桶的位数,可能比全局深度小1(桶指针还未扩展到该桶)当插入导致桶的局部深度比全局深度大时,需要做桶扩展

低位哈希扩展、高位哈希扩展

等值检索:如果目录能够全部读入内存,等值检索只需要1次I/O

删除:如果删除导致一个桶空,将它的桶指针指向上次分裂得到的另一个桶

线性哈希Linear Hashing:

另一种动态哈希方案,是可扩展哈希的另一种选择,用溢出页解决长溢出链的问题

哈希函数族hi(k)=h(k) mod (N*2^i)

桶分裂方式:循环分裂

外循环:循环分裂级别level从0递增

内循环:在第level级,从0到第N*2^level-1个桶逐个分裂,next指针指向要分裂的桶,循环结束得到N*2^(level+1)个桶,接着进入下一个循环

查找:如果hlevel(k)的结果在[next, Nk]之间,该结果对应的桶是查找结果,否则结果可能在hlevel(k)和hlevel(k)+Nk两个桶中(已分裂)

插入:若目标桶有空,直接插入,若桶满,执行内循环直到分裂该桶

lec9 外排序External Sorting

1.外排序:对数据多遍处理,使用较少内存排序庞大数据集

两路归并外排序Two-Way External Merge Sort:

逐页依次读入内存,按搜索键排序并写回,占用1页空间

重复加倍有序段长,排序并写回,占用3页空间

总开销:Cost = 2N * ([log(2)N] + 1),其中[x]表示比x大的最小整数

外归并排序General External Merge Sort:

若内存中B页空间可用,则开销Cost = 2N * ([log(B-1) [N/B]] + 1)

改进:连续读块,双缓冲,不排序

聚簇B+树应用于排序,通常只需1次I/O

lec10 关系操作实现

1.利用关系代数等价性,调整运算顺序,以期望用更小的性能代价计算得到同样的答案

运算开销取决于:

结果大小:可近似表示为(size of R) * selectivity,其中selectivity为选择因子

可用的索引:

若没有可用的索引,则需遍历整个关系,开销为关系总页数

若有可用索引,则通过索引查找,开销Cost=通过索引查找符合条件的数据项开销+链接相应数据记录开销(区别聚簇与非聚簇索引)

改善非聚簇索引:找到符合条件的数据记录,将他们按键值排序,仅取他们的键

一般选择条件:

合取范式CNF:(A or B) and (C or D),ABCD代表选择条件

在搜索键前缀创建合取体的B+树,如: matches a=5 AND b=3

一般选择方法:

a.查找开销最低的访问路径(预估索引或遍历中需要最少页面开销的方法),用它检索其他没有直接索引的元组

b.应用两个或更多匹配的索引,从每个索引中得到键的集合,计算叉积,从交叉处检索键的记录

投影Projection:用于消除重复

步骤:扫描整个关系并筛选需要的属性,排序,删除相邻重复的属性值

开销:在每个步骤完成时都写入临时表

改进:为避免临时文件,在运行时工作

其他技巧:

如果索引中包含了所有需要的属性,可以只扫描索引(唯索引)

如果B+树前缀包含所有需要的属性,可以只比较相邻索引(有序唯索引)

连接Joins:

简单嵌套循环连接:

若两关系均不能完全读入内存,A x B的开销Cost=A的页数+A的页数*A每页的元组数*B的页数

若至少一个关系能完全读入内存,A x B的开销Cost=A的页数+B的页数

页嵌套循环连接:若两关系均不能完全读入内存,A x B的开销Cost=A的页数+A的页数*B的页数

块嵌套循环连接:若两关系均不能完全读入内存,A x B的开销Cost=A的页数+A的页数*B的页数/内存能提供的空间页数

索引嵌套循环链接:

A x B的开销Cost=A的页数+A的页数*A每页的元组数*索引查找对应B元组的开销

若索引直接链接数据记录,查找对应元素开销Cost=从根节点查找到叶节点的开销

若索引链接符合的记录id或链表,开销Cost=查找rid的开销(B+树通常为2-4次I/O)+通过rid查找数据记录的开销

若为聚簇索引,通过rid查找记录开销Cost=每页数据1次I/O

若为非聚簇索引,开销Cost=至多每条数据1次I/O

排序归并链接算法:

先将两关系分别排序,再计算连接

A x B的开销Cost=排序A+排序B+(A的页数+B的页数),极差情况下最后一项可能为两者乘积

其他注意:

在合并的最后过程再做连接操作

若内存足够大,可以先将两关系分别读入排序写出,再读入做连接,A x B的开销Cost=3*(A的页数+B的页数)

当两关系或任一关系已经排序,或要求输出有序元组时,最好选择排序归并连接

lec11 关系查询优化

1.查询转化为关系代数,再转化为树,连接关系分支,每个操作符可以以不同顺序实现

执行计划Plan:关系代数运算数和每个操作的算法选择,尽可能选择最好情况,避免最坏情况

基于成本的查询子系统:基于之前的步骤开销进行修改的启发式方法

2.优化目标:找到更快的计划来得到同样的答案

优化方法:基于关系等价的不同实现方法

下推(优先执行)选择操作

使用索引

连接运算时更少页数的关系在前

排序后连接

成本估算:估计树中每个操作的大小

成本计算公式

数据大小估计

考虑CPU和I/O开销总和

搜索算法:对计划进行估计,选择开销最小的方案

单位优化:查询块Query Blocks

将查询分解为多个查询块,逐个优化,再通过操作合并

左深连接树left-deep join trees:查询块连接后作为左子树和其他查询块连接

3.关系查询等价:

选择级联:选择符合c1且c2且…且cn条件(关系R) <=> 选择符合c1条件(选择符合c2条件(…(选择符合cn 条件(关系R))))

选择交换:选择符合c1条件(选择符合c2条件(关系R)) <=> 选择符合c2条件(选择符合c1条件(关系R))

投影级联:投影属性a1(关系R) <=> 投影属性a1(投影属性a1、a2(…(投影属性a1、a2…an(关系R))))

叉积结合:(R x S) x T <=> R x (S x T)

叉积交换:R x S <=> S x R

4.优化方法:

加速投影,尽快投影除去不需要的属性

跨越关系的选择等价于连接

若选择关系只涉及连接的其中一个关系,先做选择

估算缩减因素RF:输出基数/输入基数

选择计算(假设属性中所有值均匀分配且相互独立):

某属性=某值:RF=1/该属性不同值个数

关系A某属性值=关系B某属性值:RF=1/max(关系A该属性不同值个数, 关系B该属性不同值个数) 某属性>某值:RF=(该属性最大值-该值)/(该属性最大值-最小值)

缺少相关数据,直接计算RF=1/10

连接计算(将R加入S,属性A相同):

若A是R指向S的外键:RF=1/R的元组数

对R中每个元组:RF=R元组数*S元组数/S中A的不同值个数

对S中每个元组:RF=R元组数*S元组数/R中A的不同值个数

替代枚计算方法:

单表查询:

包括选择、投影、组/集合运算

考虑每个可用路径,选择开销最低的

选择/投影运算在读文件时同时进行

组/集合运算结果流水写出内存

开销:

存在选择属性对应的索引:Cost=B+树高度+1

存在一个或更多选择属性的聚簇索引:Cost=(索引的页数+关系的页数)*各个条件RF的乘积

存在一个或更多选择属性的非聚簇索引:Cost=(索引的页数+关系的元组数)*各个条件RF的乘积顺序扫描:Cost=关系的页数

查询多个关系:

左深连接树,便于找到所有生成计划并比较开销,中间结果不写入临时文件

生成计划:

关系加入树的顺序

每个关系的访问方式

每个链接的方法

N次计算:

第一次:用最小的开销读入一个关系

第N次:用最小的开销读入一个关系,并和之前的关系树连接成新关系树

对每次关系加入都保持当前连接树开销最小,同时保证每次加入操作开销最小

排序、分组、集合计算最后进行,注意剪枝

lec12 模式求精和表单

1.模式求精Schema Refinement:一致性,标准化

冗余:与关系模式相关的问题的根源,导致插入/删除/修改异常

完整性约束:识别冗余并加以改进

主要改进方式:分解decomposition

2.函数依赖FD:

用于检测冗余,X->Y表示对于关系R中所有元组,如果X属性相同,则Y属性一定相同

如果K->关系R中所有属性,则K是R的超键

问题:插入/删除/修改异常,根源是数据冗余

解决:模式分解,将依赖属性分解为单独的表,需要时再做连接

函数依赖推理:

A->B,C <=> A->B 且A->C

A->B 且B->C => A->C

F+:函数依赖集F的闭包

推导规则:

自反率Reflexivity:如果X包含Y,则X->Y

增补率Augmentation:如果X->Y,则XZ->YZ

传递率Transitivity:如果X->Y且Y->Z,则X->Z

合并Union/分解Decomposition:A->B,C 等价于A->B 且A->C

属性闭包Attribute Closure:

根据FD推导规则,重复进行闭包运算直到集合没有变化,得到属性F在关系R中的闭包F+

如果F+包含了R的所有属性,则F是R的超键

3.范式Normal Forms:

如果关系R符合某种范式,说明R已经回避了某些问题

范式可以帮助判断一个关系是否有必要继续分解

1NF > 2NF > 3NF > BCNF逐个严格

第一范式1NF:保证所有属性原子性,数据库表同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性

第二范式2NF:在第一范式基础上,要求实体的属性完全依赖于主关键字,不能存在仅依赖主关键字一部分的属性

第三范式3NF:在第二范式基础上,属性不依赖于其它非主属性

即满足:X->A是平凡函数依赖(X包含于A)或X是超键或A是属性R的候选键

标准化范式BCNF:在第三范式基础上,数据库表中不存在任何字段对任一候选关键字段的传递函数依赖则符合第三范式

即满足:X->A是平凡函数依赖(X包含于A)或X是超键

即关系R中没有传递函数依赖

满足BCNF的关系中每个元组的每个字段信息都无法被FD单独推出

4.模式分解Decomposition of a Relation Scheme:

不满足范式的关系可以被分解为多个满足范式的关系,每个关系都是原关系的子集,且它们的并集构成R

分解问题:

可能有损(连接后不能恢复原关系)

需要连接运算检测依赖性

部分查询开销增大

无损分解:分解成两个关系的属性交集是原关系的键时,该分解无损

BCNF分解:

a.若R 不是BCNF,其中违反范式的函数依赖是X->A,将R 分解为R-A,和XA

b.如果R-A 或XA 不是BCNF 则继续分解,此时各自的函数依赖是F 的投影,而非F

分解顺序与结果有关,不唯一,无损分解,可能会丢失一部分未能成功投影的函数依赖

3NF分解:

方法1:求最小函数覆盖

a.所有函数依赖变成标准形式(右边单属性)

b.最小化每个依赖的左边,即检查每个依赖内左边的每个属性能否删除

c.删除冗余的函数依赖,观察左边比较“大块”的依赖,看删除后F+是否改变。

方法2:在最小覆盖的基础上分解

a.其中违反范式的函数依赖是X->A,将R 分解为R-A,和XA

(整理)SQLServer数据库基本知识点.

SQL Server 数据库基本知识点一、数据类型

二、常用语句 (用到的数据库Northwind) 查询语句 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。例如,下面的语句查询Customers 表中公司名称为“Alfreds Futterkiste”的ContactName字段和Address字段。 SELECT ContactName, Address FROM Customers WHERE CompanyName='Alfreds Futterkiste' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示Customers表中所有列的数据: SELECT * FROM Customers 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT ContactName, Address FROM Customers 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题 as 列名 列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT ContactName as 联系人名称, Address as地址 FROM Customers 4、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 SELECT DISTINCT(Country) FROM Customers 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 * FROM Customers SELECT TOP 20 PERCENT * FROM Customers (二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在Orders和Customers表中同时存在CustomerID列,在查询两个表中的CustomerID时应 使用下面语句格式加以限定: select * from Orders,Customers where Orders.CustomerID =Customers.CustomerID 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名 表名别名 select * from Orders as a,Customers as b where a.CustomerID =b.CustomerID SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 例如: select * from Customers where CustomerID in (select CustomerID from Orders where EmployeeID=4) 此例中,将SELECT返回的结果集合给予一别名CustomerID,然后再从中检索数据。 (三) 使用WHERE子句设置查询条件 WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:select CustomerID from Orders where EmployeeID=4

高级数据库复习笔记

高级数据库复习笔记 2007年1月22日 10:02 对照复习PPT摘下来的一些PPT内容 第一章、第二章 第一章 1、分布式数据库系统 定义: 物理上分散而逻辑上集中的数据库系统 特点:物理分布性、逻辑整体性、站点自治性 分布式数据库系统的分类:同构型、异构型、集中型、分散型、可变型 2、为什么需要OODB 新领域的应用需求... 3、事务处理 第二章 1、分布式数据库的体系结构 2、分布式数据库的问题 分布式DB设计;分布式查询处理;分布式并发控制;分布式数据库的可用性 3、分布数据独立与分布透明访问 分段透明;位置透明;本地映射透明;无透明

第三章、第四章 第三章 DDB设计 1、DDB设计的两个问题 分段和分配 即:如何分割数据及如何分配这些数据到不同站点 2、DDB设计目标 优化响应时间/吞吐量/费用/… 3、数据分段 分段原则: 假若有全局关系R被分段为子关系(片段)集合F = {F1, F2, …, Fn} 则 F满足完整性、不相交性、重构性 水平分段:以关系自身的属性性质为基础,执行“选择”操作,将关系分割成若干个不相交的片段 导出分段:从另一个关系的属性性质或水平分段推导出来 垂直分段:通过“投影”操作把一个全局关系的属性分成若干组 4、数据分配简单模型 设所有的读、写、存储代价都是1,仅比较远程读写次数和单机存储代价,选一个最优的 仿照作业答案中的做法,可以画个表,写出个事务在各方案下的读写总次数来比较哪个较优。一般只考虑远程读写,本地操作忽略。 5、最佳适应方法 片段i在站点j被应用K执行,k在站点j上激活的频率乘以激活一次的读写总次数,计算一个最大值,片段i就应该存放在相应的站点j上 6、所有得益站点方法 假设片段i放在站点j上,计算所有应用对它读的次数和写的次数,如果读的次数比写的次数多,即Bij>0,那么就应该把i放在站点j上 第四章分布式查询处理 1、全局查询:涉及多个站点数据, 优化复杂 局部查询:只涉及本地. 单个站点的数据, 优化同集中式 2、查询变换 下推 PJ(投影), SL(选择),上推UN ;消除公共子表达式;将全局转换为段上查询;消除空关系;分组操作与聚集操作 第五章、第六章 第五章 1、基于半连接操作的连接操作 目标:减少通讯量 执行步骤如下:

《互联网数据库》实践考核复习资料

《互联网数据库》实践考核复习资料 一、单项选择题 1.在数据库治理技术的进展过程中,经历了人工治理时期、文件系统时期和数据库系统时期。在这几个时期中,数据独立性最高的是()时期。 A.数据库系统 B.文件系统 C.人工治理 D.数据项治理 2.层次模型不能直截了当表示() A.1:1关系 B.1:m关系 C.m:n关系 D.1:1和1:m关系 3.实体和属性的关系是(B) A.一个属性对应于若干实体 B. 一个实体能够由若干个属性来刻画 C.一个属性包含有若干实体 D.一个实体仅能够由一个属性来刻画 4.域的概念是() A.属性的储备空间 B.属性的取值范畴 C.属性的物理空间 D.属性的复杂程度 5.在一个关系中如果有如此一个属性存在,它的值能唯独地标识关系中的每一个元组,称那个属性为() A.关键字 B.数据项 C.主属性 D.主属性值 6.关系数据库治理系统应能实现的专门关系运算包括() A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表 7.在关系代数的专门关系运算中,从表中取出满足条件的属性的操作称为( )

A.选择 B.投影 C.连接 D.扫描 8.下面关于运算的叙述,正确的是( ) A.任何一种运算差不多上将一定的运算符作用于一定的运算对象上,得到预期的运算结果 B.任何一种运算差不多上将一定的运算对象作用于一定的运算符上,得到预期的运算结果 C.任何一种运算差不多上将一定的运算对象作用于一定的运算方法上,得到预期的运算结果 D.任何一种运算差不多上将一定的运算方法作用于一定的运算对象上,得到预期的运算结果 9.作为域关系演算的谓词变元的差不多对象的是( ) A.域变量的重量 B.即元组变量在域变量上的逻辑映射 C.元组变量 D.元组变量的重量,即域变量 10.SQL语言具有( )的功能 A.关系规范化、数据操纵、数据操纵 B.数据定义、数据操纵、数据操纵 C.数据定义、关系规范化、数据操纵 D.数据定义、关系规范化、数据操纵 11.检索学生姓名及其所选修的课程号和成绩.正确的SELECT语句是( ) A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE F ROM SWHERE SN=”王华”) B. SELECT SN,AGE,SEX FROM S WHERE SN=”王华” C. SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN=”王华”) D. SELECT SN,AGE,SEX FROM S WHERE AGE>王华. AGE 12.SQL语言中,外模式对应于( ) A.视图和部分差不多表 B.差不多表

(考研复试)数据库笔记

1:数据:描述事物的符号记录 2:数据库是长期存储在计算机内,有组织可共享的大量数据的集合。 3:数据库管理系统维语用户和操作系统之间的一层数据管理软件,具有,数据定义,数据组织管理,数据操纵,数据库事务管理和运行管理,数据库建立和维护。 4:数据库系统:计算机系统引入数据库后的系统,简称数据库。 5:数据管理技术3阶段:人工管理阶段:数据不保存,应用程序管理数据,数据不共享,数据不具有独立性。文件管理阶段:数据可以长期保存,文件系统管理数据,数据共享性差冗余大,数据独立性差。数据库系统阶段:数据结构化,数据共享性好,冗余低,易扩充,独立性高。 6:数据模型分为:第一类:概念模型。第二类是逻辑模型和物理模型,逻辑模型有(层次模型,网状模型,关系模型,面向对象模型,对象关系模型),物理模型:对数据最低层的抽象,描述数据库在系统内部的表示方式和存取方式。从现实世界到概念模型的转换是由数据库设计人员完成,从概念模型到逻辑模型转换由数据库设计人员和工具完成,逻辑模型到物理模型就由DBMS完成。 7:数据模型由:数据结构(描述数据库对象和对象之间的关系),数据操作(对数据库中各对象的操作的集合),完整

性约束(数据和其联系所具有的制约)三部分组成。 9:层次模型:简单清晰,查询效率高,良好的完整性支持,但是和现实世界不符,查询子女必须通过双亲。网状模型:更直接的表达现实世界,存取效率高,但是结构复杂。关系模型:简历在严格的数学模型上。概念单一,简单易懂,存取路径对用户透明,高独立性,保密性,但是查询效率不高。10:数据库三级模式结构:外模式,模式,内模式,外模式有多个,就是视图的意思,模式就是数据的逻辑结构,内模式就是物理结构。 11:三级结构有两层映像:外模式/模式映像:修改此映像保证外模式不变,保证逻辑路理性,模式/内模式映像,修改此映像保证模式不变,保证物理独立性。 12:数据库系统由数据库,数据库管理系统,应用系统和数据库管理员构成。 13:关系数据库:候选码:某一列的值能唯一标识一个元组。主码:候选码之一。候选码们的属性称为主属性, 14:实体完整性:主码不为空。参照完整性:关系的外码一定为其他关系的主码,或者外码全部为空。用户定义完整性:比如XX不能为空,XX只能取指定值。 15:SQL 结构化查询语言 16:查询:select。定义:create,drop,alter。操纵:insert,update,delete。控制:grant,revoke。

数据库原理学习笔记

第一章,数据库系统概述 1.1 1,数据(DATA):数据是数据库存储中的基本对象,描述事务的符号记录。 数据解释;对数据含义的说明,数据的含义成为数据的语义。 2,数据库(DB):长期存储在计算机内,有组织的可以共享的数据的集合。 3,数据库管理系统(DBMS):数据库管理系统软件。 (1),数据定义功能(DDL,数据定义语言),对数据库重的数据对象进行定义(2),数据操纵功能(dml 数据操纵语言) (3),数据库的运行管理,保证数据的安全性,完整性,系统恢复,多用户对数据库的并发使用 (4),数据库的建立和维护功能,数据库初始数据输入,切换,数据库的存储,回复功能,数据库的重组功能,性能监视分析功能 4,数据库系统(DBS):由DB DBMS DBA 应

用系统组成。 1.2 数据的处理指的是对各种数据进行搜集存储加工和传播 数据管理,对数据进行分类组织编码存储和检索和维护 数据库管理技术经历了人工管理,文件系统,数据库系统三个阶段。 数据库系统管理的特点 1,数据结构化,与文件系统的根 本区别,可以存储数据库中的 某一个数据项,某一组数据项,, 一个记录或一组记录。 2,共享性高,冗余度低,易扩充 3,数据的独立性高 a)物理独立性 b)逻辑独立性 4,数据由DBMS统一管理和控制 a)数据的安全性保护 b)数据的完整性检查,即正确性 c)并发控制数据库恢复 数据库系统的组成

1,数据库 a)硬件平台及数据库; i.要求有足够大的内存 ii.要有足够大的磁盘的直接存储设备 iii.要求系统有较高的通道,提高数据的传输率 b)对软件的要求 i.DBMS 数据库的建立维护和使用 配置的软件 ii.支持DBMS运行的操作系统 iii.具有数据库借口的高级语言及其编译系统 iv.以DBMS为核心的应用开发工具v.为特定应用环境开发的数据库应用系统 c)人员数据抽象级别不同,具有不同 的数据视图 i.数据库管理员 1.决定数据库的信息内容和结构 2.决定数据库的存储结构和存储 策略(为了提高存取效率和空

自考互联网数据库重点考点

互联网数据库 第一章绪论 1.数据库技术在数据库系统阶段的特点: 1数据结构化 2 数据共享性高冗余量小,易扩充 3 数据独立性高 4 统一的数据管理和控制 5 数据的最小存取单位是数据项。 2.数据模型通常由数据结构数据操作盒完整性约束三个要素构成a数据结构:用于描述系统的静态特征b数据操作用于描述系统的动态特征c约束条件是一组完整性规则的集合 第二章关系数据库简介 3.关系数据语言分为三类:a关系代数语言如ISBL b 关系演算语言分为元祖关系演算语言APLHA QUEL和域关系演算语言QBE c 具有关系代数和关系演算双重特点的:SQL 关系模型中三种完整性约束:实体完整性参照完整性用户自定义的完整性 关系代数用到的运算符:集合运算符专门的关系运算符算术比较符逻辑运算符 关系的三种类型基本类型(基本表)查询表和视图表 基本表是实际存在的表,是实际储存数据的逻辑表示 查询表是查询结果对应的表 视图表则是基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。 关系数据库和非关系数据库的区别:关系数据库只有表这一种数据结构,非关系数据库有其他数据库结构和其他操作 关系模式是对关系的描述,五部分组成R(U,D,DOM,F) R关系名U组成该关系的属性名集合 D 为属性组U 中属性所来自的域DOM 为属性向域的映像集合 F 属性间数据的依赖关系集合 第三章关系数据库标准语言sql SQL的特点1综合统一2 高度非过程化 3 面向集合的操纵方式 4 以同一种语法结构提供两 种使用方式 5 语言简洁,易学易 用。 连接查询:查询同时涉及到两个 以上的表,包括等值连接自然 连接非等值连接自身连接外 连接复合条件连接查询 第四章关系数据库设计理论 关系分解的三个定义:1 分解具 有无损连接性 2 保持函数依赖 3 既要具有无损连接性又要保 持函数依赖 BCNF 关系模式具有的性质:1 所有非主属性都完全函数依赖 于每个候选码 2 所有主属性都 完全函数依赖于每个不包含它的 候选码 3 没有任何属性完全函 数依赖于非码的任何一组属性。 第五章数据库保护 数据库管理系统的安全功能:1 数据库恢复 2 并发控制 3 安全 性保护 4 完整性保护 审计是一种事后监视的措施, 跟踪数据库的访问活动,以发现 数据库的非法访问以达到安全防 范的目的。 数据库的完整性是指数据的正 确性一致性相容性。 DBMS的完整性控制机制的功 能:1定义功能 2 检查功能 3 如果发现用户的数据请求使数据 违背了完整性约束,则采取一定 动作来保证数据完整性。 封锁就是事物T可以向系统发出 请求,对某个数据对象加锁,于 是事物T对这个数据对象就有一 定控制,分为排他锁和共享锁 第六章数据库设计 数据字典:是系统中各项数据描 述的集合,是进行详细的数据收 集和数据分析所获得的主要成 果。通常包括数据项,数据结构 数据流数据存储和处理过程五 个部分。数据项是数据的最小组 成单位。 数据库的物理设计:为一个给定 的逻辑数据模型选取一个最适合 应用环境的物理结构的过程。 数据库设计的阶段:1 需求分析 阶段 2 概念结构设计阶段 3 逻 辑结构设计阶段 4 物理设计阶 段 5 实施阶段 6 运行和维护阶 段 需求分析的任务:通过详细调查 现实世界要处理的对象,充分了 解原系统工作概况,明确用户的 各种需求,然后在此基础上确定 新系统的功能,调查的重点是数 据和处理,通过调查,收集和分 析,获得用户对数据库的如下要 求 1 信息要求 2 处理要求 3 安全性与完整性要求 概念结构的特点:1能真实充分 的反映现实世界,包括事物之间 的联系 2 易于理解 3 易于修改 4 易于向关系网状层次等各种 数据模型转换 第七章基于web数据库技术概 述 ACTIVEX的优点:1 是一种分 布式对象技术,能保护开发者以 往的投资 2 是一种开放技术,包 容了现有标准又提供第三方开发 接口 缺点:1控件体积大,不利于下 载 2 兼容性差,只支持 windows 脚本是一种能够完成某些特殊功 能的小程序段,不被编译,逐行 被解释 第八章JDBC 基于java的数据 库连接 JDBC 基本功能:1 建立与数据 库的连接 2 发送sql语句3 处 理结果 第九章ASP与ADO数据库连接 ASP的特点1 使用简单脚本语 言开发简单 2 源程序无需编译 链接,可直接执行,运行于各种 操作环境 3 代码的执行与浏览 器无关,更好的兼容性 4 ASP源 程序不会传到浏览器,保护知识 产权 5 可使用服务器端的脚本 来产生客户端的脚本。 ASP有5个内置对象,可以被asp 脚本直接使用 1REQUEST 2 RESPONSE 3 SERVER 4 SESSION 5 APPLICA TION ADO重要的接口Connection Error Command Parameter RecordSet Field 第十章数据库管理系统简介 第十一章数据库新技术 面向对象程序设计方法是一种 支持模块化设计和软件重用的实 际可行的编程方法 面向对象数据库系统是数据库技 术与面向对象程序设计方法相结 合的产物, 面向对象程序设计的基本思想是 封装和可拓展性 面向对象数据库语言主要包括对 象定义语言和对象操纵语言,对 象操纵语言中一个重要子集是对 象查询语言。Oodb一般应具备 下列功能:1类的定义与操纵 2 操作/方法的定义 3 对象的操纵 一个面向对象的数据库数据库系 统满足的条件:1支持一核心的 面向对象数据模型 2 支持传统 数据库系统所有的数据库特征。 Oodb的特点:1扩充数据类型2 支持复杂对象 3 支持继承的概 念 4 提供通用的规则系统。 并行数据库系统是在并行机上 运行的具有并行处理能力的数据 库系统 并行数据库系统的目标 1 高性 能 2 高可用性3 可扩充性 多媒体数据库多媒体技术与数 据库技术相结合产生的一种新型 数据库。 多媒体的建模方法:1 扩充关系 模型 2 语义模型 3 面向对象模 型 知识库系统数据库技术与人工 智能技术结合的产物。 第十二章分布式数据库系统 分布式数据库:是一组数据组成, 这组数据分布在计算机网络的不 同计算机上,网络中的每个结点 具有独立处理的能力,可以执行

数据库原理王珊知识点整理

目录 1.1.1 四个基本概念 (1) 数据(Data) (1) 数据库(Database,简称DB) (1) 长期储存在计算机内、有组织的、可共享的大量数据的集合、 (1) 基本特征 (1) 数据库管理系统(DBMS) (1) 数据定义功能 (1) 数据组织、存储和管理 (1) 数据操纵功能 (2) 数据库的事务管理和运行管理 (2) 数据库的建立和维护功能(实用程序) (2) 其它功能 (2) 数据库系统(DBS) (2) 1.1.2 数据管理技术的产生和发展 (3) 数据管理 (3)

数据管理技术的发展过程 (3) 人工管理特点 (3) 文件系统特点 (4) 1.1.3 数据库系统的特点 (4) 数据结构化 (4) 整体结构化 (4) 数据库中实现的是数据的真正结构化 (4) 数据的共享性高,冗余度低,易扩充、数据独立性高 (5) 数据独立性高 (5) 物理独立性 (5) 逻辑独立性 (5) 数据独立性是由DBMS的二级映像功能来保证的 (5) 数据由DBMS统一管理和控制 (5) 1.2.1 两大类数据模型:概念模型、逻辑模型和物理模型 (6) 1.2.2 数据模型的组成要素:数据结构、数据操作、数据的完整性约束条件. 7 数据的完整性约束条件: (7)

关系数据模型的优缺点 (8) 1.3.1 数据库系统模式的概念 (8) 型(Type):对某一类数据的结构和属性的说明 (8) 值(Value):是型的一个具体赋值 (8) 模式(Schema) (8) 实例(Instance) (8) 1.3.2 数据库系统的三级模式结构 (9) 外模式[External Schema](也称子模式或用户模式), (9) 模式[Schema](也称逻辑模式) (9) 内模式[Internal Schema](也称存储模式) (9) 1.3.3 数据库的二级映像功能与数据独立性 (9) 外模式/模式映像:保证数据的逻辑独立性 (10) 模式/内模式映象:保证数据的物理独立性 (10) 1.4 数据库系统的组成 (10) 数据库管理员(DBA)职责: (10)

数据库学习笔记

数据库学习笔记 图形化界(Navicate Premium)面操作数据库 1、工具---->命令行操作 2、选中某个表对象--->右击---->逆向表到模型---生成各表的关系模型 3、选中某个表对象-->右击-->对象信息--->DDL查看创建表的信息 Sql语言集数据定义语言,数据操纵语言,数据查询语言,数据控制语言于一体,可以完成数据库生命周期中的全部工作。 数据定义语言:完成创建,修改或删除数据库中的各种对象有create,drop,alter的命令。 数据查询语言:按各种条件查询数据库中的数据有select及其相关命令。 数据操纵语言:对已经从在的数据库对其进行数据的插入,删除和修改有insert,update,delete命令。 数据库控制语言:用于授权或收回访问数据库的某种特权,控制数据操纵事物的发生时间及效果,对数据库进行监视。有grant,revoke,commit,rollback等命令。 一、数据库操作 1、启动数据库:net start mysql 2、关闭数据库:net stop mysql 3、打开数据库:mysql -u root -p123 4、显示所有数据库:show databases;

5、创建数据库:create database mydb1; 6、删除数据库:drop database mydb1; 二、单表操作: 1、选择并使用数据库:use mydb1 2、创建表:(宠物表) 宠物表:id名字、主人、种类,性别、出生和死亡日期。create table pet( id int primary key, name varchar(20), owner varchar(20), species varchar(20), sex char(1), birth date, death date ); 3、插入数据: insert into pet values(1,’ergou’,’zx’,’dog’,’f’,’2013-09-06’ null); 4、查询所有内容 select * from pet; 5、删除一条数据: delete from pet where id=1;

我的数据库原理及应用学习笔记

数据库原理及开发应用 (总结的知识储备) 1.数据库就是储存数据的仓库,专业的解释就是对数据存储和管理的软件 和数据本身统称为数据库。 2.大型数据库有Oracle,Sql sever属于中型数据库,小的太多忽略不计, 要知道就上网查。 3.数据库管理系统的主要功能:数据库定义功能;数据存取功能;数据库 运行管理;数据库的建立和维护功能。 4.数据库的三级模式构:外模式、模式和内模式。(外模式即是用户模式 可以多个,模式只能一个,内模式就是储存模式)。 5.DDL: 数据库模式定义语言DDL(Data Definition Language)。 6.DML:数据操作语言(datamanipulationlanguage)。 7.DBMS: 数据库管理系统(Database Management System)。 8.DBS:数据库系统(Database System)。 9.DBA:数据库管理员(Database Administrator)。 从三方面学习数据库 1.数据库是如何储存数据的(主键,外键,唯一键) 2.数据库是如何操作数据的(insert update delete) 3.数据库是如何显示数据的(select重点)

操作及代码 1.Crate table 语句:create table student(stu_name nvarchar(30) not null,stu_numb int not null,stu_sex nchar(1) not null); 2.主键外键:stu_numb int primary key;(可以在int 和primary 中间加上constraint 约束名称)。 sch_add nvarchar(30) foreign key references student (stu_numb); 顺带回忆一下主键和外键的定义: 主键:能够唯一标示一个事物的的字段或者多个字段的组合,叫主键。(含有主键的表叫做主键表,主键一般是整数不建议用字符串,而且一般用代理主键不要用业务主键,也就是说不要用有业务的字段作为主键,一般就用没有含义的编号当做主键。)外键:如果一个表中的若干个字段来自若干个表的主键或者唯一键,就称这若干个字段为外键。(含有外键的表叫做外键表,通常都来自主键,因为唯一键可能为null,而且外键不一定来自别的表可能就来自本表)。自认为总结的超好。 哦哦,还有删除表的时候先删外键表,不然先删主键会报错,原因很简单,外键引用错误。 没完, 主键约束:不允许重复元素,避免了数据的冗余。

数据库读书笔记 李辉

SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL被作为关系型数据库管理系统的标准语言。一个典型的关系型数据库通常由一个或多个被称作表格的对象组成。数据库中的所有数据或信息都被保存在这些数据库表格中。数据库中的每一个表格都具有自己唯一的表格名称,都是由行和列组成,其中每一列包括了该列名称,数据类型,以及列的其它属性等信息,而行则具体包含某一列的记录或数据。 SQL 语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。SQL语句可以分为以下几组: DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据; DDL(Data Definition Language,数据定义语言):用于定义数据的结构,比如创建、修改或者删除数据库对象; DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。 DML 组可以细分为以下的几个语句: SELECT:用于检索数据; INSERT:用于增加数据到数据库; UPDATE:用于从数据库中修改现存的数据 DELETE:用于从数据库中删除数据。 DDL 语句可以用于创建用户和重建数据库对象。下面是DDL 命令: CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX DROP INDEX DCL 命令用于创建关系用户访问以及授权的对象。下面是几个DCL 命令: ALTER PASSWORD GRANT REVOKE CREATE SYNONYM 下面主要介绍几个常用的数据库操作语句的格式: 数据查询:select 语句主要被用来对数 据库进行查询并返回符合用户查询标准的结果数据。Select 语句的语法格式如下:select column1 [, column2,etc] from tablename [where condition]; ([] 表示可选项) select 语句中位于select 关键词之后的列名用来决定那些列将作为查询结果返回。用户可以按照自己的需要选择任意列,还可以使用通配符“*”来设定返回表格中的所有列。select 语句中位于from 关键词之后的表格名称用来决定将要进行查询操作的目标表格。Select 语句中的where 可选从句用来规定哪些数据值或哪些行将被作为查询结果返回或显示。 向表格中添加、更新、删除记录 添加新记录 SQL 语言使用insert 语句向数据库表格中插入或添加新的数据行。Insert 语句的使用格式如下: insert into tablename (first_column,https://www.sodocs.net/doc/fa39927.html,st_column)

《数据库原理》知识点总结

《数据库原理》知识点总结标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

目录未找到目录项。 一数据库基础知识(第1、2章) 一、有关概念 1.数据 2.数据库(DB) 3.数据库管理系统(DBMS) Access 桌面DBMS VFP SQL Server Oracle 客户机/服务器型DBMS MySQL DB2 4.数据库系统(DBS) 数据库(DB) 数据库管理系统(DBMS) 开发工具 应用系统 二、数据管理技术的发展 1.数据管理的三个阶段 概念模型 一、模型的三个世界 1.现实世界

2.信息世界:即根据需求分析画概念模型(即E-R图),E-R图与DBMS 无关。 3.机器世界:将E-R图转换为某一种数据模型,数据模型与DBMS相关。 注意:信息世界又称概念模型,机器世界又称数据模型 二、实体及属性 1.实体:客观存在并可相互区别的事物。 2.属性: 3.关键词(码、key):能唯一标识每个实体又不含多余属性的属性组合。 一个表的码可以有多个,但主码只能有一个。 例:借书表(学号,姓名,书号,书名,作者,定价,借期,还期) 规定:学生一次可以借多本书,同一种书只能借一本,但可以多次续借。 4.实体型:即二维表的结构 例 student(no,name,sex,age,dept) 5.实体集:即整个二维表 三、实体间的联系: 1.两实体集间实体之间的联系 1:1联系 1:n联系 m:n联系 2.同一实体集内实体之间的联系 1:1联系 1:n联系 m:n联系 四、概念模型(常用E-R图表示) 属性: 联系: 说明:① E-R图作为用户与开发人员的中间语言。 ② E-R图可以等价转换为层次、网状、关系模型。 举例: 学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授 和副教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,每门课程有若干学生选修。用E-R图画出概念模型。

数据库知识点整理(全)

UNIT 1 四个基本概念 1.数据(Data):数据库中存储的基本对象 2.数据库的定义 :数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合 3.数据库管理系统(简称DBMS):位于用户与操作系统之间的一层数据管理软件(系统软件)。 用途:科学地组织和存储数据;高效地获取和维护数据 主要功能: 数据定义功能; 数据操纵功能; 数据库的运行管理; 数据库的建立和维护功能(实用程序) 4.数据库系统(Database System,简称DBS):指在计算机系统中引入数据库后的系统 数据库系统的构成 数据库 数据库管理系统(及其开发工具) 应用系统 数据库管理员(DBA)和用户 数据管理技术的发展过程 人工管理阶段 文件系统阶段 数据库系统阶段 数据库系统管理数据的特点如下 (1) 数据共享性高、冗余少;(2) 数据结构化;(3) 数据独立性高;(4) 由DBMS进行统一的数据控制功能 数据模型 用来抽象、表示和处理现实世界中的数据和信息的工具。通俗地讲数据模型就是现实世界数据的模拟。 数据模型三要素。

数据结构:是所研究的对象类型的集合,它是刻画一个数据模型性质最重要的方面;数据结构是对系统静态特性的描述 数据操作:对数据库中数据允许执行的操作及有关的操作规则;对数据库中数据的操作主要有查询和更改(包括插入、修改、删除);数据操作是对系统动态特性的描述 数据的约束条件:数据及其联系应该满足的条件限制 E-R图 实体:矩形框表示 属性:椭圆形(或圆角矩形)表示 联系:菱形表示 组织层数据模型 层次模型 网状模型 关系模型(用“二维表”来表示数据之间的联系) 基本概念: 关系(Relation) :一个关系对应通常说的一张表 元组(记录): 表中的一行 属性(字段):表中的一列,给每一个属性名称即属性名 分量:元组中的一个属性值,分量为最小单位,不可分 主码(Key):表中的某个属性组,它可以唯一确定一个元组。 域(Domain):属性的取值范围。

数据库原理笔记 (1)

数据库

数据库原理 数据库简介(理解) 1.数据库的重要性:数据库无处不在:它们是电子商务和其他WEB应用程序的主要组成部 分,是企业操作和决策支持应用程序的核心部分。 2.数据库的目的:数据库的主要目的是帮助用户更好地管理数据。 3.关于列表的问题:过于简单的列表可能会导致数据的不一致性和其他问题,如删除行会 丢失过多的数据,改变行会导致不一致的数据,插入行会导致数据遗漏。通常情况下,如果一个列表含有的数据指示两个或两个以上的不同事情时,修改数据就会出现问题。 4.可以用关系模型的方法解决列表所产生的问题。一个关系数据库含有一个独立表的集 合。在很多情况下,每个表中的数据有且仅有一个主题。如果一个表含有两个或多个主题,我们就需要将其分割为两个或多个表。 数据库系统的概念 1.数据库系统的4个基本元素是:用户、数据库应用程序、数据库管理系统(DBMS)和 数据库。 2.数据库:在绝大多数情况下,数据库就是关联记录项的自描述集合。对于所有的关系数 据库,该定义可以修改为:数据库就是关联表的自描述集合。自描述意味着数据库本身含有对数据库结构的描述。 关于数据库结构的数据称为元数据。元数据的示例是表名、列名和列所属的表、表和列的属性等。应用元数据用于描述应用程序元素,如表单和报表。 3.DBMS的目标是创建、处理和管理数据库。 DBMS的功能包括:(1)创建数据库(2)创建表(3)创建支持结构(如索引等) (4)读取数据库数据(5)修改(插入、更新或删除)数据库数据(6)维护数据库结构(7)执行规则(8)并发控制(9)提供安全性(10)执行备份和恢复 4.应用程序的功能包括:(1)创建并处理表单(2)处理用户调查(3)创建并处理报表 (4)执行应用逻辑(5)控制应用 关系模型 一、关系 ●关系是具有如下特征的二维表: ●表的每一行存储了某个实体某个属性的数据。 ●表的每类包含了用于表示实体某个属性的数据。 ●关系中的每个单元格的值必须单值。

互联网数据库网上作业客观题答案

一、单选题: 1.数据模型是()。 A.现实世界数据内容的抽象 B.现实世界数据特征的抽象 C.现实世界数据库结构的抽象 D.现实世界数据库物理存储的抽象 2.实际的数据库管理系统产品在体系结构上通常具有的相同的特征是()。 A.树型结构和网状结构的并用 B.有多种接口,提供树型结构到网状结构的映射功能 C.采用三级模式结构并提供两级印象功能 D.采用关系模型 3.范式是指()。 A.规范化的等式 B.规范化的关系 C.规范化的数学表达式 D.规范化的抽象表达式 4.SQL语言中,模式对应于()。 A.视图和部分基本表 B.基本表 C.存储文件 D.物理磁盘 5.SQL语言中,内模式对应于()。 A.视图和部分基本表 B.基本表

C.存储文件 D.物理磁盘 6.所谓2NF,就是()。 A.不允许关系模式的属性之间有函数依赖Y→X,X是码的真子集,Y是非主属性 B.不允许关系模式的属性之间有函数依赖X→Y,X是码的真子集,Y是非主属性 C.允许关系模式的属性之间有函数依赖Y→X,X是码的真子集,Y是非主属性 D.允许关系模式的属性之间有函数依赖X→Y,X是码的真子集,Y是非主属性 7.所谓静态元组约束,就是()。 A.规定组成一个行的各个元组之间的约束关系 B.规定组成一个元组的各个之间的约束关系 C.规定组成一个列的各个元组之间的约束关系 D.规定组成一个元组的各个行之间的约束关系 8.在数据字典中,反映了数据之间的组合关系的是()。 A.数据结构 B.数据逻辑 C.数据存储方式 D.数据记录 9.在传输表单数据时,跟在httpheader后有一专门的数据段,这个数据段包含在表单中输入的查询参数,它一起被发送给Web服务器,这种传递方法是()。 A.GET方法 B.POST方法 C.PUT方法 D.REP方法

数据库复习整理笔记.doc

学习好资料欢迎下载 加密的基本思想 根据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术语为密文,Cipher text)。不知道解密算法的人无法获知数据 的内容。 触发器( Trigger) 用户定义在关系表上的一类由事件驱动的特殊过程,一旦定义,任何用户对表的增加、修改和删除 工作均由服务器自动激活相应的触发器,在DBMS 核心层进行集中的完整性控制。 触发器类似于约束,但是比约束更加灵活,可 以进行更为复杂的检查和操作,具有更精细和 更强大的数据控制能力。 重点掌握并能够灵活运用关系模式规范化的 方法和关系模式分解的方法,这也是本章的 难点。 关系数据库:基于关系模型的数据库,利用关 系来描述现实世界。 关系模式由五部分组成,即它是一个五元组: R(U,D,DOM,F) R:关系名

U:组成该关系的属性名集合 D:属性组U中属性所来自的域 DOM :属性到域的映象集合 F:属性间的数据依赖关系集合 由于 D 和 DOM 对模式设计关系不大,因此可以 把关系模式看做一个三元组: R 。 例如: 关系模式: S(Sno, Sdept, Sno→ Sdept)当且仅当 U 上的一个关系r 满足 F 时,r 称为关 系模式 R 的一个关系。 数据依赖是数据库模式设计的关键,它是一个关系内部属性与属性之间的一种约束关系,这种约束关系是通过属性间的值是否相等体现出来的数据间的相互关系。 它是现实世界属性间相互联系的抽象,是数据内在的 性质,是语义的体现。 数据依赖有很多类型,其中最重要的是: 函数依赖( Functional Dependency,简记为 FD )多值依赖( Multivalued Dependency,简记为 MVD ) 其中,函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。

数据库读书笔记

数据库读书笔记 导语:读书笔记是指读书时为了把自己的读书心得记录下来或为了把文中的精彩部分整理出来而做的笔记。以下是数据库读书笔记的内容,希望你们喜欢! 数据库读书笔记n 物化视图——物化视图是包括一个查询结果的数据库对象,物化视图不是在使用时才读取,而是预先计算并保存表连接或聚集等耗时较多的操作结果,这样在查询时大大提高读取速度,特别适用于多个数据量较大的表进行连接操作及分布式数据库中需要进行分布在多个站点的表进行连接操作时使用。 物化视图可以进行远程数据的本地复制,此时物化视图的存储也可以成为快照。主要用于实施数据库间的同步。 物化视图对于数据库客户端的使用者来说如同一个实际表,具有和表相同的一般select操作,而其实际上是一个视图,一个定期刷新的数据视图。物化视图的刷新可采用自动刷新和人工刷新两种方式,具体刷新方式和刷新时间在定义物化视图的时候可以定义。使用物化视图可以实现视图的所有功能,因物化视图不是在使用时才读取,而大大提高了读取速度,特别使用抽取大量数据表中某些信息以及分布式环境中跨节点进行多表数据连接的场合。 n 聚集 在数据库运行初期,数据库对SQL语句各种写法的性能

优劣还不敏感,但是随着数据库正式使用,数据库中的数据不断增加,劣质SQL语句和好的SQL语句之间的速度差异就逐渐显示出来。 n 合理使用索引 n 避免和简化排序:通常在运行order by和group by 的SQL语句值,会涉及到排序操作,应当简化成避免对大型表进行重复排序,因为磁盘排序的开销是很大的。与内存排序相比,磁盘排序操作很慢,从而会花费很长时间,降低数据库性能,而且磁盘排序会消耗临时表空间中的资源。 当能够利用索引自动以适当的次序产生输出时,优化器就可以避免不必要的排序步骤,以下是一些影响因素由于现有索引的不足,导致排序时索引中不包括一个或几个待排序的列;group by或order by 子句中列的次序与索引的次序不一样;排序的列来源于不同的表。 为了避免不必要的排序,就要正确建立索引,合理地合并数据表。如果排序不可避免,那么应当试图简化它,如缩小排序的范围等。 n 消除对大型表数据的顺序存取:嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。避免这种情况的主要方法就是对连接的列进行索引。还可以使用并集来避免顺序存取,尽管在所有的检查列上都有索引,但某些形式的where子句强迫优化器使用顺序存取。

数据库笔记整理

01 数据库课程导入 一、数据库:是指存储在计算机内的可组织可共享的信息的集合。 数据库特征: 数据按一定的数据模型组织、描述和储存 可为各种用户共享 冗余度较小 数据独立性较高 易扩展 二、数据库的逻辑结构 1)层次型 2)网状型 3)关系型 4)面向对象型 三、提高数据库效率方式 1)缓存数据 2)索引 3)高性能硬件 四、数据库模型 1)概念模型:从用户角度分析,绘制E-R图 2)逻辑模型:从计算机角度分析的,绘制数据库模型图 3) 物理模型:指的是数据库的存储结构,以及索引。 五、数据库设计步骤 1)需求分析阶段(收集分析需求) 2)概要设计阶段(从用户角度分析,绘制E-R图)3)详细设计阶段(从数据库角度分析的,绘制数据库模型图) 4)实施阶段(创建数据库、数据表、建立关联、索引,并对数据表进行规范化检查) 六、学好数据库能做什么 1)DBA数据库管理员 2)数据挖掘 02 数据模型 一、数据模型分类 1)概念模型 2)逻辑模型(分为层次型、网状型、关系型、面向对象型) 3)物理模型 二、数据模型的三大要素1)数据结构 2) 数据操作 3)完整性约束(包括实体完整性、参照完整性和用户定义的完整性) 三、概念模型组成部分 1)实体:用矩形表示,表示客观存在的可以描述的事物。 2)属性:用椭圆形表示,表示实体的特征。 3)码:用于唯一标识实体的属性。 4)域:代表属性的取值范围,例如Sex取值范围是男,女。 5)实体型:用实体名及其属性名集合来抽象同类实体的(例如学生(学号,姓名,性别,出生年份,系,入学时间)) 6)实体集:同一类型实体的集合 7)关系:表示实体间的关系(有1:1 ,1:n,n:1 ,m:n)用菱形表示。 四、绘制E-R图步骤 1)标识实体 2)标识实体的属性 3)标识实体关联 五、逻辑模型 层次模型:是最早的逻辑模型 a)每个节点的父节点都是唯一的 b)只能表示1对多的关系 c)每个记录类型可以选择一个属性排序,叫做码字段 b)任何记录只有按照路径查看才有意义 e)任何子女记录都不能脱离父记录而存在 f)根节点没有父节点 1)多对对关系在层次模型中的表示 a) 采用冗余节点法:也就是通过增加2个节点,把多对多关系分解成2个1对多关系。 例如: 学生与课程是m:n关系,分解成:学生到课程1:n,课程到学生1:n。 b) 采用虚拟节点法:是通过增加2个虚拟节点,把多对多关系分解成2个1对多关系。 所谓虚拟节点就是一个引用,指向所引用的节点。 2)对层次模型的操作 a) 增加、修改、删除、查询,同时必须满足完整性约束(指的是数据记录能够正确的反应实际情况)b) 层次模型的完整性约束: 1)添加的子节点必须拥有父节点

相关主题