❶ 資料庫表設計,表示行與表的關系,怎樣設計結構
按第三範式的規則,應該是只存表ID,然後另建一張表,保存表ID與表名的對應關系。
當然,你要是在A表裡只存表名,然後另建表保存表名與ID的關系也是可以的,也滿足範式要求,只不過絕大多數人會選擇保存ID。對於資料庫來說,表名也是不重復,所以保存ID或名字都可以,但另外一些情況,比如學生選課表,學生名可能會有重復,而ID是不會重復的(除非數據錯了),這也是為什麼都保存ID的原因。
❷ 如何構建一個完善的資料庫,如何來處理表與表關系.
SQL Server本身就是一個完善的資料庫,提供可視化編程,後台完成所有拖放處理操作,不管有沒有數據都可以使用,不需要編譯。
一個比較合理的資料庫設計應該考慮數據的交互性和挖掘能力、處理效率以及日誌記錄。
建立數據表,注意以下幾點:
表建立的時候要有主鍵和索引,表與表之間要能使用主鍵相聯系,舉例說在A表裡我做完一次記錄要生成一個單號,B表裡面是依據單號來做下一個流程,而不是依據記錄的每一條數據
取名盡量使用英文+下劃線,SQL Server里對漢字需要轉碼,影響工作效率,按照他的默認編碼方式操作有助於提高數據處理速度
建立數據表的列數不要太多,用編碼規則來建立邏輯
注意欄位存儲空間,限制欄位長度,少用注釋和image
存儲過程盡量簡潔實用
建立視圖,為了別的客戶端使用,盡量建立視圖,做好完整的數據分析,別的介面程序或者客戶端直接就可以拿去使用。做視圖注意幾點:
多個表操作寫在一個視圖里,不要嵌套太多視圖
連接查詢要適當的篩選
跨伺服器操作視圖,要建立伺服器鏈接表,盡量使用內網鏈接,把伺服器鏈接表做成查詢視圖,放在本地伺服器資料庫里,這樣就等同本地操作
視圖之間保留連接欄位作為主要索引
建立計劃作業,有計劃地進行數據同步更新和備份標識工作,注意事項:
備份數據盡量放資料庫里同步復制
計劃任務避開工作高峰期
建立存儲過程,記錄操作日誌,把日誌以數據表的形式存儲,注意事項:
存儲過程對本表操作,不要交互太多表
精簡參數數量,注意參數存儲空間
對記錄修改刪除、更新標記的時候盡量使用時間來索引
建立關系圖,給表與表之間建立直接關系,整理整體挖掘數據性能。
建立計劃更新任務,優化資料庫整體性能。
❸ 映射資料庫表什麼意思
sql資料庫用戶映射是什麼意思,有什麼作用。
好像是用戶名和登錄名之間的聯系,用來設置登錄名許可權的
資料庫表映射問題
select * into B.dbo.a from A.dbo.a
就把表同步過去
如果只同步表結構
select * into B.dbo.a from A.dbo.a where 1<>1
如何:將實體映射到資料庫表
是通過映射文件來映射的。舉個簡單的例子,例如我有個Teacher實體類(某教學管理系統老師用戶):
private Integer id;編號
private String name;姓名
private String password;密碼
private Date createDate;創建日期
同時,我創建了數據表TEACHER:
create table teacher( id number(9) primary key,--編號 name varchar2(20),--姓名 password varchar2(20),--密碼 create_date date--創建日期);
這時,怎麼關聯它們呢?通過載入hibernate框架,我們就可以使用映射文件來關聯實體類和資料庫了
文件名:Teacher.hbm.xml(必須與實體類名字一致)
內容:
>
(SQL Server 導入和導出向導)裡面,編輯映射和列映射什麼意思?幹嘛用的? 10分
這個就是講,要做一個對應.
比方講你要導入一個表.那假如你想把列1的內容導入到列2裡面,你就需要告訴資料庫你的這個需求.
此時,便需要添加一個列的映射.
希望對你有所幫助哈~~
SQLSERVER2000里怎麼將一個資料庫里的表映射到另一資料庫
可以在需要被映射的伺服器上,添加一個 連接伺服器。
這樣可以直接通過連接伺服器訪問你需要的數據表。
如何將含有繼承關系的類圖映射為關系資料庫
庫。 通常使用以下兩種方法來映射繼承關系: 1)將基類映射到一張表,每個子類映射到一張表。在基類對應的表中定義主鍵,而在 子類對應的表中定義外鍵。 2)將每個子類映射到一張表,沒有基類表。在每個子類的表中包括基類的所有屬性。 這種方法適用於子類的個數不多,基類屬性比較少的情況。
POJO怎麼映射成資料庫的表?
用hibernate框架pojo里用hibernate註解 例如:package .ayumi.pojo;
import java.io.Serializable;
import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;
import org.hibernate.validator.NotNull;
@Entity 實體對象@Table(name="users") 表名public class Users implements Serializable {private Integer id;private String username;private String password;@Id 主鍵@Column(name="id") 列名public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}@Column(name="username",length=20) 列名 及 長度設定@NotNull 非空設定public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}@Column(name="password",length=20) 列名 及 長度設定public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
這樣就對表的欄位定義好瞭然後編寫main方法測試類public static void main(String[] args) {Configuration cfg=new AnnotationConfiguration().configure();SchemaExport eport=new SchemaExport(cfg);eport.create(true, true);}
執行,這樣就會在hibernate.cfg.xml里配置好的相應連接中對應的資料庫下創建成功資料庫表
java中的映射是什麼意思
簡單的說就是把一個資料庫表裡的欄位和一個java類里的屬性對應起來,讓程序知道這個java類里的這個屬性應該是資料庫哪個表裡的哪個欄位。
hibernate是通過什麼標簽實現實體類和表的映射的
10.1 實體類的映射
從Java的角度講,實體類就是普通的Java封裝類(有人稱為POJO有人稱為VO)。僅從實體類中的代碼信息,Hibernate並不能得知該實體類對應哪個數據表,因此還需要以某種方式配置一下。常用的方式有*.hbm.xml文件配置與@註解配置兩種。
hbm.xml文件就是普通的xml文件,hbm為Hibernate Mapping的縮寫,這樣從文件名上就能判斷該文件為Hibernate實體類配置文件。在JPA出現之前,Hibernate都使用hbm.xml文件配置。JPA出現後,推薦使用JPA的@註解配置,因為對於所有的ORM框架,@註解都是通用的。
10.1.1 使用@註解配置實體類
實體類一般有ID、普通屬性、 *** 屬性等,分別對應資料庫的主鍵、普通列、外鍵。@註解配置中,實體類用@Entity註解,用@Table指定對應的數據表,用@Id配置主鍵,用@Column配置普通屬性,用@OneToMany、@ManyToOne、@OneToOne、@ManyToMany配置實體間關系等。實體類之間的關於在後面的章節中會做詳細介紹。下面編寫一個UsersVo類,在該類中使用@註解配置實體類的映射,UsersVo類的代碼如下:
package .vo;
import javax.persistence.*;
@Entity 註解Entity表示該類納入Hibernate管理,能夠被持久化
@Table(name = "users") 指定該實體類對應的資料庫表名
public class UsersVo {
Fields
@Id 指定該列為主鍵。
這個註解用來表示主鍵類型, auto為資料庫自增長類型
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "name") 指定變數對應的資料庫表的列為"name"
private String name;
@Column(name = "age")指定變數對應的資料庫表的列為"age"
private int age;
@Column(name = "tel")指定變數對應的資料庫表的列為"tel"
private String tel;
@Column(name = "address")指定變數對應的資料庫表的列為"address"
private String address;
Constructors
public UsersVo() {
}
public UsersVo(int id) {
this.id = id;
}
public UsersVo(int id, String name, int age, String tel,
String address) {
this.id = id;
this.name = name;
this.age = age;
this.tel = tel;
this.address = address......>>
❹ 資料庫的數據關系用什麼表示什麼
關系模式是靜態的,比如我們看到的一張二維表的表頭,即有哪些列構成,每個列的名稱,類型啊長度等等; 關系是動態的,就是一張二維表的具體內容,就是除了標題行以外的數據行,因為表數據經常被修改,插入,刪除,所以不同時刻,關系可能不一樣...
❺ 如何將含有繼承關系的類圖映射為關系資料庫
庫。 通常使用以下兩種方法來映射繼承關系: 1)將基類映射到一張表,每個子類映射到一張表。在基類對應的表中定義主鍵,而在 子類對應的表中定義外鍵。 2)將每個子類映射到一張表,沒有基類表。在每個子類的表中包括基類的所有屬性。 這種方法適用於子類的個數不多,基類屬性比較少的情況。
❻ 資料庫管理系統一個完整的表必須用那幾個來表示數據的關系
資料庫管理系統一個完整的表必須用記錄和欄位來表示數據的關系。
表中的內每一行叫容做一個「記錄」,每一個記錄包含這行中的所有信息,就像在通訊錄資料庫中某個人全部的信息,但記錄在資料庫中並沒有專門的記錄名,常常用它所在的行數表示這是第幾個記錄。
欄位是比記錄更小的單位,欄位集合組成記錄,每個欄位描述文獻的某一特徵,即數據項,並有唯一的供計算機識別的欄位標識符。
(6)資料庫表繼承關系如何表示擴展閱讀
資料庫表中欄位類型有以下幾種:
1、二進制數據類型:包括Binary、Varbinary、Image。
2、字元數據類型:包括Char,Varchar、Text。
3、Unicode數據類型:包括Nchar、Nvarchar、Ntext。
4、日期和時間數據類型:包括Datetime、Smalldatetime、Date、TimeStamp。
5、數字數據類型:包括正數和負數、小數和整數。
6、貨幣數據類型:表示正的或者負的貨幣數量。
7、特殊數據類型:包括Timestamp、Bit、Uniqueidentifier。
❼ 如何在資料庫中表示多對多的關系
多對多:新建一個關系表,將兩張表關系起來。關系表中是兩張表版的主鍵。
如:有多個學生,權每個學生可以選修多門課程,每個課程可以被多個學生選修。
注意:多對多中,不能說在一個表中加個欄位,cid是另一張表的主鍵,不能寫兩個數據。
(7)資料庫表繼承關系如何表示擴展閱讀
一個好的表結構設計,可以減少一些不必要的表或欄位等。數據表之間的關聯關系分為三種:一對一、一對多、多對多。
1、一對一,是將數據表「垂直切分」,就是A表的一條記錄對應B表的一條記錄。
優點:
(1)便於管理、可提高一定的查詢速度。
(2)減輕CPU的IO讀寫,提高存取效率。
(3)符合資料庫設計的三大範式。
(4)符合關系性資料庫的特性。
缺點:增加一定的復雜程度,程序中的讀寫難度加大。
2、一對多,就是A表的一條記錄,對應B表的多條記錄,且A的主鍵作為B表的外鍵。
❽ 資料庫的關系代數表達式
資料庫的關系代數表達式是由關系代數運算經有限次復合而成的式子。
在關系代數運算中,把由並(∪)、差(-)、笛卡爾積(×)、投影(π)、選擇(σ)五個基本操作經過有限次復合的式子稱為關系代數表達式。關系代數表達式的運算結果仍然是一個關系。可以用關系代數表達式表示對資料庫的各種數據查詢和更新操作。
關系代數表達式用到的運算符包括集合運算符、專門的關系運算符、算術比較符和邏輯運算符。和交(∩)、聯接(等值聯接)、自然聯接(RXS)、除法(÷) 四個組合操作。
(8)資料庫表繼承關系如何表示擴展閱讀:
關系代數表達式的運算過程是將關系的屬性分為像集屬性和結果屬性兩部分;與關系相同的屬性屬於像集屬性;不相同的屬性屬於結果屬性。在關系中,對像集屬性投影,得到目標數據集。將被關系分組。
分組原則是結果屬性值一樣的元組分為一組。逐一考察每個組,如果它的像集屬性值中包括目標數據集,則對應的結果屬性應屬於該運算結果集。
❾ powerdesigner的類圖怎麼設置繼承關系
在使用PowerDesigner設計RDBMS資料庫的時候,發現其中的子類貌似與課程老師所講的不太一樣,查資料發現,關於繼承就有三種實現方式。
Concrete Table Inheritance(具體表繼承)
Single Table Inheritance(單表繼承)
Class Table Inheritance(類表繼承)
❿ 資料庫中包含關系怎麼表示
用模糊查詢可以實現包含關系,
%:表示任意0個或多個字元。可匹配任意類型和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示,例如Select*from表Wherestrlike'%陳%'