1. 程式人生 > >數據庫入門1 了解數據庫

數據庫入門1 了解數據庫

絲毫 推出 開源 支持 odbc 線程 修改 api rdb

知識內容:

1.數據庫技術的概述

2.數據庫技術的發展

3.主流的數據庫介紹

一、數據庫技術的概述

1.什麽是數據庫、數據庫管理系統、數據庫系統

數據庫(DB): 數據庫是長期存放在計算機內的、有組織的、可共享的數據的集合

數據庫管理系統(DBMS): 數據庫管理系統是一種負責數據庫的定義、建立、操作、管理和維護的軟件系統

數據庫系統(DBS): 數據庫系統是實現有組織地、動態地存儲大量關聯數據方便多用戶訪問的計算機軟件、硬件和數據資源組成的系統

2.數據庫系統介紹

(1)數據庫系統的分類

根據計算機的系統結構,DBS(數據庫系統)可分為4類: 集中式、客戶\服務式、並行式和分布式

(2)數據庫系統組成部分

一個典型的數據庫系統應該包括數據庫、硬件、軟件(應用程序)和數據庫管理員(DBA)4個部分,狹義地講數據庫和數據庫管理系統加在一起就構成了數據庫系統

(3)數據庫系統的特點

  • 數據庫系統中的數據是結構化的
  • 數據冗余度小,易於擴充
  • 較高的數據和程序獨立性
  • 數據庫為用戶提供了方便的接口
  • 數據的最小單位是數據項

(4)數據庫系統的控制功能

  • 數據的安全性控制 -> 防止數據的泄密和損壞
  • 數據的完整性約束 -> 數據的正確性、有效性和相容性
  • 並發控制 -> 防止多個用戶同時存取、修改數據庫中的數據時,發生相互幹擾而使數據完整性收到破壞
  • 數據庫的恢復 -> 數據庫發生故障時就需要使用到數據庫的恢復

二、數據庫技術的發展

1.web應用開發技術簡單介紹

(1)CGI編程 -> 現在已經是不存在了

CGI(通用網關接口)是一種通信標準,它的任務是接受客戶端的請求,經過辨認和處理,生成HTML文檔並重新傳送到客戶端。這種交互過程的編程就叫做通用網關接口編程。CGI可以運行在多個平臺上,可以使用多種語言編寫CGI程序,但是其也有致命缺點: 速度慢、安全性差

(2)ASP

ASP(動態服務器頁面)是微軟公司推出的用以取代CGI的技術,是簡單易學、功能強大的服務器編程技術。通過ASP可以建立動態的、交互的、高效的、web服務器應用程序。用ASP編寫的程序在服務端執行,程序執行完畢後再將執行的結果返回給客戶端瀏覽器,這樣不僅減輕了客戶端瀏覽器的壓力,大大提高了交互速度,而且避免了ASP程序源代碼的外泄,提高了程序的安全性

(3)JSP

JSP(Java服務器頁面)是sun公司推出的web應用開發技術,一經推出就大受關註。JSP技術使用Java語言編寫服務器端程序,當客戶端向服務器發生請求時,JSP源程序被編譯成servlet並由Java虛擬機執行。這種編譯僅在對JSP頁面的第一次請求時發生,因此JSP程序能夠提供更快的交互速度,安全性和跨平臺性也很優秀

2.數據庫技術的發展3大階段

(1)人工管理階段

20世紀50年代以前,計算機主要用於數值計算.從當時的硬件看,外存只有紙帶,卡片,磁帶,沒有直接存取設備;從軟件看(實際上,當時還未形成軟件的整體概念),沒有操作系統以及管理數據的軟件;從數據看,數據量小,數據無結構,由用戶直接管理,且數據間缺乏邏輯組織,數據依賴於特定的應用程序,缺乏獨立性

(2)文件系統階段

50年代後期到60年代中期,出現了磁鼓,磁盤等數據存儲設備.新的數據處理系統迅速發展起來。這種數據處理系統是把計算機中的數據組織成相互獨立的數據文件,系統可以按照文件的名稱對其進行訪問,對文件中的記錄進行存取,並可以實現對文件的修改,插入和刪除,這就是文件系統.文件系統實現了記錄內的結構化,即給出了記錄內各種數據間的關系。但是,文件從整體來看卻是無結構的.其數據面向特定的應用程序,因此數據共享性,獨立性差,且冗余度大,管理和維護的代價也很大

(3)數據庫系統階段

60年代後期,出現了數據庫這樣的數據管理技術.數據庫的特點是數據不再只針對某一特定應用,而是面向全組織,具有整體的結構性,共享性高,冗余度小,具有一定的程序與數據間的獨立性,並且實現了對數據進行統一的控制

