菜鳥崛起 DB Chapter 1 數據庫概述

1. 數據庫的概述

在目前階段,若是要存儲和管理數據,則離不開數據庫。當數據存儲到數據庫後,就會經過數據庫管理系統對這些數據進行組織和管理。數據庫由一批數據構成有序的集合,這些數據被存放在結構化的數據表裏。數據表之間相互關聯,反映了客觀事物間的本質聯繫。數據庫系統階段提供對數據的安全控制和完整性控制。數據庫

1.1 數據管理技術的發展階段

所謂數據管理,是指對各類數據進行分類、組織、編碼、存儲、檢索和維護。發展到如今,數據庫管理技術經歷了三個階段,分別爲人工管理階段、文件系統階段和數據庫系統階段。編程

1.1.1 人工管理階段

20世紀50年代中期之前。因爲計算機中硬件尚未像如今這樣的硬盤、軟件沒有專門管理數據的軟件,因此計算機只侷限於科學技術方面,數據只由計算和處理它的程序自行攜帶。該時期被稱爲人工管理階段。數組

人工管理階段特色以下:安全

數據不能長期保存。服務器

程序自己管理數據。網絡

數據不能共享。數據結構

數據不具備獨立性。框架

1.1.2 文件系統階段

隨着技術的發展,20世紀50年代後期到20世紀60年代中期,計算機不只應用於科學技術,並且開始用於管理。在該時期因爲計算機硬件出現了硬盤,計算機軟件出現了高級語言和操做系統,所以程序和數據有了必定獨立性,出現了程序文件和數據文件,這就是所謂的文件系統階段。函數

文件系統階段的特色以下:大數據

數據能夠長期保存

數據由文件系統來管理。

數據冗餘大,共享性差。

數據獨立性差。

1.1.3 數據庫系統階段

隨着網絡技術的發展,計算機軟硬件功能的進步,在20世紀60年代後期,計算機能夠管理規模巨大的數據,這時若是計算機還使用文件系統來管理數據,則遠遠不能知足當時各類應用需求,因而出現了數據庫技術,特別是關係型數據庫技術。該階段就是所謂的數據庫系統階段。

數據庫階段的特色以下:

數據實現結構化。

數據實現了共享性。

數據獨立性強。

數據粒度變小。

1.1.3.1 數據庫技術經歷的階段

在數據庫系統管理數據階段,隨着時間的推移,又經歷了3個技術階段,分別爲:層次數據庫和網狀數據庫技術階段、關係數據庫技術階段,不一樣種類的數據庫按照不一樣的數據結構來聯繫和組織。

1.2 數據庫系統階段涉及的概念

