数据库期末考试复习,自用数据库复习

 

[TOC]

数量字典

一、数据库特点:

数据库整理:

graph LR
A[数据库]-->B[CH2:概念模型_ER]
B-->C[基本]
B-->D[扩展]
A-->E[CH3:关系数据模型]
E-->F[数据模型]
E-->G[基本概念]
E-->H[集合关系运算]
E-->I[完整性约束]
A-->J[CH4:E-R到关系模型的转换]
J-->K[基本 E-R 模型的转换]
J-->L[扩展的 E-R 模型的转换]
A-->M[CH5:SQL]

数据库系统中贮存三层构造定义的数据库称为数据字典(DD),
对数据库的操作都要经过DD工夫落实。
DD系统中还存放数据库运转是的总计新闻。
治本DD的类别称为DD系统

* 长久积攒 有团体 可分享
 功能:
  1.数量定义功用:
   (1)数据定义语言DDL
  2.多少调整成效:
   (2)数据操纵语言DML
   //(3)数据调控语言DCL
  3.数据组织、储存和治本:
   数据社团和存款和储蓄的骨干对象是增高存款和储蓄空间利用率和方便存取,提供多样存取方法(如索引查找、hash查找、顺序查找等)来巩固存取功用
  4.数据库事务管理和运营管理
  5.数据库的树立和维护效用
  6.另外职能
二、概念模型:
 (1)实体:客观存在并可相互区分的东西
 (2)属性:实体所具有的某一特色
 (3)码:独一标记实体的属性集
 (4)实体型:用实体名及其性情名会集来抽象和描绘的同类实体
 (5)实体集:同一品种的实体的汇合
 (6)联系:
   实体间的联络
    1)五个实体型间的关联
    2)多少个以上实体型间的维系
    3)单个实体型内的联络
     都留存 一对一牵连 1:1 一对多沟通 1:n 多对多交换 m:n
    平日的,把参预联系的实体型的数目称为联系的度。N个实体型间的联系度为N,也称N元联系
 概念模型的一种表示方法:
   E - R模型
    (1)实体型用矩形表示
    (2)属性用圆锥形表示,并用无向边将其与相应的实体型连接起来
    (3)联系用口形表示
三、数据模型:
 由数据结构、数据操作和数目标完整性约束规范三有的组成
   数据结构  描述数据库的结合对象以致对象时期的关联
   数据操作  对数据库中各样对象(型)的实例(值)允许施行操作的相会,包罗操作及有关的操作准绳
   数据的完整性约束标准  是一组完整性准则
 
 常用数据模型:
   1.档期的顺序模型(树)
     优点:
      (1)数据结构比较明晰轻巧
      (2)档次数据库的查询成效高
      (3)等级次序数据模型提供了优质的完整性支撑
     缺点:
      (1)现实世界中有的是关系时非档次的
      (2)对插入和删除操作的界定非常多
      (3)查询子女节点必需透过家长结点
      (4)档期的顺序命令趋于程序化*

根据老师的PPT整理,谢谢黄先生,非常谢谢AlvinZH的整治,本整理的有的内容由AlvinZH辉哥的股价整理增加而来,配套教材《数据库系统概论(第五版)》(王珊编慕与著述),全数SQL相关内容均使用SQL Server现行反革命标准,尚不完整,有空会重新排版o(╥﹏╥)o迎接指正!

ER模型

  • 实体
  • 质量(实体的性质)
  • 域(属性的取值范围)
  • 候选码(唯一标记实体的习性或非常小属性组)必需选贰个做主码

DBMS

   2.网状模型(图)
     优点:
      (1)能够更加直白地描述现实世界
      (2)具备优异的性质,存取效能高
     缺点:
      (1)结构复杂,随着应用蒙受的恢弘,数据库的结构变得进一步复杂,不平价最后   顾客掌握控制
      (2)网状模型的DDL DML复杂,何况要放置一门高等语言中,客商不利调整,不容 易使用
      (3)记录间的交流是透过存取路径达成的,应用程序在做客数据的时候必得挑选适   当的积攒路线,由此客商必需了然系统结构的底细,加重了编辑应用程序的担当
    档期的顺序模型和网状模型统称为格式化模型
   
   3.涉及模型(表)
    数据模型:
      关系:一个提到对应一张表
      元组:表中的一行事贰个元组
      属性:表中的一名列二个天性
      码:也称码建,表中的某些属性组
      域:一种具备一样数据类型的值的聚合
      分量:元组中的贰天品质的值
    对关乎的叙说相似代表为:
      关系名(属性1,属性2,...,属性n)
     关系模型须要涉嫌必得是标准化的,关系的每二个分占的额数必得是一个不可分的数据项
    完整性准绳:
       实体完整性 主属性没办法为空
       参照完整性
       客户定义完整性    

引入

基本E-R模型

是指数据库系统中对数码举行政管理制的软件系统,它是数据库系统
的骨干组成都部队分。对DB的百分百操作,满含定义、查询、更新及调控,
都是经过DBMS举办的。

   //面向对象数据模型(对象)
   //对象关全面据模型
   //半结构化数据模型
  
四、数据库系统的三级情势二级影像效用
   型:对某一数码的构造和性质的辨证
   值:型的四个切实可行赋值
  方式仅涉及型的呈报,是数据库中整整数据的逻辑结议和特色的陈诉
  格局的三个具体值称为方式的多个实例,形式是相持平静的,实例是相对变动的
 三级形式组织:
   1.模式
    数据库中任何数据的逻辑结构和天性的陈说,是兼具客商的公共数据视图
   2.外模式
    也称子方式大概顾客形式,它是数据库顾客能够看到和平运动用的片段数据的逻辑结会谈特点的叙说,是数据库客商的数据视图,是与某一利用有关的数量的逻辑表示。
   3.内模式
    也称存款和储蓄格局,多少个数据库唯有四个内格局。是数额物理构造和积攒格局的呈报,是数据在数据库内部的协会格局。
 二级印象成效:
   1.外形式/形式影像
    数据的逻辑独立性
   2.内情势/情势影像
    数据的情理独立性

数量、数据库、数据库管理体系、数据库系统

数据:

陈诉事务的符号记录,有数据类型和数码的值,要求有语义来表明,数据操作主要有数量管理(数据库)、数据管理(程序)、数据传输(网络)

元数据(格局),大约不改变,在设定期定义

数码是数据库的实例,经常改动

数据库DB:

漫漫累积在微型Computer内、有集体、可分享的汪洋数额的成团。数据根据一定的数据模型组织、描述和仓库储存,具备比较小的冗余度、较高的数量独立性、易扩大性

安全、方便、高效

数据库管理种类DBMS:

微型Computer的基本功软件

数据库系统DBS:

由数据库、数据库管理连串、应用程序、数据库管理员组成的囤积、管理、管理和保证数据的系统。

 图片 1

 

扩展E-R模型

  • 临场约束
    • 实体参与球联合会系的十分的小最大次数
    • 全参预约束:实体集的每三个成分都到会联系
  • 弱实体
    • 强实体和弱实体必需一对多
    • 弱实体必得全加入
  • 类层次ISA(泛化)
  • 聚合
    • 牵连描述的是实体与实体之间的关系
    • 比如联系参预联系
    • 把联系看作交换和实体的重组
    • 联系和实体的组合用作七个实体就称为聚合

DBMS的要害功用

五、关系模型三要素:数据结构 操作集结 完整性约束
 域
 笛卡儿积
 关系:D1*D2*D3*...*Dn的子集叫做在域D1, D2..., Dn, 上的关联,表示为Murano(D1,D2,...,Dn),大切诺基表示关系的名字,n是关系的目或度(属性的个数)
   n=1时,称单元/目关系
   n=2时,称二元/目关系
  关系是张二维表,每行代表一个元组,每列代表三个域。n目关系必有n个属性
  若关系中某些属性组能独一地方统一标准识三个元组,而其子集不能,则称该属性组为候选码
  若二个关乎有多个候选码,则选定当中贰个为主码
  候选码中的诸属性称为主属性。不分包在别的候选码中的属性称为非主属性或非码属性
 属性 候选码 主码

多少处理技艺进步

人造管理阶段

多少未有直接存取设备,存在纸带上;

应用程序管理数据;

数据不分享,不富有独立性(数据变动后应用程序也必须更换);

文件系统阶段

数量存在文件里,数据足以一劳永逸保留;

采纳操作系统的IO接口访谈数据;

文件系统管理数据;

有加速数据访谈的措施;

起码的数据独立性;

数量分享性差,冗余度大;

每一个应用必要技师从头起首设计本人的文件格式和陈说;

图片 2

 

数据库系统阶段

首要优势:

数码分享;

数据冗余少;

数码独立性好;

方便人民群众的程序接口;

高效数据访问;

数据完整性和数目安全;

现身管理

 

特点:

1.数目结构化,全部数量结构化,是数据库的要紧特色之一,也是和文件系统的本质分化

2.数量分享度高、冗余度低且易扩张,数据分享能够减去数额冗余,幸免数据里面包车型客车不一样性和不相容性

3.数据独立性高,物理独立性指应用程序和数据库中数量的物理存款和储蓄互相独立,逻辑独立性指应用程序和数据库的逻辑结构相互独立,逻辑结构修改时应用程序能够不改变

4.数量由数据库管理种类集结管控,有数据安全性爱戴,数据完整性检查

 

隔开并发访谈,阻止产生脏数据的改变

 

数据库结构受底层Computer种类的震慑

 

关全面据模型

  • DDL
  • DML
  • 数据库爱慕功用:4个数据调控子系统
  • 数据库的护卫功效:种种实用程序构成
  • 数量字典:DD子系统

六、关系代数:
  
  并 :R U S = {t|t∈R V t∈S}
  交 :R - S = {t|t∈R^t∈S }
  差 :R - S = {t|t∈R^t!∈S}
  广义笛卡儿积:福睿斯*S = {tr ts|tr∈R^ts∈S}
  特地的涉嫌运算:
   选拔 :在关系奇骏中甄选满意给定条件的元组
   投影 :从Haval中精选出多少属性列组成新的关联
   连接:从八个事关的笛卡儿积中采用属性间的满意一定标准的元组
    等值连接:从涉嫌奔驰M级与S的广义笛卡儿积中选拔A、B属性值相等的这几个元组
    自然连接:一种奇特的等值连接
    自然链接时被抛弃的元组称为悬浮元组,假诺把悬浮元组也保留在结果关系中,而在任何质量上填空值,那么这种连接就叫做外连接。  如果只保留左臂关系ENCORE中的悬浮元组就叫做左连接,  若是只保留侧边境海关系S中的悬浮元组就称为右外连接
   除运算:设关系Escort除以关系S的结果为涉嫌T,则T中蕴涵全部在福睿斯但不在S中的属性及其值,且T的元组与S的元组的装有结圣多明各在Rubicon中

数据模型

数据模型:对具体世界数据特征的空洞。是数据库系统的骨干和根基。数据模型四个结合要素:数据结构(最关键的方面)、数据操作、数据的完整性约束原则。

三层抽象(由表及里)

概念模型:用于数据库设计,最盛行的是E-奥迪Q3模型。(P16-17基本概念:实体、属性、码、实体类型、实体集、联系);

逻辑模型:用于数据库管理类别的得以实现;等级次序模型(最初出现的数据模型)、网状模型、关系模型等;

大意模型:对数码最尾部的指雁为羹,描述数据表示格局和存取方法。

 

广泛数据模型:

等级次序模型

网状模型

论及模型

面向对象数据模型

对象关周全据模型

半结构化数据模型

 

档案的次序模型和网状模型统称为格式化模型

主干档案的次序联系是指七个记录以致他们中间的一对多(富含一对一)的维系

 

档期的顺序模型:

动用树形结构

数据库中定义满足条件的宗旨档期的顺序联系的集合:

1.有且独有一个结点没有爸妈结点,这么些结点称为根结点;

2.根以外的另外结点有且独有七个大人结点。

删除双亲结点会把子结点同时删除

优点:

1.数据结构轻松清晰

2.询问作用高(优于关周详据库,不低于网状数据库)

3.提供了可观的完整性帮助

缺点:

1.具体中众多牵连是非档期的顺序性的,不适用

2.对插入和删除限制很多,应用程序编写较为复杂

3.询问子女结点必需通过家长结点

4.结构严密,档期的顺序命令趋于程序化

崛起亮点是一对多档次联系的单位描述自然直观

 

网状模型

数据库中定义满意条件的骨干档次联系的集合:

1.同意三个上述的结点无大人;

2.八个结点能够有多于三个的大人。

优点:

1.尤为直白地描述现实世界

2.存取作用高

缺点:

1.结构复杂,不便于顾客精晓

2.DDL、DML复杂,要松手一种尖端语言,客商不轻易精晓,不便于选取

3.会见数据时必得适度选择路径,顾客必得询问系统结构的细节,加重担当

 

事关模型

优点:

1.赤贫如洗在严刻的数学概念的底子上

2.概念单一,数据结构简单清晰,易于使用

3.存取路径对客户透明,有更加高的数额独立性,越来越好的安全保密性

数据模型

DBS的组成

七、SQL概述及言语
  *集数据定义语言DDL:create drop alter 数据垄断(monopoly)语言DML:update delete insert 数据调控语言DCL : grant revoke 于一体
  *中度非进程化
  *面向集合的操作方法
  *以同样种语法结构提供三种选取模式:能独立用于共同交互,是嵌入式语言
 1.方式的定义和删除:
   create schema<模式名>authorization<用户名>
  客户能够在创造格局的同期在此个方式中尤为开创基本表、视图,定义授权等
   drop schema<模式名><cascade|restrict>
  在这之中cascade和restrict两个必选其一。采纳cascade(级联),表示在剔除情势的还要把该情势中的数据库对象全体刨除。采纳了restric(限制),表示一旦该格局中早已定义了下边包车型地铁数据库对象(如表、视图等),则拒绝该删除语句的施行。
 2.表的定义、删除及修改
  create table<表名>(<列名><数据类型>[列级完整性约束原则]
       [, <列名><数据类型>[列级完整性约束标准]]
       [, <列名><数据类型>[列级完整性约束规范]]
       ...
       [, <列名><数据类型>[列级完整性约束标准]])
   情势与表:
    要在S - T中定义表
     1.create table "S-T".student(...)
     2.在创立情势时就成立表
     3.安装所属形式,当客户创造基本表时若未有一些超级模特式,系统基于查找路线来规定该对象所属格局
     show search_path 展现当前的寻觅路线
     set search_path to "S_T",public  设置找出路线
  alter table<表名>
  [add[column]<新列名><数据类型>[全部约束性]]
  [add<表级完整性约束性>]
  [drop[column]<列名>[cascade|restrict]]
  [drop constraint<完整性约束名>[restrict|cascade]]
  [alter column<列名><数据类型>]

ER模型

实业(Entity):客观存在并可相互区分的东西

性格(Attribute):实体所兼有的某一风味称为属性

键(Key):独一标记实体的属性集

实体型(entity type):用实体名及其性质名集合来抽象和描绘同类实体

实业集(entity set):同一类型实体的集纳

涉嫌(relationship):分化实体集直接的联系,有非常,一对多,多对多的品种

 

名目大多关系要转变到多个二元关系

 图片 3

 

文山会海关系的箭头:

 图片 4

 

角色:

如若多元关系中二个实体集被用到了三回,能够因而角色来分歧,如下:

 图片 5

 

