数据库系统(1)

数据库系统概论

数据库及其概念

数据

  • 定义:描述事物的符号记录(数字、文字、音频等表现形式)称为数据。对数据的解释称为语义。数据与其对应的语义不可分割。

数据库(DB)

  • 定义:数据库是长期存放在计算机内、有组织的、可共享的大量数据的集合。是一种按照特定数据模型组织、存储和管理数据的文件集合。这些文件一般存放在外部存储器中,具有较小的冗余度、较高的数据独立性、易扩展性。
  • 数据库与普通数据文件的区别:
    • 数据库包含数据文件和操作日志文件。
    • 数据库支持不同应用共享数据;普通数据文件难以支持。
    • 数据库可实现复杂的数据管理;普通数据文件难以实现。
    • 数据库的管理由数据库管理系统软件实现;普通数据文件由应用程序。

数据库系统(DBS)

  • 定义:基于数据库进行数据管理和信息服务的软件系统,包括用户、数据库应用程序、数据库管理系统和数据库组成。当数据库系统在应用领域实现数据存储、数据处理、数据检索、数据分析等功能时数据库系统又称为数据库应用系统

    • 用户:最终用户、数据库管理员、程序员、系统分析员
    • 数据库应用程序:在DBMS的支持下对数据库进行访问处理的应用程序。数据库应用程序需要使用DBMS提供的标准接口如JDBC、ODBC等驱动程序连接数据库。在程序设计语言编程中,我们需要使用数据库访问接口实现对数据库的操作。 JDBC是java通过网络访问db的url连接的方式;ODBC是本地建立连接后再使用的方式。JDBC的驱动程序由数据库厂商提供,ODBC驱动程序由微软提供。
  • 数据库系统的特点:

    • 数据结构化:数据库系统与文件系统的本质区别就是整体数据的结构化, 整体表示不再针对某一应用,而是针对一个企业组织。不仅考虑数据内部的结构化,而且考虑数据之间的联系。
    • 数据的共享性高、冗余度低且易扩展:由于数据面向企业,所以被用户共享使用,数据共享可减小冗余、节约存储。而其可以增加新应用,所以系统弹性大、易扩充。
    • 数据独立性高:物理独立性、逻辑独立性,由DBMS提供的二级映像实现。
      • 物理独立性:用户的应用程序与数据库中数据的物理存储相互独立。
      • 逻辑独立性:用户的应用程序域数据库的逻辑结构相互独立。
    • 数据由DBMS统一管理和控制:数据的并发共享带来数据安全问题。
      • 安全性保护
      • 完整性检查
      • 并发控制
      • 数据库恢复
  • 数据库系统类型:业务处理系统、信息管理系统、决策支持系统

  • 数据库系统的结构:从最终用户来看,单机、集中式、C/S结构、分布式;从数据库开发人员看,数据库是三级模式结构。

    • 模式:是数据库中全体数据的类型的描述。
    • 模式与实例:模式的具体值称为实例;一个模式可以有多个实例;模式是相对稳定的,而实例时相对变化的,反应的是数据库的某一刻状态。 如:学生(学号,姓名,年龄,性别,系名,年级)
    • 三级模式结构:
      • 模式:又称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式,定义了数据的逻辑结构、联系与完整性约束等。如:数据的逻辑结构,数据项的名字、类型、取值范围等
      • 外模式:又称为用户模式,是用户能够看见和使用的局部数据的逻辑结构和特征的描述。外模式是模式的子集,一个数据库可以有多个外模式,同一外模式可以对应多个用户,但一个用户只能使用一个外模式。外模式是保证数据库安全的措施,每个用户只能看到它的外模式中的数据。
      • 内模式:存储模式,一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。如:堆存储、有序存储、聚簇存储;索引方式是B+,还是hash;数据是否存在压缩、加密;记录能否跨页等。 在这里插入图片描述
    • 二级映射与数据独立性:
      • 外模式/模式映射:模式是数据的全局逻辑结构,外模式是数据的局部逻辑结构。映射定义存储在外模式的描述中。当模式变化时,通过管理员修改外模式/模式映射,可以使外模式保持不变。应用程序根据外模式编写,所以数据与程序之间保持了独立,简称数据的逻辑独立性。
      • 模式/内模式映射:数据的全局逻辑结构与物理存储结构之间的关系。该模式定义存储在模式的描述中。当数据库的存储结构变化时,由管理员修改模式/内模式映像,使模式不变,进而应用程序不变,保证了数据与应用程序之间俺的物理独立性,简称数据的物理独立性。

      简述模式的重要性:
      ①数据库的模式即全局逻辑结构是数据库的中心与关键,独立于数据库的其他层次。所以设计数据库模式结构时应该首先确定数据库的逻辑模式。
      ②内模式依赖于模式,独立于外模式。只有建立了内模式,才能将全局逻辑结构按照一定的物理存储策略进行组织。
      ③外模式依赖于模式,独立于内模式。外模式面向具体的应用程序,所以当应用需求变化时,对应的外模式要做出调整。

  • 分布式结构:

    • 分布式系统既在数据分布、又在物理分布。
    • 分布式系统逻辑上是整体,但在物理上属于不同服务器节点。
    • 每个服务器都支持本地客户机访问和远程客户访问,每个服务器都可以独立地存取与处理数据,并执行全局应用。
    • 优缺点:适合跨区域的大型机构、处理性能强;分布处理与维护开销大。

