news 2026/10/8 8:22:59

数据库逻辑结构设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据库逻辑结构设计

逻辑结构设计核心任务是将概念模型(通常是E-R图)转换为具体的数据库管理系统(DBMS)支持的数据模型(如关系模型),并对其进行优化。

一、 主要任务与目标

转换模型:将概念模型(E-R图)转换为关系模型(即一系列的关系模式/表)。

规范化处理:运用规范化理论(如范式)对关系模式进行优化,消除数据冗余和操作异常。

用户视图设计:设计外模式(用户视图),满足不同用户对数据的不同需求,并提高数据的安全性。

完整性约束设计:定义主键、外键、唯一性约束、检查约束等,保证数据的正确性和一致性。

二、 设计步骤

1. 概念模型向关系模型的转换

总体原则:实体转换为关系模式,实体的属性为关系的属性,实体的码为关系的键。

联系的处理:一个联系转换为一个关系模式,有三种情况:

1:1 联系:可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

1:n 联系:可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并(在n端加入1端的码)。

m:n 联系:必须转换为一个独立的关系模式。关系的属性为两端实体的码加上联系本身的属性,关系的码为两端实体码的组合。

2. 关系模式的规范化

将转换后的关系模式进行规范化分析,通常要求达到第三范式(3NF),有时为了性能会适当反规范化。

  • 1NF:属性不可再分。

  • 2NF:消除非主属性对码的部分函数依赖。

  • 3NF:消除非主属性对码的传递函数依赖。

  • BCNF:消除主属性对码的部分和传递函数依赖。

3. 用户子模式(外模式)设计

根据局部应用需求,设计用户视图。这包括:

  • 使用更符合用户习惯的别名。

  • 针对不同用户定义不同的视图。

  • 简化用户对数据的查询操作。

4. 完整性约束设计
  • 实体完整性:定义主键(Primary Key)。

  • 参照完整性:定义外键(Foreign Key)及级联操作(CASCADE, SET NULL等)。

  • 用户定义完整性:定义CHECK约束、NOT NULL、DEFAULT等。

三、示例

学生(学号,姓名,性别,年龄,系编号)

课程(课程号,课程名)

教师(教师号,姓名,性别,职称,系编号)

系(系编号,系名,电话)

讲授(教师号,课程号)

选修(学号,课程号,成绩)

主键用下划线,外键用波浪线

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 8:22:35

Kubernetes集群——Ingress篇

目录 一.认识Ingress——控制器 1.1Ingress介绍 1.2Ingress Controller介绍 二.Ingress-nginx 2.1简单介绍 2.2部署Ingress-nginx 2.3修改Ingress-nginx的Service类型 三.基于DaemonetHostnetwork部署Ingress-nginx(可选) 四.基于虚拟机名称访问…

作者头像 李华
网站建设 2026/10/8 8:22:32

10-Pandas导出Excel

数据分析完了总得有个产出——给老板看、给自己留档、做报告,都需要一份规整的报表。这一篇教你把分析结果导出成专业的 Excel 文件,把前面学的读取、清洗、分组、筛选全部串起来,最后落地到一份漂漂亮亮的报表上。先补上CSV这课 前面用过 to…

作者头像 李华
网站建设 2026/10/8 8:17:56

购房的术语大全的庖丁解牛

总纲:购房,是人生账本里规模最大、周期最长的一次人生置换。拿出大额金钱资产、未来数十年的时间心力,换取居住使用权、不动产资产;同时背负长期刚性负债。它不只是一次商品买卖,会直接改写人生账本收支、改变35岁窗口…

作者头像 李华
网站建设 2026/10/8 8:16:05

ponytail技能插件详解:从配置到实战,打造智能助手定制工作流

最近收到好几条留言都在问同一个东西:ponytail。有人以为是个发型教程,有人以为是个浏览器插件,还有人在评论区吵说这名字根本不像是技术工具。实际上在AI助手圈子里,ponytail是一个近期讨论度突然涨起来的技能插件,简…

作者头像 李华