数据库绪论

数据库是数据管理的最新技术,是计算机科学的重要分支。

感性认识一下数据库:

数据:学生数据

数据管理:数据的存储,更新,查询统计排序等

 

 

本节要点:

  • n  数据库系统概述
  • n  数据、数据库、数据库管理系统、数据库系统
    • u  数据库管理技术的产生和发展
  • n  数据模型
    • n  数据模型概念
    • u  数据模型的组成要素
    • u  概念模型及E-R图
    • u  概念模型的表示方法:实体-联系图(E-R图)
    • u  逻辑数据模型
  • n  数据库系统结构
  • n  数据库系统的组成

 

1           数据库系统概述

在系统介绍数据库的基本概念之前,首先了解一些数据库最常用的术语和基本概念。

 

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

a)         数据(data)(数据是数据库中存储的基本对象)

例如:李明,男,21,1972,江苏,计算机,1999

  • 描述事物的符号记录称为数据。
  • 数据!=数字 (数字只是其中的一种形式)
  • 形式:数值、文字、图形、图像、声音 等。(符号)
  • 信息(information):数据所表示的含义称为信息。
  • 数据与信息的关系:数据是信息的载体,数据的内涵是信息,数据语义表达了信息,同时数据和语义是不可分的。

 

b)         数据库Database(DB)

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

特点:数据库中的数据具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

  • 冗余度,通俗的讲就是数据的重复度。在一个数据集合中重复的数据称为数据冗余
  • 数据独立性是指应用程序和数据结构之间相互独立, 互不影响
  • 易扩展性指当有新的业务逻辑,数据库结构变动无须太大

 

c)         数据库管理系统Database Management System(DBMS)

DBMS是对数据库建立、操纵、维护的系统软件。它主要功能包括以下几个方面:

l  数据定义功能

提供数据定义语言DDL(Data Definition Language),定义数据库对象(如数据库,数据表,视图等)

l  数据组织、存储和管理

提高存储空间利用率和方便存取,提供多种存取方法(如索引查找)来提高存取效率。

l  数据操纵功能

提供数据操纵语言DML(Data Manipulation Language),实现数据插入,修改,删除,查询等

l  数据库的事务管理和运行管理

实现数据库的安全性、完整性(有效性),多用户并发控制

l  数据库的建立和维护功能

数据库初始数据的装入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。

l  其他功能

DBMS与网络中其他软件系统的通信功能;一个DBMS与另一个DBMS或文件系统的数据转换功能;异构数据库之间的互访和互操作功能等。

 

d)         数据库系统Database System(DBS)

数据库系统是指在计算机系统中引入数据库后的系统,通常由下面部分组成:

                                       i.              数据库 DB

                                     ii.              操作系统( Operating System ,简称OS)

                                    iii.              数据库管理系统 DBMS

                                    iv.              开发工具SDK开发的应用系统APP

                                     v.              管理员DBA

                                    vi.              用户USER

 

 

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

在应用需求的推动下,在计算机硬件、软件发展的基础上,数据库管理技术经历了人工管理阶段、文件系统阶段、数据库系统阶段。

1.2.1     人工管理阶段

在50年代中期以前;

基础技术:没有直接存储设备(卡片);没有基本操作系统;

应用领域:科学计算

  • 数据管理没有纳入计算机统一管理的范畴。
  • 应用程序中所使用数据均由应用程序自身管理。

特点:

  • 数据不保存
  • 应用程序管理数据
  • 数据不共享
  • 数据不具有独立性(针对特定的应用,数据或其结构变,程序也须变 )

1.2.2     文件系统管理阶段

在50年代后期——60年代中期;

基础技术:出现直接存储设备:磁盘、磁鼓;基本操作系统概念的建立,实现了抽象的文件系统

应用领域:扩展到信息管理

特点(优/缺):

  • 数据可以长期保存(磁介质)
  • 由文件系统管理数据(OS负责管理文件)
  • 数据共享性差、冗余度大(文件——应用)
  • 数据独立性较差(数据结构变,程序也须变)

1.2.3     数据库系统管理阶段

在60年代后期;

基础技术: 容量直接存储设备,硬件价格下降,应用开发(软件)价格上升

应用领域: 管理大量数据,联机实时处理为特点的大型数据管理

数据库系统管理的特点:

1.数据结构化(数据库的文件系统的根本区别)

2.数据独立性高(数据结构变,程序不须变)

3.数据共享性高,冗余度低,易扩充

4.数据由DBMS统一管理和控制,并使数据管理具有:

  • 数据的安全性(security)保护(数据不被非法访问)
  • 数据完整性(Integrity)检查(数据的正确性有效性相容性)
  • 并发(Concurrency)控制
  • 数据恢复(Recovery)

2           数据模型

