• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

【期末不挂科】第一章 数据库基础知识

互联网 diligentman 2小时前 5次浏览

博主介绍:

我是了 凡 微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~


文章目录

  • 1.1 数据库系统概述
  • 1.2 数据模型
    • 1.2.1 两类数据模型
    • 1.2.2 概念模型
    • 1.2.3 数据模型的组成要素
    • 1.2.4 常用的数据模型
    • 1.2.5 层次模型
    • 1.2.6 网状模型
    • 1.2.7 关系模型
  • 1.3 数据库系统的结构
    • 1.3.1 数据库系统模式的概念
    • 1.3.2 数据库系统的三级模式结构
    • 1.3.3 数据库的二级映像功能与数据独立性
  • 1.4 数据系统的组成
  • 练习题
  • 总结

1.1 数据库系统概述

1.1.1 数据库的4个基本概念

数据(Data)

数据:数据是数据库中存储的基本对象
数据定义:描述事物的符号记录称为数据
数据含义:数据的含义称为数据的语义,数据与其语义是不可分的。
数据结构:记录是计算机中表示和存储数据的一种格式或一种方法

数据库(DB)

数据是存放数据库的仓库,数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

数据库管理系统(DBMS)

数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
主要功能:
1、数据定义功能
2、数据组织、存储和管理
3、数据操纵功能
4、数据库的事务管理和运行管理
5、数据库的建立和维护功能
6、其他功能

数据库系统(DBS)

数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。


1.1.2 数据库管理技术的产生和发展

1、人工管理阶段

  • 数据保存
  • 应用程序管理数据
  • 数据不共享
  • 数据不具有独立性

2、文件系统阶段

用文件系统管理数据具有如下特点

  • 数据可以长期保存
  • 由文件系统管理数据

文件系统存在的缺点

  • 数据共享性差,冗余度大
  • 数据独立性差

3、数据库系统阶段

出现了统一管理数据的专门软件系统——数据库管理系统
数据库系统管理数据比文件系统具有明显的优点,从文件系统到数据库系统标志着数据管理技术的飞跃


1.1.3 数据库系统的特点

  1. 数据结构化

    • 数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
    • 所谓“整体”结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而是整体是结构化的,数据之间是具有联系的。
    • 要求在描述数据时不仅要描述数据本身,还要描述数据之间的联系。在数据库系统中,记录的结构和记录之间的联系由数据库管理系统维护,从而减轻了程序员的工作量,提高了工作效率。
  2. 数据的共享性高、冗余度低且易扩充
      数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不想容性与不一致性
      由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。

  3. 数据独立性高

    • 数据独立性是借助数据库管理数据的一个显著优点,它已称为数据库领域中一个常用术语和重要概念,包括数据的物理独立性和逻辑独立性。
    • 物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。也就是说,数据在数据库中怎样存储是由数据库管理系统管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时应用程序不用改变。
    • 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据的逻辑结构改变时用户程序也可以不变。
  4. 数据由数据库管理系统统一管理和控制
      数据库的共享将会带来数据的安全隐患,而数据库的共享是并发的共享,多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据,这就带来了不同用户间相互干扰的隐患。

    • 数据的安全性保护
      数据的安全性是指保护数据以防止不合法使用造成的数据泄密和破坏。
    • 数据的完整性检查
      数据的完整性指数据的正确性、有效性和相容性。
    • 并发控制
    • 数据库恢复

  数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。 数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段

1.2 数据模型

数据模型(data mode)也是一种模型,它是对现实世界数据特征的抽象。也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型是数据库系统的核心和基础。

1.2.1 两类数据模型

两类数据模型分别是:

  • 第一类是概念模型
    概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。
  • 第二类是逻辑模型和物理模型
      逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等等。它是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。
      物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。物理模型的具体实现是数据库管理系统的任务,数据库设计人员要了解和选择物理模型,最终用户则不必考虑物理级的细节。

  为了把现实世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型,常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。

【期末不挂科】第一章 数据库基础知识

1.2.2 概念模型