数据库管理系统(DBMS)

  • 定义:创建、管理、维护数据库,并对外提供访问的系统软件。与操纵系统都属于系统软件
  • 功能:数据定义(DDL),数据组织、存储与管理、数据操纵(DML)、事务管理与运行管理、建立与维护、其他(网络通信、数据格式转换等)
  • DBMS的层次结构:
    • 操作界面层:由管理工具和应用程序API组成,为用户和应用程序提供接口界面。
    • 语言翻译处理层:对应用程序中的数据库操作语句进行语法分析、视图转换、授权检查、完整性检查等处理
    • 数据存取层:处理对象是数据表中的记录;它将上层的集合关系转换为数据记录操作。
    • 数据存储层:基于系统调用对数据库文件进行数据块读/写操作并完成数据页、系统缓冲区、内外寸交换等系统操作管理。
      在这里插入图片描述
  • DBMS类型:通用/专用;单用户/多用户;集中式/分布式;桌面级/企业级;产品/开源;
  • DBMS产品:Microsoft—SQL Server;Access—Oracle Database;SAP Sybase—Sybase ASE;IBM—DB2;其他开源产品:MySQL、PostgreSQL、MongoDB、InterBase

数据模型

  • 定义:对现实世界数据特征的抽,是DBS的核心,描述事物对象的数据结构、数据操作 、数据约束。
    • 数据结构:描述对象的静态特征,包括数据组成、类型、性质等
    • 数据操作:描述对象的动态特征,包括数据增、删、改、查等
    • 数据约束:描述数据结构之间的语义联系、制约和依存关系等
  • 分类:概念模型、逻辑模型和物理模型
    • 概念模型:又称信息模型,是按照用户的观点对数据和信息建模,主要用于设计阶段。表示方法——E-R图
    • 逻辑模型:是按照计算机系统的观点对数据建模,主要用于实现阶段。包括层次、网状、关系、面向对象、对象关系数据、半结构化数据模型等。
      • 关系数据模型:“二维表”,相同属性的公共列实现表之间的联系

        优点:数据结构简单、操作灵活;支持关系与集合运算操作;支持广泛的SQL语言标准。
        缺点:数据类型较简单;难以支持当前流行的非结构化数据

    • 物理模型:是对数据最底层的抽象,描述数据在系统内的表示方式和存取方法,是DBMS的任务。
  • 常见的数据模型
    • 层次模型:

      • 定义:有且只有根节点没有双亲;根以外的其他节点有且只有一个双亲。
      • 数据操纵与数据约束:查询、插入、删除、更新。无双亲不能插入,删除双亲则删除全部子女。
      • 优缺点:数据结构简单清晰、自然直观,查询效率较高;但不符合现实世界的实际联系。
      • 典型代表:IBM的IMS系统
    • 网状模型:

      • 定义: 运行一个以上节点无双亲;一个节点可以有多个双亲。
      • 数据操作与数据约束:支持码的概念。保证一个联系中双亲记录与子女记录之间是一对多的联系。支持双亲记录与子女记录之间的约束。
      • 优缺点:更好的表示现实世界、良好的性能,存储效率较高;结构复杂不利于最终用户掌握;实现技术更为复杂;用户必须了解系统细节,增加程序员负担。
      • 典型代表:CODASYL 系统
    • 关系模型:

      • 定义:建立在严格的数学概念下 。从用户观点看,关系模型由一组关系组成。每个关系的数据结构是一张规范的二维表。
      • 关系操纵与关系约束:查询、插入、删除与更新。实体完整性、参照完整性、用户自定义完整性。操作对象和操作结果是关系(表),数据操作属于集合操作。
      • 优缺点:建立在严格的数学概念上;概念单一;关系模型的存储路径对用户透明。

