数据:数据库中存储的基本对象,描述事物的符号记录;数据库:长期存储在计算机内有组织可共享的大量数据集合;数据库管理系统:位于用户和操作系统之前的一层数据管理软件(数据定义功能,数据组织存储和管理,数据操纵,数据库的事物管理和运行管理,数据库的建立和维护)数据库系统:有数据库/数据库管理系统(及其开发工具)应用系统/数据库管理员构成; 数据库管理系统提供的功能:(1)数据库恢复(2)并发控制(3)安全性保护(4)完整性保护数据库系统三级模式结构模式:数据库中全体数据的逻辑结构和特征的描述所有用户的公共数据视图;外模式:用户模式使数据库用户能够看见和使用的局部数据的逻辑结构和特征描述;内模式称存储模式是数据物理。结构和存储方式的描述,是数据在数据库内部的表示方式一个数据库只有一个内模式.外模式/模式映象:保证数据的逻辑独立性.模式/内模式映象:保证数据的物理独立性.SQL特点:综合统一,高度非过程化,面向集合的操作方式,以同一种语言结构提供多种使用方式,语言简洁易学易视图实体化又叫物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。物化视图可以查询表,视图和其它的物化视图。通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本,必须用高级复制的功能。当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图.基本表:本身独立存在的表,一个关系对应一个表一个或多个基本表对应一个存储文件.视图:从一个或几个基本表导出的表,本身不独立存储在数据库中是一虚表.差异:基本表中数据发生变化从视图中查出的数据也随之改变.实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值;参照完整性;若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为或者取空值或者等于S中某个元组的主码值.事物:用户定义的一个数据库操作序列,这些操作要么全做要么全不做是一个不可分割的工作单位.事物四个特征:原子性:包括诸多操作要么都做要么都不做;一致性:执行结果必须是使数据从一个一致性状态到另一致性状态;隔离性:执行不能被其他事物干扰;持续性:一个事物一旦提交对数据库数据的改变就应该是永久登记日志文件为什么必须先写日志文件后写数据库先日志后数据库:把对数据的修改写到数据库和把日志记录写到日志文件是不同的操作,有可能发生故障是完成一个,先写数据库修改运行记录没登记则以后无法恢复该修改,如先写日志没改数据库,按日志文件恢复时只不过多执行一次不必要的UNDO操作.事物故障恢复:反向扫描日志文件查找该事物更新操作;对该事物更新操作执行逆操作;继续反向扫描日志文件查找其他更新操作;如此处理直到读到此事物开始标记.系统故障恢复:正向扫描日志文件找出故障前已提交事物将其标记记入重做队列;对撤消列队中各事物进行撤消处理;对重做列队中各事物进行重做处理.并发操作不一致:丢失修改;不可重复读;读"脏"数据.封锁:事物T对某个数据对象如表,记录等操作之前先向系统发生请求,对其加锁. 基本的封锁类型有两种:排
它锁(力锁)和共享锁(S锁).1级封锁协议:对事务T要修改的数据R加X锁直到事务结束为止。2级封锁协议:1级封锁协议加上对T要读取的数据R加S锁。3级封锁协议:1级封锁协议加上对T要读取的数据R加S锁,直到事务结束才释放。封锁对象的大小称为封锁的尺度。在运用封锁方法时对数据对象加锁时需要约定一些规则,例如何时申请封锁、持锁时间、何时释放封锁等。我们称这些规则叫封锁协议关系模型的参照完整性规则是:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:1)取空值(F的每个属性值均为空值);2)等于S中某个元组的主码值。本质就是说,外键必须是另一个表的有效值或者是空值。还有,这是数学区,你这好象是数据库的问题实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值。参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必 须为: ? 或者取空值(F的每个属性值均为空值); ? 或者等于S中某个元组的主码值。 3) 用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求
三类计算机系统安全性问题1技术安全类2.管理安全类3.政策法律类
强制存取控制规则包括1 仅当主题的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体。2仅当主体的许可证级别等于客体密级时,该主体才能写相应的客体。3修正规则1)主体的许可证级别 客体的密级主体能写客体2)2用户可为写入的数据对象赋予高于自己的许可证级别的密级
3)一旦数据被写入该用户自己也不能再续该数据对象
第二篇:数据库总结1re
数据:数据库中存储的基本对象,描述事物的符号记录;数据库:长期存储在计算机内有组织可共享的大量数据集合;数据库管理系统:位于用户和操作系统之前的一层数据管理软件(数据定义功能,数据组织存储和管理,数据操纵,数据库的事物管理和运行管理,数据库的建立和维护)数据库系统:有数据库/数据库管理系统(及其开发工具)应用系统/数据库管理员构成; 数据库管理系统提供的功能:(1)数据库恢复(2)并发控制(3)安全性保护(4)完整性保护数据库系统三级模式结构模式:数据库中全体数据的逻辑结构和特征的描述所有用户的公共数据视图;外模式:用户模式使数据库用户能够看见和使用的局部数据的逻辑结构和特征描述;内模式称存储模式是数据物理。结构和存储方式的描述,是数据在数据库内部的表示方式一个数据库只有一个内模式.外模式/模式映象:保证数据的逻辑独立性.模式/内模式映象:保证数据的物理独立性.SQL特点:综合统一,高度非过程化,面向集合的操作方式,以同一种语言结构提供多种使用方式,语言简洁易学易视图实体化又叫物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。物化视图可以查询表,视图和其它的物化视图。通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本,必须用高级复制的功能。当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图.基本表:本身独立存在的表,一个关系对应一个表一个或多个基本表对应一个存储文件.视图:从一个或几个基本表导出的表,本身不独立存储在数据库中是一虚表.差异:基本表中数据发生变化从视图中查出的数据也随之改变.实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值;参照完整性;若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为或者取空值或者等于S中某个元组的主码值.事物:用户定义的一个数据库操作序列,这些操作要么全做要么全不做是一个不可分割的工作单位.事物四个特征:原子性:包括诸多操作要么都做要么都不做;一致性:执行结果必须是使数据从一个一致性状态到另一致性状态;隔离性:执行不能被其他事物干扰;持续性:一个事物一旦提交对数据库数据的改变就应该是永久登记日志文件为什么必须先写日志文件后写数据库先日志后数据库:把对数据的修改写到数据库和把日志记录写到日志文件是不同的操作,有可能发生故障是完成一个,先写数据库修改运行记录没登记则以后无法恢复该修改,如先写日志没改数据库,按日志文件恢复时只不过多执行一次不必要的UNDO操作.事物故障恢复:反向扫描日志文件查找该事物更新操作;对该事物更新操作执行逆操作;继续反向扫描日志文件查找其他更新操作;如此处理直到读到此事物开始标记.系统故障恢复:正向扫描日志文件找出故障前已提交事物将其标记记入重做队列;对撤消列队中各事物进行撤消处理;对重做列队中各事物进行重做处理.并发操作不一致:丢失修改;不可重复读;读"脏"数据.封锁:事物T对某个数据对象如表,记录等操作之前先向系统发生请求,对其加锁. 基本的封锁类型有两种:排
它锁(力锁)和共享锁(S锁).1级封锁协议:对事务T要修改的数据R加X锁直到事务结束为止。2级封锁协议:1级封锁协议加上对T要读取的数据R加S锁。3级封锁协议:1级封锁协议加上对T要读取的数据R加S锁,直到事务结束才释放。封锁对象的大小称为封锁的尺度。在运用封锁方法时对数据对象加锁时需要约定一些规则,例如何时申请封锁、持锁时间、何时释放封锁等。我们称这些规则叫封锁协议关系模型的参照完整性规则是:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:1)取空值(F的每个属性值均为空值);2)等于S中某个元组的主码值。本质就是说,外键必须是另一个表的有效值或者是空值。还有,这是数学区,你这好象是数据库的问题实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值。参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必 须为: ? 或者取空值(F的每个属性值均为空值); ? 或者等于S中某个元组的主码值。 3) 用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求
第三篇:04-张全羚-数据库总结
Sql Server
数
据
库
原
理
期
末
总
结
姓名:张全羚
学号:1304091004
班级:13软件工程(1)班
一、知识点分析(举例)
1、存储过程简介
Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量、条件执行和其他强大的编程功能。
存储过程相对于其他的数据库访问方法有以下的优点:
(1)重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
(2)提高性能。存储过程在创建的时候就进行了编译,将来使用的时候不用再重新编译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。
(3)减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
(4)安全性。参数化的存储过程可以防止SQL注入式的攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
存储过程一共分为了三类:用户定义的存储过程、扩展存储过程以及系统存储过程。
其中,用户定义的存储过程又分为Transaction-SQL和CLR两种类型。 Transaction-SQL 存储过程是指保存的Transaction-SQL语句集合,可以接受和返回用户提供的参数。
CLR存储过程是指对.Net Framework公共语言运行时(CLR)方法的引用,可以接受和返回用户提供的参数。他们在.Net Framework程序集中是作为类的公共静态方法实现的。(本文就不作介绍了)
2、 存储过程的创建
例如:
-- 如果存储过程存在,就删除
IF Object_ID('proc_GetWellProduct') IS NOT NULL
DROP PROCEDURE proc_GetWellProduct
GO
-- 创建储存过程
CREATE PROCEDURE proc_GetWellProduct
AS
......
3、 注释
(1)、-- 单行注释,从这到本行结束为注释,类似C++,c#中//
(2)、/* ? */ 多行注释,类似C++,C#中/* ? */
4、 变量
(1)变量类型:
(int, smallint, tinyint, decimal,float,real, money ,smallmoney, text ,image, char, varchar......)
(2)、语法:
DECLARE +“变量名”+“类型”
例如:
declare @ID int --申明一个名为@ID的变量,类型为int型
5、 变量赋值
例如:
--从数据表中取出第一行数据的ID,赋值给变量@id,然后打印出来
Declare @ID int
Set @ID = (select top(1) categoryID from categories)
Print @ID
注意:赋值时如果是SQl查询语句,整个查询语句都要用括号括起来。
6、 打印
在SQL Server窗口中打印出变量的值
语法:
PRINT 'any ASCII text' | @local_variable | @@FUNCTION | string_expr
7、 比较操作符
? > (greater than).
? < (less than).
? = (equals).
? <= (less than or equal to).
? >= (greater than or equal to).
? != (not equal to).
? <> (not equal to).
? !< (not less than).
? !> (not greater than).
8、 语句块
形式:Begin ... end
将多条语句作为一个块,类似与C++,C#中的{ }
例如:
IF (......)
begin
......
End
9、 While(@@fetch_status = 0)循环
DECLARE @strLoginID VARCHAR(16)
BEGIN
declare db cursor for
SELECT LoginID FROM dbo.s_Users WHERE len(UnitCoding) in(9,12)
END
open db
fetch next from db into @strLoginID
while @@fetch_status = 0
BEGIN
insert into s_P_User
select @strLoginID,LevelID from s_P_User where LoginID = 'aa'
fetch next from db into @strLoginID
END
close db
deallocate db
@@fetch_status = 0?
0: FETCH 语句成功。
-1: FETCH 语句失败或行不在结果集中。
-2: 提取的行不存在。
10、 执行其他存储过程 EXEC
EXEC 存储过程名 参数1,参数2...
例如
EXEC proc_GetWellProduct 1,'20xx-07-01
二、心得体会
在大二的上学期刚学了数据库这门课,对这门课的第一印象是书本蛮厚的,感觉学起来应该会很难很累。在学习这门课的过程中,在对数据库的了解过程中,慢慢对数据库有了感观。数据库这一词并不是很难想象,并不是像外人看来很神奇。作为计算机专业的学生,这样的专业术语或者专业知识是最基本的。 学习的时候没有想象中的那么难,只要上课能听懂就基本还可以。但是问题还是出在书本有点厚,有的时候上课的内容都要找很久才能找到,甚至有的时候老师讲的知识书本上是找不到的,是另外补充而且是相当重要的内容。有的时候开小差,没有听到老师讲的知识点,这就导致了以后的学习无法顺利进行,使得学习起来十分困难。所以在数据库这门课的学习中,上课一定要听牢,就像老师说的那样,这样的专业课如果想凭考试前几天突击是行不通的,必须是日积月累的知识才能取得好成绩。
通过对数据库的学习,我也明白了各行各业都离不开数据库,就算是一个小型的超市也离不开它。可见数据库这门课的广泛性,如果能够认真学好它将来必有成就。我就是抱着这种信念去学习数据库的。第一次接触数据库,第一次接触SQL语言,虽然陌生,但是可以让我从头开始学,就算没有基础的人也可以学得很好。刚开始练习SQL语言的时候,并不是很难,基本上都是按照老师的步骤来做,还很有成就感。后来学了单表查询和连接查询后,就慢慢发现越学越困难了,每个题目都要思考很久,并且每个题目基本上不止一个答案,所以必须找出最优的答案。后面的删除、插入、修改这些题目都变化蛮大的,书本上的例题根本无法满足我们,好在老师给我们提供了大量的课件,通过这些PPT,我们可以
巩固课内的知识,还可以学习内容相关的知识,更好地完成老师布置的作业。
除了老师布置的一些基本作业外,还有一份大作业。在做大作业的时候经常是前面改改,后面改改,因为一些数据不能很好地对应起来,经常会遗忘一些,所以出现了这样的情况。一个完整的数据库系统也就是在这样修修改改的状态下完成的,也给了我很大的反思。第一、一个数据库的完成一定要考虑各方面的因素,包括现实因素。第二、在完成这类作业时,修修改改是很正常的,不要因此而厌倦。第三、一个完整的数据库一定不能出现错误,否则会在现实生活中带来不必要的麻烦。 通过本学期数据库的学习及大作业的完成,很有去作项目的冲动,但深知自己的能力水平有限,还需要更多的学习。