




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库技术与应用第1章 数据库技术概论数据库技术的产生与发展数据库系统数据模型关系数据库SQL Server 2008数据库概述Transact-SQL语言简介关系模型、关系运算、关系数据库设计 2问题提出什么是数据库技术?数据库的地位如何?什么是大数据?什么是云计算?31.1 数据库技术的产生与发展人工管理阶段 文件管理阶段 数据库管理阶段 新型数据库系统 41.1 数据库技术的产生与发展人工管理阶段(40年代中50年代中) 程序与数据是一个整体,一个程序中的数据无法被其他程序使用,因此程序与程序之间存在大量的重复数据。硬件方面:没有磁盘等直接存取的外存储器。软件方面:没有对数据进行管理的系
2、统软件。特点不能共享数据;程序复杂;数据无法长期保存。561.1 数据库技术的产生与发展文件管理阶段(50年代末60年代中) 计算机开始用于大量数据管理。硬件方面:有了直接存取的大容量外存储器软件方面:出现了操作系统(包含文件系统)特点程序共享数据;可长期保存数据;数据冗余度较大;程序对数据依赖性较强;缺乏对数据的统一控制管理。1.1 数据库技术的产生与发展数据库管理阶段(60年代末现在) 数据库是在数据库管理系统的集中控制之下,按一定的组织方式存储起来的、相互关联的数据集合。特点 数据的共享性高,冗余度低,易扩充数据独立性高 数据由DBMS统一管理和控制781.1数据库技术的产生与发展新型数
3、据库系统分布式数据库(Distributed Database System,DDBS)是地理上分布在计算机网络的不同结点,逻辑上属于同一系统的数据库系统;支持局部应用,存取本地结点或另一结点的数据,也支持全局应用,同时存取两个或两个以上结点的数据。特点数据是分布的数据是逻辑相关的结点的自治性分布式数据库系统主要应用于航空、铁路、旅游订票系统、银行通存通兑系统、水陆空联运系统、跨国公司管理系统、连锁配送管理系统等等。91.1 数据库技术的产生与发展新型数据库系统面向对象数据库系统(Object-Oriented Database System,OODBS)是将面向对象的模型、方法和机制,与先进
4、的数据库技术有机地结合而形成的新型数据库系统。基本设计思想一方面把面向对象语言向数据库方向扩展,使应用程序能够存取并处理对象另一方面扩展数据库系统,使其具有面向对象的特征,提供一种综合的语义数据建模概念集,以便对现实世界中复杂应用的实体和联系建模。面向对象数据库系统对一些特定应用领域(如CAD等),能较好地满足了其应用需求。1.1 数据库技术的产生与发展新型数据库系统多媒体数据库系统(Multimedia Database System,MDBS)能存储和管理多种媒体的数据库系统。特点如果能够对多媒体数据和传统的字符型数值数据采用统一的方法进行管理,该系统将成为最理想、最有效的数据管理方法。多
5、媒体数据库系统主要应用于军事、医学病例管理、航天测控、商标管理、地理信息系统、数字图书馆、期刊出版系统等。101.1 数据库技术的产生与发展新型数据库系统数据仓库技术 (Data Warehouse,DW)数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。数据仓库是一个环境 。数据仓库系统包括:数据仓库技术;联机分析处理技术(OLAP);数据挖掘技术(DM);数据仓库技术应用领域遍及通信、 零售业、金融以及制造业。 111.1 数据库技术的产生与发展新型数据库系统12内存数据库系统(Main Memory DataBase,MMDB)是实时系统和数据库系统
6、的有机结合。抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。特点“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。内存数据库系统目前广泛应用于航空、军事、电信、电力、工业控制等领域。1.2 数据库系统1.2.1 数据库系统的组成1.2.2 数据库的结构体系1.2.3 数据库系统的特点131.2.1 数据库系统组成数据库系统(DBS)是指基于数据库的计算机应用系统。它是由计算机硬件、软件、数据和人员组合起来为用户提
7、供信息服务的系统。应用程序1应用程序2应用程序n数据库管理系统(DBMS)数据库管理员(DBA)数据库(DB)数据软件系统DBS141.2.2 数据库的结构体系数据库的结构体系数据库领域公认的标准结构是三级模式结构及二级映射。三级模式外模式概念模式内模式二级映射概念模式/内模式的映射外模式/概念模式的映射把解决某类问题的方法总结归纳到理论高度,即模式。151.2.2 数据库的结构体系三级模式结构及二级映射用于定义概念模式和内模式之间的对应性。一般在内模式中描述。用于定义外模式和概念模式间的对应性。在外模式中描述。161.2.3 数据库系统的特点数据结构化 数据共享性高、冗余度低 具有较高的数据
8、独立性有统一的数据控制功能 171.3 数据模型1.3.1 数据模型的组成要素1.3.2 数据抽象的过程1.3.3 概念模型1.3.4 逻辑模型181.3 数据模型数据(data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(Data Model)是数据特征的抽象,是数据库管理的教学形式框架。数据库系统中用以提供信息表示和操作手段的形式构架。191.3.1 数据模型的组成要素数据模型的3要素数据结构数据结构是所研究的对象类型的集合。这些对象和对象类型是数据库的组成成分。一般可分为两类:一类是与数据类型、内容和其它性质有关的对象;一类是与数据之间的联系有关的对象。数据操作数
9、据操作是指对各种对象类型的实例(或值)所允许执行的操作的集合,包括操作及有关的操作规则。数据的完整性约束数据的约束条件是完整性规则的集合。用来确保数据的正确性、有效性和一致性。201.3.2 数据抽象的过程数据模型是对现实世界进行抽象和转换的结果。21对现实世界的抽象现实世界是存在人们头脑之外的客观世界,由客观事物及其联系组成。 观念世界中的概念模型是对现实世界的抽象和描述。用概念模型描述机器世界中的逻辑模型和物理模型是指现实世界在计算机中的体现与反映。1.3.3 概念模型概念模型是面向用户、面向现实世界的数据模型,它与DBMS无关。它主要用来描述一个单位的概念化结构。采用概念数据模型,数据库
10、设计人员可以在设计的开始阶段,把主要精力用于了解和描述现实世界上,而把涉及DBMS的一些技术性的问题推迟到设计阶段去考虑。221.3.3 概念模型与现实世界对应的概念实体:客观存在并可相互区别的事物实体集:具有相同属性的实体的集合属性:实体所具有的某一特性称为实体的属性 类型与值:属性类型就是属性名及其取值类型,属性值就是属性所取的具体值。实体间的联系:实体集之间的对应关系。例:负责人与其单位的联系 一对一联系 1 :1例:单位与职工的联系 一对多联系:n 例:实体(集)课程与实体(集)学生 多对多联系 m :n 231.3.3 概念模型E-R图(用E-R图描述现实世界的概念模型)实体-联系方
11、法(Entity-Relationship Approach)E-R方法也称为E-R模型使用图形方式(4种原素:椭圆,长方形,凌形,无向的线)11负责人管理单位证件号姓名职称单位代码单位名称电话1m单位包含职工241.3.4 逻辑模型逻辑模型,是指数据的逻辑结构。在数据库中,逻辑模型有层次、关系、网状模型。在进行数据库设计时,总是先设计E-R模型,然后再把E-R模型转换成计算机能实现的逻辑数据模型。层次模型用层次结构(树形结构)来表示实体及实体之间的联系,如 IMS(IP多媒体系统 )系统。251.3.4 逻辑模型网状模型没有惟一的根结点,且每一个结点都可以与其他任意个结点相连 ,这样便成了网
12、状结构。用网状结构来表示实体及实体之间的联系 ,如:DBTG(数据库任务组)系统261.3.4 逻辑模型关系模型用二维表格结构来表示实体以及实体之间联系。操作的对象和结果都是二维表。 采用关系模型的数据库称为关系数据库。 关系模型与层次型、网状型的本质区别在于数据描述的一致性,模型概念单一 。学生登记表学号姓名性别出生日期901040101王文清男1986.10建宇男1985. 3.07901040103李超男女1986.8.10901040104覃江燕女1986.12.25271.4 关系数据库1.4.1 关系数据库的基本概念1.4.2 关系运算1.4.3 关系的完
13、整性约束1.4.4 关系数据库设计实例281.4.1 关系数据库的基本概念关系,表示多个实体之间的相互关联,是一种规范化了的二维表格 。 没有重复行、重复列,并且每个行列的交叉点只有一个基本数据的二维表格看成一个关系。不是二维表29二维表1.4.1 关系数据库的基本概念30 基本术语关系:一张二维表 元组:表中的一行或记录属性:表中的一列或字段 属性值:表中行和列的交叉位置 域:属性的取值范围 表结构:表中的第1行关键字:能唯一区分、确定不同元组的单个属性或属性组合外部关键字 :也是表中的一个或多个字段,外部关键字的值与相关表的主关键字相匹配。1.4.2 关系运算关系模式它由一个关系名以及它所
14、有的属性名构成。是指对关系结构的描述,一般表示为: 关系名(属性1,属性2,属性3,属性n)例:学生(学号,姓名,性别,出生日期)课程(课程代码,课程名称,学分)选课(学号,课程代码,成绩)n选课学生课程学号姓名性别出生日期成绩课程代码课程名称学分m311.4.2 关系运算关系的基本运算有两类传统的集合运算(并、差、交等)专门的关系运算(选择、投影、连接等)传统的关系运算交 、并、差 - 、笛卡尔积 。交:它是 R 和 S 共同具有记录的集合。生成新关系,新关系结构与 R 和 S 相同。记作RS。并:R 中的元素和 S 中的元素共同组成的集合。生成新关系,新关系结构与 R 和 S 相同。记作记
15、作RS。差:它是从 R 中去掉 S 中存在的记录集合。生成新关系,新关系结构与 R 和 S 相同。记作R-S。 笛卡尔积:记作 RS ,它的关系模式是 R 和 S 的模式的并集,关系的值是 R 中的每条记录连接 S 中的每个记录的记录集合。 321.4.2 关系运算专门的关系运算(3种)选择(Selection)运算从一个关系中选择出满足给定条件的所有记录,它是原关系的一个子集,结构与原关系相同。选择运算提供了横向划分(或称分割)关系的手段。 Select * FROM 表名 WHERE 条件投影(Projection)运算从一个关系 R 中按所需顺序选取若干属性组成新关系。投影运算提供纵向划
16、分(或称分割)关系的手段。新关系的属性通常少于原关系。 Select 列1,列2 , FROM 表名连接(Join)运算把两个关系 R 和 S 按相应属性值的比较条件联接起来。它是 R 和 S 笛卡尔积的子集。有6个比较运算符:、= 、= 、= 、 331.4.2 关系运算341.4.3 关系的完整性约束(3种)实体完整性实体完整性就是指关系的主属性不能取空值,并且不允许两个元组的关键字值相同。即一个二维表中没有两个完全相同的行。参照完整性参照完整性规则就是定义外部关键字与主关键字之间的引用规则,即对于R中每个元组在F上的值必须取空值或等于S中某个元组的主关键字值。用户定义完整性针对某一具体关
17、系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如规定关系中某一属性的取值范围。351.4.4 关系数据库设计实例1n联系到关系模型的转化把每个实体分别转化为一个关系,实体名作为关系名,实体属性作为关系的属性,并在1n联系的n方增加一个属性,该属性存放与该实体相联系的另一个实体的关键字。例如,根据学院与学生两个实体(1:n)所转化的关系是:学院(编号,学院名称)学生(学号,姓名,性别,出生日期,班级,电话,地址,简历,编号)编号是指学院的编号361.4.4 关系数据库设计实例mn联系到关系模型的转化表1-3中学生与课程的联系是多对多的联系。对这样的联系进行关系模型转化时
18、,把两个实体独立地转化为两个关系,转化时,将实体名作为关系名,实体属性转化为关系属性,除此以外单独设置一个关系描述两个实体间的联系,其属性由两个实体的关键字组成。例如:学生(学号,姓名,性别,出生日期,班级,电话,地址,简历)其中学号作为关键字课程(课程号,课程名称,课程类型,学分,备注)其中课程号作为关键字选课(学号,课程号,成绩)其中学号和课程号的组合作为关键字371.4.4 关系数据库设计实例11联系到关系模型的转化将两个实体按上述实体转化方法分别转化为两个关系,并对每个属性增加一个外部关键字,外部关键字由与本实体相联系的对方实体的关键字组成。例如:学生(学号,姓名,性别,出生日期,班级
19、,电话,地址,简历,编号)学院(编号,学院名称)课程(课程号,课程名称,课程类型,学分,备注)选课(学号,课程号,成绩)381.4.4 关系数据库设计实例学生信息数据库391.4.4 关系数据库设计实例学生信息数据库401.4.4 关系数据库设计实例学生信息数据库411.5 SQL Server 2008数据库概述421.5.1 SQL Server的初步认识1.5.2 SQL Server 2008的服务器组件1.5.3 SQL Server 2008常用管理工具1.5.4 SQL Server数据类型 1.5.1 SQL Server的初步认识43SQL Server 2008 是一个使用
20、客户机/服务器体系结构的关系型数据库管理系统。SQL Server的发展1987年赛贝尔公司发布了Sybase SQL Server系统,2008年微软公司发布了Microsoft SQL Server 2008系统,其代码名称为Katmai(卡特迈)。SQL Server2008的版本SQL Server 2008系统提供了7种不同的版本,这些版本分别是企业版、标准版、开发版、工作组版、学习版、移动版和Web版。SQL Server2008的安装(见P20)1.5.2 SQL Server 2008的服务器组件44主要组件数据库引擎(Database Engine)Analysis Serv
21、ices(分析服务)Reporting Services(报表服务)Integration Service(集成服务)SQL Server Compact Edition(精简版)一个适用于嵌入到移动应用的精简数据库产品SQL Server 2008的版本不同,提供的服务器组件可能也不相同。1.5.3 SQL Server 2008常用管理工具45表1.9管理工具功 能SQL Server Management Studio用于编辑和执行查询,以及启动标准向导任务SQL Server配置管理器管理服务器和客户端网络配置设置SQL Server Profiler提供用于监视SQL Server
22、数据库引擎实例或Analysis Services实例的图形用户界面数据库引擎优化顾问可以协助创建索引、索引视图和分区的最佳组合SQL Server Business Intelligence Development Studio用于包括Analysis Services、Integration Service 和Reporting Services项目在内的商业解决方案的集成开发环境Reporting Services配置管理器提供报表服务器配置的统一的查看、设置和管理方式SQL Server安装中心安装、升级到或更改SQL Server 2008 实例中的组件461.5.4 SQL Ser
23、ver数据类型SQL Server支持4种基本数据类型:数值数据类型字符和二进制数据类型日期时间数据类型逻辑数据类型471.5.4 SQL Server数据类型 数值数据类型(大致可分为4种基本类型)整数数据类型int4字节smallint2字节tinyint1字节bigint8字节浮点数据类型:用于存储系统所能提供的最大精度保留的实数数据 。FLOAT 数据类型可精确到第15 位小数,占8字节-1.7910308 +1.7910308 REAL数据类型可精确到第7 位小数 ,占4字节-3.401038 +3.401038 481.5.4 SQL Server数据类型精确数值数据类型用于存储有
24、小数点且小数点后位数确定的实数 。格式:decimal(p, s)numeric(p, s) 其中:P精度,S小数位数。两者功能上等同货币数据类型Money:存储长度是8字节,货币数据值介于-263 263-1 Smallmoney:存储长度是4字节,介于 -231 231-1 decimal和numeric类型适用于货币数据的处理。491.5.4 SQL Server数据类型字符和二进制数据类型字符数据类型(要用单引号括起来)存储汉字、英文字母、数字符号和其他符号。定长 char数据类型 变长varchar数据类型 文本 text数据类型 Unicode,多字节的字符数据类型nchar(n)
25、、nvarchar(n)和ntext。指不管对哪个地区、哪种语言均采用双字节(16位)编码,即世界上所有的字符统一进行编码。501.5.4 SQL Server数据类型二进制数据类型用于存储二进制数或字符串(3种): binary定义形式为binary(n),n的取值为18000,若不指定则n默认为1。varbinaryvarbinary(n),通过存储输入数据的实际长度而节省存储空间,存取速度比binary类型慢。存储大小为所输入数据的实际长度 加4 个字节。若输入的数据超过n+4个字节,则截断后存储。image可存储1231-1个字节的二进制数据。image数据类型存储的是二进制数据而不是
26、文本字符,不能用作变量或存储过程的参数。511.5.4 SQL Server数据类型日期时间数据类型Datetime占用8字节空间。存储从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒(或3.33毫秒)Smalldatetime占用4字节空间。存储从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟例如:Oct 25 20052005-10-25或2005/10/25200510252005-10-25 3:28:56 PM2005-10-25 15:28:56 英文数字格式(2005年10月25日)数字加分隔符格式12小时格式(PM下午)24小时
27、格式521.5.4 SQL Server数据类型逻辑数据类型为bit,用于判断真/假的场合,长度为1个字节。表示方法整型数据 1(真)、0 (假)或 NULL。uniqueidentifier数据类型可存储16字节的二进制值,其作用与全局唯一标记符(Globally Unique Identifier,GUID)一样。GUID是唯一的二进制数:世界上的任何两台计算机都不会生成重复的GUID值。例如 6F9619FF-8B86 -D011-B42D-00C04FC964FF531.6 Transact-SQL语言简介1.6.1 SQL与Transact-SQL1.6.2 运算符与表达式1.6.3
28、 语句块和注释1.6.4 流程控制语句541.6.1 SQL与Transact-SQLSQL语言 SQL是结构化查询语言(Structured Query Language)的英文缩写,是一种使用关系模型的数据库应用语言。 功能:(1)数据查询语言 DQL(2)数据定义语言 DDL(3)数据操纵语言 DML(4)数据控制语言 DCLTransact-SQL (1)增加了流程控制语句。 (2)加入了局部变量、全局变量等许多新概念,可写出更复杂的查询语句。(3)增加了新的数据类型,处理能力更强。551.6.2 运算符与表达式标识符(2种)常规标识符例: SELECT * FROM TableX -
29、标识符为 TableX表WHERE KeyCol = 124 -标识符为 KeyCol列名分隔标识符包含在双引号(“)或方括号()中。标识符是保留字或包含空格,则使用分隔标识符。例: SELECT * FROM TableX -可选择的分隔标识符 WHERE KeyCol = 124 -可选择的分隔标识符数据库对象的名称被看成是该对象的标识符。标识符包含的字符数必须在1128之间。首字是字母、下划线( _ )、at符号()或者数字符号561.6.2 运算符与表达式常量与变量常量程序运行中保持常值的数据,即程序本身不能改变其值的数据,称为常量,在程序中经常直接使用文字符号表示。变量在程序运行过程
30、中可以改变其值的数据,称为变量。常量类型字符串和二进制常量字符串常量括在单引号内。例如Cincinnati、OBrien、Process X is 50% complete. 为字符串常量。二进制常量具有前辍0 x是十六进制数字字符串,不使用引号。例如: 0 xAE、0 x12Ef、0 x69048AEFDD010E、0 x(空串)为二进制常量。 571.6.2 运算符与表达式日期/时间常量datetime常量使用特定格式的字符日期值表示,用单引号括起来。使用“/”、“.”、“-”作日期/时间常量的分隔符。例如:SELECT CAST(2000-05-08 12:35:29.998 AS sm
31、alldatetime) 数值常量整型常量:例如,1894、2为整型常量。浮点常量: 主要采用科学记数法表示,如101.5E5、0.5E-2为浮点常量。精确数值常量:如 1894.1204、2.0为精确数值常量。货币常量:如 $12.5、$542023.14为货币常量。unique identifier常量是表示GUID(全局惟一标识符)值的字符串。可以使用字符或二进制字符串格式指定。581.6.2 运算符与表达式逻辑数据常量逻辑数据常量使用数字0或1表示,并且不使用引号。非0的数字当作1处理。空值(NULL)空值意味着用户在向表中插入数据时可以忽略该列值。空值可以表示整型、实型、字符型数据。
32、591.6.2 运算符与表达式变量用于临时存放数据,变量中的数据随程序的运行而变化。变量有名字、类型和值三个要素变量的命名使用常规标识符即以字母、下划线(_)、at符号()、数字符号(#)开头,后续字母、数字、at符号、美元符号($)、下划线的字符序列。不允许嵌入空格或其他特殊字符。601.6.2 运算符与表达式变量的使用范围局部变量(变量名前加)由用户定义。定义格式DECLARE local_variable data_type ,.n变量名)、小于(=)、小于等于(=)和不等于(!= 或) 、不小于(!)等。逻辑运算符运算符含 义AND如果两个布尔表达式都为TRUE,那么结果为TRUE。O
33、R一个为TRUE,那么结果就为TRUE。NOT对任何其他布尔运算符的值取反。LIKE如果操作数与一种模式相匹配,那么值为TRUE。IN如果操作数等于表达式列表中的一个,那么值为TRUE。ALL如果一系列的比较都为TRUE,那么值为TRUE。ANY如果一系列的比较中任何一个为TRUE,那么值为TRUE。BETWEEN如果操作数在某个范围之内,那么值为TRUE。EXISTS如果子查询包含一些行,那么值为TRUE。661.6.2 运算符与表达式连接运算符连接运算符(+)用于两个字符串数据的连接,通常也称为字符串运算符。例如,Dr.+ComputerDr. Computer运算符的优先级别() *、/
34、、% +、- NOT AND OR671.6.3 语句块和注释语句块BEGIN.ENDBEGIN sql_statement statement_block END注释单行注释“-” 多行注释“/* */”681.6.4 流程控制语句选择控制条件执行语句IFELSEIF Boolean_expression sql_statement statement_block -条件表达式为真时执行 ELSE sql_statement statement_block -条件表达式为假时执行691.6.4 流程控制语句CASE函数格式1:简单CASE函数,将某个表达式与一组简单表达式进行比较以确定结果。
35、CASE input_expression WHEN when_expression THEN result_expression .n ELSE else_result_expression END格式2:CASE搜索函数,CASE计算一组逻辑表达式以确定结果。CASE WHEN Boolean_expression THEN result_expression . n ELSE else_result_expression END701.6.4 流程控制语句循环控制WHILE boolean_expression sql_statement statement_block BREAK sq
36、l_statement statement_block CONTINUE BREAK语句使程序完全跳出循环,结束WHILE语句的执行。CONTINUE语句使程序跳过CONTINUE语句后面的语句,回到WHILE循环的第一行命令。本章小结(1)数据库的几个基本概念数据管理的发展过程;数据、数据库、数据库管理系统、数据库系统;数据库系统三级模式结构和体系结构;(2)数据模型数据模型的三要素;概念模型,E-R模型;三种主要数据模型。(3)关系数据库关系数据库的几个基本概念,关系运算,关系的完整性约束,关系数据库设计。(4)SQL Server 2008数据库系统(5)Transact-SQL 语言7
37、1 本章思考(1)什么是数据库、数据库管理系统、数据库系统?它们之间有什么联系? (2)当前,主要有哪几种新型数据库系统?它们各有什么特点?用于什么领域,试举例说明? (3)什么是数据模型?目前数据库主要有哪几种数据模型?它们各有什么特点? (4)关系数据库中选择、投影、连接运算的含义是什么?(5)关键字段的含义是什么?它的作用是什么?(6)什么是E-R图?E-R 图是由哪几种基本要素组成?这些要素如何表示?72本章结束73数据库技术与应用数据库技术与应用教材编写组第2章 数据库的管理与使用SQL Server数据库的存储结构数据库的创建数据库的修改数据库的删除数据库的分离和附加数据库的扩大和
38、收缩数据库的存储结构、创建、修改、分离和附加75问题提出数据库的管理指的是什么?是有关建立、存储、修改和存取数据库中信息的技术,是指为保证数据库系统的正常运行和服务质量,有关人员须进行的技术管理工作。数据库管理的主要内容是什么?数据库的建立数据库的调整数据库的重组数据库的重构数据库的安全控制数据的完整性控制和对用户提供技术支持如何实现数据库的管理?762.1 SQL Server数据库的存储结构2.1.1 逻辑存储结构2.1.2 物理存储结构772.1 SQL Server数据库的存储结构782.1.1 逻辑存储结构逻辑存储结构 指的是数据库是由哪些性质的信息所组成。它主要应用于面向用户的数据
39、组织和管理,如数据库的表、视图、存储等。由于这些对象是存储在数据库中,因此也叫数据库对象。数据库对象792.1.1 逻辑存储结构数据库类型SQL Server 2008数据库分为系统数据库和用户数据库。系统数据库是由系统创建和维护的数据库。在SQL Server 2008中有:master 、model 、msdb 和tempdb 共4个系统数据库80数据库名称数据库描述mastermaster 数据库记录 SQL Server 系统的所有系统级信息。主要包括实例范围的元数据、端点、链接服务器和系统配置设置以及记录了所有其他数据库的存在、数据库文件的位置以及 SQL Server 的初始化信息
40、。model提供了SQL Server 实例上创建的所有数据库的模板。msdb主要由 SQL Server 代理用于计划警报和作业。tempdbtempdb 系统数据库是一个全局资源,可供连接到 SQL Server 实例的所有用户使用,并可用于保存显式创建的临时用户对象、SQL Server 数据库引擎创建的内部对象,和一些版本数据等。2.1.1 逻辑存储结构数据库类型用户数据库用户数据库分为系统提供的示例数据库和用户创建的数据库。示例数据库(默认的示例数据库)AdventureWorks:自行车制造公司的业务数据。AdventureWorksDW:是Analysis Services(分析
41、服务)的示例数据库用户创建的数据库812.1.2 物理存储结构数据库的物理存储结构指的是数据库文件在磁盘中是如何存储的。数据库文件存放数据库数据和数据库对象的文件。3种类型:主数据文件(.mdf):一个数据库只能有一个主数据文件次数据文件 (.ndf):一个数据库可以有零个或多个次数据文件事务日志文件(.ldf):一个数据库可以有一个或多个事务日志文件822.1.2 物理存储结构数据库文件的存储形式83数据库页的结构 2.1.2 物理存储结构数据库文件组出于分配和管理目的,可以将数据库文件分成不同的文件组(File Group,文件的逻辑集合)。主文件组(Primary FileGroup):
42、系统文件分配到此组,每一个数据库中的主文件和未被放入其他组的次要文件在此组中。用户定义文件组(Secondary FileGroup)默认文件组:未指定对象所属文件组的对象都被放入此组注意:事务日志文件不属于任何文件组。842.2 数据库的创建2.2.1 使用对象资源管理器创建数据库2.2.2 使用T-SQL语言创建数据库852.2 数据库的创建在建立用户逻辑组件之前(如基本表)必须先建立数据库。Sql server 2008中可以支持最多32767个数据库命名规则:名称长度不能超过128个字符,临时表名不能超过116个字符名称第1个字符必须是英文字母、中文、下划线、和#(不建议用)除第1个字
43、符外的其他字符可以包含数字和$符号名称中间不允许有空格和其他特殊字符862.2.1 使用对象资源管理器创建数据库图形化的方式创建数据库87演示操作主文件必须至少3MB2.2.1 使用对象资源管理器创建数据库默认情况下,SQL Server 2008数据库文件保存在:“.Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATA”目录下。882.2.2 使用T-SQL语言创建数据库T-SQL语言的语法约定及使用说明89约定使用说明大写 T-SQL 关键字斜体用户提供的 T-SQL 语法的参数粗体数据库名、表名、列名、索引名、存储过程
44、、实用工具、数据类型名以及必须按所显示的原样键入的文本下划线指示当语句中省略了包含带下划线的值的子句时应使用的默认值|(竖线)分隔括号或大括号中的语法项。只能使用其中一项 (方括号)可选语法项。不要键入方括号 (大括号)必选语法项。不要键入大括号,.n指示前面的项可以重复n次。各项之间以逗号分隔.n指示前面的项可以重复n次。每一项由空格分隔;可选的 T-SQL 语句终止符。不要键入方括号 :=语法块的名称。此约定用于对可在语句中的多个位置使用的过长语法段或语法单元进行分组和标记。可使用的语法块的每个位置由括在尖括号内的标签指示:2.2.2 使用T-SQL语言创建数据库语句格式:CREATE D
45、ATABASE database_name ON -指定数据库文件和文件组属性 ,.n , ,.n LOG ON ,.n -指定日志文件属性 COLLATE collation_name -使用默认排序规则 FOR LOAD | FOR ATTACH -附加已经存在的数据库902.2.2 使用T-SQL语言创建数据库在SSMS主窗口中单击“新建查询”工具按钮,打开SQL Server 2008 的查询设计器进行操作。912.2.2 使用T-SQL语言创建数据库例2.1:创建一个名称为Exercise_db1的简单数据库,文件的所有属性均取默认值。 CREATE DATABASE Exercis
46、e_db1例2.2:创建一个指定主数据文件和事务日志文件的简单数据库,数据库名称为Exercise_db2。要求如下:(1)数据库的主数据文件逻辑文件名为Exercise_Data,物理文件名为Exercise.MDF,初始大小为5MB,最大文件大小无限制,自动增长量为10%。(2)事务日志文件逻辑文件名为Exercise_LOG,物理文件名为Exercise.LDF,初始大小为1MB,最大文件大小为10MB,自动增长量为2MB。(3)文件存储的物理位置均为F:mydb(设mydb文件夹已经建立)。922.2.2 使用T-SQL语言创建数据库创建例2.2要求的数据库语句为:CREATE DAT
47、ABASE Exercise_db2ONPRIMARY( NAME=Exercise_Data,FILENAME= F:mydbExercise.MDF,SIZE=5,MAXSIZE=Unlimited,FILEGROWTH=10% )LOG ON( NAME=Exercise_LOG,FILENAME= F:mydbExercise.LDF,SIZE=1,MAXSIZE=10,FILEGROWTH=2 )93数据库文件属性事务日志文件属性2.2.2 使用T-SQL语言创建数据库94 分析2.3 数据库的修改2.3.1 使用对象资源管理器修改数据库2.3.2 使用T-SQL语言修改数据库952
48、.3.1 使用对象资源管理器修改数据库96演示操作2.3.2 使用T-SQL语言修改数据库ALTER DATABASE database ADD FILE ,.n TO FILEGROUP filegroup_name | ADD LOG FILE ,.n | REMOVE FILE logical_file_name | ADD FILEGROUP filegroup_name | REMOVE FILEGROUP filegroup_name | MODIFY FILE | MODIFY NAME = new_dbname | MODIFY FILEGROUP filegroup_name
49、 filegroup_property | NAME = new_filegroup_name | SET ,.n WITH | COLLATE 97filespec:file子句REMOVE:从系统中删除文件描述和物理文件2.3.2 使用T-SQL语言修改数据库例2.5 向数据库中添加文件。要求如下:(1)在Exercise_db2数据库中添加一个新数据文件,数据文件的逻辑文件名、物理位置及文件名分别为Exe1dat1和D:mydbExe1_dat1.NDF。(2)数据文件初始大小为5MB,最大文件大小为30MB,自动增长量为2MB。ALTER DATABASE Exercise_db2 A
50、DD FILE ( NAME=Exe1dat1, FILENAME=f:mydbExe1_dat1.NDF, SIZE=5MB, MAXSIZE=30MB, FILEGROWTH=2MB)982.3.2 使用T-SQL语言修改数据库例2.9 修改数据库文件名称。要求是:将数据库Exercise_db2名称修改为Exe_db2。ALTER DATABASE Exercise_db2 MODIFY NAME=Exe_db2也可将数据库更名为汉字,如ALTER DATABASE Exe_db2MODIFY NAME =学生信息管理系统992.3.2 使用T-SQL语言修改数据库修改数据库补例:将“E
51、xercise_db2”数据库主数据文件最大大小改为20MB。 ALTER DATABASE Exercise_db2MODIFY FILE( NAME = Exercise_Data, MAXSIZE=20MB)1002.4 数据库的删除2.4.1 使用图形界面方式删除数据库2.4.2 使用T-SQL语言删除数据库1012.4.1使用图形界面方式删除数据库102演示操作勾选要删除的数据库2.4.2 使用T-SQL语言删除数据库命令语法格式:DROP DATABASE database_name ,.n 例2.10 删除Test_db1单个数据库。 DROP DATABASE Test_db1
52、例2.11同时删除Test_db2和Test_db3多个数据库。 DROP DATABASE Test_db2,Test_db31032.5 数据库的分离和附加2.5.1 数据库的分离2.5.2 数据库的附加1042.5.1 数据库的分离数据库的分离就是将用户的数据库从SQL Server中删除,即从SQL Server服务器中分离出来,但是保持组成该数据的数据文件和事务日志文件中的数据完好无损,即数据库文件仍保留在磁盘上。使用对象资源管理器分离数据库105演示操作2.5.1 数据库的分离使用系统存储过程sp_detach_db分离数据库语法格式:sp_detach_db dbname= da
53、tabase_name 例2.12将student_db 数据库从SQL Server 2008服务器中分离。Use student_db-打开数据库student_dbGo sp_detach_db student_dbGo106GO 不是 Transact-SQL 语句;它是可由 sqlcmd 和 osql 实用工具以及 SQL Server Management Studio 代码编辑器识别的命令。表示当前批语句由上一 GO 命令后输入的所有语句组成2.5.2 数据库的附加附加数据库是分离数据库的逆操作,通过附加数据库,可以将没有加入SQL Server服务器的数据库文件添加到服务器中。
54、使用对象资源管理器附加数据库注意:(1)在附加数据库时,当确定主数据文件的名称和物理位置后,与它相配套的事务日志文件(.LDF)也一并加入。(2)将 SQL Server 2000 或SQL Server 2005 数据库附加到 SQL Server 2008 后,该数据库立即变为可用,然后自动升级。107演示操作2.6 数据库的扩大和收缩2.6.1 数据库的扩大2.6.2 数据库的收缩1082.6 数据库的扩大和收缩由于SQL Server 2008对数据库空间分配采取“先分配、后使用”的机制,所以在SQL Server 2008系统中,如果数据库的数据量不断膨胀,可以根据需要扩大数据库的大
55、小。同理,对于数据库的设计大小过大,或者删除了数据库中的大量数据,这时数据库会白白耗费大量的磁盘资源。则可使用SQL Server 2008提供的收缩数据库功能,对数据库进行收缩,还可以对数据库中的每个文件进行收缩,直至收缩到没有剩余的可用空间为止。1092.6.1 数据库的扩大扩大数据库空间有3种方法(1)设置数据库为自动增长方式,可以在创建数据库时设置(2)直接修改数据库的数据文件或日志文件的大小(3)在数据库中添加新的次要数据文件或日志文件110演示操作2.6.2 数据库的收缩可以对数据库进行设置自动收缩数据库111演示操作2.6.2 数据库的收缩手动收缩数据库1122.6.2 数据库的
56、收缩手动收缩数据文件113本章小结(1)数据库的存储结构逻辑存储结构,物理存储结构(2)数据库的创建、修改、删除的几种方法(3)数据库的分离和附加分离数据库就是将某个数据库从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。(4)数据库的扩大和收缩114 本章思考(1)在SQL Server 2008中的数据库中包
57、含哪些对象?其中什么对象是必不可少的?其作用又是什么?(2)SQL Server提供的系统数据库master它的作用是什么?用户可以删除和修改吗?为什么?(3)什么文件是数据库文件?组成数据库的文件有哪些类型?如何识别?它们的作用是什么?(4)分离数据库和附加数据库的区别是什么?分离数据库是不是将其从磁盘上真正删除了?为什么?(5)数据库的收缩是不是指数据库的压缩?为什么?收缩数据库能起什么作用?115本章结束116数据库技术与应用数据库技术与应用教材编写组第3章 数据表的管理与维护数据表的创建和管理表数据的管理数据库完整性管理管理数据表的方法、数据库完整性管理118问题提出数据表与数据库是什
58、么关系?数据表(或称表)是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质内容。根据信息的分类情况,一个数据库中可能包含若干个数据表。数据表与表数据的区别?为什么要进行数据库完整性设置?1193.1 数据表的创建和管理3.1.1 使用对象资源管理器创建数据表3.1.2 使用T-SQL语言创建数据表3.1.3 使用对象资源管理器对数据表进行管理3.1.4 使用T-SQL语言对数据表进行管理1203.1 数据表的创建和管理一个数据库可以拥有许多表,每个表都代表一个特定的实体。例如,学生数据库可能包含学生个人信息、院系信息、课程信息、成绩信息等多个表。每个实体使用一个单独的表可以消除
59、重复数据,使数据存储更有效并减少数据输入项错误。SQL Server 2008中数据库的主要对象是数据表,创建好数据库后,就可以向数据库中添加数据表。数据表由行和列组成,行有时也称为记录,列有时也称为字段或域。1213.1.1使用对象资源管理器创建数据表122在SQL Serve中,一个汉字占据两个字符的位置,因此计算一个字段长度时,一个汉字的长度是Byte。3.1.2 使用T-SQL语言创建数据表语法格式:CREATE TABLEdatabase_name.owner.|owner. table_name( | column_name AS computed_column_expressio
60、n| =CONSTRAINT constraint_name | PRIMARY KEY | UNIQUE )ON filegroup | DEFAULTTEXTIMAGE_ON filegroup | DEFAULT =column_name data_typeCOLLATEDEFAULT constant_expression123表名最多可包含 128 个字符表约束,可选的关键字PRIMARY KEY、NOT NULL、UNIQUE、FOREIGN KEY 或 CHECK 定义计算列的值的表达式数据库拥有者3.1.2 使用T-SQL语言创建数据表例3.1:在数据库Student中创建St
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业文秘聘用合同标准文本
- 便民小屋项目合同样本
- 出售水泥大坝合同样本
- 产品及质保合同样本
- 健身投资合同样本
- 佣金合同样本版
- 出租插件合同样本
- 买卖田合同样本
- 个人独资代理记账合同标准文本
- 初中数学教研组教案编写计划
- SNT 2360.9-2009进出口食品添加剂检验规程第9部分:着色剂
- 资产分配方案
- 【中考物理】2023届北京市第二轮复习-科普阅读题(提升题)含解析
- dr钻戒的营销策划书
- 审计基础与实务职业能力训练蔡晓方习题答案
- 新人教版五年级小学数学全册奥数(含答案)
- 口腔正畸保持器的制作
- 合理使用电子产品(课件)-小学生主题班会通用版
- 《尚书》介绍课件
- 公安群众工作-概述
- 乳腺纤维腺瘤演示课件
评论
0/150
提交评论