数据库原理及其应用_第1页
数据库原理及其应用_第2页
数据库原理及其应用_第3页
数据库原理及其应用_第4页
数据库原理及其应用_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基本概念数据:数字、文字、图形、图像、声音…数据库:数据+库表+规则+视图+事务+…数据库管理系统:DBMS,定义、建立、维护查询数据库系统:数据库应用系统数据库技术的发展人工管理文件系统管理(txt、Excle、Access、DBASE、Foxpro、…)数据库系统sqlserver、oracle、sybase、informix、DB2、PostgreSQL、MYSQLVFPFoxPro2.5

:是Fox公司和Microsoft公司合并后,于1992年在FoxPro2.0的基础上开发成功的。它兼容了dBase、FoxBase,VisualFoxPro:Microsoft公司在FoxPro2.5的基础上,引入面向对象编程技术和可视化编程方法,于1995年9月推出新一代的FoxPro也即VisualFoxPro3.0。兼具以下一些新特性:快速创建数据库及应用程序的能力支持面向对象编程支持客户/服务器应用Sybase

1984年,MarkB.Hiffman和RobertEpstern创建了Sybase公司,并在1987年推出了Sybase数据库产品。Sybase主要有三种版本:一是UNIX操作系统下运行的版本;二是NovellNetware环境下运行的版本;三是WindowsNT环境下运行的版本。对UNIX操作系统,目前应用最广泛的是SYBASE10及SYABSE11forSCOUNIX。

Sybase数据库的特点:

(1)它是基于客户/服务器体系结构的数据库。

(2)它是真正开放的数据库。

(3)它是一种高性能的数据库。MSSQLServer

MSSQLServer的前身是PC平台中最早的关系数据库SybaseSQLServer,1993年起,Microsoft致力于NT平台的SQLServer的开发。具有以下特点:与WindowsNT集成;允许集中管理服务器;提供企业级的数据复制;提供平行的体系结构;支持超大型数据库;与OLE对象的紧密集成。

ORACLE

ORACLE是最早提出基于标准SQL数据库语言的关系数据库产品支持客户/服务器和协同服务器,具有以下特点:名符其实的大型数据库:最大数据量可达几百GB;共享SQL和多线索服务器体系结构:这两个特性的结合,减少ORACLE的资源占用,增强处理能力,能支持成百甚至上千个用户。跨平台能力:ORACLE数据库管理系统可以运行在100多个硬件和软件平台上,这一点为其它PC平台上的数据库产品所不及。分布式数据库:可以使物理分布不同的多个数据库上的数据,被看成是一个完整的逻辑数据库,尽管数据操纵的单个事务可能要运行于多处地点,但这对应用程序却是透明的,应用程序开发人员的感觉就好象所有的数据都是物理地存储在本地数据库中。卓越的安全机制:包括对数据库的存取控制,决定可以执行的命令,限制单一进程可用的资源数量以及定义数据库中数据的访问级别等。支持客户机/服务器方式,支持多种网络协议。

DB2

DB2是内嵌于IBM的AS/400系统上的数据库管理系统,直接由硬件支持。它支持标准的SQL语言,具有与异种数据库相连的GATEWAY。因此它具有速度快、可靠性好的优点。但是,只有硬件平台选择了IBM的AS/400,才能选择使用DB2数据库管理系统。

DB2能在所有主流平台上运行(包括Windows),最适于海量数据。

DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上都用DB2数据库服务器,而国内到1997年约占5%。

Informix

Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是InformixSE(StandardEngine)。InformixSE是在当时的微机Unix环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。PostgreSQL

PostgreSQL是一种特性非常齐全的自由软件的对象——关系性数据库管理系统,它的很多特性是当今许多商业数据库的前身。PostgreSQL最早开始于BSD的Ingres项目。PostgreSQL的特性覆盖了SQL-2/SQL-92和SQL-3。首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目前PostgreSQL是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统.mySQL

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。对于Mysql的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。常用开发平台DelphiVBVCPBVisualstudio(VS)…数据库操作系统WindowsNTWindowsserver2003LinuxUnix…数据库硬件平台数据库服务器磁盘阵列电源冗余硬件冗余主机双工磁盘双工…数据库系统的常用访问结构Client/ServerBrowser/ServerRich-ClientN-tierCloudServer…为什么需要数据库系统数据的网络共享数据安全性数据完整性数据并发控制数据库恢复事务管理海量数据管理网络共享各个部门数据的一致性信息共享的实时性大量减少数据冗余数据易于维护系统容易扩展数据存储安全性自动备份远程备份双机热备份磁盘阵列(RAD0,1,2,3,4,5)…数据访问安全性用户标示和鉴定存取控制视图审计数据加密数据的完整性完整性约束确保当授权用户对数据库作修改时不会破坏数据的一致性防止数据的意外破坏几种常见的完整性约束:码联系的基数(基数约束)域约束参照完整性函数依赖完整性约束-码约束概念上各个实体和联系是互异的,从数据库的观点看,它们的区别必须用属性来表明,码的概念使得我们可以进行这样的区分。合法的插入、更新操作必须保证不会创建在两个候选码上有相同的值的实体概念提示超码:是实体集的属性集,它的取值可唯一标识每一个实体。候选码:实体集的最小超码作用范围:实体集内怎样定义码约束在MS-SQLServer中定义码约束createtableCUSTOMER(fstrIDchar(17)notnull,fstrNamechar(30)null,fdtmBirthdaydatetimenull,fstrAddresschar(30)null,…constraintPK_CUSTOMERprimarykey(fstrID))完整性约束-基数约束联系的基数基数约束联系的基数:通过一个联系能同另一个实体相联系的实体数目。存在依赖:实体a的存在依赖于实体b的存在,操作上如果b被删除,则a也应删除。域属性可取的值的集合例如一个人的年龄在0~150之间中国机动车的车牌号是…完整性约束-域约束最基本的完整性约束何时进行进行域约束验证?在数据库中插入新值时避免诸如-10岁被录入数据库在查询比较时,确保比较是有意义的一个人的姓名和年龄之间能进行逻辑比较、算术运算吗?可在已有类型的基础上创建新的域概念层的域与物理层的域客户的姓名与地址具有可比性吗?从概念上讲,不具有有可比性但从物理实现上讲,则具有可比性它们都是最大长度为30字符串类似的还有一个人的体重与他的身高都是一个正实数…怎样定义域约束createtableCUSTOMER(FSTRIDchar(17)notnull,FSTRNAMEchar(30)null,FDTMBIRTHDAYdatetimenull,FSTRTYPEchar(10)nullConstraintCKC1check(FSTRTYPEin('合同工','正式工')),constraintPK_CUSTOMERprimarykey(FSTRID))引例-关于存在性的客观要求如果“Perryridge”是出现在account

