数据库笔记-导论
1?數據庫幾個重要的概念
·entities ——實體
·relationships ——關系
->數據庫不僅要反映數據本身的內容,而且要反映數據之間的聯系。
· DBMS(database management system )——數據庫管理系統
1.1?三個易混淆的概念
·data ——數據,用來描述現實世界的符號,信息存在的形式。
·data model ——數據模型,用來描述數據的概念和定義(由數據結構【數據性質、數據關系的性質(靜態性質)】、數據操作【動態性質】、完整性約束三部分組成)
由于計算機不可能直接處理現實世界中的具體事物,所以人們必須事先把具體事物轉換成計算機能夠處理的數據。
在數據庫中用數據模型這個工具來抽象、表示和處理現實世界中的數據和信息。
通俗地講數據模型就是對現實世界的模擬。
·data schema ——數據模式,我們用一種給定的數據模式,對給定的數據進行描述(將data model類比為編程語言的話,schema就是用該語言編寫出來的程序代碼)
2?文件VS 數據庫
·文件是操作系統提供的,文件是沒有結構的,只是一個平滑的字符流(在操作系統里面,關于文件的操作只有create、 open、 read、 write、 lseak【調整指針讀寫位置】、 delete等;并沒有很強的數據管理功能(像內外存轉換、查詢等都是DBMS負責的))
·并發用戶同時訪問數據,需要他們看到的東西是一致的。文件是做不到這一點的,而在數據庫中,DBMS可以幫助我們做到這一點。
·cash recovery 數據恢復,被儲存的數據被破壞時,需要數據庫進行恢復,這也是文件不能做到的一點。
換言之,數據庫系統,是建立在操作系統的文件系統之上的。數據結構化是數據庫與文件系統的根本區別。在描述數據時不僅要描述數據本身,還要描述數據之間的聯系。
3?數據庫的三級結構(數據模式)
數據模式有型和值之分
對于數據庫的三級結構來說,首先把現實世界中的客觀對象抽象為某一種信息結構,這種信息結構并不依賴于具體的計算機系統,不是某一個DBMS支持的數據模型,而是概念級的模型。
然后再把概念模型轉換為計算機上某一DBMS支持的數據模型。
物理模式(內模式):數據在磁盤上是怎么儲存的(eg,用什么數據結構存儲的)
概念模式(邏輯模式/基表):有幾張表、每個表用什么結構、每個屬性的類型&長度。。。。
外模式(視圖):最終呈現給用戶的模式
?
物理模式和概念模式一一對應
同一個概念模式,給不同的用戶,提出不同的功能,就可能得到不同的模式。
舉一個例子:比如教務系統
| Conceptual schema: 概念模式 | 每一個關系(relation)對應的表中的數據結構 |
| Physical schema: 物理模式 | 三張概念模式的基表怎么存儲 |
| External Schema (View): 外視圖 | 這是提供給教務的外模式,知道一門課,知道有幾個人選了這門課 |
?
3.2 數據獨立性:
應用程序和數據的具體結構&存儲方式獨立,不受他們變化的影響
3.2.1 logical data independence
不受數據邏輯結構的變化(邏輯結構變化,可以修改邏輯視圖和外視圖之間的映射關系)
比如上面的例子中,enrolled中cid拆成了cid的前一半&cid的后一半兩個index,但這個并不影響最終外視圖course_info的呈現
3.2.2 physical data structure
不受物理存儲方式的變化
比如上面的例子中,我們不用無序文件,使用哈希表,一樣得到同樣的course_info效果
?
4?數據庫(結構)的分類
4.1 Centralized database systems
早期,一臺主機+n個終端,數據集中存放在主機上
4.1.1 Centralized structure : Host+Terminal
和Centralized database systems對應,集中式的,沒有網絡。
?主機+終端(終端只有鍵盤、顯示器,沒有處理能力)
4.2 Parallel database system
一臺機器,多個cpu,數據還是集中存儲,不過這臺機器有了并行處理數據的能力
4.3 Distributed database systems
復雜的大型分布式操作系統,多臺聯網的電腦連接起來,完成一個任務——分布式操作系統。
企業級數據庫中,單臺電腦存儲不了,也處理不了查詢和處理操作。于是把多臺電腦連成網絡,將數據存儲在多臺電腦上,聯網的機器沒有主次之分,一在邏輯上起形成了完整的數據庫。
4.4 mobile database system
無線通訊——移動數據庫,利用移動網絡提供的移動通訊,使得任何時間,任何地點都能獲得企業數據.
4.5?Client/Server structure
數據庫放在服務器上,提供訪問服務。
應用程序在客戶端上,需要數據時提出請求,主機把數據找到送回去,客戶端對拿到的數據做處理。
4.6 Three tier/multi-tier structure 三層/多層體系結構
1-通過internet、企業內部網提出訪問數據的請求。
2-通過網絡協議向web server提供請求。
3-web server向app server提出請求。
4-如果需要數據,那么app server向db server提出請求。
5-db server將數據給app server,app server進行運算,將結果傳給用戶。??
前端只需要簡單的瀏覽器即可。
對比client-server,后者前端要安裝應用程序;同時一旦應用程序更新了每個用戶都要更新,比較繁瑣,
but因為是多層結構,所以效率可能會低。
5 數據系統的組成
1,DBMS數據庫管理系統(核心)
-High level user interfaces,高級用戶接口(相對于文件接口來說)
-Query processing and optimization 查詢處理與優化
-Catalog management目錄管理(設計一個映射關系)
-Concurrency control and Recovery 并發控制與恢復功能:并發用戶同時訪問數據,需要他們看到的東西是一致的;如果軟硬件發生故障,數據需要及時恢復。
-integrity constraints checking 完整性約束檢查:根據用戶制定的規則,保護數據的一致性
-Access control:安全性,合法的用戶才能訪問給定權限的數據
2,database 數據庫
3,app 數據庫基礎上開發的應用程序
4,DBA 應用程序的管理者
總結
- 上一篇: 谱聚类初探
- 下一篇: 文巾解题 1556. 千位分隔数