sql server中建立架構,架構是幹什麼用的,為什麼要

2021-09-28 18:15:31 字數 3683 閱讀 6771

1樓:匿名使用者

sql server 中的 架構 ( schema )

與 軟體構架 與 架構師 的不是同一個概念

schema 是用於 在一個 大專案中的 各個 小專案

每個 小專案的表, 放在 各自的 schema 下面.

這樣, 遇到 小專案裡面. 有 相同名字的 表的話, 不會發生衝突.

例如一個 公司的 系統.

裡面分2個 子系統, 分別為 財務系統 和 人力資源系統.

這2個 子系統, 共用一個資料庫

.那麼 財務系統的表, 可以放在 財務的 schema.

人力資源系統的表,放在 人力資源系統的模式裡面。

這2個 子系統, 能夠 互相訪問 對方的表

但是又不因為 表重名 的問題,影響對方。

體系結構是下面這個樣子的

[伺服器名稱].[資料庫名稱].[構架名稱].[表名]

create database --> 建立一個資料庫

create schema --> 建立一個構架

當你在 sql server 裡面, 使用 create database 建立一個資料庫以後。

你可以不必額外的去建立 schema

因為 sql server 會 自動的建立一個 名字叫 dbo 的 schema

2樓:匿名使用者

sql server 中建立架構,架構是幹什麼用的,為什麼要建立架構,有什麼好處?

sql server 中的 架構 ( schema )與 軟體構架 與 架構師 的不是同一個概念schema 是用於 在一個 大專案中的 各個 小專案每個 小專案的表, 放在 各自的 schema 下面.

這樣, 遇到 小專案裡面. 有 相同名字的 表的話, 不會發生衝突.

sql server中的架構是什麼意思?

3樓:匿名使用者

在sqlserver 2005中,可能大家在工作或學習的時候會經常發現這樣一些問題,你使用一個賬戶在資料庫中建立了一張表,卻發現你自己建立的表卻沒有修改和查詢的許可權,這是一件很鬱悶的事情,在sqlserver2000中卻不存在這樣的問題,那為什麼在2005中會出現這樣的事情,這樣的設定可以帶來哪些好處?其實導致這一問題的原因主要在於2005中多了一個新的概念—架構。

首先我們來看一下msdn中對架構的定義:架構(schema)是形成單個名稱空間的資料庫實體的集合。名稱空間是一個集合,其中每個元素的名稱都是唯一的。

在這裡,我們可以將架構看成一個存放資料庫中物件的一個容器。

架構實際上在sqlserver2000中就已經存在,當我們使用查詢分析器去查詢一個表的時候,一個完整的表的名稱應該包括伺服器名.資料庫名.使用者名稱.

物件名,而在sqlserver2005中一個表的完全限定名稱應該為伺服器名.資料庫名.架構名.

物件名在2000中,假如有一個賬戶tt在test資料庫中建立了一張表table1的時候,在伺服器上對查詢的語句應為select * from test.tt.table1,也就是說,在sqlserver 2000中一張表所屬的架構預設就是表的建立者的登入名稱,使用者可以和修改他所建立的所有資料庫物件。

但在2005中已經將使用者和其建立物件所屬架構的關聯取消了,而加入了一個全新的架構體系,這樣做的優點主要在於下面幾個方面:

1. 多個使用者可以通過角色(role)或組(windows groups)成員關係擁有同一個架構。

2. 刪除資料庫使用者變得極為簡單。

3. 共享預設架構使得開發人員可以為特定的應用程式建立特定的架構來存放物件,這比僅使用管理員架構(dbo schema)要好。

4. 在架構和架構所包含的物件上設定許可權(permissions)比以前的版本擁有更高的可管理性。

5. 區分不同業務處理需要的物件,例如,我們可以把公共的表設定成pub的架構,把銷售相關的設定為sales,這樣管理和訪問起來更容易.

