数据库设计(二)——简单设计实例

article/2025/10/13 15:32:10

Mysql设计步骤


一、设计一套系统数据库的步骤
        1、实现什么样的功能(保证项目功能的完整性,列出所有模块)。
        2、通过思维导图将每个功能模块串联起来(放射状,细节可以用文字描述)。
        3、数据库需求分析
                1)、内容要求:调查应用系统用户所需要操作的数据,在数据库中该存储什么数据。
                2)、处理要求:调查应用系统用户要求对数据进行什么样的处理,理清数据库中各种数据之间的关系。
                3)、数据字典的整理。
                4)、用E-R图画出表与表之间的关系。
                5)、将建好的表进行数据流的测试。

二、E-R图补充
        1、实体:用方框表示,方框内为实体的名称。
        2、实体的各种属性:用椭圆表示,椭圆内为属性名称。使用线段将其和相应的实体连接起来。
        3、实体之间的联系:用菱形表示,菱形内为联系的名称。
        4、实体和实体之间的联系
                1)、一对一:员工信息表和员工学历表是一对一关系。
                2)、一对多:员工信息表和员工考勤表一对多关系。
                3)、多对多:员工信息表和员工所报培训课程表是多对多关系。
 

mysql索引相关小常识:

一,经常被用来过滤记录的字段。

1. primary key 字段, 系统自动创建主键的索引;
2. unique key 字段,系统自动创建对应的索引;
3. foreign key 约束所定义的作为外键的字段;

4. 在查询中用来连接表的字段;

5. 经常用来作为排序(order by 的字段)基准的字段;


二. 索引会占用磁盘空间,创建不必要的索引只会形成浪费.

三. 索引的创建必须考虑数据的操作方式。

1.内容很少变动,经常被查询,为它多创建几个索引無所谓;

2.经常性,例行性变动的表而言,则需要谨慎地创建确实必要的索引;


四. primary key 和 unique key的区别
1. 作为Primary Key的域/域组不能为null。而Unique Key可以。
2. 在一个表中只能有一个Primary Key,而多个Unique Key可以同时存在。
更大的区别在逻辑设计上, Primary Key一般在逻辑设计中用作记录标识,这也是设置
Primary Key的本来用意, 而Unique Key只是为了保证域/域组的唯一性。


五.复合索引和单一索引

  复合索引是指多字段联合索引,查询时经常需要这几个字段组合一起为条件再查询 
  唯一索引主要是用主键ID索引,存储结构顺序与物理结构一致

如:create  index  idx  on  tbl(a,b)  
 先按a排序, a相同的按b排序,所以当你查a或ab的时候, 
能够利用到这个索引.但当你只查b的时候,索引对你的帮助不大.可能可以跳跃查找.

 
添加和删除索引的情况:
 
1、表的主键、外键必须有索引;

2、数据量超过300w的表应该有索引;

3、经常与其他表进行连接的表,在连接字段上应该建立索引;

4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

5、索引应该建在选择性高的字段上;

6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:

   A、正确选择复合索引中的主列字段,一般是选择性较好的字段;

   B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;

   C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;

   D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;

   E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;

8、频繁进行数据操作的表,不要建立太多的索引;

9、删除无用的索引,避免对执行计划造成负面影响;

 

 

简单数据库设计实例

 

一个曾经做过的简单的管理系统中数据库设计的例子,包括设计表、ER图、建模、脚本.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


项目信息


Project Name:   Book Manager System
DB:                MySQL5.5
DB Name:         db_library
Tables:
1). tb_book_info
2). tb_user
3). tb_admin_info
4). tb_borrow_return
5). tb_book_type

表设计

E-R图

PowerDesigner建模

 

 

 


脚本


C:\Program Files\MySQL\MySQL Server5.5\bin>mysql -u root -pabcd<c:\admin.sql
NOTE:
1.MySQL/bin目录,执行mysql -u root -pabcd <c:\admin.sql
2.练习用的数据库名:library  项目中数据库为db_library
/*==============================================================*/
/* Table: tb_admin_info   负责管理员登陆的表                         */                         
/*==============================================================*/
drop database if exists library; # 练习用的数据库,如果存在则删除。
create database library;           # 创建数据库。
use library;                          # 打开数据库,注意用分号。
create tabletb_admin_info          # 建练习用表。
(
admin_id int(3) auto_increment not null primary key,   # 主键,非空,自增长。
admin_user varchar(15) not null,
admin_pwd varchar(15) not null
);
insert into tb_admin_infovalues('001','Tom','Jerry');  # 插入两条数据,用于做测试。
insert into tb_admin_infovalues('002','root','root');  # 插入两条数据,用于做测试。
 

 