概念模型是现实世界到机器世界的一个中间层

  1. 信息世界中的基本概念

    • 实体(entity)
      客观存在并可相互区别的事物称为实体。
    • 属性(attribute)
      实体所具有的某一特性称为属性。
    • 码(key)
      唯一标识实体的属性集称为码。例如学号是学生实体的码。
    • 实体型(entity type)
      用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,入学时间)就是一个实体型。
    • 实体集(entity set)
      同一类型实体的集合称为实体集。例如,全体学生就是一个实体集。
    • 联系(relationship)
      实体之间的联系通常是指不同实体集之间的联系。

    实体之间联系一对一,一对多和多对多等多种类型

  2. 概念模型的一种表示方法:实体-联系方法
      概念模型的表达方式很多,最常用的就是1976年 P.P.S.Chen提出的实体-联系方法。该方法就是E-R图(E-R diagram)来描述现实世界的概念模型,E-R方法也称为E-R模型。目前用于项目开始时的需求分析为了更好理解用户的需求对现实世界的抽象,构建数据库结构而使用。

1.2.3 数据模型的组成要素

数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。

  • 数据结构
    数据结构描述数据库的组成对象以及对象之间的联系
    数据结构描述的内容由两类:
    • 一类是与对象的类型、内容、性质有关的,如网状模型中的数据项、记录、关系模型中的域、属性、关系等;
    • 另一类是与数据之间联系有关的对象,如网状模型中的系型(set type)
  • 数据操作
    数据操作是指对数据库各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。 数据库主要有查询和更新(包括插入、删除、修改)两大类操作。
  • 数据的完整性约束条件
    数据的完整性约束条件是一组完整性规则

1.2.4 常用的数据模型

数据库领域中主要的逻辑数据模型有:

  • 层次模型(hierarchical model)
  • 网状模型(network model)
  • 关系模型(relational model)
  • 面向对象数据模型(object oriented data model)
  • 对象关系数据模型(object relational data model)
  • 半结构化数据模型(semistructure data model)

基本层次联系是指两个记录以及它们之间的一对多(包括一对一)的联系

1.2.5 层次模型

层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。

【期末不挂科】第一章 数据库基础知识

  1. 层次模型的数据结构
    在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:

    • 有且只有一个结点没有双亲结点,这个结点称为根结点;
    • 根以外的其他结点有且只有一个双亲结点。
      层次模型像一颗倒立的树,结点的双亲是唯一的。

    层次模型的一个基本的特点是,任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。

  2. 层次模型的数据操作与完整性约束

    层次模型的数据操纵主要有查询、插入、删除和更新。进行插入、删除、更新操作时要满足层次模型的完整性约束条件。

  3. 层次模型的优缺点

    层次模型的优点主要有:

    • 层次模型的数据结构比较简单清晰。
    • 层次数据库的查询效率高。因为层次模型

    层次模型的缺点主要有:

    • 现实世界中很多联系是非层次的,结点之间具有多对多关系,不适合用层次模型表示。
    • 如果一个结点具有很多个双亲结点等,用层次模型表示这类联系就会很笨拙。
    • 查询子结点必须通过双亲结点。
    • 由于结构严密,层次命令趋于程序化。

1.2.6 网状模型

