1. 程式人生 > 其它 >java--MySQL--資料庫設計規範

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