数据库原理自学笔记

本文介绍了数据库原理,涵盖了数据的概念、数据库管理系统功能、发展过程、特点(如数据结构化、共享性、数据独立性)、数据模型(如概念模型、逻辑模型、物理模型和常用模型),以及数据库系统的三级模式结构和数据独立性的实现。
摘要由CSDN通过智能技术生成

数据库原理

本笔记参考《数据库系统概论(第5版)》 (王珊 萨师煊)

第一章 绪论


1.1 基本概念:

  1. 数据:描述事物的符号记录叫做数据,数据的含义称为数据的语义,数据与其语义是不可分割的

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

  3. 数据库管理系统:高效的获取和维护数据,是计算机的基础软件,也是一个大型复杂的软件系统。

数据管理系统的功能包括以下几个方面:

  1. 数据定义功能:数据库管理系统提供数据定义语言(DDL),用户通过它可以方便的对数据库中的数据对象的组成与结构进行定义
  2. 数据组织、存储和管理
  3. 数据操纵功能:数据操纵语言(DML),对数据进行插入、删除、查询和修改等
  4. 数据库的事务管理和运行管理
  5. 数据库的建立和维护功能
  6. 其他功能
  1. 数据库系统:数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。

请添加图片描述


1.2 数据管理系统的产生和发展

人工管理阶段 ⇒ \Rightarrow 文件系统阶段 ⇒ \Rightarrow 数据库系统阶段

三个阶段的比较:

请添加图片描述


1.3 数据库系统的特点

  1. 数据结构化 :所谓“整体”结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体也是结构化的,数据之间是有联系的。

请添加图片描述

  1. 数据的共享性高、冗余度低且易扩充 :数据共享可以大大减少数据冗余,节约存储空间,还可以避免数据之间的不相容性与不一致性。数据面向系统,是有结构的数据,不仅尅呗多个应用共享使用,还很容易增加新的应用,这使得数据库系统弹性大、易扩充。

  2. 数据独立性高 :独立性包括物理独立性和逻辑独立性

     物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的
    
     逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说数据的逻辑结构改变时用户程序也可以改变
    
  3. 数据由数据库管理系统统一管理和控制

     数据库管理系统还必须提供一下几方面的数据控制功能:
    
     (1)数据的安全性保护
     (2)数据的完整性检查
     (3)并发控制
     (4)数据库恢复
    

1.4 数据模型

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

数据模型分为两类:

  • 概念模型:也称信息模型,它是按照用户的观点来对数据和信息建模,主要用于数据库设计。
  • 逻辑模型和物理模型:逻辑模型是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。物理模型描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法。

逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等。

人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。

请添加图片描述


1.5 概念模型

信息世界中的基本概念:

  1. 实体(entity):客观存在并可相互区别的事物称为实体
  2. 属性(attribute):实体所具有的某一特性称为属性
  3. 码(key):唯一识别实体的属性集称为码
  4. 实体型(entity type):用实体名及属性名集合来抽象刻画同类实体,称为实体型
  5. 实体集(entity set):同一类型的实体的集合称为实体集
  6. 联系(relationship):实体之间的联系通常指不同实体集之间的联系,联系有一对一、一对多和多对多等多种类型

概念模型的一种表示方法:实体-联系方法(E-R模型)

1.6 数据模型的组成要素

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

  1. 数据结构

    数据结构描述数据库的组成对象以及对象之间的联系。也就是说,数据结构描述的内容有两类:一类是与对象类型、内容、性质有关的,另一类是与数据之间联系有关的对象。

  2. 数据操作

    数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则

    数据库主要有查询和更新两大类操作,数据模型必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言

  3. 数据的完整性约束条件

    数据的完整性约束条件是一组完整性规则,完整性规则是给定的数据模型中数据及其联系所具有的的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。

1.7 常用的数据模型

  • 层次模型
  • 网状模型
  • 关系模型
  • 面向对象数据模型
  • 对象关系数据模型
  • 半结构化数据模型

