设计和创建数据库.ppt

上传人:小飞机 文档编号:6343933 上传时间:2023-10-18 格式:PPT 页数:33 大小:206.99KB
返回 下载 相关 举报
设计和创建数据库.ppt_第1页
第1页 / 共33页
设计和创建数据库.ppt_第2页
第2页 / 共33页
设计和创建数据库.ppt_第3页
第3页 / 共33页
设计和创建数据库.ppt_第4页
第4页 / 共33页
设计和创建数据库.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《设计和创建数据库.ppt》由会员分享,可在线阅读,更多相关《设计和创建数据库.ppt(33页珍藏版)》请在三一办公上搜索。

1、第3章 设计和创建数据库,数据库是所有数据库对象的承载,也是SQL Server 2008相关知识学习的起点。本章将重点学习使用SQL Server 2008进行设计和创建的方法。首先介绍数据库设计的相关内容:模型结构、关系与范式。接下来讲述SQL Server 2008中的系统数据库,以及它们在SQL Server 2008中的使用和所提供的管理作用,最后讲述如何创建用户数据库和有关数据库的管理。,3.1 数据库设计模型与结构,现实世界中,个体间总存在着某些联系。反映到信息世界中,就是实体的联系,由此构成实体模型。反映到数据库系统中,是记录间的联系。将实体模型数据化,转化成数据模型,这个过程

2、就是我们抽象实际数据和设计数据库的过程。,3.1.1 数据模型的基本概念,在数据库中,用数据模型(Data Model)这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的模拟。根据应用目的,模型分为两个层次。,3.1.2 层次模型,层次数据模型的优点:数据模型比较简单,操作方便;对干实体间联系是固定的,且预先定义好应用系统,性能较高;提供良好的完整性支持。层次数据模型的缺点:不适合于表示非层次性的联系;对插入和删除操作的限制比较多;查询子女节点必须通过双亲节点;由于结构严密,层次命令趋于程序化。,3.1.3 网状模型,网状数据模型是一种比层次模型更具普遍性的结构

3、。它去掉了层次模型的两个限制,允许多个节点没有双亲节点,允许节点有多个双亲节点。此外,它允许两个节点之间有多种联系复合联系)。网状数据模型的优点:能够更为直接地描述现实世界;具有良好的性能,存取效率较高。网状数据模型的缺点:其数据定义语言极其复杂;数据独立性较差。由于实体间的联系本质上是通过存取路径指示的,因此应用程序在访问数据时要指定存取路径。,3.1.4 关系模型,1关系模型的操作与完整性约束关系数据模型的操作主要包括查询、插入、删除和更新数据。2关系模型的优、缺点关系数据模型的优点如下:关系模型是建立在严格的数学概念的基础上的,无论实体还是实体之间的联系都用关系来表示。数据的查询结果也是

4、关系(表),因此,概念单一、取数据结构简单、清晰。关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库的开发工作。关系数据模型的缺点:由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此,为了提高性能,必须对用户的查询请求进行优化,从而增加了另外开发数据库管理系统的负担。,3.2 关系数据库设计实体与关系,在上一节中我们学习了数据库设计中数据模型的发展过程和关系数据模型的基本概念、特点。对于关系型数据库来说,它就是立足于关系数据模型,描述实体之间的关系。因此本节中我们将针对关系型数据模型讨论实体与关系的联系。,3.2.1 实体,实体表示

5、的是一类事物,其中的一个具体事物称为该实体的一个实例。例如“ABC117004”,“史记(3册)”,“72.00”,“中国长安”则具体表示了一本书,它是图书实体的一个实例。如果某个属性或属性的组合能唯一地标识出实体中的每一行,则可以选择该属性或属性的组合作为实体标识符。,3.2.2 联系,实体不是孤立的,实体与实体之间有着密切的联系。实体间的联系分为1对1、1对多和多对多3种。例如,学校实体和学生实体之间是1对多的联系,学生和课程实体之间是多对多的联系。可以使用实体关系图(E-R图)描述实体与实体间的联系。如图3.2所示,两个实体之间有3种联系(1:1、1:n和m:n)。,3.2.3 E-R模

6、型,数据库设计就是将现实世界的数据组织成数据库管理系统所需的数据模型。实体联系方法简单、实用,通常使用它的工具E-R图来描述现实世界的信息结构,并将所描述的结果称为E-R模型。E-R模型可以转换为DBMS所支持的数据模型。如图3.2所示,E-R图有以下3个要素。实体:使用矩形框表示,框内标注实体名称。属性:使用椭圆形框表示,并用连线与实体连接起来。如果属性较多,为使图形更加简明,有时也将实体与其属性另外单独用列表表示。实体之间的联系:使用菱形框表示,框内注明联系名称,并用连线将菱形框分别与有关实体相连,并在连线上注明联系类型。,3.3 关系数据库设计范式与规范化,通过E-R模型能够对实体与关系