http://chatgpt.dhexx.cn/article/KDwivKCm.shtml

相关文章

数据库设计的一般步骤

经过几天给韶关某个高校进行数据库设计的实训&#xff0c;对数据库设计的过程有了更加深刻的理解。 一、数据库设计的步骤 &#xff08;1&#xff09;了解功能需求 在设计数据库之前&#xff0c;设计人员必须要先了解系统的功能需求。这里可以通过阅读产品需求规格说明书&…

9.数据库设计

数据库设计 1、数据库设计概述 数据库设计。广义地讲&#xff0c;是数据库及其应用系统的设计&#xff0c;即设计整个数据库应用系统&#xff1b;狭义地讲&#xff0c;是设计数据库本身&#xff0c;即设计数据库的各级模式并建立数据库&#xff0c; 这是数据库应用系统设计的一…

数据库设计-概念结构设计

文章目录 数据库设计概念设计结构概念结构设计ER模型的基本元素实体/实体集属性区别实体和属性联系 二元联系的关系1:11:nm:n 一元联系1:11:nm:n 三元联系 采用ER模型的概念设计设计局部ER模型例题设计全局ER模型全局ER模型的优化 数据库设计 数据库设计&#xff1a;构造最优的…

数据库设计—图书管理数据库系统设计

如下代码供学习交流&#xff0c;获取完整代码&#xff0c;请关注公众号&#xff08;coding加油站&#xff09;获取 1、项目简介 图书馆数据库&#xff0c;该项目同时提供pythonweb可视化展示界面&#xff0c;也可提供相关报告数据&#xff0c;可以用来作为数据库系统设计的期…

数据库设计(一)——数据库设计

一、数据库设计简介 按照规范设计&#xff0c;将数据库的设计过程分为六个阶段&#xff1a; A、系统需求分析阶段 B、概念结构设计阶段 C、逻辑结构设计阶段 D、物理结构设计阶段 E、数据库实施阶段 F、数据库运行与维护阶段 需求分析和概念结构设计独立于任何数据库管理系统…

数据库设计的六个基本步骤

按照规范设计的方法&#xff0c;考虑数据库及其应用系统开发全过程&#xff0c;可将数据库设计分为以下6个阶段&#xff0c;分别为&#xff1a;1.需求分析&#xff0c;2.概念结构设计&#xff0c;3.逻辑结构设计&#xff0c;4.物理结构设计&#xff0c;5.数据库实施&#xff0c…

数据库设计(一)

目录 数据库设计的基本概念&#xff1a; 数据库设计包括以下几个部分&#xff1a; 需求设计&#xff1a; 1、数据&#xff1a; 2、处理&#xff1a; 概念结构设计&#xff1a; 实体&#xff1a; 例如&#xff1a; 联系类型&#xff1a; 1、一对一&#xff1a; 2、一对多&a…

数据库:数据库设计(需求,设计,运行,维护)

1&#xff0c;数据库设计概述 1.1&#xff0c;数据库设计的基本概念 数据库设计是指对于一个给定的应用环境&#xff0c;构造&#xff08;设计&#xff09;优化的数据库逻辑模式和物理结构&#xff0c;并据此建立数据库及其应用系统&#xff0c;使之能够有效地存储和管理数据&…

数据库系统-数据库设计

数据库系统-数据库设计 数据库设计概述及六步骤简介 数据库设计是指对于一个给定的应用环境&#xff0c;构造最优的数据库模式&#xff0c;建立数据库及其应用系统&#xff0c;使之能够有效地存储数据&#xff0c;满足各种用户的应用需求。 数据库设计的特点 数据库设计是一…

学生成绩管理系统数据库设计--MySQLSQL Server