一元关系的一对一:

 图片 6

 

多对一:

 图片 7

 

多对多:

 图片 8

 

数据模型三要素:

  • 数据结构
    • 所切磋对象类型的集合
  • 数据操作
    • 检索、更新
  • 数量约束原则
    • 完整性准绳的聚焦
  • 数据库
  • 硬件
  • 软件
  • 数据库管理员

  drop table<表名>[restrict|cascade]
   若选取restrict,则该表的删除是有限制规范的,欲删除的表不能够被其余表的束缚所引用(如check,foreign key等约束),不可能有视图、触发器、存储进程等。
   若接纳cascade,则该表的去除未有界定条件。在删除表的同一时候,相关的信赖对象都将被一块删除
   默认restrict
 3.索引的确立和删除
  当表的数据量极大时,查询操作会相比较耗费时间,建构目录时加快查询速度的实用手法。
  create[unique][cluster]index<索引名>
   on <表名>(<列名>[<次序>][,<列名>[<次序>]]...)
   unique注解此索引的每三个索引值只对应独一的数码记录
   cluster表示要确立的目录时聚簇索引 聚簇:为了巩固某些属性的询问速度,把那一个或那几个属性上全体的一样值的元组聚集存放在接连的物理块中称之为聚簇。
  alter index<旧索引名>rename to<新索引名>
  drop index<索引名>
 4.数码查询
  select[all | distinct]<指标表明式>[,<指标表达式>]...
  from<表名或视图名>[, <表名或视图名>...] | (select 语句)[as]<别名>
  [where<条件表达式>]
  [group by<列名1>[having<条件表明式>]]
  [order by<列名2>[asc|desc]]
  常用查询条件:
   =,>,<,>=,<=,!=,<>,!>,!<,not 上述相比较运算符
    select * from student where sage<20
   between and, not between and
    select * from student where sage (not) between 20 and 23
   in,ont in
    select * from student where sdept (not) in('CS','MA','IS')
   is null,is not null
   and,or,not
   like
   [not]like'<匹配串>'[escape'<换码字符>']
    select * from course where cmane like 'DB_Design' escape''
   escape''表示""为换码字符,那样相配串中紧跟在""后的字符"_"不再持有通配符的含义
    select * from student where sname like'刘%'
  通配符:
    % (百分号)代表私自长度(可为0)的字符串。a%b表示以a初阶以b结尾的字符串
    _(下横线)代表专断单个字符。a_b表示以a起头,以b结尾长度为3的字符串
  聚焦函数
    count(*) 总结元组个数
    count([distinct|all]<列名>)  总计一列中值的个数
    sum([distinct | all]<列名>)  总结一列值得总和(此列必得是数值型)
    avg([distinct | all]<列名>)  总括一列值的平均值(此列必需是数值型)
    max([distinct | all]<列名>)  求一列中的最大值
    min([distinct | all]<列名>)  求一列中的最小值
      假诺制定distinct短语,则意味在图谋时要注销钦命列中的重复值。默感到all
     select count(*) from student
     select count(distinct sno) from sc
     select avg(grade) from sc where cno = '1'
     select sum(grade) from sc, course where sno = '201215012' and sc.cno=course.cno
    当聚类函数碰着空值时,除count(*)外,都只跳过空值而只管理非空值
  连接查询
   等值与非等值连接
    select student.*,sc.* from student,sc where student.sno=sc.sno
   本人连接
    当course表中独有每门课的直白先修课新闻,而从不先修课的先修课时,要猎取这一个新闻就要选择自家连接
    select first.cno,second.cpno from course first,course second where first.cpno=second.cno
   外连接
    inner join = join
    仍把悬浮元组保存在结果中
    select * from student left outer join(左外连接) sc on(或using)(student.sno=sc.sno)
    左外连接(LEFT OUTE奥迪R8 JOIN或LEFT JOIN)、右外连接(EvoqueIGHT OUTE奔驰G级JOIN或HavalIGHT JOIN) 和全外连接(FULL OUTELacrosse JOIN或FULL JOIN)
   多表连接
    select student.sno,sname,cname,grade from student,sc,course where student.sno=sc.sno and sc.cno=sourse.cno
   嵌套查询:
    带有in的子查询
    带有相比运算符的子查询
    带有any或all谓词的子查询
    带有exists谓词的子查询
    (不)相关子查询:子查询条件(不)信赖于父查询
    
  群集查询
   集结操作首要包括并操作union、交操作intersect、差操作except
  基于派生表的询问
   子查询不仅能够出现在where字句中,还足以出现在from字句中,那时子查询生成的暂且派生表成为主查询的询问对象
   select cno, cno fromsc, (select cno, avg(grade)from sc group by sno)as avg_sc(avg_sno,avg_grade) where sc.sno=avg_sc.avg_sno and sc.grade>=avg_sc.avg_grade
   倘诺实查询中并没有聚集函数,派生表可以不钦定属性,子查询select字句前边的列名称叫其暗中认可属性。通过from字句生成派生表时,as关键字能够回顾,但必得为派生关系钦定贰个外号
 5.数据更新
  插入数据
   插入元组
    insert into<表名>[(<属性列1>[, <属性列2>]...)] value(<常量1>[,<常量2>...])
   插入子查询结果
    insert into<表名>[(<属性列1>[, <属性列2>]...)]子查询
  修改数据
   update<表名> set<列名>= <表达式>[, <列名>= <表达式>]...[where<条件>]
   其意义是修改钦赐表中级知识分子足where字句条件的元组,个中set字句给出<表明式>的值用于代替相应的属性列值。假使省略where字句,则意味着要修改表中的全数元组
   update student set sage = 22 where sno = '201215121'
   update student set sage=sage 1
  删除数据
   delete from<表名>[where<条件>]
   若省略where则删除表中的整个元组
 6.空值的拍卖
  (1)发生:插入元组时,外接连
  (2)空值的判断:用is null或 is not null
  (3)空值约束标准:属性定义中有not null约束原则的不可能取空值,加了unique限制的习性不能取空值,码属性不能够取空值
  (4)空值的算术运算、相比较运算和逻辑运算
   空值与另三个值的比较结实为unknown,在查询语句中,独有使where和having子句中的选用标准为true的元组才被选出作为出口结果
 7.视图
  建立:
   create view<视图名>[(<列名>[,<列名>])] as<子查询>[with check option]
   在那之中子查询能够是大肆select语句,是或不是能够包含order by字句和distinct短语,则决意于具体系统的落实
   with check option 代表对视图举行update、insert的delete操作时要保管更新、插入和删除的行满意视图定义中的谓词条件(即子查询中的条件表达式)
   组成视图的天性列名大概全部简易也许全部钦定,未有第二种选择。借使轻巧了视图的依次属性列名,则含有该视图由子查询中select字句指标中的诸字段组成,但在下列三种情形下必得分明钦赐组成视图的有所列名:
    (1)某些目的不是不过的属性名,而是集中函数或列表明式
    (2)多表连接时选出了多少个同名列作为视图的字段
    (3)需求在视图中为有个别列启用新的更合适的名字
   create view IS_student as select sno, sname, sage from student where sdept = 'IS'
   视图不仅可以够建设构造在五个或多少个基本表上,也足以创制在一个或多少个曾经定义好的视图上或创设在基本表与视图上。若某些视图是从单个表上导出的,并且只是去掉了基本表的一些行和某个列,但保留了主码,则称那类视图为行列子集视图。
   带设想列的视图(帯表明式的视图)、分组视图
  删除:
   drop view<视图名>[cascade]
  查询:
   与表查询类似
  更新:
   (1)由于视图时不实际的寄放数据的虚表,因而对此视图的立异最后要改动为对骨干表格的换代
   (2)并不是兼备视图都能革新,因为有个别视图的换代无法唯一地有意义地调换到相呼应基本表的翻新
   (3)平日的,行列子集视图是可更新的。
  视图的功效:
   (1)简化客户操作
   (2)使客商能以二种角度对待同一数据
   (3)对重构数据库提供了一定水平的逻辑性
   (4)能够对地下数据提供安全保险
   (5)适当采纳视图能够更清晰地发挥查询
 8.授权:授予与收回
  授予:
   GRANT <权限>[, <权限>] …[ON <对象类型> <对象名>]
   TO <用户>[, <用户>] …[WITH GRANT OPTION];
    说明:
     WITH GRANT OPTION子句:若钦定了该子句,则收获某种权力的客商还可以够把该权限再予以别的顾客;若未有一点名该子句,则赢得某种权力的顾客只好选拔该权限,无法传遍该权限。
  收回:
   REVOKE <权限>[, <权限>]…[ON <对象类型> <对象名>]
   FROM <用户>[, <用户>] …
 9.嵌入式SQL
  SQL语言提供了三种分歧的使用格局
  交互式:作为单身语言在顶峰交互形式下使用,那是面向群集的描述性语言,是非进度性的。
  嵌入式:将SQL语言嵌入到某种高档语言中,利用高档语言的进程性结构完毕事务管理。
 10.积攒进程
  创立存款和储蓄进程的语法:
   create procedure 存款和储蓄进度名[{@参数名 数据类型}[=default][output]
   [{@参数名 数据类型}[=default][output]
   AS
   Select 语句
  如 CREATE PROCEDURE xs AS select * from student
   
   create procedure student_grade3
   @student_name char(10),
   @course_name char(20) = '数据库原理'
   as
   select sname, cname, grade
   from student s inner join sc on s.sno = sc.sno
   inner join course c on c.cno = sc.cno
     where sname = @student_name
     and cname = @course_name
  执行:
   exec 存款和储蓄进程名
    exec xs
    exec student_grade3 '王五'
    exec student_grade3 @student_name = ‘王五‘, @course_name = ‘数据库原理’
  修改:
   alter procedure 存款和储蓄进程名 as select
  删除:
   drop procedure 存款和储蓄进度名
 11.触发器
  触发器是一种特别的储存进程。它与表紧密相连,首要用来保障数据的完整性。
  语句: create trigger <触发器名> on <表名> for[before|after][instead of][insert | delete | update]
   AS
   SQL语句
   If update 测验insert 和update语句是不是对点名字段有影响
   rollback

ER模型(续)

关全面据库发展

模型划分

  1. 网状、档次发展模型
  2. 关周密据库
  3. 面向对象数据模型为特点

产品分割

  1. 对关系模型的支持
  2. 运转情状
  3. 讴歌ZDXDBMS系统组成
  4. 对利用的扶助

数据库

  触发器的确立必得是批管理中的第一条语句。触发器创立好后,由SQL Server系统自动实施。(与索引同样)
  多个表中能够创设非常多少个触发器。日常一种操作建构一个。
  删除触发器:
   drop trigger 触发器名
  修改触发器:与创建语句同样。
八、关周详据理论(关系标准化理论)
 数据正视:
  是四个关系之中属性与天性之间的一种约束关系,通过品质间值的非常与否体现出来的多寡间相关联系在那之中最注重的是函数信任和多值信任
 函数正视:
  设奥迪Q3(U)是性质集U上的关联形式,X, Y 是U的子集,若对于放肆r∈福睿斯(U), 任意t, s∈r, t[X] = s[X]--> t[Y] = s[Y]则称“X函数决定Y”, 或“Y函数信赖于X”, 记作:X->Y 称X为操纵因素。
  若存在t, s∈r, t[X] = s[X] 但t[Y]!=s[Y],则称“X不函数决定Y”或“Y不函数信赖于X”
  
  平凡/非平凡函数信赖
   如果X->Y,且Y!⊆X,则称X->Y为非通常的函数信赖。
   若是X->Y,且Y⊆X,则称X->Y为平时的函数信任。

约束:

始终为真正断言

常用约束:键(唯一标记)、单值约束(七个实体只好有叁个某类的习性)、参照完整性约束(援引的数据库中需求存在对应的条文)、域约束(约束有个别属性的值的界定)

 

一流键是一组一个或四个特性组成的无与伦比分明一个实体的键

候选键是微小(未有其真子集可以满足独一标志)的一级键,候选键的三个被选作主键(primary key),主键要求not null

在E昂Cora图中用下划线表明

 

尚未主键的实业集叫弱实体集,必得依据于强实体集存在,供给和强实体集构成都部队分多的关联(弱实体集为多),有鉴定分别器(部分键)

 图片 9

E-凯雷德模型设计标准:1.幸免冗余;2.限制使用弱实体集;3.能看做质量的尽心作为质量。

品质原则:属性无法再具备必要描述的属性and属性不可能与别的实体具有联系

 

假诺三个实体唯有叁天性能,那这一个实体能够选用性质代替

 

全心全意不用弱实体集,使用弱实体集通常的因由是未曾能够创建独一ID的大局权限(全数的弱实体集的质量否重复,举例在世界上全部的足球队中安装极度的球员号码)。

 

基本概念

  • 基本概念
    • 域(类型同样成分集结)
    • 笛卡儿积( × )
    • 元组:一组成分
    • 重量:元组中的一个值
    • 基数:元素个数
  • 关系: D1XD2X…Dn的子集叫做在域D1, D2, …, Dn上的涉及
    • 表示为R(D1, D2, …, Dn)
    • 事关的目或度:n
    • 单元关系: n=1
    • 二元关系: n=2
    • 波及是三个二维表(子集)
  • 候选码:能够独一标记八个元组的细微属性组
  • 主码:钦赐二个候选码作为主码
  • 主属性:候选码中的属性
  • 非码属性:不含有在别的候选码中的属性
  • 涉及的性子
    • 分裂的列能够出自同叁个域
  • 涉嫌格局:关系的叙说
    • 情势化表示:Enclave(U, D, dom, F),简记为Evoque(U)或安德拉 (A1, A2, …, An)
    • 波及形式是型,关系是值

万事数量的集中。DB分为两类,一类是应用数据集结,称为物理数据库,
它是数据库的着着重;另一类是各级数据结构的汇报,称为描述数据库,由DD系统处理。

  完全/部分函数注重
   假设X->Y,对于率性X的真子集X′,都有X'!->Y ,
   则称Y对X完全函数信任,记作X f-> Y
   如若X->Y,存在X的真子集X′,使得X'->Y ,
   则称Y对X某些函数依赖,记作X p-> Y

提到模型

最关键的数据模型

 

E福睿斯模型和关系模型对照:

E本田UR-V模型有繁多概念,实体、属性、关系等,关系模型唯有一个概念:关系

E陆风X8模型不相符Computer实现,关系模型相符高效操作Computer

关系实例:

图片 10

 

各样属性的允许的值称为域(domain)

 

聚拢关系运算

软件

  传递函数注重
   在R(U)中, 如果X->Y, (Y!⊆X), Y!->X, Y->Z, 则称Z对X传递函数信任
 码:
  候选码:设K为奇骏< U, F >的性质或属性组,若K f-> U,则称K为RAV4的候选码
  主码:若奥迪Q3(U, F)有八个候选码,则足以从当中选定二个用作CR-V的主码
  主属性:蕴含在每一个候选码中的属性
  非主属性:不带有在其余候选码中的属性
  全码:关系形式的码由整个属性组构成

方式和实例

方式(schema):型的叙说,不涉及具体的值;

实例(instance):格局的叁个切实可行的值。

 

论及格局:关系的汇报,途达(U,D,DOM,F)

Wrangler为涉及名,U为组合该关系的属性名集结,D为U中品质来自的域,DOM为属性向域的印象会集,F为属性间数据的正视关系集合

 

关联方式是型,关系是值

二个关系的方式:一个关系名,若干部家属性名

八个数据库的方式:若干个事关的情势

 

对数码的退换很频仍,而对方式的变动比少之又少见,所以方式是旷日漫长稳固性的

 

聚拢运算

  • -
  • 广义笛Carl积:多个分级为n和m目标关系冠道和S的广义笛Carl积是一个n m列的元组的联谊。若福睿斯有k1个元组,S有k2个元组,则广义笛Carl积有k1×k2个元组

包蕴DBMS、OS、种种主语言和使用开采辅助软件等程序。

 范式:
  关周到据库中的关系是要满意相对需求的,满意不一样水平必要的为不一致范式。
   1NF 第一范式 (满足最低须求的)属性不可再分
   2NF 第二范式 Escort∈1NF 且非主属性完全依赖于码
   3NF 第三范式 非主属性既不有的也不传递重视于码
   BCNF 平日被以为是改正的第三范式,有的时候也称之为扩张的第三范式 每贰个决定性的因素都包蕴码
   在函数正视的局面内,bcnf达到了最高的标准化水平。
  多值信任:
   设Escort(U)是性质集U上的多个提到方式。X,Y,Z是U的子集,並且Z = U - X - Y。对给定的一对(x,z)值有一组Y的值,那组值仅仅决意于x值而与z值毫无干系,关系格局陆风X8(U)中多值依赖X->->Y创造。称Y多值信任于X
  多值信任与函数信赖的分别:
  (1)多值信任是元组发生信任性,函数正视是相当发生信任。
  (2)多值信任的平价与属性集的限定关于,而函数信任的有效则与属性集的范围非亲非故。
   第四范式:关系形式途乐<U, F>∈1NF, 若对于每一个是非平时的多值信任x->->y,x都满含码,则称CR-V∈4NF。
   任何贰个二目关系都能达成第四范式。在多值重视的范围内,第四范式达到了参天的标准化水平。
   全部是主属性的关系形式必然可以直达第三范式,可是不确定达到bc范式。
   全码一定可以达标bc范式
 标准化:一个低顶尖范式的关系格局通过情势分解能够转变为多少个高一流范式的涉及格局的集结,这种经过就叫标准化
 逻辑饱含:关系方式奥迪Q5,F是其函数信任,X,Y是其属性子集,如果从F的函数注重能够推出XY,则称F逻辑包蕴XY。
 闭包:被F所逻辑蕴含的函数信任的全套所构成的会集称作F的闭包,记作F
 自反律:若Y⊆X⊆U,则X->Y为F所蕴含。
 增广律:若X->Y为F所蕴含,Z⊆U,则XZ->YZ为F所蕴含。
 传递律:若X->Y及Y->Z为F所蕴含,则X->Z为F所蕴含。

笛Carl积

给定一组域D1,D2,…,Dn(它们得以有一致的要素,即能够完全不一致,也足以部分或任何毫发不爽)。D1,D2,…,Dn的笛卡尔积为

D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。

由定义能够看出,笛卡尔积也是叁个凑合。

其中:

  1. 要素中的每一个di叫做四个份量(Component),来自相应的域(di∈Di)

2. 每一个因素(d1,d2,d3,…,dn)叫做四个n元组(n-tuple),简称元组(Tuple)。但元组不是di的聚合,元组的各种分量(di)是按序排列的。如:

(1,2,3)≠(2,3,1)≠(1,3,2);

而会集中的成分是从未排序次序的,如(1,2,3)=(2,3,1)=(1,3,2)。

 

论及的数学概念:

关联是笛Carl积的子集,具备有限的元组

关系:D1*D2*…Dn的子集将要在D1、D2…Dn上的关联。

候选码:属性组能独一标记一个元组,而其子集不能够。

主码:八个候选码,选定三个为主码

主属性:各种候选码的性质

非主属性:不分包在其他候选码中的属性

全码:全数属性是其一涉及形式的候选码

 

特意的涉及运算

  • 选拔运算:在事关奇骏中精选满意给定条件的元组,记作:σF(卡宴)={ t | t∈普拉多 F (t)=真 }
  • 黑影运算:是从关系宝马X5中选出若干部家属性列组成新的涉嫌,记作: πA(Wrangler)={ t[A] | tR}
  • 连年运算:是从八个关系的笛Carl积中接纳属性间满意一定原则的元组,称为连接
  • 连接 = 选拔运算 迪Carl积运算
  • 当A、B为同一的性质组时,为自然连接
  • 象集
    • 给定关系陆风X8(X, Y)和S(Y,Z),个中X,Y,Z为属性组。Rubicon中的Y和S中的Y能够有例外的名字,但必得取自同一个域

    • R与S除得到四个新关系P(X),P是Murano中级知识分子足下列标准的元组在X属性列上的黑影

    • 元组在X分量值x的象集Yx==包含==S在Y上投影的集合

    • 参照柳婼的解释

DBA数据库管理员

 方式分解:
  关系方式讴歌ZDX<U, F>的叁个表明是指ρ= { 中华V1<U1, F1>, PAJERO2<U2, F2>, …, GL450n<Un, Fn> },当中U = U1UU2U…UUn ,並且未有Ui⊆Uj ,1≤i,j ≤n, Fi是F在Ui上的黑影。
  要求:
   分解前后形式要对等
   等价规范:
    (1)分解要享有无损连接性
    (2)分解要维持函数重视
    (3)分解既要保持函数信赖又要全数无损连接性
  无损分解    交集能说了算差集
  保持函数正视的解说  并集的闭包和原先的相等 未有错失函数信任
补充:
 1.使用top的查询
  只取前面多少个恐怕部分结果
  格式 :
   TOP n[percent] with ties
    N 为非负的整数
    TOP n : 表示取查询结果的前n行;
   Select TOP 3 sname, sdept from student order by sage desc
   Select TOP 3 with ties sname, sdept from student order by sage desc  存在并列
   TOP n percent : 表示取查询结果的前n%行
    With ties 展现并例的结果
    TOP写在select或许distinct前面, 查询列表的近日
   用了with ties 需要order by
   不用order得到的结果恐怕与企盼的例外。

论及的天性:

1.区别意有全部值完全同样的元组

2.涉及是冬天的(元组的逐个是不相干的,能够按专擅顺序存款和储蓄,属性的种种也是不相干的)

3.同一属性名下的次第属性值必得来自同三个域,是同一品种数据

4.逐项属性名无法一直以来

5.不等的本性能够有平等的域

6.属性的值必得是原子的,不可再分(反比方中华人民共和国式报表,大表头满含几个小表头)

 

换名操作

ρ(R(F), E)

  • E:关系表达式
  • F拔是E中重复的要素名字被重命名
  • R:新关系
  • 概念格局
  • 概念内方式
  • 与客商联络
  • 概念安全性准则
  • 概念完整性法则
  • 数据库的转存与还原工作

 2.将查询结果保存到新表
  语法格式:
   Select 查询表种类 into 新表名
    from 数据源 where[<条件>]…..
   新表有二类 :
      1)永恒的表, 起二个表名就足以了;
      2)局地临时表:表名前加#,当前连年可用,生存期为当前连年的活着期.
       全局一时表:表名前加##,全数连接都可用.生存期为近期三番五次的生存期.
  3.视图定义后,客商能够象对基本表一样对视图进行查询。DBMS达成视图查询时,首先举办有效检查,检查所查询的表、视图是还是不是留存。若存在,则从数额字典中收取视图的定义,把定义中的子查询和客户的询问结合起来,转变来等价的对基本表的查询,然后再实行校订了的询问。这一调换进度称为视图消解(View Resolution)。
  4.貌似DBMS对视图更新的限制:
  (1) 若视图是由多个以上基本表导出的,则此视图分歧意更新。
  (2)若视图的字段来自字段表明式或常数,则不允许对此视图施行INSERT和UPDATE操作,但允许执行DELETE操作。
  (3)若视图的字段来自集函数,则此视图不允许更新。
  (4)若视图定义中饱含GROUP BY子句,则此视图不允许更新。
  (5)若视图定义中含有DISTINCT短语,则此视图不容许更新。
  (6)四个不容许更新的视图上定义的视图也区别意更新。
  (7)若视图定义中有嵌套查询,并且内层查询的FROM子句中涉及的表也是导出该视图的基本表,则此视图差异意更新。
 5.三个有效的推理准绳:
  合併法规:由X->Y, X->Z, 有X->YZ。
  伪传递法规:由X->Y, WY->Z, 有XW->Z。
  分解准则:由X->Y, Z⊆Y, 有X->Z。
 6.关于格局分解的许多结论:
  (1)分解具有无损连接性和分解保持函数注重是三个相互独立的正规化。具备无损连接性的讲授不自然保持函数信任,保持函数依赖的解释不明确有所无损连接性。八个涉嫌形式的演说恐怕有两种景况。
  (2)若要求表达具备无损连接性,那么分解后的方式必然能达到BCNF。
  (3)若须要表明保持函数重视,那么分解后的格局总能够达到规定的规范3NF,但不断定能完毕BCNF。
  (4)若供给表明既具有无损连接性,又保持函数注重,则说明后的形式能够高达3NF,但不必然能达到BCNF。

