第二章数据库基础
User1
User Databases
SQL Server 数据存储
注意:存储的最小单元是Page 每个Page的尺寸是8K 连续的8个Page组成一个Extent(扩展页) 一行记录不能跨越Page存储
Database Log (file)
.ldf
Data (file)
.mdf or .ndf
Tables, Indexes
Check
EmployeePhoneView
SELECT lastname, firstname, extension x##### FROM employee
范式
范式:构造数据库必须遵循一定的规则.在关系数据 库中这种规则就是范式.范式是符合某一种级别的关 系模式的集合.关系数据库中的关系必须满足一定的 要求,即满足不同的范式. 目前关系数据库有六种:第一范式1NF,第二范式 2NF,第三范式3NF,第四范式4NF,第五范式5NF, 和第六范式6NF 满足最低要求的范式是第一范式1NF 在第一范式的基础上进一步满足更多要求的称为第二 范式2NF 其余范式以次类推一般说来数据库只需满足第三范式 3NF就行了下面我们举例介绍 第一范式1NF 第二范式2NF 和第三范式3NF
常见的数据库对象
表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
File Map Salesdata.mdf
多个文件保存 在多个文件组中
Salesdata1.ndf File Map Salesdata.mdf File Map
使用文件组和RAID优化数据库 优化数据库 使用文件组和
FileA FileB
磁盘控制器
FileC FileD
Filegroup
FileE
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
关系型数据库概念
关系数据库:基本的数据模型有三种:层次模型系统, 网络模型系统和关系模型系统.60年代末期提出的关 系模型具有数据结构.简单灵活易学易懂且具有雄厚 的数学基础等特点,从70年代开始流行发展到现在已 成为数据库的标准,目前广泛使用的数据库软件都是 基于关系模型的关系数据库管理系统. 关系模型Relational Model:关系模型把世界看作是由 实体Entity和联系Relationship构成的,所谓实体就是 指现实世界中具有区分与其它事物的特征或属性,并 与其它实体有联系的对象.在关系模型中实体通常是 以表的形式来表现的.表的每一行描述实体的一个实 例,表的每一列描述实体的一个特征或属性 所谓联系就是指实体之间的关系即实体之间的对应关 系联系可以分为三种
第二章
数据库基础
----SQL ----SQL Server 2000
数据库基础概念
数据Data:所谓数据就是描述事物的符号.在我们的 日常生活中数据无所不在数字,文字,图表,图象, 声音等都是数据,人们通过数据来认识世界交流信息 数据库DB 即Database:数据库顾名思义就是数据存 放的地方,在计算机中数据库是数据和数据库对象的 集合.所谓数据库对象是指表Table,视图View,存 储过程Stored Procedure,触发器Trigger等 数据库管理系统DBMS:数据库管理系统是用于管理 数据的计算机软件,数据库管理系统使用户能方便地 定义和操纵数据,维护数据的安全性和完整性.以及 进行多用户下的并发控制和恢复数据库
Extent (8 contiguous Data Page (8 KB) 8-KB Maximum row size = 8060 pages) bytes
SQL Database的组成 的组成
在SQL Server 中数据库是由数据库文件和事务日志 文件组成的,一个数据库至少应包含一个数据库文件 和一个事物日志文件. 数据库文件Database File 数据库文件是存放数据库数据和数据库对象的文件. 一个数据库可以有一个或多个数据库文件;一个数据 库文件只属于一个数据库.有一个文件被定义为主数 据库文件,扩展名为mdf,它用来存储数据库的启动 信息和部分或全部数据;一个数据库只能有一个主数 据库文件.其它数据库文件被称为辅助库文件,扩展 名为ndf.用来存储主文件没存储的其它数据.
用户定义文件组
Northwind Database
sys… sys… sysusers sysobjects
…
Orders Customers Products OrdHistYear2 OrdHistYear1
C:\
Northwnd.mdf
D:\
OrdHist1.ndf OrdHist2.ndf
关系型数据库概念
一对一的联系如一个人只有一种性别一个人性 别为一对一的联系 – 一对多的联系如相同性别的人有许多个性别人 为一对多的联系 – 多对一的联系如很多人有同一个性别人性别为 多对一的联系 –
通过联系就可以用一个实体的信息来查找另 一个实体的信息 关系模型把所有的数据都组织到表中,表是 由行和列组成的行表示数据的记录列
范式
第二范式2NF:每一行都是唯一的 第二范式2NF 是在第一范式1NF 的基础上建立起来的 即满足第二范式2NF必须先满足第一范式1NF, 第二 范式2NF要求数据库表中的每个实例或行必须可以被 惟一地区分,通常需要为表加上一个列,以存储各个 实例的惟一标识.如员工信息表中加上了员工编号列, 因为每个员工的员工编号是惟一的,因此每个员工可 以被惟一区分.这个惟一属性列被称为主关键字或主 键主码.第二范式2NF要求实体的属性完全依赖于主 关键字,所谓完全依赖是指不能存在仅依赖主关键字 一部分的属性,如果存在,那么这个属性和主关键字 的这一部分应该分离出来,形成一个新的实体,新实 体与原实体之间是一对多的关系.为实现区分通常需 要为表加上一个列,以存储各个实例的惟一标识.简 而言之第二范式就是非主属性非部分依赖于主关键字.
3 在磁盘中写入日志文件
Buffer Cache
Disk
2 写入服务器缓存的数据页中
准备修改
Disk 4 写入数据库文件
文件组File Group 文件组
文件组是将多个数据库文件集合起来形成的一个整体. 每个文件组有一个组名,与数据库文件一样,文件组 也分为默认文件组Primary File Group和自定义文件组 Secondary File group.一个文件只能存在于一个文件 组中,一个文件组也只能被一个数据库使用.默认文件 组中包含了所有的系统表,当建立数据库时,默认文 件组包括主数据库文件和未指定组的其它文件.在自 定义文件组中,可以指定一个缺省文件组那么在创建 数据库对象时,如果没有指定将其放在哪一个文件组 中,就会将它放在缺省文件组中.如果没有指定缺省 文件组,则主文件组为缺省文件组. ! 事务日志文件不属于任何文件组
– 定义数据库的名称 – 数据库的尺寸 – 定义数据库存储数据的文件空间位置 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]
磁盘控制器
FileF FileG FileH
磁盘控制器
磁盘控制器
处理事务日志 处理事务日志
操作系统
RAID将多个物理磁盘做成一个分区有容错功能(通过校验位实现) 将多个物理磁盘做成一个分区有容错功能(通过校验位实现) 将多个物理磁盘做成一个分区有容错功能 一个数据文件存放在不同的物理磁盘上
用Enterprise Manager 创建数据库
SQL Server有个特点,它在执行数据更改时会设置一个开始点和 一个结束点.如果尚未到达结束点,就因某种原因使操作中断. 则在SQL Server 重新启动时会自动恢复已修改的数据,使其返 回未被修改的状态.由此可见当数据库破坏时,可以用事务日 志恢复数据库内容.
事务日志工作过程
1 应用程序发出修改请求
ห้องสมุดไป่ตู้
范式
第三范式3NF:非关键字不能依赖于其他非关 键字 满足第三范式3NF 必须先满足第二范式2NF. 简而言之第三范式3NF要求一个数据库表中不 包含已在其它表中已包含的非主关键字信息. 例如存在一个部门信息表其中,每个部门有 部门编号,部门名称,部门简介等信息.那 么在员工信息表中列出部门编号后,就不能 再将部门名称,部门简介等与部门有关的信 息再加入员工信息表中.如果不存在部门信 息表则根据第三范式3NF也应该构建它,否则 就会有大量的数据冗余.简而言之第三范式 就是属性不依赖于其它非主属性