数据库原理及应用 引言(三)(四)(五)

Levels of Abstraction(数据的抽象级别)

■Many views,single conceptual (logical) schema and physical schema.

   ►Views describe how users see the data(视图或外模式或子模式)

外模式是最终用户看到的数据库的部分。我们前面说的模式和内模式是一一对应的,在模式中存在一张表,在内模式中就必然存在一个与之对应的存储结构。但模式和外模式则并非一一对应,用户是想开发应用程序,Ta并不需要看到数据库的全貌,我们就可以针对具体的用户,根据其需求,提供给Ta不同的视图。

   ►Conceptual schema defines logical structure(概念模式或逻辑模式或模式)

以关系型数据库为例,conceptual schema 即模式,就描述了这个关系型数据库中有多少张表,每张表的结构,每张表里面属性的类型等等这些逻辑结构。

    ►Physical schema describes the files and indexes used(物理模式或者存储模式或内模式)

Physical schema,我们常称为内模式,描述了数据在磁盘上是怎么存储的。依旧以关系型数据库为例,其中的表是逻辑概念,这些表是怎么存的,比如学生信息表是用堆文件来存的,课程信息表是用Hash文件来存的,这些就是Physical schema.

   ●Schema are defined using DDL;data is modified/queried using DML

数据库的三级模式图

Example:University Database

■Conceptual schema:

   ►Students(sid:string ,name:string,login:string,age:integer,gpa:real)

   ►Course(cid:string,cname:string,credits:integer)

   ►Enrolled(sid:string,cid:string,grade:integer)

数据库中有三张表,学生信息表由学号(字符型)、姓名(字符型)、注册信息(字符型)、年龄(整型)、绩点(实数型),这就是学生这张表的逻辑结构,课程信息表同理,enrolled这张表则表示了学生和课程之间的选课关系。这三张表就构成了高校数据库的模式。

■Physical schema:

   ►Relations stored as unordered files

   ►Index on first column of Students

内模式即这三张表在磁盘上是怎么存的。这三张表以堆文件的形式存储,并且在学生信息表的学号属性上加了索引,这就描述了高校数据库的内模式。

■External Schema(View):

   ►Course_info(cid:string,enrollment:integer)

假如说用户是一个需要统计课程选课情况的工作人员,但是出于隐私等等方面的考虑,数据库管理员不希望这个用户看到学生选课的具体信息,那么数据库管理员就定义一个视图course_info提供给用户,Course_info里面有课程号和选课人数。有的同学就问了,数据库里面只存储了三张表,里面没有选课人数这个信息啊。的确,但是我们把enrolled这张表按课程编号排序,选课人数信息就可以很容易地计算出来,也就是说,视图中包含的信息不一定就是数据库中直接包含的信息,也可以是通过映射得到的信息。然后我们就可以发现,在数据库的三级模式中,模式和内模式存在存储方式的映射,在模式和视图之间存在可计算的映射,三级模式之间存在两层映射。这就引出了我们下面的问题:

Data Independence*(数据独立性)

■Applications insulated from how data is structured and stored .

数据独立性就是指基于数据库开发的应用程序和数据的具体结构和数据的存储方式之间是隔离的。即数据的逻辑结构和物理存储改变,应用程序可以不改变。原因就是因为数据库的三级数据模式和两层映射,这两层映射就带来了应用程序相对数据的逻辑结构和物理存储的两级数据独立性。

■Logical data independence:Protection from changes in logical structure of data.

数据的逻辑独立性是指应用程序和数据的逻辑结构相互独立。因为数据的模式和外模式之间存在一层映射,而用户的应用程序是基于视图开发的,数据的逻辑结构改变了,通过改变逻辑结构和视图之间的映射关系,使视图保持不变,用户的应用程序就可以不受影响。比如上面的高校数据库,我们在enrolled这张表里面增加一个属性,我们改变逻辑结构和视图course_info之间的映射关系,使视图不变,应用程序就不会改变。当然,这是有一定限制的,如果把数据库改的视图根本都算不出来了,那当然会受影响。

■Physical data independence:Protection from changes in physical structure of data.

