使用java实现数据库编程

  • 时间:
  • 浏览:897
  • 来源:成都艾邦软件开发

一、设计数据库的重要性

  • 良好的数据库设计
    • 节省数据的存储空间
    • 能够保证数据的完整性
    • 方便进行数据库应用系统的开发
  • 糟糕的数据库设计
    • 数据冗余、存储空间浪费
    • 内存空间浪费
    • 数据更新和插入的异常

二、设计数据库的步骤

  1. 需求分析阶段分析客户的业务和数据处理需求
  2. 概要设计阶段设计数据库的E-R模型图确认需求信息的正确和完整
  3. 详细设计阶段应用三大范式审核数据库结构
  4. 代码编写阶段物理实现数据库编码实现应用
  5. 软件测试阶段…
  6. 安装部署…
  • 收集信息
    • 与该系统有关人员进行交流、座谈充分了解用户需求理解数据库需要完成的任务
  • 标识实体 Entity
    • 标识数据库要管理的关键对象或实体实体一般是名词
  • 标识每个实体的属性attribute
  • 标识实体之间的关系Relationship

三、为什么要使用E-R图

1、什么是E-R图

  • E-R图也称实体-联系图(Entity Relationship Diagram)提供了表示实体类型、属性和联系的方法用来描述现实世界的概念模型。
  • E-R图的符号
符号含义
方形实体一般是名词
椭圆属性一般是名词
菱形关系一般是动词
  • 实体现实世界中鱼油区分其他事物的特征或属性并与其他事物有联系的事物。
  • 属性属性可以理解为实体的特征。
  • 联系联系是两个或多个实体之间的关联关系。

2、如何绘制E-R图

  • 映射基数
    1. 一对一X中的一个实体最多与Y中的一个实体关联并且Y中的一个实体最多与X中的一个实体关联。
    2. 一对多X中的一个实体可以与Y中任何数量的实体关联Y中的一个实体最多与X中的一个实体关联。
    3. 多对一X中的一个实体最多与Y的一个实体关联Y中的一个实体可以与X中的任意数量的实体关联。
    4. 多对多X中的一个实体可以与Y中的任意数量是实体关联反之亦然。

3、关系模式

  • 用二维表的形式表示实体和实体间联系的数据模型即关系模式
  • E-R图转换为关系模式的步骤
    1. 把每个实体都转化为关系模式RU形式
    2. 建立实体间联系的转换

4、转化E-R图为数据库模型图

  • 将各实体转换为对应的表将各属性转换为各表对应的列
  • 标识每个表的主键列
  • 在表之间建立主外键体现实体

四、数据规范化

  • 不合规范的表设计

    • 信息重复
    • 更新异常
    • 插入异常
      • 无法正确的表示信息
    • 删除异常
  • 使用三大范式规范数据库表的设计

  1. 第一范式

    1. 第一范式的目标是确保每列的原子性
      1. 如果每列都是不可再分的最小数据单元也称为最小的原子单元则满足第一范式1NF
  2. 第二范式

    1. 要求每个表只描述一件事情
  3. 第三范式

    1. 如果一个关系满足2NF并且除了主键以外的其他列都不传递依赖于主键列则满足第三范式3NF

五、总结

使用java实现数据库编程实记笔记

第二章、
创建数据库
create database 数据库名

查看已存在数据库
show databases

选择数据库
use 数据库名

删除数据库
drop database 数据库名

非空约束not null
默认约束default
唯一约束unique key()
主键约束primary key()
外键约束foreign key()
自动增长auto_increment

查看所有的表
show tables

查看表的定义
describe 表名

删除表
drop table 表名

第三章、
修改表名
alter table 旧表名 rename 新表名

在现有的表中添加字段
alter table 表名 add 字段名 数据类型

在现有的表中修改字段
alter table 表名 change 原字段名 新字段名 数据类型

删除已有字段
alter table 表名 drop 字段名

添加主键约束
alter table 表名 add constraint 主键名 primary key 表名(主键字段);
在建表中添加主键约束primary key(主键字段)

添加外键约束
alter table 外键表名 add constraint 外键名 foreign key(外键字段) references 关联表名(关联字段)
在建表中
添加外键约束foreign key(外键字段) references 关联表名(关联字段)

插入单行数据
insert into 表名(字段名列表) values(值列表);

插入多行数据
insert into 表名(字段名列表) values(值列表1),(值列表2),(值列表3);

将查询结果插入到新表不需要提前创建好
create table 新表(select 字段1,字段2,字段3,······ from 原表);

更新修改数据记录
update 表名 set 字段1值1,字段2值2,字段3值3 where 条件

删除数据记录
delete from 表名 where 条件

删除所有行并且重置自增列
truncate table 表名

limit子句从第几行开始显示几行记录
select 字段名列表
from 表名
where 查询条件
group by 分组的字段名
order by 排序的列名asc或desc
limit 位置偏移量,行数;

聚合函数
avg()
count()
max()
min()
sum()

获取当前时间now()

第五章、
开始事务
begin;
提交事务
commit;
回滚事务
rollback

创建视图
create view 视图名
as
select语句

删除视图
drop view 视图名

查看视图
select 字段1,字段2,字段3 from 视图名

创建索引
create index 索引名 on 表名(列名);

删除索引
drop index 索引名 on 表名

查看索引
show index from 表名