关系操作

涉嫌操作:查询、插入、删除、修改(P43)

查询:选拔、投影、连接、除、并、差、交、笛卡尔积;个中挑选、投影、并、差、笛Carl积是5种基本操作。

 

小结

三层方式两级印象

7.ACID个别代表如何
  一致性
  原子性
  隔离性
  持久性
 8.达成数据库安控的常用方法
  顾客标记和辨认
  存取调节
  视图机制
  审计
  加密

涉及模型(续)E昂科威模型到事关模型的中间转播

波及:指现实的表

主干情状:

1.实体集E转变到具备E的习性的涉及(表)

2.关联大切诺基转换到具备属性的涉嫌(表),做相关的实体的键和关联翼虎的习性

 

特种情状

1)一对多、一对一涉及

2)弱实体集

 

5种为主关系运算
  • ∩ 连接 ÷ 那八个可由其余四个象征
  • 本来连接是可整合的
  • 涉嫌运算的结果是关系
  • 外情势 顾客与数据库的接口
  • 逻辑方式 数据库中全体数据的完好逻辑结构的陈诉。
  • 内模式

注:where字句不饿能用集中函数作为表明式,需利用having

论及的会见

1.一对多涉及能够调换为三个单独的涉嫌,也得以与“多”端的关系合并,给“多”端的关系里加叁个原本的“一”作为质量

2.一对一涉嫌得以转移为二个单身的关系,也足以与人身自由一端的关系合併,加多一个被统一的一端作为品质

 

弱实体集的涉嫌:

关联包括弱实体集的有着属性以至其直属的强实体集的键

 图片 11

 

Hosts(hostName)

Logins(loginName, hostname, time)

没有须要At表,At成为了Logins的一片段

 

完整性约束

防止数据中语义不雷同

域完整性约束(表内):限制属性值的限定(限制是还是不是足认为空)

实体完整性约束(表内):分裂元组的某部属性无法长久以来(主键、独一键约束)

参照他事他说加以考察完整性约束(表与表):贰个表的有个别属性是别的表的某部属性(外键,这天天性需若是被参照的表的主键或候选键)

 

独一键约束:

能够独一区分不相同的元组,允许有null值,一张表只好有贰个主键然则足以有八个独一键

 

完整性约束

  • 实业完整性:主码中的属性不可取空值
  • 参谋完整性:
    • 外码:设F是关系Kuga的一个或一组属性,尽管F与关系S的主码Ks相呼应,则称F为关系智跑的外码(外键)
    • 仿照效法关系昂Cora(F,..,...),被参照关系S。
    • F的取值必需为:
      • 照旧取空值
      • 大概等于S中有个别元组的主码值
  • 参照完整性的特色:
    • 在被参照关系中珍视字的值在参照他事他说加以考察关系中不必然出现
    • 但在参谋关系中冒出的首要性字值在被参照关系中必得求出新
    • 值得注意的是外键可财富于于同一关系,也正是被参照关系正是参谋关系

可观的数额独立性

论及代数

从数据库中寻觅必要的内容

内需采用高端查询语言:

辩驳:关系代数

实践:SQL

 

E-揽胜极光模型到事关模型的更改

应用程序和数据库的数据结构之间互相独立。其分为两类,一是轮廓数据独立性;二是逻辑数据独立性。
指标是为了保存外形式和应用程序不受影响。

关系代数:

对涉嫌的演算来宣布查询。(运算:运算对象、运算符、运算结果)

运算对象(Operands)

关系

运算符(Operators)

对涉嫌的操作

Five basic RA operations:

Basic Set Operations(集结运算)

       union(并), difference (差)(no intersection, no complement)

Selection: s(选择)

Projection: p (投影)

Cartesian Product: X(笛Carl积)

 

晤面运算:

差:R1-R2 = {t|t∈R1^t∉R2}

选择:选择图片 12分选汉兰达中满足条件C的条条框框

影子:π A1,…,An (奥迪Q3),选用奇骏中的A1…An列组成新的元组,会删除重复的元组

笛Carl积:LAND1 x PAJERO2 ,Tucson1和传祺第22中学的每一个元组组合

 

Derived operations

intersection(交)

complement(补)

join(连接)

 

交:翼虎1∩普拉多2,奇骏1和LX570第22中学共有的有着元组,LAND1和劲客2的形式必得一律,等价于宝马7系1-(汉兰达1-普拉多2)

连接:

θ连接

图片 13

自然连接

等值连接

外表连接

 

θ连接:

 

由定义可以见到,当自然连接的七个关系远非集体性质时,结果是笛Carl积

θ为比较运算符,输入昂科威1(A1,…,An), Highlander2(B1,…,Bm),输出S(A1,…,An,B1,…,Bm),S中的全体元组都满意θ,运算时得以先求笛Carl积,然后从当中筛选相符条件的结果

 图片 14图片 15

理当如此连接:

θ连接的θ条件为等于,而且极其的法规同名,最后结出只保留一列同名属性

 图片 16

 

求解步骤:

1.求笛Carl积陆风X8×S

2.精选具备满足r[Ai]=s[Bj]的元组

3.革除重复属性

图片 17

 

等值连接:

θ的基准为等于时为等值连接,同名的列需求用表名加点来区分

 

外界连接:

严防消息遗漏,先求连接,然后把外接连的表的远非相称上的元组全体增添进连接的结果中,用null来表示未相配上的值

左外连接 = 自然连接 左边表中失配的元组。

右外连接 = 自然连接 侧面表中失配的元组。

全外连接 = 自然连接 两边表中失配的元组。

 图片 18

 

主干 E-讴歌MDX 模型的改变

  • 实体集到关系的转移 --关系表
    • 性子     --关系表中的属性
    • 主关键词   --关系表中的主关键字
    • 属性域    --关系表中的属性的域
  • 牵连到关系的调换

    • 多对多

      • 各种加入联系的实业集的主关键字属性,作为外键存在
      • 全体外键构成该实体集的主关键字
      • 沟通集小编的性质 -- 平常属性
    • 一对多

      1. 将一对多交换调换为贰个单身的关联表【劣势1】多贰个表【短处2】连接麻烦
      2. 将关联和多的十一分实体集调换为二个涉嫌表【劣点】浪费空间
    • 一对一涉及怎么转移?

论及模型基本概念