模型,人们并不陌生。一张地图、一组建筑设计沙盘、一架精致的航模飞机都是具体的模型。模型是对现实世界中某个对象特征的模拟和抽象。例如,航模飞机是对生活中飞机的一种模拟和抽象。

数据模型(Data Model)也是一种模型,它是对现实世界数据特征的抽象。也就是说,数据模型是用来描述数据、组织数据和对数据进行操作的。

现有的数据库系统均是基于某种数据模型的。数据模型是数据库系统的核心和基础。因此,了解数据模型的基本概念是学习数据库的基础。

2.1          数据模型概念

数据模型应满足三方面要求:一是较真实模拟现实世界;二是易于人所理解;三是易于在计算机上实现。因此,在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。在开发实施数据库应用系统中也需要使用三种不同的数据模型,包括概念模型、逻辑模型和物理模型,介绍如下:

概念模型:也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计;

逻辑模型:它是按计算机系统的观点对数据建模,主要用于DBMS的实现。主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型等;

物理模型:是对数据最低层的抽象,它描述数据在系统内部的表示方式和存取方法,是面向计算机系统的。

2.2          数据模型的组成要素

数据模型精确地描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三个部分组成:

数据结构:描述数据库的组成对象以及对象之间的练习。

数据操作:允许执行的操作。主要:检索和更新

数据约束条件:数据完整性规则的集合。数据的完整性主要指数据的正确性、有效性和相容性。

2.3          概念模型及E-R

概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,反应人对客观事物的认识。

a)         信息世界中的基本概念

  • 实体(Entity):客观存在的可区别的事物。例:某学生,某公司,某国家etc.
  • 属性(Attribute):实体所具有某一特征,描述、表达、界定实体。 例:(姓名,性别,年龄…)
  • 实体型(Entity Type):用实体名及属性名集合来抽象和刻划的同类实体。例:学生(学号,姓名,性别,专业,入学时间);公司(ID,name,type,memo)
  • 实体集(Entity Set):同型实体的集合。如一个班的学生集合
  • 码(Key):唯一标识实体的属性集。例:学生编号
  • 域(Domain):属性的取值范围。学生编号---6位,性别:男/女
  • 联系(Relationship):实体型之间或实体型内部实体的联系。

b)         两实体型实体间联系的分类

 

 

1:1(一对一联系):A中任意实体至多对应B中的一个实体,反之B中的任意实体至多对应A中的一个实体。例如:观众与座位、乘客与车票、病人与病床、学校与校长等;

1:n(一对多联系):A中一个实体对应B中的多个实体,反之B中的任意实体至多对应A中的一个实体。例:城市与街道、宿舍与学生、父亲与子女、班级与学生等;

m:n(多对多联系):A中一个实体对应B中的多个实体,反之B中一个实体对应A中的多个实体。例:学生与课程、工厂与产品、商店与顾客。

 

c)         两个以上的实体型之间的联系

1对1例:一个教室属于一个班级,一个班级只有一个班长,一个教室里只有一个班长。

 

 

1对多示例:如果一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用,课程与教师、参考书之间的联系是一对多的;

多对多示例:1个供应商供应多个项目;1个供应商供应多种零件;1个项目有多个供应商;1个项目使用多种零件;1种零件应用于多个项目,1种零件由多个供应商供应。

 

 

d)         单个实体型内的联系

同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。例如,职工实体型内部具有领导与被领导的联系,即某一职工(干部)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系。

 

 

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

概念模型的表示方法很多,最著名的是实体—联系方法(E-R,Entity-Relationship Approach),该方法用E-R图来描述现实世界的概念模型,E-R方法也称E-R模型。

E-R图提供了表示实体型、属性和联系的方法:

  • 用矩形表示实体、用椭圆表示属性、用菱形表示联系。
  • 属性和实体间、实体和联系间用线段连接
  • 联系线标注联系类型(1,n), 如果联系有属性,也要标注

示例:假设一个学生可选多门课程,而一门课程又有多个学生选修, 一个教师可讲多门课程,一门课程至多只有一个教师讲授。E-R图如下:

 

 

2.5          逻辑数据模型

最常见的逻辑数据模型有四种(按发展时间为序):

  • 层次模型  适于描述层次结构的数据     
  • 网状模型  速度快、不易掌握
  • 关系模型   易于理解和使用、有严格的数学理论基础
  • 面向对象模型 适于模拟实体的行为

·层次模型和网状模型统称为格式化模型,格式化模型的数据库系统在20世纪70年代至80年代初非常流行,现在已逐渐被关系模型的数据库系统取代。

         层次模型定义:

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

网状模型定义:

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

层次模型和网状模型详细介绍待补充。

下面详细介绍关系模型。

 

关系模型是目前最重要的一种数据模型,关系数据库系统采用关系模型作为数据的组织方式。由1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型。

 

a)         关系数据模型的数据结构

