1、数据库原理与应用教程(第数据库原理与应用教程(第3 3版)版)国家“十一五”规划教材第第1 1章章 数据库概述数据库概述概述概述 随着信息管理水平的不断提高,随着信息管理水平的不断提高,应用应用范围的日益扩大,信息已成为企业的范围的日益扩大,信息已成为企业的重要财富和资源重要财富和资源。作为管理信息的数据库技术也得到了作为管理信息的数据库技术也得到了很大的发展,其应用领域也越来越广很大的发展,其应用领域也越来越广泛。泛。飞机、火车订票系统、商场的进货与飞机、火车订票系统、商场的进货与销售、图书馆对书籍及借阅的管理等销售、图书馆对书籍及借阅的管理等。数据库技术 数据库是数据管理的最新技术数据库是
2、数据管理的最新技术 主要研究内容是如何对数据进主要研究内容是如何对数据进行科学的管理,以提供可共享、行科学的管理,以提供可共享、安全、可靠的数据。安全、可靠的数据。数据库技术一般包含数据库技术一般包含数据管理数据管理和和数据处理数据处理两部分两部分。数据库系统数据库系统 本质上是一个用计算机存储数据的系本质上是一个用计算机存储数据的系统统 可以可以将将数据库看数据库看成成是一个电子文件柜是一个电子文件柜 除除保存数据保存数据外外,还提供对数据进行各,还提供对数据进行各种管理和处理种管理和处理:安全管理安全管理 数据共享数据共享 数据查询数据查询一些基本概念一些基本概念 数据是数据库中存储的基本
3、对象。数据是数据库中存储的基本对象。文本、图形、图像、音频、视频、文本、图形、图像、音频、视频、商品销售情况等都是数据商品销售情况等都是数据。可以将数据定义为:可以将数据定义为:数据是描述事数据是描述事物的符号记录物的符号记录。数据有多种表现形式,可以经过数数据有多种表现形式,可以经过数字化后保存在计算机中。字化后保存在计算机中。数据数据 数据需要经过解释才能明确其表达数据需要经过解释才能明确其表达的含义的含义。2020 当解释其代表人的年龄时就是当解释其代表人的年龄时就是2020岁岁。当解释其代表商品价格时,就是当解释其代表商品价格时,就是2020元元。数据和解释不可分。数据和解释不可分。数
4、据的解释是对数据的说明数据的解释是对数据的说明。数据的含义称为数据的语义。数据的含义称为数据的语义。事物的描述事物的描述 在日常生活中,一般直接用自在日常生活中,一般直接用自然语言来描述事物然语言来描述事物。如描述一门课程的信息:如描述一门课程的信息:数据库系统基础课程,数据库系统基础课程,4 4个学分,个学分,第第5 5学期开设。学期开设。但在计算机中经常按如下形式但在计算机中经常按如下形式描述:描述:(数据库系统基础,(数据库系统基础,4 4,5 5)记录2023年4月27日2时54分8数据库(数据库(DatabaseDatabase)是存放数据的仓库。是存放数据的仓库。永久永久存储存储在
5、计算机存储设备上。在计算机存储设备上。按一定的格式存储。按一定的格式存储。是是有组织有组织的、的、可共享可共享的大量数据的集的大量数据的集合。合。数据库管理系统数据库管理系统 Database Management SystemDatabase Management System DBMS DBMS 是一个专门用于实现对数据进行管是一个专门用于实现对数据进行管理和维护的理和维护的系统软件系统软件。操作系统2023年4月27日2时54分10数据库管理系统主要功能数据库管理系统主要功能 数据库的建立与维护数据库的建立与维护 数据定义数据定义 数据组织、存储和管理数据组织、存储和管理 数据操作数据操
6、作 事务的管理和运行事务的管理和运行2023年4月27日2时54分11数据库系统数据库系统 一般由数据库、数据库管理系统一般由数据库、数据库管理系统(及相关实用工具)、应用程序、(及相关实用工具)、应用程序、数据库管理员组成。数据库管理员组成。2023年4月27日2时54分DBMS实用工具应用程序应用程序DBA121.3 1.3 数据管理技术的发展数据管理技术的发展文件管理方式文件管理方式 数据库管理数据库管理2023年4月27日2时54分13文件管理操作模式文件管理操作模式2023年4月27日2时54分14文件管理示例文件管理示例2023年4月27日2时54分应用程序应用程序A2应用程序应用
7、程序A1学生基本信息管理学生基本信息管理学生选课管理学生选课管理学生信息学生信息文件文件F1F1课程信息课程信息文件文件F2F2学生选课信学生选课信息文件息文件F3F3(学号、学号、姓名姓名、性别、出生日期、性别、出生日期、联系电话、联系电话、所在系、专业所在系、专业、班号、班号)(学号、学号、姓名、所在系、专业姓名、所在系、专业、课程号、课程名、修课类型、修课程号、课程名、修课类型、修课时间、考试成绩课时间、考试成绩)15文件管理系统的缺点文件管理系统的缺点 编写应用程序不方便编写应用程序不方便 数据冗余不可避免数据冗余不可避免 应用程序依赖性应用程序依赖性 不支持对文件的并发访问不支持对文
8、件的并发访问 数据间联系弱数据间联系弱 难以按用户视图表示数据难以按用户视图表示数据 无安全控制功能无安全控制功能编写应用程序不方便编写应用程序不方便 应用程序编写者必须清楚地了解所应用程序编写者必须清楚地了解所用文件的逻辑及物理结构,用文件的逻辑及物理结构,如文件中包含多少个字段,如文件中包含多少个字段,每个字段的数据类型,每个字段的数据类型,采用何种逻辑结构和物理存储结构。采用何种逻辑结构和物理存储结构。对文件的查询、修改等处理都必须对文件的查询、修改等处理都必须在应用程序中编程实现。在应用程序中编程实现。2023年4月27日2时54分17数据冗余不可避免数据冗余不可避免 数据冗余所带来的
9、问题不仅仅是存储数据冗余所带来的问题不仅仅是存储空间的浪费,更为严重的是造成了数空间的浪费,更为严重的是造成了数据的据的不一致不一致(inconsistencyinconsistency)。)。如:如:某学生所学的专业发生了变化,某学生所学的专业发生了变化,如果只在如果只在F1F1文件中进行修改,而忘记文件中进行修改,而忘记在在F3F3中应做同样的修改。中应做同样的修改。则会则会造成同造成同一名学生在一名学生在两个两个文件中的文件中的“专业专业”不不一样一样。2023年4月27日2时54分18应用程序依赖性应用程序依赖性 应用程序对数据的操作依赖于存储应用程序对数据的操作依赖于存储数据的文件的
10、结构。数据的文件的结构。文件和记录的结构通常是应用程序文件和记录的结构通常是应用程序代码的一部分,如代码的一部分,如C C程序的程序的structstruct。文件结构的每一次修改,都将导致文件结构的每一次修改,都将导致应用程序的修改。应用程序的修改。2023年4月27日2时54分19不支持对文件的并发访问不支持对文件的并发访问 文件最初是作为程序的附属数据出文件最初是作为程序的附属数据出现的,它一般不支持多个应用程序现的,它一般不支持多个应用程序同时对同一个文件进行访问同时对同一个文件进行访问。例如:例如:某用户打开了一个某用户打开了一个ExcelExcel文件,文件,当第二个用户在第一个用
11、户未关闭当第二个用户在第一个用户未关闭此文件前打开此文件时,只能以只此文件前打开此文件时,只能以只读方式打开此文件,而不能对此文读方式打开此文件,而不能对此文件进行修改件进行修改。2023年4月27日2时54分20数据间联系弱数据间联系弱 文件与文件之间是彼此独立、毫不相干的,文件与文件之间是彼此独立、毫不相干的,文件之间的联系必须通过程序来实现。文件之间的联系必须通过程序来实现。比如比如F3F3文件中的学号、姓名等学生的基本文件中的学号、姓名等学生的基本信息必须是信息必须是F1F1文件中已存在的文件中已存在的(即选课学即选课学生必须是已存在的学生生必须是已存在的学生)数据之间的联系是实际应用
12、当中所要求,数据之间的联系是实际应用当中所要求,但文件本身不具备自动实现这些联系的功但文件本身不具备自动实现这些联系的功能能。2023年4月27日2时54分21难以满足不同对数据用户的需求难以满足不同对数据用户的需求 不同的用户关注的数据往往不同。不同的用户关注的数据往往不同。例如,对于学生基本信息,例如,对于学生基本信息,分配学生宿舍的部门可能只关心学生分配学生宿舍的部门可能只关心学生的学号、姓名、性别和班号的学号、姓名、性别和班号。教务部门可能关心的是学号、姓名、教务部门可能关心的是学号、姓名、所在系、专业和班号。所在系、专业和班号。需要为每个用户建立一个文件,这势需要为每个用户建立一个文
13、件,这势必造成很多的数据冗余必造成很多的数据冗余。2023年4月27日2时54分22无安全控制功能无安全控制功能 在文件管理方式中,很难控制某个在文件管理方式中,很难控制某个人对文件能够进行的操作人对文件能够进行的操作。如如:只允许某个人查询和修改数据,但不只允许某个人查询和修改数据,但不能删除数据,能删除数据,或者对文件中的某个或者某些字段不或者对文件中的某个或者某些字段不能修改等。能修改等。在实际应用中,数据的安全性是非在实际应用中,数据的安全性是非常重要且不可忽视的常重要且不可忽视的。2023年4月27日2时54分23数据库管理操作模式数据库管理操作模式2023年4月27日2时54分数据
14、库管理系统数据库管理系统24数据库管理示例数据库管理示例2023年4月27日2时54分各学院各学院程序程序学生基本信息管理学生基本信息管理学生有学生有关的数关的数据库据库教务部门教务部门程序程序学生选课管理学生选课管理数据库数据库管理系统管理系统25数据库管理的优点数据库管理的优点 相互关联的数据的集合相互关联的数据的集合 较少的数据冗余较少的数据冗余 程序与数据相互独立程序与数据相互独立 保证数据的安全、可靠保证数据的安全、可靠 最大限度地保证数据的正确性最大限度地保证数据的正确性 数据可以并发使用并能保证一致性数据可以并发使用并能保证一致性2023年4月27日2时54分26相互关联的数据的
15、集合相互关联的数据的集合 数据库中的数据不是孤立的,数据与数数据库中的数据不是孤立的,数据与数据之间是相互关联的。也就是说,在数据之间是相互关联的。也就是说,在数据库中不仅要能够表示数据本身,还要据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的联系。能够表示数据与数据之间的联系。2023年4月27日2时54分27较少的数据冗余较少的数据冗余 数据库中的数据被统一管理,合理组数据库中的数据被统一管理,合理组织,任何对数据的操作都由数据库管织,任何对数据的操作都由数据库管理系统理系统DBMSDBMS完成。完成。DBMS2023年4月27日2时54分28数据具有较高的独立性数据具有较高的独
16、立性 数据独立性是指数据的组织和存储方数据独立性是指数据的组织和存储方法与应用程序互不依赖、彼此独立的法与应用程序互不依赖、彼此独立的特性。特性。2023年4月27日2时54分29保证数据的安全、可靠保证数据的安全、可靠 数据库技术数据库技术要能够保证要能够保证数据库中的数据库中的数据是安全、数据是安全、可靠的。可靠的。有效地防止有效地防止数据库中的数数据库中的数据被非法使用据被非法使用或非法修改或非法修改 2023年4月27日2时54分30最大限度地保证数据的正确性最大限度地保证数据的正确性 保证数据正保证数据正确的特性在确的特性在数据库中称数据库中称之为之为数据完数据完整性整性。200岁岁
17、2023年4月27日2时54分31数据可以并发使用数据可以并发使用并能保证数据的一致性并能保证数据的一致性 在多个用户同时使用数据库时,能够在多个用户同时使用数据库时,能够保证不产生冲突和矛盾,保证数据保证不产生冲突和矛盾,保证数据的一致性和正确性。的一致性和正确性。2023年4月27日2时54分32并发操作示例并发操作示例10张票张票订订8张票:张票:10-8=2订订4张票:张票:10-6=44210102023年4月27日2时54分331.3 1.3 数据独立性数据独立性 指应用程序不会因数据的物理表示指应用程序不会因数据的物理表示方式和访问技术的改变而改变,方式和访问技术的改变而改变,即
18、应用程序不依赖于任何特定的物即应用程序不依赖于任何特定的物理表示方式和访问技术,理表示方式和访问技术,包含两个方面:包含两个方面:逻辑独立性逻辑独立性 物理独立性物理独立性2023年4月27日2时54分34物理独立性物理独立性 指当数据的存储位置或存储结构发生指当数据的存储位置或存储结构发生变化时,不影响应用程序的特性变化时,不影响应用程序的特性。2023年4月27日2时54分应用程序D:xE:a学生数据库学生数据库 D:xF:b学生数据库学生数据库 35逻辑独立性逻辑独立性 指当表达现实世界的信息内容发生变指当表达现实世界的信息内容发生变化时,化时,如:如:增加增加信息信息 删除无用删除无用
19、信息信息等等 不影响应用程序的特性不影响应用程序的特性。2023年4月27日2时54分应用程序学生数据库学生数据库 学生数据库学生数据库 36示例示例2023年4月27日2时54分学号学号姓名姓名性别性别所在系所在系S01张三男计算机S02李四女计算机S03王五女信息S04陈六男信息学号学号姓名姓名性别性别 所在系所在系专业专业S01张三男计算机软件S02李四女计算机应用S03王五女信息管理S04陈六男信息管理应用程序学号学号 姓名姓名 性别性别S01S01张三张三 男男S02S02李四李四 女女S03S03王五王五 女女S04S04陈六陈六 男男37非独立性非独立性 在使用文件管理数据时,应
20、用程序常在使用文件管理数据时,应用程序常常是数据依赖的,常是数据依赖的,也就是说数据的物理表示方式和有关也就是说数据的物理表示方式和有关的存取技术都要在应用程序中考虑,的存取技术都要在应用程序中考虑,而且,有关物理表示的知识和访问技而且,有关物理表示的知识和访问技术直接体现在应用程序的代码中术直接体现在应用程序的代码中。2023年4月27日2时54分38非独立性示例非独立性示例 OpenfileOpenfile(“D:datafile1”D:datafile1”)2023年4月27日2时54分file1D:datafile1file1F:datafile1oOpenfileOpenfile(“
21、F F:datafile1”:datafile1”)391.4 1.4 数据库系统的组成数据库系统的组成 应用程序应用程序1应用程序应用程序2应用程序应用程序n数据库管理系数据库管理系统(统(DBMS)数据库数据库系统管理员系统管理员核心核心数据库系统的组成数据库系统的组成 数据库数据库是数据的汇集,它以一定的组织形是数据的汇集,它以一定的组织形式保存在存储介质上式保存在存储介质上 数据库管理系统数据库管理系统是管理数据库的系统软件,是管理数据库的系统软件,它可以实现数据库系统的各种功能它可以实现数据库系统的各种功能 应用程序应用程序专指以数据库数据为基础的程序专指以数据库数据为基础的程序 数
22、据库管理员数据库管理员负责整个数据库系统的正常负责整个数据库系统的正常运行。运行。2023年4月27日2时54分41硬件硬件由于数据库中的数据量一般都比较大,而且由于数据库中的数据量一般都比较大,而且D DBMSBMS自身的规模也自身的规模也比较比较大(大(如:如:SQL Server 2SQL Server 2005005的完整安装大的完整安装大约约需需700MB700MB以上的硬盘空间以上的硬盘空间和至少和至少512MB512MB以上的内存),以上的内存),必须要有足够大的必须要有足够大的内存内存,来存放操作系统、,来存放操作系统、数据库管理系统、数据缓冲区和应用程序,数据库管理系统、数据
23、缓冲区和应用程序,而且还要有足够大的硬盘空间来存放数据库而且还要有足够大的硬盘空间来存放数据库数据,最好还有足够的存放备份数据的磁带、数据,最好还有足够的存放备份数据的磁带、磁盘或光盘磁盘或光盘。2023年4月27日2时54分42软件软件 数据库管理系统数据库管理系统。是整个数据库系统的核。是整个数据库系统的核心,是建立、使用和维护数据库的系统软心,是建立、使用和维护数据库的系统软件。件。支持数据库管理系统运行的支持数据库管理系统运行的操作系统操作系统。具有数据库访问接口的具有数据库访问接口的高级语言高级语言及其及其编程编程环境环境,以便于开发应用程序,以便于开发应用程序。实用工具实用工具。一般是数据库厂商提供的随数一般是数据库厂商提供的随数据库管理系统软件一起发行据库管理系统软件一起发行。2023年4月27日2时54分43人员人员 数据库管理员数据库管理员 系统分析人员系统分析人员 数据库设计人员数据库设计人员 应用程序编程人员应用程序编程人员 最终用户最终用户2023年4月27日2时54分44