数据库概述

一、数据库系统概述    

   数据库管理系统(DBMS)由一个相互关联的数据的集合(数据库)和一组用以访问这些数据的程序组成。其目标是用于提供一个可以方便、有效地存取数据库信息(大量信息)的环境。
     数据库的管理一般涉及两个方面,一是涉及到信息存储结构的定义,二是涉及信息操作机制的提供。此外,数据库系统还必须提供所存储信息的安全性保证(事实上,一旦数据缺乏安全性,将是一个灾难)。那么数据的安全性一般亦涉及两个方面,一是当系统崩溃时,能够保证数据的完整性;二是若有人企图越权访问某些敏感数据,应当保障数据的私密性。

二、数据库系统与文件系统
      以下举例说明,众所周知,银行需要保存客户以及储蓄账号的信息,其中一种方法是将这些信息保存在操作系统文件中。由于客户有时需要对信息进行操作,因此,一些操作文件的应用程序应该被写入,例如:客户查询账户余额、转账等。需求是不断变化的,随着需求的不断增加,一些新的应用程序被加入到系统中。而这会导致越来越多的文件和应用程序会加入到系统中。上述就是典型的文件处理系统。
        可是,随着一些永久信息保存在不同的文件以及使用不同的应用程序来管理,一些弊端也随之显现。例如,“数据的冗余和不一致性”(由于文件和程序前后由不同的程序员来创建,因此,不同的文件可能采用不同格式,应用程序也可能采用不同的编程语言,此外,相同的信息也有可能出现在不同的文件中,这就会导致数据的冗余,亦可能导致数据的不一致性。);“数据访问困难”(当客户需要不同的信息时,要么获取所有信息并手工提取,或者编写程序,显然,两者都不具备灵活性,因为无论是银行还是客户,其需求总是处在不断变化之中的);“数据孤立”(由于数据分散在不同的文件中,而这些文件又可能以不同的格式呈现,因此采用编程方法提取所需信息是困难的);“完整性问题”(完整性指的是数据库中存储的数据必须满足一些特定的一致性约束,开发者显然是可以通过应用程序来增强系统中的一致性约束的,然而,当新的约束加入时,其实现难度将会增加,问题也会变得复杂);“原子性问题”(当系统发生故障时,数据库应该恢复到故障发生以前的状态,而这对于银行转账是至关重要的);“并发访问问题”(系统应该允许多个客户同时更新数据);“安全性问题”(数据库中的所有信息应是根据权限由不同的人来访问,然而应用程序总是即席加入到系统中来,因此这样的安全性难以实现)。

三、数据视图
       视图的作用是为了保护某些数据的安全性,即隐藏关于数据存储和维护的某些细节。一个可用的系统必须有效地检索数据。开发人员通过以下几个层次上的抽象(数据抽象)来对用户隐藏复杂性,以简化系统的用户界面,如图3-1所示:
                                  
    视图层:抽象的最高层次,只描述整个数据库的某个部分。
    逻辑层:描述数据库中存储什么数据以及这些数据之间存在的联系。逻辑层一般由管理员所使用。
    物理层:抽象的最低层次,描述数据实际上是怎样存储的。

四、实例和模式
       实例:特定时刻存储在数据库中的信息的集合叫做数据库的一个实例。
       模式:数据库的总体设计称为数据库模式。
     相对于程序设计语言,数据库模式对应于程序设计语言中的变量声明。每个变量在特定的时刻会有特定的值,程序中变量在某一时刻的值对应于一个数据库模式的实例。模式分为物理模式和逻辑模式。物理模式在物理层描述了数据库的设计,而逻辑模式则在逻辑层描述数据库的设计。数据库在视图层也可分为几种模式,有时称为子模式,它描述了数据库的不同视图。须知,应用程序一般不依赖于物理模式,这种情况被称为物理数据独立,因此即使物理模式改变了它们也无需重写。

五、数据模型
       数据库结构的基础是数据模型(一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合)。
                            
5.1 实体-联系模型
       实体-联系(E-R)数据模型基于对现实世界的这样一种认识:现实世界是由一组称为实体的基本对象以及这些对象间的联系构成。实体(一个人、一个银行账户...)是现实世界中可区别于其他对象的一个“事件”或一个“物体”组成。
        数据库中实体通过属性(椭圆表示)集合来描述。
        联系(棱形,代表实体集间的联系)是实体间的相互关系。
        同一类型的所有实体的集合称为实体集(通过矩形来表示),同一类型的所有联系的集合称为联系集。
        除了实体和联系外,E-R模型还描绘了数据库必须遵守的对其内容的某些约束。一个重要的约束是映射基数,它表示通过某个联系集能与另一实体进行关联的实体数目。例如,一个中国公民只能有一个身份证,E-R模型就应该表达出这种约束。

5.2 关系模型
         关系模型用表的集合来表示数据和数据间的联系。每个表有多个列,每列有惟一的列名。
举例:
银行客户的详细信息
客户标识符客户名称客户所在街道客户所在城市
11223344徐帅仁和宿迁
66778899老吉永平
宿迁
客户账户信息
客户账户    客户存储余额xu01    300000000000laoji32    
434389999999    
账户与客户之间对应的关系
客户标识符客户账号
11223344xu01
66778899laoji32
      关系模型是基于记录模型的一种。基于记录模型的名称的由来是由于它用一些固定格式的记录来描述数据库结构。每张表包含某种特定类型的记录,每个记录类型定义了固定数目的字段(或属性)。表格的列对应于记录类型的属性。
         关系模型比E-R模型的抽象层次更低。数据库设计通常基于E-R模型来进行,然后再转化成关系模型。