本章测试

1、在数据管理技术发展阶段中,下面哪个阶段可以实现数据共享?   数据库管理阶段
2、在数据库管理系统的层次结构中,下面哪个层次负责对数据文件进行操作访问?    数据存取层
3、在数据库领域技术中,下面哪种技术可以实现数据集成?  数据仓库技术
4、下面哪个程序实现PostgreSQL服务器起停控制?    pg_ctl
5、下面哪类数据库是功能最强大的数据库?    Oracle Database
6、下面哪类数据库可以在手机中运行? SQLite
7、数据表之间的约束在数据库中是一种元数据?   √

简答题:
1、什么是元数据?它是如何产生的,存储在哪里?
元数据是指"描述数据属性的数据"。它是在数据流动中产生的用于对数据进行管理维护的,存放在数据库的系统表中。

2、结构化数据和非结构化数据有何区别?
结构化数据:指关系模型数据,有固定的数据结构规则,可以用二维表结构的组织形式,存储在关系数据库中。
非结构化数据:不符合任何预定义的数据模型,字段可变化,不方便用二维表展示,存储在非关系数据库中NoSQL。目前网络中非结构化数据居多,如文本文件、传感器数据、音/视频等。

3、NoSQL和NewSQL数据库有何区别?
SQL:关系型数据库,必须等长存储各记录行,数据严格遵循ACID原则。主要代表:SQL Server、Oracle、MySQL、PostgreSQL
NoSQL:针对大量互联网应用的非结构化数据处理产生的分布式非关系数据库,以放宽ACID为代价,采取最终一致性原则,提供基本保证服务。主要代表:MongoDB、Redis、CouchDB
NewSQL结合了SQL和NoSQL的优点,具有NoSQL对海量数据的分布式存储管理能力,还保持了传统SQL的ACID和SQL等特性。将ACID和可扩展性、高性能结合。主要代表:Clustrix、GenieDB

4、通用数据库和领域数据库有何区别?
通用数据库通常用于不同对象的属性,将不同对象使用相同的数据库进行管理,是一张表格。
领域数据库与特定应用领域相结合,加强了数据库系统对相关领域的支撑能力。如统计数据库、科学数据库、空间数据库等。

5、大数据分析和数据挖掘有何区别?
数据挖掘:是一种建立在数据仓库基础上对大量数据进行模式或规律挖掘从中发现有价值信息的技术。
它主要基于人工智能、机器学习、模式识别、统计学、数据库、可视化等技术对大量数据进行自动化分析做出归纳性的推理从中挖掘出潜在的模式帮助决策者进行策略分析防范或减少风险做出正确的决策。
数据挖掘一般包含数据预处理、规律寻找和结果可视化表示3个步骤。
数据预处理是从相关的数据源中选取所需的数据并整合成用于数据挖掘的数据集
规律寻找是用某种方法将数据集所含的规律找出来结果
可视化表示是尽可能以用户可理解的可视化方式将规律表示出来。
大数据分析:是一种解决传统数据分析处理技术难以在规定时间完成大规模复杂数据分析处理的技术。
即如何快速地从中分析出有价值的信息。
因为大数据具有数据体量大、数据类型多、数据处理速度要求快、价值密度低等特点,因此大数据分析需要结合云存储、云计算、分布式数据库、数据仓库、数据挖掘、机器学习等技术。

6、数据库应用系统有哪些结构模式?各有什么适合的应用场景?
单用户结构:简单的业务服务,服务对象为单个用户
集中式结构:多终端业务服务,使用同一台服务器提供数据集中、处理集中,但是会出现服务器瓶颈。
C/S结构:数据集中管理、应用分布处理,终端通过网络并发访问服务器。
分布式结构:大规模、跨地区,各个服务器节点数据库在逻辑上属于一个整体但物理分离。支持本地访问和远程访问。

6、对象-关系数据库DBMS具有哪些特点?
既具备关系数据库的功能,同时又支持面向对象的特征:抽象数据类型。支持关系数据库的透明存储路径,同时支持扩充数据类型、支持复杂对象、支持继承、提供强大的规则系统。

数据库关系模型

关系及其相关概念

基本概念

  • 实体:指客观存在并可以相互区分的事物,包含数据特征的对象在概念模型世界中的抽象名称。
  • 联系:实体内部之间的联系和实体之间的联系。实体之间的联系分为一对一、一对多、多对多等。
  • 属性:实体的某一特性。
  • 域:一组具有相同数据类型的值的集合。
  • 笛卡尔积:给定一组域D1、D2…Dn的操作,记为D1 x D2 x … xDn。
  • 键:在关系中,可以使用唯一的标识元组的属性集合,作为键。
    • 主键:最适合的一个候选键,每个表必有且只有一个主键。
    • 全键:在极端情况下,关系模式中的所有属性是这个关系模式的候选码。
    • 外键:在关联的两个关系中,它们具有一个或多个相同属性。若关联列在第一个关系中作为主键,则在第二个关系中作为外键。
    • 复合键:当单列不能唯一标识实体时,采用多列来唯一标识元组的键。
    • 候选键:当关系表中多个列都可以唯一标识实体时,则每个列都称为候选键。
    • 代理键:当复合键作为主键时,访问性能可能会降低。采用DBMS自动生成的数字序列作为关系表的主键,可以获得更高性能的数据访问操作。

关系模型

  • 定义:D1 x D2 x … xDn的有限子集叫做域上的关系R(D1,D2,…,Dn),关系是一张二维表。表行为元组,表列为属性。
  • 关系的类型:基本表、查询表和视图表
    • 基本表:实际存在的表,它是实际存储数据的逻辑表。
    • 查询表:查询结果对应的输出表。
    • 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
    • 基本表的6条性质:
      • 列无序,行无序。
      • 每列属于同一种数据类型,即域相同。不同列可以使用相同的域,但要使用不同属性名区分。如:班长的取值和学生的取值是相同的。
      • 任意两个元组的候选码必须不能重复;数据项必须是最小的不可再分的,这是最基本的规范条件

关系模式

  • 定义:关系模式是型,关系是值。关系模式是对关系的描述,指出关系的元组集合的结构,包括属性,属性的域以及属性与域之间的映像关系。记为R(U,D,DOM,F),其中R是关系名,U为属性集,D为属性的域,DOM为属性向域的映像集合,F为属性间数据数据的依赖关系集合。

关系数据库

  • 定义:在关系模型中,实体以及实体间的联系都是用关系表示的。在一个给定的应用中,所有的关系的集合构成一个关系数据库。
  • 关系数据库模式:关系数据库也有型和值之分。
    • 关系数据库的型称为关系数据库模式,是对关系数据库的描述。包括若干域的定义,以及在这些域上定义的若干关系模式。
    • 关系数据库的值是这些关系模式在某一时刻对应的关系的集合,称为关系数据库。

关系操作

