MySQL基础--规范数据库设计及数据库连接


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

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

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

    • 关联查新不得超过三张表
      • 考虑商业化的需求和目标,(成本和用户体验)数据库的性能更加重要
      • 在规范性能的问题的时候,需要适当考虑一下规范性
      • 故意给某些表增加一些冗余的字段,(从多表查询中变成单表查询)
      • 故意增加一些计算列(从大数据量变成小数据量查询;增加索引)
  3. MySQL数据库连接示例: 

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();
            
        }



    }
}

 

    

posted @ 2021-05-08 14:41  张紫韩  阅读(137)  评论(0编辑  收藏  举报