資料庫主從表
Ⅰ 為什麼資料庫要有主從表之分
完全可以不需要的。
之所以搞出個主從表,是為了加快數據的查詢,減少數據的冗餘。
表與表的聯系是通過外碼進行的。
你要是搞個小型資料庫可以只用一個表。但是欄位要是多了,你會發現很難管理或者冗餘過大。
按照資料庫設計理論,只要符合3NF的就已經很好了。多數人設計成一個表,很大程度上不可能稱為3NF,所以要進行分解。
Ⅱ 資料庫中,主表,從表,父表,子表的定義和區別,最好能舉例說明,萬分感謝
主表與從表:主表存得時從北京到上海的高鐵信息,從表則存得時:北京-天津;天津-河北....這種存在一定的主從關系,在資料庫中成為主從表。
父表,子表:你定義了一個導航菜單表,然後每一個菜單下的子菜單定義了一張表,這類數據
Ⅲ 如何在sql server資料庫中建立主從表
T-SQL代碼:
Alter Table 從表名
Add Constraint 約束名 Foreign Key(從表列名) References 主表名(主表列名)
Ⅳ 關於資料庫設計,為什麼採取主從表結構
就拿你所例舉的例子來說,一張入庫單可能對用多個物料,如果不是採用主從表的形式,那麼你的主表的數據就會有大量的重復。通常有多少物料就會重復多少次。這對系統的資源是很大的浪費。其實這種情況在資料庫基礎的知識學習當中是有專門的範式約束,可以避免的。 主從表的關聯,一般是在從表中添加一個主表的主鍵欄位作為從表的外鍵,比如入庫單號。這樣主從表就可以建立一對多的對應關系了。
Ⅳ 如何添加新資料庫到MySQL主從復制列表
具體操作如下:
1. 從服務上,停掉slave資料庫。
stop slave;
2. 主伺服器上,導出新資料庫。
mysqlmp --master-data --single-transaction -R --databases newdb > newdb.sql
3. 主伺服器上,修改my.cnf文件,添加新庫到binlog-do-db參數,重啟mysql。
4. 在導出的newdb.sql裡面查找當前的日誌文件以及位置(change master to …)
然後讓slave伺服器執行到這個位置。
start slave until MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=1222220;
其中MASTER_LOG_FILE以及MASTER_LOG_POS在導出的資料庫newdb.sql頂部位置查找。
4. 導入新庫到從伺服器上。
mysql < newdb.sql
5. start slave
其中比較重要的是在主伺服器上導出新庫時的日誌位置(position A),這個點很重要,以這個點做為分界線,導入新庫。
這種方法也同樣適用於某個資料庫或者某個數據表不同步的情況,比如主從資料庫有一個表由於某些原因數據不一致,那麼上面的方法只需要去掉重啟資料庫一步,其他的操作基本
Ⅵ 如何在sql server資料庫中建立主從表
create table class
(
cid char(2) primary key not null,
cname varchar(10)
)
create table student
(
sid char(6) primary key not null,
sname varchar(10),
cid char(2) constraint fk_cid foreign key references class(cid)
)
也可以不用寫代碼 直接在SQL SERVER管理工具中創建時 在關聯的表間欄位用滑鼠建立
Ⅶ SQL中主從表中建立聯系的列有何要求
建立外鍵列的要求:
必須與主表的主鍵列數據類型一致
列不允許為空
外鍵表與主表必須在同一資料庫
外鍵表有值時,主表無法刪除被外鍵表引用的主鍵值所在行
外鍵表有值時,不可更新被外鍵表引用的主鍵值
下面是關於外鍵約束的資料
FOREIGN KEY 約束
如果在 FOREIGN KEY 約束的列中輸入非 NULL 值,則此值必須在被引用的列中存在,否則將返回違反外鍵約束的錯誤信息。
FOREIGN KEY 約束應用於前面所講的列,除非指定了源列。
FOREIGN KEY 約束僅能引用位於同一伺服器上的同一資料庫中的表。資料庫間的引用完整性必須通過觸發器實現。有關更多信息,請參見 CREATE TRIGGER。
FOREIGN KEY 可以引用同一表中的其它列(自引用)。
列級 FOREIGN KEY 約束的 REFERENCES 子句僅能列出一個引用列,且該列必須與定義約束的列具有相同的數據類型。
表級 FOREIGN KEY 約束的 REFERENCES 子句中引用列的數目必須與約束列列表中的列數相同。每個引用列的數據類型也必須與列表中相應列的數據類型相同。
如果 timestamp 類型的列是SQL Server 外鍵或被引用鍵的一部分,則不能指定 CASCADE。
可以在相互間具有引用關系的表上組合使用 CASCADE 和 NO ACTION。如果 SQL Server 遇到 NO ACTION,將終止執行語句並回滾相關的 CASCADE 操作。當 DELETE 語句導致 CASCADE 和 NO ACTION 組合操作時,在 SQL Server 檢查 NO ACTION 操作之前將執行所有 CASCADE 操作。
一個表最多可包含 253 個 FOREIGN KEY 約束。
對於臨時表不強制 FOREIGN KEY 約束。
每個表在其 FOREIGN KEY 約束中最多可以引用 253 個不同的表。
FOREIGN KEY 約束只能引用被引用表的 PRIMARY KEY 或 UNIQUE 約束中的列或被引用表上 UNIQUE INDEX 中的列。