7、之间进行基本的映射,开始关系型数据库的设计。但是,还有一个很重要的问题,关系模型要求关系必须是规范化的,即要求关系模型必须满足一定的规范条件,即本节中将要学习到的范式。,3.3.1 规范化与范式,规范化过程基于一系列级别,其中每个级别都达到一定水平的正确性,或遵守着一系列特定“规则”。这些规则通常称为“范式”。设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)

8、、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。,3.3.2 第一范式1NF,在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于员工信息,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而言之,第一范式就是无重复的列,如图3.3所示。图3.3(a)符合1NF 图3.3(b)不符合1NF,3.3.3 第二范

9、式2NF,第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。,3.3.4 第三范式3N

10、F,满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。简而言之,第三范式就是属性不依赖于其它非主属性。在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在“ABC”的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系:关键字段非关键字段x非关键字段y,3.3.5 其它范式与规范化的好处,除了最常用的第一范式、第二范式和第三范式外,还有不太常用的几种范式,如下所示:BCNF范式指非主键字段必须依赖于整

11、个主键字。在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合BCNF。第四范式用于处理由复杂的复合主键所导致的问题。如果将两个相互独立的属性与第三个属性一起组合为一个主键,并且如果没有第三个属性,仅靠这两个属性不能在实体中真正地起到唯一标识的作用,那么它就违反了第四范式。第五范式要求能从由原始表分解和转换而得的新表中精确重建出原始表。利用第五范式可以确定在,3.3.6 非规范化,非规范化与规范化完全相反,此时要在表中引入数据冗余,以减少表联接的数目,潜在地加速数据访问。尽管使数据规范化会带来更高的效率,有时,使数据非规范化将会是更好的选择。不要只因为别人认为

12、数据应该彻底规范化,就这样去做,具体如何应该根据需要而定。尽管使数据非规范化的缺点很多,它将会带来重复和多余的信息(这些信息可以通过规范化放置在另一个表中,然后在查询时联接表即可)。这既会产生性能问题,又要占用较大的数据存储空间。,3.4 SQL Server 2008的预设数据库,每个SQL Server都包含两种类型的数据库:系统数据库和用户数据库。系统数据库存储有关SQL Server的信息,SQL Server使用系统数据库来管理系统,例如,下面将要介绍的master数据库、model数据库、msdb数据库和tempdb数据库等。而用户数据库由用户来建立,如,图书管理信息数据库。SQL

13、 Server可以包含一个或多个用户数据库。,3.4.1 master数据库,图3.4 master数据库,3.4.2 tempdb数据库,tempdb数据库是临时数据库,在SQL Server 2008每次启动时都被重新创建,因此该数据库在系统启动时总是空的,上一次的临时数据库都被清除掉了。临时表和存储过程在连接断开时自动清除,而且当系统关闭后将没有任何连接处于活动状态,因此tempdb数据库中没有任何内容会从SQL Server的一个启动工作保存到另一个启动工作之中。默认情况下,在SQL Server 2008运行时,tempdb数据库会根据需要自动增长。不过,与其他数据库不同,每次启动数

14、据库引擎时,它会重置初始大小。,3.4.3 model数据库,Model(模板)数据库为用户新创建的数据库提供模板和原型,它包含了用户数据库中应该包含的所有系统表的结构。当用户创建数据库时,系统会自动地把model数据库中的内容复制到新建的用户数据库中。熟悉Microsoft Word的用户都会有这样的体会,当修改了文档的页面设置,并把该设置作为默认设置保存起来时,在此次之后新建的任何文档的格式都会默认为该设置格式。也就是说,在把被修改过的页面设置作为默认保存的同时,也就修改了Microsoft Word中基于所有新建文档的Normal模板,用户在系统中新创建的所有数据库的内容,最初都与该模板

15、数据库具有完全相同的内容。,3.4.4 msdb数据库,msdb数据库供SQL Sewer 2008代理程序调度警报作业以及记录操作时使用。当很多用户在使用一个数据库时,经常会出现多个用户对同一个数据的修改而造成数据不一致的现象,或是用户对某些数据和对象的非法操作等。为了防止上述现象的发生,SQL Server中有一套代理程序能够按照系统管理员的设定监控上述现象的发生,及时向系统管理员发出警报。那么当代理程序调度警报作业、记录操作时,系统要用到或实时产生许多相关信息,这些信息一般存储在msdb数据库中。,3.4.5 AdventureWorks和AdventureWorksDW示例数据库,Ad

16、ventureWorks和AdventureWorksDW是SQL Server 2008中的示例数据库(需要在安装过程中选择安装)。这些数据库基于一个自行车生产公司,以一种简单的、易于理解的方式来展示SQL Server 2008的新功能,如Reporting Services、CLR(公共语言运行时)特性以及许多其他特性。,3.5 使用SQL Server 2008创建数据库,在一个SQL Server 2008系统中,有多种方法可以创建用户数据库,一种是使用第2章中介绍的SQL Server Management Studio对象资源管理器建立数据库;另一种是使用Transact-SQL

