高级数据库技术 (2).ppt

上传人:rrsccc 文档编号:9194506 上传时间:2021-02-07 格式:PPT 页数:91 大小:602KB
返回 下载 相关 举报
高级数据库技术 (2).ppt_第1页
第1页 / 共91页
高级数据库技术 (2).ppt_第2页
第2页 / 共91页
高级数据库技术 (2).ppt_第3页
第3页 / 共91页
高级数据库技术 (2).ppt_第4页
第4页 / 共91页
高级数据库技术 (2).ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《高级数据库技术 (2).ppt》由会员分享,可在线阅读,更多相关《高级数据库技术 (2).ppt(91页珍藏版)》请在三一文库上搜索。

1、1,UNIT one数据库系统原理、编程与设计,武汉大学计算机学院,2,利用你的数据库方面的知识思考几个问题,与文件系统相比,数据库系统具有哪些特点? 目前商用数据库管理系统有哪些?它们在数据模型方面的共同之处是什么?它们各具有什么特点? 数据库系统的数据组织方式具有什么特殊之处?这种组织方式对于开发一个大型的应用系统具有什么好处? 与高级程序设计语言相比,数据库语言具有什么特点?标准的数据库语言是什么? 数据库技术的目的是什么?它适用于解决什么样的问题? 针对一个具体的应用环境,你如何组织数据(即设计数据库的方法)? 你接触过哪些商用的数据库管理系统产品?会使用哪些工具?会使用数据库语言的哪

2、些命令?会实现哪些功能? 根据你对数据库系统知识的理解及实际经验,你觉得商用数据库系统产品应该提供哪些功能?,武汉大学计算机学院,3,学完本讲后,你应该能够了解: 数据库系统的体系结构、组成与特点; 关系模型的三要素:数据结构 关系; 基本的关系数据操作 并、交、选择、投影与连接;完整性约束 关系规则; 数据库语言SQL功能:数据定义语言、数据查询语言、数据操纵语言、数据控制语言;交互式SQL、嵌入式SQL; 关系数据库设计的两种基本技术:实体-联系(E-R)方法和规范化方法。,本 讲 主 要 目 标,武汉大学计算机学院,4,一数据库系统的特点 二. 数据库系统的结构和组成 三关系模型 四数据

3、库语言SQL 五数据库设计,内容提纲,武汉大学计算机学院,5,数据库系统 的特点,武汉大学计算机学院,6,数据库系统的特点,数据的高度结构化,关系模型下的学生注册数据库,students,enrollment,course,武汉大学计算机学院,7,数据库系统的特点,数据的高共享性,例,校人事处、财务处、房产处共享学校职工的基本信息,但共享的列有一些区别,武汉大学计算机学院,8,数据库系统的特点,程序与数据的高独立性,逻辑独立性 - 用户的应用程序与数据库的逻辑结构是相互独立的 物理独立性 - 用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的 * 如何保证应用程序所操作的数据的数据结构尽

4、量保持稳定?- 分级,建立映射表,武汉大学计算机学院,9,数据库系统的特点,程序与数据的高独立性 数据结构变化的几种可能性(物理结构,逻辑结构),因此,将模式从上扩充,得到外模式,向下扩充,得到内模式,即数据库系统的三级模式结构。,模式,外模式,外模式,外模式,内模式,* 数据库系统的三级模式结构和两级映象 - 程序与数据的独立性。 * 对于每一级模式,DBMS提供相应的描述语言来定义。,外模式/模式,模式/内模式,武汉大学计算机学院,10,数据库系统的特点,程序与数据的高独立性 外模式(External Schema,子模式 Subschema,用户模式)-是数据库用户能够看见和使用的局部数