5.3 其他数据模型
      对象模型:可以看成是E-R模型增加了封装、方法和对象标识等特征后的扩展。
      对象关系数据模型结合了面向对象的数据模型和关系数据模型的特征。
     半结构数据模型允许那些相同类型的数据项有不同的属性集的数据说明。这和前面所提到的数据模型形成对比:在那些数据模型中所有特定类型的数据项必须具有相同的属性集。可扩展标记语言(XML)被广泛地用来表示半结构数据。

六、数据库语言
       数据库系统提供两种不同类型的语言:一种是数据定义语言(用于定义数据库模式);另一种是数据操纵语言(用于表达数据库的更新和查询)。实际上,数据定义和数据操作语言并不是两种分离的语言,相反,它们简单地构成单一的数据库语言。

6.1 数据定义语言
         数据库模式是通过一系列定义来说明的,这些定义由一种称为数据定义语言(DDL)的特殊语言表达。
举例:
      
create table account
(
	account_number nvarchar(20),
	balance integer
)

   上面的SQL语句,执行的结果就是生成了account表,且,它还更新了称为数据字典和数据目录的一个特殊表集。一个数据字典包含了元数据,元数据是关于数据的数据。表的模式是元数据的一个范例。在读取和修改实际的数据前,数据库系统先要参考数据字典。
       数据库系统所使用的存储结构和访问方式是通过一系列的DDL语句来说明的,这种特殊的DDL称为数据存储定义语言。这些语句定义了数据库模式的实现细节,而这些细节对用户来说通常是不可见的。

6.2 数据操纵语言
     数据操纵是指:简单来讲,就是对数据库中的信息进行增删改查。
  数据操纵语言(DML)使得用户可以访问或操纵那些按照某种特定数据模式组织起来的数据。通常有两类基本的数据操纵语言:一是“过程化DML”,这要求用户指定需要什么数据以及如何获取这些数据;二是“陈述式DML”,也称非过程化DML,只要求用户指定需要什么数据,而不指明如何获得这些数据。

6.3 来自应用程序的数据库访问
      应用程序在这里是指用来与数据库进行交互的程序。应用程序通常用一种宿主语言写成,如C++、Java、.NET等。为了访问数据库,DML表达式需要由宿主语言来执行。有两种途径可以做到这一点:
       一是通过提供应用程序接口(过程集)可以用来将DML和DDL的表达式发送给数据库,再取回结果。
    二是通过扩展宿主语言的语义,使得嵌入的DML调用可以用在宿主语言的程序中。通常用一个特殊字符作为DML调用的开始,并且通过预处理器,称为DML预编译器,来将DML表达式转变成宿主语言中的过程调用。

七、数据库用户和管理员
       根据用户与系统交互方式的不同,数据库系统的用户可以分为四种不同类型。系统为不同类型的用户设计了不同类型的用户界面。一是初级用户,不用多说,就是辣鸡;二是应用程序员,即编写应用程序的计算机专业人员。三是富有经验的用户,其不通过编写程序来与系统交互,二是用数据库查询语言来表达他们的要求。每个这样的查询都被提交给查询处理器,其作用是将DML语句分解为能被存储管理器的指令。分析员通过提交查询来研究数据库中的数据,所以属于这一类用户。四是专业用户,他们是编写专门的、不适合于传统数据处理模式的数据库应用的富有经验的用户。
         数据库管理员的任务是对数据和访问这些数据的程序进行集中控制。DBA的作用包括:“模式定义”(DBA通过DDL书写的一系列定义来创建最初的数据库模式);“存储结构及存取方式定义”;“模式及物理组织的修改”(由DBA对模式和物理组织进行修改,以反应组织的需求变化,或为提高性能选择不同的物理组织);“数据访问授权”(通过授予不同的权限,DBA可以规定不同的用户各自可以访问的数据库的部分);“日常维护”(定期备份数据;确保正常运转时所需的空余磁盘空间,并且在需要时升级磁盘空间;监视数据库的运行,并确保数据库的性能不能因一些用户提交了花费时间较多的任务就下降很多)。

八、事务管理
       通常,对数据库的几个操作合起来形成一个逻辑单元。比较经典的例子就是银行转账问题。事务要求原子性以及一致性,最后达成持久性。
       事务是数据库应用中完成单一逻辑功能的操作集合,是一个既具有原子性又具有一致性的单元。因此,我们要求事务不违反任何的数据库一致性约束,即如果事务启动时数据库是一致的,那么当这个事务成功终结时数据库也应该是一致的。
        原子性和持久性的保证则是数据库系统自身的任务,更确切一些,是事务管理组件的任务。最后,当多个事务同时对数据库进行更新时,即使每个单元的事务都是正确的,数据的一致性也可能遭到怕破坏。并发控制管理器控制并发事务间的相互影响,保证数据的一致性。

九、问题
9.1 列出文件处理系统和 DBMS 的四个主要区别 
1)两个都是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成的。
     DBMS :物理和逻辑访问数据,文件:物理访问数 据。 
2)DBMS :被授权的程序可以访问存储的逻辑数据, 数据可以被多个 程序访问,减少数据的冗余 
     文件:一个程序所写的数据可能不能被另一个程序访问。 
3)DBMS 设计为更灵活地访问数据 (如,查询 ) ,文件处理系统则被设 计为特定的程序访问数据 (如,已编译的程序 ) 。 
4)DBMS 允许多个用户同时访问相同的数据。文件处理系统一般允 许一个或多个程序同时访问不同的数据文件。
     在文件处理系统中, 一个文件只有在两个程序都只有只读权限的时候才可以同时被两 个程序并行访问。




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值