4樓:匿名使用者

通俗點說就是一個組,裡面可以存放表、檢視、儲存過程等

主要是用於許可權控制安全控制的

sql server資料庫中要建立模式,create schema有什麼用?

5樓:匿名使用者

create schema 用於劃分資料庫表的 應用的區域例如你的資料庫裡面有很多的表。

就以一個學校作為例子吧

有很多表,用於儲存 學生、課程、成績、學分 等資訊。

還有很多表,用於儲存 老師、工資、獎金等資訊。

還有很多表,用於儲存 學校的 固定資產、流動資產、財務相關資訊。

如果這麼多的表,都混雜在一起。

管理起來非常麻煩。

通過 create schema , 劃分割槽域,把學生的,建立一個 schema 叫 student教師的,建立一個 schema 叫 teacher學校財務的,建立一個 schema 叫 school這樣, 對於專門 負責 學生資訊管理的, 就只負責 student 這個 schema

表名 全部是 student.具體表名。

對於,負責 教師 系統 開發的人來說, 程式裡面的 表名, 都是 teacher.具體表名。

學校財務的也是一樣, 查詢的時候, 是:

select

*from

school.具體表名;

---------------------------------模式與資料庫、資料庫中的表有什麼關係 =

1個資料庫下,可以有多個模式。 不指定的時候,預設為 dbo1個模式下,可以有0個或多個表

6樓:紫衍母娜蘭

sys.database_principals檢視包含所有資料庫使用者的預設架構,default_schema_name列即為預設架構,這個很容易理解,執行一下看看效果吧

select

*from

sys.database_principals

7樓:匿名使用者

抱歉,我對資料庫也不是很清楚,可能錯誤,我的理解是:模式的名稱空間決定了在同一個模式下不允許建立同名的使用者表,但是在不同的模式下是允許建立包含不同列結構的同名表的。當多個使用者都需要在同一個資料庫下建立各自的同名表時,各個使用者可以先通過建立屬於各自的模式,再在各自的模式下分別建立自己的同名表來保證互相不會干擾。

這在多使用者共用的資料庫下是非常重要的。

如果以上觀點錯誤,請指出,謝謝

8樓:匿名使用者

schema很重要,每個資料都得建schema,有時候我們不指定schema那麼資料庫也會預設當前登入使用者的名為schema.為什麼建schema呢,你可能把他當成一個名稱空間或一個架構來看,create schema 提供了在sql語句中建立表、檢視以及授予物件許可權的方法,區別重名,比較有的人就是怕索引名同名,所以建立schema,跟他的表的索引區別開來,同時可以讓索引,表,檢視不在同一個名稱空間,讓沒有許可權的使用者不能操作。為什麼要這個分開名稱空間呢,好處主要是對錶的查詢速度會有所提高,如果把索引跟表同在一個名稱空間,那資料庫表空間變小,因為索引是佔空間的。

這樣就會影響到查詢錶速度。

9樓:陳學陽

打來 事件 探查器,慢慢看吧

如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!

vaela

10樓:匿名使用者

create就是建立的意思呀~

sqlserver怎麼建立儲存過程

1 建立語法 create proc procedure pro name 預設值 output 預設值 output as sql statements 2 建立不帶引數儲存過程 建立儲存過程 if exists select from sys.objects where name proc ge...

sqlserver2019用語句建立表

新建查詢,然後輸入如下sql語句 create table 表名 列名1 型別 not null primary key 列名2 型別 not null 以上是模板,列屬性根據具體要做的表來一一設定,建完後重新整理一下資料庫 直接create 表明 欄位設定 visual foxpro中時這樣 點選...

我在建立儲存過程時sqlserver2019每次執行都

if exists select name from sysobjects where name firstprocedure and type p drop procedure firstprocedure go你建立的 抄時候前面加一句襲這個,先判斷 bai該儲存過程是否du存在,存在的話先zh...