数据库系统概论——Introduction

一、数据库的4个基本概念

  1. 数据(data):数据是数据库中存储的基本单位。我们把描述事物的符号记录称为数据。数据和关于数据的解释是不可分的,数据的含义称为数据的语义,数据与其语义是不可分的。
  2. 数据库(DataBase,DB):存放数据的仓库。数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability),并可为各种用户共享。
  3. 数据库管理系统(DataBase Management System,DBMS):数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。主要功能:
    • 数据定义功能(DDL)
    • 数据组织、存储和管理
    • 数据操纵功能(DML)
    • 数据库的事务管理和运行管理
    • 数据库的建立和维护功能
    • 其他功能(如数据库管理系统和其他软件之间的通信,数据库管理系统之间的通信等。)
  4. 数据库系统(DataBase System,DS):数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统。

二、数据管理技术的3个发展阶段

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

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

  1. 人工管理阶段。
  2. 文件系统阶段。
  3. 数据库系统阶段。(整体结构化,数据模型描述)

三、数据库系统的特点

1. 数据结构化:

数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统和文件系统的本质区别。

所谓“整体”结构化是指数据库中的数据不在仅仅针对某一个应用,而是面向整个组织或企业;不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。这就要求在描述数据时不仅要描述数据本身,还要描述数据之间的联系。

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

数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。所谓的不一致性是指同一数据不同副本的值不一样。也使得数据库系统弹性大,易于扩充。

3. 数据独立性高:

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

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

- 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。

数据独立性是有数据库管理系统提供的二级映像功能来保证的。

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

数据库的共享是并发的(concurrency)共享。

(1) 数据的安全性(security)保护。数据的安全性是指保护数据以防止不合法使用造成的数据泄密和破坏。

(2) 数据的完整性(integrity)检查。数据的完整性是指数据的正确性、有效性和相容性。

(3) 并发(concurrency)控制。必须对多用户的并发操作加以控制和协调。

(4) 数据库恢复(recovery)。

数据库系统阶段应用程序与数据之间的对应关系:

数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。

四、数据模型

【模型】 对现实世界中某个对象特征的模拟和抽象。

【数据模型(data model)】 对现实世界数据特征的抽象。数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型是数据库系统的核心和基础。

1. 两类数据模型

数据模型应满足三方面的要求:一是能比较真实地模拟现实世界,二是容易为人所理解,三是便于计算机实现。

根据模型应用的不同目的,可以将模型分为两大类:第一类是概念模型(conceptual model),第二类是逻辑模型和物理模型。

【概念模型】 也称信息模型。它是按用户的观点来对数据和信息建模,主要用于数据库设计。它与具体的计算机系统、DBMS无关。

【逻辑模型】 主要包括层次模型(hierarchical model)、网状模型(network model)、关系模型(relational model)、面向对象数据结构模型(object oriented data model)和对象关系数据模型(object relational data model)、半结构化数据模型(semistructured data model)等。它是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。

【物理模型】 对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。

两步抽象:

首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。(图)

2. 概念模型

概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰、易于用户理解。

(1)实体(entity)

客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。

(2)属性(attribute)

实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。

(3)码(key)

唯一标识实体的属性集称为码。(最小属性集)

(4)实体型(entity type)

用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。如,学生(学号,性别,姓名,专业)。

(5)实体集(entity set)

同一类型实体的集合称为实体集。

(6)联系(relationship)

实体内部的联系通常是指组成实体的各属性之间的关系。

实体之间的联系通常是指不同实体集之间的联系。实体之间的联系有一对一、一对多、多对多等多种类型。

(7)域(domain)

属性的取值范围称为该属性的域。

【概念模型的一种表示方法:实体-联系方法】

实体-联系方法(Entity-Relationship approach),E-R模型,E-R图(E-R diagram)

3. 数据模型的组成要素

数据结构,数据操作,数据的完整性约束条件

(1)数据结构

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

