学习笔记1

规范化的目的是设计性能较优的关系模式,其主要理论依据是关系规范化理论,该理论通过定义不同的范式(如 1NF、2NF、3NF、BCNF 等),指导如何消除数据冗余、避免操作异常。

平凡函数依赖:如果函数依赖的右部属性集完全包含在左部属性集中(即 Y ⊆ X),那么该依赖一定成立,且不传递任何新信息。

下面的每一个范式之间都是递增的条件:

第二范式:消除非主属性对候选码的部分函数依赖。

第三范式:消除非主属性对候选码的传递函数依赖,也就是消除非主属性对非主属性的依赖。

bcn范式:消除主属性对候选码(不包含该主属性)的部分函数依赖和传递函数依赖,也就是说左边一定是完整的候选码。

第四范式:消除多值依赖,只保留一组多值依赖。

例题:若一个关系的任何非主属性都不部分依赖和传递依赖于任何候选码,则该关系还没有达到第三范式。(F):只要非主属性对候选码是不部分依赖和传递依赖代表的是完全函数依赖,也就满足第三范式。

规范化理论的核心作用就是通过改造关系模式,消除不合适的数据依赖,进而避免插入异常(如无法插入部分属性数据)、删除异常(如删除某条数据时连带删除其他必要数据)、更新异常(如修改数据时需多处同步)和数据冗余等问题。(增删改异常+数据冗余)

概念模型是对现实世界的抽象描述,属于数据库设计的概念层,其建立不依赖于具体的数据库管理系统(DBMS)和硬件设备,具有较高的独立性和通用性。

外模式(用户模式)是在数据库的逻辑设计阶段形成的,用于描述用户看到的数据结构;而物理设计阶段主要是设计数据的物理存储结构(如索引、存储路径等),形成的是内模式。

需求分析阶段:明确业务需求,收集数据和操作场景,输出需求规格说明书、数据字典初稿、业务流程图。

概念结构设计阶段:抽象现实世界,构建独立于 DBMS 的概念模型,输出实体 - 联系图(E - R 图)、概念数据模型。

逻辑结构设计阶段:将概念模型转化为具体 DBMS 支持的逻辑模型,输出关系模式(表结构)、数据约束(主键 / 外键)、逻辑模型图。(属于数据结构)

物理结构设计阶段:设计数据的物理存储方案(适配硬件 / DBMS),输出存储结构设计(索引、分区)、存取路径、物理模型。(属于内模式)

数据库实施阶段:落地设计,创建数据库、表、索引等实际对象,输出可运行的数据库、SQL 脚本、测试数据。(创建实际的数据)

数据库运行与维护阶段:监控运行状态,优化性能,处理故障和需求变更,输出维护日志、性能优化报告、变更记录。

基本表就是关系模式,就是数据库中的表。

从E-R图向关系模型转换,一个M:N的联系转换成一个关系模式时,该关系模式的码是N端实体码与M端实体码组合 。

Armstrong公理系统:

自反律:a是b的子集 b->a

增广律:a->b => ac->bc(特别的aa->ab,也就是a->ab)

传递律:a->b,b->c => a->c

扩展:

合并律:a->b,a->c => a->bc

证明:a->b => a->ab(增广率)

a->c => ab->bc(增广率)

a->bc

分解律:a->bc => a->b,a->c

证明:bc->b,bc->c(自反律)

a->b,a->c

伪传递律:a->b,bc->d =>ac->d

证明:ac->bc(增广律)

ac->d

维护数据一致性的意义在于,确保数据库中的数据是可靠的、有意义的,能正确反映现实世界的状态,避免因数据矛盾而导致决策失误或系统故障。

聚族索引是主键创建的时候建立的,有明确的物理顺序,就像b+树

非聚族索引是后续建立的create index创建的,像哈希表

相关推荐
Lhan.zzZ2 小时前
笔记_2026.4.28_004
c++·ide·笔记·qt
HackTwoHub4 小时前
AI大模型网关存在SQL注入、附 POC 复现、影响版本LiteLLM 1.81.16~1.83.7(CVE-2026-42208)
数据库·人工智能·sql·网络安全·系统安全·网络攻击模型·安全架构
l1t4 小时前
DeepSeek总结的DuckLake构建基于 SQL 原生表格式的下一代数据湖仓
数据库·sql
KmSH8umpK4 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第八篇
数据库·redis·分布式
其实防守也摸鱼5 小时前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
网络工程小王5 小时前
【LangChain 大模型6大调用指南】调用大模型篇
linux·运维·服务器·人工智能·学习
TDengine (老段)5 小时前
从施工监测到运营预警,桥科院用 TDengine 提升桥梁数据管理能力
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
qq_571099355 小时前
学习周报四十三
学习
小郑加油6 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习
S1998_1997111609•X6 小时前
论mysql国盾shell-sfa犯罪行为集团下的分项工程及反向注入原理尐深度纳米算法下的鐌檵鄐鉎行为
网络·数据库·网络协议·百度·开闭原则