当前位置: 首页 > news >正文

**需求分析** → **概念设计(E-R建模)** → **逻辑设计(E-R转关系模式+规范化)** → **物理设计(索引、存储、分区等)**,逐层抽象与细化

  1. E-R 模型:概念设计阶段的核心工具,用实体(Entity)属性(Attribute)联系(Relationship)描述现实世界的信息结构,是向关系模式转换的基础。

  2. 关系代数:形式化查询语言基础,选择(σ)筛选行,投影(π)提取列,连接(⋈)关联多表——SQL 的WHERESELECTJOIN均可映射为其操作。

  3. SQL:标准数据库操作语言,支持DML(增删改查:INSERT/DELETE/UPDATE/SELECT)DDL(如 CREATE VIEW)视图是虚表,提供逻辑独立性与安全控制。

  4. 范式理论:用于消除数据冗余与异常,从1NF(原子值)→ 2NF(消除非主属性对候选键的部分依赖)→ 3NF(消除传递依赖)→ BCNF(更严格:所有决定因素都含候选键),是逻辑设计规范化目标。

  5. 模式分解:将一个关系模式拆分为多个子模式时,需满足:

    • 无损连接性(自然连接后能还原原关系,避免信息丢失);
    • 保持函数依赖(分解后所有原FD能在子模式中逻辑蕴含,保障语义完整性)。
  6. 事务(ACID)

    • Atomicity(原子性):全做或全不做;
    • Consistency(一致性):事务前后数据库状态均满足完整性约束;
    • Isolation(隔离性):并发执行效果等价于某串行顺序;
    • Durability(持久性):提交后结果永久保存。
  7. 并发控制 — 封锁机制

    • X锁(排他锁):写锁,互斥,禁止其他事务读/写;
    • S锁(共享锁):读锁,允许多个S锁共存,但排斥X锁;
    • 冲突操作(如 R-W/W-R/W-W)需加锁协调。
  8. 两段锁协议(2PL):保证可串行化的经典协议,事务分增长阶段(只加锁)收缩阶段(只解锁),严格2PL还要求释放所有锁在提交前完成。

  9. 数据库安全

    • 授权(GRANT/REVOKE)控制用户权限;
    • 视图可作为安全层,隐藏敏感列/行,实现数据访问最小权限原则
  10. 索引(B+树为主)

    • B+树:平衡多路搜索树,所有数据在叶子节点且链表相连,适合磁盘I/O与范围查询;
    • 聚簇索引:表数据物理顺序与索引键一致(如 MySQL InnoDB 的主键索引),每个表仅一个;非聚簇索引(二级索引)存储主键值作指针。
  11. 数据库设计阶段

    • 需求分析概念设计(E-R建模)逻辑设计(E-R转关系模式+规范化)物理设计(索引、存储、分区等),逐层抽象与细化。
  12. 数据仓库

    • 面向分析的集成化、主题导向、时变、非易失型数据库;
    • ETL(Extract-Transform-Load)实现源系统到仓库的数据整合;
    • OLAP(联机分析处理)支持多维分析(如切片、钻取、旋转),常基于星型/雪花模型与物化视图。

这些知识点环环相扣:E-R指导建模 → 关系代数支撑SQL语义 → 范式与分解保障逻辑质量 → 事务与并发控制保障运行正确性 → 索引与物理设计提升性能 → 安全与视图强化治理 → 数据仓库延伸至分析场景。

# 示例:用SQL实现“查询每个部门平均工资,并只显示高于公司平均工资的部门”SELECT dept,AVG(salary)AS avg_sal FROM emp GROUP BY dept HAVING AVG(salary)>(SELECT AVG(salary)FROM emp);

http://www.jsqmd.com/news/609946/

相关文章:

  • ESP32实战:从零构建物联网项目的完整路径
  • RK3568-11.0 WiFi热点ping测试丢包率
  • [Python3高阶编程] - Gunicorn 源代码阅读四:深入主控逻辑- Gunicorn是如何管理woker的(Arbiter + 进程管理)
  • 计算机毕业设计:Python天气数据爬取及可视化展示系统 Flask框架 数据分析 可视化 爬虫 气象数据分析(建议收藏)✅
  • 图像格式:灰度图、RGB、HSV、Bayer、YUV
  • 抖音高效批量下载全攻略:无水印视频自动化管理工具使用指南
  • 和内镜的报告接口
  • 5分钟搞定PySide2串口助手:从QT Designer到Python打包全流程
  • YugabyteDB 性能团队如何利用 AI 的力量
  • Windows系统的MBR磁盘分区
  • LeetCode HOT100 - 滑动窗口最大值
  • 九齐NY8B062F 定时器0 中断函数配置
  • 【Agent面试题大揭秘】50道高频题深度解析,助你拿下Offer!
  • 从光栅条纹到三维点云:MATLAB实现多频外差相位展开全流程
  • AI辅助论文引用生成的六种智能文献管理策略解析
  • 虚拟磁链在直接功率控制Simulink仿真中的应用及其整流器、逆变器仿真 —— 基于vf-dp...
  • Mask2Former的‘掩码注意力’到底强在哪?手把手带你用PyTorch实现核心模块
  • 2026.4.8总结
  • CANoe Log 在线回放实操指南
  • 大模型之Linux服务器部署大模型斜
  • OpenCV小项目(2)——人脸识别打卡
  • 从拉普拉斯变换到凯莱-哈密顿:矩阵指数函数计算方法的“前世今生”与选择指南
  • 为什么你的架构设计总被老板驳回?GB/T 8567 标准解读
  • C语言学习的第一周
  • Vue3项目中iframe通信实战:手把手教你实现跨项目消息传递
  • 机器学习笔记(9): L-smooth 假设
  • 显式 + 隐式特征交叉融合模型
  • Linux:入门开发工具--Git和GDB调试器
  • 电力电子Matlab/Simulink仿真:模块化多电平变换器(MMC)及其控制策略
  • 六种基于AI技术的文献引用生成方案及其在智能管理中的应用分析