关系的某个元组中的分支机构名称,那么在branch

关系中也应该存在一个元组与“Perryridge”分支机构对应。如果“生产部”出现在“员工信息”关系的某个元组中,则在“企业部门结构”关系中,应该存在一个元组与“生产部”这一部门对应。这种客观要求可表示为参照完整性。外码一个关系模式的外码是该模式中的一个属性集,同时是另一个模式的主码。例如属性“分支机构名称”是关系模式贷款=(贷款号,分支机构名称,金额,贷款人)的外码,是关系模式Branch=(分支机构名称,资产总额,地址)的主码。完整性约束-参照完整性一个关系中给定属性集上的取值也在另一关系的某一属性集的取值中出现形式化定义设K1

和K2

分别是关系r1(R1)和r2(R2)的主码,称R2的子集α为参照关系r1中K1的外码,是要求对r2中任意元组t2,均存在r1中的元组t1,与之对应,即t1[K1]=t2[α]。这种要求称为参照完整性约束。因为(r2)K1(r1),故又称为子集依赖。参照完整性的来源从E-R模型导出关系模型时,由联系集得到的每个关系都有参照完整性约束弱实体集必须包含它所依赖的实体集的主码,因此每个弱实体集关系模式包含一个导致参照完整性约束的外码。何时验证参照完整性?对数据库的修改可能破坏参照完整性插入在Loan关系中新增一笔贷款时,系统必须保证在Branch关系中,有一个元组与之对应删除在Branch中删除一个分支机构的记录时,如果在Loan中存在贷款与之对应,应报错或执行层级删除更新如果修改了Loan中一个元组的的“分支机构名称”,则应在Branch中执行类似插入情况的测试;如果修改了Branch中一个元组的的“分支机构名称”,则应在Branch中执行类似插入情况的测试;用SQL定义参照完整性约束createtablecustomer(customer_name char(20),

customer_street char(30),

customer_city char(30),

primarykey(customer_name));createtableaccount(account_number char(10),

branch_name char(15),

balanceinteger,

primarykey(account-number),

foreignkey(branch_name)referencesbranch)用SQL定义层级操作createtable

account(...

foreignkey(branch-name)references

branch

ondeletecascade

onupdatecascade,

...

)如果删除了Branch的一个分支机构记录,则在Account中与该分支机构对应的帐户记录将自动被系统删除;如果Branch中一个元组的“分支机构名称”被修改,会出现什么情况?完整性约束-断言一个断言就是一个谓词,表达了我们希望数据库总能满足的一个条件。域约束、参照完整性是断言的特殊形式只有不破坏断言的数据库修改才被允许系统对复杂断言的检测开销很大很多断言不能用上述特殊形式表达断言-范例每个支行的贷款总和必须少于该支行帐户余额的总和createassertionsum_constraintcheck(notexists(select*frombranch

where(selectsum(amount)fromloan

whereloan.branch-name=branch.branch-name)>=(selectsum(amount)fromaccount

whereloan.branch-name=branch.branch-name)))触发器一条语句,当对数据库做修改时,它自动被系统执行。用于示警或在满足特定条件时自动执行某项任务。要设置触发器机制,必须满足两个要求:触发器的执行条件;触发器执行的动作。触发器范例-确保最小库存createtrigger

reorder_triggerafterupdateof

amounton

inventoryreferencing

old

row

as

orow,new

row

as

nrowforeachrow

when

nrow.level<=(select

level

from

minlevel

where

minlevel.item=orow.item)

and

orow.level>(select

level

from

minlevel

where

minlevel.item=orow.item)

begin

insert

into

orders

(select

item,amount

from

reorder

where

reorder.item=orow.item)

end

并发控制并发控制的需求并发控制的一般原理并发控制的手段事务锁数据库恢复静态转储动态转储海量转储增量转储事务故障恢复系统故障恢复介质故障恢复数据库系统开发趋势软件系统的趋势更庞大更复杂一个大型软件系统的成功愈来愈难怎么办开发团体需要有一种受控的工作方式需要一个过程来集成软件开发的方方面面这就是软件开发过程什么是软件开发过程软件开发过程一个将用户需求转化为软件系统所需要的活动的集合。软件开发过程用户需求软件系统软件开发过程-瀑布模型问题定义可行性研究需求分析总体设计详细设计编码和单元测试综合测试软件维护1、问题定义任务要解决的问题是什么?问题的性质工程目标工程规模结束标准关于规模和目标的报告书时间一天甚至更短的时间用词要准确,避免含糊不清实现对各种资源的管理

基本实现…管理与产品设计相关的文档2、可行性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论