Ⅰ 怎樣刪除Oracle資料庫中的冗餘數據
沒有 寫個小過程 類似查user_tables 循環然後拼execute immediate動態的truncate語句 或者導出exp的時候rows=n 然後刪除所有表再導入
Ⅱ 什麼是資料庫中的數據冗餘如何消除數據冗餘
數據冗餘指數據之間的重復,也可以說是同一數據存儲在不同數據文件中的現象。可以說增加數據的獨立性和減少數據冗餘為企業范圍信息資源管理和大規模信息系統獲得成功的前提條件。
數據冗餘會妨礙資料庫中數據的完整性(integrality),也會造成存貯空間的浪費。盡可能地降低數據冗餘度,是資料庫設計的主要目標之一。關系模式的規范化理淪(以下稱NF理論)的主要思想之一就是最小冗餘原則,即規范化的關系模式在某種意義上應該冗餘度最小。
但是,NF理論沒有標準的概念可用,按等價原則,在有或沒有泛關系假設(universal relation assumption)等不同前提下,冗餘的定義可能有好幾種。
數據的應用中為了某種目的採取數據冗餘方式。
1、重復存儲或傳輸數據以防止數據的丟失。
2、對數據進行冗餘性的編碼來防止數據的丟失、錯誤,並提供對錯誤數據進行反變換得到原始數據的功能。
3、為簡化流程所造成額數據冗餘。
4、為加快處理過程而將同一數據在不同地點存放。
5、為方便處理而使同一信息在不同地點有不同的表現形式。
6、大量數據的索引,一般在資料庫中經常使用。
7、方法類的信息冗餘。
8、為了完備性而配備的冗餘數據。
9、規則性的冗餘。根據法律、制度、規則等約束進行的。
10、為達到其他目的所進行的冗餘。
Ⅲ 資料庫空間不夠了,怎麼刪除資料庫多餘的數據
1、收縮資料庫文件
2、查找到你「確定」為多餘的表的記錄,寫sql刪除
Ⅳ 冗餘信息是不是都能刪去
冗餘信息是指由於數據結構、存儲等方面設計的不合理,而造成的信息重復,最常見的是出現在資料庫的設計中。
一般資料庫中的冗餘信息可以進行模式分解而消除或減少,如果直接刪除的話可能會導致一些錯誤。
是優化大師里查出來的冗餘信息嗎?如果是的話就可以刪除了!
Ⅳ 數據冗餘是不是應該消除干凈
前言:
把視頻和音頻信號數字化了的之後,數據量大的驚人,因此,若存儲大量的圖像和音頻信息需要大大提高系統的存儲容量,通常解決的方法是採用大容量磁碟或光碟,但這僅僅是解決海量存儲的一個辦法,而數據冗餘的作用就是將額外的數據或數據信息保存在一個獨立的硬碟上,來防止數據丟失,下面詳解什麼是數據冗餘?有哪些類型?增加數據冗餘的目的是什麼?
數據與信息雖然經常在一起使用,但概念是不相同的,數據是用來記錄和傳送信息的,數據是信息的載體。真正有用的不是數據本身,而是數據所攜帶的信息,信息量與數據量的關系可由下式給出:I = D - (I,D,分別為信息量、數據量與冗餘量.冗餘量是指D中的數據冗餘。)
冗餘,指重復配置系統的一些部件,當系統發生故障時,冗餘配置的部件介入並承擔故障部件的工作,由此減少系統的故障時間。冗餘網卡技術原為大型機及中型機上的技術,現在也逐漸被PC伺服器所擁有。Rendant,自動備援,即當某一設備發生損壞時,它可以自動作為後備式設備替代該設備。
數據冗餘是指數據之間的重復,也可以說是同一數據存儲在不同數據文件中的現象,可以說增加數據的獨立性和減少數據冗餘是企業范圍信息資源管理和大規模信息系統獲得成功的前提條件,冗餘數據的管理所謂的數據冗餘是指資料庫的數據中有重復信息的存在,這自然浪費了很多的存儲空間,尤其是存儲海量數據的時候,數據冗餘是指同一數據被反復存放.這樣著某一屬性值發生改變其他與之相同的屬性值也要改變.數據冗餘不僅增加了更新代價更嚴重的是其潛在的數據不一致及存貯空間浪費等問題。
在資料庫中存貯這類導出數據項需佔用較多的存貯空間亦稱為數據冗餘.存貯冗餘數據不僅代價高也是產生數據不一致的根源,數據冗餘或者信息冗餘是生產、生活所必然存在的行為,沒有好與不好的總體傾向。
信息的數據量:
靜態圖像:解析度(640×480)的彩色(24bit/Pixel)數字圖像的數據量約7.37Mbit/F,則一個100MB的硬碟只能存放約100幀(F)靜態圖像畫面。當幀速率為1/25s時,那麼視頻信號的傳輸速率需達184 Mbit/s。
(1)語音信號:人說話的音頻一般在20Hz到4kHz之間,需帶寬為4kHz。按采樣定理,並設數字化精度為8bit,則人講一分鍾的話的數據量約為480kB。
(2)音頻信號:音樂信號的頻帶很寬,激光唱盤CD-DA的采樣頻率為44.1kHz,每個采樣樣本為16bit,二通道立體聲,則100MB的硬碟僅能存儲10分鍾的錄音。
(3)視頻圖像:根據采樣原理,當采樣頻率≥2倍的原始信號的頻率時,才能保證采樣後信號保真地恢復為原始信號。彩色電視信號的數據量約為每秒100Mbits,因而一個1GB容量的光碟僅能存約1分鍾的原始電視數據。
Ⅵ 如何刪除資料庫中的冗餘數據
刪除所有大於你
設置有數的冗餘組
DELETE
FROM Customers
WHERE ID IN
(SELECT ID
FROM
(SELECT ID, LastName, FirstName,
RANK() OVER (PARTITION BY LastName,
FirstName ORDER BY ID) AS SeqNumber
FROM
(SELECT ID, LastName, FirstName
FROM Customers
WHERE (LastName, FirstName) IN
(SELECT LastName, FirstName
FROM Customers
GROUP BY LastName, FirstName
HAVING COUNT(*) > 3)))
WHERE SeqNumber > 3);
As you can see, using the RANK() function allows you to eliminate plicates in a
single SQL statement and gives you more capabilities by extending the power of
your
queries.
正如你所見使用Rank()可以消除冗餘數據而且能給你很大的可伸展性
Ⅶ 資料庫中數據冗餘,數據插入異常,數據刪除異常, 修改異常,數據異常分別該怎麼解釋
資料庫中數據冗餘,數據插入異常,數據刪除異常, 修改異常,數據異常分別該怎麼解釋?
這里用自己的理解來說明上面幾個東東,可能會跟你書上看到的有所不同,僅供參考。
1.數據冗餘:可以簡單理解為數據的重復,無用數據信息的存在
2.數據插入異常:在向資料庫插入數據時候發生,異常有發生的原因很多,可能是資料庫的自我保護機制,也可能是插入操作的錯誤(比如說插入語句不符合標准等等)
3.刪除異常和修改異常和2基本是同樣的
4,數據異常:可以理解為資料庫中存儲的數據和用戶預期的數據不相同,大多數這種情況被稱為數據異常,數據異常的原因很多,比如說編碼等等
Ⅷ 刪除資料庫中重復數據的幾個方法
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主欄位,count(*) from 表名 group by 主欄位 having count(*) > 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主欄位 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
有兩個意義上的重復記錄,一是完全重復的記錄,也即所有欄位均重復的記錄,二是部分關鍵欄位重復的記錄,比如Name欄位重復,而其他欄位不一定重復或都重復可以忽略。
1、對於第一種重復,比較容易解決,使用 select distinct * from tableName 就可以得到無重復記錄的結果集。
如果該表需要刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
發生這種重復的原因是表設計不周產生的,增加唯一索引列即可解決。
2、這類重復問題通常要求保留重復記錄中的第一條記錄,操作方法如下:
假設有重復的欄位為Name,Address,要求得到這兩個欄位唯一的結果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最後一個select即得到了Name,Address不重復的結果集(但多了一個autoID欄位,實際寫時可以寫在select子句中省去此列)
Ⅸ MySQL資料庫遇到欄位冗餘怎麼辦
刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除
seleet distinct * into #Tmp from TableName
drop table TableName
select * into TableName from #Tmp
drop table #Tmp
數據部分欄位重復,ID不重復
delete 表 where id not in(
SELECT MAX(id) AS id FROM 表 GROUP BY rows) --- 刪除重復行
select * from 表 where id in(
SELECT MAX(id) AS id FROM 表 GROUP BY rows) --重復行只查詢一條
Ⅹ 如何清理MYSQL資料庫多餘的數據表
MYSQL資料庫多餘的數據表清理方法:
drop table命令用於刪除數據表。
drop table命令格式:drop table <表名>;
例如,刪除表名為 MyClass 的表:
mysql> drop table MyClass;
DROP TABLE用於刪除一個或多個表。必須有每個表的DROP許可權。所有的表數據和表定義會被取消,所以使用本語句要小心。