第1章绪论

第1章 绪论

本文全部内容来自数据库系统概论(第5版)—王珊、萨师煊著

1.1数据库系统概述

1.1.1四个基本概念

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

1.数据(data)

数据是数据库中存储的基本对象,数据不仅仅只是数字,也包括文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等

描述事物的符号记录成为数据

数据含义称为数据的语义,数据与语义不可分割

自然语言:李明同学,男,1995年5月生,江苏省南京市人,2013年入学。

在计算机中的表示形式是记录:

(李明,男,199505,江苏省南京市,计算机系,2013)

即把学生的姓名、性别、出生年月、家庭住址、所在院系、入学时间等组织在一起,构成一个记录。

记录是计算机中表示和存储数据的一种格式或一种方法

2、数据库(DataBase,DB)

数据库是存放数据的仓库,此仓库在计算机存储设备上,而且数据是按照一定的格式存放的

数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合

数据库中数据按一定的数据模型组织、描述和储存,具有较小的冗余度较高的数据独立性易扩展性可为用户共享

三个特点:永久存储、有组织、可共享

3、数据库管理系统(DataBase Management System,DBMS)

数据库管理系统:用来科学地组织和存储数据,高效地获取和维护数据

主要功能:

  1. 数据定义功能:用户通过数据定义语言(DDL)对数据库中的数据对象的组成和结构进行定义
  2. 数据组织、存储和管理:数据库管理系统要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存储路径等。数据组织和存储的基本目标是:提高存储空间利用率和方便存取,提供多种存取方法来提高存取效率。
  3. 数据操纵功能:用户通过数据操纵语言(DML)来操纵数据,实现对数据库的基本操作,增删改查等。
  4. 数据库的事务管理和运行管理:数据库在建立、运用和维护时由数据库管理系统统一管理和控制,以保证事务的正确运行,保证数据的安全性、完整性、多用户对数据并发使用及发生故障后的系统恢复。
  5. 数据库的建立和维护功能:数据库初始数据的输入和转化功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等,这些功能通常用一些应用程序或管理工具完成。
  6. 其他功能:与网络中其他软件的通信、两个不同的数据库管理系统之间的数据转换、异构数据库之间的互访和互操作功能。

4、数据库系统

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

在引入数据库后的计算机系统层次中,数据库系统在操作系统上,应用开发工具下。

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

数据库技术是应数据管理任务的需要产生的。

数据管理是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。

数据处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。

人工管理阶段 文件系统阶段 数据库系统阶段
应用背景 科学计算 科学计算、数据管理 大规模数据管理
硬件背景 无直接存取存储设备 磁盘、磁鼓 大容量磁盘、磁盘阵列
软件背景 没有操作系统 由文件系统 有数据库管理系统
处理方式 批处理 联机实时处理、批处理 联机实时处理、分布处理、批处理
数据管理者 用户(程序员) 文件系统 数据库管理系统
数据面向对象 某一应用程序 某一应用 现实世界
数据的共享程度 无共享、冗余度大 共享性差,冗余度大 共享性高、冗余度小
数据独立性 不独立、完全依赖于程序 独立性差 具有高度的物理独立性和一定的逻辑独立性
数据结构化 无结构 记录内有结构,整体无结构 整体结构化,用数据模型描述
数据控制能力 应用程序自己控制 应用程序自己控制 由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力

1.1.3数据库系统的特点

采用数据库系统实现学生学籍管理

CREATE TABLE STUDENT(
    Sno		CHAR(8),
    Sname	CHAR(10),
    Ssex	CHAR(2),
    Sage	SMALLINT,
    Major	CHAR(20)
);
CREATE TABLE AWARD(
    Sno CHAR(8),
    Details VARCHAR(2000)
);

利用两条插入命令即可将数据保存到STUDENT和AWARD表中

INSERT INTO STUDENT(Sno,Sname,Ssex,Sage,Major)
VALUES('2001001','林文','男','21','计算机')
INSERT INTO AWARD(Sno,Details)
VALUES('2001001','2014校奖学金,2015校二等奖学金')

查询功能一条语句即可完成

SELECT A.Sno,Sname,Ssex,Sage,Major,Details FROM STUDENT A LEFT JOIN AWARD B
on A.Sno = B.Sno WHERE A.Sno='2001001'

1、数据结构化

整体结构化是指数据库中的数据不在仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。

在数据库系统中,存取方式十分灵活,可以存取数据库中的某一个或一组数据项、一个记录或一组记录。

2、数据的共享性高、冗余度低且易扩充

数据库系统从整体角度看待和描述数据,数据面向整个系统,因此数据可以被多个用户,多个应用共享使用。

数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。

数据的不一致性是指同一数据不同副本的值不一样。

