第二章数据库基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
integer longstring varchar(20) char(2) char(6) longstring
10191 Labrie 10192 Labrie 10202 Martin
Angela Eva Jose
FR FR SP
x19891 \HR\Kar x19433 \HR\Kar x21467 \HR\Am
Types of Databases
System Databases
Master 主数据库) (主数据库) Model Tempdb Msdb Distribution 模板数据库) 临时数据库) 调度数据库) 分发数据库) (模板数据库) (临时数据库)(调度数据库)(分发数据库)
pubs
Northwind
常见的数据库对象
表Table:它也是由行Row和列Column组成的 索引Index:索引是根据指定的数据库表列建立 起来的顺序. 视图View 缺省值Default 规则Rule 约束:check 触发器Trigger 存储过程Stored Procedure 用户自定义函数
常见的数据库对象
Clustered Index Anderson Stored PK Anderson FK Procedure Barr UpdatePhone Trigger ... EmpNum LastName FirstName CtryCode Extension LastMod
范式
第一范式1NF:一个列中只能包含一个值(列是不可分 割的),而且不能有相同的列 在任何一个关系数据库中第一范式1NF是对关系模式 的基本要求,不满足第一范式1NF的数据库就不是关 系数据库.所谓第一范式1NF是指数据库表的每一列 都是不可分割的,基本数据项同一列中不能有多个值, 即实体中的某个属性不能有多个值,或者不能有重复 的属性.如果出现重复的属性就可能需要定义一个新 的实体.新的实体由重复的属性构成,新实体与原实 体之间为一对多关系,在第一范式1NF中表的每一行 只包含一个实例的信息,例如对于员工信息表不能将 员工信息都放在一列中显示,也不能将其中的两列或 多列在一列中显示,员工信息表的每一行只表示一个 员工的信息,一个员工的信息在表中只出现一次.
3 在磁盘中写入日志文件
Байду номын сангаас
Buffer Cache
Disk
2 写入服务器缓存的数据页中
准备修改
Disk 4 写入数据库文件
文件组File Group 文件组
文件组是将多个数据库文件集合起来形成的一个整体. 每个文件组有一个组名,与数据库文件一样,文件组 也分为默认文件组Primary File Group和自定义文件组 Secondary File group.一个文件只能存在于一个文件 组中,一个文件组也只能被一个数据库使用.默认文件 组中包含了所有的系统表,当建立数据库时,默认文 件组包括主数据库文件和未指定组的其它文件.在自 定义文件组中,可以指定一个缺省文件组那么在创建 数据库对象时,如果没有指定将其放在哪一个文件组 中,就会将它放在缺省文件组中.如果没有指定缺省 文件组,则主文件组为缺省文件组. ! 事务日志文件不属于任何文件组
SQL Server有个特点,它在执行数据更改时会设置一个开始点和 一个结束点.如果尚未到达结束点,就因某种原因使操作中断. 则在SQL Server 重新启动时会自动恢复已修改的数据,使其返 回未被修改的状态.由此可见当数据库破坏时,可以用事务日 志恢复数据库内容.
事务日志工作过程
1 应用程序发出修改请求
File Map Salesdata.mdf
多个文件保存 在多个文件组中
Salesdata1.ndf File Map Salesdata.mdf File Map
使用文件组和RAID优化数据库 优化数据库 使用文件组和
FileA FileB
磁盘控制器
FileC FileD
Filegroup
FileE
Extent (8 contiguous Data Page (8 KB) 8-KB Maximum row size = 8060 pages) bytes
SQL Database的组成 的组成
在SQL Server 中数据库是由数据库文件和事务日志 文件组成的,一个数据库至少应包含一个数据库文件 和一个事物日志文件. 数据库文件Database File 数据库文件是存放数据库数据和数据库对象的文件. 一个数据库可以有一个或多个数据库文件;一个数据 库文件只属于一个数据库.有一个文件被定义为主数 据库文件,扩展名为mdf,它用来存储数据库的启动 信息和部分或全部数据;一个数据库只能有一个主数 据库文件.其它数据库文件被称为辅助库文件,扩展 名为ndf.用来存储主文件没存储的其它数据.
单击工具栏中的图标,或在服务器的Databases文件夹或其下属 数据库图标上单击右键选择New Database…选项
用Enterprise Manager 创建数据库
用Enterprise Manager 创建数据库
创建数据库事务日志文件
Query Analyzer创建 创建Database 创建
E:\
Northwnd.ldf
Primary Filegroup User-defined Filegroup 存放系统表和系统对象) 存放经常查询和经常修改的表) (存放系统表和系统对象) 存放经常查询和经常修改的表) (
Transaction Log
使用文件组优化性能
一个文件保存 在一个文件组中
User1
User Databases
SQL Server 数据存储
注意:存储的最小单元是Page 每个Page的尺寸是8K 连续的8个Page组成一个Extent(扩展页) 一行记录不能跨越Page存储
Database Log (file)
.ldf
Data (file)
.mdf or .ndf
Tables, Indexes
第二章
数据库基础
----SQL ----SQL Server 2000
数据库基础概念
数据Data:所谓数据就是描述事物的符号.在我们的 日常生活中数据无所不在数字,文字,图表,图象, 声音等都是数据,人们通过数据来认识世界交流信息 数据库DB 即Database:数据库顾名思义就是数据存 放的地方,在计算机中数据库是数据和数据库对象的 集合.所谓数据库对象是指表Table,视图View,存 储过程Stored Procedure,触发器Trigger等 数据库管理系统DBMS:数据库管理系统是用于管理 数据的计算机软件,数据库管理系统使用户能方便地 定义和操纵数据,维护数据的安全性和完整性.以及 进行多用户下的并发控制和恢复数据库
关系型数据库概念
一对一的联系如一个人只有一种性别一个人性 别为一对一的联系 – 一对多的联系如相同性别的人有许多个性别人 为一对多的联系 – 多对一的联系如很多人有同一个性别人性别为 多对一的联系 –
通过联系就可以用一个实体的信息来查找另 一个实体的信息 关系模型把所有的数据都组织到表中,表是 由行和列组成的行表示数据的记录列
范式
第二范式2NF:每一行都是唯一的 第二范式2NF 是在第一范式1NF 的基础上建立起来的 即满足第二范式2NF必须先满足第一范式1NF, 第二 范式2NF要求数据库表中的每个实例或行必须可以被 惟一地区分,通常需要为表加上一个列,以存储各个 实例的惟一标识.如员工信息表中加上了员工编号列, 因为每个员工的员工编号是惟一的,因此每个员工可 以被惟一区分.这个惟一属性列被称为主关键字或主 键主码.第二范式2NF要求实体的属性完全依赖于主 关键字,所谓完全依赖是指不能存在仅依赖主关键字 一部分的属性,如果存在,那么这个属性和主关键字 的这一部分应该分离出来,形成一个新的实体,新实 体与原实体之间是一对多的关系.为实现区分通常需 要为表加上一个列,以存储各个实例的惟一标识.简 而言之第二范式就是非主属性非部分依赖于主关键字.
磁盘控制器
FileF FileG FileH
磁盘控制器
磁盘控制器
处理事务日志 处理事务日志
操作系统
RAID将多个物理磁盘做成一个分区有容错功能(通过校验位实现) 将多个物理磁盘做成一个分区有容错功能(通过校验位实现) 将多个物理磁盘做成一个分区有容错功能 一个数据文件存放在不同的物理磁盘上
用Enterprise Manager 创建数据库
范式
第三范式3NF:非关键字不能依赖于其他非关 键字 满足第三范式3NF 必须先满足第二范式2NF. 简而言之第三范式3NF要求一个数据库表中不 包含已在其它表中已包含的非主关键字信息. 例如存在一个部门信息表其中,每个部门有 部门编号,部门名称,部门简介等信息.那 么在员工信息表中列出部门编号后,就不能 再将部门名称,部门简介等与部门有关的信 息再加入员工信息表中.如果不存在部门信 息表则根据第三范式3NF也应该构建它,否则 就会有大量的数据冗余.简而言之第三范式 就是属性不依赖于其它非主属性
数据库文件可以不断扩充而不受操作系统文件大小的限制 可以将数据库文件存储在不同的硬盘中,这样可以同时对几个硬盘做数 据存取,提高了数据处理的效率.对于服务器型的计算机尤为有用.
SQL Database的组成 的组成
事务日志文件Transaction Log File
事务日志文件是用来记录数据库更新情况的文件,扩 展名为ldf .例如使用INSERT UPDATE DELETE等, 对数据库进行更改的操作都会记录在此文件中;而如 SELECT等对数据库内容不会有影响的操作,则不会 记录在案.一个数据库可以有一个或多个事务日志文 件. SQL Server 中采用Write-Ahead 提前写方式的事务: 即对数据库的修改,先写入事务日志中,再写入数据 库.
用户定义文件组
Northwind Database
sys… sys… sysusers sysobjects
…
Orders Customers Products OrdHistYear2 OrdHistYear1
C:\
Northwnd.mdf
D:\
OrdHist1.ndf OrdHist2.ndf
Check
EmployeePhoneView
SELECT lastname, firstname, extension x##### FROM employee
范式
范式:构造数据库必须遵循一定的规则.在关系数据 库中这种规则就是范式.范式是符合某一种级别的关 系模式的集合.关系数据库中的关系必须满足一定的 要求,即满足不同的范式. 目前关系数据库有六种:第一范式1NF,第二范式 2NF,第三范式3NF,第四范式4NF,第五范式5NF, 和第六范式6NF 满足最低要求的范式是第一范式1NF 在第一范式的基础上进一步满足更多要求的称为第二 范式2NF 其余范式以次类推一般说来数据库只需满足第三范式 3NF就行了下面我们举例介绍 第一范式1NF 第二范式2NF 和第三范式3NF
– 定义数据库的名称 – 数据库的尺寸 – 定义数据库存储数据的文件空间位置 CREATE DATABASE命令语法如下 CREATE DATABASE database_name [ ON [PRIMARY] [ <filespec> [,...n] ] [, <filegroupspec> [,...n] ] ] [ LOG ON { <filespec> [,...n]} ] [ COLLATE collation_name ] [ FOR LOAD | FOR ATTACH ] <filespec> ::= ( [ NAME = logical_file_name, ] FILENAME = 'os_file_name' [, SIZE = size] [, MAXSIZE = { max_size | UNLIMITED } ] [, FILEGROWTH = growth_increment] ) [,...n] <filegroupspec> ::= FILEGROUP filegroup_name <filespec> [,...n]
关系型数据库概念
关系数据库:基本的数据模型有三种:层次模型系统, 网络模型系统和关系模型系统.60年代末期提出的关 系模型具有数据结构.简单灵活易学易懂且具有雄厚 的数学基础等特点,从70年代开始流行发展到现在已 成为数据库的标准,目前广泛使用的数据库软件都是 基于关系模型的关系数据库管理系统. 关系模型Relational Model:关系模型把世界看作是由 实体Entity和联系Relationship构成的,所谓实体就是 指现实世界中具有区分与其它事物的特征或属性,并 与其它实体有联系的对象.在关系模型中实体通常是 以表的形式来表现的.表的每一行描述实体的一个实 例,表的每一列描述实体的一个特征或属性 所谓联系就是指实体之间的关系即实体之间的对应关 系联系可以分为三种
10191 Labrie 10192 Labrie 10202 Martin
Angela Eva Jose
FR FR SP
x19891 \HR\Kar x19433 \HR\Kar x21467 \HR\Am
Types of Databases
System Databases
Master 主数据库) (主数据库) Model Tempdb Msdb Distribution 模板数据库) 临时数据库) 调度数据库) 分发数据库) (模板数据库) (临时数据库)(调度数据库)(分发数据库)
pubs
Northwind
常见的数据库对象
表Table:它也是由行Row和列Column组成的 索引Index:索引是根据指定的数据库表列建立 起来的顺序. 视图View 缺省值Default 规则Rule 约束:check 触发器Trigger 存储过程Stored Procedure 用户自定义函数
常见的数据库对象
Clustered Index Anderson Stored PK Anderson FK Procedure Barr UpdatePhone Trigger ... EmpNum LastName FirstName CtryCode Extension LastMod
范式
第一范式1NF:一个列中只能包含一个值(列是不可分 割的),而且不能有相同的列 在任何一个关系数据库中第一范式1NF是对关系模式 的基本要求,不满足第一范式1NF的数据库就不是关 系数据库.所谓第一范式1NF是指数据库表的每一列 都是不可分割的,基本数据项同一列中不能有多个值, 即实体中的某个属性不能有多个值,或者不能有重复 的属性.如果出现重复的属性就可能需要定义一个新 的实体.新的实体由重复的属性构成,新实体与原实 体之间为一对多关系,在第一范式1NF中表的每一行 只包含一个实例的信息,例如对于员工信息表不能将 员工信息都放在一列中显示,也不能将其中的两列或 多列在一列中显示,员工信息表的每一行只表示一个 员工的信息,一个员工的信息在表中只出现一次.
3 在磁盘中写入日志文件
Байду номын сангаас
Buffer Cache
Disk
2 写入服务器缓存的数据页中
准备修改
Disk 4 写入数据库文件
文件组File Group 文件组
文件组是将多个数据库文件集合起来形成的一个整体. 每个文件组有一个组名,与数据库文件一样,文件组 也分为默认文件组Primary File Group和自定义文件组 Secondary File group.一个文件只能存在于一个文件 组中,一个文件组也只能被一个数据库使用.默认文件 组中包含了所有的系统表,当建立数据库时,默认文 件组包括主数据库文件和未指定组的其它文件.在自 定义文件组中,可以指定一个缺省文件组那么在创建 数据库对象时,如果没有指定将其放在哪一个文件组 中,就会将它放在缺省文件组中.如果没有指定缺省 文件组,则主文件组为缺省文件组. ! 事务日志文件不属于任何文件组
SQL Server有个特点,它在执行数据更改时会设置一个开始点和 一个结束点.如果尚未到达结束点,就因某种原因使操作中断. 则在SQL Server 重新启动时会自动恢复已修改的数据,使其返 回未被修改的状态.由此可见当数据库破坏时,可以用事务日 志恢复数据库内容.
事务日志工作过程
1 应用程序发出修改请求
File Map Salesdata.mdf
多个文件保存 在多个文件组中
Salesdata1.ndf File Map Salesdata.mdf File Map
使用文件组和RAID优化数据库 优化数据库 使用文件组和
FileA FileB
磁盘控制器
FileC FileD
Filegroup
FileE
Extent (8 contiguous Data Page (8 KB) 8-KB Maximum row size = 8060 pages) bytes
SQL Database的组成 的组成
在SQL Server 中数据库是由数据库文件和事务日志 文件组成的,一个数据库至少应包含一个数据库文件 和一个事物日志文件. 数据库文件Database File 数据库文件是存放数据库数据和数据库对象的文件. 一个数据库可以有一个或多个数据库文件;一个数据 库文件只属于一个数据库.有一个文件被定义为主数 据库文件,扩展名为mdf,它用来存储数据库的启动 信息和部分或全部数据;一个数据库只能有一个主数 据库文件.其它数据库文件被称为辅助库文件,扩展 名为ndf.用来存储主文件没存储的其它数据.
单击工具栏中的图标,或在服务器的Databases文件夹或其下属 数据库图标上单击右键选择New Database…选项
用Enterprise Manager 创建数据库
用Enterprise Manager 创建数据库
创建数据库事务日志文件
Query Analyzer创建 创建Database 创建
E:\
Northwnd.ldf
Primary Filegroup User-defined Filegroup 存放系统表和系统对象) 存放经常查询和经常修改的表) (存放系统表和系统对象) 存放经常查询和经常修改的表) (
Transaction Log
使用文件组优化性能
一个文件保存 在一个文件组中
User1
User Databases
SQL Server 数据存储
注意:存储的最小单元是Page 每个Page的尺寸是8K 连续的8个Page组成一个Extent(扩展页) 一行记录不能跨越Page存储
Database Log (file)
.ldf
Data (file)
.mdf or .ndf
Tables, Indexes
第二章
数据库基础
----SQL ----SQL Server 2000
数据库基础概念
数据Data:所谓数据就是描述事物的符号.在我们的 日常生活中数据无所不在数字,文字,图表,图象, 声音等都是数据,人们通过数据来认识世界交流信息 数据库DB 即Database:数据库顾名思义就是数据存 放的地方,在计算机中数据库是数据和数据库对象的 集合.所谓数据库对象是指表Table,视图View,存 储过程Stored Procedure,触发器Trigger等 数据库管理系统DBMS:数据库管理系统是用于管理 数据的计算机软件,数据库管理系统使用户能方便地 定义和操纵数据,维护数据的安全性和完整性.以及 进行多用户下的并发控制和恢复数据库
关系型数据库概念
一对一的联系如一个人只有一种性别一个人性 别为一对一的联系 – 一对多的联系如相同性别的人有许多个性别人 为一对多的联系 – 多对一的联系如很多人有同一个性别人性别为 多对一的联系 –
通过联系就可以用一个实体的信息来查找另 一个实体的信息 关系模型把所有的数据都组织到表中,表是 由行和列组成的行表示数据的记录列
范式
第二范式2NF:每一行都是唯一的 第二范式2NF 是在第一范式1NF 的基础上建立起来的 即满足第二范式2NF必须先满足第一范式1NF, 第二 范式2NF要求数据库表中的每个实例或行必须可以被 惟一地区分,通常需要为表加上一个列,以存储各个 实例的惟一标识.如员工信息表中加上了员工编号列, 因为每个员工的员工编号是惟一的,因此每个员工可 以被惟一区分.这个惟一属性列被称为主关键字或主 键主码.第二范式2NF要求实体的属性完全依赖于主 关键字,所谓完全依赖是指不能存在仅依赖主关键字 一部分的属性,如果存在,那么这个属性和主关键字 的这一部分应该分离出来,形成一个新的实体,新实 体与原实体之间是一对多的关系.为实现区分通常需 要为表加上一个列,以存储各个实例的惟一标识.简 而言之第二范式就是非主属性非部分依赖于主关键字.
磁盘控制器
FileF FileG FileH
磁盘控制器
磁盘控制器
处理事务日志 处理事务日志
操作系统
RAID将多个物理磁盘做成一个分区有容错功能(通过校验位实现) 将多个物理磁盘做成一个分区有容错功能(通过校验位实现) 将多个物理磁盘做成一个分区有容错功能 一个数据文件存放在不同的物理磁盘上
用Enterprise Manager 创建数据库
范式
第三范式3NF:非关键字不能依赖于其他非关 键字 满足第三范式3NF 必须先满足第二范式2NF. 简而言之第三范式3NF要求一个数据库表中不 包含已在其它表中已包含的非主关键字信息. 例如存在一个部门信息表其中,每个部门有 部门编号,部门名称,部门简介等信息.那 么在员工信息表中列出部门编号后,就不能 再将部门名称,部门简介等与部门有关的信 息再加入员工信息表中.如果不存在部门信 息表则根据第三范式3NF也应该构建它,否则 就会有大量的数据冗余.简而言之第三范式 就是属性不依赖于其它非主属性
数据库文件可以不断扩充而不受操作系统文件大小的限制 可以将数据库文件存储在不同的硬盘中,这样可以同时对几个硬盘做数 据存取,提高了数据处理的效率.对于服务器型的计算机尤为有用.
SQL Database的组成 的组成
事务日志文件Transaction Log File
事务日志文件是用来记录数据库更新情况的文件,扩 展名为ldf .例如使用INSERT UPDATE DELETE等, 对数据库进行更改的操作都会记录在此文件中;而如 SELECT等对数据库内容不会有影响的操作,则不会 记录在案.一个数据库可以有一个或多个事务日志文 件. SQL Server 中采用Write-Ahead 提前写方式的事务: 即对数据库的修改,先写入事务日志中,再写入数据 库.
用户定义文件组
Northwind Database
sys… sys… sysusers sysobjects
…
Orders Customers Products OrdHistYear2 OrdHistYear1
C:\
Northwnd.mdf
D:\
OrdHist1.ndf OrdHist2.ndf
Check
EmployeePhoneView
SELECT lastname, firstname, extension x##### FROM employee
范式
范式:构造数据库必须遵循一定的规则.在关系数据 库中这种规则就是范式.范式是符合某一种级别的关 系模式的集合.关系数据库中的关系必须满足一定的 要求,即满足不同的范式. 目前关系数据库有六种:第一范式1NF,第二范式 2NF,第三范式3NF,第四范式4NF,第五范式5NF, 和第六范式6NF 满足最低要求的范式是第一范式1NF 在第一范式的基础上进一步满足更多要求的称为第二 范式2NF 其余范式以次类推一般说来数据库只需满足第三范式 3NF就行了下面我们举例介绍 第一范式1NF 第二范式2NF 和第三范式3NF
– 定义数据库的名称 – 数据库的尺寸 – 定义数据库存储数据的文件空间位置 CREATE DATABASE命令语法如下 CREATE DATABASE database_name [ ON [PRIMARY] [ <filespec> [,...n] ] [, <filegroupspec> [,...n] ] ] [ LOG ON { <filespec> [,...n]} ] [ COLLATE collation_name ] [ FOR LOAD | FOR ATTACH ] <filespec> ::= ( [ NAME = logical_file_name, ] FILENAME = 'os_file_name' [, SIZE = size] [, MAXSIZE = { max_size | UNLIMITED } ] [, FILEGROWTH = growth_increment] ) [,...n] <filegroupspec> ::= FILEGROUP filegroup_name <filespec> [,...n]
关系型数据库概念
关系数据库:基本的数据模型有三种:层次模型系统, 网络模型系统和关系模型系统.60年代末期提出的关 系模型具有数据结构.简单灵活易学易懂且具有雄厚 的数学基础等特点,从70年代开始流行发展到现在已 成为数据库的标准,目前广泛使用的数据库软件都是 基于关系模型的关系数据库管理系统. 关系模型Relational Model:关系模型把世界看作是由 实体Entity和联系Relationship构成的,所谓实体就是 指现实世界中具有区分与其它事物的特征或属性,并 与其它实体有联系的对象.在关系模型中实体通常是 以表的形式来表现的.表的每一行描述实体的一个实 例,表的每一列描述实体的一个特征或属性 所谓联系就是指实体之间的关系即实体之间的对应关 系联系可以分为三种