標籤:oracle 資料庫 管理
資料庫設計:
三範式(OLD)
列的值唯一,不能有重複的列值
屬性完全依賴於主鍵
必須滿足第一範式
必須有主鍵
其他列必須完全依賴於主鍵
屬性不依賴於其他非主屬性(第二的加強)
必須滿足第二範式
去除傳遞依賴
(在特定的場合,對效率的考慮 如:專門做冗餘的時候,不要遵守第三)
Oracle 序列
可以通過序列來產生主鍵 一般的一個序列為一個表格服務,也可以多個
建立序列
create sequence 序列名 start with 數值 incremet by 數值
| 不寫 都是 1 |
刪除序列
drop sequence 序列名
通過偽列 nextval 擷取下一個值
select seq_stu.nextval from dual;
擷取當前值 currval
select seq_stu.currval from dual;
create sequence seq_stu start with 100 incremet by5;select seq_stu.nextval from dual;insert into stu (id) values(seq_stu.nextval);
完整:
create table stu( s_id number(10), s_name varchar2(50), constraint s_pk primary key(s_id))create sequence Seq_stu start with 100 increment by 5;select * from stu;
package jdbc;public class Stu {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
package jdbc;import java.sql.Connection;import java.sql.PreparedStatement;public class StuDAO {private static final String SQL = "insert into stu(s_id,s_name) values(seq_stu.nextval,?)";public void save(Stu stu) throws Exception{Connection con = null;try{con = DBUtils.getConnection();PreparedStatement stmt = con.prepareStatement(SQL);stmt.setString(1,stu.getName());stmt.executeUpdate();}catch(Exception e){throw e;}finally{if(con != null){con.close();}}}}
package jdbc;import static org.junit.Assert.*;import org.junit.Test;public class TestStuDAO {@Testpublic void test() throws Exception {StuDAO s = new StuDAO();Stu ss = new Stu();ss.setName("lmdtx");s.save(ss);}}
ER圖(開源社區有真相)
找你喜歡的或者公司習慣的(工具) 實在不行a4紙
研究業務需求
設計繪製E-R關係圖
設計文檔
該寫啥就寫啥
本文出自 “浪漫的偷笑” 部落格,請務必保留此出處http://lmdtx.blog.51cto.com/6942028/1840339
Java41: 資料庫五(Oracle)