字段 、 属性 、 列
字段值 、 属性值
笔录类型、 关系形式
记录 元组、 行
品质同样的元组集合、 关系、 表
属性个数、 元数
元组个数、 基数
域 值得群集、 属性值的取值范围
元组数目最为、 Infiniti关系、 Computer探究有限关系

除运算

涉及LAND除以S的结果为T,则T包涵全体在Tucson但不在S中的二属性集及其值,且T的元组与S的元组的具有组路易港在S中。(可用于验算除运算)

办法一:设昂Cora(X,Y)和S(Y)是四个事关,则奥迪Q5÷S = ∏X(R) -∏X(( ∏X(R) X S) - R )。

艺术二:利用象集,参考   妙啊!

奥迪Q5S÷S的意思就是:在Kuga和S的联系ENVISIONS中,寻觅与S中全部的元组全皆有关联的Tiggo元组。

 

关联代数缺欠:不可能传递闭包

 

 

 

扩充的 E-LX570 模型的改变

  • 负有参加约束的联系集的转移
  • 弱实体集
    • 八个弱实体集总是插手三个二元一对多联系
    • 就此用地点的方法二。浪费空间的缺陷不再存在
  • 类层次

    1. 四个实体集转变到多个涉及表

      • 超类删除时子类也要同期被剔除
      • 在子类的关联表中无需父类的非主属性(展示承接性)
      • 【特点】
      • 当查问涉及到父类的属性和此外一些细节属性时要求连接操作
      • 当查问仅提到到父类的性质时则在父类关系上进展就可以
      • 另贰个独到之处是能够积存非子类的实业
    2. 七个实体集转变到三个关系表

      • 仅生成多少个涉及:他们都包蕴超类Employees的个性,除了主关键字约束以外,不必要定义任何约束
      • overlap约束只可以用通用约束机制来完结
      • 【特点】
      • 重要缺点是无力回天积攒非子类的实业
      • 亮点是仅提到子类的询问仅在一个关联上举行就可以,没有供给额外的总是操作
      • 但论及到全体子类的查询则供给在七个涉及上进展;

提到格局的3类完整性准绳

实业完整性、 主键不为空
参照他事他说加以考察完整性、 外键是还是不是为空视具体而定

备考:1外键的值必需参照相应主键的表中的主键值,或然可以为空。
2主键和外键能够在同一个关系情势中
顾客自定义完整性、 具体的数量约束

SQL

关全面据库标准语言SQL

事关情势的3层种类布局

关系格局、 记录类型、 逻辑情势
子格局、 客户描述、 外格局
仓储情势、 描述怎样物理存款和储蓄、 内格局

DDL数据定义语言:

create、drop、alter、commit、rename、truncate。(P80-P85)

REST奔驰M级ICT:表示删除时有限制标准,有依据对象不允许删除;

CASCADE:级联删除,删除时有关的注重对象也被删去。

建议看一下创建表、修改表、删除表、成立视图、删除视图看一下。例如主键怎么写啊(P冠道IMA中华VY KEY),独一(UNIQUE)、视图检查(WITH CHECK OPTION)等。

 图片 19

 

概述

涉嫌格局的款型定义和优点

数据结构、 简明正确
数据操作、 独立于数据存款和储蓄
数据完整性准则

查询

DQL数据查询语言(P89-P115)SQL是结构化查询语言

SELECT [ALL|DISTINCT] <目标表达式> [,<目标表达式>]...

FROM <表名或视图名> [,<表名或视图名>...] | (<SELECT 语句>)[AS] <别名>

[WHERE <条件表达式>]

[GROUP BY <列名1> [HAVING <条件表达式>]]

[ORDER BY <列名2> [ASC|DESC]];

只要要结实中有新的列名,用as

 

内需删除结果中的同样元组,用distinct

 select distinct branch_name from loan

封存全数的元组用all(默许保留全数)

select all branch_name from loan

1.SELECT语句前边可接:算术表明式、字符串常量、函数(比方转换大小写)、属性别称(as后的内容)等

  1. WHERE语句前面可接:比较、范围(BETWEEN AND)、集结(IN)、匹配(NOT LIKE %_)、空值(IS NULL)、多种标准

       注:ESCAPE ‘<换码字符>’对通配符举行转义;             eg:

       Order by暗许升序,asc升序,desc降序,

必需用在查询最后,能够有多少个排序关键字

       五个单引号表示三个单引号

       相称中%相称大肆字符串,_同盟率性字符

  1. 空值:不可能用‘=’,判定用IS|IS NOT。空值具备不料定。

       3-valued logic: TRUE, FALSE, UNKNOWN.

假定TRUE = 1, FALSE = 0, and UNKNOWN =        ½,AND = MIN; OR = MAX, NOT(x) = 1-x。

  1. 聚拢函数:COUNT、SUM、AVG、MAX、MIN

       注:WHERE语句中无法用集中函数作为基准表明式,SELECT、HAVING中技艺用。

       集函数内得以用distinct/all,总括 不另行的/全体的 结果

       集函数在总结时只要值全为null,结果也为null,不然持有的null被忽略,只总结非null

  1. 分组Group by:依据某一列或多列分组,值非凡的为一组,目标是细化集函数的机能对象,分组后集函数功用于每一组,每组有三个函数值

       注:假设利用了集聚函数,则SELECT后只可以接聚集函数恐怕GROUP BY前边的品质(属性集)。

  1.    WHERE:效率于基本表或视图,选取满足条件的元组,对原始表筛选;

       HAVING:成效于组,选拔知足条件的组,条件是组属性/集函数,对原有表经处理后的表筛选。

7. 

SELECT  S  FROM  R1,…,Rn   WHERE  C1  GROUP BY a1,…,ak  HAVING  C2

施行顺序:

       a.总计FROM-WHERE部分,获得有全体路虎极光1,…,Rn属性的表;

       b.遵照属性a1,…,ak分组;

       c.总计C第22中学的集函数,只保留满足C2的组;

       d.计算S,再次回到结果

  1.    连接:有重名属性用表名加点表示,没有重名属性能够一直表示,在where里连接,实际上试行时是遍历FROM中表的具备元组,依次判断是还是不是相符WHERE;

       自个儿连接:取小名操作,在FROM中显式定义五个同表的元组变量;eg:

       外连接:

FROM S LEFT|RIGHT|FULL OUTER JOIN SC ON (S.Sno=SC.Sno)

       SQL Server不支持 Natual join

       inner join等同于在where里写连接条件,Rubicon JOIN S on <condition>是θ连接

 图片 20

 

  1.    子查询:如若实查询的结果可以确认保障唯有一个元组,则能够用作值

       在FEOM和WHERE中都可插入子查询。

       不相关子查询:子查询的查询条件不依据于于父查询。

       相关子查询:子查询的询问条件信任于父查询。eg:图片 21

 

       注:

              子查询中最棒用元组变量来命名结果元组

              子查询中不可用OKugaDE冠道 BY。

              有个别嵌套查询能够用接二连三代替,有个别卓殊。

              一些带EXISTS或NOT EXISTS谓词的子查询不能够被其余花样的子查询等价替换;

              全数带IN谓词(IN谓词日常出现在where中后跟子查询)、相比运算符、ANY和ALL谓词的子查询都能用带EXISTS谓词的子查询等价替换。

              ANY(SOME):某个

              ALL:所有

    对应集函数:图片 22

 

              EXIST:存在。不回去数据,只爆发逻辑真值。

       全称量词调换(难题):选修了整套科目->没有一门课不选。(P110)

       特称量词调换(难题):选修了A选的总体科目->未有一门A选过的课不选。(P111)

  1. 汇合查询:并(UNION)、交(INTEEnclaveSECT)、差(EXCEPT)。对多少个SELECT结果开展操作。

 图片 23

SQL语言的组成都部队分

  • 数量定义语言(DDL : Data Definition Language)
    • 担任数据结构定义与数据库对象定义的语言
    • CREATE
    • ALTER
    • DROP
    • 操作的指标包蕴涉及表、视图、索引等。
  • 多少操纵语言(DML : Data Manipulation Language)
    • SELECT
    • INSERT
    • UPDATE
    • DELETE。
    • 它们各自用于查询、增多、修改和删除表中的行
  • 数量调节语言(DCL : Data Control Language)
    • 在SQL语言中,是一种可对数码访问权开展支配的一声令下,
    • 由 GRANT 和 REVOKE 八个指令组成。
  • 事务处理语言(TPL: Transaction Processing Language )
    • 它的语句能保证被DML语句影响的表的全数行及时得以更新。包蕴BEGIN TRANSACTION,COMMIT和ROLLBACK。

关系查询语言和涉嫌演算

DML、 查询 更新
论及查询语言: 关系代数、 关系演算、 关系逻辑

SQL续

数据库三级形式

  • SQL语言也支撑关全面据库三级方式类别布局
    • 内情势:存储文件(逻辑结构)
    • 模式:基本表
    • 外格局:视图 一些基本表

波及代数

5基本操作: 并 差 笛Carl积 投影 选取
4组成操作: 交 连接 自然连接 除法
7扩充操作: 改名 广义投影 赋值 外连接 外界并 半连接 聚焦操作

等值连接、 笛Carl积 等值
自然连接、 等值连接 去除重复等值属性列

DDL数据定义语言:

create、drop、alter、commit、rename、truncate。(P80-P85)

       REST瑞鹰ICT:表示删除时有限制标准,有依赖对象(作外键、包蕴视图、触发器等)不允许删除;

       CASCADE:级联删除,删除时有关的信任性对象也被剔除。

       提出看一下创设表、修改表、删除表、创造视图、删除视图看一下。比方主键怎么写啊(P陆风X8IMALacrosseY KEY),独一(UNIQUE)、视图检查(WITH CHECK OPTION)等。

       多属性键:Primary key(a, b)(a, b为属性名)

 

primary key 和 unique

1.每一个关系足以有贰个主键,不过足以有七个unique

2.主键的值永恒是not null,而unique的值能够有null(最多一个)

3.数据库管理种类会给主键私下认可创设目录

4.都能够视作外键被引述

 

DML数据操作语言:insert、update、delete。(P115-P119)

       1.

INSERT INTO <表名> [(<属性列1>[,<属性列2>]…)]  注:可以指定属性插入

       VALUES (<常量1>[,<常量2>]…);

       INSERT INTO <表名> [(<属性列1>[,<属性列2>]…)]

       子查询;

 

    注:使用子查询时在insert into 表A 后必供给写明属性,假设子查询的数据类型与要插入的表中的门类不平等时,博览会开强制调换

       2.

UPDATE <表名>

       SET <列名>=<表达式>[,<列名>=<表达式>]…

       [WHERE <条件>];

 

       3.

DELETE FROM <表名>

       [WHERE <条件>]; 

 

注:不写where时会删除表里全部的元组

 

 

数量定义基本作用

否定的操作、 差操作
搜索不学C2课的学生

荒唐格局 πSNAME,AGE(σCNO≠‘C2’(S⋈SC))
自然要用“差”的款型:
πSNAME,AGE(S)-πSNAME,AGE(σCNO=‘C2’(S⋈SC))

全数表征、 除法操作

πSNO,CNO(SC)÷πCNO(C)

视图(VIEW):

视图是从叁个或多少个基本表(视图)导出的表。视图与基本表分化,视图是叁个虚表,数据库中只存款和储蓄视图的定义,而不存放视图所对应的多寡,对视图查询时才会按视图的概念从基本表中查询。(P121-129)

功用:简化顾客的操作;使用户能以八种角度对待同一数据;对重构数据库提供了迟早程度的逻辑独立性;能够对神秘数据提供安全保证。(压题哈哈哈)

CREATE VIEW <视图名> [(<列名1>[,<列名2>]…)]

AS <子查询>

[WITH CHECK OPTION];

 

注:必须内定视图的享有列名的境况:

        a.有指标列不是单纯的属性名,而是聚集函数或表达式

        b.多表连接时选出了多少个同名列作为视图的字段

        c.需求在视图中为有个别列启用新的列名

1.行列子集视图:单表导出,单纯抽取的少数列和行,而且保留了主码。

2.视图消解:把视图的定义和询问结合起来调换为等价的对基本表的查询,非常多关周到据库对行列子集视图的查询能够准确调换,非洲开发银行列子集视图就不确定了。

3.革新视图:也须要改换为对基本表的翻新。经常的,行列子集视图是可更新的

with check opinion可更新视图,会在增加和删除改时关周全据库管理种类会检讨视图定义中的条件,假如不满足会拒绝实施操作,举例插入的数据与where子句中的条件不符,会拒绝插入。使用select * 的视图可扩展性差。

4.视图的效应:P128-P129

 

作用:

1简化查询

2屏蔽底层数据库的改动,实现多少独立

3提供权限,区别的顾客能够利用差别的表中的分裂字段,能够解决一个客商能够查看差异表中的一部分字段的主题材料,把客商能够查看的字段放进一个视图

 

方式定义

  • SQL提供了三级方式结构的概念成效,相关的定义语句如下:
操作对象 创建 删除
模式(命名空间) CREATE SCHEMA DROP SCHEMA
关系表 CREATE TABLE DROP TABLE
视图 CREATE VIEW DROP VIEW
索引 CREATE INDEX DROP INDEX
  • 成立格局基本语句
    • CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
    • CREATE SCHEMA <模式名>AUTHORIZATION<用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]
    • DROP SCHEMA <模式名> <==CASCADE|RESTRICT==>

SQL基本概念

基本表、 自个儿独立的表、 三个关乎七个基本表、 多少个基本表二个囤积文件 多少个表诺干索引

视图、 贰个之上基本表导出的表

索引

目录(INDEX):索引是对数据库表中一列或多列的值实行排序的一种结构,使用索引可飞速访谈数据库表中的特定音讯,数据库索引类似图书目录,可以加速查询速度。(前年课题)

(1)     关周详据库管理连串会自行选择相符的目录作为存款和储蓄路线,顾客无需显式选取索引。

(2)     聚簇索引:聚簇索引的目录项顺序与表中记录的概略顺序一致。所以在三个基本表上最多只好创设三个聚簇索引。对于基于聚簇索引列的询问(特别是限量查询),能够增加查询功能。

(3)     聚簇索引的适用范围:聚簇索引列存在大气非重复值;少之甚少对基表实行增加和删除操作;比非常少对中间的变长列实行修改操作。

声称格式:

CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);     

·  用<表名>内定要建索引的基本表名字

·  索引能够创立在该表的一列或多列上,各列名之间用逗号分隔

·  用<次序>钦命索引值的排列顺序,升序:ASC,降序:DESC。缺省值:ASC

·  UNIQUE申明此索引的每贰个索引值只对应独一的数据记录

·  CLUSTE奥迪Q3表示要确立的目录是聚簇索引,创建聚簇索引后,基表中多少也亟需按钦点的聚簇属性值的升序或降序寄存。也即聚簇索引的目录项顺序与表中记录的概况顺序一致,二个基本表只好创立三个聚簇索引

适用范围:

    a.聚簇索引列存在一大波非重复值

    b.相当少对基表进行增加和删除操作

    c.非常少对内部的变长列举行修改操作

 对于已含重复值的品质列不能够建UNIQUE索引,对有些列构建UNIQUE索引后,插入新记录时DBMS会自动物检疫查新记录在该列上是不是取了双重值。这一定于扩大了二个UNIQUE约束

安插原则

·  索引是大意结构划设想计的要紧内容之一

