还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据库岗位技能培训课件第一章数据库基础概念与发展什么是数据库数据库是一个长期存储在计算机内、有组织、可共享的大量数据的集合它不仅仅是数据的简单堆砌,而是按照特定的数据模型组织、存储和管理数据的系统核心特征•数据结构化数据按照特定模型组织•数据共享多个用户可同时访问•数据独立性应用程序与数据存储分离•最小冗余减少数据重复存储数据库管理系统()分类DBMS关系型数据库(RDBMS)非关系型数据库(NoSQL)采用关系模型组织数据,使用SQL语言进行操作灵活的数据模型,适合大数据和高并发场景•MySQL-开源、轻量、广泛应用•MongoDB-文档型数据库•Oracle-企业级、功能强大•Redis-键值存储,高性能缓存•SQL Server-微软生态集成•Cassandra-分布式列存储•PostgreSQL-开源、高级特性•Neo4j-图数据库关系数据库的核心特点数据结构化事务支持查询优化使用表、行、列的二维结构组织数通过ACID特性(原子性、一致据,每个表代表一个实体,列定义性、隔离性、持久性)保证数据操属性,行存储具体数据记录支持作的可靠性事务机制确保多个操标准SQL语言进行数据定义和操作要么全部成功,要么全部回滚,作,语法规范统一维护数据完整性和一致性关系数据库表结构示意图关系数据库通过主键和外键建立表与表之间的关联关系主键唯一标识每条记录,外键则引用其他表的主键,形成表间的逻辑连接这种设计模式遵循数据规范化原则,有效减少数据冗余,保证数据一致性一对多关系多对多关系一个客户可以有多个订单,客户表的主键作为订单表的外键第二章语言基础与操作SQL简介SQL什么是?SQL结构化查询语言(SQL)是一种专门用于管理和操作关系数据库的标准化语言它具有以下特点•声明式语言描述想要什么结果,而非如何获取•标准化遵循ISO和ANSI标准•功能强大涵盖数据定义、操作、控制等全方位功能•易学易用接近自然语言的语法结构命令分类详解SQLDDL-数据定义语言DML-数据操作语言用于定义和管理数据库对象结构用于对表中的数据进行增删改查CREATE创建数据库、表、视图等对象SELECT查询数据,最常用的命令ALTER修改已有对象的结构INSERT向表中插入新记录DROP删除数据库对象UPDATE修改表中已有的记录TRUNCATE清空表中的所有数据DELETE删除表中的记录DCL-数据控制语言TCL-事务控制语言用于控制数据库访问权限和安全用于管理数据库事务的执行GRANT授予用户特定权限COMMIT提交事务,永久保存更改REVOKE撤销用户已有权限ROLLBACK回滚事务,撤销未提交的更改•权限类型SELECT、INSERT、UPDATE、DELETE、ALL等基本语法规则SQL1语句以分号结尾2关键字不区分大小写每条SQL语句必须以分号(;)结束,这是SQL语句的SQL关键字如SELECT、FROM、WHERE等不区分大终止符在某些数据库客户端工具中,单条语句可以小写,SELECT和select是等效的但为了代码可读省略分号,但养成添加分号的习惯是良好的编程规性,建议将关键字大写,表名和列名小写,形成统一范的代码风格3字符串用单引号括起4注释方式SQL标准规定字符串和日期值需要用单引号()括单行注释使用两个连字符(--),多行注释使用/*起来例如WHERE name=John部分数据库*/注释是代码文档化的重要手段,能帮助团队成员也支持双引号,但单引号是更通用的做法理解复杂的SQL逻辑创建数据库与数据表示例创建数据库创建数据表CREATE DATABASEshop CREATETABLE productCHARACTER SETutf8mb4product_id CHAR4PRIMARY KEY,COLLATE utf8mb4_unicode_ci;product_name VARCHAR100NOT NULL,product_type VARCHAR32NOT NULL,sale_price INT,创建名为shop的数据库,设置字符集为utf8mb4以支持完整purchase_price INT,的Unicode字符,包括表情符号regist_date DATE;常用数据类型说明数值类型字符类型日期类型INT(整数)、DECIMAL(精确小数)、CHAR(定长)、VARCHAR(变长)、DATE(日期)、TIME(时间)、FLOAT(浮点数)TEXT(长文本)DATETIME(日期时间)查询示例语句SQL SELECT基础查询语法SELECT product_name,sale_price,product_typeFROM productWHEREsale_price=1000ORDER BYsale_price DESC;这条查询语句从product表中选取价格大于等于1000元的商品,返回商品名称、销售价格和商品类型,结果按价格降序排列WHERE子句ORDER BY子句用于过滤记录,支持比较运算符(=、、、=、=、)和逻辑运算符用于结果排序,ASC为升序(默认),DESC为降序可以指定多个排序字(AND、OR、NOT)段第三章数据库安装与环境搭建工欲善其事,必先利其器搭建稳定可靠的数据库环境是开展数据库工作的第一步本章将介绍主流数据库的安装配置方法,包括本地安装和云数据库服务,帮助您快速建立实践环境主流数据库安装介绍MySQL安装与配置SQL Server安装与配置云数据库服务MySQL是最流行的开源关系数据库下载SQL ServerExpress免费版或开阿里云RDS、腾讯云数据库、AWS下载社区版安装包,运行安装向导,发者版,选择基本安装类型,设置sa RDS等云服务提供开箱即用的数据库设置root密码,选择开发者默认配置账户密码同时安装SQL Server实例优势包括自动备份、高可用、即可推荐安装MySQL WorkbenchManagement Studio(SSMS)作为弹性扩展,适合生产环境部署作为图形化管理工具客户端工具本地环境搭建与远程连接本地安装方案云数据库方案优点优点•完全控制可以自由配置参数•高可用多副本自动容灾•离线使用不依赖网络•弹性扩展按需调整配置•学习实践适合初学者熟悉操作•自动备份数据安全有保障•成本低无需付费•专业运维云厂商负责维护缺点缺点•需要自行维护和升级•持续费用按使用量计费•硬件资源受限于本机配置•依赖网络需要稳定的互联网连接•缺乏高可用和灾备机制远程连接配置要点配置防火墙规则开放数据库端口(MySQL默认3306,SQL Server默认1433),设置白名单IP地址,使用SSL加密连接保证数据传输安全云数据库需要在控制台配置安全组规则数据库客户端工具介绍MySQL WorkbenchSQL ServerManagement StudioMySQL官方提供的可视化工具,集成了数据库设计、SQL开发、服务器管微软为SQL Server提供的集成开发环境功能强大,包括对象资源管理理等功能支持ER图设计、SQL编辑器代码高亮、查询性能分析等特性,器、T-SQL编辑器、执行计划查看是MySQL开发者的首选工具器、性能监控等完全免费,是SQLServer管理的标准工具Navicat等第三方工具Navicat是跨数据库平台的商业工具,支持MySQL、SQL Server、Oracle、PostgreSQL等多种数据库界面友好,功能丰富,包括数据同步、备份、模型设计等其他选择还包括DBeaver(开源)、DataGrip(JetBrains出品)等第四章数据库设计与建模优秀的数据库设计是系统成功的基石合理的数据库结构不仅能提高查询效率,还能保证数据的完整性和一致性,降低维护成本本章将系统讲解数据库设计的方法论,从需求分析到物理实现的完整流程数据库设计流程需求分析与业务人员深入沟通,明确系统功能需求,识别核心业务实体和业务规则整理用户访谈记录,形成需求文档,确定数据范围和数据量级概念设计-E-R图绘制将业务实体抽象为实体、属性和关系,绘制实体关系图(E-R图)标识实体的主键,定义实体间的联系类型(一对
一、一对多、多对多),确定属性的数据类型逻辑设计-关系模型转换将E-R图转换为关系模式,每个实体转换为一张表,多对多关系需要创建中间表确定每个表的字段、数据类型、主键和外键约束规范化设计应用数据库范式理论优化表结构第一范式(1NF)确保字段原子性,第二范式(2NF)消除部分函数依赖,第三范式(3NF)消除传递函数依赖,减少数据冗余物理设计根据具体数据库产品特性进行物理实现,选择合适的存储引擎,创建索引策略,设计分区方案考虑性能、存储空间和维护成本的平衡约束与索引设计数据库约束类型主键约束(PRIMARY KEY)外键约束(FOREIGN KEY)唯一约束(UNIQUE)唯一标识表中的每一行记录,值不能为空且建立表与表之间的关联关系,引用另一个表确保列中的值不重复,但允许空值例如邮必须唯一一个表只能有一个主键,可以是的主键外键约束维护引用完整性,防止出箱地址、身份证号等字段适合使用唯一约单列或多列组合现孤立记录束非空约束(NOT NULL)检查约束(CHECK)确保列中不能存储空值对于必填字段如用户名、注册时间等应添加限制列中可以存储的值范围例如年龄必须大于0小于150,性别只能非空约束是男或女等业务规则索引对性能的影响索引可以显著加速数据检索,但也会占用存储空间,并降低写入性能(INSERT、UPDATE、DELETE)应该在经常用于查询条件、连接条件、排序的列上创建索引,避免过度索引图示例解析E-R实体关系图(Entity-Relationship Diagram)是数据库概念设计的核心工具图中矩形代表实体,椭圆代表属性,菱形代表实体间的关系,连线上的符号表示关系的基数(1对
1、1对多、多对多)实体示例关系示例学生实体包含学号、姓名、性学生与课程之间存在选修关别、出生日期等属性;课程实系,这是典型的多对多关系,体包含课程号、课程名、学分需要通过选课表(包含学号、等属性课程号、成绩、选课时间)来实现良好的E-R图设计能够清晰表达业务逻辑,为后续的数据库实现提供准确的蓝图,是开发团队沟通的重要文档第五章数据库编程与高级功能掌握数据库高级编程技术能够实现更复杂的业务逻辑,提高系统性能和可维护性视图、存储过程、触发器等数据库对象是企业级应用开发的必备技能,本章将深入探讨这些强大的功能视图、存储过程与触发器视图(View)存储过程(Stored Procedure)触发器(Trigger)视图是虚拟表,是基于SQL查询结果的可重用对存储过程是预编译的SQL语句集合,存储在数据触发器是特殊的存储过程,在特定事件发生时象库中自动执行主要用途主要优势触发时机•简化复杂查询将复杂的多表关联查询封装•封装业务逻辑将复杂操作封装为单个调用•BEFORE触发器在数据修改前执行为视图•提高性能预编译,减少网络传输•AFTER触发器在数据修改后执行•数据安全限制用户只能访问特定列或行•代码复用多个应用可共享相同逻辑应用场景•逻辑独立性应用层不需要了解底层表结构•增强安全通过权限控制访问•数据验证在插入前检查数据合法性变化示例•审计日志记录数据变更历史示例•数据同步自动更新关联表数据CREATE PROCEDUREGetProductInfo•业务规则自动计算派生值CREATE VIEWhigh_price_product AS@product_id CHAR4SELECT product_name,sale_priceASFROM productBEGINWHEREsale_price=1000;SELECT*FROM productWHEREproduct_id=@product_id;END;事务与锁机制事务的ACID特性锁的类型及并发控制按锁的粒度分类原子性(Atomicity)•表级锁锁定整张表,并发度低事务中的所有操作要么全部成功,要么全部失败回滚不会出现部分成功的情况,保证数据的一致性•行级锁只锁定特定行,并发度高•页级锁锁定数据页,介于两者之间按锁的类型分类一致性(Consistency)•共享锁(读锁)多个事务可以同时读取事务执行前后,数据库必须从一个一致性状态转换到另一个一致性状态例如转账操作后,账户总额不变•排他锁(写锁)独占访问,其他事务不能读写隔离性(Isolation)多个并发事务之间相互隔离,一个事务的执行不受其他事务的影响通过隔离级别控制可见性持久性(Durability)事务一旦提交,对数据的修改就是永久性的,即使系统故障也不会丢失通过日志机制实现注入安全防护SQLSQL注入攻击原理SQL注入是最常见的Web应用安全漏洞之一攻击者通过在输入字段中插入恶意SQL代码,操纵数据库执行非预期的查询,可能导致数据泄露、篡改或删除危险示例安全示例//不安全的代码//使用参数化查询String query=SELECT*FROM usersWHERE username=+input+;String query=SELECT*FROM usersWHERE username=;PreparedStatement stmt=conn.prepareStatementquery;//如果input为admin OR1=1stmt.setString1,input;//实际执行SELECT*FROM usersWHERE username=admin OR1=1参数化查询将用户输入作为数据而非代码处理,从根本上防止SQL注入这将返回所有用户记录,绕过身份验证防护措施最佳实践始终使用参数化查询(PreparedStatement)或ORM框架,永远不要拼接SQL字符串实施最小权限原则应用程序数据库账户只授予必需的权限,禁止DROP、ALTER等危险操作输入验证对用户输入进行白名单验证,过滤特殊字符错误信息处理不要向用户显示详细的数据库错误信息定期安全审计使用SQL注入扫描工具检测潜在漏洞第六章数据库性能优化与维护性能优化是数据库管理员的核心职责随着数据量增长和访问并发度提升,数据库性能优化变得至关重要本章将介绍查询优化、参数调优、备份恢复等实战技能,助您成为高效的数据库管理者性能优化策略查询优化索引优化索引创建原则•在WHERE子句中频繁使用的列上建立索引•在JOIN连接条件的列上建立索引•在ORDER BY和GROUP BY的列上建立索引•考虑组合索引,注意最左前缀原则避免过度索引•索引会占用存储空间•降低INSERT、UPDATE、DELETE性能•根据实际查询需求创建索引执行计划分析使用EXPLAIN命令分析SQL查询的执行计划,识别性能瓶颈•检查是否使用了索引(type列显示index或ref为好)•关注扫描行数(rows列)是否过大•避免全表扫描(type列显示ALL是最差情况)•优化连接方式,减少临时表使用数据库参数调优根据服务器硬件配置和业务特点调整数据库参数,如缓冲池大小(innodb_buffer_pool_size)、最大连接数(max_connections)、查询缓存等,可显著提升性能备份与恢复全量备份增量备份差异备份备份数据库的完整内容优点是恢复简单快只备份自上次备份以来发生变化的数据优备份自上次全量备份以来的所有变化介于速,缺点是占用空间大、备份时间长适合点是备份速度快、占用空间小,缺点是恢复全量和增量之间,恢复时只需要最近的全量作为基础备份策略,建议每周执行过程复杂适合每日执行备份和最近的差异备份备份策略最佳实践1233-2-1原则定期演练自动化监控保留3份数据副本,使用2种不同的存储介定期执行恢复演练,验证备份的完整性和可使用脚本自动化备份流程,配置监控告警质(如本地磁盘和云存储),至少1份存放用性很多企业备份成功但恢复失败,演练备份失败时立即通知管理员,避免长期备份在异地这样可以应对各种灾难场景是确保业务连续性的关键失效而不知情的风险数据库安全管理用户权限管理遵循最小权限原则,每个用户只授予完成工作所需的最小权限集定期审查和清理不必要的权限创建用户撤销权限CREATE USERdeveloper@localhost REVOKEDELETE ONshop.*IDENTIFIED BYSecurePass123!;FROM developer@localhost;授予权限GRANT SELECT,INSERT,UPDATEON shop.*TO developer@localhost;数据加密传输加密使用SSL/TLS加密客户端与数据库服务器之间的通信,防止网络嗅探和中间人攻透明数据加密(TDE)在数据库文件级别加密,对应用透明,适合整个数据库的加密需求击备份加密确保备份文件也被加密,防止备份被盗用存储加密对敏感数据列进行加密存储,如密码、信用卡号等可以使用数据库内置加密函数或应用层加密审计与日志启用数据库审计功能,记录所有敏感操作如登录尝试、权限变更、数据修改等定期分析审计日志,及时发现异常行为使用专门的日志分析工具可以提高安全监控效率第七章实战案例与岗位技能提升理论与实践相结合是掌握数据库技能的关键本章通过真实的项目案例,带您完整体验数据库设计、开发、优化的全流程,最后总结数据库岗位的核心技能和职业发展路径综合案例演练与岗位技能总结实战案例一学生成绩管理系统设计包含学生表、课程表、成绩表的数据库实现学生信息管理、课程选修、成绩录入查询等功能重点练习多表关联查询、聚合函数使用、成绩统计分析等SQL技能实战案例二电商商品库存管理构建商品表、订单表、库存表、供应商表等实现商品CRUD操作、库存预警机制、订单处理流程使用事务保证库存一致性,使用触发器自动更新库存,练习高并发场景下的数据一致性控制数据库管理员日常工作监控与维护1每日检查数据库性能指标、磁盘空间、备份状态处理慢查询,优化性能瓶颈2安全管理定期审查用户权限,检查安全日志,及时安装安全补丁需求响应3与开发团队协作,评审数据库设计方案,提供SQL优化建议4容量规划预测数据增长趋势,制定扩容计划,测试高可用方案岗位技能提升建议深入学习理论动手实践项目系统学习数据库原理、事务处理、并发控制、分布式数据库等理论知识,为实践打下坚实基础参与真实项目开发,积累实战经验尝试不同类型的数据库和应用场景,拓宽技能范围获取专业认证参与技术社区考取Oracle OCP、MySQL认证、SQL ServerMCSA等专业证书,提升职业竞争力加入数据库技术论坛和社群,关注技术博客,与同行交流经验,保持技术敏锐度职业发展路径。
个人认证
优秀文档
获得点赞 0