基本的关系操作

  • 常用操作的划分:查询(query)和插入(insert)、删除(delete)、修改(update)。
  • 查询:关系的查询能力很强,是关系操作中最主要的部分,包括选择(select)、投影(project)、连接(join)、除(divide)、并(union)、差(except)、交(intersection)、笛卡尔积等。
  • 5种基本操作:选择、投影、并、差、笛卡尔积,其他所有操作都可由它们导出。
  • 特点:关系操作是集合操作,操作的对象和结果都是集合,又被称为一次一集合(set-at-a-time)的方式。(非关系数据模型的数据操作称为一次一记录(record-at-a-time)的方式)

关系数据语言的分类

  • 抽象的查询语言:关系代数、元组关系演算、域关系演算
  • 结构化查询语言(SQL):介于关系代数和关系演算之间,所以具有两者双重特点。
  • SQL特点:不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,集查询、数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)于一体的关系数据语言;是一种高度非过程化的语言,用于不必请求数据库管理员为其建立特殊的存取路径,存取路径的选择由DBMS的优化机制完成。(非关系数据模型的数据操作称为一次一记录(record-at-a-time)的方式)如:在几百万条记录中查询一条记录,可以顺序、索引等,完全由系统自主决策最优的路径进行查询。

关系的完整性

  • 定义:关系模型的完整性规则是对关系的某种约束条件,也就是说关系的值随着时间的变化时应满足一些约束条件。这些约束条件是符合现实世界的要求。
  • 三种完整性约束:实体完整性、参照完整性、用户自定义完整性。
    • 两个不变性: 前两个完整性是关系模型必须满足的约束条件,由系统自动支持。
    • 用户自定义完整性:是具体应用领域需要遵循的约束条件,体现了具体领域中的语义约束。

实体完整性

  • 定义:关系数据库中每个元组应该是可区分的、唯一的。
  • 规则:主键的属性不能为空值(null) (数据库中null解释为:不知道、不存在、无意义的值)

参照完整性

  • 定义:现实世界的实体之间往往存在着某种联系,在关系模型中实体和实体间的联系都是用关系来描述的,所以存在着关系之间的引用,关系中某些属性的取值需要参照其他关系的属性取值。
  • 规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks对应(R与S可以是相同关系),则在R关系中每个元组的F属性上的值要么为空,要么等于S中某个元组的主码值。

用户自定义完整性

  • 定义:根据应用环境的不同,数据必须满足特殊的要求。如:成绩介于0~100,姓名不为空值等。
  • 规则:早期需要人为编写检查程序段检查,现在DBMS可以提供定义和检验机制。

关系代数

  • 定义:关系代数是一种抽象查询语言,使用对关系的运算来表达查询。
  • 特点:运算对象是关系,结果也是关系
  • 运算符分类:传统的集合运算和专门的关系运算

传统的集合运算

  • 特点:元组的运算,从行的角度;是二目运算,包括并、交、差、笛卡儿积,其中前三种运算要求具有相同的目数n 且 对应的属性取自同一个域。
  • 并(union):结果为n目,由R或S的元组组成。
  • 差(except):结果为n目,由属于R而不属于S的元组组成。
  • 交(intersection):结果为n目,既属于R又属于S的元组组成。
  • 笛卡尔积(cartesian product):两个分别为n和m目的关系R和S的笛卡尔积是一个(n+m)列的元组的集合。前n列是R的元组,后m列是S的元组。若R有k1个元组,S有k2个元组,则广义笛卡儿积有k1 x k2行个元组。

专门的关系运算

  • 特点:行、列都可以参与计算。
  • 串接:R为n目关系,S为m目关系,tr∈R,ts∈S,trts⌢称为元组的串接。它是一个n+m列的元组。
  • 象集:给定一个关系R(X,Z)。Zx = { t[Z] | t∈R,t[X] = x};表示为R中属性组X上值为x的诸元组在Z上分量的集合。如:x1在R中的象集为Zx1 = {Z1,Z2,Z3};x2在R中的象集为Zx2 = {Z2,Z3};
  • 选择(selection): 在关系R中选择满足给定条件的元组集合。δF( R) ={t | t∈R ∧ F(t) = ‘true’};条件表达式F =X1θY1,其中θ为比较运算符。如:δ Sage < 20 (Student).