下面具体介绍三种模型:

  1. 层次模型

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

    (1)有且只有一个节点没有双亲结点,叫做根节点

    (2)根以外的节点有且只有一个双亲节点

    在层次模型中,每个节点表示一个记录类型,记录类型之间的联系用结点之间的连线表示,这种联系是父子之间的一对多的联系

    每个记录类型可能包含若干个字段,这里记录类型代表实体,字段岱庙实体的属性

    各个记录类型及其字段必须命名

    各个记录类型,同一记录类型中的各个字段不能同名

    每个记录类型可以定义一个排序字段,也称为码字段,如果定义该排序字段的值是唯一的,则它能唯一的标识一个记录值

    请添加图片描述

    可以看出层次模型像一颗倒立的树,节点的双亲是唯一的

    教员学生层次模型:
    请添加图片描述

    请添加图片描述

    层次模型的数据操纵主要有查询、插入、删除和更新。进行插入时,如果没有相应的双亲节点就不能插入它的子女结点值;进行删除时,删除双亲节点的值,则相应的子女结点的值也会被同时删除

    层次模型的优点:

    • 层次模型的数据结构比较简单清洗
    • 层次数据库查询效率高
    • 层次数据模型提供了良好的完整性支持

    层次模型的缺点:

    • 现实生活中很多不适用
    • 如果具有多个双亲结点就不能使用
    • 查询子女结点必须通过双亲
    • 由于结构严密,层次命令趋于程序化
  2. 网状模型

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

    (1) 允许一个以上的结点无双亲

    (2)一个结点可以有多于一个的双亲

    与层次模型相比,网状模型更普遍,子女与双亲的联系可以不唯一

    请添加图片描述

    例子:学生选课
    请添加图片描述

    网状模型的数据操作与完整性约束(DGBT):

    • 支持纪录妈的概念,码即唯一标识记录的数据项的集合。例如学号是唯一的
    • 保证一个联系中双亲记录和子女记录之间是一对多的关系
    • 可以支持双亲记录和子女记录之间的某些约束条件

    网状模型的优点:

    • 能更直接的描述真实世界
    • 具有良好的性能,存取效率高

    网状模型的缺点:

    • 结构比较复杂
    • 网状模型的DDL、MDL复杂,并且要嵌入到某一种高级语言中,掌握难度大
    • 用户必须了解系统结构的细节来通过适当的存取路径来访问数据
  3. 关系模型

    关系模型的严格定义在后面详写,这里只简单介绍

    请添加图片描述

    • 关系:一张如上的表格
    • 元组:表中的一行为一个元组
    • 属性:表中的一列为一个属性
    • 码:可以为已确定一个元组的属性组,例如通过学号可以确定一个学生
    • 域:域是一组具有相同数据类型的值的集合,属性的取值来自某个域。例如年龄的域是(15~45),性别的域是{男、女}
    • 分量:元组中的一个属性值
    • 关系模式:关系名(属性1、属性2、……、属性n),例如 学生(学号、姓名、……)

    关系和表格对应的术语对比:
    请添加图片描述

    关系模型要求关系必须是规范化的、关系的每一个分量必须是一个不可分的数据项。不允许表中还有表。下图的表就不属于关系模型

请添加图片描述
关系模型的优点:
- 关系模型建立在严格的数学概念基础上
- 关系模型概念单一
- 关系模型的存取路径对用户透明

1.8 数据库系统模式的概念

在数据模型中有“型”(type)和“值”(value)的概念。例如,“姓名”是型,“李华”是值

模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。
模式是相对未定的,而实例是相对变动的

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

数据库系统的三级模式是指数据库是由 外模式、模式和内模式 三级构成

请添加图片描述

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

数据库管理系统提供模式数据定义语言(模式DDL)来严格地定义模式

就像一个学校的官网

  1. 外模式

外模式也称子模式或用户模式,他是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

数据库管理系统提供模式数据定义语言(外模式DDL)来严格地定义模式

就像学生选课窗口、教务处窗口、教师窗口等

  1. 内模式

内模式也称存储模式,一个数据库只有一个内模式,他是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式

例如,排序是升序还是降序,用的B+树还是hash索引等

1.10 数据库的二级影像功能与数据独立性

为了能够在系统内部实现这三个抽象层次的联系和转化,数据库管理系统在这三级模式之间提供了两层映像: 外模式/模式映像 和 模式/内模式映像

  1. 外模式/模式映像

    当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必改变,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

  2. 模式/内模式映像

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

