Java数据库第一章

1. 什么是数据库设计?
数据库设计就是 将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程。

2.良好的数据库有:效率高、便于进一步扩展、可以使应用程序的开发变得更容易。
糟糕的数据库有:效率低下、更新和检索数据时会出现许多问题。

3.数据库的设计步骤:
(1)需求分析阶段(分析客户的业务和数据处理需求)PS:重点是调查,收集并分析客户业务的数据
需求、处理需求、安全性与完整性需求。
(2)概要设计阶段(绘制数据库的E-R图,用于在项目团队内部、设计人员和客户之间进行沟通,确
认需求信息的正确性和完整性)
(3)详细设计阶段(将E-R图转换为多张表,进行逻辑设计,确认各表的主外键,并应用数据库设计
三大范式进行审核)
第一范式(1NF):
  数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。
上面一句话的简结:实体的属性不可再分;
  例如: userInfo: '山东省烟台市 1318162008' 依照第一范式必须拆分成
                   userInfo: '山东省烟台市'   userTel: '1318162008'两个字段
第二范式(2NF): (消除依赖)
  满足1NF后要求表中的所有列,都必需依赖于主键,而不能有 任何一列与主键没有关系(一个表只描述一件事情)。
  例如:订单表只能描述订单相关的信息,所以所有的字段都必须与订单ID相关。
                  产品表只能描述产品相关的信息,所以所有的字段都必须与产品ID相关。
        因此在同一张表中不能同时出现订单信息与产品信息。
第三范式(3NF):第三范式(3NF):满足2NF后,要求:表中的每一列都要与主键直接相关,而不是间接相关(表中的每一列只能依赖于主键) PS:消除传递依赖
  例如:订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户
       ID即可,而不能有其他的客户信息,因为其他的用户信息是直接关联于用户ID,而不是关联
       于订单ID。
注意事项:
1.第二范式与第三范式的本质区别:在于有没有分出两张表。
第二范式是说一张表中包含了多种不同实体的属性,那么必须要分成多张表,第三范式是要求已经分好了多张表的话,一张表中只能有另一张标的ID,而不能有其他任何信息,(其他任何信息,一律用主键在另一张表中查询)。
2.必须先满足第一范式才能满足第二范式,必须同时满足第一第二范式才能满足第三范式。

PS:数据库中的五大约束包括:
1.主键约束(Primay Key Coustraint) 唯一性,非空性;
2.唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个;
3.默认约束 (Default Counstraint) 该数据的默认值;
4.外键约束 (Foreign Key Counstraint) 需要建立两表间的关系;
5.非空约束(Not Null Counstraint):设置非空约束,该字段不能为空。
详细介绍:
(1)[外键约束 (Foreign Key Counstraint) ]
1.设置外键的注意事项:
  ①:只有INNODB的数据库引擎支持外键,修改my.ini文件设置default-storage-engine=INNODB;
  ②:外键与参照列的数据类型必须相同。(数值型要求长度和无符号都相同,字符串要求类型相同,长度可以不同);
  ③:设置外键的字段必须要有索引,如果没有索引,设置外键时会自动生成一个索引;

2.设置外键的语法:
[CONSTRAINT 外键名] FOREIGN KEY(外键字段) REFERENCES 参照表(参照字段);
[ON DELETE SET NULL ON UPDATE CASCADE] -- 设置操作完整。
3、外键约束的参照操作:
当对参照表的参照字段进行删除或更新时,外键表中的外键如何应对。
参照操作可选值:
  RESTRICT: 拒绝对参照字段的删除或修改(默认);
  NO ACTION:与RESTRICT相同,但这个指令只在MySql生效;
  CASCADE:  删除或更新参照表的参照字段时,外键表的记录同步删除或更新;
  SET NULL: 删除删除或更新参照表的参照字段时,外键表的外键设为NULL (此时外键不能设置为NOT NULL)。
(2)[主键约束](Primay Key Coustraint) 
1.主键的注意事项:主键默认非空,默认唯一性约束,只有主键可以设置自动增长(主键不一定自增,自增一定是主键)。
2.设置主键的方式:
  ①:在定义列时设置:id     INT UNSIGNED PRIMARY KEY。
  ②:在列定义完成后设置:PRIMARY KEY(id)。

4.无论数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考:
(1)收集信息(了解数据库要储存那些信息(数据)实现那些功能)
(2)标识实体(标识数据库要管理的关键对象或实体)
(3)标识每个实体需要储存的详细信息(标识每个实体储存的详细信息,也称之为该实体的属性,
这些属性将组成表中的列)
注意:在进行实体属性分解时,含相同的成员信息不能重复出现。每个实体对应这一张表,实
体中的每个子成员对应表中的每一列。
(4)标识实体之间的关系(首先需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加
关系列立起表之间的链接)
5. 绘制E-R图:数据库的图形化表达式,也可称之为 实体——关系图。
6.实体——关系模型
(1)实体:所谓实体就是指现实世界中具有区分其他事物的特征或属性并与其他事物有联系的事物。
(2)属性:属性是实体的特征。
(3)联系:联系是两个或多个实体之间的关联关系。
(4)映射基数:一对一、

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值