使用Java实现数据库编程

第一章 数据库的设计

一、数据库设计简介

1.什么是数据库设计:

将数据库中实体及实体关系进行规划和结构化的过程。

2.为什么要数据库设计?

1.做一个茅草屋无需设计

2.盖一栋高楼大厦要花大价钱设计

3.数据库终究要由程序来读取和操作

4.如果设计的不好,会导致数据冗余、修改复杂、读取效率底下等问题

3.数据库设计的步骤:

a、需求分析阶段:了解客户需求

i、收集信息

ii、标识实体

iii、标识每个实体需要存储的信息(属性)

iiii、标识实体间的关系

b、概要设计阶段:绘制数据库E-R图

c、详细设计阶段:将E-R图转换为数据库中的表,进行逻辑设计,审核三大范式

二、绘制E-R图(概要设计阶段)

1.数据库设计需要图形化的东西

2.E-R图:entity-relationship (实体-关系)

3.图形规则:

a、实体:矩形 名词

b、属性:椭圆 名词

c、关系:菱形 动词

4.映射基数(关系)

a、一对一(人和身份证) 1:1

b、一对多(人和银行卡) 1:n

c、多对一 n:1

d、多对多(试卷和试题) n:m

5.绘制E-R图的工具

a、word

b、Retional Rose

c、Visio

d、PowerDesigner

三、逻辑设计——绘制数据库模型图

1.在详细设计阶段完成数据库模型图

2.根据E-R图来逐步完善和调整

3.使用的绘图工具:

a、Retional Rose

b、Visio

c、PowerDesigner

d、MySQL WorkBench

4.使用WorkBench绘制迷你商城数据库模型图

a、新建模型文件并保存

b、添加表、UserInfo、Product、Orduct、OrderInfo、OrderDetail

c、导出到数据库中

d、保存sql脚本文件

四、数据库设计三大范式

1.第一范式:列的原子性,即每列细分的不能在分了

a、姓名列和地址列,考虑是否可以再分

2.第二范式:表的原子性(一张表描述一件事),即每列和表的主键是相关的

a、用户表:用户名、密码、年龄、生日、头像,可以分为账户表和个人信息表

3.第三范式:表的每列和主键都是直接相关而不是间接关联

a、用户信息表里的工资,可以放在工资表里会更规范

4.规范化和性能的关系

a、三个范式都是层层递进的关系

b、实际开发中不一定每一个表的设计都是达到第三范式

c、有的时候为了提升查询性能和执行效率,会舍弃规范性

i、商品表:单价、数量、总金额

d、规范化和性能在实际生产中需要权衡

五、三大范式的作用:

为了是我们更好的设计数据库。

六、数据完整性是:

数据可靠性加数据准确性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值