您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第02章 关系数据库系统2
第2章关系数据库基础北京信息科技大学2.1关系数据库系统概述关系数据库的发展SQLServer简介关系数据库标准语言SQL简介SQLServer的Transact-SQL介绍关系数据库的三层模式结构SQLServer的数据库存储结构建立数据库SQLServer的安全管理简介SQL标准中的架构2北京信息科技大学关系数据库的发展CODASYL于1962年发表的“信息代数”一文E.F.Codd从1970年起发表了一系列的论文20世纪70年代末的实验系统SystemR和Ingres从20世纪80年代逐步走向成熟3北京信息科技大学SQLServer简介20世纪80年代:诞生。1995年:SQLServer6.01996年:SQLServer6.51998年:SQLServer7.02000年:SQLServer20002005年:SQLServer20052008年:SQLServer20082012年:SQLServer20124北京信息科技大学DBMS和解决方案现在的SQLServer是关系数据库管理系统,但更是基于数据库的全面应用解决方案。可以为数据库提供更安全可靠的存储功能可以构建和管理用于业务的高可用和高性能的数据应用系统提供了分布式数据库解决方案、商业智能和数据仓库解决方案、数据集成服务解决方案、以及超越关系数据库的应用解决方案(如XML数据管理、空间数据管理)等。5北京信息科技大学版本有多个版本,可以适合不同规模和场合的应用企业版标准版工作组版Web版开发者版学习版移动版6北京信息科技大学关系数据库标准语言SQL简介7SQL的历史(书P34)SQL的特点SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据控制等方面的功能,它可以完成数据库活动中的全部工作。SQL语言是一种高度非过程化的语言。SQL语言非常简洁。SQL语言可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。北京信息科技大学SQLServer的Transact-SQL介绍SQLServer使用的语言称作Transact-SQL,简称T-SQL,它不仅包括SQL操作的内容,还有一般程序设计的能力。数据类型与变量说明运算符与表达式函数全局变量程序语句8北京信息科技大学SQLServer2005/2008支持的数据类型9分类数据类型备注数字类型整数bigint,integer(或int),smallint,tinyint字节长度分别为:8,4,2,1可与IDENTITY一起使用的唯一类型,IDENTITY通常用于自动生成唯一标识号非整数精确表示decimal(p,s)或numeric(p,s)P是总的精度,s是小数位数近似表示float,real货币类型money,smallmoney可以使用常用的货币符号,如¥,$等。字符类型ASCIIchar(n),varchar(n),varchar(max)需用单引号Unicodenchar(n),nvarchar(n),nvarchar(max)日期和时间类型datetime,smalldatetime需用单引号二进制类型binary,varbinary,varbinary(max)特殊类型cursor,sql_variant,table,XML北京信息科技大学1.数据类型与变量说明在T-SQL中用DECLARE语句说明内存变量,用SELECT语句或SET语句赋值。变量说明的命令格式为:DECLARE@变量名类型[,@变量名类型...]例:声明一个长度为10个字符的变量iddeclare@idchar10注意,变量名前必须有@前缀,以便与数据库字段名相区分。10北京信息科技大学2.运算符与表达式算术运算符见书P37,表2-2位运算符见书P37,表2-3比较运算符见书P38,表2-4逻辑运算符见书P38,表2-5字符串运算符在T-SQL中可以用算术运算符的加号(+)做字符串的连接运算。如’abc’+’def’的结果为’abcdef’。11北京信息科技大学3.函数聚合函数加密函数游标函数日期和时间函数数学函数元数据函数行集函数安全函数字符串函数类型转换函数系统函数系统统计函数12详细介绍请参阅SQLServer相关使用手册。北京信息科技大学4.全局变量全局变量是SQLServer系统预定义的,用于返回有关配置设置和系统运行的信息。全局变量以@@做前缀。例如:@@SERVERNAME和@@FETCH_STATUS13局部变量?北京信息科技大学5程序语句14注释语句/*注释*/,--注释赋值语句给变量赋值复合语句可以定义一个语句块,可用于嵌套条件语句循环语句执行过程的语句主要用于执行存储过程等待语句挂起批处理,存储过程或事物的执行。PRINT语句向客户输出信息。RAISERROR语句根据出错类型,输出出错信息。返回语句无条件终止当前的查询等操作,返回调用程序北京信息科技大学赋值语句使用SELECT命令语句格式一:SELECT@local_variable=expression[,@local_variable=expression…]语句格式二:SELECT@local_variable=expression[,@local_variable=expression…]FROM表名|视图名……使用SET命令的语句格式是:SET@local_variable=expression15直接对变量进行赋值将查询结果赋值给变量•@local_variable是用DECLARE语句说明的局部变量•expression是与变量数据类型相匹配的表达式。北京信息科技大学变量的赋值在Transact-SQL中不能像在一般的程序语言中一样使用变量=变量值来给变量赋值,必须使用SELECT或SET命令来设定变量的值,其语法如下:SELECT@局部变量=表达式SET@局部变量=表达式例:给刚才定义的变量id并赋值select@id=’10010001’北京信息科技大学WAITFOR语句WAITFOR语句挂起批处理、存储过程或事务的执行。WAITFOR语句通常用于事务控制,例如当已超过指定的时间间隔或到达一天中指定的时间再恢复程序的运行。使程序延迟10秒执行:WAITFORDELAY'00:00:10'使程序等到14时20分再开始执行:WAITFORTIME'14:20'17北京信息科技大学PRINT语句PRINT语句用于向客户端输出或返回定义的信息。PRINT语句的基本格式如下:PRINTmsg_str|@local_variable|string_expr18•msg_str是字符串常量•@local_variable可以是任何有效的字符数据类型变量(或者能够隐式转换为字符数据类型)•string_expr是字符串表达式。北京信息科技大学关系数据库的三层模式结构关系数据库和SQL均支持三层模式结构。基本表、视图、SQL存储。外部数据库、概念数据库、存储数据库。如何定义基本表、视图、SQL存储?19北京信息科技大学SQLServer的数据库存储结构每个SQLServer有3个基本系统数据库用于支持SQLServer的运行和管理,所有用户对象(包括基本表、视图、存储过程、触发器等)都建立在用户数据库中,在一个SQLServer上可以建立多个用户数据库。数据库的物理存储基本是由SQLServer自动管理的。20北京信息科技大学SQLServer的数据库存储结构21master数据库:用于存储所有系统级信息,包括所有的其他数据库(如建立的用户数据库)的信息(包括数据库的设置、对应的操作系统文件名称和位置等)、所有数据库注册用户的信息以及系统配置设置等。北京信息科技大学SQLServer的数据库存储结构22tempdb数据库用于保存所有的临时表和临时存储过程,它还可以满足任何其它的临时存储要求。tempdb数据库是全局资源。tempdb数据库在SQLServer每次启动时都重新创建。北京信息科技大学SQLServer的数据库存储结构23model数据库model数据库是一个模板数据库,当使用CREATEDATABASE命令建立新的数据库时,新数据库的第一部分总是通过复制model数据库中的内容创建,剩余部分由空页填充。由于SQLServer每次启动时都要创建tempdb数据库,所以model数据库必须一直存在于SQLServer系统中。北京信息科技大学建立用户数据库用户数据存储在用户数据库中建立用户数据库就是向操作系统申请存储空间专门用来存储用户数据库中的数据用来存储数据库数据的操作系统文件可以分为3类:主文件次文件事务日志文件24北京信息科技大学数据库存储文件的构成DatabaseData(file).mdfor.ndfLog(file).ldf存储数据库的启动信息和系统表,也可以用来存储用户数据。每个数据库有且仅有一个主文件。建议主文件使用.mdf扩展名。•主文件•次文件•事务日志文件北京信息科技大学数据库存储文件的构成DatabaseData(file).mdfor.ndfLog(file).ldf保存所有主文件中容纳不下的数据。使用多个独立磁盘驱动器上的次文件,还可以将一个数据库中的数据分布在多个物理磁盘上。每个数据库有0或多个次文件。建议次文件使用.ndf扩展名。•主文件•次文件•事务日志文件北京信息科技大学数据库存储文件的构成DatabaseData(file).mdfor.ndfLog(file).ldf用来保存恢复数据库的日志信息。每个数据库必须至少有一个事务日志文件(可以有多个)。日志相当于数据库操作的“值班文件”,当数据库需要恢复时可以将数据库恢复到最新的、一致的状态。建议日志文件使用.ldf扩展名。•主文件•次文件•事务日志文件北京信息科技大学CREATEDATABASE命令建立数据库的命令是CREATEDATABASE。在SQLServer中建立数据库需要指定数据库的名称以及有关存储文件的描述(包括由SQLServer使用的逻辑名,建立在磁盘上的操作系统文件名(含路径),以及数据库规模等),另外还有文件组和日志等有关信息。常用命令格式如下:CREATEDATABASEdatabase_nameONfilespec[,filespec,...][,FILEGROUPfilegroup_namefilespec[,filespec,...]][LOGONfilespec[,filespec,...]]北京信息科技大学CREATEDATABASE命令要建立的数据库的名称,数据库名称必须唯一,并且符合标识符的规则;database_name最多可以包含128个字符。CREATEDATABASEdatabase_nameONfilespec[,filespec,...][,FILEGROUPfilegroup_namefilespec[,filespec,...]][LOGONfilespec[,filespec,...]]指定用来存储数据库的操作系统文件(存储在磁盘上的数据文件),该关键字后跟以逗号分隔的filespec项列表。北京信息科技大学CREATEDATABASE命令用于定义对应的操作系统文件的属性。包括:[PRIMARY](NAME=logical_file_name,FILENAME='os_file_name'[,SIZE=size][,MAXSIZE={max_size|UNLIMITED}][,FILEGROWTH=growth_increment])CREATEDATABASEdatabase_nameONfilespec[,filespec,...][
本文标题:第02章 关系数据库系统2
链接地址:https://www.777doc.com/doc-3772163 .html