在这里插入图片描述

  • 投影(project): 从R中选择出若干属性列组成新的关系。A ( R) = {t [A] | t∈R};其中A为R中的属性列,并且删除重复的行。如:Sname,Sdept(Student)

  • 连接(join): 又称为θ连接,表示从R和S的笛卡儿积中选择属性间满足条件的元组集合。其中A,B为R和S上列数相等且可比较的属性组,θ为比较运算符。 在这里插入图片描述

    • 等值连接:当条件θ 为 ‘=’ 时,连接运算称为等值连接,即从R和S的笛卡尔积中选择A、B属性组值相等的那些元组。在这里插入图片描述

    • 自然连接:特殊的等值连接,它要求比较对象必须是同名的属性组,并且将结果的重复属性列去掉。 即必须要有同名属性组B,且去重。
      在这里插入图片描述

    • 外连接:因为如果在关系R中某些元组在S中没有相对应的元组,就会导致元组丢弃,被丢弃的元组称为悬浮元组。如果保留悬浮元组,将其他属性属性填上空值(NULL),记作R⋈S

    • 左外连接:只保留左边关系R中的悬浮元组,记作

    • 右外连接:只保留右边关系S中的悬浮元组,记作

  • 除(division):设关系R除以关系S的结果为T,则T为所有在R中但不在S中的属性和其值,且T的元组与S的元组的所有组合都在R中。如:A的取值为{a1,a2,a3,a4} 。a1的象集为{(b1,c2),(b2,c3),(b2,c1)}。a2的象集为{(b2,c3),(b3,c7)}。a3的象集为{{b4,c6}}。a4的象集为{(b6,c6)}。S在(B,C)上的投影为{(b1,c2),(b2,c3),(b2,c1)}。则只有a1的象集(B,C)a1包含了S在(B,C)属性组上的投影,所以R ➗ S ={a1}
    在这里插入图片描述

本章测试:
1、在关系表中,主键数据最好采用什么数据类型?    序列serial
2、参照完整性是用来确保关系之间关联列的?      数据一致性
3、下面哪种连接要求组合两个关系的匹配元组而形成查询结果集?    内连接
4、代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示出 ?    X(代理键可以是机器生成序列号)

简答题:
1、关系模型由哪几个部分组成?其工作原理是什么?
数据结构、操作、约束。构建关系的二维表并符合数据约束规则,对关系进行数据操作。

2、在关系模型中,对关系有哪些数据操作方式?
选择、并、交、差、笛卡尔积、投影、连接等

3、如何理解关系数据查询的选择运算操作、投影运算操作、连接运算操作?
选择:从关系中选择满足条件的元组集组成新关系;
投影:从关系中选择出部分属性列组成新关系;
连接:包括θ连接,自然连接,外连接;从两个关系的笛卡尔积中选取出属性间满足一定条件的元组集合组成新关系。

4、关系之间的θ连接操作与自然连接操作有何区别?
θ连接:δAθB(R X S)标识在R和S的笛卡尔积中选取满足关系R.A 与S.B 的元组,其中θ为比较运算符{<,≤,=,>,≥}。 从行的角度。
等值连接:当θ为 ‘=’时,表示从元组中选取属性相等的元组。
自然连接:R∞S,特殊的等值连接,两个关系的分量必须是相同的属性组,并且结果去重。从行和列的角度。

5、关系之间的左外连接、右外连接、全外连接有何区别?
内连接:前面几个连接,运算结果集由两个关系中相匹配的元组组合而成。
外连接:扩展内连接操作结果中未匹配属性值的对应元组,避免内连接导致信息丢失。
左外连接:依照左关系的完整,右关系不匹配的部分值用NULL填充。
右外连接:依照右关系的完整,左关系不匹配的部分值用NULL填充。
全外连接:同时完成左外连接和右外连接,再将产生的元组进行自然连接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值