三、计算机理论-关系数据库-数据模型与数据视图;关系代数、关系演算及关系模型

数据模型

具体事物-抽象化-->概念模型-数据化-->数据模型

概念模型也称信息模型,在数据库设计阶段,由设计者按照用户的观点对数据和信息建模,实现对现实世界的概念抽象;

数据模型主要包括网状模型、层次模型、关系模型、面向对象数据模型,由设计者按照计算机系统的观点对数据建模,实现概念模型到适应具体数据库管理系统的数据模型的转换;数据模型通常由数据结构、数据操作和完整性约束三个要素组成

E-R模型(实体-联系模型)

是用E-R图来描述现实世界的概念数据模型(概念模型)

实体用矩形、属性用椭圆、联系用菱形

数据视图

视图是一个虚表

建立视图、删除视图、查询视图、更新视图

CREATE、DROP、SELECT、UPDATE

视图是虚表,本身不存放数据,对视图的更新都是通过对基本表的更新来进行的

优点:简单、安全、一定程度的逻辑独立性、视图可以使不同的用户以不同的方式看待同一数据

缺点:性能差、更新限制严重

关系数据结构

:是一组具有相同数据类型的值的集合

笛卡尔积:也称为直积,可表示为一张二维表,表中的每一行对应一个元组,表中的每一列的值来自一个域

关系

候选码:若关系中的某个属性的值能唯一标识一个元组,且又不含有多余的属性,则该属性成为该关系的候选码,简称码

主码:若关系中有多个候选码,则选取其中一个为主码

主属性:候选码的属性

非主属性:不包含在候选码中的属性

注意:不能出现两个完全相同的元组;每一个分量都是不可分的数据项

关系操作

关系操作包括

查询、插入、删除、修改

查询细分

选择、投影、并、差、笛卡尔积 (连接、除、交可通过前五种定义)

关系完整性约束

实体完整性

若属性A是关系R的主属性,则A不能取空值

参照完整性

也称引用完整性,若F是基本关系R的属性,但不是R的码,且F与基本关系S的主码Ks相对应,则称F是R的外码,并称R是参照关系,S是被参照关系

若属性F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中的每个元组在F上的值必须取空值或者等于S中某个元组的主码值

用户自定义完整性

用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用程序所涉及的数据必须满足的语义要求

关系代数

关系代数是一种抽象的查询语言,作为研究关系数据语言的数据工具,用对关系的运算来表达查询。关系代数的运算对象是关系,产生的结果也是关系

传统的集合运算

并、差、交、广义笛卡尔积

专门的关系运算

选择

从行的角度进行的运算

投影

从列的角度进行的运算

连接

分为等值连接和自然连接,自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性列去掉

从行和列的角度进行的运算

关系演算

元组关系演算语言ALPHA

