




已阅读5页,还剩110页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
同学们 上午好 任课老师 白玲 交通运输专业 管理信息系统 第一节数据处理第二节数据组织第三节数据库技术第四节计算机网络 第三章管理信息系统的技术基础 2 第三节数据库技术 一 数据库系统的产生二 数据库系统的构成三 数据模型四 关系的规范化五 数据库操作六 数据库保护 3 数据库操作主要有基本表的建立与删除 数据查询及数据更新等 一般使用关系数据库标准语言 结构化查询语言SQL StructuredQueryLanguage 来完成上述操作 如今 无论是像Oracle Sybase Informix SQLServer等大型的数据库管理系统 还是像Vi sualFoxpro PowerBuilder等PC上常用的数据库开发系统 都支持SQL语言作为查询语言 五 数据库操作 4 SQL语言分为四大类 数据定义语言 数据查询语言 数据操纵语言 数据控制语言 1 数据定义语言 主要用于创建 修改或删除数据库中对象 如表 视图 模式 触发器和存储过程等 与其相关的主要SQL语句包括CREAT 创建 ALTER 修改 DROP 删除 2 数据操纵语言 主要用于数据的增 删 改操作 主要语句有INSERT 插入 DELETE 删除 UPDATE 修改 五 数据库操作 5 SQL语言分为四大类 数据定义语言 数据查询语言 数据操纵语言 数据控制语言 3 数据查询语言 主要用于数据的检索查询 与其相关的语句是SELECT 查询 4 数据控制语言 主要用于控制用户对数据库的访问权限 完整性规则描述 事务控制等操作 控制用户对数据库的访问权限的主要语句有GRANT 授予权利 和REVOKE 取消权利 等 事务控制的语句包括COMMIT 事务提交 和ROLLBACK 事务撤消 等 五 数据库操作 6 创建表结构 1 语句格式 CREATETABLE 2 语句功能 在当前数据库中定义一个表的结构 即关系模式 五 数据库操作 7 创建表结构 3 语句举例 如果希望在 教学管理 数据库中创建一个名为 学生表 的表结构 则可执行下列语句 CREATETABLE学生表 学号char 7 PrimaryKey 姓名char 6 性别char 2 出生日期datetime 专业char 10 年级int 五 数据库操作 8 删除表结构 1 语句格式 DROPTABLE 2 语句功能 从当前数据库中删除一个表 当然在删除表结构的同时也删除了全部内容 3 语句举例 DROPTABLE学生表从当前数据库中删除掉名称为 学生表 的表 假定事先已经在当前库建立过该表 五 数据库操作 9 数据更新 插入数据 1 语句格式INSERTINTO VALUES 2 语句功能向一个表中所指定的若干列插入一行记录 当向表中插入一完整的记录时 可以省略列名 3 语句举例INSERTINTO学生表VALUES 2007001 王丽 女 1987 10 31 2 在当前数据库中执行上述语句后 将在名为 学生表 的数据表中插入一名新同学的完整信息 由于 学生表 的学号 姓名和性别字段被定义为了字符型 Char型 因此它们对应的字段值必须用半角的单引号引起来 在SQLServer中日期型 Datetime 也需要用单引号 而数值型 Int 则不需要这样做 五 数据库操作 10 数据更新 删除数据 1 语句格式DELETEFROMWHERE 2 语句功能删除一个表中满足条件的所有记录 3 语句举例DELETEFROM学生表WHERE性别 男 在当前数据库中执行上述语句后 将把 学生表 中所有性别等于 男 的记录删除 此处用到的 性别 男 是一种逻辑表达式 表示删除的条件 如果要删除所有记录 则可以直接执行 DELETEFROM学生表 五 数据库操作 11 数据更新 修改数据 1 语句格式UPDATESET WHERE 2 语句功能按条件修改一个表中的某些列的值 3 语句举例UPDATE学生表SET姓名 王莉 WHERE学号 2007001 在当前数据库中执行上述语句后 将把 学生表 中学号等于 2007001 的记录的姓名字段的值修改为 王莉 五 数据库操作 12 数据更新 修改数据 五 数据库操作 13 数据更新 修改数据 五 数据库操作 14 数据更新 修改数据UPDATE商品表SET数量 20WHERE商品编码 1UPDATE商品表SET数量 20WHERE商品编码 1AND数量 10 五 数据库操作 这两条语句执行结果有什么不同 15 数据查询1 基本语法格式SQL数据查询语言的主要作用是把数据从基本表中提取 展示出来 它只对应一条语句 即SELECT语句 该语句带有丰富的选项 称为子句 每个选项都由一个关键字标识 其基本语法格式如下 SELECT字段列表 INTO新表名 FROM源表名 WHERE查询条件 GROUPBY分组表达式 HAVING查找条件 ORDERBY排序表达式 ASC DESC 2 最简单的格式SELECT FROM表名3 最常用的格式SELECT FROM表名WHERE查询条件这条语句翻译成中文就是 从 FROM 某张表中选择 SELECT 出所有满足条件 WHERE 的所有字段 五 数据库操作 16 数据查询例1 查询学生表中的学号 姓名 年龄 专业Select学号 姓名 年龄 专业from学生表例2 通配符 的使用Select from学生表例3 基于字段的表达式 注意str year month as的含义Select学号 姓名 str year 出生日期 4 年 str month 出生日期 2 月 as年月from学生表例4 distinct短语的使用Selectdistinct专业from学生表 五 数据库操作 17 数据查询查询学生的基本情况 SELECT学号 姓名 入校总分 性别 出生年月FROM学生查询结果如下图所示 五 数据库操作 18 数据查询查询教师表的全部信息 SELECT FROM教师查询结果如下图所示 五 数据库操作 19 数据查询查询入校总分最低的五名学生基本情况 按入校总分由低到高进行排序 同时指定表中的字段在查询结果中的列标题 SELECTTOP5学号AS学生编号 姓名AS学生姓名 性别AS学生性别 入校总分AS高考分数FROM学生ORDERBY入校总分查询结果如下图所示 五 数据库操作 20 数据查询查询选修了课程的学生号 SELECTDISTINCT学号FROM选课查询结果如右图所示 五 数据库操作 21 数据查询例5 使用where子句Select from学生表where年龄between19and21Select from学生表where年龄 19and年龄 1985 1 1 例9 练习使用in短语Select from学生表where年龄in 19 21 Select from学生表where年龄 19or年龄 21 五 数据库操作 22 数据查询查询工资在1500至2000之间的教师号 姓名及职称 SELECT教师号 姓名 职称FROM教师WHERE工资BETWEEN1500AND2000等价于 SELECT教师号 姓名 职称FROM教师WHERE工资 1500AND工资 2000查询结果如下图所示 五 数据库操作 23 数据查询查询工资不在1500至2000之间的教师的教师号 姓名及职称 SELECT教师号 姓名 职称FROM教师WHERE工资NOTBETWEEN1500AND2000查询结果如下图所示 五 数据库操作 24 数据查询查询选修课程号为 C120 或 C140 且分数大于等于80分学生的学号 课程号和成绩 SELECT学号 课程号 成绩FROM选课WHERE 课程号 c120 OR课程号 c140 AND成绩 80查询结果如下图所示 五 数据库操作 25 数据查询查询选修了课程 C140 或 C160 并且成绩在80分以上的学生的学号 课程号和成绩 SELECT学号 课程号 成绩FROM选课WHERE课程号IN c140 c160 AND成绩 80此语句也可以使用逻辑运算符 OR 实现 SELECT学号 课程 成绩FROM选课WHERE 课程号 c140 OR课程号 c160 AND成绩 80查询结果如右图所示 五 数据库操作 26 数据查询例10 练习使用LIKE短语Select from学生表where姓名like 王 例11 练习使用orderby字句Select from学生表where专业 软件 orderby年龄例12 练习统计函数的使用Selectcount distinct专业 AS专业数from学生表例13 练习统计函数的使用Selectcount AS专业人数from学生表where专业 应用 五 数据库操作 27 数据查询查询所有姓 张 的学生的学号和姓名 SELECT学号 姓名FROM学生WHERE姓名LIKE 张 查询结果如右图所示 查询姓名中第二个汉字是 红 的学生的学号和姓名 SELECT学号 姓名FROM学生WHERE姓名LIKE 红 查询结果如右图所示 五 数据库操作 28 数据查询求入校总分在580分以上的学生的人数 SELECTCOUNT 学号 AS入校总分在580分以上的人数FROM学生WHERE入校总分 580查询结果如下图所示 统计选课表中有多少门课 SELECTCOUNT DISTINCT课程号 AS选课表中课程数FROM选课查询结果如下图所示 五 数据库操作 29 数据查询例16 练习into字句的使用Select into软件专业学生表from学生表orderby学号将每个同学选修的课程名及成绩输出到数据表 表名为学生成绩 SELECT姓名 课程名 成绩INTOTABLE学生成绩FROM学生 选课 课程WHERE学生 学号 选课 学号AND选课 课程号 课程 课程号查询结果如下图所示 五 数据库操作 30 数据查询例17 连接查询Select学生表 学号 姓名 课程号 成绩from学生表 成绩表where学生表 学号 成绩表 学号问题 若无where子句会如何 五 数据库操作 31 32 10个字段 11条记录 五 数据库操作 原始的学生表 32 33 原始的成绩表3个字段16条记录 五 数据库操作 33 34 34 35 结论 二个约束SELECT从两表检索结果时 要得到有效的数据必须带WHERE子句二个表之间必须有主外键的约束 即二个表中有共同的字段 或字段集 这个字段或字段集在一个表中为主键 在另一个表中为外键 五 数据库操作 35 36 使用的关系模式 36 数据查询将学生表和课程表进行连接查询 求结果集opendatabase D 我的数据库项目 数据库 教学管理数据库 dbc select from学生表 成绩表where学生表 学号 成绩表 学号 五 数据库操作 37 38 查询结果 五 数据库操作 38 数据查询例18 嵌套查询Select学生表 学号 姓名 课程表 课程号 课程名 成绩from学生表 课程表 成绩表where学生表 学号 成绩表 学号and课程表 课程号 成绩表 课程号例19 查询所有女同学选修的课程号和课程名 Select课程号 课程名from课程表where课程号in select课程号from成绩表where学号in select学号from学生表where性别 0 例20 平均成绩小于总平均成绩的学生学号 姓名 专业 Select学号 姓名 专业from学生表where学号in selectdistinct学号from成绩表where成绩 selectavg 成绩 from成绩表 五 数据库操作 39 数据查询查询讲授课程号为C140的教师姓名 SELECT姓名FROM教师WHERE教师号IN SELECT教师号FROM授课WHERE课程号 c140 查询结果如下图所示 先执行子查询 找到讲授课程号为 C140 的教师号 为一组值构成的集合 T1103 T1105 再执行父查询 其中IN的含义为任意一个 查询教师号为 T1103 T1105 的教师的姓名 五 数据库操作 40 数据控制语言数据控制语言的种类很多 其中事务控制是最常用 最重要的一种 事务处理控制语句SQLServer中可通过以下3个语句完成事务控制 1 开始一个事务 BEGINTRANSACTION事务名 2 提交一个事务 COMMITTRANSACTION事务名 3 回滚一个事务 ROLLBACKTRANSACTION事务名 在数据库应用程序设计中 事务控制语句的一般用法是 第1步 BEGINTRAN事务名第2步 对数据库进行增 删 改等操作第3步 提交事务或回滚 基本逻辑是 如果没有发生异常情况 则通过COMMIT语句提交事务 确认第2步的操作 否则执行ROLLBACK回滚命令 撤消第2步的所有操作 五 数据库操作 41 为了保证数据的安全可靠和正确有效 DBMS必须提供统一的数据保护功能 主要包括数据的安全性 完整性 并发控制和数据库恢复等内容 六 数据库保护 42 AnIntroductiontoDatabaseSystem 一 数据库安全性 问题的提出数据库的一大特点是数据可以共享但数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例 军事秘密 国家机密 新产品实验数据 市场需求分析 市场营销策略 销售计划 客户档案 医疗档案 银行储蓄数据 43 AnIntroductiontoDatabaseSystem 数据库中数据的共享是在DBMS统一的严格的控制之下的共享 即只允许有合法使用权限的用户访问允许他存取的数据数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一 一 数据库安全性 44 AnIntroductiontoDatabaseSystem 什么是数据库的安全性数据库的安全性是指保护数据库 防止因用户非法使用数据库造成数据泄露 更改或破坏 SQLServer2000的安全性管理是建立在认证 authentication 和访问许可 permission 两者机制上的 认证是用来确定登录SQLServer的用户的登录账号和密码是否正确 以此来验证其是否具有连接SQLServer的权限 但是通过认证阶段并不代表该用户能够访问SQLServer中的数据 用户只有在获取访问数据库的权限之后 才能够对服务器上的数据库进行权限许可下的各种操作 主要是针对数据库对象 如表 视图 存储过程等 这种用户访问数据库权限的设置是通过用户账号来实现的 一 数据库安全性 45 数据库的完整性是指数据库中的数据在逻辑上的正确性 有效性和相容性 正确性 Correctness 是指数据的合法性 有效性 Valid 是指数据属于所定义的有效范围 相容性 Consistency 是指表示同一事实的两个数据应当一致 二 数据的完整性 46 关系模型的完整性关系模型的完整性规则是对关系的某种约束条件 关系模型中可以有三类完整性约束 关系的完整性 实体完整性引用完整性 参照完整性 域完整性 用户定义的完整性 二 数据的完整性 47 实体完整性指表中行的完整性 要求表中的所有行都有唯一的标识符 称为主关键字 实体完整性 实体完整性规则规定基本关系的所有主关键字对应的主属性都不能取空值 例如 学生选课的关系 选课 学号 课程号 成绩 中 学号和课程号共同组成为主关键字 则学号和课程号两个属性都不能为空 因为没有学号的成绩或没有课程号的成绩都是不存在的 二 数据的完整性 48 引用完整性指被引用表中的主关键字和引用表中的外部主关键字之间的关系 在现实生活中的实体之间总是存在着某种联系 在关系模型中实体与实体之间的联系都是用关系来描述的 这样就存在关系与关系之间的引用 例如 有学生实体和班级两个实体集合 学生 学号 姓名 性别 年龄 班级编号 班级 班级编号 学生人数 辅导员姓名 引用完整性就是定义外关键字与主关键字之间的引用规则 引用完整性1 二 数据的完整性 49 外关键字的定义 设FK是基本关系R的一个或一组属性 但不一定是关系R的主关键字 如果FK与基本关系S的主关键字相对应 则称FK是基本关系R的外关键字 并称基本关系R为引用关系 基本关系S为被引用关系 在上例中 班级编号 是学生关系的外关键字 学生关系是引用关系 班级关系是被引用关系 引用完整性就是定义外关键字与主关键字之间的引用规则 如果要更新被引用的对象 那么也要更新引用它的所有对象 或者把引用值设置为空 如果允许的话 例如 前面的学生和班级关系中 修改某个班级元组之后 必须同时更新相应的引用该班级的学生元组 否则会引起数据的不一致 这就是引用完整性 引用完整性2 二 数据的完整性 50 51 在多用户和网络环境下 数据库是一个共享资源 多个用户或应用程序同时对数据库的同一数据对象进行读写操作 这种现象称为对数据库的并发操作 显然并发操作可以充分利用系统资源 提高系统效率 虽然如此 但是如果对并发操作不进行控制会造成一些错误 对并发操作进行的控制称为并发控制 并发控制机制是衡量一个DBMS的重要性能指标之一 三 数据库的并发控制 52 事务的概念所谓事务是用户定义的一个数据库操作序列 这些操作要么全做要么全不做 是一个不可分割的工作单位 事务的开始与结束可以由用户显式定义 如果用户没有显式地定义事务 则由DBMS按默认自动划分事务 在SQL语言中 定义事务的语句有三条 BEGINTRANSACTION 事务通常是以BEGINTRANSACTION开始 COMMIT COMMIT的作用是提交事务的所有操作 事务提交是将事务中所有对数据的更新写回到磁盘上的物理数据库中去 事务正常结束 ROLLBACK ROLLBACK的作用是回滚 即在事务运行的过程中发生了某种故障 事务不能继续执行 系统将事务中对数据库的所有已完成的操作全部撤消 回滚到事务开始时的状态 三 数据库的并发控制 53 事务的特性事务具有4个特性 即原子性 一致性 隔离性和持续性 原子性 Atomicity 事务中包括的诸操作要么都做 要么都不做 也就是说 事务是作为一个整体单位被处理 不可以被分割 一致性 Consistency 事务执行的结果必须使数据库处于一个一致性状态 当数据库中只包含成功事务提交的结果时 就说数据库处于一致性状态 隔离性 Isolation 一个事务的执行不能被其他事务干扰 即一个事务内部的操作及使用的数据对其他并发事务是隔离的 并发执行的各个事务之间不能互相干扰 持续性 Durability 持续性也称永久性 Permanence 持续性指一个事务一旦提交 它对数据库中数据的改变就是永久性的 接下来的其他操作或故障不应该对其执行结果有任何影响 三 数据库的并发控制 54 AnIntroductiontoDatabaseSystem 一致性与原子性 银行转帐 从帐号A中取出一万元 存入帐号B 定义一个事务 该事务包括两个操作这两个操作要么全做 要么全不做全做或者全不做 数据库都处于一致性状态 如果只做一个操作 数据库就处于不一致性状态 55 并发操作可能产生的问题并发操作不加以限制 会产生数据不一致性问题 一个最常见的并发操作的例子是火车 飞机订票系统中的订票操作 例如 在该系统中的一个活动序列 1 甲售票员读出某航班的机票张数余额A 设A 16 2 乙售票员读出同一航班的机票张数余额A 也是16 3 甲售票员卖出一张机票 修改机票张数余额A A 1 15 把A写回数据库 4 乙售票员也卖出一张机票 修改机票张数余额A A 1 15 把A写回数据库 结果明明卖出两张机票 数据库中机票余额只减少1 这种情况称为数据库的不一致性 这种不一致性是由甲 乙两个售票员并发操作引起的 在并发操作情况下 对甲 乙两个事务操作序列的调度是随机的 若按上面的调度序列行 甲事务的修改就被丢失 这是由于第4步中乙事务修改A并写回覆盖了甲事务的修改 三 数据库的并发控制 56 并发操作可能产生的问题并发操作带来的数据库不一致性可以分为四类 丢失或覆盖更新 脏读 不可重复读和幻像读 上例只是并发问题的一种 丢失更新 lostupdate 假设某产品库存量为50 现在购入该产品100个 执行入库操作 库存量加100 用掉40个 执行出库操作 库存量减40 分别用T1和T2表示入库和出库操作任务 例如 同时发生入库 T1 和出库 T2 操作 这就形成并发操作 T1读取库存后 T2也读取了同一个库存 T1修改库存 回写更新后的值 T2修改库存 也回写更新后的值 此时库存为T2回写的值 T1对库存的更新丢失 如表所示T1和T2的并发操作执行顺序 发生了 丢失更新 错误 三 数据库的并发控制 57 表1发生丢失更新的过程 三 数据库的并发控制 58 丢失更新 lostupdate 三 数据库的并发控制 59 读 脏数据 当T1和T2并发执行时 在T1对数据库更新的结果没有提交之前 T2使用了T1的结果 而在T2操作之后T1又回滚 这时引起的错误是T2读取了T1的 脏数据 表2发生读 脏数据 的过程 三 数据库的并发控制 60 不可重复读 nonrepeatableread 当T1读取数据A后 T2执行了对A的更新 当T1再次读取数据A 希望与第一次是相同的值 时 得到的数据与前一次不同 这时引起的错误称为 不可重复读 表3发生 不可重复读 的过程 三 数据库的并发控制 61 幻像读如果一个事务在提交查询结果之前 另一个事务可以更改该结果 就会发生这种情况 这句话也可以这样解释 事务1按一定条件从数据库中读取某些数据记录后未提交查询结果 事务2删除了其中部分记录 事务1再次按相同条件读取数据时 发现某些记录神秘地消失了 或者事务1按一定条件从数据库中读取某些数据记录后未提交查询结果 事务2插入了一些记录 当事务1再次按相同条件读取数据时 发现多了一些记录 三 数据库的并发控制 62 产生上述四类数据不一致性的主要原因是并发操作破坏了事务的隔离性 并发控制就是要用正确的方式调度并发操作 使一个用户事务的执行不受其他事务的干扰 从而避免造成数据的不一致性 DBMS用封锁机制来解决并发问题 它可以保证任何时候都可以有多个正在运行的用户程序 但是所有用户程序都在彼此完全隔离的环境中运行 三 数据库的并发控制 63 封锁及锁的类型封锁机制是并发控制的主要手段 封锁具有3个环节 第一个环节是申请加锁 第二个环节是获得锁 第三个环节是释放锁 为了达到封锁的目的 在使用时事务应选择合适的锁 并要遵从一定的封锁协议 基本的封锁类型有两种 排它锁 ExclusiveLocks 简称X锁 和共享锁 ShareLocks 简称S锁 排它锁排它锁也称为独占锁或写锁 一旦事务T对数据对象A加上排它锁 X锁 则只允许T读取和修改A 其他任何事务既不能读取和修改A 也不能再对A加任何类型的锁 直到T释放A上的锁为止 共享锁共享锁又称读锁 如果事务T对数据对象A加上共享锁 S锁 其他事务对A只能再加S锁 不能加X锁 直到事务T释放A上的S锁为止 三 数据库的并发控制 64 封锁协议简单地对数据加X锁和S锁并不能保证数据库的一致性 在对数据对象加锁时 还需要约定一些规则 这些规则称为封锁协议 LockingProtocol 对封锁方式规定不同的规则 就形成了各种不同的封锁协议 一级封锁协议一级封锁协议是 事务T在修改数据之前必须先对其加X锁 直到事务结束才释放 根据该协议要求 将表1中的任务T1 T2作为事务 用A表示库存 重新执行各操作的过程如表4所示 三 数据库的并发控制 65 表1发生丢失更新的过程 三 数据库的并发控制 66 表4遵循一级封锁协议的事务执行过程 三 数据库的并发控制 67 三 数据库的并发控制 例 使用一级封锁协议解决了定飞机票例子的丢失更新问题 68 一级封锁协议可有效地防止 丢失更新 并能够保证事务T的可恢复性 但是 由于一级封锁没有要求对读数据进行加锁 所以不能保证可重复读和不读 脏 数据 表5遵从一级封锁协议发生的读 脏 数据过程 三 数据库的并发控制 69 二级封锁协议二级封锁协议是 事务T对要修改数据必须先加X锁 直到事务结束才释放X锁 对要读取的数据必须先加S锁 读完后即可释放S锁 二级封锁协议除防止了丢失或覆盖更新 还可进一步防止脏读 例如 下图使用二级封锁协议解决了脏读的问题 三 数据库的并发控制 70 二级封锁协议在二级封锁协议中 由于读完数据后即可释放S锁 所以它不能保证可重复读 表6遵从二级封锁协议发生的 不可重复读 的过程 三 数据库的并发控制 71 三级封锁协议三级封锁协议是事务T在读取数据之前必须先对其加S锁 在要修改数据之前必须先对其加X锁 直到事务结束后才释放所有锁 由于三级封锁协议强调即使事务读完数据A之后也不释放S锁 从而使得别的事务无法更改数据A 三级封锁协议不但防止了丢失修改和不读 脏 数据 而且防止了不可重复读和幻想读问题 三 数据库的并发控制 72 三级封锁协议 三 数据库的并发控制 73 封锁出现的问题及解决方法事务使用封锁机制后 会产生活锁 死锁等问题 DBMS必须妥善地解决这些问题 才能保障系统的正常运行 活锁如果事务T1封锁了数据R T2事务又请求封锁R 于是T2等待 T3也请求封锁R 当T1释放了R上的封锁之后系统首先批准了T3的要求 T2仍然等待 然后T4又请求封锁R 当T3释放了R上的封锁之后系统又批准了T4的请求 T2有可能永远等待 这种在多个事务请求对同一数据封锁时 使某一用户总是处于等待的状况称为活锁 解决活锁问题的方法是采用先来先服务 即对要求封锁数据的事务排队 使前面的事务先获得数据的封锁权 三 数据库的并发控制 74 死锁如果事务T1和T2都需要数据Rl和R2 操作时Tl封锁了数据R1 T2封锁了数据R2 然后T1又请求封锁R2 T2又请求封锁Rl 因T2已封锁了R2 故T1等待T2释放R2上的锁 同理 因T1已封锁了R1 故T2等待T1释放R1上的锁 由于Tl和T2都没有获得全部需要的数据 所以它们不会结束 只能继续等待 这种多事务交错等待的僵持局面称为死锁 数据库中解决死锁问题主要有两类方法 一类方法是采用一定措施来预防死锁的发生 另一类方法是允许发生死锁 然后采用一定手段定期诊断系统中有无死锁 若有则解除之 三 数据库的并发控制 75 封锁的粒度封锁粒度 Granularity 是指封锁对象的大小 封锁对象可以是逻辑单元 也可以是物理单元 以关系数据库为例 封锁对象可以是属性值 属性值的集合 元组 关系 直至整个数据库 也可以是一些物理单元 例如页 数据页或索引项 块等 封锁粒度与系统的并发度和并发控制的开销密切相关 封锁的粒度越小 并发度越高 系统开销也越大 封锁的粒度越大 并发度越低 系统开销也越小 三 数据库的并发控制 76 指将数据库从错误状态恢复到某一已知的正确状态 亦称为完整状态或一致状态 的功能 计算机系统的硬件故障 软件故障 操作员的失误以及故意的破坏均会影响数据库中数据的正确性 甚至造成数据库部分或全部数据的丢失 某一已知的正确状态 如 昨天做了备份 今天出现了故障 昨天的状态即为已知的正确状态 四 数据库恢复 77 第四节计算机网络 一 计算机网络的概念与分类二 计算机网络的体系结构三 典型的网络通信技术四 Internet Intranet五 多媒体网络 78 计算机网络的概念计算机网络是通过某种通信介质 将不同地理位置的多台具有独立功能的计算机连接起来 并借助网络硬件 按照网络通信协议和网络操作系统来进行数据通信 实现网络上的资源共享和信息交换的系统 一 计算机网络的概念与分类 79 计算机网络的相关概念网络介质 数据传输的物理通道 有同轴电缆 双绞线 光纤 微波 卫星信道等 协议 网络设备间进行通信的一组约定 网络协议具体规定了设备间通信的电气性能 数据组织方式等 节点 网络中某分支的端点或网络中若干条分支的公共汇交点 链路 是指两个相邻节点之间的通信线路 一 计算机网络的概念与分类 80 通信子网计算机网络中实现网络通信功能的设备及其软件的集合称为网络的通信子网 资源子网网络中实现资源共享功能的设备及其软件的集合称为资源子网 计算机网络的组成 一 计算机网络的概念与分类 81 一 计算机网络的概念与分类 82 计算机网络的拓扑结构如果我们去掉网络单元的物理意义 把网络单元看作是结点 把连接各结点的通信线路看作连线 这样采用拓扑学的观点看计算机网络 可以说是由一组结点和连线组成的几何图形 拓扑图形中的节点和连线的几何位置就是计算机网络的拓扑结构 一 计算机网络的概念与分类 83 拓扑的重要性不同的拓扑结构对网络参数影响是不同的 性能可靠性通信费用 一 计算机网络的概念与分类 84 拓扑结构类型 总线型网络拓扑总线结构是比较普遍采用的一种方式 它将所有的入网计算机均接入到一条通信线上 为防止信号反射 一般在总线两端连有终结器匹配线路阻抗 总线结构的优点是信道利用率较高 结构简单 价格相对便宜 缺点是同一时刻只能有两个网络节点相互通信 网络延伸距离有限 网络容纳节点数有限 在总线上只要有一个点出现连接问题 会影响整个网络的正常运行 一 计算机网络的概念与分类 85 拓扑结构类型 环型网络拓扑在环型结构的网络中 信息按固定方向流动 或顺时针方向 或逆时针方向 环型结构的优点是一次通信信息在网中传输的最大传输延迟是固定的 每个网上节点只与其他两个节点有物理链路直接互连 因此 传输控制机制较为简单 实时性强 缺点是一个节点出现故障可能会终止全网运行 因此可靠性较差 一 计算机网络的概念与分类 86 拓扑结构类型 星型网络拓扑星型结构的优点是结构简单 建网容易 控制相对简单 其缺点是属集中控制 主节点负载过重 可靠性低 通信线路利用率低 相对其他网络拓扑来说安装比较困难 比其他网络拓扑使用的电缆要多 容易进行重新配置 只需移去 增加或改变集线器某个端口的连接 就可进行网络重新配置 由于星型网络上的所有数据都要通过中心设备 并在中心设备汇集 星型拓扑维护起来比较容易 受故障影响的设备少 能够较好地处理 一 计算机网络的概念与分类 87 拓扑结构类型 树型网络拓扑树型结构实际上是星型结构的一种变形 它将原来用单独链路直接连接的节点通过多级处理主机进行分级连接 这种结构与星型结构相比降低了通信线路的成本 但增加了网络复杂性 网络中除最低层节点及其连线外 任一节点或连线的故障均影响其所在支路网络的正常工作 一 计算机网络的概念与分类 88 计算机网络分类按使用范围分为 公用网 对所有的人提供服务 只要符合网络拥有者的要求就能使用这个网 也就是说它是为全社会所有的人提供服务的网络 专用网 为一个或几个部门所拥有 它只为拥有者提供服务 这种网络不向拥有者以外的人提供服务 一 计算机网络的概念与分类 89 计算机网络分类按分布范围分为 局域网 LAN 又称局部网 是有限范围内的计算机网络 局域网一般在10公里以内 广域网 WAN 又称远程网 是局部网的扩展 是远距离 大范围的计算机网络 城域网 MAN 一 计算机网络的概念与分类 90 网络协议 protocol 的定义为网络数据的交换而制定的规则 约定或标准 通常 网络协议由下面三个要素组成 语法 syntax 就是控制信息和数据的结构和格式 表示信号的电平等 语义 semantics 就是信息的含义 包括控制信息和差错控制等 时序 timing 包括对事件实现顺序的详细说明和数据传输速率等 二 计算机网络的体系结构 91 开放系统互联参考模型 OSI RM 二 计算机网络的体系结构 92 开放系统互联参考模型OSI RM国际标准化组织 ISO 在1979年建立了一个分委员会来专门研究一种用于开放系统互连的体系结构 简称OSI 开放 这个词表示 只要遵循OSI标准 一个系统可以和位于世界上任何地方的 也遵循OSI标准的其他任何系统进行连接 物理层透明的传输比特流 即对比特流 多大字节 的传送不加控制 它要考虑的是多大的电压表示 1 和 0 数据链路层在两个相连的节点间的线路上无差错的传送以帧为单位的数据 这样 数据链路层就把一条有可能出差错的实际链路 转变成让网络层向下看起来好像是一条不出差错的链路 网络层网络层数据传送的单位是分组或包 其任务就是要选择合适的路由 正确无误的按照地址找到目的站 确定路径 流量 防止阻塞和死锁 二 计算机网络的体系结构 93 开放系统互联参考模型传输层该层传送的数据单位是报文 其任务最佳的利用网络资源 并以可靠和经济的方式 为两端主机的进程之间 建立一条运输连接 或者说 为上一层进行通信的两个进程之间提供一个可靠的端到端 主机对主机 的服务 是通信子网和资源子网的接口 会话层在会话层及以上的高层次中 数据传送的单位统称为报文 会话层不参与具体的传输 它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制 如服务器验证用户登录便是由会话层完成的 表示层主要解决拥护信息的语法表示问题 它将欲交换的数据从适合于某一用户的抽象语法 转换为适合于OSI系统内部使用的传送语法 即提供格式化的表示和转换数据服务 数据的压缩和解压缩 加密和解密等工作都由表示层负责 应用层 二 计算机网络的体系结构 94 OSI和TCP IPOSI 从一张白纸开始 试图达到一种理想境界 即全世界的计算机网络都遵循这一统一的标准 因而全世界的计算机都能够很方便的进行互联和交换数据 但是OSI事与愿违的失败了 OSI失败的原因可以归结为 1 OSI专家们缺乏实际经验 完成OSI标准时没有商业驱动力2 OSI的协议实现过分复杂 而且运行效率低3 OSI的层次划分不太合理 有些功能在多个层次重复出现由于Internet已经得到了全世界的承认 因此Internet所使用的TCP IP体系在计算机网络领域就占有特殊重要的地位 TCP IP TransmissionControlProtocol InternetProtocol 中文译名 传输控制协议 网际协议TCP IP实际上是一个协议族 而不仅仅是上面所说的那两个 二 计算机网络的体系结构 95 OSITCP IP 二 计算机网络的体系结构 96 TCP IP协议TCP IP中各层的主要功能主机网络层 通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡 它们一起处理与电缆 或其他任何传输媒介 的物理接口细节 互连层 Internet协议将数据包封装成Internet数据包并运行必要的路由算法 传输层 为两台主机上的应用程序提供端到端的通信 应用程序层 在模型的顶部是应用层 本层是应用程序进入网络的通道 负责处理应用程序细节 二 计算机网络的体系结构 97 TCP IP协议数据在各层的传输过程 二 计算机网络的体系结构 98 5 4 3 2 1 5 4 3 2 1 计算机1 AP2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国深圳市服装行业发展监测及市场发展潜力预测报告
- 护士企业编制面试题库含答案详解(突破训练)
- 押题宝典期货从业资格之《期货法律法规》模考模拟试题及参考答案详解
- 2025年度汽车金融贷款授信合同借款
- 2025年体育场馆汽车停车位租赁与赛事服务合同
- 2025版私家车买卖合同及车辆上牌服务协议
- 2025大闸蟹加盟店产品研发合同范本大全
- 2025版电商品牌授权代理销售合同书
- 2025版水电站工程监理合同书
- 2025年智慧社区房产代理销售服务合同
- 2024年旧钻井杆销售合同范本
- 高三冲刺毕业家长会课件2024-2025学年
- 运维或技术支持岗位招聘笔试题与参考答案(某大型央企)2024年
- 2023年《安徽大学学生手册》在线考试学习通超星期末考试答案章节答案2024年
- 安全评估合同
- 天津市南开区2023-2024学年六年级下学期期末数学试题
- 《全面质量管理》习题集(含答案)
- DB21T 3947-2024 普通公路装配式混凝土桥梁下部工程施工技术规范
- 高中数学选择性必修1 教材习题答案
- DL∕T 432-2018 电力用油中颗粒度测定方法
- 《水处理生物学》课件
评论
0/150
提交评论