目录

数据库原理与应用期末复习

数据库原理与应用期末复习

1.1.1认识数据库

  1. 数据与信息

数据:是对客观事物、事件的记录与描述,也是对客观事物的逻辑归纳。

信息=数据+语义

  1. 数据处理与数据管理

      • 目的:从大量原始数据抽取和推导有价值信息,作为决策依据。
      • 借助计算机科学保存和管理复杂数据,便于充分利用信息资源。

数据处理:将数据转换成信息,对数据进行 采集、管理、加工、变换和传输 等活动。

    1. 数据管理:数据处理的 核心 。包括 数据的分类、组织、编码、存储、维护、检索 。

1.1.2数据库、数据库管理系统、数据库系统

    1. 数据库:database DB,储存在计算机内,有组织的,可共享的 相关数据的集合 。

    2. 数据库管理系统:database management system DBMS。建立、运用、管理、维护数据库,并对数据库进行统一 控制 的 系统软件 。 常见数据库管理系统:SQL、server、MySQL、access。

    3. 数据库系统:database system DBS。指在计算机系统中引入数据库后的系统。简称:

      数据库

其中数据库用户: 开发、管理、使用数据库 的人。

包括: 系统分析员(

确定应用系统的需求分析和规范说明,他和最终用户,数据库管理员确定系统的硬件配置,参与数据库的概要设计

)、数据库设计员(

确定数据库的数据和设计数据库的各级模式

)、应用程序员(

编写使用数据库的应用程序

)、数据库管理员(

负责数据库的总体信息控制

)、最终用户(

利用系统的接口或查询语言访问数据库

)等。

https://i-blog.csdnimg.cn/blog_migrate/d7a19312983bb0c8d262c34dcd864041.png https://i-blog.csdnimg.cn/blog_migrate/7d6abc6f48cb4a76e87c3be0ac2076b6.png

1.1.3数据库技术发展

1.人工阶段(20世纪50中)

    1. 数据不保存
    2. 无专门的数据管理软件
    3. 数据不共享
    4. 数据不具独立性
  1. 文件系统阶段(50–60)新特点:数据以 文件 形式长期储存。
    1. 数据共享性差、冗余度较大
    2. 数据不一致性
    3. 数据独立性差
    4. 数据间联系弱
  2. 数据库系统阶段

用户与应用程序不需建立数据文件,从数据库存取其中的数据子集,该子集通过DBMS从数据库中经过 映射 形成的逻辑文件

    1. 数据 结构化
    2. 数据 共享 性高,冗余度小
    3. 数据 独立性 高
      • 数据的物理独立性。数据库物理结构发生变化,通过修改 映射 使逻辑结构不受影响,进而用户逻辑结构及应用程序不必改变。
      • 数据的逻辑独立。。。。使用户应用程序不变。
    4. 有统一的数据管理与 控制 功能

1.2.1数据模型: 对现实世界数据特征的抽象描述。现实世界数据–>抽象数据库,需经过

现实世界、信息世界、计算机世界

3三个阶段。 数据库系统的核心和基础。

  1. 数据模型组成要素

    1. 数据结构。

      实体与实体

      间联系的表达和实现;

    2. 数据操作。允许对数据库中数据执行操作的集合,包含相应的操作规则;

    3. 数据完整约束。给出数据及联系应具有的制约和依赖规则;

  2. 数据模型的类型

    1. 概念模型(信息模型)。

      信息世界中的模型。

      第一级抽象

      ,E-R图。不涉及信息在计算机中的表示和处理方法

    2. 逻辑模型。

      计算机世界中的模型,

      第二级抽象

    3. 物理模型。

      对数据最底层的模型

      计算机原理。

      描述数据在磁盘/磁带上的存储方式和存取方法。

