数据库系统原理复习资料.docx
- 文档编号:11957259
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:19
- 大小:25.01KB
数据库系统原理复习资料.docx
《数据库系统原理复习资料.docx》由会员分享,可在线阅读,更多相关《数据库系统原理复习资料.docx(19页珍藏版)》请在冰豆网上搜索。
数据库系统原理复习资料
数据库系统原理复习资料
1、数据、信息、数据处理、数据处理基本概念P3-4
信息是被加工为特殊形式的数据,是关于现实世界事物的存在方式或运动状态的反映的综合。
数据是用来记录信息的可识别的符号,是信息的具体表现形式。
数据是信息的符号表示或载体,信息则是数据的内涵,是对数据的语义解释。
数据处理是将数据转换为信息的过程,包括了对数据的收集,存储,加工,检索,传输等一系列活动,其目的是从大量的原始数据中抽取和推导出有价值的信息,作为决策的依据。
可分为数据管理与数据计算。
信息=数据+数据处理
2、数据管理的发展阶段?
P4-6
人工管理阶段,文件系统阶段,数据库系统阶段
3、数据库学科研究领域?
P7-8
数据库管理系统软件的研发,数据库设计,数据库理论
4、数据库系统的组成和系统结构?
P8-10
数据库系统由用户,数据库,软件和硬件等4部分组成,结构为三级模式结构,分为外模式,模式和内模式。
外模式可有多个,但模式和内模式只能有一个。
5、数据库管理系统的主要功能和组成P11-12
主要功能:
数据定义,数据操纵,数据通信,数据库运行管理,数据库的建立与维护功能
组成:
语言编译处理程序,系统运行控制程序,系统建立维护程序,数据字典
6、数据模型的组成要素?
P13-14
数据结构,数据操作和数据的约束条件
7、ER图的基本组成和画法?
P15-16
8、数据模型的分类?
试述ER模型、层次模型、网状模型、关系模型的主要特点P18-20
层次结构:
采用树结构来表示数据之间的联系。
有且仅有一个节点没有双亲,该节点为根节点。
根节点以外的其它节点有且仅有一个双亲节点,只能直接处理一对多的实体关系。
任何给定的记录值只有按其路径查看时才能显示其全部含义,没有一个子节点能脱离双亲独立存在。
网状模型:
采用图结构来表示数据之间的联系。
有一个以上的节点没有双亲。
至少有一个节点可以有多于一个双亲
关系模型:
采用二维表来表示数据之间的联系。
9、第三代数据库系统的基本特点?
P25
1,支持面向对象的数据模型
2,必须保持或继承第二代数据库系统的优点
3,必须具有开放性
10、MicrosoftSQLServer2005的主要功能?
P37
管理和配置SQLServer。
确定SQLServer副本中的目录信息
设计和测试用于检索数据的查询
复制,导入,导出和转换数据
提供诊断信息
启动和停止SQLServer
11、MicrosoftSQLServer2005的启动方式?
P43
SQLServer配置管理器,SQLServerManagementStudio或命令提示符。
12、数据库、表、数据库文件、文件组、系统数据库概念P45-47
数据库是由表的集合组成
表是用来存储一组特定的结构化数据,其中包含了行和列的集合。
数据库文件分为主要数据文件,次要数据文件,事务日志文件,其中主要数据文件包含了数据库的启动信息,并指向数据库中的其它文件,每个数据库有一个主要数据文件。
次要数据文件是可选的,由用户定义并存储用户数据。
事务日志文件是保存用于恢复数据库的日志信息,每个数据库必须至少要有一个日志文件。
13、数据库的创建、修改和删除操作P47-52
创建数据库必须具有createdatabase,createanydatabase,alteranydatabase的权限。
14、表的创建、修改和删除操作P56-58
15、记录的插入、删除和修改操作P58-59
16、简单的查询和统计操作P60-65
17、SQL的概念及组成P66-67
SQL是一种介于关系代数和关系演算之间的一种结构化查询语言它的主要功能包括数据定义,数据操作及数据控制等方面,是高级的非过程化编程语言,允许用户在高层数据结构上工作。
分为3个部分:
数据定义语言DDL,数据操作语言DML,数据控制语言DCL
18、SQL基本表、视图、索引的建立、修改和删除P69-71、P90-100、P128-129
创建基本表:
createtable<表名>(
<列名><数据类型>[列级完整性约束条件]
{,<列名><数据类型>[列级完整性约束条件]}
[,表级完整性约束定义]
例:
创建名为图书的二维表
createtable图书(
图书编号char(8)primarykey,
书名char(30),
作者char(8),
出版社char(30),
单价double(10,2))
修改基本表:
altertable<表名>
[altercolumn<列名><新数据类型>]
|[addcolumn<列名><数据类型>[约束]]
|[dropcolumn<列名>]
|[addprimarykey(列名[,……n])]
|[addforeignkey(列名)references表名[列名]]
例:
在图书表中增加作者年龄和出版社电话两个列
altertable图书
addcolumn年龄int,出版社电话char(12)
删除基本表:
droptable<表名>
例:
删除名为图书的基本表
droptable图书
创建视图:
createview<列名>[(<列名>[,<列名>]……)]
as<子查询>
[withcheckoption]
例:
创建由“清华大学出版社”出版的图书信息的视图
createviewV_QHTS
as
select*from图书where出版社=’清华大学出版社’
withcheckoption
修改视图:
alterview<视图名>[(<列名>[,<列名>]……)]
as<子查询>
[withcheckoption]
例:
修改V_QHTS的定义,将其改为由“清华大学出版社”出版,并且单价超过20的图书信息
alterviewV_QHTS
as
select*from图书where出版社=’清华大学出版社’and单价>20
withcheckoption
删除视图:
dropview{视图名}[,……n]
例:
删除由“清华大学出版社”出版的图书信息的视图
dropviewV_QHTS
创建索引:
create[unique][clustered][nonclustered]index<索引名>on<表名>(<列名>[<次序>][,<列名>[<次序>]]……)
例:
在tBooks表中的fAuthor列上建立一个聚集索引,而且tBooks表中的记录将按照fAuthor值的升序存放
createclusteredindexBookAuthorontBooks(fAuthor)
删除索引:
dropindex<表名>.<索引名>
19、SQL的各种查询(简单查询、连接查询、子查询、库函数查询、集合运算查询)P71-84
简单查询:
select<目标列名序列>
[into<新二维表的名字>]
from<二维表或视图>
[where<检索条件表达式>]
[groupby<分组依据>]
[having<组判断条件>]
[orderby<排序依据列>[asc|desc]]
例:
查找读者黄刚所在的单位
select姓名,单位from读者where姓名=’黄刚
连接查询:
1.内连接:
from表1[inner]join表2on<连接条件>
例:
查询每个读者的基本信息及其借阅的情况
select*from读者innerjoin借阅on读者.借书证号=借阅.借书证号
2.自连接:
例:
查询与张三在同个单位的读者的姓名和所在单位
selectS2.姓名,S2.单位from读者S1join读者S2
onS1.单位=S2.单位whereS1.姓名=’张三’andS2.姓名!
=’张三’
3.外连接:
from表1[left|right][outer]join表2on<连接条件>
例:
查询读者的借阅情况,包括借阅了图书的读者和没有借阅图书的读者。
select读者.借书证号,图书编号,借阅日期from读者leftouterjoin借阅on读者.借书证号=借阅.借书证号
子查询:
例:
查询与张三在同个单位的读者
select姓名,单位from读者where单位in
(select单位from读者where姓名=’张三’)
库函数查询:
例:
查找借阅了图书的读者人数
selectcount(distinct借书证号)as人数from借阅
例:
统计清华大学出版社出版的图书的单价总和
selectsum(单价)as总价from图书where出版社=’清华大学出版社’
例:
查找清华大学出版社的图书的平均单价
selectavg(单价)as平均单价from图书where出版社=’清华大学出版社’
例:
查找清华大学出版社的图书的最高单价
selectmax(单价)as最高单价from图书where出版社=’清华大学出版社’
例:
查找清华大学出版社的图书的最低单价
selectmin(单价)as最低单价from图书where出版社=’清华大学出版社’
例:
找出当前至少借阅了5本书的读者及所在单位
select姓名,单位from读者where借书证号in(
select借书证号from借阅groupby借书证号havingcount(*)>=5)
集合运算查询:
例:
求校友与读者中具有教授,副教授职称人员的并集
select姓名,职称.单位from读者where职称in(‘教授’,’副教授’)unionselect姓名,职称,单位from校友where职称in(‘教授’,’副教授’)
例:
求校友与读者中具有教授,副教授职称人员的交集
select姓名,职称.单位from读者where职称in(‘教授’,’副教授’)minusselect姓名,职称,单位from校友where职称in(‘教授’,’副教授’)
例:
求校友中具有教授,副教授职称人员但并不是读者的
select姓名,职称.单位from读者where职称in(‘教授’,’副教授’)intersectionselect姓名,职称,单位from校友where职称in(‘教授’,’副教授’)
20、T-SQL语言的常量、变量、表达式、运算符基本概念P103-112
常量:
在程序运行中值保持不变的数据称为常量,是表示特定数据值的符号,格式取决于具体的数据类型,通常分为字符串常量,整型常量,日期时间常量,实型常量,货币常量和全局唯一标识符。
变量:
在程序执行过程其值可以改变的量,声明变量时要指定变量名和数据类型,有全局变量和局部变量两种
运算符:
一种实现运算功能,能将数据按照运算符的功能定义进行计算,产生新的结果的符号,可分为算术运算符,赋值运算符,位运算符,比较运算符,逻辑运算符,字符串连接运算符和一元运算符。
21、流程控制语句(语句块、IF-ELSE语句、CASE语句、GOTO语句、RETURN语句、WQITFOR语句)、函数(内置函数、用户自定义函数)P113-126
语句块:
begin
{T-SQL语句}
end
IF-ELSE语句:
if条件表达式
{T-SQL语句}
[else
{T-SQL语句}]
CASE语句:
case条件表达式
when条件表达式then表达式
[……n]
[else表达式]
GOTO语句:
label:
……
gotolabel
RETURN语句:
return[数据值]
WAITFOR语句:
waitfor{delay‘time’|time‘time’}
例:
在22:
00时备份数据库
waitfortime‘22:
00’
backupdatabase图书管理tobook_bkp
函数(内置函数、用户自定义函数
22、默认值约束和默认值对象P129-131
默认值约束:
用于指定一个字段的默认值,可能会发生以下几种情况:
1.此字段定义了默认值,则此字段的值为默认值
2.此字段未定义默认值,而且允许为NULL值,则NULL会成为该字段的内容
3.此字段未定义默认值,而且不允许为NULL值,保存时将会出现错误信息,而且添加数据操作失败。
默认值对象:
是一种独立存储的数据库对象,其作用和默认约束是一样的。
23、数据的完整性(实体完整性、参照完整性和用户定义完整性)P132-134
实体完整性指的是表中行的完整性,要求表中的所有行都有唯一的标识符,这样的标识符被称为候选码,并且所有候选码对应的主属性都不能取空值,所谓空值就是“不知道”或“无意义”的值。
如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,与现实世界实体可区分的事实不符。
参照完整性:
又称为引用完整性,参照完整性保证相关联表中数据的一致性,防止数据的丢失或无意义的数据在数据库中扩散。
用户自定义的完整性:
针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
24、存储过程的概念、创建、修改、重命名、删除P135-147
存储过程定义:
是一组经过预先编译的SQL代码,存放在服务器中。
用户可以调用一个单独的存储过程得到相应的返回值,从而完成一系列的操作。
创建:
例:
创建一个存储过程use_cred,查看用户的验证身份类型
useMymdb
go
createprocedureuser_cred
as
selectfUserID,tCred.fNamefromtCred,tUserswheretCred.fId=tUsers.fCredentials
修改:
例:
修改book_author,使返回的结果集按照书的页数降序进行排序
useMymdb
go
alterprocedurebook_author
@anamevarchar(40)
as
selectfName,fAuthor,fDate,fPagesfromtBookswherefAuthorlike@anameorderbyfPagesdesc
重命名:
例:
将book_authorwithderfault重命名为book_authorwithderfault1
useMymdb
go
execsp_rename‘book_authorwithderfault’,‘book_authorwithderfault1’
删除:
例:
删除book_authorwithderfault2
useMymdb
go
dropprocedurebook_authorwithderfault2
25、触发器的概念、功能、类型和工作原理P147-149
触发器是一种特殊的存储过程,由某个事件来触发,其作用范围可以是数据库层或是服务器层
功能:
1.触发器可以对数据库进行级联修改
2.触发器可以完成比CHECK约束更复杂的限制
3.触发器可以跟踪执行的SQL语句
4.触发器可以调用存储过程
5.触发器可以返回自定义的错误信息
6.触发器可以防止数据表结构被更改或数据表被删除
类型:
分为DML触发器和DDL触发器两类
DML触发器在数据库中发生数据操作语言(DML)时被启用。
DDL触发器在数据库或服务器发生数据定义语言(DDL)事件时启用
DML触发器的工作原理
after触发器的工作原理:
after触发器是在记录变更完成后才会被激活并执行的。
以删除记录为例,当SQLServer接收到一个要执行删除操作的SQL语句时,SQLServer先将要删除的记录存放在deleted表中,接着讲数据表中的记录删除,然后激活after触发器,执行after触发器中的SQL语句,最后在触发器执行完毕后,删除内存中的deleted表,退出整个操作
insteadof触发器工作原理:
insteadof触发器是在发生insert,update和delete这些操作之前就激活了,并且不再去执行原来的SQL操作,而去运行触发器本身的SQL语句。
26、触发器的创建、查看、修改、删除、禁用与启用P148-157
创建:
createtriggertrigger_name
on{table|view}
[withencryption]
{for|aftet|insteadof}
{[insert][,][update][,][delete]}
as
sql_statement
例:
创建一个触发器,在图书表tBooks中插入一条记录后,发出“已成功添加一本图书。
”的提示
createtriggerbookinsert
ontBooks
afterinsert
as
print‘已成功添加一本图书.’
查看:
[exec]sp_helptriggertable_name
例:
查看附加到用户表tUsers的触发器
execsp_helptriggertUsers
修改:
altertriggertrigger_name
on{tablename|viewname}
[withencryption]
{{for|after|insteadof}{[delete][,][insert][,][update]}
as
sql_statement[,……n]
}
例:
将bookinsert触发器的功能改变为当对图书表tBooks中进行插入,修改和删除时显示完成信息
altertriggerbookinsert
ontBooks
forinsert,update,delete
as
print‘操作完成’
删除:
droptriggertrigger_name
例:
删除触发器BBS_Insert
droptriggerBBS_Insert
禁用:
disabletrigger触发器名或allon数据表名
启用:
enabletrigger触发器名或allon数据表名
27、SQLServer2005的安全认证模式P159-162
SQLServer2005的安全性管理是建立在身份验证和权限认证两个机制上的。
身份验证是用来确定登录SQLServer服务器的用户的登陆账号和密码是否正确,以此来验证此用户是否具有连接SQLServer服务器的权限;权限认证是为了防止用户登录到SQLServer2005服务器上后访问服务器上的所有数据库,需要将用户账号记录在用户可访问的每个数据库中,才可以访问,对于没有账号的数据库,用户将无法访问。
28、SQLServer账户的创建、修改、查询、删除P162-170
SQLServer账户的创建:
(1)创建Windows登录账户:
1)通过企业管理器创建Windows登录账户
2)使用T-SQL命令创建Windows登录账户:
sp_grantlogin[@loginame=]'login'
(2)创建SQLServer登录账户:
1)通过企业管理器创建SQLServer登录账户
2)使用T-SQL命令创建SQLServer登录账户:
sp_addlogin[@loginame=]'login'
[,[@passwd=]‘password’]
[,[@defdb=]‘datbase’]
[,[@deflanguage=]‘language’]
[,[@sid=]‘sid]
[,[@encryptopt=]‘encryption_option’
SQLServer账户的修改:
(1)用企业管理器修改登录账户属性
(2)使用T—SQL命令修改登录账户属性:
1)查看登录账户
命令格式:
sp_helplogins[[@loginnamepattern=]‘login’]
2)添加和修改SQLServer登录密码
语句格式:
sp_password[[@old=]‘old_password’,]
{[@new=]‘new_password’}[,@loginame=]’login’]
3)更改登录的默认数据库
命令格式:
sp_defaultdb[@loginame=]‘login’,[@defdb=]‘database’
SQLServer账户的删除:
(1)、通过企业管理器删除
(2)使用T—SQL命令删除
1)删除Windows用户或组登录账户
命令格式:
sp_revokelogin[@loginame=]‘login’
2)删除SQLServer登录账户
命令格式:
sp_droplogin[@loginame=]’login’
29、数据库用户的创建、修改、删除P170-174
数据库用户的创建:
(1)使用企业管理器创建数据库用户
(2)使用T—SQL命令创建数据库用户
1)使用sp_grantdbaccess
命令格式:
sp_grantdbaccess[@loginame=]’login’[,[@name_in_db=]’name_in_db’
2)使用sp_adduser
命令格式:
sp_adduser[@loginame=]’login’[,[@name_in_db=]’user’][,[@grpname=]‘group’]
数据库用户的修改:
(1)使用企业管理器修改数据库用户
(2)使用T—SQL命令修改数据库用户
1)使用sp_addsrvrolemember加入
命令格式:
execsp_addsrvrolemember‘login’,’role’
2)使用sp_change_users_login更改
命令格式:
execsp_chagne_users_login‘actor’,’user’,’login’
3)使用sp_helpuser查看
命令格式:
execsp_helpuser
数据库用户的删除:
(1)使用企业管理器删除数据库用户
(2)使用T—SQL命令删除数据库用户
命令格式:
sp_revokedbaccess[@n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 复习资料
![提示](https://static.bdocx.com/images/bang_tan.gif)