·  采取索引列的形似标准如下:

  ·  日常作为选拔运算相比较列的品质应设置为索引列

    ·  在学生表中,常根据学生姓名举办查找,则学生姓名应设定为索引

  ·  对索引列的广泛查询的询问结果占总记录数的百分比不宜过高

    ·  学生表中性别列的取值独有“男”或“女”,在此个列上建索引意义不大(除非采纳位图索引)

  ·  索引列数量应尽量少

    ·  索引太多会变成数据更新速度变慢

  ·  在查询条件子句中尽量不要对索引列进行函数总计

    ·  举个例子设salary为索引列,则salary/陆仟>age/50那样的语句会形成数据库不能够利用索引

    ·  应改形成salary>伍仟*(age/50)的款式,即表达式右侧是独立的索引列

基本表定义

  • SQL基本建表语句
    • CREATE TABLE表名
    • (<列名1> 数据类型 [列级约束],
    • [<列名2> 数据类型 [列级约束],]
    • ……,
    • [表级约束])。
  • 自律举例
    • primary key
    • foreign key
    • references

Foreign Key (Cpno) REFERENCES Courses (Cno)

 数据类型
     char(n) :固定长度为n的字符串
     varchar(n): 可变长度为n的字符串
     smallint: 短整数
     int: 长整数
     numeric(p,s) :定点数。由p位数字组成,包括s 位小数 
     float(n): 精度至少为n位数字的浮点数
     real:取决于机器精度的浮点数
     double precision:取决于机器精度的双精度浮点数
     date: 日期,格式为年、月、日,YYYY-MM-DD 
     time: 时间,格式为时、分、秒, HH:MM:SS 
  • 修改表

    • 累积列|完整性约束:

      • ALTER TABLE <表名>** ADD** <列名> <数据类型> [完整性约束]
        • 修改表:在学员表中增添字段Sclass,字符类型,长度20
        • Alter table Students add Sclass char(20)
        • 追加课程名称必需取独一值的束缚规范
        • Alter table Courses add unique (Cname)
    • 删去列|完整性约束:

      • ALTER TABLE <表名> DROP <列名> <数据类型> [完整性约束]
    • 修改列:

      • ALTER TABLE <表名>ALTER COLUMN<列名> <数据类型>
        • 将年龄的数字类型由字符型改为整型
        • Alter table Students alter column Sage int
  • 删除表

    • Drop table <表名> [restrict|cascsde]
    • Restrict: 表删除有限制规范化,不能被别的表的自律所引用,不能够有视图、触发器、存款和储蓄进度或函数
    • Cascade:把三个基本表的概念连同表上的有所记录、索引以致通过基本表导出的有着视图都删除,并释放相应的蕴藏空间

复习题库

数据库操纵作用、 DML、 查询更新
数据库调整效率、 DCL、 revoke commint等

完整性约束

数据库的完整性:数据的不易和相容性。(看下概念P157)

封锁是数据库必要强制施行的因素之间的涉嫌,必得一贯为真,幸免出现不雷同

封锁分类:

       1.码(主键、候选键)P普拉多IMA凯雷德Y  (A1, A2, .., An) or UNIQUE (A1, A2, ..., An),插入时会检查是还是不是已插入了键同样的元组;

       2.属性约束,NOT NULL, CHECK,注:check里对品质约束,出现的别的属性供给写在子查询里,check只在insert/update时检查;   e.g:图片 24

 

       3.元组约束 eg:

图片 25

       4.外键或参阅完整性,须求有个别属性是另二个表里的主键,能够定义在性质后

REFERENCES <relation> ( <attributes> )

也得以定义在建表里作元素

FOREIGN KEY ( <list of attributes> ) REFERENCES <relation> ( <attributes> )

       对被引述的表的元组修改的拍卖:(二种能够的艺术)

              a.默许default:拒绝修改被引述的表的元组

              b.级联cascade:在引用的表花月被引述的元组进行同样的操作,主删外删,主改外改。举个例子Beers和Sells表,删除Beers中的元组,会把Sells里提到被删去的beer的元组删除,同理对Beers的元组修改会对Sells里的值也修改

              c.设空值set null:把援用的表的值设为null,主删外NULL,主改外改。举个例子Sells的被删除的beer被null替换

       如若要在修改时不使用私下认可的(拒绝实施),需求显式在建表时证实

图片 26

 

       5.断言:复杂的check语句拿出来单独写。

       格式:

CREATE ASSERTION <断言名> <check子句>

历次对关联修改都要执行,功效不高,系统无法“智能”剖断曾几何时推行断言检查。

drop constraint <约束名>

可以去除约束

drop assertion <断言名>

能够去除断言

 

SQL查询语句基本构造

  • SQL查询语句的为主组织
    • ==SELECT== [DISTINCT] <目标列> [,<目标列>]
    • ==FROM== <基本表 (视图)> [,<基本表 (视图)>]
    • [==WHERE== <条件表达式>]
    • [==Group by== <列名1> [==having== <分组表明式>] ]
    • [==Order By== <列名2>[ ==asc | desc== ]];

函数正视

FD(Function Dependency)、 形为x->Y的命题 、 函数重视
F、 函数正视集
被F逻辑包罗的函数信赖、 F |=X->Y
函数注重集(F)的闭包、 F 、 被(F)逻辑满含的函数信赖的集结
FD和关键码联系、 超键、 候选码
属性集X的闭包、 X = {属性A|F|=X->A}
FD推理准绳完备性、 函数依赖集生产的X->Y都在其闭包中
FD集的矮小信赖集、 (超键之于候选键)

  • 种种FD左边不冗余
  • FD间不冗余
  • 各类FD左边单属性

触发器

       1.格式

CREATE TRIGGER <触发器名>

              {BEFORE|AFTER|INSTEAD OF} <触发事件>ON <表名>/*指明触发器激活的时间*/

              REFERENCING NEW|OLD ROW AS <变量>/*指出引用的变量*/

              FOR EACH {ROW|STATEMENT}                 /*指明触发器类型,即动作发生频率*/

              [WHEN<触发条件>] <触发动作>             /*当触发条件为真时才触发动作体*/

       2.触发事件-条件-动作法则,当特定的类别事件(插入、更新等)产生时,倘若法规的尺度创建,则试行法则中的动作,否则不实行该动作。

       3.为了消除断言功用低,不会咬定是不是相应进行check的主题素材,允许使用者钦点何时推行check

       4.触发事件 AFTERubicon /BEFORE /INSTEDA OF,instead of是对视图的改换,会把被instead of的对基本表的改换替换来对视图的修改,SQL Server专有

       5.触发器类型,for each row会对每一行都试行,for each statement只实行一遍,暗中同意是后人

       6.REFERENCING里援用的从头到尾的经过,纵然是for each row,则能够援用old row| new row表示修改前后的元组,即便是for each statement,则能够援用old table| new table表示修改前后的表

       7. Inserted 、Deleted指代退换的表,后面一个指顾客插入的数量,前者指客商删除的数目

若是是update事件,则Inserted、Deleted表里都有内容(update的面目是先delete再insert) 要是只是insert、delete事件,则独有对应的表里有内容

例:视图的触发器

 图片 27图片 28

 

 

SQL单关系查询

候选码的求法

第一来看候选键的概念:若关系中的某一属性组的值能独一地方统一规范识多少个元组。

若W是候选键,则必得满意八个条件:W的闭包是U;W没有冗余。

设关系形式奥迪Q3中U=ABC.......等N个属性,U中的属性在FD中的景况:

  1. 只在左部出现; 一定期存款在于某候选码个中
  2. 不在左右油不过生; 一定期存款在于全数候选码中
  3. 只在右部出现; 一定不在候选码中
  4. 反正涌出; 与候选码组合,满足属性集闭包是U,鲜明候选码。

仓库储存进程和触发器

Transact-SQL数据库编制程序

属性查询

  • 内定列顺序无关
  • 用*意味着全体属性
  • 列能够满含运算符
  • 顾客能够钦定小名

涉嫌情势的解说

方式分解、 Computer中多少存款和储蓄、 不在泛关系r、 在数据库情势中
无损分解、 损失分解、 投影连接能或不可能破镜重圆、 寄生元组
泛关系假如、 先存在r泛关系再谈谈分解、 无要是之与悬挂元组(自然连接被遗弃的)
情势分解优点、 解决冗余操作十一分、 分解的数据库可以储存悬挂元组存储泛关系中无法积累的新闻
格局分解短处、 检索需接二连三、 有泛关系大概寄生元组、 无泛关系大概悬挂元组

积累进度

积攒进程:一组实现一定效用的SQL 语句集。系统提供/客户自定义存款和储蓄进度。

意义:在劳动器端急迅试行SQL语句,效用高

       收缩了客商机和服务器之间的通信量

       方便实行公司准绳

语法:

       1.声明:

declare @局部变量 <变量类型> [,@局部变量 <变量类型>……]

  全局变量用@@开端

       2.赋值:

select @局部变量 = 变量值

set @局部变量 = 变量值

       3.注释:

--单行注释;
/*
多行注释
*/ 

 

       4.流程序调整制:begin end ,if else,

              分支判别

                     格式a:

CASE <运算式>

           WHEN <运算式> THEN <运算式>

            …

           WHEN <运算式> THEN <运算式>

           [ELSE <运算式>]

           END

                     格式b:

                            

CASE

        WHEN <条件表达式> THEN <运算式>

          …

         WHEN <条件表达式> THEN <运算式>

         [ELSE <运算式>]

         END

              循环: 

WHILE <条件表达式>

           BEGIN

           <命令行或程序块>

           [BREAK]

           [CONTINUE]

           [命令行或程序块]

           END

              等待: 

WAITFOR {DELAY <‘时间’> | TIME <‘时间’>| ERROREXIT | PROCESSEXIT | MIRROREXIT}

                     时间必需为DATETIME类型

                     a.DELAY:用来设定等待的小时,最多可达24 时辰

                     b.TIME:用来设定等待甘休的年华点

                     c.EKugaROREXIT:直随地理非不奇怪中断

                     d.PROCESSEXIT:直处处理符合规律或不法规中断

                     e.MISportageROREXI: 直到镜像设备退步

              GOTO: 跳转到以”:”结尾的标记符

              RETURN: RETURN [(整数值)],停止近些日子先后,重返到上叁个调用它的程序或其余程                            序,括号内足以内定二个重临值,不然会依靠程序实行结果再次回到默许值

              EXEC: 用于实施存款和储蓄进度,EXEC <存储进度名>[参数1[,参数2]……]

              PLacrosseINT: 打字与印刷,CONVERT()能够把不是字符串的情节强制转变来字符串

 

触发器的效果

1.通过数据库中有关的表张开级联修改。

2.禁止或回滚违反引用完整性的变动,进而打消所尝试的数目修改工作。

3.兑现比 CHECK 约束定义的限量越来越复杂的限定。

4.找到数据修改前后表状态的差异,并依附此差距选用行动

 

元组查询

  • 利用==distinct==关键字去掉重复行(SQL语句中select私下认可不排除重复)
  • 查询满意条件的元组:
WHERE子句常用查询条件 谓词
比较 =, >, <, >=, <=, !=, <>, !>, !< not 上述比较运算符(例如not=)
确定范围 between and, not between and
确定集合 in, not in
字符匹配 like, not like
空值 is null,is not null
多重条件 and, or
  • 字符相配查询
    • 通配符
      • %:自便长度的字符串。
      • 例如:a%b == acb, addgb,ab…
      • _:任性单个字符
      • 例如:a_b == acb, adb…

无损分解测量检验

创设表格

  • 属性Aj做列、 模式Ri做行;
  • 队列有时断时续填aj、 行列无交叉填bij。
    追踪Chase
  • 依附信赖集F|=X->Y;
  • 两行X一样则修改使两行Y也一致
  • 两行Y、 aj > 下标小的bij
    有多个行全aj 是没有害分解

无损分解丰裕须求定理:

  • Ri是涉及情势Wrangler的四个分解
  • (CR-V1交奥迪Q32)->(揽胜1-凯雷德2)或(Enclave2-Wrangler1) 注释:即推导属于FD,在依附集中

维持函数依赖FD的解释性子

  • 1验证F中的每一种FD是或不是被随意数据库格局逻辑富含
  • 2 关系形式函数信任闭包F = 全体的数据库形式函数正视闭包
  • 无损分解天性与维持函数重视分解性情无关、 结合形式分解的优短处
  • 格局分解与格局也就是、 数据等价 语义等价
  • 数码等价、 不会抛弃音信,无损分解本性
  • 语义等价、 数据库形式有同样的依附集闭包,保持FD分解性子

分解天性比方、 二日性状

波及模式Wrangler(ABC),ρ={AB,AC},分析在F1={A->B},
F2={A->C,B->C},F3={B->A},F4-{C->B},B->A}下的解说天性?
1解析无损分解:XC601交Highlander2=A 、 AB-AC=B 、 AC-AB=C;
即满意A->B可能A->C重视的是无害分解:F1、F2。
2分析保持FD分解:关系格局函数信任闭包 = 全部数据库格局函数重视闭包;
即:F1满足;F2不满足,丢失B->C;F3满足; F4不满足,丢失C->B;

关系情势的范式、 (1NF、 2NF)过时、 3NF、 BCNF

  • 1NF、 关系r的属性值不可再分
  • 2NF、 1NF 种种非主属性完全函数重视于候选键
  • 3NF、 1NF 各种非主属性都不传递正视与大切诺基的候选键。(借使有,分解后,那正是外键的原由)
  • DCNF、 1NF 各类属性都不传递信赖于Tiguan的候选键
  • 平常FD: 类似 A ->AB ;ABC->ABC等无价值的FD
  • 主属性:富含候选码的属性组
  • 传送依赖:类似A->C,C->B;

定理:满足BCDF->满足3NF

  • BCNF、 无损分解、 不肯定保持FD分解
  • 涉及情势奇骏优先BCDF分解,假诺BCDF不满意保持FD,则解释为3NF

3NF分解算法

关系情势Sportage(U),主键W,Tiggo上还会有FD X->Z。并且Z是非主属性(Z不属于X),
X不是候选键,那样W->Z正是二个传递重视。此时亟待揽胜分解为2个情势
R1(XZ),主键X;
安德拉2(Y),此中Y=U-Z,主键还是W,外键X(参照瑞虎1)。
假使卡宴1、凯雷德2还不是3NF,那么在重复上述,直到数据库格局为3NF。

BCNF分解算法

和3NF演说算法很像,只是FD X->Z,在那之中Z也能够是主属性。

小结3NF BCNF表达算法: 消除传递信赖,发生外键

分解成3NF形式集的合成算法?

  • 求F的小小正视集,把左部同样的FD合併性
  • 对每一个细微信赖聚焦的FD X->Y 去构成一个情势XY
  • 组成的形式聚焦,借使各类形式都不包蕴Koleos的候选键,那么把候选键单独作为贰个方式。

分解3NF举例
波及格局揽胜(ABCDE),Tiguan的微小注重集{A->B,C->D}。
从注重集可以看到奥迪Q5的候选码为ACE。
先依照最小信赖集 生成ρ{AB,CD}方式,不富含候选码ACE
参加候选码的格局,获得 ρ{AB,CD,ACE}

局部注重和传递信赖是形式发生冗余和丰硕的几个基本点原由,
出于3NF只化解了非主属性对候选键的一些依赖和传递重视,
虽说品质已经很好了,但依然还应该有小一些存储格外。

