数据库的创建与管理.pptx
数据库管理系统的作用是描述数据库的逻辑结构与存储结构,管理数据库系统的运行1.控制用户的访问权限与并发访问数量2.控制数据库中数据编辑(添加、修改与删除)3.记录数据库的工作日志、监视数据库的性能4.对数据库进行备份及恢复等功能第1页/共47页数据库应用程序是利用某种编程语言编写的应用程序。如用VB、VC、C+BUILDER、JAVA、.NET、POWERBUILER等等第2页/共47页1.所谓事务是SQL Server 的一个工作单元,一个事务内的所有语句作为一个整体执行ABCX事务1第3页/共47页2.事务日志:目的是记录数据库中事务所有操作并进行相关备份,以便发生错误时予以恢复。事务日志的作用有以下几个方面数据库操作发生错误时,执行“回滚”事务的操作执行事务的过程出现死机或断电,事务未执行完。重新启动数据库时,事务日志可以回滚尚未完成的事务,以保证数据库中的内容达到一致数据库发生崩溃时,可以利用以前的数据库备份以及事务日志将数据库恢复到崩溃前的状态破坏数据库的完整性返 回第4页/共47页4.2 数据库的存储结构SQL Server 逻辑视图:数据库对象,如:表、视图、存储过程、触发器、索引和约束等物理结构:一定的数据文件形式存储在硬盘中企业管理器第5页/共47页1文件:指数据库的系统文件,一个数据库都对应于两个或多个文件,在该数据库内创建的数据库对象(如表、视图等)都保存在这些文件中。分为三类:文件主数据文件二级数据文件日志文件是数据库的起点,指向数据库中文件的其他部分。默认扩展名为“.mdf”,必须且只能包含一个主数据文件,存储启动信息、数据和数据库对象是辅数据文件,默认扩展名为“.ndf”。可以有0个以上的二级数据文件,用于存储主数据文件中没有存储的数据和数据库对象。存放对数据库进行操作的事务日志,在数据库遭到破坏时,可以利用日志文件恢复数据,默认扩展名“.ldf”。必须包含一个以上的日志文件第6页/共47页2数据库的物理存储结构 数据库的数据文件和日志文件是存储在磁盘上的。日志文件是由一系列日志记录组成数据文件则由页面和扩展盘区组成最小基本存储单位,有多种页1页8千字节1个扩展盘区=8页是表和索引的基本存储单位现在知道这么多就够了统一扩展盘区:为单个对象所独占混合扩展盘区逻辑环方式存储,日志的不活动部分在备份后被自动删除返 回第7页/共47页4.3 SQL Server的系统数据库与示例数据库1.SQL Server的数据库分为两大类:系统数据库和用户数据库2.系统数据库是SQL Server内置的,它们用于管理目的,不能随便更改或删除3.用户数据库一般由用户创建,其使用与管理由其创建者决定4.安装时建立:4个系统数据库:master,tempdb,model,msdb2个用户示例数据库:pubs和Northwind概述:第8页/共47页1系统数据库1.Master:记录SQLServer系统的相关信息,如:登录账户及其密码、系统配置信息、用户数据库的位置等,包括许多系统存储过程2.Tempdb:保存所有临时表、临时存储过程以及其他临时数据3.Model:是新建数据库的模板,每创建一个新数据库,其内容都与模板相同4.Msdb:由SQL Server Agent使用,用于自动执行有关操作,如自动进行备份、警报和复制等第9页/共47页2 示例数据库示例数据库pubs和Northwind:联机丛书中的例题是以这两个数据库的数据为样本的3 系统表系统表有两类系统表,表名以“sys”开头。分别位于master数据库和用户数据库中另一类系统表位于每个数据库中,继承自model数据库,其结构与数量都与model数据库一致存放服务器级的系统信息存放数据库级信息返 回第10页/共47页4.4 SQL Server的标识符1.标识符是指数据库、数据库对象等(如表、视图、存储过程、触发器、规则等、列、变量)的名称2.SQL Server标识符分两类:概述:规则标识符界定标识符第11页/共47页1规则标识符(相关的逻辑文件名命名)定义:是可以直接使用的标识符,其书写遵守如下规则:第一个字符是Unicode标准所定义的字符:26个英文字母、下划线_、#,及其他语言中的字母符号说明:其中以一个“”开头的表示局部变量;以“”开头的表示全局变量;以一个“#”开头的表示局部临时数据库对象,以“#”开头的表示全局临时数据库对象第一个字符后的字符可以是Unicode标准所定义的字符、_、#、$或阿拉伯数字规则标识符中不允许有空格、或其他特殊字符(如:、:-)不能与SQLServer保留关键字相同,无论是大写或小写第12页/共47页declare error1 int,error2 int,error3 int,error4 int,error5 int,error6 int,error7 int,error8 begin tranCREATE TABLE#ck_kc_phb(hp_bhchar(16),hp_jldwchar(8),)CREATE TABLE#hp_temp(hp_bhchar(16),hp_slfloat)insert into#ck_kc_phbinsert into#ck_kc_phbselect hp_bh,jldw,dj,ck_kc.sl,0,0,0,0,0,0,0,0,0,0,0,0,0 from ck_kcwhere ck_bh=ck_bh_gsset error1=error第13页/共47页2界定标识符定义:建立规则标识符以外的形式定义标识符,通过这类标识符外加上界定符号,标示明该界定符号内的字符为标识符,这类标识称为界定标识符。界定符号:、英文单引号、英文双引号“”三种说明:方括号与英文双引号均可以用于界定标识符,单引号只能是字符串的界定符号举例:Select*fromck_kcSelect*fromck_kcSelect*fromck_kc等价Select*fromck_kc错误注意是英文双引号!第14页/共47页3命名规则 对象命名规则 对象的全名为:服务器名.数据库名.拥有者名.对象名,使用可以省略服务器名、数据库名、拥有者名中的一项或多项。举例:Select*FROMAHUT-TOM.sms.dbo.BlanksinTableName服务器名数据库名所有者表名指代明确就可以了第15页/共47页第16页/共47页SQL Server 2000 文件名:文件命名规则略,可跳过(1)逻辑文件名:在T-SQL中引用的文件名,符合SQLServer中的标识符规则(2)物理文件名:遵从NT或者windows98的文件命名规范返 回第17页/共47页4.5 创建用户数据库1.用企业管理器2.编写Transact-SQL(T-SQL)语句概述:SQL Server 中创建数据库有两种方法第18页/共47页1使用企业管理器创建数据库在企业管理器中,应该在某个数据库服务器(或称数据库实例)下创建用户数据库。第19页/共47页2使用T-SQL创建数据库CREATEDATABASEdatabase_name ONPRIMARY (NAME=logical_file_name,FILENAME=os_file_name,SIZE=size,MAXSIZE=max_size|UNLIMITED,FILEGROWTH=growth_increment),.nLOGON(NAME=logical_file_name,FILENAME=os_file_name,SIZE=size,MAXSIZE=max_size|UNLIMITED,FILEGROWTH=growth_increment),.nCOLLATEcollation_name问:如何使用这么复杂的语法?第20页/共47页命令说明:(1)database_name:创建的数据库名称,该名称在数据库服务器中必须惟一,且符合标识符的规则(2)关键字ON:用于指定存储数据库数据的磁盘文件(数据文件)(3)PRIMARY:指定其后定义的第一个文件是主数据文件。(4)LOG ON:指定数据库的日志文件。先了解4点内容!第21页/共47页例:创建一个名为例:创建一个名为Report的数据库,定义一个主文件、的数据库,定义一个主文件、一个二级文件和一个日志文件。主文件的逻辑文件名为一个二级文件和一个日志文件。主文件的逻辑文件名为Rep1,磁盘文件名为磁盘文件名为rep1_dat.mdf。二级文件的逻辑文件。二级文件的逻辑文件名为名为Rep2,磁盘文件名为磁盘文件名为rep2_dat.ndf。事务日志文件的。事务日志文件的逻辑文件名为逻辑文件名为Rep1_log,磁盘文件名为,磁盘文件名为rep1_log.ldf。所。所有文件的初始容量都是有文件的初始容量都是5MB,最大容量限制都是,最大容量限制都是10MB,在最大容量限制内,当文件空间不够时每次的增长量都是在最大容量限制内,当文件空间不够时每次的增长量都是1MB.第22页/共47页CREATE DATABASE ReportONPRIMARY(NAME=Rep1,FILENAME=E:Microsoft SQL ServerMSSQLDatarep1_dat.mdfSIZE=5MB,MAXSIZE=10MB,FILEGROWTH=1MB),(NAME=Rep2,FILENAME=E:Microsoft SQL ServerMSSQLDatarep2_dat.ndfSIZE=5MB,MAXSIZE=10MB,FILEGROWTH=1MB)LOG ON(NAME=Rep1_log,FILENAME=E:Microsoft SQL ServerMSSQLDatarep1_log.ldfSIZE=5MB,MAXSIZE=10MB,FILEGROWTH=1MB)GO返 回第23页/共47页4.6 管理数据库1查看数据库的信息使用系统存储过程查看数据库信息 使用企业管理器查看数据库信息系统存储过程,如:sp_helpdb、sp_database、sp_helpfile等第24页/共47页第25页/共47页利用企业管理器查看数据库属性第26页/共47页2修改数据库(1)修改数据库用户数:多用户状态和单用户状态,用系统存储过程或企业管理器存储过程命令格式:sp_dboptiondbname=database_name,optname=option_name,optvalue=value命令说明:(1)database_name:表示数据库的名称(2)option_name:选项名称:dbouseonly=true只有dbo可以使用数据库,=false任何用户可以使用singleuser=true单用户状态=false时多个用户同时访问格式需要记吗?第27页/共47页修改数据库为只读!第28页/共47页删除错误!第29页/共47页去除数据库MMS的只读属性第30页/共47页格式:sp_renamedb old_dbname,new_ dbname命令说明:old_dbname与new_ dbname分别表示数据库的旧名与新名(2)修改数据库名称系统存储过程sp_renamedb用于对数据库进行更名例:sp_renamedbmmsmms_new注:企业管理器不能改名数据库,为什么?第31页/共47页改名前第32页/共47页执行改名第33页/共47页第34页/共47页第35页/共47页系统数据库不能删除,只有用户数据库才能够被删除。用系统存储过程用企业管理器 删除数据库3 删除数据库删除数据库命令格式:DROPDATABASEdatabase_name,.n说明:database_name,.n:表示被删除的数据库名称,可以一次删除多个数据库请同学自己联系一下!第36页/共47页返 回第37页/共47页T-sql创建数据库示例A.创建指定数据文件和事务日志文件的数据库 下面的示例创建名为 SalesSales 的数据库。1、没有使用关键字 PRIMARY,第一个文件(Sales_datSales_dat)成为主文件。2、Sales_datSales_dat 文件的 SIZE 参数没有指定 MB 或 KB,因此默认为 MB,以兆字节为单位进行分配。Sales_logSales_log 文件以兆字节为单位进行分配,因为 SIZE 参数中显式声明了 MB 后缀。第38页/共47页CREATEDATABASESalesON(NAME=Sales_dat,FILENAME=e:microsoftsqlservermssqldatasaledat.mdf,SIZE=1,MAXSIZE=5,FILEGROWTH=1)LOGON(NAME=Sales_log,FILENAME=e:microsoftsqlservermssqldatasalelog.ldf,SIZE=1MB,MAXSIZE=3MB,FILEGROWTH=1MB)GO删除数据库:DROPDATABASESales第39页/共47页B.指定多个数据文件和事务日志文件创建数据库注意注意 FILENAME FILENAME 选项中所用的文件扩展名:主要数据文件使用选项中所用的文件扩展名:主要数据文件使用 .mdf.mdf,次要数据文,次要数据文件使用件使用 .ndf.ndf,事务日志文件使用,事务日志文件使用 .ldf.ldf 第40页/共47页USE masterGOCREATE DATABASE ComputerONPRIMARY(NAME=Computer1,FILENAME=e:microsoft sql servermssqldataComputerDat1.mdf,SIZE=1MB,MAXSIZE=3,FILEGROWTH=1),(NAME=Computer2,FILENAME=e:microsoft sql servermssqldataComputerDat2.ndf,SIZE=1MB,MAXSIZE=3,FILEGROWTH=1)LOG ON(NAME=ComputerLog,FILENAME=e:microsoft sql servermssqldataComputerLog.ldf,SIZE=1MB,MAXSIZE=2,FILEGROWTH=1)GO第41页/共47页C.创建简单的数据库本例创建名为 ProductsProducts 的数据库,并指定单个文件。指定的文件成为主文件,并会自动创建一个 1 MB 的事务日志文件。因为主文件的 SIZESIZE 参数中没有指定 MB 或 KB,所以主文件将以兆字节为单位进行分配。因为没有为事务日志文件指定,所以事务日志文件没有 MAXSIZE,可以增长到填满所有可用的磁盘空间为止。第42页/共47页USE master GO CREATE DATABASE Products ON(NAME=prods_dat,FILENAME=c:program filesmicrosoft sql servermssqldataprods.mdf,SIZE=4,MAXSIZE=10,FILEGROWTH=1)GO 第43页/共47页D.不指定文件创建数据库 下面的示例创建名为 mytest mytest 的数据库,并创建相应的主文件和事务日志文件。因为该语句没有 项,所以主数据库文件的大小为 modelmodel 数据库主文件的大小。事务日志文件的大小为 model 数据库事务日志文件的大小。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。CREATE DATABASE mytest 第44页/共47页上机作业(一)分别使用SQL Server 2000企业管理器和Transact-SQL语句,按下列要求创建和修改用户数据库。要求如下:数据库名“TestDB”.数据库中包含一个数据文件,逻辑文件名为TestDB_data,磁盘文件名为TestDB_data.mdf,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB。事务日志文件,逻辑文件名为TestDB_log,磁盘文件名为TestDB_log.ldf,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB。对该数据库作如下修改:添加一个数据库文件,逻辑文件名为TestDB2_data,实际文件名为TestDB2_data.ndf,文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB。将日志文件的最大容量增加为15MB,递增值改为2MB.第45页/共47页(二)微软教材P56-3分别使用SQL Server 2000企业管理器和Transact-SQL语句,按下列要求创建和修改用户数据库。要求如下:数据库名称为Library.主文件组有如下两个数据文件:第一个数据文件:逻辑文件名为LibraryData1,实际文件名为”C:cyjLibraryData_1.mdf”,文件初始容量为3MB,最大容量不受限制,文件容量递增率为20%。第二个数据文件:逻辑文件名为LibraryData2,实际文件名为”C:cyjLibraryData_2.ndf”,文件初始容量为3MB,最大容量不受限制,文件容量递增值为1MB。(3)日志文件只有一个数据文件,逻辑名为LibraryLog,文件名为”C:cyjLibraryLog.ldf”,文件初始容量为2MB,最大容量为5 MB,文件容量递增值为1MB。第46页/共47页谢谢您的观看!第47页/共47页