1.2.2概念模型

  1. 相关术语

    1. 实体entity。客观存在and相互区别的事物。
    2. 属性attribute。实体具有某一特性。
    3. 实体型 entity type。实体名+属性集合。学生(学号,姓名,年龄)
    4. 实体集 entity set。同型集体的集合。
    5. 码 key。键/关键字/关键码。在实体型中能唯一标识一个实体属性/属性集
    6. 域 domain。某属性取值范围。
    7. 联系 relationship。学号与姓名间。
  2. 概念模型中实体型之间的联系

    1. 1:1
    2. 1:N
    3. M:N
  3. 概念模型E-R方法

1.2.3逻辑模型

  1. 层次模型(用树形结构来表示)自上而下的关系
    1. 特点:一个模型只有一个节点/没有双亲结点/根节点
    2. 其他结点只有一个根节点
    3. 父子结点,1:N 关系
    4. 优点:数据结构简单清晰、提供良好完整性支持,结构间联系简单,查询效率高。
    5. 缺点:不能直接表示两个以上实体型间的复杂联系,/M:N关系
  2. 网状模型
    1. 允许一个以上结点多个根节点
    2. 允许一个节点没有根节点
    3. 允许两个结点间多种关系
      • 缺点:数据结构复杂。
  3. 关系模型
    1. 数据结构是一张

      规范化的二维表

      。每个二维表都可称为关系。

    2. 有更严格的数学理论依据,结构简单易懂,高独立性,安全保密性。

  4. 面向对象模型
    1. 抽象、封装、继承、多态性
    2. 更完整地描述现实世界的数据结构,具有丰富的表达能力。

1.3数据系统的结构

  1. 数据库系统的三级模式结构
    1. 外部体系

      结构:从用户使用数据库的角度划分:单用户结构、主从式结构、分布式结构、客户/服务器、浏览器/应用服务器等

    2. 内部体系

      结构:从逻辑上分为:外模式、模式、内模式 三级抽象模式结构,并提供外模式/模式、模式/内模式二级映像。

      • 对用户言:

        外模式==用户模式,模式==概念模式,内模式==物理模式

      • 模式:

        也称概念模式/概念视图

        。是数据库中全体数据的逻辑结构和特征的描述,处于三级模式的中间层,不涉及数据的物理存储和硬件环境,与开发工具及程序设计语言

        无关

        1. 一个数据库只有一个模式

          ,模式是数据的逻辑表示,它描述了数据库中存储的具体数据及其之间存在的联系。

      • 外模式:又称子模式/用户模式。是三成最外层,是数据用户能够看到并允许使用的那部分数据的逻辑结构和特征的描述,是数据库用户的数据视图。

        1. 外模式是模式的子集。

          一个数据可以有多个外模式

      • 内模式:又称

        存储模式/物理模式

注意:一个数据库系统中,实际存在的只有物理级数据库(内模式),是访问数据的基础。

  1. 数据库系统的二级映像
    1. 外模式/模式映像
      • 同一个模式可以有多个外模式
    2. 模式/内模式映像
      • 只有一个,唯一。
      • 定义了全局的逻辑结构和存储结构

1.4数据库领域的新技术 https://i-blog.csdnimg.cn/blog_migrate/61b78cf9d1a1c18ac3e813230e28006a.png

1.4.1云数据库与分布式数据库

  1. 云数据库
    1. Cloud database。被优化/部署到一个虚拟计算机环境中的数据库
    2. 优点:
      • 按照储存容量/带宽需求付费
      • 云的可移植性。(只要一个有效字符串就可使用)
      • 实现按需扩展。
      • 高可用性。
  2. 分布式数据库
    1. Distributed database 指数据分别存储在计算机网络中的各台计算机上的数据库。

1.4.2大数据与主动数据库

  1. 大数据
    1. Big data。也称海量数据/巨量数据。
    2. 4V:数据规模volume/ 快速的数据流转velocity/ 多样的数据类型variety/价值密度低value。
    3. 关键技术
      • 大数据采集
      • 大数据预处理
      • 大数据储存与管理
      • 大数据分析与挖掘
      • 大数据可视化展现
  2. 主动数据库
    1. 没有用户干预下,主动对系统内部/外部发生的事情做出反应的数据库
    2. 最大特点
      • 让数据库系统具有主动服务的功能,并以一种统一的机制来实现各种主动服务需求。