5、据的逻辑结构和特征的描述,是数据库用户的数据视图。 模式(逻辑模式) - 是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。是数据库数据在逻辑级上的视图。 内模式(Internal Schema,存储模式Storage Schema) - 是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。,武汉大学计算机学院,11,数据库系统的特点,DBMS统一管理和控制数据 数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据。 DBMS提供以下几方面的数据控制功能: 数据的安全性(Security)保护 数据的完整性(Integrity)检查 并发(Concurre

6、ncy)控制 数据库恢复(Recovery),武汉大学计算机学院,12,数据库系统的 结构和组成,武汉大学计算机学院,13,数据库系统的结构和组成,数据库的三级模式结构,模式,外模式,外模式,外模式,内模式,外模式/模式,模式/内模式,武汉大学计算机学院,14,数据库系统的结构和组成,数据库系统的组成成分 硬件(足够的内存、外存、数据传输率) 数据库 软件(OS、DBMS、以DBMS为核心的应用开发工具、高级语言及编译系统、数据库应用系统) 人(数据库管理员、应用程序员、最终用户) 最终用户 临时用户用SQL访问DBMS的用户 初级用户通过菜单访问DBMS的用户,武汉大学计算机学院,15,数据

7、库系统的结构和组成,各种人员的职责,应用程序员 直接与DBMS打交道,为初级用户编写菜单程序 最终用户 通过菜单或SQL使用数据库,以满足日常的事务处理要求 数据库管理员(DBA)的职能 决定DB中的信息内容和结构; 决定DB中的存储结构和存取策略; 定义数据的安全性要求和完整性约束条件; 监控数据库的使用和运行; 数据库的改进和重组重构 。,武汉大学计算机学院,16,数据库系统的结构和组成,各种人员的数据视图,外模式,模式,内模式,应用系统,DB,DBMS,OS,数据表示,DBA,应用 程序员,用户,武汉大学计算机学院,17,数据库系统的结构和组成,商用数据库管理系统产品 ORACLE SY

8、BASE UDB DB2 INGRES Informix SQL Server Foxpro,武汉大学计算机学院,18,关系模型,武汉大学计算机学院,19,关系模型,关系模型的三要素 关系模型是一种与计算机相关的数据模型 数据结构 表 数据操作 传统的集合操作 专门的关系操作 数据约束条件 实体完整性 参照完整性 用户自定义的完整性,武汉大学计算机学院,20,关系模型,关系规则 关系规则是关系模型中的一些规则,告诉我们在表结构中哪些变化是允许的,哪些检索操作是受限的 在不同的商业数据库产品的标准化工作方面起了很大的作用 关系规则反映了特定的数学假定,对于关系结构的良好性状有重大意义 关系规则反

9、映了数据模型的特点 通过保证关系规则,使数据库中的数据正确、一致,武汉大学计算机学院,21,关系模型,关系规则 规则1 第一范式规则 在定义的表中,关系模型坚持不允许含有多值属性(有时称为重复字段)和含有内部结构(比如记录类型)的列。 规则1说明数据库系统能够处理的表对于手工处理的表的限制,武汉大学计算机学院,22,关系模型,规则1,多值属性列,武汉大学计算机学院,23,关系模型,规则1,浪费空间,武汉大学计算机学院,24,关系模型,规则1,结构类型,Agent,Jones, Franklin,e003,Superintendent,Andrews, David,e002,Agent,Smit

10、h, John,e001,position,ename,eid,EMPLOYEES,武汉大学计算机学院,25,关系模型,第一范式 遵守规则1的表称为第一范式,EMPLOYEES,手工处理的表,第一范式,武汉大学计算机学院,26,关系模型,规则2 基于内容存取行 数学上的合理性:行是没有次序的 关系是行的集合: 关系中的行是没有次序的 标准查询语言不提供对指定行的存取,(a1,b1,c1), (a2,b2,c2), (a3,b3,c3) = (a2,b2,c2), (a1,b1,c1), (a3,b3,c3),武汉大学计算机学院,27,关系模型,规则3 行唯一性规则 关系中任何两个元组(表中的行

11、)的值在同一时刻不能是完全相同的 数学上的合理性:关系是元组的集合,而集合不允许包含相同的元素 数据模型上的合理性:关系中的每一个元组代表一个客观存在的事物,而事物具有唯一性 在商业数据库管理系统中,很大一部分工作要求保证在插入一条新记录的时候,原数据库中没有相同记录存在,武汉大学计算机学院,28,关系模型,关系代数 是根据查询来生成新表的方法的集合 关系代数的运算分成两种类型: 集合运算,表实际上是“行”的集合,集合的运算是只涉及“行”的运算; 专门的关系运算,既涉及到“行”,也涉及到“列”的运算。,武汉大学计算机学院,29,关系模型,集合运算 专门的关系运算,武汉大学计算机学院,30,关系