两类:一类是与对象的类型、内容、性质有关的;一类是与数据之间联系有关的对象。

对系统静态特性的描述。

(2)数据操作

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

对系统动态特性的描述。

(3)数据的完整性约束条件

数据的完整性约束条件是一组完整性规则。

数据模型应该反映和规定其必须遵守的基本的和通用的完整性约束条件。

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

4. 常用的数据模型

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

其中层次模型和网状模型统称为格式化模型。在格式化模型中实体用记录表示,实体的属性对应记录的数据项(或字段)。实体之间的联系在格式化模型中转换成记录之间的两两联系。在格式化模型中数据结构的单位是基本层次联系。所谓基本层次联系是指两个记录以及它们之间的一对多(包括一对一)的联系。

(1)层次模型

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

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

[兄弟结点、叶结点]

层次模型像一棵倒立的树,结点的双亲是唯一的。

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

【层次模型的完整性约束】

  • 进行插入操作时,如果没有相应的双亲结点值就不能插入它的子女结点值。
  • 进行删除操作时,如果删除双亲结点值,则相应的子女结点值也将被同时删除。

(2)网状模型

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

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

层次模型中子女结点与双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一。

【网状模型的完整性约束】

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

(3)关系模型

从用户观点看,关系模型由一组关系组成。每个关系的数据结构是一张规范化的二维表。

【术语】

  • 关系(relation):一个关系对应通常说的一张表。
  • 元组(tuple):表中的一行即为一个元组。
  • 属性(attribute):表中的一列即为一个属性。
  • 码(key):也称为码键。表中的某个属性组,它可以唯一确定一个元组。
  • 域(domain):域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
  • 分量:元组中的一个属性值。
  • 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,……,属性n)。(实体型)

【关系模型的数据操作】

增、删、改、查。

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

【关系模型的完整性约束】

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

关系的完整性约束条件包括三大类:实体完整性、参照完整性、用户定义完整性。

五、数据库系统的结构

【型(type)】是指对某一类数据的结构和属性的说明,【值(value)】是型的一个具体赋值。

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

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

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

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