情势设计艺术

  • ρ是BCNF或3NF模式集
  • 无损分解
  • 维持函数信任集

标准化理论

摘抄:

涉及情势的标题:

  • 数量冗余:重复出现,浪费空间。(尽大概少)
  • 立异特别:更新代价(最棒未有)
  • 插入十分:插入部分消息时不可能插入(最棒未有)
  • 删除极度:恐怕删除了任何想要的数量(最佳未有)

 

 

SQL多涉及查询

错题集

  1. 数据库系统的骨干是( D )
    A) 编译系统 B)数据库 C)操作系统 D)数据库管理种类

  2. 发挥客商接纳观点的数据库局地逻辑结构的模子是( C )
    A) 概念模型 B)逻辑模型 C)外界模型 D)内部模型
    备考: 概念模型;表明顾客采取观点的数据库全局逻辑结构的模型

3.对关周全据库来说,上边( C )说法是大错特错的
A)外键和呼应的主键能够分歧名,只要定义在平等值域上就可以
B)分歧的性子可对应于同一值域
C)行的相继能够任性交换,但列的逐个不可能随便交流
D) 关系中的自便八个元组无法完全同样

注释
1 外键的值必得参照相应主键的表中的主键值,或许可感觉空。
2 主键和外键能够在同二个关联方式中

4.数据库系统生存期分多少个等第:规划、须要剖判、概念设计、逻辑设计、物理设计、完毕、运维维护。

5.上边关于情势分解的描述中,不得法的是(D )
A) 若三个形式分解保持函数正视,则该解释一定有着无损连接性。
B) 若供给表达保持函数正视,那么格局分解能够到达3NF,但不断定能到达BCNF
C) 若需求表达既具备无损连接性,又保险函数正视,则方式分解可以达到3NF,但不必然能落得BCNF
D) 若须求表达具备无损连接性,那么格局分解一定能够直达BCNF

注释
A选项,保持FD—>无损分解,不可能逆推
B选项,BCNF->3NF,不能够逆推
C选项, BCNF 满意无损分解,不肯定满意保持FD分解;所以优用BCNF分解,假若那个才采用3NF解释。

3.下述哪一条不是出于涉及情势设计不当而孳生的(B )
A) 数据冗余 B) 错失修改 C) 插入分外 D) 修改拾壹分

1.别样多个二元关系在函数正视的规模内必能抵达( D )
A) 1NF B)2NF C)3NF D)BCNF

备注 二元关系

设关系方式途乐(ABCD),F是Sportage上创立的FD集,F={AB→CD,A→D}。
1)试表达ENCORE不是2NF方式的理由。
2)试把R分解成2NF模式集。

注释:
1 PRADO的候选键是AB,则非主属性为C和D,並且AB→D创制。而已知A→D,因此AB→D为非主属性D对候选键的一些信任。
2 R分解为:R1(AD)主键是A;
R2(ABC)主键是AB,外键是A。
对于3NF的判断:是还是不是?非主属性传递依赖于候选键

函数信任

非通常函数注重

一起函数重视

部分函数信任

传递函数注重

1.函数依据:(概念省略,X、Y是性质组U的子集)X函数分明Y或Y函数依赖于X,记作X→Y。举个例子:系号→系名,学号→姓名。

  (1)函数信任不是指涉嫌情势Highlander中的有个别关乎满意的牢笼原则,而是指XC60上的百分之百关系都要满意的自律标准。函数信任关系的留存与时光非亲非故,而只与数据里面包车型客车语义规定有关。 函数注重的留存与时光非亲非故,只与数量里面的语义定义有关。

  (2)函数重视的骨干品质:扩展性,投影性,合併性,分解性,

2.非平时的函数信任X→Y:X→Y,但Y不含有于X。暗中认可小编么研商的都以非日常的函数信任。

3.平时的函数信任X→Y:X→Y,但Y包含于X。必然成立(好疑似废话)。

4.若X→Y,则称X为这几个函数信任的决定属性组,也称决定因素,Y为依据因素。

5.一心函数信任:在奥迪Q3(U)中,假设X → Y,并且对于X的其余叁个真子集X’,都有X’ /→ Y,则称Y对X完全函数信赖。记作X F→ Y。

  推论:单一调整因素料定是全然函数正视。

  例:(学号,课程号)→成绩

6.部分函数信赖:在中华V(U)中,要是X→Y,且Y不完全函数正视于X,则称Y对X一些函数信赖。记作X P→ Y。

  例:(学号,课程号)→课程名  (因为课程号→课程名,而科目号是(学号,课程号)的真子集)

7.传递函数依赖:在牧马人(U)中,如果X→Y(Y不带有于X),Y /→ X,Y→Z(Z不分包于Y),则称Z对X传递函数重视。记为X 传递(t)→ Z。

  注:条件中要有Y /→ X,是因为一旦Y→ X,则Y←→ X,则X直接→ Z,属于直接函数信赖,而非直接。

  例:系号→系名,系名→系经理名。

会集操作

  • 列席会集操作的各查询结果的列数必需一致,对应项的数据类型也不可能差别
  • 会师操作重要有: 并union、交intersect和差except
  • 在union, intersect, except中缺省气象下:化解重复元组
    • 在后加上all,保留重复元组

SQL形式定义

SQL方式、 情势名和形式具有者的账户、 包涵每个成分定义(基本表、视图、索引等);
二个形式 、 三个仓库储存空间、 基本表的聚众;

情势创立 : Creat Schema <情势名> Authorization 客户名;
格局撤除、 Drop Schema STU [Cascade(级联)|Restrict(约束)];
Cascade级联合展销毁全体因素、 Restrict约束。

习于旧贯性接纳DATABASE替换Schema词, 语句为 Create DATABASE 。
SQL语句不区分轻重缓急写。

1.候选码:设K为CRUISER<U,F>中的属性或性质组合,若K F→ U,则称K为讴歌RDX的候选码(候选键)。(即U完全正视于K)。

2.超码:若U部分信任于K,即K P→ U,则称K为超码(超键)。候选码是比极小的超码

3.候选码只怕多于二个,可选此中二个当作主码。包涵在别的叁个候选码中的属性称为主属性;不包括在其余三个候选码中的属性称为非主属性(非码属性)。最简便的情形,单个属性是码(主码或候选码);最极致的事态,整个属性组U是码,称为全码。(主码和候选码都简称码)

4.提到方式奥迪Q3中的属性或性质组X不是福特Explorer的码,但X是另三个关系情势的码,则称X为昂Cora的外部码(外码)

多关系连接操作

  • 等值连接

    • 比较运算符
    • between ... and ...
    • 理所当然连接
      • 在等值连接中把对象列中的重复属性列去掉
  • 自身连接

  • 外连接

    • 在相似连接中,唯有满意条件的元组才足以用作结果输出,外接连则分歧(左、右外连接),把放弃的元组保留在结果关系中,而在另外属性上填空值
      • 左外连接
        • From子句的写法:Students LEFT OUTER JOIN Employee
        • From子句的写法:Students RIGHT OUTER JOIN Employee
        • From子句的写法:Students FULL OUTER JOIN Employee
  • 复合条件连接

    • and , or

基本表

基本表创造

Create Table <表名> (<列名 类型>,<完整性约束>);