MySQL 数据库设计-学生成绩管理系统 设计大纲友情链接 1、医疗信息管理系统数据库–MySQL2、邮件管理数据库设计–MySQL3、点餐系统数据库设计–SQL Server4、商品管理系统数据库设计–SQL Server5、SQL Server医疗信息管理系统数据库【英文版-源码】–&#xff08;Medical Ma…

数据库设计-网上书店系统

一、需求分析 1.1 用户分析 网上书店系统的使用者主要有三种&#xff1a;普通用户、会员和管理员。 普通用户&#xff1a;浏览图书、查询图书、注册成为会员等&#xff1b; 会员&#xff1a;浏览图书、查询图书、加入购物车、修改购物车、订购图书、生成及查看订单、查看修改…

数据库设计

数据库设计 一.数据库设计概述1.数据库设计的特点2.数据库设计方法3.数据库设计的基本步骤4.数据库设计过程中的各级模式 二.需求分析1.需求分析的任务2.需求分析的方法3.数据字典 三.概念结构设计1.概念模型2.E-R模型3.概念结构设计 一.数据库设计概述 ①数据库设计是指对于一…

机器学习之PCA

一、PCA基本介绍 PCA(Principal Components Analysis)-主成分分析算法 用于数据降维、可视化、去噪非监督学习算法 二、PCA工作原理 目标&#xff1a;每次将空间中多维的样本点映射到一条直线上&#xff08;要保证样本点之间的间距最大&#xff0c;用方差衡量&#xff0c;即保…

PCA9536——填坑

0. 问题 使用PCA9536输出模式控制4个小灯&#xff0c;开始时候按几次就不显示了&#xff0c;以为是接线不稳定原因。 后来一按开机电源就不显示了&#xff0c;以为是其他器件电源不稳定导致。 1. 问题1排除 接线问题&#xff0c;重新接线&#xff0c;重新做端子&#xff0c;…

sklearn PCA

sklearn.decomposition.PCA class sklearn.decomposition.PCA(n_componentsNone, *, copyTrue, whitenFalse, svd_solverauto, tol0.0, iterated_powerauto, random_stateNone)官方&#xff1a;link PCA是特征降维中一种 线性降维 的方法。 与特征选择不同&#xff08;直接筛…

使用PCA对彩色图片降维

PCA对图片降维 1.原图片2.PCA降维思路3.代码4.k5效果图5.结论 1.原图片 2.PCA降维思路 1、小灰灰图片&#xff08;407&#xff0c;367&#xff09;2、求图片407行每行的均值mean&#xff0c;再将407行每行元素各自减去对应行的均值mean&#xff0c;即去中心化。得矩阵X&#xf…

使用PCA拟合平面

PCA原理&使用PCA拟合平面 背景三点确定一平面多点拟合平面基础数学知识PCA基本思想PCA拟合平面计算过程 PCA理解中心化协方差对角化 背景 本文参考以下两篇平面解析的论文。 《Fast Plane Extraction in Organized Point Clouds Using Agglomerative Hierarchical Cluster…

Dynamic inner PCA 和 Dynamic PCA

动态PCA方法的核心思想&#xff1a; 将数据X变成增广矩阵&#xff0c;即&#xff1a; l为潜在变量数&#xff0c;然后对X进行传统的PCA方法进行求解&#xff0c;即是动态PCA的结果。 动态内模PCA与之不同&#xff0c;上述动态PCA的一大缺陷是增加了数据的维度&#xff0c;而动…

python实现PCA

★ PCA个人理解&#xff1a; PCA降维是通过变换坐标系&#xff0c;来尽可能的减少信息损失。 ★ PCA思路&#xff1a; 我们的初始矩阵为X&#xff0c;它是mn维的矩阵&#xff0c;其中&#xff1a;m是该数据集有m条记录&#xff0c;n是每条记录中有n个特征&#xff0c;X的基本格…

PCA降维算法

目录 1.维度1.1数据维度1.2特征维度 2.sklearn中的降维算法2.1PCA与SVD2.2降维的实现2.3重要参数n_components2.3.1最大似然估计自选超参数2.3.2 按信息量占比选超参数 3.PCA中的SVD3.1重要参数svd_solver 与 random_state3.2重要属性components_3.3重要接口inverse_transform …