sqlserver體系結構
『壹』 sql server 中創建架構,架構是干什麼用的,為什麼要創建架構,有什麼好處
SQL Server 中的 架構 ( schema )
與 軟體構架 與 架構師 的不是同一個概念
schema 是用於 在一個 大項目中的 各個 小項目
每個 小項目的表, 放在 各自的 schema 下面.
這樣, 遇到 小項目裡面. 有 相同名字的 表的話, 不會發生沖突.
例如一個 公司的 系統.
裡面分2個 子系統, 分別為 財務系統 和 人力資源系統.
這2個 子系統, 共用一個資料庫
.
那麼 財務系統的表, 可以放在 財務的 schema.
人力資源系統的表,放在 人力資源系統的模式裡面。
這2個 子系統, 能夠 互相訪問 對方的表
但是又不因為 表重名 的問題,影響對方。
體系結構是下面這個樣子的
[伺服器名稱].[資料庫名稱].[構架名稱].[表名]
create database --> 創建一個資料庫
create schema --> 創建一個構架
當你在 SQL Server 裡面, 使用 create database 創建一個資料庫以後。
你可以不必額外的去創建 schema
因為 SQL Server 會 自動的創建一個 名字叫 dbo 的 schema
『貳』 什麼是sqlserver
SQL Server是由Microsoft開發和推廣的關系資料庫管理系統(DBMS),那麼你對sqlserver了解多少呢?以下是由我整理關於什麼是sqlserver的內容,希望大家喜歡!
sqlserver的簡介
SQL Server是由Microsoft開發和推廣的關系資料庫管理系統(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發的,並於1988年推出了第一個OS/2版本。Microsoft SQL Server近年來不斷更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用戶見面;SQL Server 2000是Microsoft公司於2000年推出,目前最新版本是2015年份推出的SQL SERVER 2015。
sqlserver的特點
1.真正的客戶機/伺服器體系結構。
2.圖形化用戶界面,使系統管理和資料庫管理更加直觀、簡單。
3.豐富的編程介面工具,為用戶進行程序設計提供了更大的選擇餘地。
4.SQL Server與Windows NT完全集成,利用了NT的許多功能,如發送和接受消息,管理登錄安全性等。SQL Server也可以很好地與Microsoft BackOffice產品集成。
5.具有很好的伸縮性,可跨越從運行Windows 95/98的膝上型電腦到運行Windows 2000的大型多處理器等多種平台使用。
6.對Web技術的支持,使用戶能夠很容易地將資料庫中的數據發布到Web頁面上。
7.SQL Server提供數據倉庫功能,這個功能只在Oracle和其他更昂貴的DBMS中才有。
SQL Server 2000與以前版本相比較,又具有以下新特性 :
1.支持XML(Extensive Markup Language,擴展標記語言)
2.強大的基於Web的分析
3.支持OLE DB和多種查詢
4.支持分布式的分區視圖
sqlserver的配置要求
安裝、運行SQL Server 2000的硬體需求
1.計算機
Intel及其兼容計算機,Pentium 166Mz或者更高處理器或DEC Alpha和其兼容系統。
2.內存(RAM)
企業版最少64MB內存,其他版本最少需要32MB內存,建議使用更多的內存。
3.硬碟空間
完全安裝(Full)需要180MB的空間,典型安裝(Typical)需要170MB的空間,最小安裝(Minimum)需要65MB的空間。
Sqlserver的版本
SQL Server 2000 :是Microsoft 公司推出的SQL Server 資料庫管理系統,該版本繼承了SQL Server 7.0 版本的優點,同時又比它增加了許多更先進的功能。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的伺服器等多種平台使用。
SQL Server 2005 是一個全面的資料庫平台,使用集成的商業智能 (BI) 工具提供了企業級的數據管理。SQL Server 2005 資料庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程序。
SQL Server 2005:SQL Server 2005 數據引擎是本企業數據管理解決方案的核心。此外 SQL Server 2005 結合了分析、報表、集成和通知功能。這使您的企業可以構建和部署經濟有效的 BI 解決方案,幫助您的團隊通過記分卡、Dashboard、Web services 和移動設備將數據應用推向業務的各個領域。
與 Microsoft Visual Studio、Microsoft Office System 以及新的開發工具包(包括 Business Intelligence Development Studio)的緊密集成使 SQL Server 2005 與眾不同。無論您是開發人員、資料庫管理員、信息工作者還是決策者,SQL Server 2005 都可以為您提供創新的解決方案,幫助您從數據中更多地獲益。
SQL Server 2008:SQL Server 2008是一個重大的產品版本,它推出了許多新的特性和關鍵的改進,使得它成為至今為止的最強大和最全面的SQL Server版本。這篇文章詳細介紹了Microsoft SQL Server 2008中的新的特性、優點和功能……
微軟的這個數據平台滿足這些數據爆炸和下一代數據驅動應用程序的需求,支持數據平台願景:關鍵任務企業數據平台、動態開發、關系數據和商業智能。
許多因素致使產生了信息存儲爆炸。有了新的信息類型,例如圖片和視頻的數字化,和從RFID標簽獲得的感測器信息,公司的數字信息的數量在急劇增長。遵守規范和全球化的發展要求信息存儲的安全性和在任何時候都可用。同時,磁碟存儲的成本顯著地降低了,使得公司投資的每一美元可以存儲更多的數據。用戶必須快速的在大量的數據中找到相關的信息。此外,他們想在任何設備上使用這個信息,並且計劃每天使用,例如Microsoft Office系統應用程序。對數據爆炸和用戶期望值的增加的管理為公司製造了許多挑戰。
『叄』 SQL資料庫是什麼
SQL是Structured Query Language(結構化查詢語言)的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。在使用它時,只需要發出「做什麼」的命令,「怎麼做」是不用使用者考慮的。
SQL資料庫的數據體系結構基本上是三級結構,但使用術語與傳統關系模型術語不同。在SQL中,關系模式(模式)稱為"基本表"(base table);存儲模式(內模式)稱為"存儲文件"(stored file);子模式(外模式)稱為"視圖"(view);元組稱為"行"(row);屬性稱為"列"(column)。
(3)sqlserver體系結構擴展閱讀:
SQL資料庫的優點:
1、易用性高:
適合分布式組織的可伸縮性、用於決策支持的數據倉庫功能、與許多其他伺服器軟體緊密關聯的集成性、良好的性價比等。
2.為數據管理與分析帶來了靈活性:
允許單位在快速變化的環境中從容響應,從而獲得競爭優勢。從數據管理和分析角度看,將原始數據轉化為商業智能和充分利用Web帶來的機會非常重要。作為一個完備的資料庫和數據分析包,SQLServer為快速開發新一代企業級商業應用程序、為企業贏得核心競爭優勢打開了勝利之門。
『肆』 sqlserver和oracle主要有什麼區別
1,oracle支持多種操作系統,sql server只支持windows。
2,oracle給dba更多的靈活性,可以根據實際情況調整參數,使你的應用的性能最佳,因而帶來一個缺點是很難上手;sql server則相反,當然很容易上手。
體系結構
oracle的文件體系結構為:
數據文件 .dbf(真實數據)
日誌文件 .rdo
控制文件 .ctl
參數文件 .ora
sql server的文件體系結構為:
.mdf (數據字典)
.ndf (數據文件)
.ldf (日誌文件)
www.2cto.com
oracle存儲結構:
在oracle里有兩個塊參數pctfree(填充因子)和pctused(復用因子),可控制塊確定塊本身何時有,何時沒有足夠的空間接受新信息(對塊的存儲情況的分析機制)
這樣可降低數據行連接與行遷移的可能性。塊的大小可設置(oltp塊和dss塊)
在oracle中,將連續的塊組成區,可動態分配區(區的分配可以是等額的也可以是自增長的)可減少空間分配次數
在oraclel里表可以分為多個段,段由多個區組成,每個段可指定分配在哪個表空間里(段的類型分為:數據段、索引段、回滾段、臨時段、cash段。oracle里還可對表進行分區,可按照用戶定義的業務規則、條件或規范,物理的分開磁碟上的數據。
這樣大大降低了磁碟爭用的可能性。
oracle有七個基本表空間:
·system表空間(存放數據字典和數據管理自身所需的信息)
·rbs回滾表空間
·temp臨時表空間
·tools互動式表空間
·users用戶默認表空間
·indx索引表空間
·dbsys福數據表空間
不同的數據分別放在不同的表空間(數據字典與真實數據分開存放),在oracle里基表(存儲系統參數信息)是加密存儲,任何人都無法訪問。只能通過用戶可視視圖查看。
sql server 存儲結構
以頁為最小分配單位,每個頁為8k(不可控制,缺乏對頁的存儲情況的分析機制),可將8個連續的頁的組成一個『擴展』,以進一步減少分配時所耗用的資源。(分配缺乏靈活性),在sql server里數據以表的方式存放,而表是存放在資料庫里。
sql server有五個基本資料庫: www.2cto.com
·master(數據字典)
·mode(存放樣版)
·tempdb(臨時資料庫)
·msdb(存放調度信息和日誌信息)
·pubs(示例資料庫)
真實數據與數據字典存放在一起。對系統參數信息無安全機制。
oracle登入管理:
·system/manager (初始帳戶)
·sys/change_on_nstall
·install/oracle(安裝帳戶)
·scott/tiger(示例資料庫,測試用)
在oracle里默認只有三個系統用戶,oracle是通過用戶登入。
sql server登入管理:
·sql server身份驗證
·windows 身份驗證
在sql server里是通過windows用戶帳戶或是用sql server身份驗證連接資料庫的。
sql不是一種語言,而是對oracle資料庫傳輸指令的一種方式。
sql中null既不是字元也不是數字,它是預設數據。oracle提供了nvl函數來解決。
oracle中的字元串連接為 string1‖string2 ,sql中為string1+string2.
集合操作:在sql中只有union(並操作),oracle中包含minus(差操作)、interect(交操作)、union(並操作)。
索引:sql的索引分為聚集索引和非聚集索引,還包括全文索引;
oracle的索引包括:b+樹索引,bitmap點陣圖索引,函數索引,反序索引,
主鍵索引,散列索引,本地索引。 www.2cto.com
oracle的數據類型比較復雜,有基本數據類型,衍生型,列對象型,表對象型,結構體型;
sql中的數據比較簡單,只有一些簡單的基本數據類型無法提供事務操作。
在sql中如果一個事務從開始執行到結束時了錯了,它就會回滾到開始之前;
在oracle中它採用的是定點回滾,就是該事務函數化和精確錯誤定位,用savepoint標記保存點,用rollback標記回滾錯誤的保存點。
在sql中循環只有while一種這用起來不靈活,在oracle中有多種循環(loop循環、while循環、for循環)。
在sql中游標的使用比較復雜,不能同時打開一個以上的游標,因為它只有一個全局變數@@fast_statues而且聲明游標也麻煩,關閉游標時也不清除內存的;oracle中游標是以提高速度全部統一的單項游標,可以允許多用戶非同步讀取,而且聲明比較簡單,就一句declare cursor游標名 is select 語句就可以了。
容錯機制:sql中的錯誤機制比較復雜,沒有提供錯誤描述;oracle中容錯類型有三種,一個是預定義錯誤,一個是非預定義錯誤,一個是用戶自定義,其中在自定義錯誤中它有兩個是在sql中不有的,那就是sqlcode 錯誤號、sqlerrm錯誤描述。
文件體系結構:sql中有.mdf(主要數據文件)、.ndf(擴展文件,可以有多個)、
.ldf(日誌文件,可以有多個,存放在聯機重做日誌數據,這里的日誌文件有一個缺點就是如果日誌文件已填小巧玲瓏的話,sql將自動停止運行並等待人工干預,所以要經常監控日誌的情況保證系統的穩定運行)。oracle中有.dbf(主要數據文件)、.rdo(日誌文件,用來做災難性的數據備份)、.ctl(控制文件,將資料庫的物理文件映射到了數據字典中的邏輯表空間和連機重做日誌文件上去,確保數據的一致性)、.ora(參數文件)。
sql只能是本機備份本機的資料庫,無法聯機備份,而且備份壓縮很低,佔用了大量空間;oracle提供了7種備份機制,具有聯機備份功能,有志門的備份機子。
oracle的日誌默認有3個,先寫入1號日誌,滿了後再寫入2號日誌,2號滿了再寫入3號日誌,3號滿了後oracle將自動備分1號日誌的內容,然後清空後寫入新的日誌信息,且oracle的日誌有多路復用功能,我們可以為日誌創建多個鏡像,把相同的日誌信息同時寫入多個日誌文件中,這樣可以防止磁碟損壞造成的數據丟失。
sql server對每個資料庫只能分配一個日誌文件。且當日誌填滿後,日誌將停止工作,等待人工干預,而無法自動重用。 www.2cto.com
oracle的控制文件記錄了資料庫文件的物理位置和有效性,在每次打開oracle系統都將自動對數據進行驗證,查看其有效性,防止數據的丟失,這體現了oracle對數據管理的嚴密性。
sql server無此安全機制,只用在使用到了資料庫的信息後,系統才去查找數據是否存在。
oracle的參數文件init.ora是可調的,既我們可以根據資料庫的規模調整oracle對系統資源的使用情況,以達到最合理的資源分配,讓oracle達到最佳的性能。
sql server的配置參數是內定的不可調整,它對系統資源的分配是固定的,不受擁護控制,因此無法同時處理大量用戶的需求,這限制了它只能作為中,小型資料庫。
oracle以塊為最小存儲單位,以區為單位分配空間,用戶可以根據需要自己定義塊的大小,且區可以按等額或遞增進行分配,這可以大大減少系統的i/o操作提高資料庫的性能。
sql server中以頁為單位或使用擴展類型以8頁為一單位進行空間分配而無法人工干預,當遇到頻繁存儲或大數據量存儲時,系統將頻繁進行i/o操作使工作效率低下。
oracle中的sql語句書寫規范且提供了完整的函數和數據類型。oracle提供了健全的錯誤機制,用戶可以輕松的獲得錯誤位置和錯誤原因而加以修改。用戶還可以自己定義所須的錯誤類型,用以檢查邏輯錯誤。oracle中對數據類型的轉換和游標的定義也十分方便。因此,我們對代碼的書寫和維護也比sql server方便許多。
sql server使用類c語言,不易維護和查看代碼。sql server包含的數據類型太少,無法定義結構體,數組,對象。sql server無法定義流程機制,類型轉換也極不方便,sql server中對游標定義十分復雜,且當用戶定義的多個游標同時打開時系統卻只有一個游標變數,這是sql server中一個嚴重的缺陷。
oracle中用戶可以根據數據需要在創建塊時定義填充因子(空閑空間的百分比)和復用因子(當塊的存儲數據所佔的空間下降到這個百分比之下時,塊才重新標記為可用)。用戶可以根據記錄變化頻率和數據量的大小設置合適的填充因子和空閑因子。
sql server只有填充因子,而它的定義與oracle剛好相反,它定義的是剩餘可用空間的百分比。而sql server中沒有復用因子,當頁中數據低於填充因子,但剩餘的空間已經不可能再插入新的數據,但頁還是標記為可用的,當系統要寫入新數據都要訪問這個頁而浪費時間,這種頁稱為廢頁,將使系統插入新數據時浪費大量時間查找可用的頁。
oracle在創建表時用戶可以精確定義數據存放的表空間,甚至可以把一張表分開存放在多個表空間中,這樣可以將數據量龐大的表按某些欄位分開存放,這將給查詢帶來極高的效率。
www.2cto.com
隨著信息技術的飛速發展,數據處理不僅在數量上要求越來越大,而且在質量上也要求越來越高。
操作系統的穩定對資料庫來說是十分緊要的,在資料庫可操作平台上,oracle可在所有主流平台上運行,oracle資料庫採用開放的策略目標,它使得客戶可以選擇一種最適合他們特定需要的解決方案。客戶可以利用很多種第三方應用程序、工具。對開發商來說是很大的支持。而sql server卻只能在windows上運行了,這個就顯得比較單調了,但sql sever在window平台上的表現,和windows操作系統的整體結合程度,使用方便性,和microsoft開發平台的整合性都比oracle強的很多。但windows操作系統的穩定性及可靠性大家是有目共睹的,再說microsoft公司的策略目標是將客戶都鎖定到windows平台的環境當中,只有隨著windows性能的改善,sql server才能進一步提高。從操作平台這點上oracle是完全優勝於sql server的了。
從資料上可以看到,oracle的安全認證獲得最高認證級別的iso標准認證,而sql server並沒有獲得什麼安全認證。這方面證明了oracle的安全性是高於sql server的。
購買一個產品,首先考慮的當然是產品的性能了,當考慮性能的同時當然少不了究竟要花多少錢在這產品也是個很關鍵的問題。要建立並運行一個資料庫系統。不僅僅包含最初購置軟體、硬體的費用,還包含了培訓及以後維護的費用。orcale資料庫的價格是遠比sql server資料庫要高,為什麼oracle資料庫比sql server資料庫價格上要高出那麼多,一方面oracle的初始花費相對較高,特別是在考慮工具軟體的時候,oracle很多工具軟體需要另外購買,與microsoft提供免費的sql server工具軟體相比,oracle更顯價格的不菲。但由於sql server只能在windows下運行的原因,普遍認為sql server資料庫的可靠性是比較差的。oracle的性能優勢體現在他的多用戶上,而sql server的性能優勢在多用戶上就顯得力不從心了。
操作上sql server明顯要比orcale簡單,如果你用過java和dotnet的開發平台,區別的基本就是oracle和sql server不同,oracle的界面基本是基於java的,大部分的工具是dos界面的,甚至sqlplus也是, sql server是跟vb一樣,全圖形界面,很少見到dos窗口。sql server中的企業管理器給用戶提供一個全圖形界面的集成管理控制台來集中管理多個伺服器。oracle也有自己的企業管理器,而且它的性能在某些方面甚至超過了sql server的企業管理器,但它安裝較為困難。
orcale資料庫和sql server資料庫那個更快?其實是一個很難答的問題,因為存在許多不定因素,包括處理類型、數據分布以及硬體基礎設施等。
sql server 2000是一個具備完全web支持的資料庫產品,提供了可擴展標記語言核心支持以及internet上和防火牆外進行查詢的能力,具有可伸縮性、靈活性、擴充性好,而且價格便宜等特點,而oracle則有著可靠安全性,速度比sql server快上百倍,但其價格在實施中卻比sql server它高出了幾百倍。
其實各行業考慮選擇那種資料庫,是由資料庫的特點以及根據自己的業務需求和基礎設施綜合考慮來決定的。
『伍』 什麼是架構,SQL中的架構有哪些
架構(Schema)是一組資料庫對象的集合,它被單個負責人(可以是用戶或角色)所擁有並構成唯一命名空間。你可以將架構看成是對象的容器。
在 SQL Server 2000 中,用戶(User)和架構是隱含關聯的,即每個用戶擁有與其同名的架構。因此要刪除一個用戶,必須先刪除或修改這個用戶所擁有的所有資料庫對象。
在 SQL Server 2005 中,架構和創建它的資料庫用戶不再關聯,完全限定名(fully-qualified name)現在包含4個部分:server.database.schema.object
1. 體系結構(Architecture)
體系結構亦可稱為架構,所謂軟體架構,根據Perry 和Wolfe之定義:Software Architecture = {Elements,Forms, Rationale / Constraint },也就是軟體主架構 = {組件元素,元素互助合作之模式,基礎要求與限制}。Philippe Kruchten採用上面的定義,並說明主架構之設計就是:將各組件元素以某些理想的合作模式組織起來,以達成系統的基本功能和限制。體系結構又分為多種樣式,如Pipes and Filters等。
2. 框架(Framework)
框架亦可稱為應用架構,框架的一般定義就是:在特定領域基於體系結構的可重用的設計。也可以認為框架是體系結構在特定領域下的應用。框架比較出名的例子就是MVC。
3. 庫(Library)
庫應該是可重用的、相互協作的資源的集合,供開發人員進行重復調用。它與框架的主要區別在於運行時與程序的調用關系。庫是被程序調用,而框架則調用程序。比較好的庫有JDK。
4. 設計模式(Design Pattern)
設計模式大家應該很熟悉,尤其四人幫所寫的書更是家喻戶曉。「四人幫」將模式描述為「在一定的環境中解決某一問題的方案」。這三個事物 — 問題、解決方案和環境 — 是模式的基本要素。給模式一個名稱,考慮使用模式將產生的結果和提供一個或多個示例,對於說明模式也都是有用的。
5. 平台(PlatForm)
由多種系統構成,其中也可以包含硬體部分。
對於以上的概念有一個比較清楚的認識之後,就可以在軟體的開發過程中進行應用。理論和實踐是缺一不可的,相輔相成的。沒有理論的指導,實踐就缺乏基礎;沒有實踐的證明,理論就缺乏依據,因此我一直認為:對於當代的程序員,在有一定的實踐基礎後,必須學習更深的理論知識。無論你是從那方面先開始學習的。
在軟體的開發過程中,從許多過程實踐和方法中,大致可以提煉出五大步驟:需求、分析、設計、編碼、測試。而體系結構是軟體的骨架,是最重要的基礎。體系結構是涉及到每一步驟中。一般在獲取需要的同時,就應該開始分析軟體的體系結構。體系結構現在一般是各個大的功能模塊組合成,然後描述各個部分的關系。
我一般認為框架是體系結構中每個模塊中更細小的結構。如需要表示web技術,就會用到MVC框架,而web功能只是整個軟體體系中的一個功能模塊。每個框架可以有許多個實例,如用java實現的MVC框架structs。
而在框架之下就是設計模式,設計模式一般是應用中框架之中的,也可以說是對框架的補充。因為框架只是提供了一個環境,需要我們我裡面填入更多的東西。無論是否應用了設計模式,你都可以實現軟體的功能,而正確應用了設計模式,是我們對前人軟體的設計或實現方法的一種繼承,從而讓你的軟體更軟。
體系結構是可以從不同視角來進行分析的,所以軟體體系結構的設計可以按照不同的視角來進行的。按4+1 views的論述,那是四種views:邏輯、開發、過程、物理和場景。因此體系結構是逐漸細化的,你不可能開始就拿出一個完美的體系結構,而只能根據開發過程逐漸對體系結構進行細化。
打個比方:如果我們准備建一個房子,那房子如果按功能來分:牆壁、地板、照明等,它是按那種樣式來組成的,房子是四方的還是圓形的等,這樣就組成了房子的體系結構。在體系結構之下,我們可以把框架應用在每個模塊中,例如牆壁,我們准備應用什麼框架。牆壁可以包括:窗戶、門等。窗戶和門的組成的就是一種框架。而窗戶是什麼形狀的或者是大還是小,是要為了實現屋內的亮度的,因此挑選什麼樣的窗戶就是設計模式。