SQL Server 2008数据库设计教程第1章

上传人:油条 文档编号:2742346 上传时间:2017-07-27 格式:PPTX 页数:38 大小:721.74KB
返回 下载 相关 举报
SQL Server 2008数据库设计教程第1章_第1页
第1页 / 共38页
SQL Server 2008数据库设计教程第1章_第2页
第2页 / 共38页
SQL Server 2008数据库设计教程第1章_第3页
第3页 / 共38页
SQL Server 2008数据库设计教程第1章_第4页
第4页 / 共38页
SQL Server 2008数据库设计教程第1章_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《SQL Server 2008数据库设计教程第1章》由会员分享,可在线阅读,更多相关《SQL Server 2008数据库设计教程第1章(38页珍藏版)》请在金锄头文库上搜索。

1、SQL Server 2008,数据库设计教程,第1 章 数据库系统基础,数据库系统概述关系数据库,1.1 数据库系统概述,数据不能长期保存。没有专门的软件对数据进行管理。数据与程序不具有独立性。,1.1.1 数据管理的发展,1程序管理方式阶段,20世纪50年代中期以前的数据管理处于程序管理方式阶段。在该阶段,计算机主要用于科学计算。此时的数据管理主要有以下几个特点。,2文件系统阶段,20世纪50年代后期至60年代中后期,计算机开始大量地用于数据处理领域。在硬件方面,出现了可直接存取的外部存储器(简称外存)。在软件方面,出现了高级语言和操作系统。操作系统中的文件系统专门用来管理外存上的数据等文

2、件。这一时期被称为文件系统阶段,该阶段的数据管理主要有以下几个特点。,数据缺乏独立性。数据冗余度大。数据无集中管理。,3数据库系统阶段,从20世纪60年代后期开始,计算机应用与管理的规模更加庞大,需要计算机管理的数据量急剧增长,并且对数据共享的需求日益增强。此时,文件系统阶段的数据管理方法已无法满足应用系统的需要。为了解决数据的独立性问题,实现数据的统一管理,达到数据共享的目的,数据库技术得到了发展。这一时期称为数据库系统阶段,该阶段的数据管理主要有以下几个特点。,实现数据共享,减小数据冗余。采用特定的数据模型。数据具有较高的独立性。有统一的数据控制功能。,1.1.2 数据库系统的组成,1数据

3、库,数据库可以理解为存放数据的仓库,在数据库中除了存储数据,还存储数据之间的联系。数据库系统中包含若干个设计合理、满足应用需要的数据库。,2数据库管理系统,数据库可以理解为存放数据的仓库,在数据库中除了存储数据,还存储数据之间的联系。数据库系统中包含若干个设计合理、满足应用需要的数据库。,3硬件及软件环境,运行数据库系统的计算机需要有足够大的内部存储器(简称内存)、大容量的外存和较高的通道能力,以支持对外存的频繁访问;还需要有足够数量的脱机存储介质来存放数据库备份。在软件方面,首先需要有相应的操作系统的支持;如果使用网络数据库管理系统,还需要安装必要的协议及其他网络通信软件。,4数据库管理员,

4、数据库管理员(DBA, Database Administrator)的职责包括定义并存储数据库的内容,监督和控制数据库的使用,负责数据库的日常维护,必要时重新组织和改进数据库。,5用户,数据库系统的用户分为专业用户和最终用户。专业用户负责设计应用系统的程序模块,以实现对数据库的访问操作。最终用户主要负责对数据库进行查询操作或通过数据库应用系统提供的界面来使用数据库。,1.1.3 数据库管理系统的功能,1数据定义功能,数据库管理系统提供数据定义语言(DDL, Data Definition Language)。通过数据定义语言,用户可以定义数据库的各类对象,如表、视图、存储过程等。标准SQL语

5、言提供用以定义数据库对象的CREATE语句、修改数据库对象的ALTER语句以及删除数据库对象的DROP语句,它们都属于数据定义语言。,2数据操纵功能,数据库管理系统提供数据操纵语言(DML, Data Manipulation Language)。通过数据操纵语言,用户可以对数据库中的数据进行操纵。在标准SQL语言中,使用SELECT语句对数据进行查询,使用INSERT语句插入数据,使用UPDATE语句更新数据,使用DELETE语句删除数据,这些语句都属于数据操纵语言。,3数据库运行控制功能,数据库管理系统提供数据库运行的控制功能,主要包括以下几方面。,完整性控制。并发控制。安全控制。数据库恢

