数据库设计

1.基本概念

1)软件工程六大过程:

①需求分析:

a.需求设计:产品部设计编写《xxx项目需求分析说明书》
b.需求分析:对于开发者而言,要知道整个项目的业务流程以及详细了解自己模块的业务及相关业务
c.DB:考虑使用哪种数据库

②概要设计:大概地理清楚业务流程,画出相应的流程图

a.数据库设计:《数据库设计说明说》
b.业务SQL的编写:

③详细设计:详细地把项目的基本结构,编码规范等全部行程文档

④编码:通过代码完成相应的业务流程

⑤测试:分为内部测试和外部测试

⑥维护:项目从测试开始就处于维护阶段(架构)

2.数据库设计步骤

目的:能够把某一个项目所涉及到的数据按一定的结构存放到数据库中,然后通过code能够快速方便的对其进行操作(CRUD)
基本过程:在需求分析说明书中寻找一个个的对象(class)

①寻找相应的实体(entity)

实体:电影

②标识每个实体对应的属性

电影:图片、标题、评分、导演、编剧、片长、评价数量、5-4-3-2-1星、类型、play、经典、时间、冷门佳片、地区、国家….

③标识实体对象之间的关系

找到实体之间的主从关系(映射关系:1-n,n-1,1-1,n-n,单向和双向)
主从关系是根据业务需求来决定:
学生和老师:
需求:我要知道一个老师带了多少个学生,而无需知道某个学生是哪一个老师教的
单向1–>n:1端为主表(老师),n为从表(学生)
需求:我要知道这个学生还是哪个老师教的,而无需知道老师教了哪些学生
单向n–>1

④画出ER(Entity-Relationship)图

在这里插入图片描述

⑤标识出实体和实体之间关联关系

找出主外键

⑥把实体按照实体和表的对应关系进行转换

主键列:逻辑主键(参与业务逻辑的字段),物理主键(仅仅是主键标志)
在这里插入图片描述
设计数据表时:主外键的外键约束(引用完整性约束)一般不建议或者不允许建立。
只需要在表结构上体现出相关的关联关系即可
可以在系统上线钱补充引用完整性约束的创建

⑦按照3NF(Normal Form)来设计表

1NF(第一范式):确保每一列都是不可再分得(原子性)
2NF(第二范式):确保一张表描述的只是一件事情(所有的字段都依赖于主键,除了外键列)
3NF(第三范式):如果能够通过外键列找到其他表的某些列,则这些列就不能够写在当前表中
注意:1NF,2NF在设计表的时候一定要遵守,但是3NF需要看情况
数据库的性能比规范化数据库更重要

(一)设某商业集团数据库有三个实体集。一是“商品”实体集,属性有商品号、商品名、 规格、单价等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“供应商” 实体集,属性有供应商编号、供应商名、地址等。 供应商与商品之间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多 个供应商订购,每个供应商供应每种商品有个月供应量;商店与商品间存在“销售”联系, 每个商店可销售多种商品,每种商品可在多个商店销售,每个商店销售每种商品有个月计 划数。 (1)试画出 ER 图,并在图上注明属性、联系类型、实体标识符。 (2)将 ER 图转换成关系模型,并说明主键和外键。 (二) 设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车 队名等;二是“车辆”实体集,属性有车牌照号、厂家、出厂日期等;三是“司机”实体集, 属性有司机编号、姓名、电话等。设车队与司机之间存在“聘用”联系,每个车队可聘用若 干个司机,但每个司机只能应聘于一个车队,车队聘用司机有聘期;司机与车辆之间存在着 “使用”联系,司机使用车辆有使用日期和公里数,每个司机可以使用多辆汽车,每辆车可 被多个司机使用。 (1) 试画出 E-R 图,并在图上注明属性、联系类型; (2) 将 E-R 图转换成关系模式; (3) 指出每个关系模式的主键和外键(如果存在)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值