[图片引用自外链](http://blog.csdn.net/u010297957/article/details/50846279)

【模式(schema)】

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

模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。

DBMS提供模式数据定义语言(模式DDL)来严格地定义模式。

【外模式(external schema)】

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

外模式通常是模式的子集。一个数据库可以有多个外模式。另一方面,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

DBMS提供外模式数据定义语言(外模式DDL)来严格地定义外模式。

【内模式(internal schema)】

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

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

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

这两层映像保证了数据库 系统中的数据能够具有较高的逻辑独立性和物理独立性。

【外模式/模式映像】

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

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

【模式/内模式映像】

数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的。它定义了数据全局逻辑结构与存储结构之间的对应关系。该映像通常包含在模式描述中。

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

【数据库的二级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。】

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

数据库系统概论——Chap. 1 Introduction的更多相关文章

  1. 数据库系统概论(1)——Chap. 1 Introduction

    数据库系统概论--Introduction 一.数据库的4个基本概念 数据(data):数据是数据库中存储的基本单位.我们把描述事物的符号记录称为数据.数据和关于数据的解释是不可分的,数据的含义称为数 ...

  2. 数据库系统概论(2)——Chap. 2 关系数据库基础

    数据库系统概论(2)--Chap.2 关系数据库基础 一.关系数据结构及形式化定义 1.关系 关系模型的数据结构只包含单一的数据结构--关系.在关系模型中,现实世界的实体及实体间的各种联系均用单一的结 ...

  3. 数据库系统概论 SQL

    --(一)创建教材学生-课程数据库 create database s_c go use s_c go --建立“学生”表Student,学号是主码,姓名取值唯一. CREATE TABLE Stud ...

  4. 数据库系统概论(第5版) P262 例8.12

    #include <iostream> #include <stdlib.h> #include <stdio.h> #include <Windows.h& ...

  5. 数据库系统概论学习4-SQL 语句和关系代数(二)单表查询

    4.12 字符匹配 精确查询和模糊查询 在这一节之前,我们学习的查询几乎都是精确查询,这就需要我们明确地知道某些属性的具体值.例如我们需要查询 'Wangxiaoxiao' 同学的信息,就需要在WHE ...

  6. 数据库系统概论学习3-SQL 语句和关系代数(一)SQL 入门

    3. SQL 语句和关系代数(一)SQL 入门 3.1 数据库的编程语言 SQL 的优点 SQL 集成了数据查询(data query).数据操作(data manipulation).数据定义(da ...

  7. 数据库系统概论学习2-《关系数据库与 E/R 模型》

    -----------------------------一直更新学习内容------------------------------------ 建立一个关系数据库需要几步? 2.关系数据库与 E/ ...

  8. 数据库系统概论——SQL

    [toc] 一.SQL查询语言概览 视图 从一个或几个基本表导出的表 数据库中只存放视图的定义而不存放视图对应的数据 视图是一个虚表 用户可以在视图上再定义视图 基本表 本身独立存在的表 SQL中一个 ...

  9. 数据库系统概论——从E-R模型到关系模型

    E-R模型和关系模型都是现实世界抽象的逻辑表示 E-R模型并不被 DBMS直接支持,更适合对现实世界建模 关系模型是 DBMS直接支持的数据模型 基本 E-R图中的元素包括实体集.联系集.属性 椭圆框 ...

随机推荐

  1. Python学习笔记2:构造序列:列表推导和生成器表达式

    欢迎访问个人网站:www.comingnext.cn 1. 关于Python内置序列类型 a. 按能否存放不同类型的数据区分 容器序列: list.tuple 和collections.deque这些 ...

  2. node.js之调试器

    node.js之调试器 1.在命令行窗口中,可以使用"node debug" 命令来启用调试器,代码如下: node debug<需要被执行的脚本文件名> 接下来根据一 ...

  3. thinkphp 中英文网站详解

    thinkphp 制作中英文网站的两种方法 一,在网站程序里增加语言脚本,设置整站自动翻译. 二,在原有的页面制作新的模板,在新的页面编辑网站, 优缺点: 一:优点.........就是不用多次添加内 ...

  4. 教程:基于访问控制的ABAP CDS视图权限

    Hi! 对每一个CDS视图,我们都可以通过DCL(Data Control Language)定义访问控制.在这篇文章中,我会介绍ABAP CDS视图中非常重要的一面:权限管理. 本文的阐述基于我正在 ...

  5. Myeclipse和windows调节成护眼色

    作为程序员,对着电脑屏幕久了,眼睛难免疲劳,下面相信对我们每个 人都很有帮助. windows xp:桌面空白处右键,属性,外观-高级,然后在项目那栏选窗口,再点颜色-其它,然后把色调设为85(默认是 ...

  6. 【Linux Shell】uname命令行

    常用命令uname -v # uname -i #uname -a dream361@master:~$ uname -n #主机名称 master dream361@master:~$ uname ...

  7. MySQl数据库常用的DOS命令

    MySQl数据库常用的DOS命令.. 这是第一部分.. 数据库的连接信息:jdbc:mysql://localhost:3306/shxtcom.mysql.jdbc.Driver /*jdbc:sq ...

  8. 8.23.4 IO-输入输出16个流

    字节流: FileInputStream FileInputStream fIn = new FileInputStream("1.avi");   FileOutputStrea ...

  9. Jquery $(this).attr和$(this).val用法示例

    以下是个人心得整理,有兴趣朋友可以参考参考 $(this).attr(key); 获取节点属性名为key的值,相当于getAttribute(key)方法 $(this).attr(key,value ...

  10. Android笔记: 播放提示音 的简单方法

    public static void sendSound(Context mContext) { //上下文 Uri mUri= RingtoneManager.getDefaultUri(Ringt ...