SQL Server教程(第6版)(2008版) 课件 第1、2章 数据库基础、数据库创建_第1页
SQL Server教程(第6版)(2008版) 课件 第1、2章 数据库基础、数据库创建_第2页
SQL Server教程(第6版)(2008版) 课件 第1、2章 数据库基础、数据库创建_第3页
SQL Server教程(第6版)(2008版) 课件 第1、2章 数据库基础、数据库创建_第4页
SQL Server教程(第6版)(2008版) 课件 第1、2章 数据库基础、数据库创建_第5页
已阅读5页,还剩87页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章

数据库基础——数据库基本概念01数据库系统数据库数据库管理系统数据库系统数据库系统1.数据库数据库(DataBase,简称DB)是存放数据的仓库,而且这些数据存在一定的关联,并按一定的格式存放在计算机内。例如,把一个学校的学生、课程、成绩等数据有序地组织并存放在计算机内,就可以构成一个数据库。2.数据库管理系统数据库管理系统(DataBaseManagementSystem,简称DBMS)按一定的数据模型组织数据形成数据库,并对数据库进行管理。简单地说,DBMS就是管理数据库的系统(软件)。数据库管理员(DataBaseAdministrator,简称DBA)通过DBMS对数据库进行管理。数据库系统3.数据库系统数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。如图所示描述了数据库系统的构成。02数据模型层次模型网状模型关系模型数据模型1.层次模型层次模型将数据组织成一对多关系的结构,采用关键字来访问其中每一层次的每一部分。它存取方便且速度快;结构清晰,容易理解;数据修改和数据库扩展容易实现;检索关键属性十分方便。但结构不够灵活;同一属性的数据要存储多次,数据冗余大;不适合拓扑空间数据的组织。如图所示为按层次模型组织的数据示例。数据模型2.网状模型网状模型是具有多对多关系的数据组织方式。它能明确而方便地表示数据间的复杂关系;数据冗余小。但网状结构的复杂,增加了用户查询和定位的困难;需要存储数据间联系的指针,使得数据量增大;数据的修改不方便。如图所示为按网状模型组织的数据示例。数据模型3.关系模型关系模型以记录组或二维数据表的形式组织数据。例如,在学生成绩管理系统所涉及的“学生”“课程”和“成绩”3个表中,“学生”表涉及的主要信息有学号、姓名、性别、出生日期、专业、总学分和备注;“课程”表涉及的主要信息有课程号、课程名、开课学期、学时和学分;“成绩”表涉及的主要信息有学号、课程号和成绩。如3个表所示。学号姓名性别出生日期专业总学分备注221101王林男2004-02-10计算机15

221103王燕女2003-10-06计算机15参加校女子足球队211102林一帆男2003-08-05计算机46

221202王林男2004-01-29通信工程13

221204马琳琳女2003-02-10通信工程15

“学生”表数据模型课程号课程名开课学期学时学分101计算机导论1805102程序设计与语言2684206离散数学4684学号课程号成绩学号课程号成绩22110110180211102101852211011027821110210264221101206762111022068722110310162221202101552211031025022120410187“课程”表“成绩”表03关系数据库关系型数据库管理系统关系型数据库语言关系数据库1.关系型数据库管理系统通过上面的分析可以看出,关系模型更适合组织数据。而关系型数据库管理系统(RelationalDatabaseManagementSystem,简称RDBMS)就是建立在关系模型基础上的数据库,所以使用广泛,从当前国际数据库管理系统(DataBaseManagementSystem,简称DBMS)排名中可以看出来,RDBMS绝对是DBMS的主流,其中使用最多的分别是Oracle、MySQL和SQLServer。SQLServer是目前流行的企业级大型关系数据库管理系统之一。2.关系型数据库语言结构化查询语言(StructuredQueryLanguage,简称SQL)就是关系型数据库的查询语言,用于定义数据库及其对象、操作数据库对象和控制操作的安全性等,所有提供数据库产品的厂商都支持SQL语言,但它们又各有特点。为了在各个数据库厂商之间取得更大的一致性,美国国家标准学会(AmericanNationalStandardsInstitute,简称ANSI)于1986年发布了第一个SQL标准,并于1989年发布了第二个版本,该版本已经被广泛采用。ANSI在1992年更新了SQL标准的版本,即SQL92和SQL2,并于1999年再次更新为SQL99和SQL3标准。第1章

