概念1:数据(Data)
概念:是描述事物的符号记录。
要点备注:数据与数据语义是密不可分的。数据是信息的载体,信息是数据的内涵。
闲言碎语:在现实生活中,数据无处不在。
概念2:数据库(Database,简称:DB)
概念:长期存储在计算机中的有组织、可共享的大量数据的集合。
要点备注:数据库是依附于计算机而存在的,它集合(存储)了大量的数据。
闲言碎语:数据库可以形象地理解为现实生活中一个数据有序存放的仓库。
概念3:数据管理
概念:是指数据的收集、整理、组织、存储、维护、检索、统计及传送等操作过程。
闲言碎语:数据仅仅被存储下来是不够的,必须要能够对数据进行相应的操纵和管理,从而使其产生价值。
概念4:数据库管理系统(Database Management System,简称:DBMS)
概念:一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。
要点备注:数据库管理系统是基于数据库之上,对其进行管理的一种软件;即数据库是数据库管理系统的作用目标。一般数据库管理系统都含有数据库。
闲言碎语:业界流行的关系数据库管理系统典型的有:SQLServer、Mysql、Oracle、Sysbase等。
概念5:数据库系统(Database System,简称:DBS)
概念:数据库系统是基于数据库的计算机应用系统,一般包括数据库、数据库管理系统、应用程序和用户4个部分。
要点备注:数据库的存在一方面是为了存储数据,另一方面,也更为重要的是面向应用,即根据用户需求,在数据库及数据库管理系统的支撑之下构建起来的应用程序。因此,数据库系统是一个更为宽泛的概念,包含了数据库、数据库管理系统、在此基础上构建的各种应用,以及用户。
本部分要点小结
要点1:数据库、数据库管理系统、数据库系统三者之间的联系。
数据库完成了对数据的存储;数据库管理系统负责对数据库进行管理和控制;数据库系统包含了数据库和数据库管理系统。
阶段1:人工管理阶段(50年代)
特点:
1、数据不独立保存,与程序混合;
2、数据的物理存储会影响程序;
3、数据面向应用,不能共享。
闲言碎语:在早期的计算机程序中,程序和数据混合在一起存储在穿孔纸带上的。
阶段2:文件管理阶段(60年代)
特点:
1、数据以文件的形式长期保存;
2、数据的物理结构和逻辑结构有了区别;
数据的物理结构是指数据在物理介质上的存储方式。比如数据存储在计算机某个磁盘的某个位置。数据的逻辑结构是指数据间的逻辑关系。比如某个数据是由哪些数据项构成;这个数据和其它数据之间又有何联系等等。
3、程序与数据之间有了一定的独立性。
阶段3:数据库系统阶段(60年代后期至今)
特点:
1、数据结构化:数据库可以存储构成数据的数据项及其联系,以及该数据与其它数据之间的联系。
2、高共享、低冗余;
共享是指数据可以被多个用户、多个应用所覆盖式地使用。
冗余是指数据库中存储的重复数据。冗余高则重复的数据较多,冗余低则重复的数据较少。一般来讲,数据库应该以低冗余作为目标,但冗余是不可能完全避免的;完全避免冗余会增加数据操作的复杂性。
3、有较高的独立性:具有较高的逻辑独立性和物理独立性。
4、提供了用户接口。
数据库的体系结构可以概括为“三级结构、两级映射”。
三级结构
模式(概念模式):描述了数据库整体的逻辑结构和特征。
外模式(子模式):通常是模式的一个子集,描述了数据库用户看到和使用的局部数据的逻辑结构和特征。
内模式(存储模式):描述数据存储在物理介质上的方式。
白话模式、外模式和内模式:
网络购物是我们现在的一种生活方式,每个人都有网络购物体验。任何一家网络购物网站,比如某宝、某东都提供了丰富的产品供用户选择。为了便于用户快速搜索目标产品,提升用户的购物体验,以及更好地管理种类繁多的商品,它们都按照一定的规则对众多的商品进行了分类,并对每一种商品都进行了详细的描述(比如商品名称、图片、生产厂家、价格、生产日期、特点、性能参数等等,甚至还包括与其它产品的对比或和关系)。这些在页面中呈现出来的商品在我们的眼中就是一堆数据,而网站对自己提供的全部数据(商品)进行了详细的描述,并描述除出了每一种商品与其它商品的关系,以及每一个商品种类与其它种类之间的关系。这就是所谓的模式:从整体上对数据及数据之间的联系进行了描述。
但是这么多商品却一定不是我们都想要的。(虽然你可能真的想全部都要,但限于口袋里的钞票,你也会阻止自己有这种想法。)更为现实的情况是,当你登陆某一个购物网站时,你只是想从中找到你所需要的一种或几种商品,查看它们的信息、特点和价格,了解它们和其它相关商品的关系。所以你可能会点击网站导航条上的某类商品,从而去进行搜索。其实你对这个网站的全部商品,或大部分商品都是一无所知,或不感兴趣的;你只关心你需要的东西。大家请注意,现在你所希望得到的其实不就是所有商品的一个子集吗?或者说不就是模式的一个子集吗?这种根据用户的需求从模式中抽取出来的一个子集就被称作子模式。所以你大概可以了解到模式只有一种,而子模式是千变万化的,因为用户的需求各不相同。
当你大概了解了模式和子模式的概念以后,让我们来思考另一个问题:那就是网页中所描述的这些商品到底是存放在什么地方的?大家都知道,网页中的商品基本都是实实在在存在的东西,需要地方来进行存放。比如电冰箱存在A教,电视机存在B教,空调存在C教,啤酒和炸鸡在天府广场,等等。当你在网上选购了空调的时候,物流会将空调从C教运输到你要求交货的地方。所以不知道你看出来没有,商品是需要安排实际的地方来进行存放的,对比地讲,数据是需要在物理介质(比如磁盘)中进行存储的。我们需要安排数据在物理介质中的存储方式,那么这就是所谓的内模式。因为不管你怎么安排,每一个东西都只能存放在一个地方,所以内模式是惟一的。
两级映射
模式/外模式:
外模式是根据用户需求从模式中抽取出来的一个子集。本级映射确保了用户的应用程序与数据库逻辑结构之间是相互独立的,即保证了逻辑独立性。
白话逻辑独立性:
根据前面的白话,用户只关心自己所需的商品的相关信息,并不了解,也并不关心网站所有商品的相关信息(有谁能告诉我某宝一共在售多少种商品?有多少个类型?每一种商品的具体信息?诚如马哥也不一定讲得出来吧?)。用户会把这些自己关心的商品加入购物车,或进行收藏。当有一天网站对所有商品的信息进行了修改或调整的时候,对于用户来讲是没有影响的,你只需打开自己的购物车或收藏夹就可以再次看到这些自己关心的商品的信息,这就是所谓的逻辑独立性,即数据库模式(全局逻辑结构)的变化对用户是没有影响的。而这个逻辑独立性是由“模式/外模式”这一级映射来保证的,它负责在模式发生改变时,面向用户的外模式不发生变化。
模式/内模式:
内模式是模式的物理实现,而模式是物理模式的逻辑表示。本级映射使得用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的,即保证了物理独立性。
白话物理独立性:
难道用户关心自己在网上所购买的衬衣原来被存放在哪个地方吗?它是否曾经从一个仓库被移动到另一个仓库呢?不,没有哪个用户会关心这些。用户关心的是自己收到的衬衣是否型号相符?是否有破损?也就是说网页中描述的商品到底存放在什么地方对用户来讲是不重要的,存储地点的变化对用户也没有什么影响,这就是物理独立性,即数据库内模式的变化对用户是没有影响的。而这个物理独立性是由“模式/内模式”这一级映射来保证的,它负责在内模式发生改变时,模式不发生变化,当然面向用户的外模式也就不可能发生变化。