6、复功能。数据字典。,1.1.4 数据模型,数据库结构的基础是数据模型。数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。数据模型通常由数据结构、数据操作和完整性约束三要素组成。下图所示是数据模型的分类。,数据模型的分类,1实体联系模型,实体联系模型(E-R模型)是目前使用非常广泛的数据库设计工具。该模型概念简单、使用方便并且独立于具体的数据库管理系统,数据库设计人员、开发人员和用户可以通过该模型进行交流。下面以P. P. S. Chen提出的实体联系方法为例,介绍实体联系图(E-R图)的绘制方法。实体联系图中包括三个主要的要素。1)实体型。2)实体之间的联系。3)属性。

7、,一对多联系(1n)多对多联系(mn),在实体联系模型中,用椭圆形表示属性,并用连线与实体连接起来。如果属性较多,为使图形更加简明,有时也将实体与其相应的属性单独用列表表示。下图是一个关于图书出版情况的实体联系模型。,图书出版情况的实体联系模型,2层次模型,用倒立的树形结构表示实体及实体之间联系的模型称为层次模型。在层次模型中,数据记录之间使用链接指针来体现联系。层次模型的特点如下。,有且仅有一个结点无父结点,该结点称为根结点。除根结点以外的其他结点有且仅有一个父结点。,层次模型可以方便地表示实体之间一对多的联系,但无法表示实体之间多对多的联系。下图是图书出版的层次模型。,图书出版的层次模型,

8、3网状模型,用网状结构表示实体及实体之间联系的模型称为网状模型。在网状模型中,数据记录之间也是使用链接指针来体现联系的。在网状模型中,可以有多个结点无父结点;允许结点有多于一个的父结点。网状模型可以表示实体之间多对多的联系。下图是图书出版的网状模型。,图书出版的网状模型,4关系模型,20世纪70年代,层次模型和网状模型的应用非常普遍。20世纪80年代,关系模型逐步取代了层次模型和网状模型。目前使用的数据库管理系统几乎都支持关系模型。关系模型使用二维表格的形式来表示实体之间联系的数据模型。例如,图书出版的关系模型可以表示为以下四个二维表格的集合,如下表所示。,图书关系表格 出版社关系表格,作者关

9、系表格 编写关系表格,1.2 关系数据库,1.2.1 关系模型,1关系术语,1)关系(Relations)。一个关系就是一个二维表格。二维表格的名字就是关系的名字。在图书出版系统中,包括图书、出版社、作者和编写四个关系。这四个关系分别使用四个二维表格来组织数据。2)属性(Attributes)。关系中的命名列称为关系的属性。同一个关系中的属性不能重名。有时,直接将一个属性称为一个列(Column)或一个字段(Field)。作者关系包括三个属性,即作者编号、作者姓名和电话。3)域(Domains)。域是针对属性而言的,属性的域是指属性的取值范围。在作者关系中,可以将电话属性定义为也就是说,电话属

10、性的域(取值范围)是最多包含8个字符的字符串。,电话char(8),4)元组(Tuples)。关系中的行称为关系的元组。有时,直接将一个元组称为一行(Row)或一个记录(Record)。5)主关键字(Primary Keys)。关系的主关键字是指关系中的某个属性或最小属性组,该属性或属性组的值能够唯一地标识关系中的每一个元组。6)候选关键字(Candidate Keys)。在出版社关系中,由于出版社不可能重名,所以出版社名也可以起到唯一标识每一个出版社的作用,即出版社名也满足作为该关系主键的条件,故可以将出版社名定义为关系的侯选关键字。候选关键字简称候选键。7)外关键字(Foreign Key

11、s)。在一个关系中,如果存在某个属性或属性组能够匹配其他关系中的主键或侯选键,则称这个属性或属性组是该关系的外关键字(简称外键)。,8)关系模式(Relation Schemas)。二维表的结构称为关系模式。关系模式可以用来描述关系的结构。在描述一个关系时,通常包含以下几个元素。,关系名。关系的属性。关系的主键:可以用下划线或PK来标识。关系的外键:可以用FK来标识。,图书出版系统可以使用以下的关系模式来描述。,图书(图书编号,书名,定价,出版社编号FK)出版社(出版社编号,出版社名)作者(作者编号,作者姓名,电话)编写(图书编号FK1,作者编号FK2,署名次序),2关系模型的特点,(1)关系