数据库基础——数据库设计01概念模型一对一的联系(1∶1)一对多的联系(1∶n)多对多的联系(m∶n)概念模型通常,E-R模型把每一类数据对象的个体称为“实体”,把每一类对象个体的集合称为“实体集”。例如,在学生成绩管理系统中主要涉及“学生”和“课程”两个实体集,其他非主要的实体集可以很多,如班级、班长、任课教师、辅导员等。把每个实体集涉及的信息项称为属性。就“学生”实体集而言,它的属性有学号、姓名、性别、出生日期、专业、总学分和备注。“课程”实体集属性有课程号、课程名、开课学期、学时和学分。实体集中的实体彼此是可区别的。如果实体集中的属性或最小属性组合的值能唯一标识其对应实体,则将该属性或属性组合称为码。码可能有多个,对于每一个实体集,可指定一个码为主码。实体集A和实体集B之间存在各种关系,通常把这些关系称为“联系”,将实体集及实体集联系的图示称为实体-联系(Entity-Relationship,简称E-R)模型。概念模型E-R图就是E-R模型的描述方法,即实体-联系图。通常,关系数据库的设计者使用E-R图来对信息世界建模。在E-R图中,使用矩形表示实体集,使用椭圆表示属性,使用菱形表示联系,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记一条斜线,如图。概念模型两个实体集A和B之间的联系可能是以下3种情况之一。1.一对一的联系(1∶1)A中的一个实体最多与B中的一个实体相联系,B中的一个实体也最多与A中的一个实体相联系。例如,“班级”与“班长”这两个实体集之间的联系是一对一的联系,因为一个班级只有一个班长,反过来,一个班长只属于一个班级。“班级”与“班长”两个实体集的E-R模型如图。概念模型2.一对多的联系(1∶n)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体最多与A中的一个实体相联系。例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为一个班级可有若干学生,反过来,一个学生只能属于一个班级。“班级”与“学生”两个实体集的E-R模型如图。概念模型3.多对多的联系(m∶n)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为一个学生可选修多门课程,反过来,一门课程可被多个学生选修。“学生”与“课程”两个实体集的E-R模型如图。02逻辑模型(1∶1)联系的E-R图到关系模式的转换(1∶n)联系的E-R图到关系模式的转换(m∶n)联系的E-R图到关系模式的转换逻辑模型1.(1∶1)联系的E-R图到关系模式的转换对于(1∶1)的联系,既可以单独对应一个关系模式,也可以不单独对应。(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。例如,考虑图描述的“班级(bj)”与“班长(bz)”实体集通过“属于(sy)”联系的E-R模型,可设计如下关系模式(下划线表示该字段为主码):bj(班级编号,院系,专业,人数)bz(学号,姓名)sy(学号,班级编号)逻辑模型(2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。例如,考虑图描述的“班级(bj)”与“班长(bz)”实体集通过“属于(sy)”联系的E-R模型,可设计如下关系模式:bj(班级编号,院系,专业,人数)bz(学号,姓名,班级编号)或者:bj(班级编号,院系,专业,人数,学号)bz(学号,姓名)逻辑模型2.(1∶n)联系的E-R图到关系模式的转换对于(1∶n)的联系,既可以单独对应一个关系模式,也可以不单独对应。(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。例如,考虑图描述的“班级(bj)”与“学生(xs)”实体集E-R模型,可设计如下关系模式:bj(班级编号,院系,专业,人数)xs(学号,姓名,性别,出生日期,专业,总学分,备注)sy(学号,班级编号)逻辑模型(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。例如,图描述的“班级(bj)”与“学生(xs)”实体集E-R模型可设计如下关系模式:bj(班级编号,院系,专业,人数)xs(学号,姓名,性别,出生日期,专业,总学分,备注,班级编号)逻辑模型3.(m∶n)联系的E-R图到关系模式的转换对于(m∶n)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。例如,图描述的“学生(xs)”与“课程(kc)”实体集之间的联系可设计如下关系模式:xs(学号,姓名,性别,出生日期,专业,总学分,备注)kc(课程号,课程名,开课学期,学时,学分)cj(学号,课程号,成绩)关系模式cj的主码是由“学号”和“课程号”两个属性组合起来构成的,一个关系模式只能有一个主码。03物理模型物理模型物理模型是面向计算机物理表示的模型,描述了数据在存储介质上的组织结构,它不但与具体的DBMS有关,而且与操作系统和硬件有关。每一种逻辑数据模型在实现时都有其对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。第1章

数据库基础——SQLServer200801SQLServer2008概述服务器组件管理工具命令行实用工具SQLServer2008概述1.服务器组件SQLServer2008服务器组件如下:(1)SQLServer数据库引擎(SQLServerDatabaseEngine,简称SSDE)提供SQLServer2008系统的核心服务,负责完成业务数据的存储、处理、查询和安全管理等操作。(2)分析服务(SQLServerAnalysisServer,简称SSAS)提供多维分析和数据挖掘功能,可以支持用户建立数据库和进行商业智能分析。(3)报表服务(SQLServerReportingServices,简称SSRS)提供支持Web的企业级的报表功能。(4)集成服务(SQLServerIntegrationSevives,简称SSIS)提供一个数据集成平台,可以完成有关数据的提取、转换、加载等。(5)商业智能服务(BusinessIntelligenceDevelopmentStudio,简称BI)提供分析服务、报表服务和集成服务的解决方案的集成开发环境(IntegratedDevelopmentEnvironment,简称IDE)。SQLServer2008概述2.管理工具(1)SQLServer集成管理器(SQLServerManagementStudio,简称SSMS)为用户和开发人员通过图形界面工具,用于配置数据库系统、建立或删除数据库对象、设置或取消用户的访问权限,维护服务器与数据的安全、浏览错误日志等。(2)配置管理器(SQLServerConfigurationManager,简称SSCM)包含了SQLServer服务、网络配置和SQLNativeClient配置3个工具供数据库管理人员做服务启动、停止与监控、服务器端支持的网络协议、用户访问SQLServer的网络相关设置等工作。(3)SQLServerProfiler是一个图形界面工具,用于创建和管理跟踪并分析和重播跟踪结果,方便诊断问题。SQLServer2008概述3.命令行实用工具命令行实用工具是可执行(.exe)程序,它可以在Windows命令行窗口对

SQLServer2008进行操作,主要命令行实用工具如下:(1)sqlsrvr:命令行下执行SQLServer实例的启动、停止、暂停、继续。(2)ssms:命令行下打开SSMS工具。(3)osql:输入和执行Transact-SQL(简称T-SQL)语句,该工具通过ODBC连接数据库。(4)sqlcmd:输入和执行T-SQL语句,该工具通过OLEDB进连接数据库。(5)bcp:在SQLServer实例和用户指定格式的数据文件之间进行数据复制。(6)dta(数据库引擎优化顾问):可以协助创建索引、索引视图和分区的最佳组合。02SQLServer2008的安装SQLServer实例SQLServer2008安装环境要求SQLServer2008的安装追加安装“SQLServerManagementStudio”SQLServer2008的安装1.SQLServer实例数据库引擎的实例是作为操作系统服务运行的

sqlservr.exe

可执行程序的副本。每个实例管理几个系统数据库以及一个或多个用户数据库。每台计算机都可以运行数据库引擎的多个实例。应用程序连接到实例,在实例管理的数据库中执行任务。一个数据库引擎实例处理所有应用程序请求的服务操作,以便使用该实例管理的任何数据库中的数据。它是应用程序所发出连接请求(登录名)的目标。如果应用程序和实例分别位于单独的计算机上,则连接通过网络运行。如果应用程序和实例位于同一台计算机上,则SQLServer连接可作为网络或内存中连接运行。完成连接后,应用程序通过连接将T-SQL语句发送给实例。实例将这些T-SQL语句解析为针对数据库中的数据和对象的操作,如果已将所需权限授予了登录凭据,则实例会执行这些工作。检索的任何数据都将返回到应用程序,同时还返回错误之类的消息。SQLServer2008的安装2.SQLServer2008安装环境要求为了正确安装和运行SQLServer2008,计算机必须满足以下配置要求。(1)硬件要求如下:处理器:需要Pentium(兼容)处理器,处理器速度最好在2GHz以上。内存:2GB以上。硬盘:1.7GB的安装空间以及必要的数据预留空间。(2)需要运行在Windows(32位)操作系统之上,不同版本对操作系统的要求不尽相同。(3)需要安装组件如下:.NETFramework3.5。SQLServerNativeClient。SQLServer安装程序支持文件。MicrosoftWindowsInstaller4.5或更高版本。Microsoft数据访问组件(MDAC)2.8SP1或更高版本。SQLServer2008的安装3.SQLServer2008的安装(1)运行SQLServer2008安装程序(setup.exe),安装程序启动后会检测系统是否已经安装了.NET

Framework3.5,如果没有安装,则弹出要求安装的对话框,单击“确定”按钮,等待一段时间后进入“.NETFramework3.5许可协议”窗口,同意许可条款并单击“安装”按钮开始安装,安装完成后单击“安装完成”窗口中的“退出”按钮即可。(2)安装完.NETFramework3.5后可能会弹出需要安装补丁的对话框,安装完该补丁后重启计算机。(3)重启计算机后重新启动安装程序,进入“SQLServer安装中心”窗口,单击左边菜单栏中的“安装”选项卡,在窗口右边将列出可以进行的安装方式,单击“全新SQLServer独立安装或向现有安装添加功能”选项将安装全新的SQLServer2008。(4)安装程序将检查SQLServer安装时可能发生的问题,并将检查信息显示在“安装程序支持规则”窗口中。如果有检查未通过的规则,必须进行更正,否则安装将无法继续。(5)安装程序支持规则全部通过后单击“确定”按钮进入“产品密钥”窗口。在“指定可用版本”选项中选择“EnterpriseEvaluation”,在“输入产品密钥”选项中输入企业评估版的25位产品密钥,完成后单击“下一步”按钮。(6)进入“许可条款”窗口,阅读并接受许可条款,单击“下一步”按钮。进入“安装程序支持文件”窗口,单击“安装”按钮安装SQLServer必备组件。安装完成后重新进入“安装程序支持规则”窗口。如果通过,则单击“下一步”按钮。SQLServer2008的安装(7)进入“功能选择”窗口,在“功能”区域中选择要安装的功能组件,用户可以根据自身需求来安装组件,这里在“实例功能”下勾选“数据库引擎服务”,在“共享功能”下勾选客户端有关项和SQLServer联机丛书,如图。SQLServer2008的安装(8)在“实例配置”窗口中进行实例配置,如果是第一次安装,则既可以使用默认实例,也可以自行指定实例名称。如果当前服务器上已经安装了一个默认的实例,则再次安装时必须指定一个实例名称。自定义实例名的方法为,选择“命名实例”单选按钮,在后面的文本框中输入用户自定义的实例名称。如果选择“默认实例”,则实例名称默认为“MSSQLSERVER”。这里选择“命名实例”,名称为“SQL2008”。(9)实例配置完后单击“下一步”按钮进入“磁盘空间要求”窗口,在该窗口中显示安装SQLServer2008所需要的磁盘容量。单击“下一步”按钮进入“服务器配置”窗口,在“服务账户”选项卡中为每个SQLServer服务单独配置用户名和密码及启动类型。“账户名”可以在下拉框中进行选择,也可以单击“对所有SQLServer服务使用相同的账户”按钮,这里,选择本地Windows账户为“liu”,如下图。SQLServer2008的安装SQLServer2008的安装(10)进入“数据库引擎配置”窗口,在“账户设置”选项卡中选择“身份验证模式”。“身份验证模式”是一种安全模式,用于验证客户端与服务器的连接。它有下列两个选项:“Windows身份验证模式”:使用Windows操作系统中的信息验证账户名和密码。“混合模式(SQLServer身份验证和Windows身份验证)”:允许用户使用Windows身份验证或SQLServer身份验证进行连接。本书使用该模式身份验证。内置的SQLServer系统管理员账户:设置输入密码和确认密码为“123456”。SQLServer2008的安装指定SQLServer管理员:指定Windows账户,这里单击“添加当前用户”按钮添加当前Windows账户为“HUAWEI\Adminstrator”,即HUAWEI主机的超级用户。如图。SQLServer2008的安装(11)如果前面选择安装“数据库引擎”以外的其他组件,这里会分别安装这些组件。(12)单击“下一步”按钮进入“安装规则”窗口,窗口中将显示安装规则的通过情况,如果全部通过,则可以单击“下一步”按钮。(13)进入“准备安装”窗口,显示安装内容汇总,如图。SQLServer2008的安装单击“安装”按钮开始安装,等待一段时间后安装完成,窗口中将显示已经成功安装的功能组件如图。SQLServer2008的安装4.追加安装“SQLServerManagementStudio”如果安装SQLServer2008时没有勾选“SQLServerManagementStudio”服务组件,那么就没有图形化界面操作SQLServer的功能。重新执行SQLServer2008安装程序(setup.exe),选择安装组件时已安装项只读显示,补勾选“SQLServerManagementStudio”安装项安装即可。03连接SQLServer2008服务器不同用户连接SQLServer服务器连接SQLServer实例T-SQL在SSMS查询分析器窗口执行T-SQL连接SQLServer2008服务器1.不同用户连接SQLServer服务器在Windows界面选择“SQLServerManagementStudio”菜单,系统显示“连接到服务器”对话框,在身份验证中选择Windows或者SQLServer,界面分别如图(a)(b)所示。连接SQLServer2008服务器分别单击“连接”,在“MicrosoftSQLServerManagementStudio”窗口的“对象资源管理器”中就出现了以上述两个用户建立的SQLServer连接,如图。连接SQLServer2008服务器2.连接SQLServer实例在“连接到服务器”对话框的“服务器名称”中选择(输入)不同的“本机名\实例名”和对应实例的身份验证用户,就可在SSMS中同时操作不同的SQLServer实例的数据库。在“连接到服务器”对话框的“服务器名称”中选择(输入)网络不同的“计算机名\实例名”和对应该计算机SQLServer服务器实例的身份验证用户,就可在SSMS中同时操作不同的SQLServer实例的数据库。3.T-SQLT-SQL即Transact-SQL,是SQL在MicrosoftSQLServer上的增强版,它是用来让应用程序与SQLServer沟通的主要语言。T-SQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程序设计结构(例如IF和WHILE)让程序设计更有弹性。关于T-SQL说明下列几点。(1)/*内容*/:为注释和注释语句,用于帮助读者理解语句和程序,既可以放在一个语句的任何位置,也可以单独作为一个语句,在执行语句和程序时不做任何操作。(2)“;”:每一个语句结束可以加“;”,如果语句界限明显可以省略。连接SQLServer2008服务器4.在SSMS查询分析器窗口执行T-SQLT-SQL语句需要在SSMS查询分析器窗口编辑和执行。在SSMS窗口中单击“新建查询”按钮,新建一个查询编辑窗口,在窗口中输入T-SQL语句,然后单击“执行”,显示如图。第2章

数据库创建——SQLServer数据库01数据库及其对象数据库架构数据库对象系统数据库数据库快照文件数据库及其对象1.数据库架构简单地说,架构的作用是将数据库中的所有对象分成不同的集合,每一个集合称为一个架构。数据库中的每一个用户都会有自己的默认架构。架构可以在创建数据库用户时由创建者设定,若不设定,则系统默认架构为dbo。数据库用户只能对属于自己架构中的数据库对象执行相应的操作,操作的权限则由数据库角色决定。数据库及其对象2.数据库对象数据库是一个容器,里面包含数据库对象。表:是存放数据及表示关系的主要形式,是最主要的数据库对象。视图:视图是一个或多个基本表生成的引用表(称为虚表)。索引:表中的记录通常按其输入的时间顺序存放,这种顺序称为记录的物理顺序。为了实现对表记录的快速查询,可以对表的记录按某个或某些字段或它们的组合(称为索引表达式)进行排序,这种顺序称为逻辑顺序。约束:约束用于保障数据的一致性与完整性。具有代表性的约束就是主键和外键。主键约束当前表记录的主键字段值唯一性,外键约束当前表记录与其他表的关系。存储过程:存储过程是一组完成特定功能的SQL语句集合,它存储在数据库中。存储过程具有名称,能够接受(输入)参数、输出参数、返回单个或多个值。存储过程独立于表存在。数据库及其对象触发器:触发器基于一个表的操作(插入、修改或删除)创建,编写若干条T-SQL语句,当该操作发生时,这些语句被执行,返回真或者假。返回假,当前表的操作不能被执行。默认值:默认值是在用户插入表新记录前,系统设置的字段的初始值。用户和角色:用户是指对数据库有存取权限的使用者;角色是一个用户组,给角色分配操作权限,该角色对应的组的用户都具有该操作权限。规则:是用来限制表字段的数据范围。类型:用户可以根据需要在指定的系统类型之上定义自己的数据类型。函数:用户可以根据需要将若干个T-SQL语句或者系统函数进行组合实现特定功能,定义成自己的函数。然后,在需要该功能处调用该函数。数据库及其对象3.系统数据库在SQLServer实例安装后,就生成下列系统数据库。(1)master数据库:它记录SQLServer系统的所有系统级信息。包括SQLServer实例初始化信息、登录账户、端点、连接服务器和系统配置等,还记录其他数据库文件的位置。(2)model数据库:保存SQLServer实例上创建的所有数据库的模板。如果修改model数据库,之后创建的所有数据库都将继承这些修改。如果用特定于用户的模板信息修改model数据库,建议您备份model。(3)tempdb数据库:tempdb是所有用户使用的临时数据库。每次启动SQLServer时都会重新创建它,在断开连接时会自动删除其中的临时表和存储过程。不允许对tempdb进行备份和还原操作。

(4)msdb数据库:SQLServer代理使用msdb数据库来计划警报和作业,SQLServerManagementStudio、ServiceBroker和数据库邮件等其他组件也使用该数据库。在进行任何更新msdb的操作(例如备份或还原任何数据库)后,建议备份msdb。数据库及其对象4.数据库快照文件快照是指数据库在某一指定时刻的状态,它提供了源数据库在创建快照时的只读、静态视图。虽然数据库在不断变化,但快照一旦创建就不能改变。多个快照可以位于一个源数据库中,并且可以作为数据库始终驻留在同一服务器实例上。创建快照时,每个快照在事务上都与源数据库一致。在被数据库所有者显式删除之前,快照始终存在。02数据库及其文件数据库名称数据库文件类型文件大小、自动增长和最大容量文件组数据库及其文件1.数据库名称数据库名称是所有SQLServer的集成操作环境(SSMS)和T-SQL语句中引用数据库的名称,必须符合SQLServer标识符命名规则。数据库名称是SQLServer实例层面的名称,是逻辑名,所以在同一个SQLServer实例中,数据库名称必须唯一,例如:xscj。数据库及其文件2.数据库文件类型1)文件类型SQLServer数据库包含下列3类文件:(1)主数据文件主数据文件一般称数据文件,它包含数据库的启动信息,存储部分或全部的数据和数据库对象,并指向数据库中的其他文件。每个数据库仅有一个主数据文件(扩展名mdf),还可以包含若干个辅助数据文件(扩展名ndf),用于存储主数据文件未能存储的剩余数据和一些数据库对象。(2)日志文件对数据库插入、删除、更新等操作的事务都会记录在日志文件(扩展名ldf)中,对数据库查询等读操作则不会记录在日志文件中。每个数据库至少有一个日志文件。(3)FILESTREAM文件FILESTREAM不是一种新的数据类型,而是一种技术,它使SQLServer数据库引擎和NTFS文件系统成为了一个整体,基于SQLServer的应用程序可以将非结构化数据(如文档和图像)存储在文件系统中,通过丰富的流式API对其进行操作。又可对文件数据的操作使用T-SQL语句进行插入、更新、查询、搜索和备份,并保持非结构化数据和对应的结构化数据之间的事务一致性。2)文件存放路径数据库文件默认存放的路径为SQLServer安装目录下的DATA子目录,例如:C:\ProgramFiles\MicrosoftSQLServer\SQLServer内部编号.SQLServer实例名

\MSSQL\DATA数据库及其文件3.文件大小、自动增长和最大容量创建SQLServer数据库需要指定每一个文件初始大小、自动增长方式和最大容量。系统有一个默认初始大小,用户可以根据需要设置。初始大小应以初始存放在数据库中各种数据和对象的累计大小放大一个系数作为参考。增长方式包括“按百分比”(例如10%)增长或者“按MB”(例如5MB)增长。前者每次在原来空间大小的基础上增长10%;后者每次增长5MB,而不管原来的空间大小是多少。当数据库数据超过初始大小按指定的增长方式增长。如果文件组中包含多个文件,则它们在所有文件被填满之前不会自动增长。数据库及其文件4.文件组SQLServer包含下列文件组:(1)PRIMARY文件组。主数据文件(mdf)只能属于系统PRIMARY文件组,所有系统表都属于该文件组。此外,还可以包含一个或者多个辅助数据文件(ndf)。(2)用户定义文件组。在用户定义了文件组后,其他数据文件可以指定属于用户定义的文件组,否则属于默认文件组。(3)默认文件组。新建数据库时,会自动创建一个默认的文件组PRIMARY,可以指定用户定义文件组为默认文件组。默认文件组必须足够大,能够容纳指定为该文件组合未分配文件组的所有新对象。(4)FILESTREAM文件组。是管理FILESTREAM类型文件。需要先添加FILESTREAM文件组,然后才能在数据库中添加FILESTREAM文件类型。(5)内存优化数据文件组。内存优化表把数据存放到内存中的表,内存优化表在创建的同时被编译成本地机器代码装载到内存中,所以对它的访问和操作非常快。第2章

数据库创建——数据库创建和修改01创建数据库文件项文件组项创建数据库实例创建数据库创建数据库前要确保用户具有创建数据库的权限。语法格式如下。CREATEDATABASE数据库名[CONTAINMENT={NONE|PARTIAL}][ON

[PRIMARY][<文件项>,...][,<文件组项>,...]

[LOGON{<文件项>,...}]]...说明:(1)“,...”表示重复前面项。(2)“...”表示还有其他项,为了突出主要内容而省略。(3)在一个语句由多行组成时,为了清晰描述层次之间的关系,第二行开始可以根据所属关系进行阶梯缩进。创建数据库1.文件项<文件项>::={(

NAME=逻辑名称,

FILENAME={'含路径文件名'|'filestream存储路径'}

[,SIZE=文件初始容量]

[,MAXSIZE={文件最大容量|UNLIMITED}]

[,FILEGROWTH=文件增量[容量|%]])}其中:(1)含PRIMARY,对应主数据文件,否则为辅助数据文件。(2)NAME=逻辑名称:SQLServer实例使用的数据库名。(3)FILENAME=含路径文件名:创建数据库后操作系统中包含的数据库文件的路径和文件名。(4)文件初始容量:指定数据文件的初始大小,单位可以是KB、MB、GB、TB。(5)文件最大容量:指定数据文件的最大容量,如果指定为UNLIMITED,表示文件大小不受限制,但实际上受磁盘可用空间的限制。(6)文件增量:有容量值和百分比(%)两种格式。创建数据库2.文件组项<文件组项>::={ FILEGROUP文件组名[DEFAULT]

<文件项>,...}其中:(1)<文件组项>:指定属于该文件组的文件。(2)DEFAULT:指定命名文件组为数据库中的默认文件组。(3)还可以指定为“FILESTREAM”文件组。创建数据库3.创建数据库实例【例2.1】创建一个名为test1的数据库,其初始大小为5MB,最大为50MB,允许数据库自动增长,增长方式是按10%比例。日志文件初始为2MB,最大可增长到5MB,按1

MB增长。语句如下:CREATEDATABASEtest1 ON ( NAME="test1", FILENAME="E:\MyDB\test1.mdf", SIZE=5MB, MAXSIZE=50MB, FILEGROWTH=10% ) LOGON ( NAME="test1_log", FILENAME="E:\MyDB\test1.ldf", SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB )创建数据库【例2.2】创建一个名为test2的数据库,它有两个数据文件,其中主数据文件为20MB,最大不限,按10%增长。1个辅助数据文件为20MB,最大不限,按10%增长;有1个日志文件,为50MB,最大为100MB,按10MB增长。语句如下:CREATEDATABASEtest2 ON PRIMARY ( NAME='test2_data1', FILENAME='E:\MyDB\test2_data1.mdf', SIZE=20MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% ), ( NAME='test2_data2', FILENAME='E:\MyDB\test2_data2.ndf', SIZE=20MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% ) LOGON ( NAME='test2_log1', FILENAME='E:\MyDB\test2_log1.ldf', SIZE=50MB, MAXSIZE=100MB, FILEGROWTH=10MB )创建数据库【例2.3】创建一个具有2个文件组的数据库test3。主文件组包括文件test3_dat1,文件初始大小为20MB,最大为60MB,按5MB增长。文件组test3Group1包括文件test3_dat2,文件初始大小为10MB,最大为30MB,按10%增长。语句如下:CREATEDATABASEtest3ONPRIMARY( NAME='test3_dat1',FILENAME='E:\MyDB\test3_dat1.mdf',SIZE=20MB,MAXSIZE=60MB,FILEGROWTH=5MB),FILEGROUPtest3Group1( NAME='test3_dat2',FILENAME='E:\MyDB\test3_dat2.ndf',SIZE=10MB,MAXSIZE=30MB,FILEGROWTH=10%)02修改数据库数据库文件选项数据库文件组选项数据库选项修改数据库实例修改数据库已经创建的数据库可以修改它的属性。语法格式如下:ALTERDATABASE数据库名{ ADDFILE<文件选项>...[TOFILEGROUP文件组名] /*在文件组中增加数据文件*/ |ADDLOGFILE<文件选项>... /*增加日志文件*/ |REMOVEFILE逻辑文件名 /*删除数据文件*/ |ADDFILEGROUP文件组名[……] /*增加文件组*/ |REMOVEFILEGROUP文件组名 /*删除文件组*/ |MODIFYFILE<文件选项> /*更改文件属性*/ |MODIFYNAME=新数据库名 /*数据库更名*/ |MODIFYFILEGROUP文件组名 {

<文件组可更新选项> |DEFAULT |NAME=新文件组名 } /*更改文件组属性*/|SET<属性选项>...[WITH<终止>] /*设置数据库属性*/... /*指定数据库排序规则*/}修改数据库1.数据库文件选项(1)ADDFILE子句:向数据库添加数据文件,<文件选项>给出文件的属性,其构成参见CREATEDATABASE语法说明。关键字TOFILEGROUP指出了添加的数据文件所在的文件组名,若默认,则为主文件组。(2)ADDLOGFILE子句:向数据库添加日志文件,<文件选项>给出日志文件的属性。(3)REMOVEFILE子句:从数据库中删除数据文件,被删除的数据文件由其中的参数“逻辑文件名”给出。当删除一个数据文件时,逻辑文件与物理文件全部被删除。(4)MODIFYFILE子句:修改数据文件的属性,被修改文件的逻辑名由<文件选项>的NAME选项给出,可以修改的文件属性包括NEWNAME、FILENAME、SIZE、MAXSIZE和FILEGROWTH。其中NEWNAME为新的文件逻辑名。修改数据库2.数据库文件组选项(1)ADDFILEGROUP子句:向数据库中添加文件组,被添加的文件组名由参数“文件组名”给出。(2)REMOVEFILEGROUP子句:删除文件组,被删除的文件组名由参数“文件组名”给出。(3)MODIFYFILEGROUP子句:用于修改文件组的属性。“文件组名”为要修改的文件组名称。<文件组可更新选项>::={READ_ONLY|READ_WRITE}其中,READ_ONLY将文件组设为只读,READ_WRITE将文件组设为读/写模式。DEFAULT选项:表示将默认数据库文件组改为指定文件组。NAME选项:用于将文件组名称改为新文件组名。3.数据库选项(1)MODIFYNAME子句:更改数据库名,新的数据库名由参数“新数据库名”给出。(2)SET子句:用于设置数据库的属性,<属性选项>中指定了要修改的属性。例如,设为READ_ONLY时,用户可以从数据库读取数据,但不能修改数据库。其他属性请参考有关文档。修改数据库4.修改数据库实例1)修改文件大小和增长方式【例2.4】修改数据库test1的主数据文件逻辑名为test1_data,最大容量改为100MB,增长方式改为按每次5MB增长,文件名作相应调整。语句如下:USEmasterALTERDATABASEtest1 MODIFYFILE ( NAME='test1', NEWNAME='test1_data', FILENAME='E:\MyDB\test1_data.mdf', MAXSIZE=100MB, FILEGROWTH=5MB )修改数据库2)增加和删除数据文件【例2.5】先为数据库test1增加数据文件test1bak,然后删除该数据文件。(1)为数据库test1增加数据文件test1bak。ALTERDATABASEtest1 ADDFILE ( NAME='test1bak', FILENAME='E:\MyDB\test1bak.ndf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5% )(2)查看数据库test1参数修改结果。刷新“对象资源管理器”中的数据库,查看“数据库属性”窗口中的“文件”选项卡和数据库文件目录,可以看到数据库test1增加了数据文件test1bak。(3)删除数据文件test1bak。ALTERDATABASEtest1 REMOVEFILEtest1bak修改数据库3)为数据库添加文件组【例2.6】为数据库test1添加文件组fgroup,并为此文件组添加两个大小均为10MB的数据文件,观察结果后将文件组fgroup删除。(1)为数据库test1添加文件组和数据文件。ALTERDATABASEtest1ADDFILEGROUPfgroupGOALTERDATABASEtest1ADDFILE( NAME='test1_data2',FILENAME='E:\MyDB\test1_data2.ndf',SIZE=10MB),( NAME='test1_data3',FILENAME='E:\MyDB\test1_data3.ndf',SIZE=10MB)TOFILEGROUPfgroupGO修改数据库说明:(1)GO必须单独一行,是批处理命令。遇到第一个GO,在此前test1数据库增加了一个文件组fgroup;遇到第二个GO,在test1数据库增加了两个文件。(2)查看数据库test1“文件组”选项卡,可见增加了fgroup文件组;同时,数据库文件目录中增加了2个数据文件。(3)从数据库中删除fgroup文件组。SQL语句如下。ALTERDATABASEtest1 REMOVEFILEtest1_data2ALTERDATABASEtest1 REMOVEFILEtest1_data3GOALTERDATABASEtest1 REMOVEFILEGROUPfgroupGO03删除数据库删除数据库删除数据库使用下列命令。语法格式:DROPDATABASE数据库名,...其中,“数据库名”是要删除的数据库名。例如,要删除数据库test1,使用命令:DROPDATABASEtest1第2章

数据库创建——创建数据库综合01命令方式创建数据库命令方式创建数据库【例2.7】按照下列要求创建学生成绩数据库,数据库名xscj。(1)创建学生成绩数据库xscj,初始文件大小为100MB,按照10%增长,占用最大空间没有限制。日志文件大小为20MB,按照5MB增长,占用最大空间不超过100MB。数据文件和日志文件主文件名为xscj,均存放在“E:\MyDB”目录下。CREATEDATABASExscj ON PRIMARY ( NAME='xscj', FILENAME='E:\MyDB\xscj.ndf', SIZE=100MB, MAXSIZE=UNLIMITED, FILEGROWTH=10% ) LOGON ( NAME='xscj_log', FILENAME='E:\MyDB\xscj.ldf', SIZE=20MB, MAXSIZE=100MB, FILEGROWTH=5MB )GO命令方式创建数据库(2)在数据库xscj中增加文件组fgroup1、fgroup2、fgroup3和fgroup4。ALTERDATABASExscjADDFILEGROUPfgroup1ALTERDATABASExscjADDFILEGROUPfgroup2ALTERDATABASExscjADDFILEGROUPfgroup3ALTERDATABASExscjADDFILEGR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论