由于数据库系统面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且我容易增加新的应用,这就是的数据库系统弹性大,易于扩充。

3、数据独立性高

数据独立性包括数据的物理独立性和逻辑独立性。

物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。数据的物理存储改变时应用程序不变。

逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变时用户程序也可以不变。

4、数据由数据库管理系统统一管理和控制

  1. 数据的安全性保护:保护数据以防止不合法使用造成的数据泄密和破坏
  2. 数据的完整性保护:数据的正确性、有效性和相容性
  3. 并发控制:在多个用户的并发进程同时存取,修改数据库时,避免出现错误
  4. 数据库恢复:将数据库从错误状态恢复到某一已知的正确状态。

数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。

1.2数据模型

数据模型是对显示世界数据特征的抽象。是用来描述数据、组织数据和对数据进行操作的。

数据模型是数据库系统的核心和基础。

1.2.1两类数据模型

三方面的要求:

  1. 能比较真实的反应现实世界
  2. 容易为人所理解
  3. 便于在计算机上实现

根据模型应用的不同目的,可以将模型划分为两大类:

  1. 概念模型:信息模型,它是按照用户的观点来对数据和信息建模,主要用于数据库设计
  2. 逻辑模型和物理模型:
    • 逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型。按计算机系统的观点对数据建模,主要用于数据库管理系统的实现
    • 物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方法和存取方法,是面向计算机系统的。主要用于数据库管理系统任务的实现。

1.2.2概念模型

概念模型用于信息世界的建模

  • 具有较强的语义表达能力
  • 简单、清晰、易于理解

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

信息世界==概念模型

  1. 实体 entity:客观存在并可相互区别的事物
  2. 属性 attribute:实体所具有的某一特性
  3. key:唯一表示实体的属性集
  4. 实体型 entity type:用实体名及其属性名集合来抽象和刻画同类实体
  5. 实体集 entity set:同一类型实体的集合
  6. 联系 relationship:反映在信息世界中实体(型)内部的联系和实体(型)之间的联系
    • 实体内部的联系是指组成实体的各属性之间的联系
    • 实体之间的联系是指不同实体集之间的联系
    • 实体之间的联系有一对一、一对多、多对多等多种类型

2、概念模型的一种表示方法:实体—联系方法

E-R图

1.2.3数据模型的组成元素

数据模型是严格定义的一组概念的集合。这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件

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

  1. 数据结构:描述数据库的组成对象以及对象之间的联系

    • 与对象的类型、内r容、性质有关的

    • 与数据之间的联系有关的

      数据结构是所描述的对象类型的集合,是对系统静态特性的描述。

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

    • 查询和更新两大类操作
    • 数据操作是对系统动态特性的描述
  3. 数据的完整性约束条件:一组完整性规则

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

    • 数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。

1.2.4常用的数据模型

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

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

1.2.5层次模型

层次模型用树形结构来表示各类实体以及实体间的联系。

1、层次模型的数据结构

  • 有且只有一个结点没有双亲结点,这个结点称为根结点
  • 根以外的其他结点有且只有一个双亲结点

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

层次模型是一种类似于倒立的树的数据结构,结点的双亲是唯一的。

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

2、层次模型的数据操纵与完整性约束

数据操纵:查询、插入、删除、更新

完整性约束:插入、删除、更新

3、层次模型的优缺点

优点:

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

缺点:

  1. 现实世界很多联系是非层次的
  2. 一个结点具有多个双亲结点,用层次模型比较笨拙
  3. 查询子女结点必须通过双亲结点
  4. 结构紧密,层次命令趋于程序化

1.2.6网状模型

网状模型用来表示非树形结构的非层次关系。

1、网状结构的数据结构

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

网状模型中子女与双亲的关系可以使不唯一的。

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

具体的网状数据库系统对数据操纵都加了一些限制,提供一定的完整性约束。

3、网状模型的优缺点

优点:

  1. 能够更直接地描述现实世界
  2. 具有良好的性能,存取效率较高

缺点:

  1. 结构比较复杂,不利用最终用户掌握
  2. 网状模型的DDL、DML复杂,并且要嵌入某一种高级语言中,不易掌握,不宜使用
  3. 由于记录之间的联系是通过存取路径实现的,因此用户必须了解系统结构的细节,加重了编写程序的负担

1.2.7 关系模型

关系模型是最重要的一种数据模型。

1、关系模型的数据结构

建立在严格的数学概念上的。

