數據庫系統#1——數據庫系統的概念與基本術語

前言

在學完諸多Java框架以後,深感本身基礎不牢。打算從頭開始學習計算機的基本知識,爲後續的發展作準備。在諸多計算機基礎知識中,我選擇了與我關聯最大的數據庫開始學習。數據庫系統是一門很是抽象的學科,指望在完成這一系列文章以後,能結合本身的實踐對數據庫加入本身更深的理解java

爲何要學數據庫

  • Everything Over DB:傳統社會的業務工做已經沒法知足現代社會的需求,咱們須要計算機的幫助
  • 信息積累運用的基礎:幫助人們從繁重的數據管理中解脫出來
  • 基於數據庫的應用——大數據。一切以數聽說話。

    學習數據庫重要的不是技術,而是思惟。算法

對「表」的抽象

數據起源於表——人們對平常生活信息的整理。在數據庫中,表也做爲最重要的主體部分。表也不是胡亂選取的,須要咱們對錶作出正確的抽象:理解-區分-命名-表達。sql

咱們須要對生活中的信息有着足夠的理解,並從中抽取出須要的信息數據庫

表(Table)的經常使用術語

表由表名、表標題(格式)、表內容(值)組成。安全

其中表內容包括行(row)列(column),行又能夠稱爲元組(tuple)記錄(record),列又能夠稱爲字段(field)屬性(attribute)數據項(data item)網絡

Table中描述了一批互相有關聯關係的數據的集合。併發

數據庫與表的關係

數據庫是有關聯關係的若干個table的集合。框架

數據庫系統

基本術語

  • 數據庫(DB):DataBase。一組數據的集合
  • 數據庫管理系統(DBMS):DataBase Management System。數據庫管理軟件
  • 數據庫應用(DBAP):DataBase Application。基於數據庫開發的應用
  • 數據庫管理員(DBA):DataBase Administrator。經過數據庫管理系統管理數據庫。

數據庫管理系統(DBMS)

DBMS的功能

對於用戶來講,對DBMS的要求有:分佈式

  1. 數據庫定義:DBMS爲用戶提供一套數據定義語言(DDL,Data Definition Language),用戶使用DDL建立數據庫及其中的Table;
  2. 數據庫操做:DBMS爲用戶提供一套數據操縱語言(DML,Data Manipulation Language),用戶使用DML來實現數據庫的CRUD(增刪改查)操做;
  3. 數據庫控制:DBMS爲用戶提供一套數據控制語言(DCL,Data Control Language),用戶使用DCL描述其對數據庫所要實施的控制(包括且不限於控制哪些用戶可以訪問哪些字段);
  4. 數據庫維護:DBMS提供一系列程序(使用程序/例行程序)給用戶,用戶使用這些程序來實現數據庫的轉儲、恢復、重組、性能檢測和分析等功能。

    上述一、二、3點綜合起來,造成了咱們操做數據庫的SQL語言(結構化的數據庫語言)性能

    對於系統,DBMS的實現要求:形式->構造->自動化,實現解析語言並執行。

    DBMS爲了完成數據庫的管理,在後臺運行這一系列程序:

  • 語言編譯器:將用數據庫語言書寫的內容,翻譯成DBMS可執行的命令。例如:DDL編譯器、DML編譯器、DCL編譯器等;
  • 查詢優化(執行引擎)與查詢實現(基本命令的不一樣執行算法):提升數據庫檢索速度的手段。例如穿插於數據存取各個階段的優化程序;
  • 數據存取與索引:提供數據在磁盤、磁帶上高效存取的手段。例如:存儲管理器、緩衝區管理器、索引/文件和記錄管理器等;
  • 通訊控制:由於數據庫與數據庫應用的通訊要求,且現代大型項目的數據庫一般是分佈式管理。因此提供網絡環境下數據庫操做和數據傳輸的手段是必要的;
  • 事務管理:提升可靠性避免併發操做錯誤。如髒讀…
  • 是數據庫 自動恢復到故障發生前正確狀態的手段,例如提供了運行日誌操控等實用程序
  • 安全性控制:提供合法性檢驗,避免非受權非法用戶訪問數據庫
  • 完整性控制:提供數據及數據操做正確性檢查的手段
  • 數據字典管理:管理用戶已經定義的信息
  • 應用程序接口(API):提供應用程序使用DBMS特定功能的手段‘
  • 數據庫數據裝載、重組等使用程序
  • 數據庫性能分析:統計在運行過程當中數據庫的各類性能數據,便於優化運行

數據庫語言

數據庫與高級語言

1.一條數據庫語言語句至關於高級語言的一個或多個循環程序。

例如:

select id, name 名字 from table where id = 1;

至關於Java中的:

for(int i=0; i<n; ++i) {
    if (user[i].id == id) {
        return user[i];
    }
}
2.數據庫能夠嵌入到高級語言(宿主語言)中使用

總結

本文是基於哈工大在慕課網發的《數據庫系統》,待補充...

相關文章
相關標籤/搜索