天书夜读之数据库系统概念
最近也都一直在读这些书。。放在这里是因为希望给大家一点帮助。当然。更多的好处是在我..我不得不仔细研读.才能给大家详细明白的罗列出这本书的精髓.\其实在你看我的这篇帖子的时候..你就是在使用数据库了..因为我的这些数据全部都是放在数据库中的.
数据库的出现是因为应用文件系统来存储数据是相当费事的.银行把用户的全部资料都放在操作系统的文件中.为了操作这些数据..系统中应有一些对这些文件进行操作的应用程序.比如创建新的帐户.处理存款等.
但是随着需求的不断加大.新的应用程序被加入到系统中.比如处理透支的程序.当然.随着功能越来越多.更多的文件和程序会加入系统中.
这样把数据单纯的当作文件放入系统中有很多弊端/
1.数据重复和不一致..
如果文件的创建是由不同的程序员创建的.因此.文件可能采用不同格式.放在不同地方.甚至会出现数据的重复.这样就浪费了存储空间.不一致的情况也出现了..
2.数据访问困难.
对于文件系统的访问.需要繁复的应用程序..因为文件本身就有可能出现混乱.在访问的同时也会混乱.这样就很容易造成数据访问困难
3.数据孤立
不同时期存入的不同数据分散在系统中..会导致数据的孤立
4.原子性问题.
如果电脑出现某种问题.数据会不会造成混乱? 比如刚好在出故障的同时有一个人存了1000块钱.他的数据到底有没有放入数据库中.? 还有就是同步问题..比如同时有2个人同时在同一个帐户中取了100块..在数据库中是减去多少?
5.安全性..
上述问题导致了数据的不安全
因为这些..数据库出现了.他的目的就是可以方便的.有效的存取数据信息的环境.
数据库的目的是为了管理大量信息.对数据的管理涉及到信息存储结构的定义.也涉及信息操作机制的提供.另外.数据库系统还必须提供所存储信息的安全性保证.即使在系统崩溃或者有人企图越权访问数据时也应保障信息的安全性.
1.3 数据视图.
数据库系统是些互相关联的文件以及一组使得用户可以访问和修改这些文件的程序的集合.
另外.数据库系统还需要给用户提供数据的抽象视图.也就是说.系统隐藏关于数据存储和维护的某些细节.
1.3.1 数据抽象.
一个可用的数据库系统必须能有效地检索数据.实现这一目的需要使用负载的数据结构来表示数据.但是使用数据库的用户并不一定都能理解这些复杂的数据结构..所以..系统就必须通过几个层次上的抽象来隐藏复杂性.简化系统的用户界面.
1.物理层. 抽象的最底层.描述数据是如何存储的.也是复杂数据结构的展现
2.逻辑层.比物理层稍高的抽象层次.描述数据库中存储什么数据及这些数据间存在什么关系.这样.逻辑层就通过少量相对简单的结构描述了整个数据库.
3.视图层.抽象的最高层..只描述整个数据库的某些部分.数据库的很多用户并不需要关心所有的信息.而只需要访问数据库的某些不封就能达到使用数据库的目的了.这样数据库和用户的交互就更简单.
在物理层.数据被记录描述为连续存储单元.(比如字或者字节)组成的存储块.
在逻辑层.每个数据通过类型定义进行描述.定义这些数据间的相互关系等.
在视图层.用户看见的是对其隐藏了数据类型细节的一组应用程序.当然.这里经过封装后的数据就具有安全性了.银行的员工只能看见数据库中关于客户帐户信息部分.而不能访问涉及客户帐户的操作信息.
1.3.2 实例和模式/
数据需要被插入.替换.或者删除.同样..数据库也就发生了改变.特定时刻存储在数据库中信息的集合称作数据库的一个实例.而数据库的总体设计称为数据库模式.数据库模式即使发生变化也是不频繁的.
数据库模式就像是一个指向数据的箭头..每个箭头在特定的时刻会指向特定的数据.当然.数据也会在某一时刻被指向.
这就是实例和模式.
1.4 数据模型.
数据库结构的基础是数据模型.数据模型是一个描述数据.数据联系.数据语义以及一致性约束的概念工具的集合..未来阐明数据模型的概念.在这部分我们说2种数据模型.: 实体-联系模型 和关系模型
1.4.1 实体-联系模型.
实体-联系(E-R)数据模型基于对现实世界的这样的一种认识.既:现实时间由一组称为实体的基本对象.以及这些对象间的联系构成.实体是现实世界中可区别于其他对象的一个"事件" 或一个"物体."比如.一个人就是一个实体.每个银行帐户也是一个实体.
数据库中的实体通过属性集合来描述.比如要存储一个学生的实体.那么就要存储身高.体重.性别.年龄等等数据..这些数据的集合构成了实体.
联系是实体间的相互关系.
同一类型的所有实体和集合称为实体集.同一类型的所有联系的集合称为联系集..
页:
[1]