1.4.3数据仓库与数据挖掘

  1. 数据仓库

    1. 面向主题的、集成的、相对稳定的、反映历史变化的数据集合,通常用于辅助决策支持。
  2. 数据挖掘==( 知识发现 )

    1. 直接挖掘
      • 建立一个模型
    2. 间接挖掘
      • 寻找某种关系

第二章

2.1关系模型

2.1.1关系模型的基本概念

  1. 只包含单一的数据结构–关系

  2. 关系

    1. Relation,由 行和列组成的二维表 。
    2. 属性
      • 二维表中的列称为属性attribute。每个 属性对应表中的一个字段,属性名==字段名;属性值==字段值。
      • 二维表中列的个数称关系的 元数 。 N列N元关系 。
    3. 域domain
      • 一组有相同数据类型的集合。(值域)包含值的个数称为域的基数。(m表示)D={男,女},M=2
    4. 元组
      • Tuple。二维表中的行。即 记录值 。
    5. 分量。Component。一个元祖中每一个属性值。N元关系的每个元祖就有N个分量。
    6. 关系模式。 二维表的结构 。//二维表的框架(表头结构)
    7. 关系数据库。 关系模式是型。关系式它的值 。
    8. 笛卡尔积:关系是笛卡尔积的任意子集,有意义的子集,没有意义的不能称为关系。
  3. 关系的性质

    1. 关系可以看成二维表,但不是所有的二维表都有关系。
    2. 列是同质的,每一列的分量都必须来自同一个域且必须同一个类型的数据。
    3. 不同属性可以来自同一个域,但不同属性有不同的名字
    4. 列的顺序可以变化
    5. 元组的顺序可以变化,但不能出现相同元组
    6. 关系中的分量不可再分
  4. E-R图与关系模式的转换( 是概念模型–>逻辑模型 )

    1. 转换过程: 实体与实体之间 的转换。实体名==关系名,实体属性==关系属性。
    2. 三种转换:1:1联系。
    3. 1:N联系:( 在多的一段加入“一”那那端实体 )
    4. N:N联系:为两端的码加上联系自身的属性。

2.2关系模型的完整性约束

关系模型中三类完整性约束:

  1. 实体完整性
    1. 每个关系必须有主码。 Null:“不存在”“不知道”

必须的完整约束性条件,称为关系的两个不变性

  1. 参照完整性
  2. 用户定义完整性

2.2.1 关系的码

  1. 候选码。

某属性/集的值可以唯一确定一个元组。具有

唯一性、最小性

  1. 主码
    1. 如果关系中有多个候选码,可选任意一个作为元组的标识。
    2. 每个关系必须选择一个主码 ,选定后不能随意改变。
  2. 主属性与非主属性
    1. 主属性:包含在任一候选码中的属性。
    2. 全码:关系的候选码是所有属性的集合。
  3. 外码
    1. 外码:/外键/:R1中的 主码 还在R2中。 R2的外码 。

https://i-blog.csdnimg.cn/blog_migrate/b613baa8b04c7e84987a9974a71c89e9.png

  • 关系代数
    1. 关系操作采用集合操作方式。即操作的对象和结果都是集合。
    2. 关系代数是 关系模型 最重要的数据 操作 语言。对关系的代数运算表达查询,是抽象的查询语句。
    3. 关系代数中的运算符:
      1. 集合运算符   (交并差、 笛卡尔积 ) 二元运算符、参加运算的关系必须符合相容关系。(都是N元关系)
      2. 专门的关系运算符  ( 选择(单目运算)、投影(单目)、连接(二目运算)、除(二目) )
        • 等值连接
          1. 相等的属性可以是相同属性,也可是不同属性
        • 自然连接
          1. 属性必须相同,只能用于两个关系中有公共属性的情况。
          2. 把重复的列去掉 。
          3. 自然连接是去掉重复列的等值连接。
      3. 逻辑运算符 (与或非)
      4. 比较运算符

传统的集合运算:

①并union:(U)实现记录的添加/插入

②差 difference:(-)R-S,保留R,删S。

