资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,20,10,年9月 第,*,页,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数据库原理及应用,主讲:刁仁宏,手机,QQ: 24215272,20,10,年9月 第,2,页,教学目的,了解数据库技术的发展方向。,深入理解数据库系统的基本概念。,掌握数据库设计的一般方法,能够使用,MS SQL Server,进行数据库设计。,具备进行数据库应用系统设计开发的能力,。,20,10,年9月 第,3,页,教学计划,第,1,章 数据库理论基础,8,学时,第,2,章 数据库设计和建模工具,4,学时,第,3,章,SQL Server 2008,简介,1,学时,第,4,章,SQL Server 2008,数据库管理,3,学时,第,5,章,SQL Server 2008,数据表管理,6,学时,第,6,章,T-SQL,编程基础,2,学时,第,7,章 数据查询语言,10,学时,第,8,章 数据库高级编程,10,学时,第,9,章 数据库系统安全管理,2,学时,20,10,年9月 第,4,页,第,1,章 数据库理论基础,本章学习目标:,了解数据库技术的发展简史;,掌握数据库、数据库管理系统、数据库系统、数据库系统体系结构一些概念;,掌握概念模型和数据模型的基本概念;,掌握数据库系统的模式结构及二级映像功能;,掌握关系数据库设计的规范化和非规范化理论。,20,10,年9月 第,5,页,一、 数据库发展简史,数据管理经历了从手工管理阶段、文件管理阶段到数据库管理阶段的变迁。,20,10,年9月 第,6,页,1.,数据管理的诞生,数据库系统的萌芽出现于,60,年代。当时计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需求了,能够统一管理和共享数据的数据库管理系统(,DBMS,)应运而生。,数据模型是数据库系统的核心和基础,各种,DBMS,软件都是基于某种数据模型的。所以通常也按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。,20,10,年9月 第,7,页,2.,关系数据库的由来,网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据的独立性和抽象级别上仍有很大缺陷。用户在对这两种数据库进行存取数据时,仍然需要明确数据的存储结构,指出存取路径。而关系数据库能较好地解决了这些问题。,20,10,年9月 第,8,页,3.,结构化查询语言,SQL,语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。,SQL,集成实现了数据库生命周期中的全部操作。,SQL,提供了与关系数据库进行交互的方法,它可以与标准的编程语言一起工作。,20,10,年9月 第,9,页,4.,面向对象数据库,关系型数据库系统虽然技术很成熟,但其局限性也是显而易见的:它能很好地处理所谓的,“,表格型数据,”,,却对技术界出现的越来越多的复杂类型的数据无能为力。,20,10,年9月 第,10,页,二、数据库系统概述,数据系统的基本概念,数据库管理的基本对象是数据。数据是信息的具体表现形式,可以采用任何能被人们认知的符号,可以是数字(如:,76,、,2010,,¥,100,),也可以是文本,图形,图像,视频等。,20,10,年9月 第,11,页,(,1,)数据库(,DB,),数据库是存储在某种存储介质上的相关数据有组织的集合。在这个定义中特别要注意,“,相关,”,和,“,有组织,”,这些描述,就是说,数据库不是简单地将一些数据堆集在一起,而是把一些相互间有一定关系的数据,按一定的结构组织起来的数据集合。,20,10,年9月 第,12,页,表,1-1,玩具基本信息表,玩具,ID,玩具名称,价格(¥),重量(克),品牌,最低年龄,最高年龄,照片,000001,遥控汽车,38,300,好孩子,3,6,略,000002,芭比娃娃,168,180,芭比,2,9,略,000003,遥控机器人,158,2000,罗本,4,10,略,20,10,年9月 第,13,页,表中的每一行就是一个完整的数据,其语义就是由表头的列名来定义的,就是列名给表中的数据以一定的解释。有这样的多张表(记录不同的信息)就可以构成一个数据库,借助于网络,人们就可以在任何一台上网的机器上查询到自己感兴趣的玩具信息,从而能选到自己满意的玩具,完成网购。,20,10,年9月 第,14,页,J.Martin,给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个,“,数据库集合,”,。,20,10,年9月 第,15,页,(,2,)数据库管理系统(,DBMS,),数据库管理系统是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过,DBMS,访问数据库中的数据,数据库管理员也通过,DBMS,进行数据库的维护工作。,DBMS,用户与操作系统之间的一组数据管理软件,它们能组织、存储、维护、获取数据等。,20,10,年9月 第,16,页,图,1-2,数据库管理系统示例,玩具基本信息管理,应用程序,App1,购物者购买玩具管理,应用程序,App2,数据库管理系统,数据库,20,10,年9月 第,17,页,数据库管理系统主要功能包括:,数据定义功能。,DBMS,提供相应数据语言来定义(,DDL,)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。,数据存取功能。,DBMS,提供数据操纵语言(,DML,),实现对数据库数据的基本存取操作:检索,插入,修改和删除。,数据库运行管理功能。,DBMS,提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。,数据库的建立和维护功能。包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。,数据库的传输。,DBMS,提供处理数据的传输,实现用户程序与,DBMS,之间的通信,通常与操作系统协调完成。,20,10,年9月 第,18,页,(,3,)数据库系统(,DBS,),数据库系统,是由数据库及其管理软件组成的系统。它是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。它是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。,20,10,年9月 第,19,页,(,3,)数据库系统(,DBS,),由数据库(,DB)、,数据库管理系统(,DBMS)、,应用系统(,Application)、,数据管理员(,DBA),和用户(,USER),组成,DB:,是集成的、结构化的,Data,的集合,是,DBMS,的管理对象,DBMS:,是,DBS的核心软件,负责对,DB,的使用、控制和管理,USER:,管理和使用,DB,的人员,DBA:,设计、管理和使用,DB,的人员,Application,:,是应用,DB,中的,Data,的一些软件,20,10,年9月 第,20,页,数据库系统组成,数据库,(Database),应用程序,Application,数据库管理系统,(,DBMS,),用户(,user,),数据库管理员(,DBA,),用户(,user,),图,1-3,数据库系统组成,20,10,年9月 第,21,页,数据库系统软硬件层次,硬件,操作系统,DBMS,,编译系统,应用开发工具软件,应用系统,.net,,,VB,,,VC,DELPHI,SQL Server,,,Oracle,,,Db2,数据库系统软硬件层次,20,10,年9月 第,22,页,2,、数据管理技术的发展,数据管理技术的发展可以大体归为三个阶段:人工管理、文件系统和数据库系统。,20,10,年9月 第,23,页,主要应用:科学计算、数据处理。,数据处理:是对数据的收集、记载、存贮(组织、编码)、分类、排序、检索和维护。,例如:学生成绩的管理、图书情报管理等。,数据处理的发展:手工处理机械处理电子(计算机)数据处理。,计算机对数据的处理经过了如下三个发展阶段:人工管理阶段、文件系统阶段、数据库系统阶段。,计算机数据管理技术的发展,20,10,年9月 第,24,页,(,1,)人工管理阶段,本阶段特点:数据不保存;没有软件系统对数据进行管理;这一时期没有文件的概念,数据的组织必需由程序员自行设计;一组数据对应一个程序,不同程序之间不能相互利用数据。,20,10,年9月 第,25,页,人工管理阶段的数据管理模型,一组数据,程序,20,10,年9月 第,26,页,(2),文件管理系统,前提:,OS,具有了文件管理功能。,本阶段特点:数据与程序文件脱离,数据作为独立的文件,可供多个程序使用,但多个文件之间缺乏联系,从而造成数据冗余,占用存贮空间大。,20,10,年9月 第,27,页,文件系统阶段的数据管理模型,程序1,程序2,程序3,文件3,文件2,文件1,文件管理系统,20,10,年9月 第,28,页,例如:,文件管理系统,图,1-1,文件管理系统示例,玩具基本信息管理,应用程序,App1,购物者购买玩具管理,应用程序,App2,玩具信息文件,File1,购物者信息文件,File2,订单信息文件,File3,购物者购买玩具,先查找文件,File2,,判断此用户是 否合法;如果合法则访问,File1,,判断有无此玩具; 如果有, 则将订单信息写到文件,File3,中,20,10,年9月 第,29,页,优点:,1、数据能够长期保存在磁盘上。,2、有了提供文件与程序之间进行存取方法转换的软件。程序员不必关心数据的物理位置,可以集中精力考虑算法,并且节省了维护程序的工作量。,3、文件形式的多样化。由于有了直接存取设备,也就有了索引文件、链接文件、直接存取文件。,4、数据存取以记录为单位。,20,10,年9月 第,30,页,缺点:,1、编写应用程序不方便。,2、应用程序的依赖性。,3、不支持应用程序并发访问。,4、数据间耦合度差。,5,、数据表示单一。,6,、无安全控制功能。,20,10,年9月 第,31,页,(3),数据库系统阶段,数据库管理技术实质上是一个存储在计算机内的所有相关数据构成的集合(对所有数据实行统一的、集中的、独立的管理,数据独立于程序而存在,并可供给不同的用户而实现共享)。,20,10,年9月 第,32,页,数据库阶段的数据管理模型,应用1,应用2,应用,n,数据库管理系统(,DBMS),数据库(,DB),20,10,年9月 第,33,页,数据库系统有如下优点:,将相互关联的数据集成在一起。在数据库系统中,所有的数据都存储在数据库中,应用程序可通过,DBMS,访问数据库中的所有数据。,较少的数据冗余。由于数据是统一管理的,因此可以从全局着眼,合理地组织数据。,数据可以共享并能保证数据的一致性。数据库中的数据可以被多个用户共享,共享是指允许多个用户同时操作相同的数据。,程序与数据相互独立。,保证数据的安全可靠。,20,10,年9月 第,34,页,三、数据模型,1,、数据和数据模型,(,1,)数据,对事物描述的符号记录称为数据。数据有一定的格式 。数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。,一般来说,数据有静态和动态两大特征:,数据的静态特征包括数据的基本结构、数据间的关系和对数据取值范围的约束。,数据的动态特征是指对数据可以进行的操作以及操作规则。对数据库数据的操作主要有查询数据和更改数据,更改数据一般又包括对数据的插入、删除和修改。,20,10,年9月 第,35,页,2,、数据模型,模型是现实世界特征的模拟和抽象。 根据模型应用的不同目的,可以将模型分为两类或者说两个层次:一是概念模型(也称信息模型),另一个是数据模型。,(1)概念模型,:也称为概念模型或信息模型,它是从数据的应用语义视角来抽取模型并按用户的观点来对数据和信息进行建模。这类模型主要用在数据库的设计阶段,它与具体的数据库管理系统无关。,(2),数据模型:,按计算机系统的观点对数据建模。是数据库系统的核心和基础。 分为以下几个模型:,层次模型(用树型结构组织数据)。,网状模型(用图形结构组织数据)。,关系模型(用简单二维表结构组织数据)。,对象关系模型(用复杂的表格以及其他结构组织数据)。,现实世界中的客观事物的抽象过程,现实世界,概念模型,DBMS,支持的数据模型,现实世界,信息世界,计算机世界,认识抽象,转换,20,10,年9月 第,37,页,组织层数据模型包括数据结构、数据操作和数据完整性约束三大要素。,20,10,年9月 第,38,页,数据结构,数据的结构是所研究的对象类型的集合,这些对象是数据库的组成部分。数据结构包括两类,一类是与数据类型、内容、性质有关的对象,比如关系模型中的域、属性和关系等;另一类是与数据之间关系有关的对象,它从数据组织层表达数据记录与字段的结构。,20,10,年9月 第,39,页,数据操作,数据操作是指对数据库中的各种对象(型)的实例(值)允许执行操作的集合,包括操作及有关的操作规则。它包括:,数据检索和数据更新。,20,10,年9月 第,40,页,数据完整性约束,数据的完整性约束是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其关系所具有的制约和依存规则,用以保证数据的正确、有效和相容,使数据库中的数据值与现实情况相符。,20,10,年9月 第,41,页,(一)概念层数据模型(概念模型),概念模型是对现实世界的抽象反映,它不依赖于具体的计算机系统,是现实世界到机器世界的一个中间层次。,用于信息世界的建模 ,是面向用户、面向现实世界的数据模型,它与具体的,DBMS,无关。,20,10,年9月 第,42,页,概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的工具,也是数据库设计人员和用户之间进行交流的工具,因此,该模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;另一方面它还应该简单、清晰、易于用户理解和便于向机器世界的转换。,常用的概念模型是实体,关系(,Entity-Relationship,,简称,E-R,)模型。,主要涉及三个概念:,实体、属性,和,关系,。,2,、概念层数据模型(概念模型),20,10,年9月 第,43,页,2,、 概念层数据模型,1.,实体(,Entity,),实体是具有相同性质并且彼此之间可以相互区分的现实世界对象的集合。,在关系数据库中,一般一个实体被映射成一个关系表,表中的一行对应一个可区分的现实世界对象(这些对象组成了实体),称为实体实例(,entity instance,)。,在,E-R,图中用矩形框表示具体的实体,把实体名写在框内。,20,10,年9月 第,44,页,2,、 概念层数据模型,2,属性(,Attribute,),实体所具有的特征称为它的属性。是描述实体或者关系(在下面说明)的性质的数据项。,每个实体都有一个标识符(或叫实体的,键,),标识符是实体中的一个属性或者几个属性的组合,每个实体实例在标识符上具有不同的值。,在,E-R,图中用椭圆表示属性,椭圆内写上属性名。,20,10,年9月 第,45,页,2,、 概念层数据模型,3,关系(,Relationship,),实体内部的关系,组成实体的各属性之间的关系 。如,“,职工,”,实体中,假设有,“,职工号,”,和,“,部门经理号,”,。,不同实体之间的关系,例。,“,玩具,”,实体(设有属性:,ID,号、名称、价格、重量、商标,ID,)和,“,商标,”,实体(设有属性:商标,ID,、商标名称、商标说明)之间的,“,商标,ID,”,关系用菱形框表示,框内写上关系名,并用连线将有关的实体连接起来。,20,10,年9月 第,46,页,2,、 概念层数据模型,关系有三种类型,:,一对一(1:1),一对多(,1:n,),多对多(,m:n,),1,n,n,1,m,管理,玩 具,1,部 门,玩 具,有,购买,(,a,),(,b,),(,c,),经 理,商 标,购物者,20,10,年9月 第,47,页,2,、 概念层数据模型,p,n,m,顾 客,玩 具,购买,图,1,7,多个实体之间的关系示例,销售人员,20,10,年9月 第,48,页,2,、 概念层数据模型,用矩形表示实体,矩形框内写上实体名。,实体的属性用椭圆表示,椭圆内写上属性名,并用无向边与其实体相连。,学生,学号,姓名,性别,系,入学时间,20,10,年9月 第,49,页,2,、 概念层数据模型,关系(实体间的联系),用菱形表示,关系以适当的含义命名,名字写在菱形框中;,用无向连线将参加相应联系的实体矩形框分别与菱形相连;,并在连线上标明联系的类型,即1:1,1:,N,或,N:M,如联系具有属性,也要用无向边与该联系连接起来,教学,教师,学生,姓名,工号,姓名,学号,1,N,20,10,年9月 第,50,页,2,、 概念层数据模型,E-R,图的画法,确定系统中的实体,确定每个实体的属性,确定实体间的关系,20,10,年9月 第,51,页,E-R,图的画法,确定每个实体的属性,学生,学号,姓名,性别,系,入学时间,课程,课程号,课程名称,20,10,年9月 第,52,页,E-R,图的画法,确定实体间的关系,学生,课程,学习,M,N,成绩,20,10,年9月 第,53,页,E-R,图的画法,学生,课程,学习,M,N,成绩,学号,姓名,性别,系,入学时间,课程号,课程名称,20,10,年9月 第,54,页,练习,用,E-R,图描述图书信息管理的数据模型,每个借书人有姓名、借书证号和单位属性,每个借书人可以借5本书,每本图书有总编号、分类号、书号、作者、定价和位置属性,同一本书可以相继被几个人借阅。,总编号,分类号,书号,作者,定价,位置,图书,借书人,姓名,借书证号,单位,借书,m,n,时间,20,10,年9月 第,56,页,3,、组织层数据模型,层次模型,网状模型,关系模型,20,10,年9月 第,57,页,层次模型,用树结构表示实体之间联系的模型叫层次模型。,树由节点和连线组成,节点代表实体型,连线表示两实体型间的一对多联系。,树有以下特性:,每棵树有且仅有一个节点无父节点,此节点称为树的根(,Root)。,树中的其它节点都有且仅有一个父节点,20,10,年9月 第,58,页,层次模型示意图,大学,院系,教研室,班级,教辅,一个数据模型可以有多个模型实例,比如某某大学、某某院系,20,10,年9月 第,59,页,网状模型,R1,R3,R2,(,a),简单网(一对多关系),R2,R1,(,b),复杂网(多对多关系),是一个满足下列条件的有向图,可以有一个以上的节点无父节点。,至少有一个节点有多于一个的父节点(排除树结构)。,20,10,年9月 第,60,页,网状模型示意图,科室,医生,病房,病人,20,10,年9月 第,61,页,网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但数据的独立性和抽象有很大缺陷。用户在对这两种数据库进行存取数据时,仍然需要明确数据的存储结构,指出存取路径。关系数据库能较好地解决了这些问题。,1.,关系模型的数据结构,关系模型,20,10,年9月 第,62,页,表示实体以及实体之间关系的模型称为关系数据模型,用二维表来表示实体及其相互联系,字段,记录,20,10,年9月 第,63,页,关系模型中的基本术语,关系,(,表,),关系就是二维表 ,每一列不可再分 ,属性不能重名 ,可交换列的前后顺序 。,元组,(,行,记录,),表中的每一行数据称作是一个元组,属性,(,列,字段,),表中的每一列是一个属性值集,列可以命名,称为属性名 。,20,10,年9月 第,64,页,关系模型中的基本术语,主键(,PK,关键字,码),用于惟一的确定表中的一个元组。,外键(,FK,,外码),当一个表的主键在另一个表中作为一个属性存在时,它就在另外一个表中被称作是外键,外键是可以重复的。,域,属性的取值范围就称为域。,20,10,年9月 第,65,页,关系模型的数据操作,关系模型的操作对象是集合,而不是行,也就是操作的对象以及操作的结果都是完整的表(行的集合,而不只是单行,当然,只包含一行数据的表是合法的,空表或不包含任何数据行的表也是合法的)。而非关系型数据库系统中典型的操作是一次一行或一次一个记录。,20,10,年9月 第,66,页,关系数据操作方式有关系代数和关系演算两种。关系代数是用对关系的运算来表达查询要求的方式,以一个或多个关系作为运算对象,结果为另外一个关系。关系演算是通过元组必须满足的谓词公式来表达查询要求的方式,用满足条件的元组集合表示运算结果。条件成为演算公式。按谓词变元的基本对象分为两种形式:元组关系演算、域关系演算。,20,10,年9月 第,67,页,关系代数运算,设有关系,M,:参加思科培训的学生表(学号、姓名);关系,N,:参加微软培训的学生表(学号、姓名);关系,L,:课程表(课程号、课程名、类别),见表,1-4,。,20,10,年9月 第,68,页,表,1-4,(,a,),M,关系,表,1-4,(,b,),N,关系,表,1-4,(,c,),L,关系,学号,姓名,学号,姓名,课程号,课程名,类别,000001,张三,000001,张三,3101,数据库,必修,000003,张军,000005,马明,3103,计算机文化基础,选修,20,10,年9月 第,69,页,并运算(二元运算),相同属性结构的关系,R,和,S,的元组并运算,其结果由属于,R,或属于,S,的所有元组组成。并运算实现了数据记录的增加和插入操作。例如:,M,关系和,N,关系的并记作,MN,,结果关系,S,与,M,关系或,N,关系具有相同的属性,由两个关系的元组组成。如:,S=MN,,运算结果如表,1-5,所示,表示参加了思科培训和微软培训的学生。,20,10,年9月 第,70,页,差运算(二元运算),即相同属性结构的关系,R,和,S,的元组差运算,其结果由属于,R,而不属于,S,的所有元组组成。,M,关系和,N,关系的差记作,M-N,,结果关系,S,与,M,关系或,N,关系具有相同的属性,由,M,关系中的元组去掉在,N,关系中存在的元组组成。,20,10,年9月 第,71,页,表,1-5,参加了思科和微软,培训的学生,表,1-6,参加了思科但没有参加,微软培训的学生,学号,姓名,学号,姓名,000001,张三,000003,张军,000003,张军,000005,马明,20,10,年9月 第,72,页,交运算(二元运算),即相同属性结构的关系,R,和,S,的元组交运算,其结果由既属于,R,又属于,S,的所有元组组成。,M,关系和,N,关系的交记作,MN,,结果关系,S,与,M,关系或,N,关系具有相同的属性,由,M,关系中的元组去掉不在,N,关系中存在的元组组成。如:,S=MN,,运算结果如表,1-7,所示,表示既参加了思科培训又参加微软培训的学生。,20,10,年9月 第,73,页,表,1-7,既参加了思科又参加微软培训的学生,学号,姓名,000001,张三,20,10,年9月 第,74,页,笛卡儿积(二元运算),定义关系,R,、,S,的笛卡儿乘积为,RS,(r,s)|rRsS,。其结果由既属于,R,又属于,S,的所有元素组成。,M,关系和,L,关系的笛卡儿积记作,ML,,结果关系,S,的属性由,M,关系和,L,关系中的属性组成,元组为,M,关系中的每一个元组与,L,关系中的每一个元组组合而成,如:,S=ML,,运算结果如表,1-8,所示,表示参加思科培训的学生的每门课程。,20,10,年9月 第,75,页,表,1-8,参加了思科培训的学生的每门课程,学号,姓名,课程号,课程名,类别,000001,张三,3101,数据库,必修,000001,张三,3103,计算机文化基础,选修,000003,张军,3101,数据库,必修,000003,张军,3103,计算机文化基础,选修,20,10,年9月 第,76,页,选择运算(一元运算),设,X,是一个命题公式,则在,S,关系上的,X,选择是由在,S,中挑选满足,X,命题的所有元组组成的一个新的关系,这个关系是,S,关系的一个子集,记为,X(S),。例如,对,M,关系和,L,关系笛卡儿积所得的结果关系上的,X,选择,,X,命题是,“,类别,=,必修,”,,可以表示为,类别,=,“,必修,”,(,ML,)。运算结果如表,1-9,所示。,20,10,年9月 第,77,页,表,1-9,选择运算的结果,学号,姓名,课程号,课程名,类别,000001,张三,3103,计算机文化基础,选修,000003,张军,3103,计算机文化基础,选修,20,10,年9月 第,78,页,投影运算(一元运算),定义关系,R,对其属性,i,j,k,的投影为,i,j,k(R)=(ri,rj,rk)|rR ,即仅取,R,指定的属性。如要求参加思科培训的学生表关系,M,和课程表关系,L,笛卡儿积的结果,并投影出学生的姓名和课程名属性,可以表示为:,S,姓名,课程名(,ML,),运算结果如表,1-10,所示。,20,10,年9月 第,79,页,表,1-10,投影运算的结果,姓名,课程名,张三,数据库,张三,计算机文化基础,张军,数据库,张军,计算机文化基础,20,10,年9月 第,80,页,关系演算,关系代数运算是通过,“,规定对关系的运算,”,来进行的,即要求用户说明运算的顺序,通知系统每一步应该,“,怎样做,”,属于过程化语言。而关系演算是通过,“,规定查询的结果应满足什么条件,”,来表达查询要求的,只提出要达到的要求,说明系统要,“,做什么,”,,而将怎样做的问题交给系统去解决,,SQL,语言就是基于此的。,20,10,年9月 第,81,页,关系演算是以数理逻辑中的谓词演算为基础,通过谓词形式来表示查询表达式。根据谓词变元的不同,可将关系演算分为元组关系演算和域关系演算。,20,10,年9月 第,82,页,元组关系演算,元组关系演算是以元组变量作为谓词变元的基本对象。元组关系演算语言的典型代表是提出的,ALPHA,语言,这种语言虽然没有实际应用。,ALPHA,语言是以谓词公式来定义查询要求的。在谓词公式中存在客体变元,这里称为元组变量。元组变量是一个变量,其变化范围为某一个命名的关系。,ALPHA,语言的基本格式是:, ,(,),:操作条件,操作符有,GET,,,PUT,,,HOLD,,,UPDATE,,,DELETE,,,DROP,等,6,种。,20,10,年9月 第,83,页,域关系演算,域关系演算是关系演算的另一种形式。域关系演算是以元组变量的分量即域变量作为谓词变元的基本对象。,20,10,年9月 第,84,页,关系模型的数据完整性约束,数据完整性是指数据库中存储的数据是有意义的或正确的。关系模型中的数据完整性规则是对关系的某种约束条件。它的数据完整性约束主要包括四大类:实体完整性、域完整性、引用完整性和用户自定义完整性。,20,10,年9月 第,85,页,实体完整性,实体完整性指的是关系数据库中所有的表都必须有主键,而且表中不允许存在如下的记录。,无主键值的记录,主键值相同的记录,因为若记录设有主键值,则此记录在表中一定是无意义的。,20,10,年9月 第,86,页,引用完整性,引用完整性有时也称为参照完整性。现实世界中的实体之间往往存在着某种关系在关系模型中,实体以及实体之间的关系在关系数据库中都用关系来表示,这样就自然存在着关系,(,实体,),与关系,(,实体,),之间的引用关系。引用完整性就是描述实体之间关系的。,20,10,年9月 第,87,页,域完整性,域完整性或语义完整性。确保了只有在某一合法范围内的值才能存储到一列中。可以通过限制数据类型、值的范围和数据格式来实施域完整性。例如,人的年龄的取值范围为,0,150,。,20,10,年9月 第,88,页,用户自定义完整性,任何关系数据库系统都应该支持实体完整性、引用完整性和域完整性。除此之外,不同的数据库应用系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户自定义完整性就是针对某一具体应用领域定义的数据约束条件,它反映某一具体应用所涉及的数据必须要满足应用语义的要求。,20,10,年9月 第,89,页,一个数据库管理系统应该具备如下功能:,数据定义功能:定义数据的结构、数据与数据之间的关联关系、数据的完整性约束等;,数据操纵功能:实现对数据库中数据的操纵,包括插入、删除和修改数据;,数据查询功能:实现灵活的数据查询功能,使用户可以方便地使用数据库中的数据;,数据控制功能:实现对数据库数据的安全性控制、完整性控制等各方面的控制功能;,数据管理功能:实现数据库的备份和恢复;,数据通信功能:在分布式数据库或提供网络操作功能的数据库中还必须提供数据的通信功能。,还有性能优化、并发控制等,20,10,年9月 第,90,页,四、 数据库系统的模式结构,三级模式结构,内模式,(存储模式),是最接近物理存储的,也就是数据的物理存储方式;,描述数据库的物理存储结构,由,DBMS,提供的工具或语言完成,模式,(逻辑模式、概念模式,),是介于内模式和外模式之间的中间层次。描述的是数据的全局逻辑结构,.,现实世界中数据库用户的数据抽象,描述整个数据库的结构,着重描述实体、属性、关系和约束,外模式,(子模式、用户模式),是最接近用户的,也就是用户所看到的数据视图;描述的是数据的局部逻辑结构 。,描述特定用户组感兴趣的那部分的数据库,20,10,年9月 第,91,页,模式,内模式,外模式,1,数据库,DB,应用,A,(公共用户视图),数据库系统的三级模式结构,外模式,2,外模式,N,(存储视图),模式,(单个用户视图),内模式,外模式,应用,B,应用,C,应用,M,应用,N,20,10,年9月 第,92,页,三级模式结构的优点,保证数据的独立性,简化了用户接口,有利于数据共享,利于数据的安全保密,20,10,年9月 第,93,页,数据库的二级模式映像功能,数据库管理系统在三个模式之间提供了两层映像:,外模式,/,模式映像,定义了该外模式与模式之间的对应关系。通常包含在各自的外模式描述中。,模式,/,内模式映像,数据库的逻辑结构与存储结构之间的对应关系,该映像通常包含在模式描述中 。,20,10,年9月 第,94,页,数据库的二级模式映像实例,假设数据库的模式中存在玩具表:,Toys,(,cToyID,,,vToyName,,,vToyDescription,,,mToyRate,,,siToyQoh,,,siToyWeight,,,imPhoto,),有两个用户在共享该玩具表,用户,A,(应用,1,)在处理玩具的玩具号(,cToyID,),玩具名(,vToyName,)和玩具价格(,mToyRate,)的数据。用户,B,(应用,2,)在处理玩具的玩具号(,cToyID,),玩具名(,vToyName,)和玩具照片(,imPhoto,)的数据。用户习惯中午方式操作,则分别定义两个外模式:玩具信息,A,(玩具号,玩具名,玩具价格)和玩具信息,B,(玩具号,玩具名,玩具重量)。假设该玩具表一链表的结构进行存储,如图,1-6,所示。,20,10,年9月 第,95,页,Toys,(,cToyID,,,vToyName,,,mToyRate,,,imPhoto,),struct Toys,Char ToyID6;,Char ToyName20;,Char ToyRate8;,Char Photo30;,Struct_Toys *next;,*Toys,玩具信息,A,(玩具号,玩具名,玩具价格),用户,A,(应用,1,),模式,图,1-6,三级模式结构实例,玩具信息,A,(玩具号,玩具名,玩具照片),内模式,用户,B,(应用,2,),外模式,2,外模式,1,20,10,年9月 第,96,页,五、关系数据库设计的规范化和非规范化,表,1-4,带数据示例的表,学号,姓名,学期,数学,英语,2004001,张三,1,40,65,2004001,张三,2,56,48,2004002,李四,1,93,84,2004002,李四,2,85,90,如果修改一个学生的地址,就需要修改和那个学生相关的多行内容,否则将引起数据的不一致。,更新异常,插入、修改、删除数据可能导致不一致性。,不一致性,数据重复时,更容易引发错误。,无谓,地占用额外的磁盘空间。,20,10,年9月 第,97,页,五、关系数据库设计的规范化和非规范化,要设计出一个好的数据库,应该遵循下列规则:,每张表中都应有一个标识列。,每张表中只能存放一种实体的数据。,应避免接收带有,NULL,值的列。,应避免值或列的重复。,20,10,年9月 第,98,页,(,一) 规范化设计,规范化将导致满足某些特定规则并代表某些范式的表的形成。,范式用于确保数据库中不存在各种类型的异常和不一致。,表结构总是属于某个特定的范式。,各范式之间的关系,非规范化关系,1NF,2NF,3NF,BCNF,20,10,年9月 第,99,页,1,第一范式(,1NF,),当表中的每个单元含且仅含一个值时,这个表叫做第一范式(,1 NF,)。,Ecode,Dept,ProjCode,Hours,E101,Systems,P27,P51,P20,90,101,60,E305,Sales,P27,P22,109,98,E508,Admin,P51,P27,NULL,72,Ecode,Dept,ProjCode,Hours,E101,Systems,P27,90,E101,Systems,P51,101,E101,Systems,P20,60,E305,Sales,P27,109,E305,Sales,P22,98,E508,Admin,P51,NULL,20,10,年9月 第,100,页,(,一) 规范化设计,函数依赖,给定一个关系(你可以称其为表,也可以称其为关系),R,,如果,R,中,A,的每个值都与,B,的某个确定值相对应,则属性,A,函数依赖于,B,。换句话说,当且仅当对于,B,的每个值都能够在,A,中找到一个确定的值时,属性,A,函数依赖于,B,。属性,B,称为决定因子。,Code,Name,City,E1,Mac,Delhi,E2,Sandra,CA,E3,Henry,Paris,定义:设,R(U),是属性集,U,上的关系模式。,X,Y,是,U,的子集。若对于,R(U),的任意一个可能的关系实例,r,r,中不可能存在两个元组在,X,上的属性值相等,而在,Y,上的属性值不等,则称,X,函数确定,Y,或,Y,函数依赖于,X,,记作,X-Y,例:姓名,年龄 这个函数依赖只有在没有同名人的条件下成立。,20,10,年9月 第,101,页,2,第二范式(,2NF,),当一个表是,1 NF,且一行中的每个非主属性都依赖于整个关键字(不仅仅是关键字的一部分)时,该表就可以称作第二范式。,定义:若关系模式,R,1NF,,并且每一个非主属性都完全依赖于,R,的码,则为2,NF。,定义:若依赖于,X,,并且对于的任何一个真子集,X,,,都有,Y,不依赖于,X,则称,Y,完全依赖于,否则称部分依赖于。,例:成绩表,(,学号,课程号,,成绩,),住所(,学号,,系别,住址,),20,10,年9月 第,102,页,2,第二范式(,2NF,),Ecode,ProjCode,Dept,Hours,E101,P27,Systems,90,E305,P27,Finance,10,E508,P51,Admin,NULL,E101,P51,Systems,101,E101,P20,Systems,60,E508,P27,Admin,72,考查下表,主键是(,ecode projcode),Dept,依赖于,Ecode,,所以,dept,不完全依赖于码(,Ecode projcode)。,不属于第二范式。,20,10,年9月 第,103,页,2,第二范式(,2NF,),EmployeeDept,Project,ECode,Dept,ECode,ProjCode,Hours,E101,Systems,E101,P27,90,E30,Sales,E101,P51,101,E50,Admin,E101,P20,60,E305,P27,10,E508,P51,NULL,E508,P27,72,把有部分依赖关系的列放入另一张表,这样就成了第二范式。,20,10,年9月 第,104,页,3,第三范式(,3NF,),当一个关系是,2 NF,,且其中的每个非关键字属性仅函数依赖于主关键字时,这样的关系称为,3 NF,。,Ecode,Dept,DeptHead,E101,Systems,E901,E305,Finance,E909,E402,Sales,E906,E508,Admin,E908,E607,Finance,E909,E608,Finance,E909,考查下表,主关键字是:(,ecode),Dept,depthead,都完全依赖于主关键字,ecode。,所以是第二范式。但是,depthead,也依赖于非主属性,dept,,所以不是第三范式。,20,10,年9月 第,105,页,3,第三范式(,3NF,),表,1-11,(,a,),Employee,表,1-11,(,b,),Department,ECode,Dept,Dept,DeptHead,E101,Systems,Systems,E901,E305,Finance,Sales,E906,E402,Sales,Admin,E908,E508,Admin,Finance,E909,E607,Finance,E608,Finance,此两表是第三范式,20,10,年9月 第,106,页,(,一) 规范化设计,一般:,如果是关系型数据库,都满足第一范式,如果表的主关键字只有一列,则满足第二范式。,20,10,年9月 第,107,页,(二)非规范化设计,规范化的最终产物是一系列相关的表,这些表构成了数据库。但有的时候,为了得到简单的输出,你得连接多个表。这影响了查询的性能。在这种情况下,更明智的做法是引入一定程度的冗余,包括引入额外的列或额外的表。为了提高性能,在表中故意引入冗余的做法称为非规范化,在下列情况下可以考虑进行非规范化处理:,大量频繁的查询过程所涉及的表都需要进行连接。,主要的应用程序在执行时要将表连接起来进行查询。,对数据的计算需要临时表或进行复杂的查询。,20,10,年9月 第,108,页,本章小结,本章主要介绍了数据库系统的相关概念,包括数据库、数据库管理系统和数据库系统,并结合数据库管理技术的发展来介绍数据库的主要特点。数据模型是数据系统的基础、核心,其中概念模型书各种数据模型的共同基础,它和数据库管理系统无关,主要用来按用户的观点对现实世界进行抽象和建模,建成的模型叫,E-R,模型。组织层数据模型是从数据的组织方式的角度来描述信息的,重点讲述了关系模型。数据库系统具有的三级映像功能保证了数据具有较高的逻辑独立性和物理独立性。关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。关系模式规范化设计的基本思想是通过对关系模式进行分解,用一组等价的关系子模式来代替原有的关系模式,消除数据依赖中不合理的部分,使得一个关系仅描述一个实体或者实体间的一种联系。,学习这一章的应该把注意力放在对基本概念的理解上,好为后面的学习打下良好的基础。,20,10,年9月 第,109,页,思考题,设计并规范一些表,来记录和完成一下功能:,现在有一家网上玩具商店,通过网络销售玩具,购物者通过注册自己的信息成为合法用户,才能购买玩具。,商店有各种不同厂商,适合不同年龄层次人的玩具。,购物者购买玩具可以给自己或送给别人(暂且都叫接受者)投递时需要填写接受者的详细信息。,购买完成后,玩具经过包装通过各种不同的投递方式出货。,要求详细记录每个购物者的每笔交易和发生的费用,包括玩具的价格,包装的价格,投递的价格等等。,
展开阅读全文