网状数据库系统采用网状模型作为数据的组织方式。网状数据模型的典型代表是DBTG系统,亦称CODASYL系统。数据库任务组(Data Base Task Group,DBTG

网状模型示例

  1. 网状模型的数据结构
    在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:

    • 允许一个以上的结点无双亲。
    • 一个结点可以有多于一个的双亲。

    网状模型是一种比层次模型更具普遍性的结构。层次模型实际上是网状模型的一个特例。
    层次模型中子女结点于双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一。

  2. 网状模型的数据操纵与完整性约束

    网状模型一般来说没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统对数据操纵都加了一些限制,提供了一定的完整性约束。

    • 支持记录码的概念,码即唯一标识记录的数据项的集合。
    • 保证一个联系中双亲记录和子女记录之间是一对多的联系。
    • 可以支持双亲记录和子女记录之间的某些约束条件
  3. 网状模型的优缺点
    优点:

    • 能够更为直接的描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系
    • 具有良好的性能,存取效率较高

    缺点:

    • 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。
    • 网状模型的DDL、DML复杂,并且要嵌入某一个高级语言中,用户不容易掌握,不容易使用。
    • 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写引用程序的负担。

1.2.7 关系模型

关系模型是最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。

  1. 关系模型的数据结构
    【期末不挂科】第一章 数据库基础知识

    • 关系(relation):一个关系对应一张表
    • 元组(tuple):表中的一行即为一个元组。
    • 属性(attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
    • (key):也称为码键。表中的某个属性组,它可以唯一确定一个元组,如上图中的学号可以唯一确定一个学生,也就成为本关系的码。
    • (domain):域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。(如人年龄一般在1~120之间,性别的域是(男,女),系名的域是一个学校所有系名的集合)
    • 分量:元组中的一个属性值。
    • 关系模型:对关系的描述,一般表示为
        关系名(属性1,属性2,…,属性n)
      例如,上面的关系可描述为
        学生(学号,姓名,年龄,性别,系名,年级)

    关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个分量必须是一个不可分的数据项,也就是说,不允许表中还有表

  2. 关系模型的数据操纵与完整性约束
    对关系模型的数据操纵主要都有CRUD(增删改查)。但是这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性

    关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合,而不想格式化模型中那样是单记录的操作方式。另一方面,关系模型把存取路径向用户隐藏起来,用户主要指出“干什么”或“找什么”,不必详细说明“怎么干”或“怎么找”,从而大大地提高了数据的独立性,提高了用户生产率。

  3. 关系模型的优缺点
    优点

    • 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
    • 关系模型是概念单一。无论实体还是实体之间的联系都用关系来表示。对数据的检索和更新结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。
    • 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

    缺点

    • 由于存取路径对用户是隐蔽的,查询效率往往不如格式化数据模型。为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。不过用户不必考虑这些系统内部的优化技术细节。

1.3 数据库系统的结构

1.3.1 数据库系统模式的概念

在数据模型中有“型“(type)和 “值”(value)的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。模式是相对稳定的,而实例是相对变动的。

模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是不断是不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

1.3.2 数据库系统的三级模式结构

【期末不挂科】第一章 数据库基础知识

  1. 模式(schema)
    模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图

  2. 外模式(external schema)
    外模式也称子模式(subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

  3. 内模式(internal schema)
    内模式也称存储模式(storage schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式

1.3.3 数据库的二级映像功能与数据独立性

  1. 外模式/模式映像
    当模式改变时(例如增加新的的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

  2. 模式/内模式映像
    当数据库的存储结构改变时(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据物理独立性。

    数据与程序之家的独立性使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取数据库管理系统管理,从而简化了应用程序的编制,大大减少了应用程序的修改。

1.4 数据系统的组成

【期末不挂科】第一章 数据库基础知识

  1. 硬件平台及数据库
  2. 软件
  3. 人员
    • 决定数据库中的信息内容和结构
    • 决定书库的存储结构和存取策略
    • 定义数据的安全性要求和完整性约束条件
    • 监控数据库的使用和运行
    • 数据库的改进和重组、重构

练习题

结合刚刚看过的解决以下习题:
1、试述数据、数据库、数据库管理系统、数据库系统的概念。
2、使用数据库系统有什么好处?
3、试述文件系统与数据库系统的区别和联系。
4、举出适合用文件系统而不是数据库系统的应用例子,以及适合用数据库系统的应用例子。
5、试述数据库系统的特点。
6、数据库管理系统的主要功能有那些?
7、什么是概念模型?试述概念模型的作用。
8、定义并解释概念模型中以下术语:
实体,实体型,实体集,实体之间的联系。
9、试述数据模型的概念、数据模型的作用和数据模型的三个要素。
10、试述层次模型的概念,举出三个层次模型的实例。
11、试述网状模型的概念,举出三个网状模型的实例。
12、试述网状、层次数据库的优缺点。
13、试述关系模型的概念,定义并解释以下术语:
关系,属性,域,元组,码,分量,关系模型
14、试述关系模型的特点。
15、试述数据库系统的三级模式结构,并说明这种结构的优点是什么。
16、定义并解释以下术语:
模式,外模式,内模式,数据定义语言,数据操纵语言
17、什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?
18、试述数据库系统的组成。
19、试述数据库管理员、系统分析员、数据库设计人员、应用程序员的职责。


总结

本章重点就是概念模型、组成数据模型的三个要素和三种主要的数据库模型——层次模型、网状模型和关系模型,后续详细了解关系模型


这次就先讲到这里,如果想要了解更多的golang语言内容一键三连后序每周持续更新!



程序员灯塔
转载请注明原文链接:【期末不挂科】第一章 数据库基础知识
喜欢 (0)