学号 姓名 年龄 性别 系名 年级
2020001 王明 19 计算机系 2020
2020002 李文 20 经济系 2020
2020003 林涵 19 音乐系 2020
  • 关系(relation):一个关系对应一张表

  • 元组(tuple):表中的一行为一个元组

  • 属性(attribute):表中的一列即为一个属性,给每个属性起一个名称即属性名

  • 码(key):也称为码键,表中的某个属性组,他可以唯一确定一个元组

  • 域(domain):域是一组具有相同数据类型的值得集合

  • 分量:元组中的一个属性值

  • 关系模式:对关系的描述,一般表示为

    关系名(属性1,属性2,…,属性n)

关系模型要求关系必须是规范化的,关系必须满足一定的规范条件。

关系的每一个分量必须是一个不可分的数据项

将关系和现实生活中的表格所使用的术语对比结果如下:

关系术语 一般表格的术语
关系名 表名
关系模式 表头(表格的描述)
关系 (一张)二维表
元组 记录或行
属性
属性名 列名
属性值 列值
分量 一条记录中的一个列值
非规范关系 表中有表(大表中嵌有小表)

2、关系模型的数据操纵与完整性约束

  • 实体完整性
  • 参照完整性
  • 用户定义完整性

关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干集合。

关系模型不需要用户了解存取路径,因此大大提高了数据的独立性,提高了用户生产率。

3、关系模型的优缺点

优点:

  1. 关系模型是建立在严格的数学概念上的
  2. 关系模型概念单一,数据结构简单、清晰、用户易懂易用
  3. 关系模型的存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性,简化了工作量

缺点:查询效率低,开发难度高

1.3数据库系统的结构

从数据库应用开发人员角度看,数据库系统通常采用三级模式结构。

从数据库最终用户角度看:

  • 单用户结构
  • 主从式结构
  • 分布式结构
  • 客户-服务器
  • 浏览器-应用服务器/数据库服务器多层结构

1.3.1系统模式的概念

  1. 型(type):指对某一类数据的结构和属性的说明。
  2. 值(value):值是型的一个具体赋值。

例如:学生记录定义为(学号,姓名,性别,系别,年龄,籍贯)这样的记录型

(2020001,李明,男,计算机系,19,安徽省芜湖市)则是一个记录值。

模式(schema):是数据库中全体数据的逻辑结构和特征的描述,仅仅涉及到型的描述,不涉及到值。模式的一个具体指称为模式的一个实例。同一个模式可以有很多实例。

模式是相对稳定的,而实例是相对变动的。

1.3.2三级模式结构

指数据库系统是由外模式、模式和内模式三级构成。数据库系统的三级模式是数据的三个抽象级别。

1、模式

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

它是数据库系统模式结构的中间层,既不涉及物理存储细节和硬件环境,又与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。

一个数据库只有一个模式

定义模式时不仅要定义数据的逻辑结构,还要定义数据之间的联系,定义与数据有关的安全性、完整性要求。

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

2、外模式

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

外模式是模式的子集,一个数据库可以有多个外模式

  • 不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则其外模式描述就不同。
  • 同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式

3、内模式

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

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

为了能够在系统内部实现三个抽象层次的联系和转换,数据库管理系统提供了两层映像。

1、外模式/模式映像

对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。映像的定义包含在各自外模式的描述中。

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

2、模式/内模式映像

模式/内模式映像是唯一的,定义了数据全局逻辑结构与存储结构之间的对应关系。

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

1.4数据库系统的组成

1、硬件平台及数据库

  1. 硬件资源要有足够大的内存,存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序
  2. 足够大的磁盘或磁盘阵列等设备存放数据库
  3. 系统有较强的通道能力,以提高数据传送率

2、软件

  1. 数据库管理系统,为数据库的建立、使用和维护配置的系统软件
  2. 支持数据库管理系统运行的操作系统
  3. 具有数据库接口的高级语言及其编译系统,便于开发应用程序
  4. 以数据库管理系统为核心的应用开发工具,为数据库系统的开发和应用提供良好的环境
  5. 为特定应用环境开发的数据库应用系统

3、人员

  1. 数据库管理员,负责全面管理和控制数据库系统。
    • 决定数据库中的信息内容和结构
    • 决定数据库的存储结构和存取策略
    • 定义数据的安全性要求和完整性约束条件
    • 监控数据库的使用和运行
    • 数据库的改进和重组、重构
  2. 系统分析员和数据库设计人员
    • 系统分析员:负责应用系统的需求分析和规范说明,要和用户及数据库管理员相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计
    • 数据库设计人员:负责数据库中数据的确定及数据库各级模式的设计。
  3. 应用程序员:负责设计和编写应用系统的程序模块,并进行调试和安装
  4. 用户:
    • 偶然用户:不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息。
    • 简单用户:主要工作时查询和更新数据库。
    • 复杂用户:比较熟悉数据库管理系统的各种功能,能够直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的应用程序接口编制自己的应用程序。

你可能感兴趣的:(数据库,sql)