数据库技术讲义云南大学软件学院梁志宏任务名称开始时间结束时间开会2010/1/414:002010/1/416:00业务学习2010/1/514:002010/1/516:00出差2010/1/60:002010/1/70:001、为什么要学习数据库:-应用:广泛,无处不在-系统:打开黑匣子selectt1.f1,t2.f2fromt1,t2wheret1.f2=t2.f32、方法:强调设计-保障优秀数据的可用性-设计可以提供良好的交流手段-熟悉数据库设计技能可以促进对当前数据库技术的理解本章主要学习内容-数据系统的基本概念-数据库的类型-数据库管理技术的发展第1章数据库系统数据库应用程序数据库管理系统DBMS数据库数据库系统数据(Data)数据库(Database,简称DB)数据库管理系统(DatabaseManagementSystem,简称DBMS)数据库系统(DatabaseSystem,简称DBS)1.1四个基本概念1.1.1数据(Data)与信息(Information)什么是数据(Data)?数据是原始事实,数据是描述事物的符号记录,数据是用符号记录下来的可以区别的信息。例:(张三,男,27,1982,贵州,软件工程,2009)语义:张三是一个大学生,1982年出生,今年27岁,男性,贵州人,2009年考入软件工程专业。数据的形式还不能完全表达其内容,需要经过解释,也就是对数据含义进行说明,数据的含义称为数据的语义,数据与其语义是不可分的。什么是信息(Information)?信息是处理过的、并以有意义的形式给出的数据,信息是通过处理数据产生。什么是数据库Database?所谓数据库就是指有组织的、可共享的、相互有关联的数据集合,简称DB。对于关系数据库来说:-终端用户数据:终端用户感兴趣的原始事实-元数据(metadata):关于数据结构的数据什么是数据库管理系统DatabaseManagementSystem?数据库管理系统是用于建立、使用和维护数据库的一组软件,简称DBMS。1.1.2数据库和数据库管理系统什么是数据库系统(DatabaseSystem,DBS)?DBS是指在计算机系统中引入数据库之后的系统:一般由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员(DatabaseAdministrator,DBA)和最终用户构成。即:DBS=DB+DBMS+Application+DBA+EndUser在一般不引起混淆的情况下常常把数据库系统简称为数据库。1.1.3数据库系统数据库应用程序数据库管理系统DBMS数据库数据库系统•创建并处理窗体•创建并传递窗体•创建并处理报表•执行应用逻辑•控制应用程序•创建数据库•创建表•创建支持结构•读取数据库数据•更新数据库数据•维护数据库结构•强制规则•并发性控制•安全性支持•备份和恢复1.2数据库的类型按用户数量分:单用户数据库(single-userdatabase)多用户数据库(multiuserdatabase)•工作组数据库(workgroupdatabase)50Users•企业数据库(enterprisedatabase)50Users数据库站点的位置分:集中式数据库(centralizeddatabase)分布式数据库(distributeddatabase)按数据库使用方式分:事务数据库(transactionaldatabase)或生产数据库(productiondatabase)数据仓库数据库(datawarehousedatabase1.3桌面数据库系统和企业数据库系统数据库应用程序数据库管理系统DBMS数据库MicrosoftAccess或其他私有DBMS桌面数据库系统数据库应用程序A数据库管理系统DBMS数据库MicrosoftSQLServerOracleDB2其他DBMS企业数据库系统数据库应用程序B数据库应用程序C数据库数据库数据库Java代码C#代码HTML和VB脚本1.3数据管理技术的发展本节主要问题:数据库系统和文件系统的主要区别和联系数据管理技术的发展数据管理随着计算机软硬件技术的发展而不断发展,经历了以下三个阶段:–人工管理阶段:50年代中期以前;–文件系统阶段:50年代后期到60年代中期之间;–数据库系统阶段:60年代后期开始1.3.1人工管理阶段1)不保存2)无软件管理,由应用程序直接管理3)不共享4)无独立性应用程序1数据组1应用程序2数据组2应用程序n数据组n1.3.2文件系统阶段1)长期保存2)文件系统管理数据3)共享差4)冗余度大5)独立性差应用程序1文件1应用程序2文件2应用程序n文件n文件系统FS1.3.3数据库系统阶段1)数据结构化2)共享程度好,冗余度低,容易扩充3)独立性高4)DBMS统一管理和控制应用程序1应用程序2应用程序n数据库管理系统DBMS数据库文件系统到数据库系统示例Custom文件Agent文件保险公司数据文件数据、字段、记录、文件随着文件数量的增多,逐渐演变成一个下图所示的小型文件系统。伴随文件系统的第一个也是最显著的问题是,即使最简单的数据检索任务也需要用3GL(third-generationlanguage,第3代语言)进行大量编程。3GL要求程序员既要指定必须做什么,又要指定如何做。3GL的实例包括COBOL、BASIC和FORTRAN。每一文件都必须有自己的由程序组成的文件管理系统,至少有5各基本操作:1)创建文件结构2)向文件添加数据3)从文件删除数据4)修改文件内的数据5)显示文件内容一个只有20个文件的简单文件系统,必须至少编写5×20=100个文件管理程序。在文件处理系统中存储数据的局限性–需要大量编程–系统管理可能复杂和困难–数据冗余和不一致–难于改变现有结构,数据共享差–安全性问题进一步导致–结构相关(StructuralDependence)–数据相关(DataDependence)–数据冗余(DataRedundancy)要解决这些问题,就必须–开发通用的数据检索系统–表达和实现约束–对数据的访问进行逻辑管理:事务–对数据进行访问控制,对事务进行并发控制……结构相关性(StructuralDependence)对数据文件结构的任何修改(如增加删除字段)都需要修改所有使用该文件的程序,之所以要修改,是因为文件系统具有结构依赖性,即对文件的访问依赖于文件的结构。数据相关性(DataDependence)即使文件数据特性发生改变(比如将字段从整数修改为小数),也要修改所有访问该文件的程序,显示出数据依赖性。数据冗余(DataRedundancy)存储在不同位置的相同数据不可能总是被一致更新,信息孤岛经常包含相同数据的不同版本。当数据环境包括不必要的数据重复时,就存在数据冗余出现的条件。主要学习内容-数据模型为什么重要-什么是数据模型-概念模型及其表示方法第2章数据模型2.1数据模型的重要性数据建模是数据库设计的第一步,是现实事物和计算机中数据库之间的桥梁。用户设计者程序员如果我们拥有一份良好的蓝图(BluePrint),则程序员、管理者、终端用户对数据如何看待就无关紧要了。在数据库环境中,这个蓝图就是数据模型中的概念模型。2.2什么是数据模型数据模型(DataModel)是数据库中用于抽象、表示和处理现实世界中的数据和信息的工具。需要满足三方面的需求:比较真实的模拟现实世界容易被人理解便于在计算机上实现现实世界认识抽象信息世界概念模型机器世界DBMS支持的数据模型蓝图(BluePrint)2.3概念模型概念模型实际上是现实世界到机器世界的一个中间层次。基本概念:–实体(Entity):客观存在,并可以相互区别的事物。–属性(Attribute)是实体的某一特性,相当于文件系统中的字段。–键标或码(Key):唯一标识实体的属性集合。–域(Domain):属性的取值范围。–联系(Relationship)描述实体之间的联系。1:M联系(one-to-manyrelationship)M:N联系(many-to-manyrelationship)1:1联系(one-to-onerelationship)2.4概念模型的表示方法E-R图,P.P.S.Chen于1976年提出(EntityRelationshipApproach)。–实体:用矩形表示,矩形框内写明实体。–属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。–联系:用菱形表示,菱形框内写明联系名,用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:M,M:N)。班级学生组成1n班级号班级名班级班长班级-班长111:1班级学生组成1n1:n课程学生选修mnm:n示例1:一般的联系课程教师讲授nm职工经理1实体内部的联系示例2:特殊的联系参考书n三个实体之间的联系n课程教师讲授mm学生小组长1示例3:E-R图参考书nn班级组成1选修mn班级名现实世界认识抽象信息世界概念模型机器世界DBMS支持的数据模型蓝图(BluePrint)2.5数据模型的组成要求1)数据结构是所研究的对象类型的集合,属于系统的静态特性。2)数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,属于系统的动态特性3)数据约束条件是一组完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。2.6数据模型的演化按时间顺序来分,主要有:层次模型(HierarchicalModel)网络模型(NetworkModel)关系模型(RelationalModel)医院病房计算机管理中的信息:科室:科名,科地址,科电话,医生姓名医生:姓名,职称,年龄,工作证号,所属科室名病人:病历号,姓名,性别,诊断,主管医生,商业规则:一个科室有多个医生一个医生只能属于一个科室,但可以负责多个病人一个病人的主管医生只有一个。用E-R图完成概念模型的设计。练习:2.8小结数据模型(DataModel)是用计算机描述世界的方式,主要用于DBMS的实现。概念模型实际上是现实世界到机器世界的一个中间层次采用E-R图来描述系统常用的数据模型包括层次模型、网络模型、关系模型。目前大多数数据库系统采用关系模型。