用表格(称为关系) 表示实体以及实体间联系的数据模型叫关系模型。每个关系的数据结构是一张规范化的二维表(在网状和层次模型中用指针的链接表示实体之间的联系)。介绍关系模型中的一些术语:

 

  • 关系(Relation):一个二维表格;
  • 元组(Tuple) :表中的一行即为一个元组;
  • 属性(Attribute):表中的一列即为一个属性;
  • 码(key):表中某属性组,可唯一确定任一元组;
  • 域(Domain):属性的取值范围;
  • 分量:元组中的一个属性值;
  • 关系模式:对关系的描述,表述为:关系名(属性1,属性2,….,属性n)。如:学生(学号,姓名,性别,专业,入学时间)

b)         关系数据模型的操纵与完整性约束

操作主要包括:查询、插入、删除和更新数据。而这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。

c)         关系数据模型的存储结构

在关系数据模型中,实体及实体间的联系都是用表来表示。在关系数据库的物理组织中,有的DBMS一个表对应一个操作系统文件,有的DBMS从操作系统获得若干个大的文件,自己设计表、索引等存储结构。例:表头;记录1,记录2,…,记录n, 结束标志。

 

d)         关系模型优缺点

优:

1)建立在严格的数学概念的基础上的;

2)概念单一,无论实体还是实体之间的联系都用关系来表示,所以其数据结构简单、清晰,用户易懂易用;

3)存取路径对用户透明,具有较高数据独立性和安全保密性;

注:这里透明其实是隐藏的意思,就是数据处理过程隐藏了存取路径,由数据关系系统自己选择存储路径,普通用户可能在不知情的情况下选择了效率较低的方法,所以关系数据库经常讲要优化。

缺:

查询效率不如非关系型

 

现实世界信息世界、机器世界术语的对应关系如下:

 

 

3           数据库系统结构

考察数据库系统的结构可以有多种不同的层次或不同的角度。

从数据库管理系统角度看,数据库系统通常采用三级模式结构;这是数据库关系系统内部的系统结构。

从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户/服务器、浏览器/应用服务器/数据库服务器多层结构等。

 

现在从数据库管理系统的角度,讲解数据库系统的三级模式结构。

a)         数据库系统的三级模式

数据库模式(Schema):数据库中全体数据的结构和特征的描述称为数据库模式

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

 

  • 外模式(Sub-Schema)(用户模式)
    • 用户的数据视图
    • 是数据的局部逻辑结构,模式的子集
  • 模式(Schema)(概念模式)
    • 所有用户的公共数据视图
    • 是数据库中全体数据的全局逻辑结构和特性的描述
  • 内模式(Storage Schema)(存贮模式)
    • 又称存储模式
    • 是数据的物理结构及存储方式

b)         数据库的二级映像功能与数据独立

数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在系统内部实现这3个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:

  • 外模式/模式映象

定义某一个外模式和模式之间的对应关系,映象定义通常包含在各外模式中。当模式改变时,修改外模式/模式映象,使外模式保持不变,从而应用程序可以保持不变,称为数据的逻辑独立性

例如:增加新的数据表;将一个数据表分解为两个表;增加新属性,改变属性的类型、名称。

  • 模式/内模式映像

定义数据逻辑结构与存储结构之间的对应关系。存储结构改变时,修改模式/内模式映象,使模式保持不变,从而应用程序可以保持不变,称为数据的物理独立性

例如:

1)改变存储设备或引进新的存储设备; 

2)改变数据的存储位置;   

3)改变存储记录的体积;

4)改变数据组织方式;

4           数据库系统的组成

数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理人员构成。

a)         硬件平台及数据库

数据库系统对硬件资源的要求:足够大的内存;足够大的外存;较高的通道能力,提高数据传送率。

b)         软件

DBMS、操作系统、与数据库接口的高级语言及其编译系统、以DBMS为核心的应用开发工具、为特定应用环境开发的数据库应用系统

c)         人员

数据库管理员

  • 决定数据库中的信息内容和结构
  • 决定数据库的存储结构和存取策略
  • 定义数据的安全性要求和完整性约束条件
  • 监控数据库的使用和运行,周期性转储数据库,故障恢复
  • 数据库的改进和重组

系统分析员

  • 负责应用系统的需求分析和规范说明
  • 与用户及DBA协商,确定系统的硬软件配置
  • 参与数据库系统的概要设计

数据库设计人员

  • 参加用户需求调查和系统分析
  • 确定数据库中的数据
  • 设计数据库各级模式

应用程序员

  • 设计和编写应用系统的程序模块
  • 进行调试和安装

最终用户

  • 偶然用户

企业或组织机构的高中级管理人员

  • 简单用户

银行的职员、机票预定人员、旅馆总台服务员

  • 复杂用户

工程师、科学家、经济学家、科技工作者等

直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API编制自己的应用程序

 

posted @ 2017-08-03 22:14  silvan_happy  阅读(358)  评论(0编辑  收藏  举报