12、模型,其它关系运算,这里,是比较运算符,可以是,=,武汉大学计算机学院,31,数据库语言 SQL,武汉大学计算机学院,32,数据库语言SQL,SQL的特点和功能 高度的非过程化语言 一体化 面向集合的操作方式 两种使用方式,统一的语法结构 简洁易学,武汉大学计算机学院,33,数据库语言SQL,SQL的数据定义语言,武汉大学计算机学院,34,数据库语言SQL,DLL对数据库三级模式的支持,SQL,视图1,基本表4,基本表3,基本表2,基本表1,存储文件2,存储文件1,内模式,模式,视图2,外模式,武汉大学计算机学院,35,数据库语言SQL,SQL的数据定义语句对DD和DB的影响,武汉大学计算机学

13、院,36,数据库语言SQL,定义表语句的基本语法 CREATE TABLE 表名 ( (NOT NULLNULL UNIQUE , NOT NULLNULL UNIQUE , PRIMARY KEY (, ) , FOREIGN KEY (, )REFERENCES );,武汉大学计算机学院,37,数据库语言SQL,创建索引 基本语法 CREATE UNIQUE CLUSTER INDEX 索引名 ON ( , ); 说明 一条语句建立一个索引; 指定索引的排列次序 - ASC 或DESC,缺省为ASC; UNIQUE表明每个索引值只对应唯一的数据记录; CLUSTER是聚簇索引,即索引项的顺

14、序与表中记录的物理顺序一致;,武汉大学计算机学院,38,数据库语言SQL,SQL数据查询语言 语法 subquery := SELECT ALL|DISTINCT*|exprAS c_alias, expr AS c_alias FROM tableref ,tableref WHERE search_condition GROUP BY colname,colname HAVING search_condition | subquery UNION ALL subquery SELECT statement := subquery ORDER BY result_column ASC|DES

15、C, result_column ASC|DESC,武汉大学计算机学院,39,数据库语言SQL,整个SELECT的含义 根据WHERE子句中的条件表达式,从FROM子句中的基本表或视图中找出满足条件的元组; 按SELECT子句中的目标字段,选出元组中的分量形成结果表; GROUP BY子句将结果按字段分组,每个组产生结果表中的一个元组; 通常在每组中作用库函数,分组的附加条件用HAVING短语给出;只有满足内部函数表达式的组才予输出; 如果有ORDER BY子句,则结果表要根据指定的字段按升序或降序排列。,武汉大学计算机学院,40,数据库语言SQL,例 查询选修了课程“C1”的学生所在的系,语

16、句一: SELECT DISTINCT SD FROM S,SC WHERE S.S# = SC.S# AND C# = C1;,语句二: SELECT DISTINCT SD FROM S WHERE S.S# IN ( SELECT S# FROM SC WHERE C# = C1);,语句三: SELECT DISTINCT SD FROM S WHERE S.S# = SOME ( SELECT S# FROM SC WHERE C# = C1);,语句四: SELECT DISTINCT SD FROM S WHERE EXISTS ( SELECT * FROM SC WHERE

17、S.S#=SC.S# AND C# = C1);,武汉大学计算机学院,41,数据库语言SQL,SQL的数据操纵语言 插入 插入一个元组 INSERT INTO 表名 (列名1,列名2 ) VALUES (常量1,常量2 ); 插入子查询结果 INSERT INTO 表名列名,列名 SELECT语句;,武汉大学计算机学院,42,数据库语言SQL,更新 一条UPDATE语句在某一时刻只能更新一张表,但可以更新一张表中的多列,也可以更新多行数据。 UPDATE语句的语法形式为: UPDATE 表名 SET 列名=表达式,列名=表达式 WHERE 条件表达式; 语句中的WHERE子句决定需要更新的行,

18、语句中的列名决定需要更新的列。,武汉大学计算机学院,43,数据库语言SQL,删除 语句DELETE用于从表中删除整行的数据,但不能用来从特定的列中删除数据。一条DELETE语句可以从表中删除一个单独的元组或是多个元组。 DELETE语句的语法形式为: DELETE FROM 表名 WHERE 条件表达式;,武汉大学计算机学院,44,数据库语言SQL,更新操作与DB的一致性 增删改操作一次只能对一个表进行操作; 更新操作可能破坏关系规则,从而破坏数据库的一致性; 理论上,关系系统自动支持实体完整性和参照完整性; 各种数据库产品提供不同的实现策略。,武汉大学计算机学院,45,数据库语言SQL,嵌入

19、式SQL 嵌入式SQL - 将SQL嵌入到某种高级语言中使用,将高级语言的过程性结构来弥补SQL语言实现复杂应用方面的不足,由SQL语句负责操作数据库,由主语言语句负责控制程序流程。,武汉大学计算机学院,46,数据库语言SQL,嵌入式SQL语言程序的处理过程,武汉大学计算机学院,47,数据库语言SQL,SQL与高程语言统一编程存在的障碍和解决方法,需要帮助预编译程序识别SQL语句与高程语句 在SQL语句的开始和结束处加标识,SQL的集合操作与高程的基于记录的操作在操作单位上的协调 游标,SQL语句与高程语句之间的执行状态的通信 SQLCA,SQL语句与高程语句之间的信息交换 宿主变量,武汉大学

20、计算机学院,48,数据库语言SQL,动态SQL 静态SQL 语句中的宿主变量个数与数据类型在预编译时都是确定的,只有宿主变量的值是程序运行过程中动态输入的,称这种嵌入式SQL为静态SQL。 动态SQL 允许在宿主变量中构造一个字符串作为SQL语句。它允许我们构造新的、在预编译时不能被具体预知的SQL语句,并且随着用户需求的改变动态地执行它们。,武汉大学计算机学院,49,数据库语言SQL,动态SQL的作用 动态SQL方法允许在程序运行过程中临时“组装”SQL语句,主要有三种形式: 语句可变 允许用户在程序运行时临时输入完整的SQL语句 条件可变 WHERE子句和HAVING短语中的条件可临时组装

21、 数据库对象、查询条件均可变 对于查询语句,SELECT子句中的列名、FROM子句中的表名或视图名、WHERE子句和HAVING短语中的条件等均可由用户临时构造,武汉大学计算机学院,50,数据库语言SQL,动态SQL的执行语句 这三种动态形式几乎可以覆盖所有的可变要求,为了实现这些可变形式,SQL提供了相应的语句: EXECUTE IMMEDIATE PREPARE EXECUTE和USING,武汉大学计算机学院,51,#include exec sql include sqlca; exec sql begin declare section char user_name =“scott”;

22、 char user_pwd =“tiger” char sqltext =“delete from S where S#=95008”; exec sql end declare section; int main( ) exec sql whenever sqlerror goto report_error; exec sql connect :user_name identified by :user_pwd; exec sql execute immediate :sqltext; exec sql commit release; return 0; report_error: pri

23、nt_dberror( ); exec sql rollback release; return 1; ,武汉大学计算机学院,52,#include exec sql include sqlca; exec sql begin declare section char s_s#5, sqltext256; char ask=“Name student s# to be deleted:” exec sql end declare section; int main( ) strpy(sqltext,”delete from Swhere s# = ?”); exec sql whenever

24、sqlerror goto report_error; exec sql prepare dels from :sqltext; while (prompt(ask,1,s_s#,4)=0) exec sql execute dels using :s_s# exec sql commit release; return 0; report_error: print_dberror( ); exec sql rollback release; return 1; ,武汉大学计算机学院,53,数据库设计,武汉大学计算机学院,54,数据库设计,数据库逻辑设计的两类方法 E-R模型建立概念模型,然后

25、将概念模型转换成关系模型 规范化设计方法,武汉大学计算机学院,55,数据库设计,简单E-R图 实体用矩形表示 简单的单值属性用椭圆形表示,并用直线连接到实体 复合属性用椭圆形表示,并用直线连接到实体,同时组成复合属性的简单属性连接到复合属性上 多值属性用双线连接到实体,武汉大学计算机学院,56,数据库设计,简单E-R图,武汉大学计算机学院,57,数据库设计,将实体和属性转换为关系(实体为关系,简单属性为列),武汉大学计算机学院,58,数据库设计,将实体和属性转换为关系(多值属性转换为关系),武汉大学计算机学院,59,数据库设计,两个实体之间的联系 就是两个实体中实例之间的联系,武汉大学计算机学

26、院,一对一联系,多对一联系,多对多联系,E R F,E R F,E R F,60,数据库设计,将二元联系转换到关系 将联系转换为关系,其属性为两个相联系的实体的键 + 联系属性 合并:将由联系转换出来的关系与具有相同键值的实体关系合并,武汉大学计算机学院,61,数据库设计,将二元联系转换到关系(N-N联系),武汉大学计算机学院,S(S#,SN,SE,SA,SD) SC(S#,C#,G) C(C#,CN,CP#,CC),62,数据库设计,将二元联系转换到关系(N-1联系),武汉大学计算机学院,T(T#,TN,TP) TC(T#,C#,Book) C(C#,CN,CP#,CC),T(T#,TN,T

27、P) C(C#,T#,Book,CN,CP#,CC),63,数据库设计,将二元联系转换到关系(1-1联系),武汉大学计算机学院,T(T#,C#,Book,TN,TP) C(C#,CN,CP#,CC),T(T#,TN,TP) C(C#,CN,CP#,CC),T(T#,TN,TP) C(C#,T#,Book,CN,CP#,CC),64,数据库设计,将二元联系转换到关系(1-1联系),武汉大学计算机学院,T_C(T#,TN,TP,C#,CN,CP#,CC,Book),T(T#,TN,TP) C(C#,CN,CP#,CC),65,数据库设计,通过建立E-R模型来确定数据库关系的步骤 确定实体 确定实体

28、的属性及与实体的关系 确定实体之间的联系 根据规则1-2将实体转换为关系 根据规则3-6将联系转换为关系,武汉大学计算机学院,66,数据库设计,规范化设计思想 规范化是将属性分配给一个实体的过程,用以减少数据冗余和减少更新异常。这个过程实际上就是将一个低一级范式的关系模式,通过模式分解转换为若干个高一级范式的关系模式的集合的过程。,武汉大学计算机学院,一个手工处理的表可能存在数据冗余和导致更新异常吗?,67,数据库设计,函数依赖、部分函数依赖、传递函数依赖 函数依赖的定义:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属

29、性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。,武汉大学计算机学院,68,数据库设计,部分函数依赖的定义:在R(U)中,如果XY,并且对于X的任何真子集X,都有XX,则称Y对X完全函数依赖,记作: 若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作: 例如,关系模式S-C(S#,C#, SN,G)中,武汉大学计算机学院,69,数据库设计,传递函数依赖的定义:在R(U)中,如果XY,(YX),YX,YZ,则称Z对X传递函数依赖。 例如,关系模式SD(S#,SD,DL)中,DL是系主任,因为S#SD,SDDL,所以,DL对S#传递函数依赖。,武汉大学计算机学

30、院,70,数据库设计,范式 范式的定义: 关系数据库中符合某一级别的关系模式的集合。所谓“第几范式”,是表示关系的某一种级别,R为第几范式就可以写成 R xNF 各范式之间的联系有 5NF 4NF BCNF 3NF 2NF 1NF 并不总是需要达到最高范式,武汉大学计算机学院,71,数据库设计,第一范式(INF) 第一范式(First Normal Form,简写为1NF) 如果一张表不含有多值属性(有时称为重复字段)和内部结构(比如记录类型)的列, 则称该表为第一范式 关系模式S-L-C(S#,SD,SL,C#,G)1NF 关系模式S-L-C存在更新异常、插入异常和删除异常,武汉大学计算机学

31、院,72,数据库设计,第二范式(2NF) 第二范式(Second Normal Form,简称2NF) 若R INF,且每一个非主属性完全函数依赖于键,则R 2NF。 S-L-C: 分析:存在非主属性对键的部分函数依赖 结果:S-L-C1NF,但S-L-C 2NF 分解:将S-L-C分解为:S-L(S#,SD,SL),和S-C(S#,C#,G),武汉大学计算机学院,73,数据库设计,第三范式(3NF) 第三范式(Third Normal Form,简称3NF) 若R2NF,且每一个非主属性不传递函数依赖于键,则R3NF。,武汉大学计算机学院,S-C S-L 分析: S-C的键为(S#,C#),

32、不存在非主属性对键的传递函数依赖。S-L的键为S#,存在非主属性对键的传递函数依赖。 结果: S-C 3NF ; S-L 3NF 分解:将S-L分解为:S-D(S#,SD)和 D-L(SD,SL),74,数据库设计,Boyce-Codd范式(BCNF) Boyce-Codd范式(Boyce-Codd Normal Form,简称BCNF) RINF,且每一个决定因素都包含键,则RBCNF。 在S-D(S#,SD)和 D-L(SD,SL)中: S-D BCNF, D-L BCNF,武汉大学计算机学院,所有的3NF都是BCNF?,75,数据库设计,如果一个模式属于BCNF,在函数依赖的范畴内,彻底

33、消除了更新异常吗?,如果一个模式属于BCNF,在数据依赖的范畴内,彻底消除了更新异常吗?,Yes,No,其它的数据依赖也会产生更新异常,武汉大学计算机学院,76,数据库设计,实例 关系模式TEACHING:学校某一门课由多个教员讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。,有函数依赖吗?,NO,?,有更新异常吗?,武汉大学计算机学院,77,数据库设计,实例 冗余 某一课程增加一名教员 - 必须插入多个元组 某一门课要去掉一本参考书 - 必须删除多个元组,因为存在多值依赖,武汉大学计算机学院,78,数据库设计,多值依赖的定义 设R(U)是属性集U上的一

34、个关系模式。X,Y,Z 是 U 的子集,并且 Z = U-X-Y。关系模式R(U)中多值依赖XY成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。,武汉大学计算机学院,79,数据库设计,多值依赖的定义 例 在关系模式TEACHING(C,T,B)中, 因此,存在多值依赖 C T,武汉大学计算机学院,80,数据库设计,4NF的定义 关系模式R(U)1NF,如果对于每个非平凡多值依赖XY( XY ),X都含有键,则称R(U)4NF。 如果一个关系模式是4NF,则必为BCNF。 例 在关系模式TEACHING(C,T,B)中,存在非平凡的多

35、值依赖 CT 和 CB,键为(C,T,B),而C不是键,因此, TEACHING 4NF。 将TEACHING分解为T1(C,T)和T2(C,B),只存在平凡的多值依赖 CT 和 CB,因此 T1 4NF, T2 4NF,武汉大学计算机学院,81,数据库设计,模式分解 模式分解的属性等价性 如果关系模式R(A)被分解为关系模式R1(A1),R2(A2), Rn(An),且 A= A1 A2 An 则该分解是属性等价的分解 模式分解的无损连接性 如果关系模式R(A)被分解为关系模式R1(A1),R2(A2), Rn(An),且 R= R1 R2 Rn 则该分解是无损连接的分解,武汉大学计算机学院

36、,在对关系模式进行分解的过程中,满足属性等价且有冗余属性的分解一定具有无损连接性吗?,82,数据库设计,武汉大学计算机学院,结论:满足属性等价且有冗余属性的分解 不一定具有无损连接性,83,数据库设计,规范化过程就是模式分解的过程 规范化过程是通过对关系模式的分解来实现的。,武汉大学计算机学院,84,数据库设计,模式分解 关系模式是五元组R(U,D,dom,F)。 模式的分解包括三个方面: (1)属性的分解 (2)函数依赖的分解 (3)关系的分解 分解后产生的模式应与原模式等价: (1)分解后子模式的属性集与原模式属性集相同 (2)保持函数依赖 (3)无损连接性,武汉大学计算机学院,85,数据

37、库设计,模式分解实例 有一个关系模式R(A,B,C),存在函数依赖F=AB, BC ,下面的几个分解中,哪一个最好? 1= R1(A),R2(B),R3(C) 2= R4(A,B),R5(A,C) 3= R4(A,B),R6(B,C) 4= R5(A,C),R6(B,C),武汉大学计算机学院,86,数据库设计,模式分解实例 1= R1(A),R2(B),R3(C) 2= R4(A,B),R5(A,C) 3= R4(A,B),R6(B,C) 4= R5(A,C),R6(B,C),武汉大学计算机学院,87,学完本讲后,你应该能够了解: 数据库系统的体系结构、组成与特点; 关系模型的三要素:数据结构

38、 关系; 基本的关系数据操作 并、交、选择、投影与连接;完整性约束 实体完整性、参照完整性与用户自定义的完整性; 数据库语言SQL的功能与使用方法:数据定义、数据操纵、数据查询与统一控制; 关系数据库设计的两种基本技术:实体-联系(E-R)方法和规范化方法。,本 讲 主 要 目 标,武汉大学计算机学院,88,问 题 讨 论,数据库的三级模式如何支持程序与数据的逻辑独立性与物理独立性? 对于一张表,满足什么关系规则时,就是商业数据库管理系统产品能够接受的表?在函数依赖的范畴内,满足什么约束时,可以避免更新异常? SQL的任何一个嵌套子查询 都可以转换成连接查询吗? 反之如何?,武汉大学计算机学院

39、,89,练 习,确定一个应用环境,利用你的数据库设计知识,采用E-R图和规范化设计方法,设计一个合理的数据库模式; 选一个你熟悉的商用数据库管理系统产品,利用SQL的定义语言(CREATE、ALTER、DROP)或产品提供的工具创建上面设计得到的数据库模式及加载数据; 用SQL的SELECT语句对你的数据库进行一些查询和统计,用INSERT、UPDATE和DELETE语句作一些更新操作; 检测你所使用的商用数据库 管理系统是否提供实体 完整性自动检测;,武汉大学计算机学院,90,问 题 思 考,你考虑过数据库应用系统中的安全性控制、完整性控制、并发控制和故障恢复问题吗?你觉得有必要在应用系统中提供给用户这些功能吗?如果有必要,你如何实现这些控制问题?数据库管理系统提供这些功能吗?如果提供,其语言接口是什么?,武汉大学计算机学院,91,问 题 思 考,在进行数据库设计时,我们主要考虑的是消除更新异常的问题,而较少考虑查询操作的性能。在实现一个数据库应用系统时,我们关注于用户的处理需求和信息需求,而往往忽略了性能需求。你觉得数据库应用系统的性能问题重要吗?而为了提高系统性能,你可以在哪些方面作一些工作?需要具有 哪些方面的知识?数据库 管理系统提供相应的功能吗?,武汉大学计算机学院,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1