kc第1讲-应用开发与数据库技术.ppt
第第1 1讲讲:应用开发与数据库技术应用开发与数据库技术 重庆大学计算机学院重庆大学计算机学院课程名称课程名称:数据库系统数据库系统 -课程教材及参考书目 主用教材:主用教材:数据库系统概念数据库系统概念第第5 5版版,耶鲁大学等学校,西尔伯沙茨等著,杨冬青(北京大学)等译,机械工业出版社,2007年8月第1版第3次印刷(或2007年3月第1版第2次印刷)。Database System ComceptsFifth Edtion,Silberschatz A.A.(英文)本课程只介绍前三部分中的内容第一部分(1-10章)第二部分(11-22章)第三部分(23-25章)本教材所参考的网站主页(耶鲁大学)参考书目:参考书目:11数据库原理数据库原理王能斌,机械工业出版社,2001年1月,第1版22数据系统原理教程数据系统原理教程王珊等,清华大学出版社,1999年5月,第3次印刷33关系数据库关系数据库石树刚等,清华大学出版社,1993年11月,第1版44数据库系统基础教程数据库系统基础教程(中译本)机械工业出版社出版,2006.03,第1版3次印刷A First Course in Database SystemsA First Course in Database Systems(斯坦福大学斯坦福大学),),Jeffrey D.Ullman,Edition 2 China Machine Press,July 2006,First Version,First Print)项目驱动目标:项目驱动目标:应用开发涉及哪些数据库技术:应用开发涉及哪些数据库技术:一一 数据库系统及其开发环节数据库系统及其开发环节 二二 数据需求分析涉及数据库技术数据需求分析涉及数据库技术 三三 数据结构设计涉及数据库技术数据结构设计涉及数据库技术 四四 数据存储访问涉及数据库技术数据存储访问涉及数据库技术 五五 数据维护涉及数据库技术数据维护涉及数据库技术 六六 应用功能开发涉及数据库技术应用功能开发涉及数据库技术 主要讨论问题:主要讨论问题:1.1.什么类型的应用最需要数据库技术什么类型的应用最需要数据库技术2.2.数据库系统开发有哪些主要环节数据库系统开发有哪些主要环节3.3.各个阶段涉及哪些数据库技术各个阶段涉及哪些数据库技术4.4.数据库技术包括那些内容数据库技术包括那些内容5.5.数据库技术在数据库技术在DBSDBS开发中到底有多重要开发中到底有多重要第1讲:数据库系统开发与数据库技术Exercise 1包含关系!数据库系统(DBS)(DBS)只是一般应用系统的一个子集但是一个很大的子集,凡采用了数据库技术的系统!DBS涉及应用领域十分广泛,你所用到、看到的几乎都是!通常涉及的数据库量巨大对数据的操作频繁用户访问数巨大对数据库的安全性、可靠性、访问效率等要求高如银行、校园、企业、航空等管理信息系统一一 数据库系统及其开发环节数据库系统及其开发环节1-1 应用系统与数据库应用系统与数据库系统有何差异?系统有何差异?1-2 什么类型的应用什么类型的应用最需要数据库技术?最需要数据库技术?问题问题1答案答案一个大型DBS几乎用到所有数据库技术这要从DBS的开发和使用环节说起Step1:需求分析(数据流图-待续)数据需求分析数据需求分析核1(用户需求说明书)功能需求分析附带(功能需求规格说明书)Step2:数据结构设计 概念设计概念设计核2(概念模型-抽象结构,可与DBMS产品相关)逻辑设计逻辑设计核3(逻辑模型-与DBMS产品密切相关)Step3:数据存储访问设计 数据存储设计(物理设计物理设计核4)(物理模型)数据访问设计 数据控制设计Step4:数据维护设计Step5:应用功能开发设计一一 数据库系统及开发环节数据库系统及开发环节1-3 DBS开发涉及哪开发涉及哪些数据库技术?些数据库技术?1-4 DBS的设计有哪的设计有哪些主要环节?些主要环节?问题问题2答案答案 首首 页页分析系统的业务处理流程分析流程中各个业务环节功能需求分析:业务环节中具体处理功能 (编程要求)数据需求分析:处理功能中涉及哪些数据 (数据库要求)分析产生结果:数据流图(处理功能+相关数据)主要:主要:数据流图分析方法(课外知识课外知识,自学)收集数据对象收集数据字典辅助:辅助:数据抽取分析方法E-R模型,统一建模语言UML(6章)(初步,客户交流)数据视图(1章)二二 数据需求分析涉及数据库技术数据需求分析涉及数据库技术2-1 应用需求分析的应用需求分析的任务是什么?任务是什么?2-2 数据需求分析涉数据需求分析涉及哪些数据库技术?及哪些数据库技术?首首 页页数数据据程程图图(样样例例)22数据系统原理教程数据系统原理教程王珊王珊-清华大学清华大学,P185,P1851-5 什么是数据流图?什么是数据流图?(第二层数据流图第二层数据流图)分析数据对象特征和使用需求建立数据模型(对象内部结构和外部关联)根据开发需要调整和选择数据模型分析和描述数据约束数据结构优化E-R模型,UML(精细设计)(6章)-面向客观描述!关系数据模型(2章,7章)对象数据模型(9章)-面向计算机实现!XML数据模型(10章)三三 数据结构设计涉及数据库技术数据结构设计涉及数据库技术3-1 数据结构设计的数据结构设计的任务是什么?任务是什么?3-2 数据结构设计涉及数据结构设计涉及哪些数据库技术?哪些数据库技术?引入多层抽象概念引入多层抽象概念物理层物理层(Physical level):(物理模式、内模式物理模式、内模式)describes how a record(e.g.,customer)is stored.逻辑层逻辑层(Logical level):(逻辑模式、外模式逻辑模式、外模式)describes data stored in database,and the relationships among the data.type customer=recordcustomer_id:string;customer_name:string;customer_street:string;customer_city:integer;end;视图层视图层(View level):(子模式、视图子模式、视图)application programs hide details of data types.Views can also hide information(such as an employees salary)for security purposes.3-3 如何体现数据结构如何体现数据结构的设计效率?的设计效率?三三 数据结构设计涉及数据库技术数据结构设计涉及数据库技术三层模式两级映射三层模式两级映射三三 数据结构设计涉及数据库技术数据结构设计涉及数据库技术3-4 三层数据模三层数据模式如何关联?式如何关联?3-5 三层模式架三层模式架构有何优点?构有何优点?第一级映射第一级映射第二级映射第二级映射两级独立:两级独立:应用独立性!应用独立性!物理独立性!物理独立性!首首 页页分析数据需求和使用需要对关联数据的使用要求访问效率要求安全性要求设计数据物理存储方式数据如何存放如何支持快速访问如何保证数据安全存储和文件结构*(11章)索引与散列(12章)四四 数据存储访问涉及数据库技术数据存储访问涉及数据库技术4-1 数据存储设计的数据存储设计的任务是什么?任务是什么?4-2 数据存储涉及哪些数据存储涉及哪些数据库技术?数据库技术?4.1 4.1 数据存储涉及数据库技术数据存储涉及数据库技术分析数据访问方式及使用要求采用什么方式访问数据如何快速访问数据数据访问方式的优化SQL(3章)高级SQL(4章)查询处理(13章)查询优化(14章)信息检索(19章)4.2 4.2 数据访问涉及数据库技术数据访问涉及数据库技术4-3 数据访问设计的数据访问设计的任务是什么?任务是什么?4-4 数据访问涉及哪些数据访问涉及哪些数据库技术?数据库技术?如何设计系统的体系架构如何保证数据真实有效如何支持多用户并发访问安全性控制(8章)事务管理(15章)并发控制(16章)数据库系统的体系结构(20章)并行数据库*(21章)分布式数据库*(22章)4.3 4.3 数据控制涉及数据库技术数据控制涉及数据库技术4-5 数据控制设计的数据控制设计的任务是什么?任务是什么?4-6 数据控制涉及哪些数据控制涉及哪些数据库技术?数据库技术?首首 页页如何防范数据或系统故障如何备份数据如何恢复数据如何转移数据备份与恢复系统(17章)基本的系统恢复技术高级恢复技术远程备份系统五五 数据维护涉及数据库技术数据维护涉及数据库技术5-1 数据维护设计的数据维护设计的任务是什么?任务是什么?5-2 数据维护涉及哪些数据维护涉及哪些数据库技术?数据库技术?首首 页页分析如何有效支持应用功能开发如何提供开发效率那些功能应交给数据库完成数据库如何与应用程序打交道数据视图(1章)&视图(3章)嵌入式嵌入式SQLSQL(4 4章)章)&动态SQL(4章)完整性约束(4章)查询优化(14章)&索引(12章)应用设计与开发应用设计与开发*(8 8章)章)存储过程,触发器六六 应用开发涉及数据库技术应用开发涉及数据库技术6-1 应用开发中的应用开发中的任务是什么?任务是什么?6-2 应用开发涉及哪些应用开发涉及哪些数据库技术?数据库技术?6.1 6.1 功能开发涉及数据库技术功能开发涉及数据库技术分析海量数据中蕴藏着那些知识如何发现这些有用的知识如何展现这些知识如何利用这些知识为企业提供服务数据分析与数据挖掘(18章)联机分析处理OLAP数据仓库数据库挖掘6.2 6.2 数据分析涉及数据库技术数据分析涉及数据库技术6-3 数据分析的任务数据分析的任务是什么?是什么?6-4 数据分析涉及哪些数据分析涉及哪些数据库技术?数据库技术?DBSDBS开发涉及的数据库技术开发涉及的数据库技术(比如银行管理信息系统)(比如银行管理信息系统)6.3 DBS6.3 DBS开发涉及数据库技术总结开发涉及数据库技术总结问题问题3、4、5答案答案6-3 数据库技术在数据库技术在DBS开发中有多重要?开发中有多重要?答案:非常重要答案:非常重要!涉及其各个环节!涉及其各个环节!27-28-29-大型商用数据库产品(实现了上述各种数据库技术)大型商用数据库产品(实现了上述各种数据库技术)18-数据分析与挖掘应用开发8-应用设计和开发需求分析0-数据流图0-数据字典1-数据视图6-ER模型&UML结构设计6-E-R模型&URL9-对象数据模型2&7-关系数据模型10-XML数据模型存储访问3&4-SQL11-存储和文件结构13-查询处理14-查询优化19-信息检索12-索引与散列数据控制15-事务管理16-并发控制20-DBMS体系结构8-安全性控制21-并行数据库22-分布式数据库17-备份与恢复系统数据维护开发环节开发环节各各环环节节 涉涉及及的的 数数据据库库技技术术(数字代表章节)数据库技术 包含的内容 首首 页页*6.4 DBS6.4 DBS体系结构体系结构操作系统操作系统DBMS数据库管理系统数据库管理系统逻辑数据库逻辑数据库(逻辑描述)DBS数据库系统数据库系统DBS应用软件应用软件其它数据文件其它数据文件物理数据库物理数据库(物理数据)网网络络分分布布 网络网络 分布分布 网络网络 分布分布6-4 你想想的你想想的DBS结构结构是什么样的?是什么样的?项目驱动目标:项目驱动目标:关系模型的特点及在应用开发中的地位:关系模型的特点及在应用开发中的地位:一、关系模型一、关系模型 二、关系的键和外键二、关系的键和外键 三、关系数据查询三、关系数据查询 四、空值四、空值NullNull的特殊作用的特殊作用 五、关系数据更新五、关系数据更新 六、关系模型在应用开发中的地位六、关系模型在应用开发中的地位 主要讨论问题:主要讨论问题:什么是关系模型,主要特点是什么?什么是关系模型,主要特点是什么?什么是关系的键和外键,起到什么作用?什么是关系的键和外键,起到什么作用?如何查询关系数据中的数据,有何理论基础?如何查询关系数据中的数据,有何理论基础?空值空值NullNull是指什么,使用时有哪些约束?是指什么,使用时有哪些约束?如何更新关系数据库中的数据?如何更新关系数据库中的数据?关系模型有哪些优点?关系模型有哪些优点?练习练习 1 1:自学自学“第第1 1章章 引言引言”预习预习“第第2 2章章 关系模型关系模型”Thank you!End!End!预习下一讲内容预习下一讲内容(2章章)