数据库学习笔记.docx
《数据库学习笔记.docx》由会员分享,可在线阅读,更多相关《数据库学习笔记.docx(67页珍藏版)》请在冰点文库上搜索。
数据库学习笔记
数据库学习笔记
第1章数据库基础概述
1.1数据库系统概述
◆数据密集型应用的三个特点:
©涉及的数据量大
©数据不随程序的结束而消失
©数据被多个应用程序共享
一、数据管理技术产生和发展的3个阶段:
人工管理阶段、文件系统阶段、数据库系统阶段
◆人工管理阶段:
没有存储设备、没有管理数据的软件
特点:
©数据不保存
©应用程序管理数据
©数据不共享
©数据不具有独立性
◆文件系统阶段:
有了存储设备,有了操作系统和高级语言
有专门用于管理数据的软件——文件系统/操作系统的文件管理部分
特点:
©数据可以长期保存在磁盘上,也可以反复使用。
©程序和数据之间有了一定的独立性。
©文件的形式多样化,文件之间是独立的。
©数据的存取基本上以记录为单位。
缺陷:
©数据冗余度大
©数据独立性差,应用程序依赖性,编写应用程序不方便
©数据间联系弱
©不支持对文件的并发访问
©难以按用户视图表示数据
©无安全控制功能
◆数据库系统阶段:
有了管理数据的专门软件系统——数据库管理系统
©相互关联的数据的集合。
©较小的数据冗余
©数据具有较高的独立性
©保证数据的安全、可靠
©最大限度地保证数据的正确性——数据完整性
©数据可以并发使用并能同时保证数据的一致性
二、数据库系统的组成
◆DBS数据库系统DataBaseSystem
©DB数据库DataBas
©DBMS数据库管理系统DataBaseManagementSystem
©DBA数据库管理员DataBaseAdministrator
©开发工具
©应用系统
◆DBMS的功能:
©数据库定义功能
©数据库操纵功能
©数据库维护功能
©数据库控制功能
©数据库通信功能
©数据库服务功能
1.2数据模型
一、概念、分类、构成
1.数据模型应满足3个条件:
©能比较真实地模拟现实世界;
©容易被人们理解;
©便于在计算机上实现。
2.3个领域
©现实世界
©信息世界
©机器世界
3.数据模型的分类:
2个层次
©概念层数据模型——实体联系模型
©组织层数据模型——关系数据模型
——层次模型
——网状模型
——面向对象模型
概念层数据模型
组织层数据模型
从数据的语义视角来抽取模型
从数据的组织层次来描述数据
按用户的观点来对数据和信息进行建模
按计算机系统的观点对数据进行建模
主要用在数据库的设计阶段
主要用于DBMS的实现
与DBMS无关
与DBMS有关
数据库系统的核心和基础
4.数据模型的构成元素:
3部分
©数据结构描述静态属性数据的组成、特性及其相互间联系
©数据操作描述动态属性数据检索、更新
©数据的约束条件描述静态属性
二、实体联系模型
1.概念:
实体联系模型——E-R模型(Entity-Relationship)
E-R图——使用的工具
2.要素:
3个——实体、联系、属性
◆实体:
客观存在并可以相互区分的客观事物或抽象事件
©矩形框
◆属性:
某一特性
©椭圆框/圆角矩形框
©标识属性下加下划线
◆联系
©实体内部的联系——组成实体的各属性之间的联系。
©实体之间的联系——指不同实体之间联系。
——菱形框
(1)一对一联系(1:
1)
如果实体A中的每个实例在实体B中至多有一个(也可以没有)实例与之关联,反之亦然,
(2)一对多联系(1:
n)
如果实体A与实体B之间存在联系,并且对于实体A中的一个实例,实体B中有n个实例与之对应;而对实体B中的任意一个实例,在实体A中至多有一个实例与之对应,
(3)多对多联系(m:
n)
如果实体A与实体B之间存在联系,并且对于实体A中的一个实例,实体B中有n个实例与之对应;而对实体B中的一个实例,在实体A中也有m个实例与之对应
三、关系数据模型
◆用关系(表格数据)表示实体和实体之间联系的模型
◆3个要素:
关系数据结构、关系数据操作、关系完整性约束
1.关系模型的数据结构
基本术语:
◆关系——二维表
©每一列都是不可再分的基本属性;
©表中各属性不能重名;
©表中的行、列次序并不重要。
◆元组:
每一行是一个元组,一个记录值。
◆属性:
每一列是一个属性值集,列可以命名,称为属性名。
◆两套标准术语:
表、列、行——关系、属性、元组
◆关系模式——二维表的结构
◆候选关键字/侯选码/候选键:
©能唯一确定一个关系的元组而又不含有多余属性的习属性集。
©(简言之)能够唯一确定一个元组的最小属性集。
©一个关系可以有多个侯选码/候选键
◆主关键字/主码/主键(Primarykey):
©一个关系可以有多个候选关键字,则可以选择一个为主关键字/主码/主键。
©每个关系有且只有一个主关键字
◆主属性:
所有组成候选关键字的属性
◆非主属性:
不包含在侯选关键字中的属性/除主属性之外的其他属性
◆外部关键字/外码/外键
©一个属性集不是所在关系的关键字,但是其他关系的关键字
©通过外部关键字使两个关系相联
◆参照关系和被参照关系
©主/父关系——被参照关系
©从/子关系——参照关系
2.关系模型的数据操作:
©包括:
查询、插入、删除、修改
©数据操作是基于集合的操作,操作对象和操作结果都是集合(或关系)。
©只需要指出“需要什么”,而不必详细说明“怎样干”。
3.关系模型的数据完整性约束
©数据完整性——数据库中存储的数据是有意义的或正确的。
◆实体完整性——针对主关键字——必须满足
©目的:
保证关系中的每个元组都是可识别和唯一的。
©内容:
若属性A是基本关系R的主属性,则属性A不能取空值。
◆参照完整性——针对外部关键字(引用完整性)——必须满足
©定义了外部关键字与主关键字之间的参照规则。
©内容:
如果属性(或属性组)F是关系R的外部关键字,它与关系S的主关键字K相对应,则对于关系F上的值必须为:
或者取空值
或者K的某个值。
◆用户定义的完整性(域完整性,语义完整性)——不用必须满足,用户定义
4.实体联系模型向关系模型的转换——
◆要解决的问题:
如何确定这些关系模式的属性和关键字。
◆转换目的:
从概念层结构向组织层转换
◆转换规则:
©A—B1:
1A加到BB加到A
©A—B1:
nA加到B(1加到n)
©A—Bm:
n创建一个新的A-B,A,B都加到A-B
1.3关系数据理论
一、“不好的”数据库:
——解决方法:
“模式分解”
©数据冗余问题
©数据更新问题
©数据插入问题
©数据删除问题
二、规范化
◆目的:
设计“好的”数据库
1.函数依赖及相关术语
(1)函数依赖
Y=f(X)给定一个X值,就会有一个Y值和它对应,称
X函数决定Y,或Y函数依赖于X。
表示为:
X→Y
(2)决定因素:
X→YX为决定因素
(3)非平凡/平凡的函数依赖
X→YY包含于X——平凡
Y不包含于X——非平凡
如,R(A,B,C)学生(学号,姓名,年龄)
A→C非平凡(学号,姓名)→姓名
(A,C)→C平凡学号→姓名
(4)完全/部分函数依赖
若X→Y,且X的任意一个真子集X′
Y,Y完全依赖于XX→fY
若X→Y,且X的有真子集X′→Y,Y不完全依赖于XX→pY
如,R(A,B,C)中
存在(A,B)→C,但不存在B→C和A→C完全
存在(A,B)→C,B→C不完全
(5)传递函数依赖
若X→Y,Y→Z,Z传递依赖于XX→tY
如,R(A,B,C)中
存在A→C,且存在A→B,B→C传递
2.解决问题的办法――模式分解
©把一个关系模式分解成两个或多个关系模式
©消除“不良”依赖关系,获得好的关系模式
©消除部分依赖和传递依赖
3.第一范式(1NF)
◆关系R的所有属性都是不可再分的数据项,则R∈1NF
©所有关系模式至少是1NF
4.第二范式(2NF)——本质是消除部分依赖
◆R∈1NF,且R中的每个非主属性都完全依赖(不部分依赖)于主关键字,则R∈2NF
◆主要看主关键字是单属性?
多属性?
©主关键字是单属性时,R一定∈2NF
©主关键字是多个属性时,任意真子集不决定非主属性,R∈2NF
例:
R(A,B,C)至少满足1NF
R(A,B,C),不存在A→C且B→C至少满足2NF
R(A,B,C)至少满足2NF
5.第三范式(3NF)——本质是消除传递依赖
◆R∈2NF,且R中的每个非主属性都不传递依赖于主关键字,则R∈3NF
◆主要看非主属性有几个
©R∈2NF,最多只有一个非主属性,R一定∈3NF
©R∈1NF,没有非主属性,R一定∈3NF
例:
R(A,B,C),存在B→C或C→B至少满足2NF
R(A,B,C),不存在B→C和C→B至少满足3NF
R(A,B)至少满足3NF
R(A,B,C),不存在A→C且B→C至少满足3NF
R(A,B,C)至少满足3NF
1.4数据库系统结构
内部体系结构(从数据库管理角度看)
三级模式外模式
模式
内模式
二级映像外模式/模式映像
模式/内模式映像
外部体系结构(从数据库用户角度看)
客户/服务器结构Client/ServerC/S结构
浏览器/服务器结构Brower/ServerB/S结构
分布式结构
集中式结构
文件服务器结构
一、内部体系结构——三级模式两级映像
应用程序
↑
外模式→视图用户模式用户对数据结构的描述
↓
外模式/模式映像提供逻辑独立性
↓
模式→表
↓
模式/内模式映像提供物理独立性
↓
内模式→物理文件.mdf.ldf存储模式数据的内存结构描述
↓
数据库
二、外部体系结构
1.客户/服务器结构C/S结构
◆客户端的程序包括:
©提供用户界面
©采集数据
©输出结果
©向服务器发出处理请求
◆服务器的程序包括:
©数据管理
©数据处理
©业务处理
©向客户端发送处理结果
◆优点:
©将应用程序合理分配到客户端和服务器端
©充分利用两端软硬件环境优势
©简化了应用程序开发
©降低了网络通信量。
(服务器传给客户机的是处理的结果)
©优化了网络利用率
©较低费用实现较高性能
◆缺点:
©需要在客户端安装部署应用程序
©部署和维护成本较高
©代码复用困难,可重用性差
◆适用:
©用户较少
©数据处理量较大
©交互性较强
©数据查询灵活
©安全性要求较高
©基于局域网
2.浏览器/服务器结构B/S结构
◆优点:
©不用在客户端安装部署软件,只在服务器部署
©只需有上网用的浏览器软件
©维护和升级方便
©代码可重性高
©可跨平台操作,任何一台计算机上只要有浏览器即可
©良好的开发性和可扩充性
◆适用:
©用户多
©数据处理量不大
©地点灵活
©基于广域网
第2章SQLServer2008概述
一、SQLServer2008的组件包括3类:
服务器组件、管理工具和文档。
◆服务器组件:
©数据库引擎服务(DatabaseEngine)
全文搜索(Full-textFilterDaemonLauncher)
©分析服务(AnalysisServices)
©报表服务(ReportingServices)
©整合服务(IntegrationServices)
◆管理工具:
©SQLServerManagementStudio、
©SQLServer配置管理器
©SQLServerProfiler
©数据库引擎优化顾问
©BusinessIntelligenceDevelopmentStudio
©连接组件
◆文档:
©SQLServer联机丛书:
SQLServer的核心文档
二、实例配置
◆SQLServer2008支持多实例
◆默认实例:
实例名与计算机名相同
◆命名实例:
计算机名\实例名
如,计算机名称为:
MYHOME,
如果选择命名实例,并命名实例名为:
SQLServer2008,
请求连接该SQLServer时服务器名称应输入:
MYHOME\SQLServer2008。
◆注意:
1台服务器只能承载1个默认实例。
©计划安装单个SQLServer实例,则该实例应为默认实例。
©计划在同一台计算机上安装多个实例,应使用命名实例。
三、身份验证模式3种:
(SQLServer2008有2种)
仅SQL用户(win98以后不再)
©Windows身份验证模式——仅接受Windows用户,不接受非Windows用户
©混合模式——允许Windows,允许SQLServer
四、安装目录中的几个文件夹:
2008:
MSSQL10.2008、MSAS10.2008()、MSRS10.2008、100
(AnalysisServices)(ReportingServices)
2005:
90
2000:
80
©所有实例使用的公共文件在文件夹systemdrive:
\ProgramFiles\MicrosoftSQLServer\100,都是重要的系统文件,一般不要修改。
©每个实例还有单独一个文件夹MSSQL.n:
\ProgramFiles\MicrosoftSQLServer\MSSQL.n,n是SQLServer实例的序号,如1或2。
五、注意:
◆SQLServer的启动方式2种:
手工启动、自动启动
◆要在客户端访问远程的SQLServer服务器,须在客户端计算机和服务器端计算机上配置相同的网络协议
◆删除SQLServer前,关闭所有SQLServer程序和工具,停止所有SQLServer服务
第3章数据库的创建与管理
3.1数据库概述
1.数据库类型一个实例有5个系统,若干个用户
◆系统数据库(5个)系统自动维护存放维护系统正常运行的信息
©master所有系统级别的信息,系统对象不在master中
©msdbSQLServer代理用来记录作业、警报、备份历史的信息
©model模板。
©tempdb临时性,每次启动都重新创建,断开自动删除
不允许进行备份、还原操作
©resource只读,系统对象
系统对象在SQLServer中以两种形式存在:
●分散在.sys架构下
●统一在resource中
◆用户数据库(若干个)用户维护存放与用户业务有关的信息
创建、维护数据库——指的是用户数据库
©在创建用户数据库时,包含系统表的model数据库自动被复制到新建数据库中。
3.1.2数据库文件
1.组成(2部分)至少1个主要数据文件,1个日志文件
◆数据文件——用于存放数据库数据
©主要数据文件.mdf(1个):
包含数据库启动信息,也可存储数据
©次要数据文件.ndf(0或多个):
存放主要不能存放的,
主要、次要,可存放在相同位置,也可存在不同位置
用户不必担心存放位置,系统会选择最高效的方法
◆日志文件.ldf(1或多个)——记录页的分配和释放、对数据库数据的修改操作。
2.名称(2个)
◆逻辑名称:
DBMS管理——T-SQL语句引用文件时使用的。
(唯一的)
◆物理名称:
操作系统管理——存放在目录路径的物理文件名
3.存储
数据文件存储的基本单位:
页
日志文件不包含页,由一系列日志记录组成
©多个数据文件最好存储在多个磁盘上
◆页
◆区——管理页统一区:
为单个对象所有
混合区:
最多可由8个对象共享。
©1页=8kb=8*1024字节
©1区=8页
©1M=128页=16区
©行——最大开销8kb(8060字节)
©页按顺序编号,首页是0
©行不能跨页,但行的部分可以移出所在的页
例:
数据库表有10000行,每行3000字节。
求此表所需的空间。
∵每行3000字节,且一页大小为8kb
∴一页可以存放2行
∴10000行需要5000页来存放
∴表所需的空间为:
5000*8kb=40000kb=40MB
3.2创建数据库
◆第一行:
主要数据文件,后面再建的:
都是次要数据文件
◆master数据库,只有系统管理员才能使用
◆数据库只读:
指定值时,数据库不能处于使用状态
◆限制访问:
©多个,允许多个用户同时访问
©一个,一次只允许一个用户访问
©限制,只有db_owner,dbcreator,sysadmin才能使用
◆查看数据库属性:
表建完后:
©可以修改的属性:
逻辑名称、初始大小、自动增长方式
©不可修改的属性:
文件类型、文件组、路径、物理文件名
◆使用数据库之前,须设当前数据库
3.3维护数据库空间
◆扩大数据库空间的方法:
©扩大已有文件的大小
©增加新文件
◆收缩数据库空间
收缩操作内容:
收缩数据库、收缩文件
收缩操作方式:
自动收缩、手动收缩
©收缩数据库时,从末尾开始收缩,直到没有剩余的可用空间
©手动收缩文件,
主要数据文件不能收缩到小于model数据库中主要数据文件的大小
©手动收缩数据库,
收缩后数据库的大小不能小于数据库文件的最小大小
最小大小:
创建时指定的初始大小或
上一次使用“手动收缩数据库中的文件”时设置的大小
3.4删除数据库
©不能删除系统数据库
©删除之前,取消日记传送操作
©文件数据从磁盘中删除。
3.5分离和附加数据库
◆作用:
数据库移植到另一台服务器上/改变文件的物理位置
◆分离:
从实例中删除,不是从磁盘上删除,保留数据文件和日志文件,
可以在需要的时候,附加
◆无法执行分离的情况:
©数据库正在使用,而且无法切换到SINGLE_USER模式。
©数据库处于可疑状态。
©数据库为系统数据库。
第4章SQL语言基础
4.1T-SQL简介
◆SQL——StructuredQueryLanguage结构化查询语言
◆最新的标准:
SQL-99或SQL3
◆T-SQL的分类
©数据定义语言
©数据操纵语言
©数据控制语言
©事务管理语言
©其他附加语言元素
◆T-SQL的特点
©一体化:
上述各种语言于一体
©两种使用方式:
交互、嵌入高级语言中
©非过程化语言:
©简洁
4.2T-SQL数据类型
系统数据类型
©数字数据类型
©货币数据类型
©日期和时间数据类型‘’
©字符串数据类型‘’
用户自定义数据类型
1.数字数据类型
整型bigint大整型8字节
int整型4字节
smallint小整型2字节
tinyint微整型1字节
非整型精确数字decimal/numeric[(p[,s])]
p:
小数点左边和右边的位数和默认18,最大38
s:
小数点右边的小数位数默认0
非精确数字float[(n)]n:
1-53,[1,24]默认24,[25,53]默认53
©不需要用单引号(‘)括起来
2.货币数据类型
money:
8字节精确到货币单位的千分之十(元的万分之一)
smallmoney:
4字节精确到货币单位的千分之十。
©带4位小数的decimal
©不需要用单引号(‘)括起来
©可以带有适当的货币符号。
£100。
3.日期时间数据类型
datetime8字节YYYY-MM-DDhh:
mm:
ss[.nnn]
smalldatetime4字节YYYY-MM-DDhh:
mm:
ss
ss始终为00精度为1分钟
秒没有小数>=29.999深入<=29.998
date3字节YYYY-MM-DD
time[(n)]5字节hh:
mm:
ss[.nnnnnnn]
精度为100纳秒,n是秒的小数部分,0-7,默认7
©使用特定格式的字符日期值表示
例如:
‘04/15/2009’,'2009-04-1512:
35:
29','20090415'
©用单引号(‘)括起来。
CAST('2007-05-0812:
35:
29'ASsmalldatetime)2007-05-0812:
35:
00
CAST('2007-05-0812:
35:
30'ASsmalldatetime)2007-05-0812:
36:
00
CAST('2007-05-0812:
59:
59.998'ASsmalldatetime)2007-05-0813:
00:
00
CAST('2007-05-0812:
35:
29.1234567'AStime(7))12:
35:
29.1234567
CAST('2007-05-0812:
35:
29.1234567'ASdate)2007-05-08
CAST('2007-05-0812:
35:
29.123'ASsmalldatetime)2007-05-0812:
35:
00
CAST('2007-05-0812:
35:
29.123'ASdatetime)2007-05-0812:
35:
29.123
4.字符串数据类型
©用单引号(‘)括起来。
©用两个(’’)表示字符串中的(’)。
如,’I’’mTom’
编码
字符
字节
范围
默认
max
char[(n)]
普通
定
n英,n/2汉
n
1-8000
1
补空格
varchar[(n︱max)]
普通
变
实英,实/2汉
实
1-8000
1
231-1
nchar[(n)]
统一
定
n
2n
1-4000
1
补空格
nvarchar[(n︱max)]
统一
变
实
2实
1-4000
1
231-1
binary[(n)]
二进制
定
n
1-8000
varbinary[(n︱max)]
二进制
变
1-8000
231-1
image
二进制
变
>8000
©前面有n,表示统一编码
©前面有var,表示可变长度
4.2.2用户定义数据类型
创建用户定义数据类型,明确三个参数
©名称
©依据的系统数据类型
©是否允许空值
4.3T-SQL的语法元素
1.使用约定
(1)语法格式约定
约定
用于
大写
关键字。
|(竖线)
只能使用其中一项。
分隔括号或大括号