Creat Table T (t# char(4),tname char(8) Not NULL, Primary Key(t#),Foreign Key(tname)References T2(tname2#));
完整性约束了t#为主键,tname为外键且非空且钦定了对应T2表中tname2的参谋完整性

基本表修改

Alter(改换成分)、 Add、 Drop、 Modify(修改)

  • 新列 Alter Table <表名> Add <列名> <类型>
  • 删列 Alter Table <表名> Drop <列名> [Cascade|Restrict]
  • 修改原有列的花色宽度 Alter Table <表名> Modify <列名> <类型>

基本表打消

Drop Table <表名> [Cascade|restrict]
索引 : 效率只限查询、 起到主键的职能

  • 开创索引 Create [Unique] Index <索引名> On <表名>(<列名>)
  • 收回索引 Drop Index <索引名>

范式

图片 29

 

1.第一范式(1NF):每七个轻重必需是不可分的数量项(关系中每种属性都是不行再分的简约项)。

2.其次范式(2NF):若Sportage满足第一范式,且每三个非主属性完全函数依赖于另外二个候选码。

  想来:候选码为单属性也许全码,则属于2NF。

  特点:不真实非主属性对候选码的一部分函数正视。

  1NF→2NF:消除非主属性对候选码的片段函数信任,把有个别函数正视投影出来单独成表。(一事一表)

3.其三范式(3NF):若CR-V满足第二范式,且它的每二个非主属性都不传递信任于其余候选码。

  定义:关系形式ENCORE<U,F>属于第一范式,若本田CR-V中不真实这里样的码X,属性组Y及非主属性Z(Y不含有于Z)使得X→Y,Y→Z创设,Y/→X,则称中华V属于3NF。

  定义驾驭:3NF的定义由1NF推过来的,不太好精通,推断的话用上上行2NF演绎过来的就足以了,那个概念同期也足以评释,若CR-V属于3NF,则传祺必属于2NF。

  特点:每五个非主属性对候选码未有部分函数注重,也不曾传递函数信任。

  劣势:3NF只限制了非主属性对键的依赖关系,而并未有界定主属性对键的依附。

  2NF→3NF:解决非主属性对键的传递函数重视,把传递重视投影出来单独成表。(一事一表)

4.BCNF:关系形式LX570<U,F>中,每二个调整因素都包括奥迪Q5的一个码(候选键),则中华V属于BCNF。

  定义:关系格局Enclave<U,F>属于第一范式,若X→Y(Y不带有于X)时X必含有码,则RAV4属于BCNF。

  特点:排除任何性质对候选码的传递函数信任和一部分函数信任。在函数信任范畴内达成通透到底分手,化解插入和删除相当。

  3NF→BCNF:化解原关系中主属性对键的部分函数依赖和传递函数注重。

  推论:如果R属于BCNF,则

       a.悍马H2中具有非主属性对每贰个码都以完全函数正视;

       b.福特Explorer中兼有主属性对每贰个不含有它的码,都以一点一滴函数重视;

       c.CRUISER中没有任何性质完全函数注重于非码的别的一组属性。

  定理:借使Evoque属于BCNF,则ENVISION属于3NF一定创立。反之不自然成立,因为3NF的不彻底性(大概存在主属性对码的片段看重和传递正视)。

 

率先、二范式(部分第三范式)的老毛病:

1.数码冗余

2.插入极度

3.删除十分

4.立异万分

 

SQL嵌套查询

子查询不得以接纳order by,独有最终结果能够

  • 不相关子查询求解方法由里向外(in, 相比较符)
  • 相关子查询求解方法由活跃里([not] exists)子查询必要用到父查询的列
    • SQL中从不全称量词,可是 All x(P) = !( ョx (!P) )

SQL数据查询

句型 Select - From - Where -;

Where 子句、 条件表达式

  • 算术运算符
  • 逻辑运算符 and 、 or 、 not
  • 集合成员身价运算符 in 、 not in
  • 谓词 exists、 all、 some、 unique(唯一)
  • 聚合函数 avg、min 、 max 、 sum 、 count
  • 子句的运算对象足以是另三个select子句,即嵌套select语句

where s# in (select语句)
where exists (select语句)

Select子句

  • 聚合函数 count(*) count|sum|avg|max|min(<列名>)

select Count(*),Avg(age)
select count(distinct s#) form sc 因为能够选修多门,加了distinct,表达总计选课的总人口,并非上选修课的人次树

select完整句法

where行条件子句、 group分组子句、 having组条件子句、 order排序子句

select<列名序列或列表达式序列>
from<表和(或)视图序列>
[where<行条件表达式>]
[group by<列名序列>
    [having<组条件表达式>]]
[order by <列名[asc|desc]>,...]

select句法实行进度:

  1. 读取form子句表、视图的多寡,实施笛Carl积操作
  2. 分选满意where子句中条件表明式的元组
  3. 按group子句钦定列的值分组,同期提取满意having子句中组条件表明式的那二个组
  4. 按select子句中付出的列名或列表达式求值输出
  5. order子句对出口的对象张开排序,升序排列Asc或许降序排列Desc。

(1)使用带有EXISTS谓词的子查询:查询全数选修了1号课程的学生姓名。

select sname from student where
exists (select sno from sc where sno=student.sno and cno='1')

(2)查询选修了全部学科的学童姓名。

``` 1. select Sname from student where Sno IN
(select Sno from SC group by Sno
having count() = (select count() from course ))

select Sname from student S,
(select Sno from SC
group by Sno
having count() = (select count() from course )) C
where S.sno=C.sno

>> ```
3.
select sname from student 
where not exists ( select * from course where not exists (select * from sc where sc.sno=student.sno and sc.cno=course.cno))

(3)使用带有EXISTS谓词的子查询:查询全数选修了1号课程的上学的小孩子姓名

select sname from student where
exists (select sno from sc where sno=student.sno and cno='1)

Unique和distinct
> Unique是约束完整性的一种,distinct用于查询


####SQL更新 insert into 、 update set 、delect from
> 数据插入格式:
(1)单元组的插入
```INSERT  INTO  基本表名 [(列名表)] VALUES(元组值)```
(2)子查询结果的插入
``` INSERT  INTO  基本表名 [(列名表)]<SELECT查询语句>```
数据修改格式:
```UPDATE  基本表名
SET 列名=值表达式[,列名=值表达式…]  
[WHERE 条件表达式]```
数据删除格式:
```DELETE FROM基本表名
[WHERE 条件表达式]```
>>将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。

insert into student values('95020','陈冬','男','18','IS')

>>Student_1表的内容插入到Student表

insert into Student1
select * from student

>>将学生95001的年龄改为22岁

update student set sage=22 where sno='95001'

>>将计算机科学系全体学生的成绩置零。

UPDATE SC
SET grade=0
WHERE 'CS'=(select Sdept FROM Student WHERE Student.Sno = SC.Sno)

>>删除计算机科学系所有学生的选课记录。

delete FROM sc where 'CS'= (select sdept from student where student.sno=sc.sno)

####视图 ( CREATE、DROP 、 INSERT、UPDATE、DELETE)
> 
CREATE VIEW <视图名>(列表序列)
AS <SELECT 查询语句>

CREATE VIEW STUDENT_GRADE as
select STUDENT.Sno,SNAME,CNAME,GRADE from STUDENT,sc,course where STUDENT.sno=sc.sno and sc.cno=course.cno

DROP VIEW 视图名
更新同表,但是更新有条件?
1. 行列子集视图(从单个基本表选择、投影导出的,且包含主键)
2. 允许更新的视图在定义时必须加上"with check option"

多少信赖的公理系统

U为属性集总体,奥迪Q5为涉嫌形式

A1(自反性,reflexivity):若YÍ XÍU,则X→Y在R上成立。

A2(增广性,augmentation):若X→Y在R上成立,且ZÍU,则XZ→YZ在R上成立。

A3(传递性,transitivity):若X→Y和Y→Z在R上成立,则X→Z在R上成立

注:XZ代指X∪Z

函数信任的逻辑包含

概念  设F是在提到情势Haval上树立的函数注重的集聚,X→Y是一个函数信任。假使对于索罗德的各样满足F的关系r也满意X→Y,那么称F逻辑蕴含X→Y,记为F ⊨ X→Y。

概念  设F是函数信赖集,被F逻辑饱含的函数信赖全部组成的联谊,称为函数重视集F的闭包(closure),记为F 。即 F ={ X→Y |记为F⊨X→Y。 }

定理:推理法则(A1, A2, A3)是万事俱备的,也正是兼具F 中的函数信赖都可用此多少个准则导出;能用此三准则导出的函数信任都属于F

属性集的闭包

设F是性质集U上的函数集,X是U的子集,那么(相对于F)属性集X的闭包用X 表示,它是八个从F集使用函数正视推理法则推出的兼具满意X→A的属性A的成团:X ={ 属性A | X→A在F 中 }

定理: X→Y能用函数重视推理准则推出的放量须求条件是YÍX 。

例  属性集U为ABCD,函数信任集为{ A→B,B→C,D→B }。则可求出A =ABC,(AD) =ABCD,(BD) =BCD,等等。

小小的函数依赖集

定义 假诺波及方式Qashqai(U)上的几个函数信任集F和G,有F =G ,则称F和G是等价的函数信任集。

概念 设F是性质集U上的函数重视集。假若Fmin是F的一个十分的小依赖集,那么Fmin应满意下列多个条件:

       ⑴ Fmin =F ;

       ⑵ 各样函数重视的左臂都以单属性;

       ⑶ Fmin中未有冗余的函数重视(即Fmin中不设有这么的函数依赖X→Y,使得Fmin与Fmin -{ X→Y }等价);

       ⑷ 各种函数信任的左臂没有冗余的性质(即Fmin中空中楼阁此么的函数信赖X→Y,X有真子集W使得Fmin -{ X→Y }∪{ W→Y }与Fmin等价)

 

例  设F是事关方式兰德酷路泽(ABC)的函数信赖集,F={ A→BC,B→C,A→B,AB→C },试求Fmin。

       ① 先把F中的函数正视写成侧面是单属性情势:

       F={ A→B,A→C,B→C,A→B,AB→C }

       显著多了一个A→B,可去除。得F={ A→B,A→C,B→C,AB→C }

       ② F中A→C可从A→B和B→C推出,因而A→C是冗余的,可去除。得F={ A→B,B→C,AB→C }

       ③ F中AB→C可从A→B和B→C推出,由此AB→C也可去除。最终得F={ A→B,B→C },即所求的Fmin。

SQL分组聚焦查询

规范化:投影分解

标准化的大旨尺度便是服从概念单一化“一事一表”的规格,即二个关联只描述五个实体可能实体间的关系。

若多于二个实体,就把它“分离”出来。

因此,所谓标准化,实质上是概念的单一化,即贰个关系表示三个实体

规范化正是对原关系张开投影,化解决定属性不是候选键的别的函数正视。具体能够分为以下几步:

1.对1NF关系进展投影,消除原关系中国和亚洲主属性对键的一部分函数信赖,将1NF涉嫌调换到若干个2NF关系。

2.对2NF关系进展投影,消除原关系中国和欧洲主属性对键的传递函数依赖,将2NF事关转换到若干个3NF涉及。

3.对3NF关系张开投影,消除原关系中主属性对键的有个别函数重视和传递函数信任,也正是说使决定因素都包括二个候选键。获得一组BCNF关系

 图片 30

 

■ 对于那多少个只要求查询而不要求插入、删除等操作的系统,两种非常现象的留存并不影响数据库的操作。那时便不宜过于分解,不然当要对全体查询时,必要更加的多的多表连接操作,那有不小希望轻重颠倒。

■ 在实际上利用中,最有价值的是3NF和BCNF,在展开关联模式的宏图时,平常分解到3NF就够用了。

 

无损连接性(Lossless Join):设关系格局大切诺基(U,F)被解释为多少个涉及形式凯雷德1(U1,F1),中华V2(U2,F2),…, 宝马X5n(Un,Fn),此中U=U1U2…UN,且不真实UNUj式,Fi为F在Uj上的影子,假使Tiggo与昂科威1,ENVISION2,…,君越n自然连接的结果非凡,则称关系形式景逸SUV的疏解具有无损连接性。

简易的话,便是只要对演说后的新关系进展自然连接获得的元组的汇聚与原关系完全一致,则名称叫无损连接。

函数正视保持性(Preserve Dependency):设关系形式Wrangler(U,F)被分解为多少个关系方式LX5701(U1,F1),索罗德2(U2,F2),…, 本田UR-Vn(Un,Fn),此中U=U1U2…UN,且不设有UNUj式,Fi为F在Uj上的阴影;假诺F所包含的自由一个函数正视自然也由(F1 U F2 …U Fn)所包罗,则称关系形式昂Cora的表达具备函数注重保持性

简易的话,若是F上的每三个函数依赖都在其表明后的某一个涉嫌上树立,则这一个解释是维系函数重视的(注意:那是二个尽量标准)

 

SQL数据调控作用

表明等价判定

推断对关系方式的四个表明是或不是与原关系方式也就是能够有两种不一样的科班:

1.解释要持有无损连接性。

2.批注要具有函数信任保持性。

3.疏解既要具备无损连接性,又要具备函数依赖保持性。

       注:

              a.假诺二个表明具有无损连接性,则可以确认保障不抛弃音信。假若五个阐述具备函数        重视保持性,则足以缓和或减轻各个分外景况。

              b.如若必要表明既具有无损连接性,又具备函数信任保持性,则解释一定能够到达       3NF,但不自然能够达到规定的标准BCNF。

              c.在3NF的标准化中,既要检查分解是或不是具有无损连接性,又要反省分解是还是不是具有       函数注重保持性。独有这两条都知足,才干担保分解的不错和实用,才既不会           发生消息遗失,又确认保障关系中的数据满意完整性约束。

 

SQL视图

非标准化技巧:

奇迹能够恰到好处减少乃至扬弃关系格局的范式,进步数据库运营功效。比如平时从三个表中查询数据,为了防止频繁连接,能够适度数据冗余。

  (1)表分割:

              水平划分: 根据一列或多列数据的值把数据行放到四个单身的表中,日常在查询时索要两个表名,查询全体数据须要union操作

              垂直细分: 把主键和有个别列放到贰个表,然后把主键和别的的列放到另四个表中,必要管理冗余列,查询全数数据须要join操作

  (2)非标准化设计的机要优点

              减弱了查询操作所需的总是

              收缩了外界键和目录的多寡

              能够事先举行总结测算,进步了查询时的响应速度

  (3)非规范化存在的严重性难点

              扩大了数量冗余

              影响数据库的完整性

              收缩了数码更新的速度

              扩展了蕴藏表所据有的情理空间

 

SQL索引

事务(Transaction)

客户定义的八个数据库操作体系。ACID个性(原子性Atomicity、一致性Consistency、隔开分离性Isolation、持续性Durability)。

原子性:事务是数据库的逻辑专业单位,二个事务中的操作依旧都做,要么都不做

一致性:数据库中只包括成功事务提交的结果时,数据库处于一致性状态,不然处于区别性状态

隔绝性:事务的推行不可能被别的工作烦恼,并发推行的事务之间不相互干扰

连绵:一个事情提交之后对数据库数据的转移就是长久性的,别的操作不能对结果有影响

 

政工的事态:

active 开首状态,事务在实施时处于此情况

partially committed,事务最后的操作实行在此之前

failed,事务无法健康奉行

aborted,在专门的学业回滚后,数据库恢复到执行职业在此以前的景色,中止,能够有两种管理:1.再一次执行专业;2.杀死事务

committed,在成功进行之后

 图片 31

SQL与Transaction

各样SQL语句都以暗中认可的事情,隐式运营,借使成功施行会隐式提交

政工能够在SQL里表示,begin transaction , commit, rollback

 

数据库系统的回复管理部件负担对原子性和持续性的支撑

shadow-database方案:

       1.要是每一次唯有一个专业处于激活状态.

       2.指针db_pointer 总是指向当前的数据库的均等拷贝.

       3.负有更新都以对数据库的一份shadow copy 进行的, 仅当事务到达部分提交状态并且存有更新页都已经写回磁盘db_pointer 才指向更新后的shadow copy.

       4.若是职业战败, db_pointer所指向的旧的均等拷贝仍可用, 而shadow copy 则被删除.

注:不管理并发事务

 

出现实施:

多少个职业可同期运转,优点:

1.日增处理器和磁盘利用率

2.缩减专门的职业的平分响合时间(短事务没有供给等在长职业后)

 

调度(Schedule)

内定并发事务指令推行的定时间顺序实行的下令种类

一组专门的学业的调节必得由这几个业务的全数指令,必需保留各种业务内部的命令顺序。

SQL的完整性达成

可串行性概念

       1.可串行化调整:多个工作的出现实行结果与按某一遍序串行地试行那一个事情结果一样。(P317)

       2.冲突操作:不一致工作对同一数据的读写操作和写写操作(至稀少几个写操作)。

       3.矛盾可串行化调整:判断可串行化调节的尽量标准。一个调节Sc在保障冲突操作次   序不变的状态下沟通多个工作不冲突操作程序获得调整Sc‘,若Sc‘是串行的,则Sc是   冲突可串行化的调治。

              注:前趋图

                     事务作结点,对于冲突的事务Ti和Tj,不要紧设Ti先访问冲突的内容,则画弧          Ti->Tj,可串行化的调解的前趋图没有闭环。

                     未有闭环的前趋图能够通过拓扑排序得到串行化种类

       4.可还原调节:对于每对事务Ti和Tj,就算Tj读取了由Ti所写的数量项,则Ti应先于  Tj提交。那样的调节称为可过来调治。

       不可恢复生机调节:事务Ti和Tj,Tj读取了由Ti所写的多寡项,假如Ti后于Tj提交,那么  Ti提交时出现谬误,Ti回滚,而Tj却回滚不了了。

       5.级联回滚(Cascading Rollbacks):事务Ti和Tj,Tj读取了由Ti所写的数额项,假诺Ti回滚,那么Tj也要回滚。

       系统应该防止级联回滚,因为级联回滚需求裁撤多量的操作。

       6.无级联调整:为了幸免调治吉林中华南理法大学程集团作的级联回滚,对于每对事务Ti和Tj,如若Tj读取    了由Ti所写的多少项,则Ti必得在Tj读取在此以前交付。这样的调解称为无级联调解。(同期保证了可复苏性)

数据库安全

并发调节(Concurrency Control)

为保证数据库的一致性, 调节必需是冲突或考查可串行化的, 可过来的, 并且最棒是无级联回滚的。

出现操作带来的数额分化性,主要原因是出现操作破坏了业务的隔绝性。

1.放任修改:

2.不得重复读:

3.读脏数据:

为此须求并发调节,其主要性技能有:封锁,时间戳,乐观调控法,多版本出现调整等

 

锁机制

并发调整:事务是并发调节的着力单位。

       1.封锁:排他锁(Exclusive locks,简称X锁)、共享锁(share locks,简称S锁)。

       X锁(写锁):若事务T对数据对象A加上X锁,则此外事情在T释放此锁在此以前不可能读取和修改A。

       S锁(读锁):若事务T对数码对象A加上S锁,则T能够读A但不可能修改A,其余事情只可以再对A加S锁,不能够加X锁,直到T释放A上的S锁截至。

       2.     拔尖封锁左券:防止遗失修改。

              二级封锁公约:顶级 幸免读“脏”数据。

              三级封锁契约:二级 防止了不可重复读。

       3.两段锁协议:所有的事必需需分四个阶段对数据项加锁和平化解锁。第一等第获得封锁,称为扩展阶段(Growing Phase);第二等第释放封锁,也称降低阶段(Shrinking Phase)。(下边多个用来剖断两个调整是还是不是顺应两段锁合同)(P319)

       ①    在对另外数据进行读写在此以前率先申请并赢得对该多少的束缚。

       ②    在释放三个束缚之后,事务不再申请和得到别的其余封锁。

       推论1:若并发施行的装有事情均依照两段锁合同,则对那个业务的其余并发调整攻略都以可串行化的。注意那是二个尽量规范。

       推论2:两段锁协议与防治死锁的二遍封锁法有纠纷之处,遵从两段锁公约的事务也许发生死锁。(P320)

       扩展:抓好版两段锁合同(Strict 2PL):除了2PL内容,还应该有所有的事务有着的锁唯有当专门的工作实现才被放走。可严谨幸免级联回滚。

       4.有关锁的央浼由Lock Manager管理,LM包括当前怀有锁的工作列表、锁的类型、锁哀告队列指针。锁定乞求达到时,假设有其余作业有着冲突的锁,则把恳求者放入央浼队列,不然创立条约并给予央浼的锁。分享锁进级为排他锁只怕引致死锁难点。

       5.死锁:

              a.防备:遵照时间戳分配优先级,若是Ti想要得到Tj持有的锁,有二种方法:

                     1)等待身故:借使Ti比Tj优先级高,则Ti等待Tj,不然Ti中止

                     2)加害等待:如果Ti比Tj优先级高,Tj中止,不然Ti等待

              b.检测:允许死锁发生,要求检查和修补它们。创立一个守候图,节点是事情,如               果Ti在伺机Tj释放贰个锁,那么从Ti到Tj有一条有向边。定期检查等待图里                 是或不是有轮回,假使开采了死锁,中止/回滚个中的三个作业

 

询问管理与查询优化

备份恢复生机(Recovery)

业务的基本操作:

INPUT(X)->READ(X,t)->WRITE(X,t)->OUTPUT(X)

读取X到内部存款和储蓄器缓冲区->把X拷贝给事业局地变量t->把作业局地变量t拷贝给X->把X写进磁盘

 

查询处理

日志

不得不增添的含有日志记录的公文,多个事情并发奉行时日志记录是交叉存的

系统崩溃后,使用日志 重做一些未提交的事体/打消其余未有付诸的政工

登记日志文件时必得根据两条法则:登记的程序严苛按并发事务实施的时日顺序;必得先写日记文件,后写数据库。

询问优化

  • 写出查询树(笛卡儿积、投影、接纳)
  • 选料下移
  • 影子下移(有特殊景况必要加条件)
  • 笛卡儿积变自然连接

撤销

记录:

<START T>事务T开始

<COMMIT T>事务T提交

<ABORT T>事务T中止

<T,X,v>事务T更新了成分X,旧的值为v

 

裁撤日志法规:

1.假诺事务T修改了X,那么<T,X,v>必需在X被写入磁盘此前写入磁盘

2.倘使事务T提交,那么<COMMIT T>必需在享有事务T要施行的修改试行之后再写入磁盘

由此,输出是开始时代达成的(相比较commit)

 

收回的东山复起手续:

 图片 32

 

注:undo操作是幂等的,能够再三实施,所以只要复苏时系统崩溃,只需再奉行贰回苏醒

 

日志文件需求读完整,成效低,能够用检查点来提升作用

 

并发调节

重做

定时检查数据库

1.安歇收取新的事情

2.等候日前的装有事情实现

3.刷新日志到磁盘

4.写入<CKPT>日志记录并刷新

5.接续吸纳专业

 

检查点记录:

<START T>事务T已经上马

<COMMIT T>事务T已经交由

<ABORT T>事务T已经搁浅

<T,X,v>事务T更新了元素X,新的值为v

 

重做日志法规:

若果事务T修改了X,那么<T,X,v>和<COMMIT T>必得在X被写入磁盘此前写入磁盘

故而,输出是后来完结的(比较commit)

 

重做的还原手续:

 图片 33

出现和互相

综合

撤销(Undo)和重做(Redo)的对比:

撤废:1.出口在前;2.举个例子日志里有<COMMIT T>,那么T一定把它要写的多少总体写入磁盘(所以那时无需再撤除)

重做:1.输出在后;2.借使日志里不曾<COMMIT T>,那么T一定还从未把其余数据写入磁盘(所以那时候磁盘里从未脏数据)

输出时的八面玲珑:

把数量变动的记录修改:<T,X,u,v>,表示事务T修改了X,旧值为u,新值为v

撤废/重做的条条框框:

一旦事务T修改了X,则<T,X,u,v>必需在X被修改以前写入磁盘。

修改后的平整对出口相对于commit的年华未曾供给,能够在commit此前输出,也能够在commit之后输出

系统的复苏手续:

1.扫描日志文件,分明各个职业是不是到位(commit, abort都算完毕),在故障暴发前已经终止的作业记入重做连串,未到位的事务记入撤销队列

2.对裁撤队列中的各个事情施行撤废(按照从后到前的逐条)

3.对重做队列中的各类业务实施重做(依据以前到后的逐条)

 

并发的难点:

  1. 不见修改
  2. 不足重复读
  3. 脏读

并发调控的重大方法:

  1. 依附封锁机制的面世调控
  2. 依赖时标的出现调节

供给分析&概念结构划设想计&逻辑结构划虚拟计

数据库设计(主要程度:普通)

要求剖判: 重视是侦察、搜集与剖析顾客在数码管理中的音信要求、管理须求、安全性与完整性必要

数量字典(Data Dictionary)是每一种数据描述的聚合,是进展详细的数目征采和数码解析所获取的显要结果

(1)     方法:直观设计法(不适于音讯保管升高的内需)、规范设计法。

标准设计法:基于E-凯雷德模型的数据库设计艺术、基于3NF的数据库设计情势、基于视图的数据库设计艺术等。

(2)     四个阶段:系统须求深入分析阶段、概念结构划设想计阶段、逻辑结构划设想计阶段、物理结构划设想计阶段、数据库施行阶段、数据库运维与维护阶段。(说不定会考)

(3)     供给剖析与发挥须求方法

①    SA方法(自顶向下、逐层分解的结构化剖判方法):用数据流图和数码字典描述系统。

数据字典:数据项、数据结构、数据流、数据存款和储蓄、管理进程。数据字典是各种数据描述的集聚,是扩充详细的数码搜求和数量解析所获得的珍视结果

②    面临对象的剖判方法:

(4)     概念结构划虚构计:概念模型的特点(P215简要看一下)。

  1. 措施:①自顶向下;②自底向上(常用);③慢慢扩展;④混合攻略。

注:常常选拔自顶向下地张开须要解析、自底向上地安排概念结构(先抽象数据布置有个别视图,再集成局部视图获得全局概念结构),平日以中层数据流图作为规划分E-福特Explorer图的依照。

  1. 统一准备分E-君越图:1.抉择一些应用;2.逐个设计分E-奇骏图
  2. 三种数据抽象:分类(E普拉多图实体型)、集中(E奥迪Q7图属性)、回顾。
  3. 合成E-君越图矛盾:属性冲突、命名矛盾、结果冲突(P228);
  4. 实业和性情的调换法规:1.属性不能够抱有必要描述的属性;2.属性不可能与任何实体具备联系
  5. 概念结构划设想计:1.虚幻数据并陈设有些视图;2.集成局地视图得到全局概念结构;3.认证全部概念结构

(5)     逻辑结构划虚构计:E-ENCORE图向关系模型的调换(与5有重新)

a. 原则

1.一个实体型转变为贰个事关格局;

2.叁个m:n联系调换为八个涉及情势(关系的属性为与联系相连的各实体的键以致联系的性质,关系的键为各实体键的结缘);

3.多少个1:1联系能够转移为三个独立的涉嫌方式(关(关系的质量为各实体的键 联系的性质,每一个实体的键都以事关的候选键),也能够与自由一端对应的关联情势统一(合併后涉及的习性包涵参预的键和挂钩的属性,关系的键不改变);  注:指标是尽量降低连接操作

4.一个1:n联系能够转移为一个独自的关系格局((关系的特性为各实体的键 联系的属性,关系的键为n端实体的键),也得以与n端对应的涉嫌方式统一(合併后涉及的特性为在n端出席1端关系的键和交流作者的性质);

5.八个或多少个以上实体间的四个多元联系调换为三个关系方式(关系的习性为各实体的键 联系的性子,关系的键为各实体键的重组);

6.同一实体集的实业间的联络,即自关系,能够依据1:1,1:n,m:n分别管理

7.负有一样键的关联得以统一,将内部一个关乎情势的一体性质参与到另一个提到形式中,去掉个中的同义属性(不必然同名),适当调治次序

b. 数据模型的优化

1.规定数据正视;

2.对此各种关系方式之间的数目注重实行相当的小化管理,化解冗余的关系;

3.比照数据信任的说理对关乎格局逐一深入分析,考察是不是留存一些函数重视、传递函数信赖、多值注重等,明确各关系格局分别属于第几范式;

4.依据须求深入分析阶段获得的种种应用对数码处理的渴求,深入分析对于如此的应用景况那几个格局是不是适宜,鲜明是或不是要对它们进行联合或表达;注意并不是标准化水平越高就越优,在时常提到连接时标准度高的关系的代价会极高。

5. 根据供给深入分析阶段得到的各样应用对数据处理的须求,对关乎格局进行要求的分解或联合,以拉长数据操作的频率和累积空间的利用率。

          (1)水平分解:把(基本)关系的元组分为若干子集结,定义各类子集结为一        个子关系,以增加系统的效用。

          适用范围:80/20条件,日常被选拔的数额约十分三;或出现事务平日存取不相交的多寡;

          (2)垂直分解:把涉及情势牧马人的天性分解为若干子集合,产生若干子关系形式

 

封锁

  • 基本锁:
    • 排它锁(X锁eXclusive)写锁
    • 共享锁(S锁Share)读锁
  • 锁进级--或许变成死锁难题(读锁升写锁)
  • 自律粒度选用
    • 数据库、关系、元组三级
    • 封锁粒度越大
    • 并发度越小
    • 系统开辟越小
  • 多粒度封锁
  • 自律契约
    1. 修改前加X锁
      • 不保障可重复读
      • 读脏数据
    2. 1级情状下。读前加S锁
      • 不读脏数据
      • 不足重复读
    3. 1级景况下。读前加S锁直到事物截止释放
      • 三个难题均满意

Red Banner数据库技巧

涉及模型短处:

少数的数据类型;不可能清楚表明复杂对象和目的之间的涉嫌;贫乏对象身份标志。

 

 

O-R映射(ORMapping):

顾客支出和保卫安全的中游件层,该层负担将目的数据映射到关全面据库的表中。系统中其余模块能够因而O奥迪Q5映射层以操作对象的办法操作关系表中的数据。

(未有改观数据库的本色)

大幅提升了使用体系开采的生产率。

 

用关周详据仓库储存取对象,阻抗失配(Impedance mismatch)

指标映射到表的费劲:对象包罗复杂结构;存在大的非结构化的靶子;存在类承继

会促成:表存取的频率非常不好,或在表中检索对象很困难

 

面向对象模型OODB:用面向对象数据模型代替关周密据模型。

目的关系模型O福睿斯DB:将关周全据模型增添为目的关周详据模型。

 

目标关系模型

优势:

1.错综相连对象组织才具使得对合理世界的模拟手艺强,方式自然

2.封装性向开拓职员和最后客商屏蔽复杂性和达成细节

3.承继性使得数据库设计和采取编制程序成为可采纳的

特点:

a.通过引进面向对象及管理叶影参差数据类型的组织来扩充关周详据模型.

b.允许元组属性具备复杂类型, 满含非原子值(如嵌套关系).

c.保持关系基础, 特别是对数据的描述性存取, 相同的时间增建模型技术.

d.与存活关系语言向上宽容.

违反第一范式

指标在其REF类型的品质中存款和储蓄所涉及的靶子的OID值,完成对另外对象的引用

 

O讴歌MDXDB 对象-关周密据库是发展趋势

 

集结模型

涉嫌模型:

把要存款和储蓄的新闻划分成元组(行)

元组是受限的数据结构

收获一组值

无法把三个元组嵌套进另三个元组,也不能够把一个表中的元组放进另一张表

同意把数量操作看成具备输入元组和重回元组

 

集结模型:

察觉到顾客想要操作比元组更头眼昏花的数码单元

复杂记录允许List,Map,乃至任何嵌套在中间的数据结构

键值对、文档、列族数据库使用这种复杂的构造

一个聚众是我们想要作为数据操作单元并管制一致性的相干对象集结

行使原子操作更新集合

用集结合数据存款和储蓄通信

以此定义与键值对,文书档案和列族数据库工作。

运用集结,大家得以更便于地在集群上干活,因为它们是复制和分享的单元。

由于消除了关周密据库的对抗失配难题,聚合程序也更易于应用工程师工作。

 

不行分配存款和储蓄

聚拢模型关系映射能够很好地破获数据成分和它们中间的关系。

因为它采用外键,所以它不要求别的聚众实体的定义。

没辙从代表集中的涉嫌中分辨出来

据此,我们不能够运用那一个知识来储存和分发数据。

 

键值数据库&文书档案数据库

都面向集结

都含有大批量含键的聚众

区别:

键值存款和储蓄的聚合不可以知道

文书档案存款和储蓄的集中能够看见结构

 

键值数据库的优势是可以积攒任何项目标指标

文书档案存款和储蓄对能够积累的剧情有限量,对数码有结构定义,能够用一种语言查询文书档案

 

键值存款和储蓄只可以通过键访问

文书档案存款和储蓄能够交给基于字段的目录,能够搜索部分会集,数据库能够创制基于集合字段的目录

 

文档存款和储蓄能够当键值来用

Riak(key-value)允许向聚焦加多用于索引的元数据

Redis允许把集结拆分成lists,sets,maps

 

选择键值存款和储蓄期望集结使用键

选取文书档案存款和储蓄期望对文书档案内部结构提交某种格局的询问

止于 先进数据库本领03 P57

 

一致性(C):在分布式系统中的全部数据备份,在平等时刻是或不是一样的值。(等同于全数节点访谈同一份最新的数量别本)

可用性(A):在集群中一部分节点故障后,集群全体是还是不是还能够响应客商端的读写央求。(对数据更新具有高可用性)

分区容忍性(P):以实效来说,分区约等于对通信的为期要求。系统一旦不能够在为期内完成数据一致性,就表示爆发了分区的气象,必得就当下操作在C和A之间做出取舍。

封锁-饥饿、活锁和死锁

  • 死锁产生
    • 调解的随机性
    • 七个东西相互须求能源
  • 死锁防卫
    • 想想:破坏发生死锁条件
    • 常用方法:
      • 贰遍封锁法
        • 轻松活锁(永恒等待)
      • 逐一封锁法
        • 不可行
      • 依靠时标的章程
        • 等待-死亡
        • 受伤-等待
  • 凭仗时标的不二秘技
  • 死锁的检验/会诊与回复
    • 检测
      • 超时法
      • 东西等待图法
        • 有回路-死锁
    • 恢复
      • rollback

可串行化调节

  • 进程等价的辨识方法
    • 每一对冲突操作不改变
  • 管教出现事务试行可串行化的方法:2PL,时间戳
  • 两品级封锁契约(2PL)
    • 应用数据先申请
    • 刑满释放第一个约束后事务不再申请和获取其余封锁
      • 加锁阶段
      • 处理
      • 释放阶段
    • 并发推行全体专门的学问遵从两段左券是正确
      • 能够制止错失修改、不可重复读、幸免读脏数据
      • 不能够幸免死锁
  • 依赖时标
    • TS(TimeStamp)
    • 时标大的先
      • 写后读写申请均十二分 -- 回滚
      • 读后写不行 == 回滚
      • 读后读能够 == 修改ts时间戳

数据恢复生机

  • 健康操作时的作业回滚
  • 系统崩溃后的上升
    • 重做
    • 反做
      • 设置检查点。崩溃后回复直接从检查点初叶做
  • 缓冲区管理
    • 移动专门的学业修改的块先不写磁盘
    • 同意活动职业修改的块写磁盘
  • 介质故障的复原
    • 数码转储

关全面据理论

题指标建议

  • 问题
    • 插入格外
    • 删除万分
    • 数据冗余
    • 更新复杂
  • 消灭净尽措施:情势分解
  • 多少个好的涉嫌方式应该享有以下多个原则
    • 尽大概少的数据冗余
    • 从未有过加塞儿非凡
    • 尚无删除相当
    • 未曾更新极度

数码依赖

  • 函数正视:最根本

    • 看似于变量之间的单值函数关系。设单值函数Y=F(X),自变量X的值能够操纵一个独一的函数值Y。
  • 多值信任

    • 设LX570<U>是性质集U上的涉嫌形式,X,Y是U的子集,若对于传祺<U>的即兴三个大概的涉嫌r, r中不容许存在四个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数分明Y”或“Y函数正视于X”, 记作X→Y
    • 平时函数重视: 若X→Y, 但Y不含有于X, 则称X→Y是非经常的函数信任
    • 平凡函数正视: 若X→Y, 但Y满含于X, 则称X→Y是平凡的函数信任
    • 统统函数依赖
    • 一部分函数正视
    • 函数字传送递依赖
  • 连接依赖

规范化

  • 一范式(1NF):假诺三个关联合中学的装有属性值均是原子的,则称该关系满意1NF。关系模型中的关系必得满足1NF

  • 二范式(2NF): 若R∈1NF, 且每八个非主属性完全函数重视于码, 则称R∈2NF (即消除非主属性对码的一对正视)

  • 三范式(3NF): 关系形式RAV4<U, F>中若不设有这么的码X, 属性组Y以至非主属性组Z (Z Y), 使得XY 、 YZ和Y  X 创制,则称Haval<U, F>3NF。
    (即铲除非主属性对码的传递注重

    • 假定涉嫌格局福睿斯<U, F>∈2NF,且每三个非主属性不传递正视于任一候选关键字,则称福特Explorer<U, F>→NF
  • BCNF(Boyce Codd Normal Form): 关系方式奥德赛<U, F> 1NF, 若XY且Y X时, X必含有码, 则奥迪Q3 BCNF

  • 数据信赖的公理系统

  • 波及方式的表达

期末考试:

  • [ ] 1. 填空(10')
  • [ ] 2. 选择(10')
  • [ ] 3. E安德拉->关系模型(8')
  • [ ] 4. SQL 关系代数(12')
  • [ ] 5. 查询优化(6'-8')
  • [ ] 6. 并发(8')
  • [ ] 7. 故障苏醒(8')
  • [ ] 8. 关系理论(6')

我的话

谈起底说两句。。匆匆整理的东西就那几个,SQL实在是多。所以懒得打了,我们应该团结也能看好。哪个人知道考试竟然出了一分的试题考使用Students表创造视图IS_Students(消息大学学生消息的视图)的时候,增加什么语句使当更新IS_Students的时候,自动增加系属性为'IS'。。。刚刚在英特网查了半天也没查到。希望有大牌见到的话知道能够告知作者~

终极一章关全面据实在看得本人恶心。。何况符号也糟糕打。。非常多向来从ppt上粘的公式展现不断,大家将就着看吗。。

本文由星彩网app下载发布于星彩彩票app下载,转载请注明出处:数据库期末考试复习,自用数据库复习

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。