还剩58页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
中文数据库基础与应用欢迎参加《中文数据库基础与应用》课程本课程旨在系统地介绍中文数据库的设计、开发、管理与应用我们将从数据库系统的基本概念入手,逐步深入到高级技术与应用,帮助学员掌握构建高效、安全、可靠的中文数据库系统的技能通过本课程的学习,学员将能够胜任数据库管理员、数据库开发工程师等相关职位,为企业信息化建设贡献力量课程概述与学习目标课程概述学习目标本课程涵盖中文数据库的核心概念、语言、数据库设计、性理解数据库系统的基本原理和概念SQL•能优化、安全管理、以及最新的数据库技术发展趋势我们将通掌握语言,能够进行数据定义、操作和查询•SQL过理论讲解、案例分析、实验操作等多种方式,帮助学员全面掌能够进行数据库设计,包括需求分析、概念设计、逻辑设计•握中文数据库的知识体系和物理设计掌握数据库性能优化和安全管理技术•了解最新的数据库技术发展趋势•数据库系统发展历史早期阶段()1960s1层次数据库和网状数据库出现,解决简单数据管理问题例如,的系统IBM IMS关系数据库阶段()1970s2提出关系模型,奠定了现代数据库的基础E.F.Codd、等系统诞生Oracle DB2面向对象数据库阶段()1980s-1990s3试图融合数据库技术与面向对象编程,但并未成为主流数据库阶段(至今)NoSQL2000s4应对大数据和高并发需求,各种数据库涌现,如NoSQL、、等MongoDB RedisCassandra数据库阶段(至今)NewSQL2010s5结合关系数据库的特性和数据库的可扩展性ACID NoSQL,如、等CockroachDB TiDB数据库基本概念数据()Data1描述客观事物的符号记录,可以是数字、文字、图像、声音等数据库(,)Database DB2长期存储在计算机内的、有组织的、可共享的大量数据的集合数据库管理系统(Database ManagementSystem3,)DBMS管理数据库的软件系统,提供数据定义、数据操作、数据查询、数据控制等功能数据库系统(,)Database SystemDBS4由数据库、数据库管理系统、应用程序和数据库管理员组成的整体数据模型的演变层次模型以树状结构组织数据,易于理解,但灵活性差网状模型允许更复杂的数据关系,提高了灵活性,但结构复杂关系模型以二维表组织数据,简单直观,易于理解和操作,成为主流面向对象模型将数据和操作封装在一起,更符合面向对象编程的思想,但实现复杂半结构化模型数据结构灵活,适用于数据和数据等,如、等Web XMLJSON XML关系数据库的基本特征数据以二维表形式组织每个表包含多个行(记录)和列(字段),易于理解和操作数据之间存在关系通过主键和外键建立表之间的联系,实现数据共享和一致性支持语言SQL使用语言进行数据定义、操作和查询,简单易学SQL具有特性ACID保证事务的原子性()、一致性()、隔离性(Atomicity Consistency)和持久性()Isolation Durability语言简介SQL概述分类SQL SQL()是结构化查询语言,是关数据定义语言()用于定义数据库结构,如、SQL StructuredQuery Language•DDL CREATE系数据库的标准语言用于数据定义、操作、查询和控制、等ALTER DROP数据操作语言()用于操作数据库数据,如、•DML INSERT、等UPDATE DELETE数据查询语言()用于查询数据库数据,如等•DQL SELECT数据控制语言()用于控制数据库访问权限,如•DCL、等GRANT REVOKE数据定义语言()DDLCREATE ALTER1创建数据库、表、索引、视图等数据库修改数据库、表、索引、视图等数据库2对象对象的结构DROPTRUNCATE4删除数据库、表、索引、视图等数据库3删除表中的所有数据,但保留表结构对象数据操作语言()DMLINSERT向表中插入新的数据行UPDATE修改表中已存在的数据行DELETE删除表中已存在的数据行MERGE合并数据,根据条件插入或更新数据数据查询语言()DQL语句常用子句SELECT用于从表中查询数据,可以指定查询的列、条件、排序等指定查询的表•FROM指定查询的条件•WHERE指定分组的列•GROUP BY指定分组后的筛选条件•HAVING指定排序的列•ORDER BY指定返回的行数•LIMIT数据库表的创建与管理创建表修改表使用语句创建新的使用语句修改表的CREATE TABLEALTER TABLE表,指定表名、列名、数据类型结构,如添加列、删除列、修改、约束等列的数据类型等删除表使用语句删除已存在的表,同时删除表中的所有数据DROP TABLE主键和外键的概念主键()外键()Primary KeyForeign Key唯一标识表中每一行数据的列或列的组合,保证数据的唯一性和用于建立表与表之间的关系,指向另一个表的主键保证数据的完整性一个表只能有一个主键参照完整性一个表可以有多个外键数据完整性约束实体完整性1保证表中每一行数据的唯一性,通过主键约束实现域完整性2保证表中每一列数据的取值范围,通过数据类型、约束等实现CHECK参照完整性3保证表与表之间关系的正确性,通过外键约束实现用户自定义完整性4根据用户的业务需求自定义的约束,通过触发器、存储过程等实现索引的创建和使用索引的类型索引的概念包括树索引、哈希索引、全文索引等B2索引是一种提高数据库查询性能的数据1结构,类似于书籍的目录创建索引使用语句创建索引,可CREATE INDEX3以指定索引的列、类型等删除索引5使用索引使用语句删除不再需要的索DROP INDEX引4数据库会自动使用索引来优化查询,无需手动指定视图的概念和应用视图的概念1视图是一个虚拟的表,由一个或多个表的查询结果组成它不存储实际的数据,只存储查询的定义创建视图2使用语句创建视图,指定视图的名称和查询的定义CREATE VIEW应用场景3简化复杂的查询、隐藏敏感数据、提高数据安全性等存储过程基础存储过程的概念优点存储过程是一组预编译的语句,存储在数据库中,可以被多提高性能预编译,减少网络传输SQL•次调用类似于编程语言中的函数提高安全性防止注入•SQL模块化易于维护和重用•触发器的应用触发器的概念类型触发器是一种特殊的存储过程,在特定1包括触发器、触发器、BEFORE AFTER的数据库事件发生时自动执行例如,2触发器等INSTEAD OF、、等INSERT UPDATE DELETE创建触发器应用场景4使用语句创建触发器,CREATE TRIGGER3指定触发事件、触发时间和触发动作数据验证、数据审计、数据同步等数据库备份与恢复备份策略备份工具恢复策略测试恢复完全备份、增量备份、差异数据库自带的备份工具、第完全恢复、时间点恢复定期测试备份的有效性备份三方备份工具数据库安全管理身份认证1验证用户的身份,防止非法用户访问数据库权限控制2控制用户对数据库对象的访问权限,防止未经授权的操作数据加密3对敏感数据进行加密,防止数据泄露安全审计4记录用户的操作行为,便于追踪和分析安全事件用户权限控制权限角色1对数据库对象的访问和操作权限,如一组权限的集合,可以授予给用户或用、、、等2SELECT INSERTUPDATEDELETE户组回收权限4授予权限使用语句回收用户或角色的权3REVOKE使用语句授予用户或角色权限GRANT限数据库设计方法论需求分析收集和分析用户的需求,确定数据库的功能和性能要求概念设计建立独立于具体的概念模型,如图DBMS E-R逻辑设计将概念模型转换为具体的数据库模式,如关系模式物理设计根据具体的和硬件环境,确定数据库的存储结构和访问DBMS方法需求分析阶段收集需求分析需求12通过访谈、问卷调查、文档分对收集到的需求进行分析,识析等方式收集用户的需求别实体、属性、关系等编写需求规格说明书3将分析结果编写成文档,作为后续设计的依据概念设计阶段识别实体确定属性1确定系统中的实体,如用户、商品、订确定每个实体的属性,如用户、用户ID2单等名、密码等确定关系绘制图E-R4确定实体之间的关系,如一对
一、一对3将实体、属性和关系用图形表示出来多、多对多等逻辑设计阶段关系模式规范化将图转换为关系模式,确定表的结构、主键、外键等对关系模式进行规范化,消除数据冗余,提高数据完整性E-R物理设计阶段存储结构访问方法确定数据的存储方式,如文件组确定数据的访问方法,如索引、织、索引结构等分区等性能优化根据具体的和硬件环境,进行性能优化DBMS图的绘制方法E-R实体用矩形表示,矩形内写实体名属性用椭圆形表示,椭圆形内写属性名关系用菱形表示,菱形内写关系名连接线用直线连接实体、属性和关系实体关系模型实体1代表现实世界中的事物,具有属性属性2描述实体的特征,具有数据类型和取值范围关系3描述实体之间的联系,具有类型和约束规范化理论目的范式消除数据冗余,提高数据完整性,减少数据更新异常包括第一范式()、第二范式()、第三范式()、1NF2NF3NF范式()等BC BCNF第一范式()1NF要求每个属性都是不可再分的原子值例如,地址属性可以分解为省、市、区、街道等第二范式()2NF要求在满足的基础上,每个非主属性完全依赖于主键1NF如果存在部分依赖,则需要将表分解第三范式()3NF要求在满足的基础上,每个非主属性不传递依赖于主键2NF如果存在传递依赖,则需要将表分解范式()BC BCNF要求在满足的基础上,每个属性都不传递依赖于任何候选键3NF是的增强版,更加严格BCNF3NF反规范化设计概念方法1为了提高查询性能,允许在表中存在冗增加冗余列、增加派生列、合并表等2余数据适用场景注意事项4读多写少的场景,对性能要求高的场景3需要权衡性能和数据一致性数据库性能优化查询优化SQL1编写高效的语句,避免全表扫描SQL索引优化2创建合适的索引,避免过度索引硬件优化3增加内存、、磁盘等资源CPU参数优化4调整数据库的参数,提高性能查询优化技巧SQL使用索引尽量使用索引列作为查询条件避免全表扫描尽量避免使用,使用具体的列名SELECT*减少数据传输尽量减少返回的数据量优化JOIN选择合适的类型,优化顺序JOIN JOIN索引优化策略选择合适的列1选择查询频率高的列作为索引列选择合适的索引类型2根据列的数据类型和查询特点选择合适的索引类型避免过度索引3过多的索引会降低写入性能事务处理基础事务的概念事务的特性ACID事务是一组操作的逻辑单元,要么全部成功,要么全部失败原子性()、一致性()、隔离性(Atomicity Consistency)和持久性()Isolation Durability特性ACID原子性()Atomicity事务中的所有操作要么全部成功,要么全部失败一致性()Consistency事务执行前后,数据库的状态保持一致隔离性()Isolation多个事务并发执行时,互相隔离,互不影响持久性()Durability事务提交后,对数据库的修改永久保存并发控制概念方法1多个事务并发访问数据库时,需要进行锁机制、时间戳机制、多版本并发控制2并发控制,保证数据的一致性()等MVCC锁的粒度4锁的类型3表级锁、行级锁共享锁、排他锁锁机制详解共享锁排他锁多个事务可以同时持有共享锁,用于读取数据只有一个事务可以持有排他锁,用于修改数据死锁处理概念多个事务互相等待对方释放锁,导致所有事务都无法继续执行解决方法超时机制、死锁检测、死锁预防数据仓库概念定义面向主题的、集成的、非易失的、时变的数据集合,用于支持管理决策特点面向主题、集成、非易失、时变应用商业智能、数据分析、决策支持ETL、、,数据仓库的核心流程Extract TransformLoad数据挖掘简介定义方法12从大量数据中发现有用的模式分类、聚类、关联规则、回归和知识的过程分析等应用3客户关系管理、风险管理、市场营销等数据库NoSQL概念类型1,非关系型数据库,用于键值数据库、文档数据库、列式数据库Not OnlySQL2处理大数据和高并发场景、图形数据库等缺点4优点3事务支持弱、数据一致性弱可扩展性、高性能、灵活性分布式数据库概念架构将数据库分布在多个物理节点上,提高可扩展性和可用性共享存储、共享磁盘、无共享云数据库服务概念在云平台上提供的数据库服务,如、、阿AWS RDSAzure SQLDatabase里云等RDS优点弹性伸缩、按需付费、易于管理大数据处理Hadoop分布式存储和计算框架Spark快速的内存计算框架Flink流式计算框架实时数据处理流式计算1对实时数据流进行处理,如、等Flink StormCEP2复杂事件处理,从事件流中识别复杂的模式应用3金融风控、物联网监控等数据库运维管理维护监控1定期维护数据库,如备份、清理、优化监控数据库的性能和状态2等安全4故障排除3保证数据库的安全性及时发现和解决数据库故障性能监控工具自带工具第三方工具数据库自带的性能监控工具如、等Prometheus Grafana故障排查方法查看日志分析性能查看数据库的日志,分析错误信分析数据库的性能指标,如CPU息、内存、磁盘等调试SQL调试语句,找出性能瓶颈SQL数据迁移策略评估评估数据迁移的风险和成本规划制定详细的数据迁移计划执行执行数据迁移计划验证验证数据迁移的正确性数据库集群概念1多个数据库服务器组成一个集群,提高可用性和性能类型2主从复制、读写分离、分片等优点3高可用、高性能、可扩展高可用性解决方案自动故障转移主从复制1当主服务器发生故障时,自动切换到从将数据从主服务器复制到从服务器2服务器异地备份负载均衡4将数据备份到不同的地理位置,防止自将请求分发到多个服务器,避免单点故3然灾害障负载均衡技术概念算法将请求分发到多个服务器,提高系统的性能和可用性轮询、加权轮询、最小连接数、哈希等IP数据库安全审计概念内容记录用户的操作行为,便于追踪和分析安全事件记录用户的登录、查询、修改、删除等操作数据加密技术对称加密使用相同的密钥进行加密和解密,如、等AES DES非对称加密使用不同的密钥进行加密和解密,如、等RSA ECC哈希算法将数据转换为固定长度的哈希值,用于验证数据的完整性数据库发展趋势云原生数据库数据库赋能数据库HTAP AI123基于云平台构建的数据库,具有弹混合事务分析处理数据库,同时支利用人工智能技术优化数据库的性/性伸缩、高可用性等特点持和能和管理OLTP OLAP新一代数据库技术NewSQL图数据库1结合关系数据库的特性和数ACID NoSQL用于存储和查询图结构数据2据库的可扩展性多模数据库时序数据库4支持多种数据模型,如关系型、文档型3用于存储和查询时序数据、图型等课程总结通过本课程的学习,我们系统地介绍了中文数据库的设计、开发、管理与应用从数据库系统的基本概念入手,逐步深入到高级技术与应用,希望能够帮助大家掌握构建高效、安全、可靠的中文数据库系统的技能感谢大家的参与和支持!希望大家在未来的工作中能够灵活运用所学知识,为企业信息化建设贡献力量。
个人认证
优秀文档
获得点赞 0