java--MySQL--数据库设计规范

  1. 为什么要进行数据库规范设计:

    1. 信息重复
    2. 更新异常
    3. 插入异常
      1. 无法正常显示信息
    4. 删除异常
      1. 丢失有效信息      
  1. 数据库设计的三大范式:

    1. 第一范式:要求数据库的每一列都是不可分割的原子数据项(原子性即每个字段只包含一一个不可分割的属性)。 
    2. 第二范式:前提满足第一范式,每张表只描述一件事情,主键依赖--每个非主键的字段都必须依赖于全部的主键(即只有通过所有的主键才能唯一标识,确认唯一的字段信息)
    3. 第三范式:满足第二范式的基础上,非主属性不存在传递依赖。(即不存在传递依赖--即除了非主属性完全依赖于主键外,非主属性之间也存在依赖)
    4. 依赖即使可以通过自己的信息找到你所依赖的唯一信息。
  2. 规范性和性能的问题:

    1. 关联查新不得超过三张表
      1. 考虑商业化的需求和目标,(成本和用户体验)数据库的性能更加重要
      2. 在规范性能的问题的时候,需要适当考虑一下规范性
      3. 故意给某些表增加一些冗余的字段,(从多表查询中变成单表查询)
      4. 故意增加一些计算列(从大数据量变成小数据量查询;增加索引)
  3. package com.model.test;
    
    import java.sql.*;
    
    public class JDBC {
        public static void main(String[] args) throws SQLException {
    
            Connection connection=null;
            Statement statement=null;
            ResultSet resultSet=null;
    
            try {
                //1.加载驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.获取用户的信息和url
                String url="jdbc:mysql://localhost:3306/shop";
                String username="root";
                String password="12346";
                //3.获取数据库连接对象Connection
                connection = DriverManager.getConnection(url, username, password);
                //4.获取SQL执行对象Statement
                statement = connection.createStatement();
                //5.获取SQL语句
                String sql="select * from user";
                //6.执行SQL并获取返回值
                resultSet = statement.executeQuery(sql);
                //7.遍历返回值result即可
                while (resultSet.next()){
                    String id = (String) resultSet.getObject("id");
                    String name = (String) resultSet.getObject(2);
                    System.out.println("id号:"+id+"姓名:"+name);
                }
    
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }finally {
                //8.关闭连接
                resultSet.close();
                statement.close();
                connection.close();
                
            }
    
    
    
        }
    }

     

java--MySQL--数据库设计规范

上一篇:mysql-drop、truncate和delete的区别?


下一篇:SqlServer 使用 bulk insert 批量将Excel 导入 数据库