当前位置: 首页 > news >正文

二手车网站建设网络编程技术基础

二手车网站建设,网络编程技术基础,企业品牌网站建设首选公司,学校网站建设申请报告数据库原理基础知识点大全数据库原理及应用1、数据库系统概述1.1 基本概念1.2 数据模型1.3 数据库系统的结构2、实体 -- 联系模型2.1 基本概念2.2 实体-联系图2.3 弱实体集3、关系数据模型3.1 关系数据库的结构3.2 从ER模型到关系模型3.3 关系操作、完整性约束、关系代数4、关系… 数据库原理基础知识点大全数据库原理及应用1、数据库系统概述1.1 基本概念1.2 数据模型1.3 数据库系统的结构2、实体 -- 联系模型2.1 基本概念2.2 实体-联系图2.3 弱实体集3、关系数据模型3.1 关系数据库的结构3.2 从ER模型到关系模型3.3 关系操作、完整性约束、关系代数4、关系数据库的设计理论4.1 函数依赖4.2 关系模式4.3 在设计中使用规范化理论5、数据库设计5.1 数据库设计概述5.2 需求分析5.3 概念结构设计5.4 逻辑结构设计5.5 物理结构设计5.6 数据库的实施和维护6、 关系数据库标准语言6.1 SQL概述6.2 SQL的数据类型6.3 模式、表、索引的定义和删除6.4 数据操作6.5 视图7、数据库的完整性7.1 完整性概述7.2 实体完整性7.3 参照完整性7.4 用户自定义完整性7.5 触发器8、数据库编程与访问技术8.1 T-SQL8.2 存储过程8.3 数据库访问技术9、数据库的安全性9.1 概述9.2 用户识别与标识9.3 存取控制9.4 自主存取控制9.5 强制存取控制9.6 视图机制9.7 其它措施10、事务于并发控制10.1 事务与并发控制10.2 封锁10.3 并发调度的可串行化10.4 两阶段协议10.5 多粒度封锁11、数据库的恢复技术1.1 概述1.2 存储器结构1.3 恢复技术数据库原理及应用 1、数据库系统概述 1.1 基本概念 数据data 数据库中存储的基本对象描述事物的符号记录 数据库DB 长期存储在计算机内有组织的可共享的大量数据的集合 数据管理数据查询、(数据更新)数据插入、数据删除、数据修改 数据库管理系统 位于用户和计算机操作系统之间的一层数据管理软件主要功能 数据定义数据操作事务管理和运行管理数据存储和查询处理建立和维护功能 数据库系统DBS 采用数据库技术的计算机系统称为DBS组成数据库DB、数据库管理系统DBMS、数据库管理员DBA、应用程序优点 数据整体结构化 – 数据库系统与文件系统的本质区别数据的共享性高、冗余度低、易扩充数据独立性高 物理独立性数据库数据的存储结构与存取方法与外部应用程序独立逻辑独立性局部逻辑数据结构与全局逻辑数据结构之间的独立性 数据统一由DBMS控制 1.2 数据模型 数据模型是一种形式机制用于数据建模描述数据、数据之间的联系、数据的语义、数据上的操作和数据的完整性约束条件 概念模型(信息模型)实体-联系(E-R)模型是一种广泛使用的概念模型 数据模型的三要素 数据结构数据结构描述数据库中的对象和对象之间的联系是对系统静态特性的描述数据操作数据操作定义数据库中各种数据对象的实例上允许执行的操作和操作规则(查询和更新)是对系统动态特性的描述数据完整性约束数据的完整性约束条件是一组规则用以限定符合数据模型的数据库状态和状态的变化保证数据的正确、有效和相容 目前最流行的数据模型是关系模型 关系的每个属性必须取原子值 1.3 数据库系统的结构 模式对全体数据逻辑结构和特征的描述对型的描述不涉及具体值实例模式的一个具体值 三级模式 **外模式**外模式也称子模式或用户模式。外模式介于模式与应用之间是特定数据库用户的数据视图是与某一具体应用相关的数据局部逻辑结构的描述一个数据库有多个外模式模式模式也称逻辑模式。模式是数据库中全体数据的总体逻辑结构描述是所有用户的公共数据视图一个数据库只有一个模式**内模式**内模式也称存储模式或物理模式。内模式是数据物理结构和存储方式的描述定义数据在数据库内部的表示方式一个数据库只有一个内模式 二级映像 外模式–模式映像 保证数据的逻辑独立性 模式–内模式映像 保证数据的物理独立性唯一的 扩展 数据库系统提供三种语言:DDL用于定义数据库模式DML用于表达数据库的查询和更新而 DCL用于定义用户对数据对象的访问权限。这三种语言不是独立的而是集成在一起形成完整的数据库语言。数据管理员负责管理数据库实施数据的集中控制。 2、实体 – 联系模型 2.1 基本概念 实体客观存在并且可以相互区分的任何事物可以是实际对象也可以是抽象模型 实体集具有相同属性的实体的集合 码 超码能够唯一确定实体集中每个实体的属性集(包含无关紧要属性的码)候选码真子集都不是超码的极小超码**(”最小“超码)**主码用来区分同一实体集中不同实体的候选码**(从候选码中选即可)**(最多只能有一个的码)码表示主码或候选码 对于学生实体集中{学号}和{学号姓名}都是超码{学号}是极小超码因为它的真子集是空集不是超码如果不允许重名的话{姓名}也是极小超码{学号}{姓名}都是候选码可以选择{学号}作为主码 属性 简单属性不能划分成更小部分的属性复合属性可以划分成更小部分的属性(具有层次关系)单值属性是特定的实体在该属性上只能取单个值的属性多值属性是特定的实体在该属性上只能取多个值的属性(具有对等关系)基本属性不能通过其他属性的值来推导出来即它的值必须存储在系统中的属性派生属性派生属性的值可以从其他相关属性或实体计算得到因此派生属性又称计算属性 E-R图 2.2 实体-联系图 联系是多个实体之间的相互联系 联系集是相同类型联系的集合 联系的类型 一对一联系一对多(多对一)联系多对多联系 2.3 弱实体集 如果一个实体集的任何属性集都不足以形成该实体集的码则称该实体集为弱实体集存在码的实体集称为强实体集 标识实体集 弱实体集必须与另一个称作标识实体集或属主实体集的强实体集相关联才有意义标识性联系 标识实体集与弱实体集相关联的联系称为标识性联系表示法双线菱形分辨符 如果一个属性可以惟一确定存在依赖于同一个强实体的弱实体则称该属性集为弱实体集的分辨符表示法虚下划线弱实体的码 弱实体集的标识实体集的码和该弱实体集的分辨符共同形成弱实体集的码部分码 弱实体集的分辨符又称弱实体集的部分码可以与多个标识实体集关联有的弱实体集还可以与多个标识实体集关联该弱实体集的码由诸标识实体集的码和弱实体集的分辨符的组合另一种处理弱实体集的方法把它作为其标识实体集的一个多值复合属性例如可以把家属作为职工的一个多值属性不好的设计: 方法将强实体集的码添加到弱实体集的属性集中将弱实体集转化成强实体集 3、关系数据模型 3.1 关系数据库的结构 关系模型只包含单一的数据结构 – 关系 域一个具有相同数据类型的值的集合 – 顺序的取值范围 基数一个域允许的不同取值个数 笛卡尔积域上面的一种集合运算 – 得到每个域中元素的所有可能的组合 – 基数相乘 关系笛卡尔积的子集叫做其在域上的集合(可以用二维表和集合来表示关系) 除了语义约束外对关系的限制主要有两点 第一在关系数据库中只考虑有限关系第二关系的每个属性都必须是原子的 关系模式概念对应于程序设计语言中的类型概念是对关系型的描述可以表示为R(U, D, DOM, F) – 关系模式名(关系模式的诸属性属性对应的域U到D的映射属性间的数据依赖集定义) 二维表表示关系时列的次序不重要 外码是另外一个表的主码 3.2 从ER模型到关系模型 属性处理 派生属性的处理:转换时我们忽略派生属性复合属性的处理:忽略复合属性本身而直接考虑它的成分属性多值属性的处理:为每个多值属性M创建一个关系Rm 实体集处理 强实体集处理实体集名可以作为关系名,实体集的全部属性构成关系的属性弱实体集处理弱实体集名可以作为关系名,弱实体集存在依赖的标识实体集的主码和弱实体集的全部属性构成关系的属性 联系集处理 方法一联系转换成关系模式 联系是一对一的则每个实体集的码都是关系的码联系是**一对多(多对一)的则“多端”**实体集的码组合成关系的码联系是多对多的则参与联系的所有实体集的码组合成关系的码 方法二合并 联系是一对一的则可以和任意一端实体集转换得到的关系模式合并联系是一对多的则和多端实体集转换得到的关系模式合并联系是多对多的则该联系集转换成独立的关系模式 3.3 关系操作、完整性约束、关系代数 关系语言的分类 关系代数、关系演算、SQL语言 完整性分类 实体完整性关系R的所有元组在主码上的值必须惟一并且在主码的任何属性上都不能取空值参照完整性如果属性集FK是关系R的外码(一个关系中的一个属性是另外一个关系中的主码则这个属性为外码)它参照关系S的主码Ks ,则R的任何元组在FK上的值等于S的某个元组在主码Ks上的值或者为空值对外码取值限制用户自定义完整性反映特定的数据库所涉及的数据必须满足的语义约束条件。由于不存在一般性规则这些约束条件必须由用户根据实际问题的语义指定对候选码取值限制 基本运算选择(一元运算符)、投影(一元运算符)、并、差、笛卡尔积 附加运算交、除、连接、自然连接必须有同名属性才能进行 4、关系数据库的设计理论 不好的关系模式冗余、插入异常、更新异常、删除异常 4.1 函数依赖 数据依赖是语义概念,是关于关系诸属性值之间内在相关性的陈述,它规定了关系模式的合法关系实例所必须满足的条件 平凡的函数依赖(X包含Y)、非平凡的函数依赖 4.2 关系模式 1NF要求关系的所有属性值都是原子的是对关系模式的基本要求不满足1NF的数据模式不能称为关系模式即所有关系模式都是1NF 2NF对于任意的非平凡函数依赖X→A∈F :A是主属性X不是R的任意码的真子集 3NF对于任意的非平凡函数依赖X→A∈FA是主属性X是R的码 BCNF 限制R中成立的所有函数依赖要么是平凡的要么是对码的依赖。对于任何关系模式R以下两种两数依赖必定成立:平凡的函数依赖任意属性对超码的依赖 主属性一个属性只要在任何一个候选码中出现过这个属性就是主属性。 非主属性一个属性没有在任何候选码中出现过这个属性就是非主属性。 部分函数依赖设有关系R(A,B,C)若AB→CA→C则C部分函数依赖于AB。 完全函数依赖设有关系R(A,B,C)若AB→CA!→CB!→C则C完全函数依赖于AB。 传递函数依赖设有关系R(A,B,C)若A→BB→C则C传递函数依赖于A。 1NF关系中的每个属性都不可再分。 2NF在1NF的基础之上消除了非主属性对于候选码的部分函数依赖。 3NF在2NF的基础之上消除了非主属性对于候选码的传递函数依赖。 **BCNF**在3NF的基础之上消除主属性对于候选码的部分函数依赖与传递函数依赖。 4.3 在设计中使用规范化理论 规范化的总体目标是:消除某些冗余避免存储异常产生一种直观、易于扩充、可以很好描述现实世界并且可以简单地验证某些语义约束的设计ER模型与规范化完全规范化导致许多逻辑上相互分离的关系;涉及多个关系的查询需要求多个关系的自然连接而自然连接是一种非常耗时的运算从而会影响查询性能。解决方案:引入“冗余”的关系模式即逆规范(denormalization)(操作时间冲突):逆规范化只对某些查询有利而对另一些查询不利或对更新不利。解决方案:物化视图( materialized view 对应SQL SERVER索引视图) 5、数据库设计 数据库设计步骤需求分析 → 概念设计 → 逻辑结构设计 → 物理结构设计 → 数据库试运行和维护阶段 5.1 数据库设计概述 数据库设计就是根据用户应用需求和数据库的支撑环境包括DBMS、操作系统和硬件)设计出数据模式包括外模式、模式和内模式)、建立数据库和典型的应用程序﹐使之能够有效地存储数据满足各种用户的信息要求和处理要求。数据库设计的成果有数据模式以数据库为基础的典型应用程序数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效的运行环境即存取效率高、存储空间的利用率高数据库系统运行管理效率高数据库设计的特点反复性、试探性、多阶段性、多技术性设计之前的工作 – 可行性分析 5.2 需求分析 调查应用领域对应用领域中各种应用的信息要求、处理要求、安全性和完整性要求进行详细分析形成需求分析说明书数据字典是需求分析阶段所取得的主要成果之一 – 为设计人员提供了关于数据详细描述的信息数据项是数据的基本单元或最小单位数据结构是若干数据项组成的有意义的集合它反映了数据之间组合关系数据流是数据在系统中的传输路径,它由一个处理传到另一个处理处理过程也称加工过程这里指数据库应用程序模块 5.3 概念结构设计 逐步扩张(滚雪球)和混合策略(自顶向下和自底向上混合)数据抽象 – 将具有某些共同特性和行为的对象抽象为一个概念分E-R图集成合并(消除冲突 [属性冲突、命名冲突、结构冲突])和优化(消除冗余)概念结构设计阶段的成果是全局ER图 5.4 逻辑结构设计 关系的分解 水平分解把关系的元组分为若干子集对每个子集定义一个子关系以提高系统的效率垂直分解把关系模式R的属性分解为若干子集合形成多个子关系模式从而将对应的关系也分解成多个子关系优点是可以提高某些查询的效率 逻辑结构设计阶段的成果是关系模式对关系模式进行优化外模式设计在此阶段设计 5.5 物理结构设计 数据库在物理设备上的存储结构和存取方法就称为数据库的物理结构 数据库的物理结构设计∶就是为一个给定数据库的逻辑结构选取一个最适合应用环境的物理结构和存取方法的过程目的是为了提高数据库的访问速度并有效地利用存储空间 常用索引方法 – 聚簇为了提高某个属性(或属性组)的查询速度把这个或这些属性(称为取簇码上具有相同值的元组集中存放在同一个物理块或若干个相邻的物理块或柱面内 对已有关系建立聚簇将导致关系中元组物理存储位置的变化并使此关系上原有的索引无效必须重建 确定数据库的物理结构主要指 确定数据的存放位置和存储结构包括确定关系、索引、聚簇、日志、备份等存储安排和存储结构确定系统配置 确定数据的存放位置和存储结构要综合考虑 存取时间 存储空间利用率 维护代价 为了提高系统性能应该根据应用情况将数据的易变部分与稳定部分经常存取部分和存取频率较低部分分开存放 DBMS产品一般都提供了一些系统配置变量、存储分配参数、供设计人员和DBA对数据库进行物理优化 5.6 数据库的实施和维护 建立数据库模式加载数据试运行将检验数据库系统的设计是否达到设计目标、能否满足实际需要确认系统能够满足实际需要之后﹐系统才能正式投入使用进入漫长的运行维护阶段 6、 关系数据库标准语言 6.1 SQL概述 SQL的数据定义语言(DDL)、SQL的数据操纵语言(DML)、SQL的数据控制语言(DCL)SQL的特点集多种数据库语言于一体、高度非过程化(大大减轻了用户负担/有利于提高数据的独立性)、面向集合的操作方式、一种语法两种使用方式、功能强大语言简洁 6.2 SQL的数据类型 CHAR(n):定长字符串长度n由用户指定·省略n时长度为1,CHAR的全称是CHARACTERVARCHAR(n):变长字符串最大长度n由用户指定, VARCHAR的全称是CHARACTER VARYINGBIT(n):定长二进位串长度n由用户指定。省略n时长度为1BIT VARYING(n):变长二进位串最大长度n由用户指定INT:整数其值域依赖于具体实现。INT的全称是INTEGERSMALLINT :小整数其值域依赖于具体实现但小于INT的值域DEC(p, d): p位有效数字的定点数其中小数点右边占d位。DEC的全称是DECIMALFLOAT(n):精度至少为n位数字的浮点数其值域依赖于实现REAL:实数精度依赖于实现DOUBLE PRECISION:双精度实数精度依赖于实现但精度比REAL高DATE:日期包括年﹑月﹑日格式为YYYY-MM-DDTIME:时间包括时﹑分﹑秒,格式为HH:MM:SS ° TIME(n)可以表示比秒更小的单位秒后取n位TIMESTAMP:时间戳是DATE 和 TIME的结合INTERVAL:时间间隔·SQL允许对DATE 、TIME和INTERVAL类型的值进行计算SQL提供ETRACT(field FROM Var) , Var可以是DATE ·TIME 或TIMESTAMP数据类型的变 量,ETRACT函数的功能是从 Var 中提取字段field 6.3 模式、表、索引的定义和删除 模式 目录(catlog) – 模式(schema) – 对象 符号说明 X 表示X是需要进一步定义或说明语言成分[X]表示X可以缺省或出现一次{}表示X可以出现一次X |Y表示或者X出现或者Y出现但二者不能同时出现 模式的定义 CREATE SCHEMA模式名[模式元素….]CREATE SCHEMA[模式名]AUTHORIZATION用户名 – 授权 模式删除DROP SCHEMA模式名 CASCADE|RESTRICT CASCADE则删除模式名指定模式得同时并删除该模式中的所有数据库对象(基本表﹑视图﹑断言等)RESTRICT则仅当模式名指定的模式不包含任何数据库对象时才删除指定的模式否则拒绝删除 表 表的定义CREATE TABLE表名 列级约束的定义[CONSTRAINT约束名]列约束 NOT NULLPRIMARY KEYUNIQUECHECK条件 表级约束的定义[CONSTRAINT约束名]表约束 PRIMARYUNIQUECHECKFOREIGN KEY 修改基本表ALTER TABLE表名 [ADD[COLUMN]列名数据类型[列级约束定义]][[ALTER[COLUMN]列名{SET DEFAULT缺省值| DROP DEFAULT}][DROP [ COLUMN ]列名{CASCADE|RESTRICT}][[ADD表约束定义][DROP CONSTRAINT约束名{CASCADE|RESTRICTH] 删除基本表DROP TABLE表名{CASCADE|RESTRICT} 索引 CREATE [UNIQUE] [CLUSTER] INDEX索引名ON表名(列名[次序]{,列名[次序]}) 索引名为建立的索引命名表名是要建立索引的基本表的名字次序可以是 ASC (升序)和 DESC (降序)缺省值为ASC UNIQUE表示该索引为惟一性索引UNIQUE缺省时创建的索引为非唯一性索引CLUSTER表示建立的索引是聚簇索引缺省时为非聚簇索引创建索引不仅创建索引结构而且将索引的定义存储在数据字典中索引删除DROP INDEX索引名 6.4 数据操作 SELECT SELECT[ALL | DISTINCT]选择序列FROM表引用,…,表引用[WHERE查询条件][GROUP BY分组列{分组列}[HAVING分组选择条件][ORDER BY排序列[ASC | DESC]{,排序列[ASC lDESC} SELECT后可以使用集合量词ALL或DISTINCT缺省时为ALL;ALL不删除结果的重复行而DISTINCT将删除结果中的重复行 BETWEEN表达式值表达式[NOT] BETWEEN下界AND上界 IN表达式 值表达式[NOT]IN(值表达式列表)元组 |[NOT] IN子查询 LIKE表达式[NOT] LIKE匹配串[ESCAPE‘换码字符] NULL表达式值表达式子查询IS [ NOT ] NULL 排序ORDER BY排序列[ASC | DESC] {,排序列[ASCDESC]} 聚集函数 分组语句group byGROUP BY分组列{分组列}[HAVING分组选择条件] 对于带GROUP BY子句的SELECT语句,SELECT子句中的结果列必须是GROUPBY子句中的分组列或聚集函数分组语句细化了聚集函数作用的作用对象 连接查询、嵌套查询、子查询、集合查询 数据更新 插入INSERRT INTO T[] VALUES() / INSERT INTO T[]删除DELETE FROM T [ WHERE删除条件]修改UPDATE T SET A1 e1, …,Ak ek[WHERE修改条件] 例 1.在产品表(Products)中找出库存大于50的产品的所有信息按产品编号升序排序。 SELECT * FROM Products WHERE UnitsInStock50 ORDER BY ProductID 2.查询顾客表(Customers)中所有不重复的所在城市并升序排序。 SELECT DISTINCT City FROM Customers ORDER BY City 3.在顾客表(Customers)中找出所在城市为London、Madrid、Torino和Paris的顾客编号及电话。 SELECT CustomerID,Phone FROM Customers WHERE City IN (London,Madrid,Torino,Paris) 4.在产品表(Products)中找出单位数量中有box的产品名和产品编号。 SELECT ProductName,ProductID FROM Products WHERE QuantityPerUnit LIKE %box% 5.在顾客表(Customers)中找出公司名的首字母为F第5位为k的顾客编号和联系人名。 SELECT CustomerID,ContactName FROM Customers WHERE CompanyName LIKE F___k% 6.统计在’1997-10-1’ 到’1997-10-7’期间订单中每个员工的订单数并按订单数降序排序。 SELECT EmployeeID员工编号,COUNT(ORDERID)订单数 FROM Orders WHERE OrderDate BETWEEN 1997-10-1ANd1997-10-7 GROUP BY EmployeeID ORDER BY COUNT(OrderID) DESC 7.请查询平均价格在30元及以上的产品类型。 SELECT CategoryID,AVG(UnitPrice)平均价格 FROM Products GROUP BY CategoryID Having AVG(UnitPrice)30 8.查询’1997-10-7’当天所售商品的库存情况包括商品编号、名称、库存。 SELECT Products.ProductID,ProductName,UnitsInStock FROM Products,Orders,[Order Details] WHERE Products.ProductID[Order Details].ProductID AND [Order Details].OrderIDOrders.OrderID AND OrderDate1997-10-7 6.5 视图 定义CREATE VIEW视图名[(列名…,列名)]AS查询表达式[WITH CHECK OPTION] 删除DROP VIEW视图名[ CASCADE |RESTRICT ] 视图的优点 视图能够简化用户的操作 视图使用户能以多种角度看待同一数据 视图重构数据库提供了一定程度的逻辑独立性 视图能够对机密数据提供安全保护 视图能够更清晰的表达 7、数据库的完整性 7.1 完整性概述 数据库的完整性是指数据库中数据是正确的(数据库的数据是符合语义约束的数据)、一致的(数据之间的逻辑关系是正确的)和相容的(同一个事实的两个数据应当是一致的) 约束的分类(就被约束的数据对象而言) 类型/域约束属性约束关系约束数据库约束 约束的分类(从约束的状态的角度) 静态约束数据库正确状态动态约束数据库状态转移 DBMS必须提供完整性控制的机制有定义完整性约束条件的方法、完整性检查机制、违约处理 可以实现级联操作的短语是CASCADE 7.2 实体完整性 实体完整性要求: 每个关系应该有一个主码每个元组的主码值惟一确定该元组主码的任何属性都不能取空值 违反的操作 插入新元祖、修改元祖的主码、DBMS自动检查、SQL支持实体完整性 7.3 参照完整性 参照完整性要求: 参照关系R的任何元组在其外码FKR上的值或者等于被参照关系S的某个元组在主码K上的值或者为空值 违法的操作向参照关系R插入、修改参照关系R外码上的值、删除(修改)被参照关系S的元组 向数据库表中插入数据违法参照完整性规则时系统所做的操作是拒绝 7.4 用户自定义完整性 用户自定义的完整性约束用户定义的完整性即是针对某个特定关系数据库的约束条件它反映某一具体应用所涉及的数据必须满足的语义要求用户定义的完整性可以是 属性级关系级数据库级 域约束每个属性都必须在一个值域上取值 属性约束属性的取值必须来自其定义的值域 关系约束说明关系的合法取值常常涉及同一关系的多个属性和或多个元祖 断言与数据库约束断言是一种命名约束表达了数据库状态必须满足的逻辑条件 7.5 触发器 触发器( trigger是特殊类型的存储过程当某个事件发生时它自动执行按触发事件分DELETE触发器、INSERT触发器、UPDATE触发器定义触发器操作的SQL语句CREATE TRIGGER CREATE TRIGGER register AFTER UPDATE ON student FOR EACH ROW BEGINUPDATE driver_school SET total_number (total_number 1) WHERE driver_school.id student.school_id; END8、数据库编程与访问技术 8.1 T-SQL 变量局部变量–变量名前加一个全局变量–变量名前加两个变量的声明与赋值var运算符算术运算符、比较运算符、逻辑运算符、位运算符、字符串连接运算符–‘’函数流程控制语句 8.2 存储过程 存储过程是为了完成特定功能汇集而成的命名了的一组SQL语句集合 编译、优化后存储可多次执行 优点将业务操作封装、实现一定程度的安全性保护、适合复杂的统计和查询操作 CREATE PROCEDURE procedureName --procedureName存储过程名称[(parameterNamedatatype[defaultValue][OUTPUT]--parameterName 参数名[,parameterNamedatatype[defaultValue][OUTPUT]])]--OUTPUT输出参数 AsSQL-Statements8.3 数据库访问技术 ODBC一组对数据库访问的标准APIDAO与RDOJDBC访问步骤 导入包加载JDBC驱动程序打开一个数据库连接执行一个查询从结果集中提取数据清理环境 9、数据库的安全性 9.1 概述 数据库的安全性是指保护数据库防止因用户非法使用数据库造成数据泄露、更改或破坏恶意访问的形式未经授权读取、修改、删除数据安全性保护手段用户标识与鉴别、强制存取控制、审计和加密、自主存取和控制、视图 9.2 用户识别与标识 用户标识与鉴别是系统提供的最外层安全保护措施 其基本方法是:系统提供一定的方式让用户标识自己的名字或身份;系统内部记录着所有合法用户的标识;每次用户要求进入系统(与数据库连接)时由系统核对用户提供的身份标识;通过鉴别的合法用户才能进入系统建立数据库连接 9.3 存取控制 存取控制是数据库系统的主要安全措施自主存取控制强制存取控制 9.4 自主存取控制 存取控制的任务 授权DCL中提供了相应的授权语句允许用户自主地定义存取权限并将用户的授权登记在数据字典中合法权限检查当用户发出存取数据库的操作请求后DBMS将查找数据字典根据用户权限进行合法权限的检查;如果用户的操作请求超出了自身的权限系统将拒绝执行此操作2 权限的授予与回收 GRANT权限列表ON对象名TO用户/角色列表[WITH GTANT OPTION]REVOKE权限列表ON对象名FROM用户/角色列表{CASCADE|RESTRICT} 9.5 强制存取控制 自主存取控制不能阻止副本的非授权传播 强制存取控制( Mandatory Access Control 简称MAC是系统为保证更高程度的安全性所采取的强制存取检查手段 在MAC中,DBMS所管理的全部实体被分为主体和客体两大类 主体是系统中的活动实体可以是DBMS管理的实际用户或代表用户的各个进程客体是系统中的被动实体是受主体操纵的对象·如文件、基本表、索引、视图等 敏感度标记绝密、机密、秘密、公开 主体的敏感度标记称为许可证级别 Clearance Level)客体的敏感度标记称为密级 Classification Level ) 仅当主体的许可证级别大于或等于客体的密级时该主体才能读取相应的客体仅当主体的许可证级别小于或等于客体的密级时该主体才能写相应的客体 9.6 视图机制 视图是定义外模式,为用户提供个性化数据库模型的一种手段利用视图实现安全保护的基本思想是: 首先通过定义视图屏蔽掉一部分需要对某些用户保密的数据然后在视图上定义存取权限将对视图的访问权授予这些用户而不允许他们直接访问定义视图的关系(基本表) 9.7 其它措施 审计启用一个专门的审计日志 Audit Log自动记录所有用户对数据库的更新操作(插入、删除和修改)数据加密的基本思想:按照一定的加密算法将原始数据(明文)变换成不可直接识别的格式(密文)使得不知道解密方法的人即使获得数据也不知道数据的真实内容从而达到保护数据的目的 10、事务于并发控制 10.1 事务与并发控制 事务 事务是用户定义的一个数据库的操作序列这些操作要么全做要么全不做是一个不可分割的工作单元事务是并发控制与调度的基本单位也是数据库恢复的基本单位事务的特点(ACID)原子性、一致性、隔离性、持久性事务状态 活动状态初始状态事务执行时处于该状态部分提交状态最后一条语句被执行后的状态失败状态正常的执行不能持续后的状态中止状态事务回滚并且数据库已被恢复到事务开始执行前的状态 重启事务废除事务 提交状态成功完成后的状态 SQL对事务的支持COMMIT WORK–提交当前事务ROLLBACK WORD–中止当前事务SET TRANSACTION–设置事务的特性这里级别从低到高依次为 READ UNCOMMITED读未提交的修改只能在只读状态下使用READ COMMITED读提交的修改REPEATABLE READ可重复读SERIALIZABLE可串行化 隔离级别越高(低)可能出现的问题越少(多)系统并发度越低高) 并发控制 为了防止数据库的不一致性对多个运行的事务需要并发控制保证事务的一致性、隔离性相对于串行执行并发执行优点有提高吞吐量和资源利用率、减少等待时间缺点有丢失修改、读脏数据、不可重复读 10.2 封锁 并发控制的主要技术有封锁、时间戳、乐观控制法、多版本并发控制所谓封锁就是事务T在对某个数据对象操作之前先向系统发出加锁请求加锁后事务T就对该数据对象有了一定的控制权在事务T释放它的锁之前其它事务不能更新该数据对象基本锁类型共享锁S(读锁可读不可写)和排他锁X(写锁可读可写) 封锁协议 一级封锁协议 防止丢失修改二级封锁协议 防止读“脏”数据三级封锁协议 进一步保证可重复读 活锁与死锁活锁又称饥饿是某个事务因等待锁而处于无限期等待状态(解决–先来先服务)死锁是两个或两个以上的事务之间的循环等待现象(解决–一次封锁法、顺序封锁法) 死锁的检测与解除超时法和等待图法 解除死锁选择一个或多个处于死锁状态的事务将其撤销并释放这些事务持有的所有的锁从而打破了循环等待条件解除死锁使得其他事务能够继续运行。当然,被撤消的事务对数据库的更新必须恢复(回滚)并且要在稍后需要重新运行 10.3 并发调度的可串行化 并发调度正确性准则一组事务的一个并发调度S是正确的当且仅当调度S的执行结果与某一个串行调度的执行结果相同。此时我们称并发调度S是可串行化的 10.4 两阶段协议 两段锁协议是最常用的一种封锁协议、理论上已经证明使用该协议可保证并发调度串行化为了避免级联回滚产生了两种改进的两阶段封锁协议严格两阶段封锁协议、强两阶段封锁协议 10.5 多粒度封锁 系统能够同时支持多种封锁粒度供不同的事务选择的封锁方法称之为多粒度封锁选择封锁粒度时应该同时考虑封锁开销和并发度两个因素 封锁的粒度越大数据库所能封锁的数据单元就越少并发度就越小系统开销就越小封锁的粒度越小并发度就高系统开销就越大 11、数据库的恢复技术 1.1 概述 数据库的恢复机制就是负责将数据库恢复到故障发生前的某一个一致状态并将崩溃后的数据库不能使用的时间减少到最小故障的类型 事务故障事务程序的逻辑错误系统错误系统故障介质故障磁盘损坏导致的故障 故障恢复技术的基本思想在系统正常时建立冗余数据通过登记日志、数据转储保证有足够的信息可用于故障恢复故障发生后采取措施将数据库内容恢复到某个一致性状态保证事务原子性和持久性 1.2 存储器结构 存储器类型 易失性存储器内存、高速缓存非易失性存储器磁盘、磁带稳定存储器理想的存储器 采用冗余独立磁盘阵列可以保证单个磁盘的故障不会导致数据丢失 数据访问通过input和output将块在主存和磁盘之间移动 1.3 恢复技术 基于日志的恢复技术 日志是日志记录的序列记录了数据库中所有的更新活动日志记录的格式事务标识符、操作类型、操作对象、旧值、新值日志登记的原则日志记录必须严格按并发事务执行的时间次序登记必须先记日志后写数据库redo(正序)和undo(逆序)操作延迟更新指的是将事务对数据库的更新推迟到事务提交之后即时更新技术允许事务在活跃状态时就将更新输出到数据库中系统故障发生哪些事务需要重做事务需要回滚 什么时候重做——系统故障发生之前事务A已经提交事务A需要重做什么时候回滚——系统故障发生时事务B已经开始但未提交而且没有回滚什么时候不做处理——系统发生故障前已经回滚PS:注意检查点隔断问题) 基于检查点的恢复技术 提高系统故障恢复效率的基本方法是使用检查点技术 在建立检查点时不允许事务执行任何更新动作如写缓冲块或写日志记录建立检查点之后所有在检查点前发生的更新都已经输出到数据库中尚未完成的事务都登记在检查点记录中这样发生系统故障时只需要从最近的检查点记录开始扫描日志 对于事务故障用处不大对于系统故障能提高效率 缓冲技术 日志缓冲一个日志记录通常远小于稳定存储器的块。为了提高I/O效率日志记录在主存中被缓冲而不是直接输出到稳定存储器当缓冲区被日志记录装满或者执行日志强制输出时日志记录才被输出到稳定存储器日志缓冲减少了将日志输出到稳定存储器的开销但是也带来了风险:一旦发生系统发生故障缓冲区中的日志记录将丢失数据库缓冲数据库存储在非易失性存储器中在需要时再将相应的数据块调入主存存在闩锁 转储 转储是指将整个或部分数据库复制到磁带或另一个磁盘上产生数据库后备副本的过程后备副本可以脱机保存供介质故障恢复时使用因此转储又称归档)一旦数据库遭到破坏就可以将后备副本重新装入将数据库恢复到转储时的状态分为静态转储/动态转储或者海量转储/增量转储 其他恢复技术 影子分页技术数据库镜像
http://www.w-s-a.com/news/632961/

相关文章:

  • 小程序怎么做优惠券网站合肥建站网站平台
  • 民制作网站价格株洲企业seo优化
  • 网站建设 岗位职责网站建设百度索引
  • 网站建设的内容下拉网站导航用ps怎么做
  • 怎样做p2p网站海口免费自助建站模板
  • 给企业建设网站的流程图wordpress 添加子菜单
  • 企业网站带新闻发布功能的建站皋兰县建设局网站
  • 国内外做gif的网站wordpress数据库教程
  • 成都建站平台自己做一个网站需要多少钱
  • 景区旅游网站平台建设公司企业网站源码
  • 免费高清网站推荐喂来苏州网络科技有限公司
  • php做的大型网站有哪些备案博客域名做视频网站会怎么样
  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做