域关系演算语言QBE

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库原理概论理论知识点总结 数据库概论 ⼀.绪论 1.1 数据库系统概述 数据是描述事物的符号记录,是数据库中存储的基本对象。 数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分割的。 数据库是长期存储在计算机内、有组织的、可共享的⼤量数据的集合。数据库具有永久存储,有组织和可共享个基本特点。 数据库管理系统:数据库管理系统是位于⽤户与操作系统之间的⼀层数据管理软件。 DBMS主要功能:数据定义,数据组织、存储和管理,数据操纵。 数据库系统DBS(Data Base System,简称DBS)通常由软件、数据库数据管理员组成。其软件主要包括操作系统、各种宿主语⾔、实⽤程序以及数据库管 理系统。 数据库管理技术经历:⼈⼯管理,⽂件系统,数据库系统个⽅⾯。 数据库类型是根据( 数据模型 )划分的。 数据库系统的特点:数据结构化,数据的共享性⾼、冗余度低易于扩充,数据独⽴性⾼,数据数据库管理系统统⼀管理和控制。 数据库系统的核⼼是数据库管理系统,数据库系统的核⼼和基础才应该是数据模型。 1.2 数据模型 数据模型是对现实世界数据特征的抽象,是数据库系统的核⼼与基础。分为两⼤类,属于不同层次,⼀类概念模型(信息模型),⼆类逻辑模型(有层次、⽹ 状等)和物理模型(数据最底层的抽象)。 层次模型以树结构表⽰数据间的关系,⽹状模型以图结构来表⽰数据间的关系,它们都是通过指针链接实现的。 现实世界 概念世界:DBA;概念世界 逻辑模型:DBA;逻辑世界 物理模型:DBMS; E-R图:⽅形(实体),菱形(关系)。 数据模型数据结构,数据操作,数据的完整性约束个部分组成。 1.3 数据库系统的结构 在数据模型中有型和值的概念,型是对某⼀类数据的结构和属性的说明,值是型的⼀个具体赋值。⼀个具体值也是⼀个实例。模式是相对稳定的,实例是相对 变动的。 级模式:模式,内模式,外模式。模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有⽤户的公共数据试图。外模式也称⼦模式,⽤ 户可以看到使⽤的局部数据的逻辑结和特征的描述,是数据库⽤户的数据视图。外模式是数据物理结构和存储⽅式的描述,是数据数据库内部的组织⽅式,且 ⼀个数据库只有⼀个内模式。 数据的独⽴性是指逻辑独⽴性和物理独⽴性。 外模式/模式映像提供了数据的逻辑独⽴性,数据的逻辑独⽴性是指⽤户的应⽤程序与数据库的逻辑结构是相互独⽴的,也就是说,数据的逻辑结构改变了,⽤ 户程序也可以不变。 模式/内模式影响提供了数据的物理独⽴性,数据的物理独⽴性是指⽤户的应⽤程序与存储在磁盘上的数据库数据是相互独⽴的,也就是说,数据在磁盘上的 数据库中怎样存储是有DBMS管理的,⽤户程序不需要了解,应⽤程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应⽤程序不⽤改变。 数据与程序之间的独⽴性使得数据的定义和描述可以从应⽤程序中分离出来。 外模式、模式在逻辑设计阶段得到,内模式在物理设计阶段得到。 ⼆.关系数据库 2.1 关系数据结构及形式化定义 关系模型包括单⼀的数据结构——关系,逻辑结构是⼀张扁平的⼆维表。 域是⼀组具有相同数据类型的集合。⼀个域允许的不同取值个数称为这个域的基数。 若关系中的某⼀属性组的值能够唯⼀标识⼀个元组,⽽且⼦集不能,则称该属性组为候选码。 关系可以有种类型:基本关系,查询表,视图表。 关系数据库中,关系模式是型,关系是值。关系模式是对关系模式的描述,关系是元组的集合。 关系数据库的型称为关系关系数据库的模式,是对关系数据库的描述。关系数据库模式包括若⼲域的定义,以及在这些域上定义的若⼲关系模式。关系数据库 的值是这些关系模式在某⼀时刻对应的关系的集合,通常就称为关系数据库。 在关系模式R分解成数据库模式 ρ 时,谈论⽆损联接的先决条件是数据库模式ρ中的关系模式之间有公共属性,存在泛关系。 2.2 关系操作 关系运算包括选择、投影、连接以及除法。 集合运算是⼆⽬运算,包括并、差、交、⼴义笛卡尔积四种运算。 关系操作,操作的对象和结果都是集合。 关系数据语⾔:关系代数语⾔,关系演算语⾔(元组关系演算语⾔,域关系演算语⾔),具有两者双重特点(SQL)。 SQL语⾔是⼀种⾼度**⾮过程化**的语⾔。 投影是选取相应列组成新元组,连接在多个关系的笛卡尔积中进⾏筛选出的新关系,交运算是多个关系之间交集所产⽣的新的关系。 从关系中挑选出指定的元 组组成新关系的运算称为选取! 2.3 关系的完整性 关系模型中有类完整性约束:实体完整性,参照完整性,⽤户⾃定义完整性。其中前两者为关系的两个不可变形。 空值是"不知道","不存在","⽆意义"的值。 2.4 关系代数 ⾃然连接是构成新关系的有效⽅法。⼀般情况下,当关系R和S进⾏连接操作
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决方案。 作为一本讲述T-SQL高级查询的专业图书,《Microsoft SQL Server 2008技术内幕:T-SQL查询》旨在结合实践中的各种常见问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。《Microsoft SQL Server 2008技术内幕:T-SQL查询》内容丰富、文字简洁明快,列举的实例具有一定的难度,而且实用性很强,可以把它们作为解决实际问题的标准模式。阅读《Microsoft SQL Server 2008技术内幕:T-SQL查询》,可以充分地理解T-SQL语言和良好的编程实践,学会如何编写更加有效而强大的查询语句。 序言 I 致谢III 前言 V 第1章 逻辑查询处理1 1.1 逻辑查询处理的各个阶段2 1.1.1 逻辑查询处理阶段简介2 1.2 客户/订单场景下的查询示例4 1.3 逻辑查询处理阶段详解5 1.3.1 步骤1:FROM阶段5 1.3.2 步骤2:WHERE阶段9 1.3.3 步骤3:GROUP BY阶段10 1.3.4 步骤4:HAVING阶段11 1.3.5 步骤5:SELECT阶段12 1.3.6 步骤6:排序用的ORDER BY阶段13 1.4 逻辑查询处理的深入内容16 1.4.1 表运算符16 1.4.2 OVER子句23 1.4.3 集合运算符25 1.5 总结26 第2章 集合论和谓词逻辑27 2.1 自然语言表述到数学表示的转换27 2.1.1 严格定义(well-Definedness)28 2.1.2 相等、恒等和同一性30 2.1.3 数学命名约定30 2.1.4 数字31 2.1.5 上下文32 2.1.6 函数、参数和变量33 2.1.7 指令和算法34 2.2 集合论34 2.2.1 集合的标记方法35 2.2.2 集合的严格定义36 2.2.3 论域36 2.2.4 真实性38 2.2.5 罗素悖论(Russell s Paradox)40 2.2.6 有序对、元组和笛卡尔积41 2.2.7 空集42 2.2.8 集合的特征函数43 2.2.9 集合的基数(Cardinality)43 2.2.10 顺序44 2.2.11 集合运算符47 2.2.12 集合论的推广50 2.3 谓词逻辑50 2.3.1 编程语言中的逻辑功能50 2.3.2 命题和谓词51 2.3.3 排中律53 2.3.4 与、或、非运算53 2.3.5 逻辑等价55 2.3.6 逻辑蕴含55 2.3.7 量化(Quantification)56 2.3.8 替代和推广58 2.4 关系59 2.4.1 自反性、对称性和传递性59 2.5 一个实际的应用60 2.6 总结63 第3章 关系模型65 3.1 关系模型简介65 3.1.1 关系、元组和类型65 3.1.2 关系模型:快速摘要70 3.2 关系代数关系计算70 3.2.1 基本运算符71 3.2.2 关系代数71 3.2.3 Codd提出的8个原始关系运算符72 3.2.4 关系演算79 T-SQL支持80 3.3 数据完整性81 3.3.1 声明式约束82 3.3.2 实施完整性的其他方法84 3.4 数据库正规化和其他设计主题86 3.4.1 解决函数依赖的范式87 3.4.2 更高级的范式92 3.4.3 反规范化(Denormalization)95 3.4.4 一般化和特殊化96 3.5 总结98 第4章 查询优化99 4.1 本章用到的样本数据99 4.2 优化方法论102 4.2.1 分析实例级别的等待104 4.2.2 关联等待和队列111 4.2.3 确定行动方案112 4.2.4 细化到数据库/文件级别113 4.2.5 细化到进程级别115 4.2.6 优化索引和查询132 4.3 查询优化的工具133 4.3.1 查询执行计划的缓存133 4.3.2 清空缓存134 4.3.3 动态管理对象134 4.3.4 STATISTICS IO135 4.3.5 测量查询的运行时间135 4.3.6 分析执行计划136 4.3.7 图形化的执行计划136 4.3.8 提示(Hint)144 4.3.9 跟踪/Profiler145 4.3.10 数据库引擎优化顾问145 4.3.11 数据收集和管理数据仓库146 4.3.12 使用SMO来复制统计信息146 4.4 索引优化146 4.4.1 表和索引的结构146 4.4.2 索引访问方法153 4.4.3 索引策略的分析191 4.4.4 碎片200 4.4.5 分区201 4.5 准备样本数据202 4.5.1 数据准备202 4.5.2 TABLESAMPLE206 4.6 基于集合的方法和迭代/过程方法的比较,以及一个优化练习208 4.7 总结214 第5章 算法和复杂性215 5.1 你有一个1夸特的硬币吗?215 5.1.1 如何从零钱罐中取回1夸特钱216 5.1.2 有时零钱罐中没有1夸特的硬币216 5.2 如何度量算法(How Algorithms Scale)217 5.2.1 二次缩放(Quadratic Scaling)的一个例子217 5.2.2 具有线性复杂度的算法218 5.2.3 指数和超指数复杂度218 5.2.4 次线性(sublinear)复杂度219 5.2.5 常量复杂度219 5.2.6 复杂度的技术定义220 5.2.7 复杂度的比较221 5.3 经典算法和算法策略222 5.3.1 排序算法223 5.3.2 字符串查找225 5.4 一个实际的应用程序226 5.4.1 识别测量数据的趋势226 5.4.2 LISLP算法的复杂度226 5.4.3 用T-SQL解决最长上升子序列的长度问题227 5.5 总结229 第6章 子查询、表表达式和排名函数231 6.1 子查询232 6.1.1 独立子查询232 6.1.2 相关子查询235 6.1.3 行为不当的子查询244 6.1.4 不常用的谓词245 6.2 表表达式(Table Expressions)246 6.2.1 派生表247 6.2.2 公用表表达式249 6.3 分析排名函数255 6.3.1 行号257 6.3.2 排名和密集排名(Dense Rank)271 6.3.3 组号(Tile Number)272 6.4 数字辅助表276 6.5 缺失范围和现有范围(也称为间断和孤岛)279 6.5.1 缺失范围(间断)281 6.5.2 现有范围(孤岛)288 6.6 总结296 第7章 联接和集合运算297 7.1 联接297 7.1.1 旧语法和新语法297 7.1.2 基本联接类型298 7.1.3 其他的联接分类306 7.1.4 上一年度的滑动合计317 7.1.5 联接算法320 7.1.6 拆分元素326 7.2 集合运算332 7.2.1 UNION332 7.2.2 EXCEPT333 7.2.3 INTERSECT334 7.2.4 集合运算的优先级335 7.2.5 在集合运算中使用INTO336 7.2.6 避开不支持的逻辑阶段336 7.3 总结338 第8章 数据聚合和透视339 8.1 OVER 子句339 8.2 决胜属性(Tiebreaker)341 8.3 连续聚合343 8.3.1 累积聚合(Cumulative Aggregation)344 8.3.2 滑动聚合(Sliding Aggregation)348 8.3.3 年初至今(YTD)349 8.4 透视转换(Pivoting)350 8.4.1 透视转换属性350 8.4.2 关系除法353 8.4.3 聚合数据355 8.5 逆透视转换357 8.6 自定义聚合360 8.6.1 使用透视转换的自定义聚合361 8.6.2 用户定义聚合函数(UDA,User Defined Aggregate)362 8.6.3 专用解决方案370 8.7 直方图(Histogram)380 8.8 分组因子383 8.9 分组集385 8.9.1 样例数据386 8.9.2 GROUPING SETS从属子句387 8.9.3 CUBE从属子句389 8.9.4 ROLLUP从属子句390 8.9.5 分组集代数392 8.9.6 GROUPING_ID函数395 8.9.7 保存分组集397 8.9.8 排序399 8.10 总结400 第9章 TOP和APPLY401 9.1 SELECT TOP401 9.1.1 TOP和确定性402 9.1.2 TOP和输入表达式403 9.1.3 TOP和修改404 9.1.4 增强的TOP406 9.2 APPLY407 9.3 使用TOP和APPLY解决常见问题408 9.3.1 每组中的TOP n408 9.3.2 匹配当前值和前一个值413 9.3.3 分页416 9.4 逻辑转换422 9.5 总结424 第10章 数据修改425 10.1 插入数据425 10.1.1 增强的VALUES子句425 10.1.2 SELECT INTO426 10.1.3 BULK行集提供程序428 10.1.4 按最小方式记录日志的操作430 10.1.5 INSERT EXEC447 10.1.6 序列机制450 10.2 删除数据454 10.2.1 TRUNCATE与DELETE454 10.2.2 删除包含重复数据的行455 10.2.3 基于联结的DELETE456 10.3 更新数据458 10.3.1 基于联结的UPDATE458 10.3.3 更新大值数据类型461 10.3.3 用SELECT和UPDATE语句进行赋值462 10.4 合并数据465 10.4.1 MERGE语句基础467 10.4.2 额外增加一个谓词470 10.4.3 多个WHEN子句471 10.4.4 WHEN NOT MATCHED BY SOURCE子句472 10.4.5 MERGE Values473 10.4.6 MERGE与触发器474 10.5 OUTPUT子句475 10.6 总结482 第11章 查询分区表483 11.1 在SQL Server中进行分区483 11.1.1 分区视图483 11.1.2 分区表484 11.2 总结496 第12章 图、树、层次结构和递归查询497 12.1 术语497 12.1.1 图497 12.1.2 树498 12.1.3 层次结构498 12.2 应用场景498 12.2.1 员工组织图499 12.2.2 材料清单(BOM)500 12.2.3 道路系统503 12.3 迭代/递归506 12.3.1 下属506 12.3.2 祖先514 12.3.3 带有路径枚举的子图/子树517 12.3.4 排序519 12.3.5 环521 12.4 具体化路径524 12.4.1 维护数据524 12.4.2 查询529 12.5 使用HIERARCHYID数据类型的具体化路径533 12.5.1 维护数据534 12.5.2 查询539 12.5.3 使用HIERARCHYID的其他方面542 12.6 嵌套集合550 12.6.1 分配左值和右值551 12.6.2 查询555 12.7 传递闭包(Transitive Closure)557 12.7.1 有向无环图557 12.7.2 无向有环图561 12.8 总结568

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值