关系数据库 关系数据库概述 美国IBM公司的E.F.Codd 1970年提出关系数据模型 关系数据库应用数学方法来处理数据库中的数据 典型的实验系统: System R、University INGRES 典型的应用系统: ORACLE、SYBASE、INFORMIX、IBM DB2 关系数据模型 关系模型的数据结构非常简单,只包含单一的数据结构即关系。(我们称为二维表) 二维表格(包含 行和列。每一列的第一行为该列的属性) 基本术语: 表(Table)也称为关系,是一个二维的数据结构,它由表名、构成表的各个列(如学号 、姓名等)及若干个行数据(各个学生的具体信息)组成。每个表有一个唯一的表名, 表中每一行数据描述一条具体的记录值,如一个学生的基本信息。 关系(Relation)一个关系逻辑上对应一张二维表,可以为每个关系取一个名称进行标 识。 列(Column)表中的列,也称作字段(Field)或属性(Attribute)。表中每一列有一 个名称,称为列名、字段名或属性名,每一列表示实体的一个属性,具有相同的数据类 型 属性(Attribute)表中的一列即为一个属性,给每个属性起一个名称即属性名。与之同 义的术语是"列"。表中属性的个数称为关系的元或度。列的值称为属性值;属性值的取 值范围称为值域。 行(Row)表中的行也称为元祖(Tuple)或记录(Record) 元祖(Tuple)表中的一行即为一个元祖。 分量(Component)元祖中的一个属性值,称为分量 码或键(Key)如果在一个关系中,存在这样的属性(或属性组),使得在该关系的任何 一个关系状态中的两个元祖,在该属性(或属性组)上值的组合都不相同,即这些属性 (或属性组)的值都能用来唯一标识该关系的元祖,则称这些属性(或属性组)为该关 系的码或键 超码或超键(Super Key)如果在关系的一个码中移去某个属性,它仍然是这个关系的码,则称这样的码或键 为该关系的超码或超键。 候选码或候选键(Candidate Key)如果在关系的一个码或键中,不能从中移去任何一个属性,否则它就不是这个关系 的码或键,则称这样的码或键为该关系的候选码或候选键。 码:1、超码、候选码。候选码并不是码,还有超码 主码或主键(Primary Key)在一个关系的若干个候选码或候选键中指定一个用来唯一标识关系的元祖,则称这 个被指定的候选码或候选键为该关系的主码或主键。 全码或全键(All- Key)一个关系模式的所有属性集合是这个关系的主码或主键,则称这样的主码或主键为 全码或全键 主属性(Primary Attribute)和非主属性(Nonprimary Attribute)关系中包含在任何一个候选码中的属性称为主属性或码属性,不包含在任何 一个候选码中的属性称为非主属性或非码属性 外码或外键(Foreign Key)当关系中的某个属性(或属性组)不是这个关系的主码或候选码,而是另一关系的 主码时,称该属性(或属性组)为这个关系的外码或外键 参照关系(Referencing Relation)和被参照关系(Referenced Relation)参照关系也称为从关系,被参照关系也称为主关系,它们是指以外码相关联 的两个关系。以外码作为主码的关系称为参照关系;外码所在的关系称为参照关系。被 参照关系与参照关系是通过外码相联系的,这种联系通常是一对多的联系 域(Domain)表示属性的取值范围 数据类型(Data Type)表中每个列都有相应的数据类型,它用于限制(或容许)该列中存储的数据。每 个字段表示同一类信息,具有相同的数据类型。 关系模式(Relation Schema)同数据模型一样,数据库也有"型"(Type)和"值"(value)之分。在关系数据 库中,关系模型是型,关系是值,即关系模式是对关系的描述。关系模式是静态的、稳 定的,而关系是动态的、随时间不断变化的。 例子:名(值1,值2,值3) 关系数据库(Relation DataBase)是以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数 据库,其数据库操作建立在关系代数的基础上。 表关系(1:1,1:N,N:M) 基本的关系操作 查询 选择、投影、连接、除、并、交、差、笛卡尔积 数据更新 插入、删除、修改 查询的表达能力很强、是其中最主要的部分 关系操作的特点 集合操作方式,即操作的对象和结果都是集合。 关系数据语言的分类 关系操作的能力可以用两种方式来表示:代数方式和逻辑方式。 代数方式主要有关系代数,它是通过对关系的操作表达查询要求的方式。 逻辑方式主要有关系演算,它是用谓词来表达查询要求的方式。 具有关系代数和关系演算双重特点的语言(典型代表SQL) ---------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值