




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一讲数据库基础 2 内容提要 数据库系统使用示例 1 1 数据管理技术的发展 1 2 什么是数据库系统 1 3 数据库管理系统的组成和主要功能 1 4 数据模型 1 5 关系模型 1 6 规范化的设计理念和方法 1 7 数据库系统设计简介 1 8 3 随着科学技术和社会经济的飞速发展 人们掌握的信息量急剧增加 要充分地开发和利用这些信息资源 就必须有一种新技术能对大量的信息进行识别 存储 处理与传播 随着计算机软硬件技术的发展 20世纪60年代末 数据库技术应运而生 并从70年代起得到了迅速的发展和广泛的应用 数据库技术主要研究如何科学地组织和存储数据 如何高效地获取和处理数据 数据库技术作为数据管理的最新技术 目前已广泛应用于各个领域 对于一个国家来说 数据库的建设规模 数据库信息量的大小和使用频度已经成为衡量这个国家信息化程度的重要标志 4 1 1数据库系统使用示例 从超市购物条形码 价格 库存 订单使用信用卡购物透支额度 刷卡记录 对账单在旅行社预订假期座位预订 房间预订使用图书馆图书信息 读者信息 预订信息 还借情况 5 1 2数据管理技术的发展 什么是数据管理 对数据进行分类 组织 编码 存储 检索和维护 是数据处理的中心问题 数据管理技术的发展动力应用需求的推动计算机硬件的发展计算机软件的发展数据管理技术的发展过程人工管理阶段 40年代中 50年代中 文件系统阶段 50年代末 60年代中 数据库系统阶段 60年代末 现在 6 1 2数据管理技术的发展 1 人工管理阶段在计算机发展的初级阶段 计算机硬件本身还不具备象磁盘这样的可直接存取的存储设备 因此也无法实现对大量数据的保存 也没有用来管理数据的相应软件 计算机主要用于科学计算 这个阶段的数据管理是以人工管理的方式进行的 人们还没有形成一套数据管理的完整的概念 7 1 2数据管理技术的发展 人工管理阶段的主要特点 1 数据不保存 计算机主要用于科学计算 计算时输入数据 用完就撤走数据 2 还没有文件的概念 数据由每个程序的程序员自行组织和安排 3 数据不共享 每组数据和一个应用程序相对应 因此可能导致大量的数据重复 4 没有形成完整的数据管理的概念 更没有对数据进行管理的软件系统 每个程序都要包括数据存取方法 输入 输出方法和数据组织方法 程序直接面向存储结构 因此存储结构的任何修改都将导致程序的修改 程序和数据不具有独立性 8 1 2数据管理技术的发展 人工管理阶段的特点可以用下图来描述 应用程序1 数据集1 应用程序2 数据集2 应用程序n 数据集n 9 1 2数据管理技术的发展 2 文件系统阶段随着计算机软硬件技术的发展 如直接存储设备的产生 操作系统 高级语言及数据管理软件的出现 计算机不仅用于科学计算 也开始大量用于信息管理 数据可以以文件的形式长期独立地保存在磁盘上 且可以由多个程序反复使用 操作系统及高级语言或数据管理软件提供了对数据的存取和管理功能 这就是文件系统阶段 10 1 2数据管理技术的发展 文件系统阶段的主要特点 1 数据可以长期保存在磁盘上 因此可以重复使用 数据不再属于某个特定的程序 可以由多个程序反复使用 2 数据的物理结构和逻辑结构有了区别 但较简单 程序开始通过文件名和数据打交道 不必关心数据的物理存放位置 对数据的读 写方法由文件系统提供 3 程序和数据之间有了一定的独立性 应用程序通过文件系统对数据文件中的数据进行存取和加工 程序员不必过多地考虑数据的物理存储细节 并且 数据在存储上的改变不一定反映在程序上 节省了维护工作 4 出现了多种文件存储形式及相应的访问方式 但文件之间是独立的 它们之间的联系要通过程序去构造 文件的共享性也还比较差 数据的存取基本上以记录为单位 11 1 2数据管理技术的发展 文件系统阶段程序和数据之间的关系可以用下图来描述 12 1 2数据管理技术的发展 虽然文件系统比人工管理有了长足的进步 但是文件系统所能提供的数据存取方法和操作数据的手段还是非常的有限 数据的存储结构和程序之间的依赖关系并未根本改变 数据冗余大 数据的重复以及数据之间没有建立起相互联系还会造成数据的不一致性 随着信息时代的到来 人们要处理的信息量急剧增加 对数据的处理要求也越来越复杂 文件系统的功能已经不能适应新的需求 而数据库技术也正是在这种需求的推动下逐步产生的 13 1 2数据管理技术的发展 3 数据库系统阶段数据库系统阶段使用数据库技术来管理数据 它克服了文件系统的不足 并增强了许多新功能 在这一阶段 数据由数据库管理系统统一控制 数据不再面向某个应用而是面向整个系统 因此数据可以被多个用户 多个应用共享 14 1 2数据管理技术的发展 数据库系统阶段的特点 1 能根据不同的需要按不同的方法组织数据 以最大限度地提高用户或应用程序访问数据的效率 2 数据库不仅能够保存数据本身 还能保存数据之间的相互联系 保证了对数据修改的一致性 3 相同的数据可以共享 降低了数据的冗余度 4 数据具有较高的独立性 数据的组织和存储方法与应用程序相互独立 互不依赖 大大降低了应用程序的开发代价和维护代价 5 提供了一整套的安全机制来保证数据的安全 可靠 6 可以给数据定义一些约束条件来保证数据的正确性 15 1 2数据管理技术的发展 数据库系统阶段应用程序和数据库之间的关系可以用下图来表示 16 数据库系统 计算机化的记录保持系统目的 存储和产生所需要的有用信息 包括四个方面 数据 集成的 共享的用户 终端用户 应用程序员 数据库管理员软件 数据库管理系统 DBMS 硬件 1 3什么是数据库系统 17 1 4数据库管理系统的组成和主要功能 1 客户机 服务器体系结构在客户机 服务器 Client Server C S 体系结构中 数据库存放在服务器端 客户机可以访问服务器上的数据库 数据库应用的处理过程分布在客户机和服务器上 其优点是数据集中存储 便于维护与备份 对客户机要求相对较低 这种体系结构分为两层结构和多层结构 18 1 4数据库管理系统的组成和主要功能 DBMS体系结构两层客户 服务器架构用来处理主要业务 数据处理逻辑以及与用户交互的接口的客户端程序管理和控制对数据库的访问的服务器端程序一些问题 胖 客户端 需要客户端计算机上的大量资源来有效运行相当可观的客户端管理开销 19 DBMS体系结构三层客户 服务器架构用户接口层 运行在最终用户的计算机 客户端 上 业务逻辑和数据处理层 这个中间层运行在服务器上 并且经常成为应用程序服务器 用于为多个客户端提供服务 DBMS 存储中间层所需要的数据 该层可以运行在独立的服务器上 称为数据库服务器 1 4数据库管理系统的组成和主要功能 20 DBMS的功能1 数据库定义功能2 数据存取功能3 数据库运行管理功能4 数据库的建立和维护功能5 数据通信功能 1 4数据库管理系统的组成和主要功能 21 1 5数据模型 数据库是某个企业 组织或部门所涉及的数据的综合 它不仅要反映数据本身的内容 而且要反映数据之间的联系 由于计算机不可能直接处理现实世界中的具体事物 所以人们必须事先把具体事物转换成计算机能够处理的数据 在数据库技术中使用数据模型来抽象 表示现实世界中的数据和信息 模型 对现实世界特征的模拟和抽象 数据模型 对现实世界数据特征的模拟和抽象 22 1 5数据模型 现实世界中的数据要进入到数据库中 需要经过人们的认识 理解 整理 规范和加工 可以把这一过程划分成三个主要阶段 即现实世界阶段 信息世界阶段和机器世界阶段 现实世界中的数据经过人们的认识和抽象 形成信息世界 在信息世界中用概念模型来描述数据及其联系 概念模型按用户的观点对数据和信息进行建模 独立于具体的机器和DBMS 根据所使用的具体机器和DBMS 需要对概念模型进行进一步转换 形成在具体机器环境下可以实现的数据模型 23 1 5数据模型 三个阶段之间的相互关系 不依赖于具体机器和DBMS 依赖于具体机器和DBMS 现实世界 信息世界 概念模型 机器世界 某DBMS支持的数据模型 抽象 转换 24 1 5 2信息世界 人们对现实世界的对象进行抽象 并对其进行命名 分类 在信息世界用概念模型来对其进行描述 1 实体 对应于现实世界的实体 如一个学生 一门课等 2 属性 对应于实体的特征 一个实体可以由若干个属性来刻画 例如 学生实体可以有学号 姓名 性别 班级 年龄等属性 3 码 对应于实体的标识特征 例如 学生实体可以用学号来唯一标识 因此学号可以作为学生实体的码 25 1 5 2信息世界 4 域 属性的取值范围称为该属性的域 例如 姓名的域为字符串集合 年龄的域为不小于零的整数 性别的域为 男 女 5 实体型 用实体名及其属性名集合来描述实体 例如 学生实体型描述为 学生 学号 姓名 性别 年龄 例如 课程实体型可以描述为 课程 课程号 课程名 学分 6 实体集 同型实体的集合构成了实体集 例如 全体学生构成了学生实体集 26 1 5 2信息世界 7 联系 现实世界中的事物之间通常都是有联系的 这些联系在信息世界中反映为实体内部的联系和实体之间的联系 实体内部的联系通常指组成实体的各属性之间的联系 实体之间的联系通常指不同实体集之间的联系 这些联系总的来说可以划分为三种 一对一联系一对多 或多对一 联系多对多联系 这里讨论实体之间的联系 27 1 5 2信息世界 1 一对一联系 如果实体集A与实体集B之间存在联系 并且对于实体集A中的任意一个实体 在实体集B中至多只有一个实体与之对应 而对于实体集B中的任意一个实体 在实体集A中也至多只有一个实体与之对应 则称实体集A和实体集B之间存在着一对一的联系 表示为1 1 28 1 5 2信息世界 例如 公司 是一种实体 总经理 也是一种实体 如果按照语义 一个公司只能有一个总经理 而一个总经理只能管理某一个公司 则 公司 和 总经理 实体之间的联系就是一对一的联系 如下图 29 1 5 2信息世界 2 一对多联系 如果实体集A与实体集B之间存在联系 并且对于实体集A中的任意一个实体 在实体集B中可以有多个实体与之对应 而对于实体集B中的任意一个实体 在实体集A中至多只有一个实体与之对应 则称实体集A到实体集B的联系是一对多的联系 表示为1 n 30 1 5 2信息世界 例如 部门 是一种实体 职工 也是一种实体 如果按照语义 一个部门可以有多个职工 而一个职工只能归属于一个部门 则 部门 实体到 职工 实体的联系就是一对多的联系 如下图 31 1 5 2信息世界 3 多对多联系 如果实体集A与实体集B之间存在联系 并且对于实体集A中的任意一个实体 在实体集B中可以有多个实体与之对应 而对于实体集B中的任意一个实体 在实体集A中也可以有多个实体与之对应 则称实体集A到实体集B的联系是多对多的联系 表示为m n 32 1 5 2信息世界 例如 学生 是一种实体 课程 也是一种实体 学生 实体到 课程 实体的联系就是多对多的联系 因为一个学生可以学习多门课程 而一门课程又可以有多个学生来学习 如下图 33 1 5 2信息世界 两个以上的实体之间也存在一对一 一对多和多对多的联系 例如 邮局 是一种实体 邮票 是一种实体 顾客 是一种实体 这三个实体之间存在着一种关系 这里称之为 购买 它表示 一个顾客可以在多个邮局中买多种邮票 一个邮局可以把多种邮票出售给多个顾客 一种邮票可以在多个邮局中被多个顾客所购买 这样的三元关系可以表示成 34 1 5 2信息世界 35 1 5 2信息世界 8 概念模型 概念模型是对信息世界的建模 因此 概念模型应该能够方便 准确地表示出信息世界中的常用概念 概念模型有多种表示方法 其中最常用的是 实体 联系方法 EntityRelationshipApproach 简称E R方法 E R方法用E R图来描述现实世界的概念模型 E R图提供了表示实体 属性和联系的方法 36 1 5 2信息世界 1 实体型 用矩形表示 在矩形内写明实体名 例如 学生实体和课程实体用E R图表示如下 学生 课程 2 属性 用椭圆形表示 并用无向边将其与实体连接起来 例如 学生实体及其属性用E R图表示如下 37 1 5 2信息世界 3 联系 用菱形表示 在菱形框内写明联系的名称 并用无向边将其与有关的实体连接起来 同时在无向边旁标上联系的类型 注意 联系本身也是一种实体型 也可以有属性 如果一个联系具有属性 则这些属性也要用无向边与该联系连接起来 38 1 5 2信息世界 例如 下图表示了学生实体和课程实体之间的联系 选修 每个学生选修某一门课程会产生一个成绩 因此 选修 联系有一个属性 成绩 学生和课程实体之间是多对多的联系 39 1 5 2信息世界 用E R图表示的概念模型独立于具体的DBMS所支持的数据模型 是各种数据模型的共同基础 因此比数据模型更一般 更抽象 更接近现实世界 40 练习 画出如下百货公司的E R图 某百货公司管辖若干连锁商店 每家商店经营若干商品 每家商店有若干职工 但每个职工只能服务于一家商店 商店实体型的属性有 店号 店名 店址 店经理 商品实体型的属性有 商品号 品名 单价 产地 职工实体型的属性有 工号 姓名 性别 工资 在联系中应反映出职工参加某商店工作的开始时间 商店销售商品的月销售量 41 1 5 3机器世界 概念模型是独立于机器的 需要转换成具体的DBMS所能识别的数据模型 才能将数据和数据之间的联系保存到计算机上 在计算机中可以用不同的方法来表示数据与数据之间的联系 把表示数据与数据之间的联系的方法称为数据模型 数据库领域常见的数据模型有4种 1 层次模型 HierarchicalModel 2 网状模型 NetworkModel 3 关系模型 RelationalModel 4 面向对象的模型 ObjectOrientedModel 其中 关系模型是目前使用最广泛的数据模型 42 1 6关系数据库 这里介绍的关系模型是用户观点下的数据模型 实际上关系模型是可以在某种DBMS的支持下 用某种语言进行描述的 通过DBMS提供的功能实现对其进行存储和实施各种操作 把支持关系模型的数据库管理系统称为关系数据库管理系统 简称RDBMS 43 1 6 1关系模型 1 关系数据结构在用户观点下 关系模型中数据的逻辑结构是一张二维表 它由行和列组成 例如 学生信息表 44 1 6 1关系模型 1 关系 一个关系对应于一张二维表 2 关系名 如 学生信息 3 元组 表中的一行 对应于存储文件中的一个记录 4 属性 表中的一列 5 属性名 给每个属性起一个名字 对应于存储文件中的字段 45 1 6 1关系模型 6 候选码 如果在一个关系中 存在多个属性 或属性组合 都能用来唯一标识该关系的元组 这些属性 或属性组合 都称为该关系的候选码 或候选关键字 例如 假设 学生信息 关系中的姓名没有重名现象 则学号和姓名都是候选码 7 主码 在若干个候选码中指定作为码的属性 或属性组合 称为该关系的主码 或主关键字 例如 学号可以作为 学生信息 关系的主码 46 1 6 1关系模型 8 全码 如果一个关系模型的所有属性一起构成该关系的码 则称为全码 9 主属性 包含在候选码中的属性 如学号 10 非主属性 不包含在任何候选码中的属性称为非码属性或非主属性 如性别和年龄 11 域 属性的取值范围 如 性别域 男 女 年龄域 大于0的整数 12 分量 元组中的一个属性值 如 李明 47 1 6 1关系模型 13 关系模式 对关系的描述 一般表示为 关系名 属性1 属性2 属性n 例如 学生信息 表表示为 学生信息 学号 姓名 性别 年龄 48 1 6 1关系模型 在关系模型中 实体和实体之间的联系都是用关系来表示的 例如 学生 课程和选修关系可以表示为 学生信息 学号 姓名 性别 年龄 课程 课程号 课程名 学分 选修 学号 课程号 成绩 49 1 6 1关系模型 2 关系操作关系操作主要包括 查询插入修改删除特点 集合操作操作对象和操作结果都是关系 即元组的集合 50 1 7规范化的设计理念和方法 要把一组数据存储到数据库中 如何为这些数据设计一个合适的逻辑结构呢 如在关系数据库系统中 针对一个具体问题 应该构造几个关系 每个关系由哪些属性组成 使数据库系统无论是在数据存储方面 还是在数据操纵方面都有较好的性能 这就是关系数据库规范化理论要研究的主要问题 E R模型的方法讨论了实体与实体之间的数据联系 而关系规范化理论主要讨论实体内部属性与属性之间的数据的联系 其目标是要设计一个 好 的关系数据库模型 51 1 7规范化的设计理念和方法 本节要点 数据库设计中如何使用规范化技术存在冗余数据的表在更新异常时的表现经常使用的规范化规则 1NF 2NF 3NF不符合1NF 2NF 3NF的表更新时有何后果怎样重建不符合1NF 2NF 3NF的表 52 1 7 1简介 规范化 Normalization 一种用来产生表的集合的技术 这些表具有符合要求的属性 并能支持用户或公司的需求 为什么要作规范化 53 1 7 2数据冗余和更新异常 Staff Branch 54 从StaffBranch表中删除一个记录 而它又是一个分公司的最后一名员工 如删除staffNo为S0415的记录 则分公司的其他信息也被删除了 1 7 2数据冗余和更新异常 StaffBranch 数据冗余 带来问题 插入异常 删除异常 更新异常 要插入一个新的 目前还没有员工的分公司的详细信息 如需改变分公司B001的电话号码 就必须更改在该分公司的所有员工的记录 如何解决 55 1 7 3第一范式 FirstNormalForm 1NF 定义 每个列和记录包含一个而且只包含一个值的表 多个值 所以不属于1NF Branch Branch 不属于1NF 给branchNo进行备份 删除telNo列并创建新列telNo Branch 1NF BranchTelphone 1NF 57 1 7 4第二范式 SecondNomalForm 2NF 定义 一个第一范式的表 并且每个非主键列都可以从构成主键的全部的列得到 TempStaffAllocation TempStaffAllocation 不是2NF Branch 2NF TempStaff 2NF 删除branchAddress列到带有branchNo拷贝的新表中 删除name和position列到带有staffNo的拷贝的新表中 TempStaffAllocation 不是2NF TempStaffAllocation 2NF 复合主键 60 1 7 5第三范式 ThirdNormalForm 3NF 定义 一个已经是第一和第二范式的表 并且所有的非主键列的值都只能可以从主码列得到 而不能从其他的列得到 BranchManager 主键 该表不是3NF BranchManager 不是3NF Branch 3NF ManagerStaff 3NF BranchManager表是重命名的表 给msgStaffNo备份 删除name列到新表中 62 小结 1NF 表中的每一个列和记录有且仅有一个值 2NF 表中每一非主键列必须完全由全部的主键列决定 3NF 表中所有非主键列的值都只能从主键列得到 而不能从其他列得到 63 1 8数据库系统设计简介 数据库系统的设计包括 数据库的设计数据库应用系统设计数据库设计是指设计数据库的结构特性 即为特定的应用环境构造最优的数据模型 数据库应用系统设计是指设计出满足各种用户对数据库应用需求的应用程序 用户通过应用程序来访问和操作数据库 64 1 8数据库系统设计简介 将数据库设计分为6个阶段 需求分析阶段概念结构设计阶段逻辑结构设计阶段物理结构设计阶段数据库实施阶段数据库运行和维护阶段以上步骤既是数据库设计的过程 也包括数据库应用系统的设计过程 在设计过程只有将这两方面有机地结合起来 互相参照 互为补充 才可以设计出性能良好的数据库应用系统 65 1 8数据库系统设计简介 1 需求分析阶段任务 准确了解并分析用户对系统的要求 确定所要开发的应用系统的目标 重点调查用户的信息要求 处理要求 安全性与完整性要求结果 产生用户和设计者都能接受的需求说明书 做为下一步数据库概念结构设计的基础 需求分析主要是考虑 做什么 而不是考虑 怎么做 需求分析做得是否充分 准确 将决定以后各设计步骤能否顺利进行 如果需求分析做得不好 会影响整个系统的性能 甚至会导致整个数据库设计的返工 66 1 8数据库系统设计简介 2 概念结构设计阶段将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计 概念结构是独立于支持数据库的DBMS和使用的硬件环境的 人们提出了多种概念结构设计的表达工具 其中最常用 最有名的是E R模型 67 1 8数据库系统设计简介 在概念结构设计阶段 首先要对需求分析阶段收集到的数据进行分类 组织 形成实体 实体的属性 标识实体的码 确定实体之间的联系类型 1 1 1 n m n 针对各个局部应用设计局部视图 如分E R图 合并局部视图 通过消除各局部视图的属性冲突 命名冲突 结构冲突 数据冗余等 最终集成为一个全局视图 如整体的E R图 概念模型是数据库逻辑设计的依据 是整个数据库设计的关键 68 1 8数据库系统设计简介 3 逻辑结构设计阶段任务是将概念结构进一步转化为某一DBMS支持的数据模型 包括数据库模式和外模式 首先需要将概念结构转化为一般的关系 网状 层次模型 然后将转化后的关系 网状 层次模型向特定DBMS支持下的数据模型转换 转换的主要依据是所选用的DBMS的功能及限制 没有通用规则 对于关系模型来说 这种转换通常都比较简单 最后对数据模型进行优化 69 1 8数据库系统设计简介 逻辑结构设计阶段可能还需要设计用户子模式 外模式 即用户可直接访问的数据模式 同一系统中 不同用户可以有不同的外模式 定义用户外模式时应该更注重考虑用户的习惯与方便 主要包括以下三个方面 1 使用更符合用户习惯的别名 2 针对不同级别的用户定义不同的外模式 以满足系统对安全性的要求 3 如果某些局部应用中经常要使用某些很复杂的查询 为了方便用户 可以将这些复杂查询定义为外模式 视图 以简化用户对系统的使用 70 1 8数据库系统设计简介 4 物理结构设计阶段用于为逻辑数据模型选取一个最适合应用环境的物理结构 包括数据库在物理设备上的存储结构和存取方法 由于不同的数据库产品所提供的物理环境 存取方法和存储结构各不相同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年科四考试试题题库及答案
- 慢性粒细胞白血病课件
- 心理演讲素材考试题及答案
- 钦州历史中考试卷及答案
- 管理运营岗位考试题及答案
- 情感障碍护理课件
- 中专外科护理考试题及答案
- 恐龙的时间课件
- 考幼师证考试试题及答案
- 治疗师操作考试题及答案
- 《室内空间设计》第三章课件
- 沥青及沥青混合料试验作业指导书
- 学习《北方民族大学学生违纪处分规定(修订)》课件
- 装配式建筑设计专篇(word6)
- Matlab-Simulink模型检查验证与测试
- 单位减少存档人员表
- 潮流玩具行业研究报告
- 高一新生入学家长会课件(PPT 23页)
- 导尿管球囊扩张术在吞咽障碍治疗中应用
- 四川省初中毕业生登记表
- (精心整理)学而思小学语文课程体系介绍
评论
0/150
提交评论