数据库设计入门
2018-06-18 00:44:46来源:未知 阅读 ()
数据库是网络应用的基础,良好的表结构设计,对整个应用起着至关重要的作用。
数据库设计的步骤:
1.需求分析:数据是什么,有哪些属性,数据和属性的特点
2.逻辑设计:使用ER图对数据库进行逻辑建模
3.物理设计:选择数据库系统,并对逻辑设计进行转化
4.维护优化:追加,分拆等
实例演示(电子商务网站)
一、需求分析:
用户模块:用于登录和保存用户信息等
属性(用户名、密码、手机、邮箱、身份证、地址、姓名。。。) 唯一标识(用户名、身份证、手机) 存储特点(永久)
商品模块:用于记录网站中销售的商品信息
属性(编码、名称、描述、分类、供应商、价格。。。) 唯一标识(编码、名称+供应商) 存储特点(不在销售商品可归档)
订单模块:用于用户订购商品的信息
属性(订单号、收件人、电话、地址、商品名称与数量、订单状态、支付状态) 唯一标识(订单号) 存储特点(分表分库)
购物车模块:用于保存用户购物时选的商品
属性(编号、用户名、商品编号名称数量价格、加入时间) 唯一标识(购物车编号) 存储特点(不用永久,可定时归档与清理)
供应商模块:用于保存所销售商品的供应商信息
属性(编号、名称、联系人、营业执照号) 唯一标识(编号、营业执照号) 存储特点(永久)
二、逻辑设计:
ER图:矩形(实体);菱形(联系集);椭圆(属性【下划线为主键】);线段(连接)
联系集主要用来将多对多关系转换为一对多(即建立一张关系表)
数据库设计范式:
第一范式:每一列属性都是不可分割的原子数据项(即每个属性不能再分)。
案例:将地址分为省份、城市、区县、详细(街道门牌),四个不可分割部分。
第二范式:要求实体的属性完全依赖于主关键字(即为每个实体建立唯一主键来区分)。
案例:学生信息表中,学号+课程→成绩,成绩无法完全依赖于主键学号。
第三范式:在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖,减少数据冗余)
案例:员工信息表中,添加部门编号后,不可再添加部门名称简介等依赖部门编号的属性。
BC范式:在3NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖)
三、物理设计
1、选择合适的数据库系统
2、定义数据库、表及字段的命名规范
3、根据数据库系统设置字段类型(优先数字类型,其次日期和二进制,最后字符串)
4、反范式化设计(方便查询,提高效率)
列类型 | 存储空间 |
TINYINT | 1字节 |
SMALLINT | 2字节 |
MEDIUMINT | 3字节 |
INT | 4字节 |
BINGINT | 8字节 |
DATE | 3字节 |
DARETIME | 8字节 |
TIMESTAMP | 4字节 |
CHAR(M) | M字节,1<=M<=255 |
VARCHAR(M) | L+1字节,L<M&&1<=M<=255 |
四、维护优化
1、维护数据字典
2、维护索引
3、维护的表结构
4、表的拆分(垂直、水平)
垂直拆分原则:将常用的字段与不常用的字段依据id主键拆分为两个或多个表,减少表的宽度
水平拆分原则:将历史或过期数据水平拆分成多个表,减少表的长度
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:MySQL 基础命令
- 了解php工作原理以及常用功能 2019-09-30
- 后端开发PHP入门必备 2019-09-30
- MySQL性能优化的20条经验 2019-09-23
- 商品SKU系统,你如何设计? 2019-09-17
- 一份非常完整的MySQL规范 2019-09-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash