数据库-数据库设计

109 阅读4分钟

七、数据库设计

需求分析

  • 了解业务需求:首先,与业务团队沟通,了解他们需要解决的问题、期望达到的目标以及日常操作流程。
  • 确定实体和关系:识别出所有相关的实体(如客户、订单、产品等)以及实体之间的关系(一对一、一对多、多对多)。

概念结构设计

1.E-R

实体-关系模型(Entity-Relationship Model)
ER模型,全称为实体-关系模型,是由美籍华裔计算机科学家陈品山(Peter Chen)于1976年提出的一种概念数据模型。它是数据库设计中用于描述现实世界中的实体及其相互关系的工具,是数据库设计的初级阶段。ER模型通过图形化的方式,帮助数据库设计师和业务分析师理解、分析并记录数据需求,进而转换成数据库的具体结构。
基于需求分析的结果,绘制ER图,用以直观展示实体、属性(列)和它们之间的关系。
实体-关系模型,与具体数据库无关。
基本构成元素
1.实体(Entity):实体是现实世界中可以区别的、独立存在的事物或概念,例如学生、课程、订单等。在ER图中,实体通常用矩形表示,并在矩形内写上实体的名称。
2.属性(Attribute):属性是描述实体特征的细节,每个实体都有若干个属性。例如,学生实体可能有姓名、学号、年龄等属性。属性在ER图中一般位于实体的下方,用椭圆表示,并用连线与实体相连。
3.关系(Relationship):关系表示实体之间的关联方式,分为一对一(1:1)、一对多(1:n)、多对多(**代表一个或多个,m:n)等类型。例如,一个学生可以选修多门课程,一门课程也可以被多个学生选修,这就是多对多的关系。关系在ER图中用菱形表示,并用连线连接相关的实体,同时在菱形内注明关系的名称和类型。
二元联系:两个实体之间的关系

ER-dualistic

三元联系:三个实体之间的关系。
注意:采购时间也是采购关系的主键,与其他主键一起唯一表示一条记录。

logic-key

做题技巧
1.实体-关系图缺失属性:(1)实体缺失属性。(2)关系缺失属性,关系也是个实体,也有属性。
2.实体-关系图缺失关系:多重度

2.规范化

规范化
通过对数据进行规范化处理(通常至少到第三范式),减少数据冗余,提高数据的一致性和完整性。

逻辑结构设计

表结构设计(关系模式)
将E-R模型转化为关系模式(具体的数据库表结构),定义每个表的字段(列)、数据类型、长度、是否允许为空等。
主键:下划实线,外键:下划虚线。学生(学号,姓名,年龄)
在关系之中,既是主键,又是外键,实线和虚线同时存在。
复合主键(组合主键):(属性A,属性B,C)

属性

索引设计
根据查询需求为表的某些字段设计合适的索引,以加快查询速度。
视图设计
如果需要,设计视图以提供特定的数据视图给用户或应用程序,而不暴露底层表结构。

物理结构设计

  • 存储策略:决定数据在物理存储上的分布和组织形式,如数据文件的存放位置、表空间的分配。
  • 性能优化:根据预期的数据库负载调整参数,如缓冲池大小、日志文件设置,以优化读写性能。
  • 安全设计:设定访问控制、权限管理、备份与恢复策略等,确保数据的安全性和可恢复性。

实施与测试

  • 数据库创建:使用SQL脚本或数据库管理工具创建数据库、表结构、索引等。
  • 数据加载:导入初始数据或迁移现有数据到新设计的数据库中。
  • 测试:执行各种查询和操作测试,确保数据库符合性能、安全和功能需求。

维护与优化

  • 监控与调整:定期监控数据库性能,根据实际运行情况进行调优。
  • 版本升级:随着业务发展和技术进步,可能需要对数据库进行升级或迁移。
  • 数据归档与清理:制定策略处理过期或不再需要的数据,保持数据库的高效运行。