12、必须规范化规范化是指关系数据库中的每一个关系必须满足一定的要求。规范化有许多层次,但对关系最基本的要求是每个属性的值必须是不可分割的最小单元,即表中不能再包含表。(2)模型概念单一在层次模型和网状模型中,使用链接指针来表示实体之间的联系。而在关系模型中,无论是实体还是联系都用关系来表示。例如,图书和作者之间有编写的联系,而这个联系可以用一个关系来表示。(3)集合操作在关系模型中,无论是操作的对象还是操作的结果都是元组的集合,即关系。,1.2.2 关系数据库的完整性,数据库的完整性是确保数据库中的数据一致、正确、符合企业规则的一种规定。,1空,空(NULL)表示某个属性对当前元组的取值未知或不可

13、用。空不同于0或空字符串,0或空字符串都是值,而空是一种状态。在作者关系中,有两位作者没有提供联系电话,所以这两位作者对应的元组的电话属性为空。,2实体完整性,实体完整性(Entity Integrity)要求基本关系中组成主键的属性不可以为空。主键的取值对于任意元组来说都是唯一的,所以主键可以起到标识一个关系中每一个元组的作用。如果主键为空,则它就无法标识关系中的元组。,3域完整性,域完整性(Domain Integrity)要求关系属性的取值应该在正确的范围内。例如,在定义作者关系的作者编号属性时,定义的形式为,作者编号char(3) NOT NULL,表示作者编号属性的取值是长度最多为3

14、个字符的字符串,该属性的取值不可以超出这个范围,而且该属性的取值也不可以为空(NOT NULL)。在有些情况下,通过定义属性的类型无法准确定义该属性的域,这时就需要使用约束、规则等方法来实施域完整性控制。,4参照完整性,参照完整性(Referential Integrity)要求,如果一个关系中存在外键,那么这个外键的值应该与其所对应的父关系中的主键或候选键的某个值匹配,或者这个外键的值为空。,5用户自定义的完整性,为了体现企业实际运行业务的规则或者为了保护数据的安全等,用户可以使用约束、规则、触发器等在数据库中添加其他一些规则,我们将其称为用户自定义的完整性。,1.2.3 关系数据库的规范化

15、,1操作异常问题,前面,我们将图书出版系统中的数据分别存储在四个关系中,如果将全部的数据都存储在一个关系中(见下表),会出现怎样的问题呢?,图书出版关系,(1)插入异常如果要将一名没有出版过图书的新作者的信息插入到关系当中,那么这个新的元组的图书编号属性应该是空。然而,图书编号是关系的主键,主键为空违反了实体完整性的要求,所以这名新的作者信息是无法插入到该关系中的。如果将图书出版信息分别存放在四个关系中,就不会出现以上的异常。因为作者信息单独存储在作者关系中,只需直接将新作者的信息插入到作者关系中即可。(2)更新异常当要更新关系中的数据时,如更新A04号作者高峰的电话号码时,因为该作者的信息在

16、关系中出现多次,所以需要将所有的A04号作者的电话号码同时正确更新,否则就会出现数据不一致的现象。如果将图书出版信息分别存放在四个关系中,那么只需要在作者关系中将对应于A04号作者的一个元组的电话号码进行更新即可,所以不会出现数据不一致的问题。,(3)删除异常在图书出版关系中,如果将编号为B02的图书信息删除掉,那么P02、机电出版社的信息也会被同时删除,或者说机电出版社的信息就无法保存在这个关系中了。如果将图书出版信息分别存放在四个关系中,那么删除编号为B02的图书信息的操作中涉及图书和编写两个关系,不影响出版社关系,所以P02、机电出版社的信息依然可以保留下来。由此可见,在关系数据库设计过程中,如果关系的设计不规范,就会为今后关系的操作埋下隐患。在介绍关系规范化的问题之前,下面先来了解一下函数依赖的概念。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号