③交intersection (∩)R-S=R-(R-S)

④广义笛卡尔积,N元关系与M元关系得到M+N元关系( 列 )。M*N个元组( 行 )。

  • 认识SQL
    • SQL的发展
      • SQL是 最成功、影响最广泛 的 关系数据库语言 。
      • 逐渐成为了集数据查询语言,数据操纵、数据定义、数据控制的关系数据库标准语言。
    • SQL特点
      • 综合能力强
      • 非过程化 :实现过程与存取路径的选择都由系统自动完成。
      • 面向集合 :操作对象和结果都是元组的集合
      • 使用方式灵活 :即可做独立语言,又可嵌入式语言。前者独立联机交互,在窗口输入命令即可。后者能嵌入多种高级程序语言中调用。
      • 简洁易用。
功能动词命令
数据查询Select
数据操纵Insert、update、delete
数据定义Create、drop、alter
数据控制Grant、remove
    • 数据库文件 (组成)
      • 数据文件
        1. 数据库用来存放数据库数据+数据库对象的文件。一个数据库可有多个数据文件,一个数据文件只属于一个数据库。
        2. 主数据文件:存储启动信息+部分/全部数据 后缀:.mdf
        3. 其他数据文件( 次数据文件 ):储存主数据文件为储存的其他数据, .ndf
      • 日志文件
        1. 由一系列日志记录组成,记录 数据库更新情况+用户对数据库的修改操作 。
        2. 当文件损坏,可以 分析出错的原因 ;
        3. 当数据丢失,可用日志文件 恢复数据库 。
        4. 每个数据库至少有一个日志文件 .ldf
    • 数据的操纵
      • 插入数据
        1. Insert into《表名》values《值》
      • 修改数据
        1. Update 《表名》set 列名=‘’ where
      • 删除数据
        1. Delete from 表名 where +条件
      • 单表查询
        1. Select (all/distinct+列名 as+新名)from+表 where+条件 group by+列名  having+条件 order by +列名 ASC/DESC
        2. Distinct:表示去掉重复值
      • 无条件查询与条件查询
        1. 无条件:select from ==相当于只对关系做投影动作。投影会删除重复行,所以。无条件时,要加上distinct
        2. 条件查询
          1. 字符串中的通配符
            • % 表任意多个字符。
              • 表一个字符
            • 【】【A G】% A到G为首的字符串
            • 【^】相反
          2. 空值查询
            • Is not null
      • 聚合函数
        1. Count(列的值)
        2. Count(*)元组的值
        3. 注意:count(*)无法使用distinct。如果不设置列别名,结果是无列名。
      • 分组查询
        1. Group by
      • 连接查询
        1. 内连接查询
          1. Inner join +表 on+条件
        2. 外连接查询
          1. 左外连接
          2. 右外连接
          3. 全外连接 full join
        3. 交叉查询
          1. Cross join + 表名
        4. 自连接查询
      • 嵌套查询
        1. 普通子查询
          1. =any  ===  in
          2. 》any === 》min
        2. 相关连接查询
          1. 》《all ===not in/not existS
  • 视图

    • 视图
      • 视图是一个数据库对象,是从一个/多个表中导出来的虚拟表。是一条select语句对应的结果集,结果集的名字就是视图。

      • 视图本身不包含任何数据,数据库存储的就是它的定义

      • 优点与作用

        1. 只可以提取用户需要的数据,便于管理与使用。

        2. 提供对数据安全保护的机制

        3. 提供了一定的

          逻辑独立性

        4. 视图对应了三级模式中的

          外模式

          ,逻辑结构变化,需要修改视图的定义即可外模式不变。

      • 创建视图

        1. Create view +名+(列名)as select 语句
        2. As指定视图要执行的操作
        3. Select 御酒可以是任意查询语句,但不包含order by 和 distinct
      • 删除视图

        1. Drop view + 名
      • 修改视图

        1. Alter view + 名+列名 as select语句
        2. Insert into +名 +values
        3. Update + 名 set 。。。where。。。
    • 索引
      • 索引是一个单独的,储存在磁盘上的数据结构目录,包含所有记录的引用指针

        。就是一个目录

      • 特点

        1. 查询速度快
        2. 唯一性
        3. 建立在外码上的索引可加速表间连接,得益于实现数据的参照完整性
        4. 减少分组和排序的查询所使用的时间。
        5. 缺点
          1. 索引会占用物理储存空间,要额外物理储存文件
          2. 维护需要时间
      • 索引的类型(

        提升查询速度,降低更新速度

        1. 聚集索引
          1. 确定数据储存的顺序,表内数据按照聚集索引键值的顺序储存。

          2. 物理储存只有一个,所以一个数据表只能包含一个聚集索引

          3. 对主键约束自动创建聚集索引

        2. 非聚集索引
          1. 字典的部首目录
        3. 其他索引
          1. 唯一索引:聚集/非聚集索引
          2. 视图索引:视图上建立的索引
          3. 全文索引:快速查询某个字符出现的位置
        4. 设计索引注意
          1. 索引并非越多越好,占磁盘空间和大量维护开销
          2. 经常查询的列可建立索引,避免不必要的数据
          3. 数据量小的不用
          4. 不同值较少的列不用:男/女
      • 创建与删除索引

        1. Create unique index on
      • 删除索引

        1. Drop index +名 on +数据表/视图
      • 修改和查看

        1. Alter index+名 on
        2. 修改索引名称:EXEC sp_rename <表名/视图名.索引名>,<新索引名>

https://i-blog.csdnimg.cn/blog_migrate/cb96a709d7a788ac2db39ee648a8ff67.png

https://i-blog.csdnimg.cn/blog_migrate/94c47a1fe758f76a6e883e7b4a88457e.png

https://i-blog.csdnimg.cn/blog_migrate/716ad55c0c0d7d1d96d80802de6f0e54.png

https://i-blog.csdnimg.cn/blog_migrate/4a37b7496af6cfba696b85311781219b.png

https://i-blog.csdnimg.cn/blog_migrate/c722e85b9a2b9c8fd837a8c6725c8c06.png

https://i-blog.csdnimg.cn/blog_migrate/4f754ca56a8e23724057a673d1c51865.png

https://i-blog.csdnimg.cn/blog_migrate/b85458bcbb1a2bcea45b492bae84eb5c.png

https://i-blog.csdnimg.cn/blog_migrate/cd7099505d86374f256adec8fa0c83d8.png

https://i-blog.csdnimg.cn/blog_migrate/03835f9636265f500ca9db1e3204c9ed.png

https://i-blog.csdnimg.cn/blog_migrate/8cd6ecef2655df3f91998f38598817c5.png

https://i-blog.csdnimg.cn/blog_migrate/2df6d7c2c4946dd740d5e83a5bccfad9.png

https://i-blog.csdnimg.cn/blog_migrate/cffe67df1b29a6c38ee18c6a0291a055.png

https://i-blog.csdnimg.cn/blog_migrate/ab2222efcd9f3da05c2cd465755f7a1c.png

https://i-blog.csdnimg.cn/blog_migrate/515725324c46d212ee611f407c5c1663.png

https://i-blog.csdnimg.cn/blog_migrate/687207d31ca560ae6e2e7f7a8c5c6053.png

https://i-blog.csdnimg.cn/blog_migrate/4c3b44f9c71c902adcf1ea6b7d37f8fe.png

https://i-blog.csdnimg.cn/blog_migrate/1bf5e12bf90347951daab6cb81fcff1a.png

https://i-blog.csdnimg.cn/blog_migrate/82d744bb6d542589c2c95c1bed60bd6d.png

https://i-blog.csdnimg.cn/blog_migrate/50c0460bfb3a2eb14a51997ac336251c.png

第一章习题

  1. 数据共享的含义: 多种应用、多种语言、多个用户覆盖地使用数据集合
  2. 数据库的概念模型独立于: 具体的机器和DBMS
  3. 三级模式中: 外模式:是用户与数据库接口,是应用程序可见的数据描述
  4. 一个关系只有一个主码
  5. 应用数据库的目的是为了解决: 共享数据
  6. 数据特点: 数据结构化、最小的冗余度和较高的独立性
  7. 五种基本运算: 并、差、选择、投影、乘积
  8. 共同属性值的元祖连在一起: 连接
  9. 三级模式结构中,描述数据库中全体数据的全逻辑结构和特征: 模式
  10. 数据的物理独立性 是指: 用户的数据和数据在磁盘中的存储方式 相互独立
  11. 数据库的 数据项之间和记录之间 都存在联系
  12. 计算机中支持数据库各种操作的软件系统叫: 数据库管理系统
  13. 数据库管理系统DBMS的工作包括: 为定义的数据库提供操作平台、对已定义的数据库进行管理、定义数据库
  14. 数据管理的任务: 数据存储、数据编码
  15. 数据模型三要素: 完整性约束、数据结构、数据操作
  16. 属于现实世界中事物或个体的特征的不同抽象与表述: 属性、列、字段
  17. 关系操作的特点: 所有操作都是集合操作
  18. 关系数据库中实体完整性的实现是靠: 主键、主关系键、主码 保证
  19. 数据库的三级模式通过两级映像来建立联系,同时保证了 数据独立性 ,外模式/模式保证了: 数据的逻辑独立
  20. 关系数据库中参照完整性规则的实现靠 : 外键、外码、外关系键 来保证

第二章习题

  1. SQL sever 数据库文件组的用途: 方便SQL server管理组织文件、方便SQLserver管理组织数据表、不能管理组织日志文件
  2. Model 数据库: 自动创建表对象
  3. 除法:exists
  4. SQLserver数据库文件的逻辑名称作用是:方便SQLserver管理数据文件
  5. 去掉重复:distinct
  6. Alter table : 修改 字段长度
  7. Create database中,用来指定文件逻辑名称的是: name
  8. 数据表数据在数据库的所有数据文件是 随机存放 的
  9. Master :保存SQLserver 系统配置信息
  10. SQLserver中,数据库由文件组成,不包括: 备份文件 。
  11. Varchar类型的实际存储空间与 实际存放的字符 有关,与定义无关
  12. SQL server 数据库 次要数据文件的名称等 信息存储在: 主数据文件
  13. 索引项的顺序与表中记录的物理顺序一致的索引,称为: 聚集索引
  14. SQL server 的数据库物理上是由 数据文件 和 日志文件 组成的
  15. Create database 命令创建数据库时,filename选项定义是: 物理文件名

第三章习题

  1. 候选关键字的属性可以 一个或多个
  2. AB1对1: A <—->B
  3. 概念模型的优点: 独立于操作系统和DBMA
  4. 关系规范化中的删除操作异常是指: 不该删除的数据被删除
  5. ER图中的主要元素是: 实体型、联系、属性
  6. 最常用的数据模型是: 实体联系模型
  7. 关系规范化中插入操作异常是指: 应该插入的数据未被插入
  8. 局部ER图合并成全局图时会出现合并冲突: 结构冲突、命名冲突、属性冲突
  9. 关于数据库逻辑设计的任务, 创建数据库逻辑结构说明
  10. 3NF: 一定消除了插入和删除异常
  11. 关系模式R的属性全部属性是主属性,则R的最高范式必定是: 3NF
  12. 关系模式中的关系模式至少是 1NF
  13. 关系模式R中函数依赖X–>Y的语义是: 在R的每一关系中,若两个元组的X值相等,则Y也相等 。
  14. 如果两个实体之间的联系是M/N,进一步处理正确的是: 需要引入第三个交叉关系
  15. 数据流程图DFD是用于描述规范化数据库设计方法中的 需求分析 阶段的工具
  16. ER图合并冲突后,依靠各设计者之间 讨论协商 解决
  17. “为哪些表,在哪些字段上建立什么样的索引”数据库 物理结构 设计阶段
  18. 数据库实施阶段包括两项重要的工作,一项是 数据的载入 、一项是 应用程序的编码和调试 。