數據庫(DataBase DB:是指長期保存在計算機的存儲設備上,按照必定規則組織起來,能夠被各類用戶共享的,被統一管理的數據的集合。

數據庫管理系統(DataBase Management System DBMS:是指一種操做和管理數據庫的大型軟件,用於創建、使用和維護數據庫,對數據庫進行統一管理和控制,以保證數據庫的安全性和完整性。用戶經過數據庫管理系統管理和訪問數據庫中的數據。當前比較流行和經常使用的數據庫管理系統有OracleMySQLSQL ServerDB2等。

數據庫系統(Database System DBS:是指在計算機系統中引入數據庫後的系統,一般由計算機硬件、軟件、數據庫管理系統和數據管理員組成。

一般會用數據庫來表示咱們使用的數據庫軟件,確切說數據庫軟件應該爲數據庫管理系統。

數據庫應用程序(DataBase Application):雖然已經有了DBMS,可是在不少狀況下,DBMS沒法知足對數據管理的要求。數據庫應用程序的使用能夠知足對數據管理的更高要求,還可使數據管理過程更加直觀和友好。數據庫應用程序負責與DBMS進行通訊,訪問和管理DBMS中存儲的數據,容許用戶插入、刪除、修改DB中的數據。

 

表(Table:在關係數據庫中,數據庫表是一系列二維數組的集合,用來存儲數據和操做數據的邏輯結構。它由縱向的列和橫向的行組成,行被稱爲記錄,是組織數據的單位;列被稱爲字段,每個列表示記錄的一個屬性,都有相應的描述信息,如數據類型、數據寬度等。數據表是由表名、表中的字段和表的記錄三個部分組成的。設計數據表結構就是定義數據表文件名,肯定數據表包含哪些字段,各字段的字段名、字段類型、及寬度,並將這些數據輸入到計算機當中。一個數據庫中數據庫表名稱惟一。

數據類型:數據類型決定了數據在計算機中的存儲格式,表明不一樣的信息類型。經常使用的數據類型有:整數數據類型、浮點數數據類型、精確小數類型、二進制數據類型、日期/時間數據類型、字符串數據類型。

主鍵(PRIMARY KEY:又稱主碼,用於惟一地標識表中的每一行記錄。能夠定義表中的一列或多列爲主鍵,主鍵不能爲空值。主鍵約束:非空,惟一,被引用(外鍵)主鍵列的值不能爲NULL,也不能重複!指定主鍵約束使用PRIMARY KEY關鍵字

1.3 數據庫技術構成

簡單來講數據庫由硬件和軟件構成,硬件包括計算機、存儲設備等。軟件部分包括DBMS、支持DBMS運行的操做系統,以及支持多種語言進行應用開發的訪問技術等。

1.3.1  數據庫系統

數據庫系統由一下三個部分構成:

數據庫(Database)

數據庫管理系統(Database Management System)

數據庫應用程序(DataBase Application

1.3.2  SQL語言

對數據庫進行查詢和修改操做的語言叫作SQLSQL的含義是結構化查詢語言(Structured Query Language)。

1.3.2.1  SQL分類

SQL有許多不一樣的類型,有3個主要的標準:

l ANSI(美國國家標準)SQL

l SQL-99

各大數據庫廠商提供的SQL標準,這些標準包括原始的ANSI SQL,並在此基礎上進行了擴展,這些擴展咱們稱爲該數據庫的私有語句。

1.3.2.2  構成SQL的四部分

SQL語言包括如下四個部分:

l DDLData Definition Language):數據定義語言,用來定義數據庫對象:庫、表、列等;

l DMLData Manipulation Language):數據操做語言,用來定義數據庫記錄(數據);

l DCLData Control Language):數據控制語言,用來定義訪問權限和安全級別;

l DQLData Query Language):數據查詢語言,用來查詢記錄(數據)。

1.3.2.3  SQL語法要求

SQL語法要求

l SQL語句能夠單行或多行書寫,以分號結尾;

能夠用空格和縮進來來加強語句的可讀性;

關鍵字不區別大小寫,建議使用大寫;

1.3.3 數據庫訪問接口

不一樣的程序設計語言會有本身不一樣的數據庫訪問接口,執行SQL語句進行數據庫管理。主要數據庫接口有如下幾部分:

1.3.3.1 ODBC

ODBC:開放式數據庫互連(Open Database Connectivity),是微軟公司推出的一種實現應用程序和關係數據庫之間通信的方法標準,是一個接口標準。因此它其實是一種標準,符合標準的數據庫就能夠經過SQL語言編寫的命令對數據庫進行操做,但只能針對關係數據庫進行操做(如SQL ServerOracleAccessExcel等),目前全部的關係數據庫都符合該標準。ODBC本質上是一組數據庫訪問API(應用程序編程接口),由一組函數調用組成,核心是SQL語句。

    一個基於ODBC的應用程序對數據庫進行操做時,用戶直接將SQL語句傳送給ODBC,同時ODBC對數據庫的操做也不依賴任何DBMS,不直接與DBMS打交道,它將全部的數據庫操做由對應的DBMSODBC驅動程序完成,由對應DBMSODBC驅動程序對DBMS進行操做。也就是說,不管是FoxProAccess仍是Oracle數據庫,都可用ODBC API進行訪問。因而可知,ODBC的最大優勢是能以統一的方式處理全部的關係數據庫。 具體見圖1所示。

 

在具體操做時,首先必須用ODBC管理器註冊一個數據源,管理器根據數據源提供的數據庫位置、數據庫類型及ODBC驅動程序等信息,創建起ODBC與具體數據庫的聯繫。這樣,只要應用程序將數據源名提供給ODBCODBC就能創建起與相應數據庫的鏈接。

不過直接使用ODBC API比較麻煩,因此微軟後來又發展出來DAORDOADO這些數據庫接口,使用這些數據庫接口開發程序更容易。這些接口都支持ODBC,因此即便你所訪問的數據庫沒有提供ADO的驅動,只要有ODBC驅動同樣可使用ADO進行訪問。但由圖2能夠看出,ODBC其實是一種至關底層的訪問技術,所以它能夠從底層設置和控制數據庫,完成一些高級數據庫技術沒法完成的功能。

 

1.3.3.2 JDBC

Java Data Base Connectivity(Java數據庫鏈接)用於Java應用程序鏈接數據庫的標準方法,是一種用於執行SQL語句的Java API,能夠爲多種關係數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。

1.3.3.3 ADO.NET

ADO.NET是微軟在.NET框架下開發設計的一組用於和數據源進行交互的面向對象類庫。ADO.NET提供了對關係數據、XML和應用程序數據的訪問,容許和不一樣類型的數據源以及數據庫進行交互。

1.3.3.4 PDO

PDOPHP Data Object)爲PHP訪問數據庫定義了一個輕量級、一致性的接口,它提供了一個數據訪問抽象層,這樣,不管使用什麼數據庫,均可以經過一致的函數執行查詢和獲取數據。PDOPHP5新加入的一個重大功能。

針對不一樣的程序語言,在數據庫中提供了不一樣數據庫訪問鏈接驅動,咱們能夠在使用時具體根據語言下載相關驅動。

1.4 常見數據庫

l Oracle:甲骨文;

l DB2IBM

l SQL Server:微軟;

l Sybase:賽爾斯;

l MySQL:甲骨文;(Oracle收購SUN)

1.5 理解數據庫

咱們如今所說的數據庫泛指關系型數據庫管理系統(RDBMS - Relational database management system」,即「數據庫服務器」。

當咱們安裝了數據庫服務器後,就能夠在數據庫服務器中建立數據庫,每一個數據庫中還能夠包含多張表。

 

數據庫表就是一個多行多列的表格。在建立表時,須要指定表的列數,以及列名稱,列類型等信息。而不用指定表格的行數,行數是沒有上限的。下面是tab_student表的結構:

當把表格建立好了以後,就能夠向表格中添加數據了。向表格添加數據是以行爲單位的!下面是s_student表的記錄:

s_id

s_name

s_age

s_sex

S_1001

zhangSan

23

male

S_1002

liSi

32

female

S_1003

wangWu

44

male

 

你們要學會區分什麼是表結構,什麼是表記錄。

1.5.1 表結構

  數據表是由表名、表中的字段和表的記錄三個部分組成的。設計數據表結構就是定義數據表文件名,肯定數據表包含哪些字段,各字段的字段名、字段類型、及寬度,並將這些數據輸入到計算機當中。

1.6 應用程序與數據庫

  應用程序使用數據庫完成對數據的存儲!

 

相關文章
相關標籤/搜索