数据的物理独立性是指用户的应用程序和数据的物理存储相互独立。上面的高校数据库,我们以堆文件存储,在学生信息表的学号属性上建立了索引,但是在实际应用过程中发现,我们经常要根据enrolled这张表里面的sid和cid两个属性进行查询,因此我们决定在enrolled这张表的sid和cid两个属性上建立索引,即改变了数据的物理存储结构。但是数据的逻辑结构不会因为数据的物理存储改变而改变,数据的逻辑结构都没有改变,当然应用程序更不会受影响。

●One of the most important benefits of using a DBMS!

DBMS支持数据的三级模式和两层映射从而支持数据的独立性。

The History of Database Technology and its Classification

(1)According to the development of data model

■No management (before 1960'):Scientific computing

在1960年之前,计算机的主要功能是做科学计算,没有数据永久保存的需求,因此是无管理阶段。

■File system:Simple data management

六十年代以后,出现了计算机的非数值应用,数据需要长期保存/永久保存,后来就出现了操作系统,操作系统里面就提供了文件系统,文件系统可以用来做简单的数据管理。

■Demand of data management growing continuously,DBMS emerged.

   ►1964,the first DBMS(American):IDS,network(第一个数据库管理系统IDS,采用网状数据模型)

   ►1969,the first commerical DBMS of IBM,hierarchical(第一个商用DBMS,采用层次数据模型)

   ►1970,E.F.Codd(IBM)bring forward relational data model

关系型数据模型的提出具有划时代的意义。关系数据模型非常简单,只有一种结构,就是表,现实世界中的实体和实体之间的联系全部用表来表示,数据库里面的数据也全部存储成表,用户对数据库查询的结果还是表,这就形成了一个封闭的空间,我们就可以在这个封闭的空间里面定义一个代数系统,这个代数系统就是关系代数。有了关系代数以后,我们就可以用数学的方法来研究数据库的问题,使数据库从单纯的工程技术上升到了可以用理论研究的领域。

   ►Other data model:Object Oriented ,dedutive ,ER,...

关系数据模型也有一些不足,人们后来陆续提出了其他的数据模型试图取代关系数据模型,但是一直都没有成功。

(2)According to the development of DBMS architectures

■Centralized database systems

集中式的结构,早期网络并未出现的时候,都是只有一台机器,一台机器上带有十几二十甚至更多的终端,人们通过远程终端访问的事实上是一台机器,数据库也都是在这一台机器上,称为集中式。

■Parallel database systems

后来为了提高计算机的运算能力,出现了并行计算机,仍然是一台机器,但这台机器上有多个CPU,每个CPU都有自己的内存甚至硬盘,相应的DBMS为了充分利用并行处理能力,在底层存储和查询优化等算法上做了一些改进,但是从数据存储上考虑,此时数据仍然是集中存储的。

■Distributed database systems (and Federated database systems)

随着局域网的发展,出现了分布式计算机操作系统。有的规模较大的问题,单台计算机无法解决,我们就把多台计算机连成一个局域网,用分布式系统统一管理这些计算机从而解决问题。类似,分布式数据库系统就解决了数据规模过大,单台计算机无法承担其存储和查询等功能,我们就把这个逻辑上完整的数据库分成若干块,分摊到连成局域网的若干台计算机上,即分布式数据库系统。联邦式数据库研究的也是分布式环境下的数据存储等问题,二者差别在于,一般的分布式数据库尽管在物理存储上被拆分成了多个数据库,但给用户看到的仍然是逻辑上完整的一个数据库;而联邦式数据库是一种松散耦合,物理上是多个数据库,用户看到的也是多个数据库。

■Mobile database systems

移动数据库系统是在无线通讯迅速发展的大环境下,研究怎样充分利用移动网络的通信能力,让用户在何时何地都可以访问数据库。像数据怎样在用户的移动设备上缓存,可以和数据库中的数据保持一致。

(3)According to the development of architectures of application systems based on databases

■Centralized structure:Host +Terminal

对应我们刚才说的集中式数据库,数据库、应用程序都跑在一台主机上。

■Distributed structure

对应上面说的分布式数据结构,需要强调的是联网的计算机没有主次之分,它们的地位是平等的。每台计算机都管理了 部分数据,但可能无法提供程序需要的所有数据,还要去其他计算机上找,所以说联网计算机之间的地位平等,无主次之分。

■Client/Server structure

Client/Server 即客户机服务器结构。咱们上面说的联网的机器之间没有主次之分,在这里就不同了,我们用计算能力较强的计算机作为服务器,上面只跑数据库,而其他的普通计算机作为客户机,跑应用程序,应用程序需要的数据向服务器要,这些计算机也就有了主次之分。

■Three tier/multi-tier structure

■Mobile computing

随着移动互联网的发展,移动计算随之出现,目的是让用户使用智能终端在任何时间任何地点都可以访问数据库。

■Grid computing/Cloud computing

网格计算和云计算都是分布式计算技术,都强调虚拟化。

grid是来自电力行业的一个词,在电并未普及的时期,人们想使用电就要自己把电线拉到自己家等等,但后来随着技术的发展,现在每家每户墙上都有一个插头,电插上就用,然后根据使用电量付钱即可,而不需要关心使用的电是哪家发电厂发的,哪家公司配送的等等问题,grid即电力配送的网络。网格计算的思想类似,它希望把全世界联网的计算机的计算资源整合起来形成一个巨大的虚拟计算机,按照其预期,未来可能每家每户墙上还会有一个计算力插头,手机或电脑一插就可以连接到其他的机器,你可以提交一个十分复杂的计算任务,很快就会反馈结果,你再付钱,而不需要考虑这个任务是哪台机器完成的。

云计算和网格计算类似,我们可以把互联网背后的计算资源看成云,它对我们来说本来也是云里雾里的。很多公司都推出了这样的产品,如IBM、亚马逊等等。我们举个例子,假如你是一位生物信息专业的研究生,你的导师要求你做一个实验,时间跨度大概是几个月,在此期间你需要管理大量的生物信息,你就需要一台性能较好的计算机和一个数据库管理系统,而你没有钱买这些设备。这时候你就可以想亚马逊提出申请:你需要一台2G双核CPU,8G内存,500G硬盘这样的服务器和一个怎么样的数据库管理系统。亚马逊收到后,把符合要求的服务器的访问链接和你要求的数据库管理系统的链接发给你,你通过链接可以使用这个服务器,不就和买一台这样的设备是一样的效果吗。实验完成之后,亚马逊再根据你的使用时间等因素收钱。但还存在一个问题,把这个计算资源还给亚马逊之后,实验的大量实验数据怎么办呢?你也没有那么大的地方可以存储这些数据,这时你可以另外申请它的存储资源,把数据存储在它那里,这个费用更便宜,一个月几美元,等一段时间之后, 你需要使用这些数据的时候,再访问即可。

(4)According to the expanding of application fields (数据库系统应用领域)

■OLTP(日常事物管理领域)

■Engineering Database(工程领域,工程数据库是根据它的应用领域命名的,我们可以用关系数据模型,也可以用网状数据模型等来管理这个数据库。)

■Deductive Database

■Multimedia Database(多媒体领域)

■Temporal Database(管理数据的时态信息)

■Spatial Database(管理数据的空间信息)

■Data Warehouse,OLAP,Data Mining

■Knowledge Management

■......

Database System

 ■Applications+DBMS+Database+DBA

■DBMS is the core of database system

   ►High level user interface

提供了高级的用户接口,比如我们将要学到的SQL语言,和人类使用的自然语言十分类似,非常高级,易于使用。

   ►Query processing and optimization(支持有效的查询处理和优化)

   ►Catalog management(支持有效的目录管理)

   ►Concurrency control and Recovery(支持并发控制和恢复机制)

   ►Integrity constraints checking(支持完整性约束、提供完整性约束检查,它可以根据用户给出的对数据的约束进行维护数据)

   ►Access control(完善的访问控制)

Life cycle of database systems(数据库系统的生命周期 )

■Database system planning

■Database designing

■Database establishing and loading

■Database running,managing and maintaining

■Database extending and restructuring(扩充和重构)

 

 

  

 

  

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值