17、命令创建数据库,它可以把创建数据库的脚本保存下来,在其他计算机上运行以创建相同的数据库。此外,利用系统提供的创建数据库向导也可以创建数据库。创建用户数据库之前,必须先确定数据库的名称、数据库所有者、初始大小、数据库文件增长方式、数据库文件的最大允许增长的大小,以及用于存储数据库的文件路径和属性等。下面分别介绍这两种创建数据库的方法。,3.5.1 使用SQL Server Management Studio对象资源管理器建立数据库,使用SQL Server Management Studio对象资源管理器建立数据库包含如下步骤:(1)在开始菜单中单击【所有程序】|【Microsoft SQL S

18、erver 2008】|【SQL Server Management Studio】命令,打开SSMS,如图3.6所示。(2)在SSMS左侧的【对象资源管理器】窗口中右击【数据库】分支,在弹出的快捷菜单中选择【新建数据库】命令,弹出【新建数据库】对话框,如图3.7所示。(3)在【数据库名称】文本框中输入创建的数据库名称“wj”。此时,系统会以数据库名称作为前缀创建主数据库文件和事务日志文件,如wj和wj_log。主数据库文件和事务日志文件的初始大小与model系统数据库指定的默认大小相同,选择默认值,其中数据库文件的增量为1MB,不限制增长的总量,日志文件每次增长10%,也不限制增长的总量。也

19、可以进行自定义,单击【自动增长】旁的按钮,弹出如图3.8所示的对话框。,3.5.2 使用SQL server Management studio查询窗口创建用户数据库,使用SQL查询分析器创建数据库,其实就是在查询窗口的编辑面板中使用DATABASE等Transact-SQL命令,来创建用户数据库。,3.5.3 查看和修改数据库属性,对于已有的数据库,可以分别利用对象资源管理器和Transact-SQL语句来查看数据库信息。1使用SQL Server Management Studio窗口中的对象资源管理器查看数据库信息2使用Transact-SQL命令查看数据库信息,3.6.1 打开数据库,

20、当用户登录SQL Server 2008服务器,连接SQL.Server 2008后,用户需要连接SQL.Server 2008服务器中的某个数据库,才能使用该数据库中的数据。如果用户没有预先指定连接哪个数据库,SQL Server 2008会自动替用户连上master系统数据库。一般地,用户需要指定连接SQL Server 2008服务器中的哪个数据库,或者从一个数据库切换至另一个数据库,可以在查询分析器的【编辑】面板中利用use命令来打开或切换至不同的数据库。打开或切换数据库的命令如下:USE database name其中,database name表示需要打开或切换的数据库名称。,3.

21、6.2 修改、增加和缩减数据库容量,当数据库的数据增长到要超过它的使用空间时,必须加大数据库的容量。增加数据库容量就是给它提供额外的设备空间。同时,如果在新建数据库时指定给某数据库过多的设备空间,可以通过缩减数据库容量来减少设备空间的浪费。增加和缩减数据库容量的方法一般有两种,即用Transact-SQL命令和利用SQL Server Management Studio查询窗口中的【对象资源管理器】面板来增缩数据库容量。,3.6.3 查看目前数据库选项设定及修改,设定数据库选项可以控制数据库是单用户使用模式还是db_owner模式,以及此数据库是否仅可读取等,可以设置此数据库是否自动关闭、自动

22、收缩和数据库的兼容级别等选项。如果想查看目前数据库选项,如前两节中已经讨论的使用属性窗口的方式。也可以在查询分析器中使用Transact-SQL命令来查看和更改数据库选项。一般使用sp_dboption存储过程来查看数据库选项,如下所示将数据库test的属性设置为只读。EXEC sp_dboption test,read only,True,3.6.4 数据库更名,通常情况下,在一个应用程序的开发过程中,往往需要改变数据库的名称,但是在SQL Server 2008中更改数据库名称并不像在Windows中那样简单,要改变名称的那个数据库很可能正被其他用户使用,所以变更数据库名称的操作必须在单用

23、户模式下方可进行,然后使用系统存储过程sp_renamedb或直接更改来更改数据库的名称。,3.6.5 删除数据库,删除数据库比较简单,但是应该注意的是,如果某个数据库正在使用时,则无法对该数据库进行删除。可以使用对象资源管理器和DROP DATAHASE语句来删除某个数据库。首先直接使用对象资源管理器来进行数据库的删除,在对象资源管理器中【数据库】分支中选择要删除的数据库选项【test】分支。右击该选项,在弹出的快捷菜单中选择【删除】选项,弹出如图3.23所示的对话框,单击【确定】按钮,完成数据库删除。也可以直接使用T-SQL代码来完成数据库的删除,如图3.24所示:DROP DATABASE test,3.7 小结,本章学习了数据模型的概念和数据库的创建与管理。本章的重点是掌握系统数据库的分类和作用、学会使用对象资源管理器创建用户数据库、学会使用查询分析器创建用户数据库、学会压缩和扩充数据库、学会查看和修改数据库选项、学会给数据库改名和删除数据库。难点是使用E-R模型设计数据库和不同范式的理解。下一章将在此基础上全面的介绍Transact-SQL语言。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号