三、主流的數據庫介紹

1.SqlServer

(1)SqlServer介紹

SQL Server是由Microsoft開發和推廣的數據庫,是一種應用廣泛的數據庫管理系統

(2)SqlServer優缺點

優點:

  • 易用性
  • 適合分布式組織的可伸縮性
  • 用於決策支持的數據倉庫功能
  • 與許多其他服務器軟件緊密關聯的集成性
  • 良好的性價比

缺點:

  • 開放性: 只能運行在微軟的windows平臺,沒有絲毫的開放性可言
  • 可伸縮性及並行性: 並行實施和共存模型並不成熟,很難處理日益增多的用戶數和數據卷,伸縮性有限
  • 性能穩定性: SQLServer當用戶連接多時性能會變的很差,並且不夠穩定
  • 使用風格: SQLServer完全重寫的代碼,經歷了長期的測試,不斷延遲,許多功能需時間來證明。並不十分兼容早期產品。使用需要冒一定風險
  • 客戶端支持及應用模式: 只支持C/S模式

2.MYSQL

(1)MySQL介紹

MySQL是一個關系型數據庫管理系統由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關系型數據庫系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件

另外由於其體積小、速度快、總體擁有成本低,尤其是開發源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫。由於其社區版的性能卓越,搭配 PHP 和 Apache 組成良好的開發環境

(2)MySQL的優缺點

優點:

  • 體積小、速度快、總體擁有成本低,開源支持多種操作系統
  • 是開源數據庫,提供的接口支持多種語言連接操作
  • 核心程序采用完全的多線程編程。線程是輕量級的進程,它可以靈活地為用戶提供服務,而不過多的系統資源
  • 支持ODBC for Windows, 支持所有的ODBC 2.5函數和其他許多函數, 可以用Access連接MySql服務器, 使得應用被擴展
  • 支持大型的數據庫, 可以方便地支持上千萬條記錄的數據庫。作為一個開放源代碼的數據庫,可以針對不同的應用進行相應的修改
  • 擁有一個非常快速而且穩定的基於線程的內存分配系統,可以持續使用面不必擔心其穩定性
  • MySQL同時提供高度多樣性,能夠提供很多不同的使用者介面,包括命令行客戶端操作,網頁瀏覽器,以及各式各樣的程序語言介面
  • 跨平臺,可以在Windows、Linux、Unix、Mac上使用


缺點:

  • 不支持熱備份
  • MySQL最大的缺點是其安全系統,主要是復雜而非標準,另外只有到調用mysqladmin來重讀用戶權限時才發生改變
  • 沒有一種存儲過程(Stored Procedure)語言,這是對習慣於企業級數據庫的程序員的最大限制

3.oracle

(1)oracle介紹

Oracle是甲骨文公司的一款關系型數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。可以說Oracle數據庫系統是目前世界上流行的關系數據庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的數據庫解決方案

(2)oracle優缺點

優點:

  • 開放性:oracle能所有主流平臺上運行(包括 windows)完全支持所有工業標準采用完全開放策略使客戶選擇適合解決方案對開發商全力支持
  • 可伸縮性,並行性:Oracle 並行服務器通過使組結點共享同簇工作來擴展windownt能力提供高用性和高伸縮性
  • 安全性:獲得最高認證級別的ISO標準認證
  • 性能:Oracle 性能高 保持開放平臺下TPC-D和TPC-C世界記錄
  • 客戶端支持及應用模式:Oracle 多層次網絡計算支持多種工業標準用ODBC、JDBC、OCI等網絡客戶連接
  • 使用風險:Oracle 長時間開發經驗完全向下兼容得廣泛應用地風險低

缺點:

  • 對硬件的要求很高
  • 價格比較昂貴
  • 管理維護麻煩一些
  • 操作比較復雜,需要技術含量較高

4.DB2

IBM DB2 是美國IBM公司開發的一套關系型數據庫管理系統,它主要的運行環境為UNIX(包括IBM自家的AIX)、Linux、IBM i(舊稱OS/400)、z/OS,以及Windows服務器版本

5.MongoDB

MongoDB是一個基於分布式文件存儲的數據庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案

MongoDB是一個介於關系型數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json中的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引

6.Redis

Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。Redis讀寫數據的效率極高,遠遠超過數據庫,因為Redis交換數據快,所以在服務器中常用來存儲一些需要頻繁調取的數據,這樣可以大大節省系統直接讀取磁盤來獲得數據的I/O開銷,更重要的是可以極大提升速度

數據庫入門1 了解數據庫