项目一项目准备【教学目标】(1)了解公司管理数据库的相关数据。(2)了解数据管理技术的3个阶段。(3)了解数据库技术及其发展趋势。【能力目标】(1)理解数据库系统的组成。(2)了解数据管理技术的发展经历。(3)能分析数据库技术发展趋势。【学习导航】本项目主要为公司管理数据库系统开发作准备工作,通过引入公司管理数据库实例对数据库系统进行综述,主要介绍数据库系统、数据管理技术以及数据库技术的发展趋势。在图1-1中,可以看到本项目在公司管理数据库系统开发中的环节及位置。图1-1本项目在公司管理数据库系统开发中的环节及位置【工作任务】根据公司管理的工作流程,对公司管理数据库系统进行整体分析与规划。(1)公司管理数据库系统的整体规划及系统所具有的功能。(2)公司管理数据库系统各个模块的功能。公司管理数据库系统实例1.11.1.1公司管理数据库系统功能分析本书以公司管理数据库系统开发为任务主轴,按照数据库应用系统开发的流程讲解数据库的相关知识、数据库规划与设计的方法。通过综合实践与操作引导读者完成公司管理数据库系统的数据库设计。公司管理数据库系统应具有以下功能。(1)客户和产品之间进行产品订购;(2)增加、删除和修改所提供的产品;(3)客户增加、删除和修改所需要的产品;(4)公司交易员(雇员)可以利用客户提出的订货信息和产品信息提出交易建议;(5)分类统计已订购的产品信息。•1.1.2公司管理数据库各数据表数据•本书使用的companyinfo数据库(公司管理数据库)包含以下5个表。•●产品信息表product(产品ID,产品名,类别ID,单价,库存量)。•●订单信息表p_order(订单ID,产品ID,数量,雇员ID,客户ID,订货日期)。•●类别信息表category(类别ID,类别名,说明)。•●员工信息表employee(雇员ID,姓名,性别,出生年月,雇佣日期,特长,薪水)。•●客户信息表customer(客户ID,公司名称,联系人姓名,联系方式,地址,邮编)。1.2数据管理技术的发展从数据本身来讲,数据管理是指收集数据、组织数据、存储数据和维护数据等几个方面。随着计算机硬件技术和软件技术的发展,计算机数据管理技术也在不断改进,大致经历了3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。在讨论数据管理技术之前,先简单介绍一下数据和数据处理的概念。1.2.1数据处理的基本概念•1.数据(Data)•数据是对客观事物及其活动的抽象符号表示,是存储在某一种媒体上可以鉴别的符号资料。数据的形式可以是数字、文字、图形、图像、声音等,具体如学生档案记录和图书管理情况等。•例如,两名学生的考试成绩分别为85分和59分,这里的85和59就是数据。•2.信息(1nformation)•信息是指数据经过加工处理后所获取的有用知识,是以某种数据形式表现的。数据和信息是两个相互联系但又相互区别的概念,数据是信息的具体表现形式,信息是数据的有意义的表现。也有人说信息是事物及其属性标识的集合。•例如,某学生看到自己的考试成绩是85或59分,通过思考他认为成绩及格或不及格,这里及格或不及格就是通过对数据85或59进行处理获取的信息。•3.数据处理(DataProcessing)•数据处理是指对数据进行加工的过程,即将数据转换成信息的过程,是对各种数据进行收集、存储、加工和传播的一系列活动的总和。•例如,编写一个C语言程序,对所输入的学生成绩进行分析判断并输出是否及格。•C源程序如下。1.2.1数据处理的基本概念•main()•{•intchj;•scanf(%d,&chj);•if(chj=60)•printf(及格);•else•printf(不及格);•运行程序,当输入数据85或59时,通过if语句的判断处理将得到及格或不及格的信息。我们经常应用的Word文字处理、Excel表格处理和Photoshop图像处理等都是对各种数据进行收集、存储、加工的过程,即计算机数据处理。1.2.2人工管理阶段•2.数据不单独保存•由于应用程序与数据之间结合得非常紧密,每处理一批数据,都要特地为这批数据编制相应的应用程序。数据只为本程序所使用,无法被其他应用程序利用。因此,程序的数据均不能单独保存。•3.没有软件系统对数据进行管理•数据管理任务包括数据存储结构、存取方法、输入/输出方式等。这些完全由程序开发人员全面负责,没有专门的软件加以管理。一旦数据发生改变,就必须修改程序,这就给应用程序开发人员增加了很大的负担。•4.没有文件的概念•这个阶段只有程序的概念,没有文件的概念。数据的组织方式必须由程序员自行设计。1.2.2人工管理阶段图1-2人工管理阶段程序与数据之间的关系1.2.2人工管理阶段•图1-2人工管理阶段程序与数据之间的关系•20世纪50年代中期以前,计算机主要用于科学计算,数据量较少,一般不需要长期保存。硬件方面,外部存储器只有卡片、磁带和纸带,还没有磁盘等直接存取的存储设备;软件方面,没有专门管理数据的软件,数据处理方式基本是批处理。此阶段应用程序与数据之间的关系是一一对应的关系,如图1-2所示。•这一阶段数据管理的特点如下。•1.数据面向具体应用,不共享。•一组数据只能对应一组应用程序,如果数据的类型、格式或者数据的存取方法、输入/输出方式等改变了,程序必须做相应的修改。这使得数据不能共享,即使两个应用程序涉及某些相同的数据,也必须各自定义,无法互相利用。因此,程序与程序之间存在大量的冗余。1.2.3文件系统阶段•图1-3文件系统阶段程序与数据之间的关系•20世纪50年代后期至60年代中后期,计算机不仅用于科学计算,还用于信息管理。硬件方面,外存储器有了磁盘、磁鼓等直接存取的存储设备;软件方面,操作系统中已经有了专门管理外存的数据软件,一般称为文件系统。数据处理方式不仅有批处理,还有联机实时处理。此阶段应用程序与数据之间的关系如图1-3所示。•1.文件系统阶段数据管理的特点•(1)程序与数据分开存储,数据以“文件”形式可长期保存在外部存储器上,并可对文件进行多次查询、修改、插入和删除等操作。•(2)有专门的文件系统进行数据管理,程序和数据之间通过文件系统提供的存取方法进行转换。因此程序和数据之间具有一定的独立性,程序只需用文件名访问数据,不必关心数据的物理位置。数据的存取以记录为单位,并出现了多种文件组织形式,如索引文件、随机文件和直接存取文件等。•(3)数据不只对应某个应用程序,可以被重复使用。但程序还是基于特定的物理结构和存取方法,因此数据结构与程序之间的依赖关系仍然存在。1.2.3文件系统阶段图1-2人工管理阶段程序与数据之间的关系1.2.3文件系统阶段2.文件系统阶段存在的缺点虽然这一阶段较人工管理阶段有了很大的改进,但仍显露出很多缺点。(1)数据冗余度大。文件系统中数据文件结构的设计仍然对应于某个应用程序,也就是说,数据还是面向应用的。即使不同的应用程序所需要的数据有相同部分时,也必须建立各自的文件,而不能共享相同部分的数据。因此,出现大量重复数据,浪费了存储空间。(2)数据独立性差。文件系统中的数据文件是为某一特定要求设计的,数据与程序相互依赖。如果改变数据的逻辑结构或文件的组织方式,必须修改相应的应用程序;而应用程序的改变,比如说应用程序的编程语言改变了,也将影响数据文件结构的改变。因此,文件系统是一个不具有弹性的、无结构的数据集合,即文件之间是独立的,不能反映现实世界事物之间的内在联系。1.2.4数据库系统阶段•20世纪60年代后期以来,计算机用于管理的范围越来越广泛,数据量也急剧增加。硬件技术方面,开始出现了大容量、价格低廉的磁盘。软件技术方面,操作系统更加成熟,程序设计语言的功能更加强大。在数据处理方式上,联机实时处理要求更多,另外提出了分布式数据处理方式,用于解决多用户、多应用共享数据的要求。在这样的背景下,数据库技术应运而生,它主要以解决数据的独立性,实现数据的统一管理,达到数据共享的目的,也因此出现了统一管理数据的专门软件系统,即数据库管理系统(DatabaseManagementSystem,DBMS)。这一阶段应用程序与数据之间的关系如图1-4所示。1.2.4数据库系统阶段20世纪60年代后期以来,计算机用于管理的范围越来越广泛,数据量也急剧增加。硬件技术方面,开始出现了大容量、价格低廉的磁盘。软件技术方面,操作系统更加成熟,程序设计语言的功能更加强大。在数据处理方式上,联机实时处理要求更多,另外提出了分布式数据处理方式,用于解决多用户、多应用共享数据的要求。在这样的背景下,数据库技术应运而生,它主要以解决数据的独立性,实现数据的统一管理,达到数据共享的目的,也因此出现了统一管理数据的专门软件系统,即数据库管理系统(DatabaseManagementSystem,DBMS)。这一阶段应用程序与数据之间的关系如图1-4所示。1.2.4数据库系统阶段图1-4数据库系统阶段程序与数据之间的关系1.2.4数据库系统阶段•数据库系统阶段的数据管理具有以下特点。•1.数据结构化•数据结构化是数据库与文件系统的根本区别,是数据库系统的主要特征之一。传统文件的最简单形式是等长、同格式的记录集合。在文件系统中,相互独立的文件的记录内部•是有结构的,类似于属性之间的联系,而记录之间是没有结构的、孤立的。•例如,有3个文件,学生(学号,姓名,年龄,性别,出生日期,专业,住址)、课程(课日程号,课程名称,授课教师)、成绩(学号,课程号,成绩),要想查找某人选修的全部课程的课程名称和对应成绩,则必须编写一段比较复杂的程序来实现。•数据库系统采用数据模型来表示复杂的数据结构,数据模型不仅表示数据本身的联系,而且表示数据之间的联系。只要定义好数据模型,上述查找可以非常容易地联机实现。•2.数据的冗余度低、共享性高、易扩充•数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此一个数据可以被多个用户、多个应用共享使用。这样可以大大减少数据冗余,提高共享性,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。1.2.4数据库系统阶段•由于数据面向整个系统,是有结构的数据,不但可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大、易于扩充,可以适应各种用户的要求。•3.数据独立性高•数据独立性包括数据的物理独立性和数据的逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。也就是说,数据在磁盘上的数据库中怎样存储是由数据库管理系统负责管理的,应用程序不需要了解,应用程序要处理的只是数据的逻辑结构。这样当数据的物理结构改变时,可以不影响数据的逻辑结构和应用程序,这就保证了数据的物理独立性。•而数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变了,应用程序也可以保持不变。•4.数据由数据库管理系统统一管理和控制•数据库系统的共享是并发的(ConcuITency)共享,即多个用户可以同时存取数据库中的数据,这个阶段的程序和数据的联系通过数据库管理系统来实现。数据库管理系统必须为用户提供存储、检索、更新数据的手段;实现数据库的并发控制、实现数据库的恢复、保证数据完整性和保障数据安全性控制。•数据库(Database,DB)是存储在计算机存储设备上,结构化的相关数据集合。它不仅包括描述事物的数据本身,还包括相关事物之间的联系。•人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步加工处理,进一步抽取有用信息。在科学技术飞速发展的今天,人们的视野越来越广,数据量急剧增加。过去人们把数据存放在文件柜里,现在人们借助计算机和数据库技术科学地保存和管理大量复杂的数据,以便能方便而充分地利用这些宝贵的信息资源。例如,可以将单位全部员工的情况存入数据库进行管理,可以将图书馆的馆藏图书和图书借阅情况保存在数据库中,以便于对图书信息的管理。•所以,数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数