还剩44页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《数据库原理与应用》本课件旨在系统介绍数据库原理与应用,涵盖数据库的基本概念、数据模型、关系代数与演算、数据库设计、安全性、事务管理、恢复技术、数据仓库、数据挖掘、NoSQL数据库以及大数据处理等核心内容通过本课程的学习,学生将掌握数据库系统的基本理论、设计方法和应用技术,为从事相关领域的工作打下坚实的基础本课程内容丰富,理论与实践相结合,有助于培养学生的创新思维和解决实际问题的能力课程简介课程目标课程内容课程特色使学生掌握数据库系统的基本概念、原理数据库基本概念、数据模型、关系代数与理论与实践相结合,案例分析与项目实践和设计方法培养学生运用数据库技术解演算、数据库设计、数据库安全性、数据相结合注重培养学生的创新思维和解决决实际问题的能力为学生后续学习和研库事务、数据库恢复、数据仓库与数据挖实际问题的能力采用多种教学方法,激究提供基础掘、NoSQL数据库、大数据处理等发学生的学习兴趣数据库基本概念数据()数据库(,1Data2Database)DB描述事物的符号记录,是数据库中存储的基本对象数据可长期存储在计算机内的、有组以是数字、文字、图像、音频织的、可共享的大量数据的集等多种形式合数据库中的数据按照一定的结构组织,可以有效地存储、管理和检索数据数据库管理系统(,3Database ManagementSystem)DBMS是管理和控制数据库的软件系统DBMS提供数据定义、数据操作、数据保护和数据控制等功能,保证数据的完整性、一致性和安全性数据模型概念模型也称信息模型,是按用户的观点对数据和信息建模,主要用于数据库设计E-R模型是常用的概念模型逻辑模型是按计算机系统的观点对数据建模,主要用于DBMS实现关系模型、层次模型和网状模型是常用的逻辑模型物理模型是对数据在计算机系统中的存储结构和存取方法建模物理模型依赖于具体的DBMS关系数据模型关系()Relation一个关系对应通常所说的一张表关系由关系名和属性名组成关系中的每一行称为元组(Tuple),每一列称为属性(Attribute)属性()Attribute描述实体某一方面的特性每个属性都有一个取值范围,称为域(Domain)主键()Primary Key唯一标识关系中元组的一个或一组属性主键不能为空外键()Foreign Key关系中引用另一个关系的主键的属性外键用于建立关系之间的联系关系代数并()Union1将两个关系合并成一个关系两个关系必须具有相同的属性差()Difference2从一个关系中减去另一个关系两个关系必须具有相同的属性交()Intersection3求两个关系的公共元组两个关系必须具有相同的属性笛卡尔积()Cartesian Product4将两个关系中的元组两两组合结果关系的属性是两个关系的属性的并集关系演算元组关系演算域关系演算以元组变量为基本单位,使用谓词公以域变量为基本单位,使用谓词公式式来描述查询条件元组关系演算是来描述查询条件域关系演算也是非非过程化的,只需要描述查询什么,过程化的,只需要描述查询什么,不不需要描述如何查询需要描述如何查询数据库设计需求分析概念设计1收集和分析用户需求,确定数据库的功能建立概念模型,描述数据的逻辑结构和关2和性能要求系E-R图是常用的概念模型物理设计逻辑设计4确定数据的存储结构和存取方法,优化数将概念模型转换为逻辑模型,选择合适的3据库的性能DBMS,定义关系模式范式理论5NF1第五范式4NF2第四范式BCNF3BC范式3NF4第三范式2NF5第二范式1NF6第一范式范式是关系数据库设计中的一系列规范,用于减少数据冗余和提高数据完整性从第一范式(1NF)到第五范式(5NF),范式的级别越高,数据冗余越少,数据完整性越高常用的范式是1NF、2NF、3NF和BCNF选择合适的范式需要在数据冗余和查询效率之间进行权衡数据库规范化消除冗余1减少数据重复存储,节省存储空间提高一致性2避免数据不一致,保证数据的准确性简化维护3降低数据维护的复杂性,提高维护效率数据库规范化是通过分解关系模式来消除数据冗余和提高数据完整性的过程规范化的目标是使关系模式达到一定的范式级别规范化可以提高数据库的性能和可维护性进行数据库规范化时,需要根据实际情况选择合适的范式级别过度规范化可能会导致查询效率降低,而规范化不足可能会导致数据冗余和不一致图E-R实体()属性()关系()Entity AttributeRelationship现实世界中可区分的事物实体用矩形表实体的特性属性用椭圆形表示,并用线实体之间的联系关系用菱形表示,并用示连接到实体线连接到实体图建模E-R识别实体确定属性12确定需要表示的实体类型例为每个实体类型确定相关的属如,学生、课程、教师等性例如,学生的学号、姓名、年龄等确定关系3确定实体类型之间的关系例如,学生选修课程,教师教授课程等数据库安全性身份验证授权验证用户的身份,确保只有授权用户才能访问数据库控制用户对数据库对象的访问权限例如,允许用户查询数据,但不允许修改数据审计加密记录用户对数据库的操作,用于安全分析和故障诊断对数据进行加密,防止未经授权的用户访问敏感数据数据访问控制自主访问控制()DAC1用户可以自主地控制他们所拥有的数据库对象的访问权限例如,用户可以授权其他用户访问他们所创建的表强制访问控制()MAC2数据库管理员控制所有数据库对象的访问权限用户不能自主地控制他们所拥有的数据库对象的访问权限基于角色的访问控制()RBAC3将用户分配到不同的角色,然后为每个角色分配相应的权限RBAC简化了权限管理用户授权管理授权()回收()Grant Revoke授予用户对数据库对象的访问权限撤销用户对数据库对象的访问权限例如,授予用户SELECT权限,允许例如,撤销用户的UPDATE权限,禁用户查询表中的数据止用户修改表中的数据数据库事务开始事务(执行操作(提交事务(回滚事务(Begin ExecuteCommit Rollback))))Transaction OperationsTransaction Transaction标记事务的开始执行一系列数据库操作,例如,将事务中的所有操作永久保存到撤销事务中的所有操作,将数据插入、更新、删除数据数据库提交事务后,所有操作库恢复到事务开始之前的状态都将生效回滚事务通常在发生错误时使用事务的特性ACID原子性()Atomicity事务是一个不可分割的操作序列要么全部执行,要么全部不执行一致性()Consistency事务必须保证数据库从一个一致性状态转换到另一个一致性状态隔离性()Isolation多个并发事务之间相互隔离,互不干扰每个事务都感觉是在独立地访问数据库持久性()Durability事务一旦提交,其结果必须永久保存在数据库中即使发生系统故障,也必须保证数据的持久性并发控制隔离级别()Isolation Level定义事务之间的隔离程度较高的隔离级2别可以提供更好的数据一致性,但可能会锁()降低并发性能Lock1用于控制对数据库对象的并发访问锁可以防止多个事务同时修改同一数据,并发控制算法(Concurrency从而保证数据的一致性)Control Algorithm用于实现并发控制常用的并发控制算法3包括两阶段锁协议(2PL)和乐观并发控制(OCC)封锁机制排他锁(,)共享锁(,)Exclusive LockX LockShared LockS Lock也称写锁如果事务T对数据对象A加上了X锁,则事务T可以也称读锁如果事务T对数据对象A加上了S锁,则事务T可以读A也可以修改A,其他任何事务都不能再对A加任何锁,直到读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,T释放A上的锁直到T释放A上的S锁死锁检测与预防死锁检测死锁预防12定期检测系统中是否存在死锁采取措施防止死锁的发生常常用的死锁检测算法包括资源用的死锁预防方法包括一次封分配图算法和超时算法锁法和顺序封锁法死锁解除3当检测到死锁时,采取措施解除死锁常用的死锁解除方法包括撤销事务和剥夺资源数据库恢复备份()日志()恢复算法()Backup LogRecovery Algorithm定期将数据库中的数据复制到其他存储介记录数据库的所有修改操作,用于在发生质上,以防止数据丢失故障时恢复数据使用备份和日志来恢复数据库常用的恢复算法包括基于检查点的恢复算法和基于日志的恢复算法故障类型事务故障事务在执行过程中由于某种原因而中断例如,程序错误、死锁等系统故障操作系统或DBMS发生故障例如,系统崩溃、停电等介质故障存储数据库的介质发生故障例如,磁盘损坏等计算机病毒计算机病毒感染数据库系统备份与恢复技术完全备份增量备份差分备份备份整个数据库完全只备份上次备份以来发备份上次完全备份以来备份需要较长的时间,生变化的数据增量备发生变化的数据差分但恢复速度快份速度快,但恢复速度备份速度适中,恢复速慢度也适中日志管理日志存储将日志存储在安全可靠的介质上日志应2该与数据库存储在不同的介质上,以防止日志记录介质故障导致数据丢失1记录数据库的所有修改操作日志记录应该足够详细,以便在发生故障时可以完全恢复数据库日志分析分析日志,以便在发生故障时可以快速定3位问题并进行恢复数据仓库概述定义特点应用数据仓库是一个面向主题的、集成的、非面向主题、集成性、非易失性、时变性决策支持、商业智能、数据挖掘易失的、时变的用于支持管理决策的数据集合数据仓库体系结构数据源1来自各种业务系统的数据,例如,订单系统、客户关系管理系统等数据抽取、转换和加载()2ETL将数据从数据源抽取出来,进行转换和清洗,然后加载到数据仓库中数据仓库3存储经过整理和集成的数据数据访问工具4用于访问和分析数据仓库中的数据例如,报表工具、OLAP工具、数据挖掘工具等星型模型设计事实表()维度表()星型模型()Fact TableDimension TableStar Schema包含实际的业务数据,例如,销售额、包含描述事实的属性,例如,时间、地由一个事实表和多个维度表组成,维度利润等事实表通常很大点、产品等维度表通常较小表围绕事实表呈星型分布星型模型结构简单,查询效率高数据集市定义1数据集市是数据仓库的一个子集,面向特定的部门或主题数据集市可以提高查询效率,并满足特定用户的需求特点2面向特定主题、数据量较小、查询效率高构建方法3可以从数据仓库中抽取数据,也可以直接从数据源构建数据挖掘概述定义目标应用数据挖掘是从大量数据中发现有用的模式发现隐藏在数据中的模式、规律和趋势,客户关系管理、风险管理、市场营销等和知识的过程数据挖掘也称为知识发现为决策提供支持(Knowledge Discoveryin Databases,KDD)数据挖掘任务分类()聚类()1Classification2Clustering将数据对象划分到预定义的类将数据对象划分到不同的组中,别中使得同一组中的数据对象相似,不同组中的数据对象不相似关联规则挖掘()3Association RuleMining发现数据对象之间的关联关系例如,购买了商品A的顾客也可能购买商品B分类算法决策树()支持向量机(Decision TreeSupport,)Vector MachineSVM一种基于树结构的分类算法决策树易于理解和解释,但容易过拟合一种基于统计学习理论的分类算法SVM具有较好的泛化能力,但计算复杂度较高神经网络()Neural Network一种模拟人脑神经元结构的分类算法神经网络具有很强的学习能力,但需要大量的训练数据聚类算法层次聚类K-Means DBSCAN一种基于距离的聚类算一种基于密度的聚类算一种基于层次结构的聚法K-Means算法简单法DBSCAN可以发现类算法层次聚类可以易实现,但对初始值的任意形状的簇,对噪声生成聚类树,便于观察选择敏感不敏感聚类结果关联规则挖掘置信度()Confidence2在包含项集X的事务中,同时包含项集Y的比例支持度()Support1包含项集X的事务的比例提升度()Lift3项集X和项集Y的关联程度数据库概述NoSQL定义特点应用NoSQL(Not OnlySQL)数据库是一种高可扩展性、高性能、灵活的数据模型Web应用、大数据分析、实时数据处理非关系型数据库,用于存储非结构化和半结构化数据数据模型NoSQL键值()1Key-Value将数据存储为键值对例如,Redis、Memcached文档()2Document将数据存储为文档文档可以是JSON或XML格式例如,MongoDB、Couchbase列族()3Column Family将数据存储为列族例如,HBase、Cassandra图()4Graph将数据存储为图例如,Neo4j文档型数据库优点缺点灵活的数据模型、易于扩展、支不支持事务、数据一致性难以保持复杂的查询证应用内容管理、Web应用、移动应用列族数据库优点缺点应用高可扩展性、高性能、适用于大规模数据数据模型复杂、不支持事务、数据一致性日志存储、点击流分析、传感器数据存储存储难以保证图数据库优点擅长处理关系复杂的数据、查询效率高缺点不擅长处理事务、数据一致性难以保证应用社交网络、知识图谱、推荐系统时序数据库缺点2数据模型简单、不擅长处理复杂的关系优点1专门用于存储和查询时间序列数据、查询效率高应用3监控系统、金融数据分析、物联网数据库应用NoSQL应用大数据分析实时数据处理WebNoSQL数据库可以用于存储Web应用中NoSQL数据库可以用于存储和分析大规模NoSQL数据库可以用于实时处理数据,例的用户数据、会话数据等数据如,实时监控、实时推荐等大数据概述定义特点()应用5V大数据是指无法在一定时间内用常规软件Volume(大量)、Velocity(高速)、商业智能、科学研究、公共服务工具对其进行获取、存储、管理和处理的Variety(多样)、Veracity(真实)、数据集合Value(价值)生态系统Hadoop((1HDFS Hadoop2MapReduce3YARN YetAnother))Distributed FileSystem ResourceNegotiatorHadoop的计算框架,用于处理大Hadoop分布式文件系统,用于存规模数据Hadoop的资源管理系统,用于管储大规模数据理集群资源4Hive5PigHadoop的数据仓库工具,用于将SQL语句转换为Hadoop的数据流语言,用于简化MapReduce编程MapReduce任务编程模型MapReduceMap将输入数据转换为键值对Reduce将具有相同键的值进行合并Combine在Map阶段对数据进行预处理,减少数据传输量Partitioner将数据分配到不同的Reduce节点计算框架Spark特点1基于内存计算、速度快、易于使用组件2Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX应用3实时数据处理、机器学习、图计算数据库发展趋势云数据库数据库人工智能数据库NewSQL将数据库部署在云平台上,提供弹性扩展、结合了关系数据库的ACID特性和NoSQL将人工智能技术融入数据库,提供智能化高可用性和低成本的解决方案数据库的可扩展性的数据管理和分析服务课程总结通过本课程的学习,我们了解了数据库的基本概念、原理和应用,掌握了数据库设计、安全性、事务管理、恢复技术、数据仓库、数据挖掘、NoSQL数据库以及大数据处理等核心内容希望同学们能够将所学知识应用于实际工作中,为我国的数据库事业发展做出贡献感谢大家的参与!。
个人认证
优秀文档
获得点赞 0