天天看點

資料資料庫資料庫系統(Database System)原理

題記:寫這篇部落格要主是加深自己對資料資料庫的認識和總結實作算法時的一些驗經和訓教,如果有錯誤請指出,萬分感謝。

    資料庫道理

    資料庫系統(Database System)是用于組織和存取大批資料的管理系統,便利多

    使用者應用計算機軟、硬體資源組成的系統。它與檔案系統的主要區分是資料的充

    分共享、交叉通路以及與應用程式)的高度獨立性。

    資料庫系統由計算機系統、資料庫、資料庫描述、資料庫管理系統、資料庫應用

    程式和使用者組成。

    1、計算機系統?

  計算機系統指的是用于資料庫管理的計算機硬體資源和基本軟體資源。硬體資源包括CPU、大容量記憶體(用于寄存作業系統,資料庫管理系統、應用程式、資料庫等)、直接存取的外部儲存設備(硬碟)。軟體資源包括作業系統和應用程式。

    2、什麼是資料庫(1)?

l資料庫是供給資料的基地。它能儲存資料并讓使用者從它這裡通路有用的資料。

l資料庫中的業務資料是以必定的組織方法存儲在一起的互相有關的資料整體。資料庫中儲存的資料是相幹資料,是一種絕對穩定的中間資料。為了便于管理和處理這些資料,将這些資料存入資料庫時必須擁有必定的資料結構和檔案組織形式(順序檔案、索引檔案)。

    3、什麼是資料庫管理系統?

lDBMS是Data Base Management System 的縮寫。它包括面向使用者的接口功能和面向系統的維護功能兩大方面。前者為使用者存取資料庫供給須要的手腕,包括處理能力。後者為資料庫管理者供給資料庫的維護工具。詳細為資料庫定義,資料裝入,資料庫操作、控制、監視、維護、恢複、通信等。DBMS平日由三部分組成:資料庫描述語言(DLL)、資料操縱(DML)或查詢程式、資料庫管理例行程式。

    4、應用程式和使用者

l資料庫管理者(DBA):是系統從業人員,負責對整個資料庫系統進行維護。

l應用程式員:是背景專業使用者,對資料庫進行檢索、插入、删除或更新等操作。

l非程式員:是終端使用者,通過聯機終端裝置,由基本指令組成的訊問語言對資料庫進行檢索、插入、删除或更新等操作。例如話務員,管理者,質檢員。

l總之,資訊的集合是資料庫,而DBMS的軟體可用于完成資訊的存儲和檢索。

    5、資料庫系統的特色

l資料備援度小,易擴充

l擁有較高的資料和程式的獨立性

l統一的資料控制能力

Ø資料的安全性控制

Ø 資料的完整性控制

Ø 并發控制

l資料庫模型的基本概念

  資料模型是資料庫系統的核心,是對客觀事物及其聯系的資料的描述,即實體模型的資料化。資料模型是表示實體與實體之間聯系的模型。目前風行的資料模型有關系、層次、網狀三種模型。

    1、什麼是關系資料模型

這種模型是新的DBMS,将資料簡略地表示為一個或多個表格的内容。其是由表格形式展現,這種“表”在數學上稱為關系。表中的每一行稱為記載,每個記載由若幹字段組成,一個記載描述一個事物,它的各字段是該事物各種性質的描述,在關系資料庫中這些字段稱為屬性

    Table

l關系型資料庫是由一個或多個表的資訊集合

l表是一系列有規律的資料以行和列形式組成的

l層次型資料庫

  也稱樹狀模型,是一個以記載類型為節點的有根的定向樹。層次資料模型的特色為:有且僅有一個實體,向上不與任何實體聯系稱為根;有若幹實體,向下不與任何實體聯系稱為葉,其餘的實體向下可以與若幹實體聯系,但向上隻與唯一的一個實體聯系(一對多聯系),稱為中間節點。全部節點都處在某一層上。根節點在最高層,即第一層。統一層上的節點之間沒有聯系。擁有這些特色的資料結構稱為層次結構。例如大學行政組織結構,如圖1-1所示。典型例子是IBM的IMS。

l網狀型資料庫

l網狀模型是以記載類型為節點網狀結構,網狀與樹(層次結構)的區分主要有如下兩點:

Ø一個子節點可以有兩個或多個父節點

Ø在兩個節點之間可以有兩種或多種關系 ;

l在網絡模型中用“系”表示這種關系,所謂系是一個二級樹,它的根節點稱為主節點,它的葉稱為從節點。先生選課實體模型是網絡資料模型如圖。其資料庫的直接使用者是程式員,通路存儲資訊的方法是通過特别的來自程式設計語言的調用,進行簡略的特定查詢,平日很困難。如圖下頁所示。

    動态伺服器系統由三個主要元件形成:共享記憶體、程序和磁盤。

    共享記憶體包括三個段:駐留段、虛拟段和消息段。駐留段主要用做磁盤資料的緩存。虛拟段主要用做記憶體池以支援程序及相幹的會話(session)和線程。當客戶與伺服器利用共享記憶體進行通信時,消息段将用做兩者之間的消息緩沖區。

    系統中還包括若幹形成資料庫伺服器的UNIX程序,稱為oninit。這些程序被稱為虛處理器(VP,Virtual Processors)。每一個VP隸屬于某一虛處理器類。而每一虛處理器類都負責完成一類特定的任務。

    INFORMIX動态伺服器采用的是一種多線程體系結構。這就意味着一個程序利用自己的多個線程可以同時完成多個任務,因而整個系統隻要較少的程序就足以完成DBMS任務。

    系統的磁盤元件由多個原始磁盤空間組成,稱為chunk。Chunk以頁(page)為基本機關。多個chunk集合邏輯上形成了資料空間(dbspace)。資料空間用于存儲資料庫、表、根以及實體日記和邏輯日記。一個資料空間最少包括一個chunk。

•配置設定給系統應用的連續磁盤空間的機關稱為chunk。chunk由多個頁形成。它是一個典型的UNIX原始裝置。chunk的巨細由管理者設定。

    每日一道理

如果說友誼是一顆常青樹,那麼,澆灌它的必定是出自心田的清泉;如果說友誼是一朵開不敗的鮮花,那麼,照耀它的必定是從心中升起的太陽。 多少笑聲都是友誼喚起的,多少眼淚都是友誼揩幹的。友誼的港灣溫情脈脈,友誼的清風灌滿征帆。友誼不是感情的投資,它不需要股息和分紅。(友誼可以換其他詞語)

•資料空間(dbspace)是多個chunk的邏輯集合。每一資料空間最少包括一個chunk。資料庫和表建立在指定的資料空間上。系統必須最少包括一個資料空間:root dbspace。在該空間中存儲着全部關于系統的資訊。

•實體日記(physical log)由連續的磁盤空間形成,其存儲着共享記憶體緩沖區中全部已修改的資料頁的(但還沒有寫入磁盤中)被修改前的映象。因而實體日記主要用于快速恢複。隻有當資料頁在首次被修改時,系統才會将其映象寫入實體日記。

•邏輯日記(logical logs) 也時由連續的磁盤空間形成,其存儲着事務記載、DDL語句和checkpoint記載。由管理者設定邏輯日記的數目。系統循環應用邏輯日記檔案。在系統初啟時,實體日記和邏輯日記都自動建立在root dbspace上。

lSQL是 Strutcture Query Language 的縮寫。

lSQL語言是IBM公司于1970年開發出來的。

lSQL語言供給四種類型的語言:

l資料定義語言

[ Create table ,Create Database 等;

l資料授權語言

[ Grant,Revoke 等;

l資料操作語言        

[Insert into,Update,Delete from 等;

l資料查詢語言

[  Select from 等;

    建立資料庫的SQL語句格式:

    CREATE DATABASE <DatabaseName>

 [IN <DBSpaceName>]

 [WITH <[BUFFERED] LOG | LOG MODE ANSI>]

    Create table <TableName>

    (

 FieldName    DataType   [Default <>] [NOT NULL],

 .............

    )

     [WITH NO LOG]

     [IN <DBSpaceName>]

    數字類型

    整數: INTEGER 和 SMALLINT

    自動序數: SERIAL

    實數: FLOAT , SMALLFLOAT,DECIMAL(p),DECIMAL

    貨泉:MONEY

    例如:

    CREATE TABLE pps_tab

    (  msisdn    INTEGER,

   subid       SERIAL,

   balance   MONEY,

   ..............

    時光類型:

    DATE :日期型.

    DATETIME :日期型,精确到秒.

    INTERVAL :時光差;

    布爾類型:

    true 和false

    (  .......,

   service start      DATETIME,

   IsOneTwoCall  BOOLEAN,

u字元類型:

uCHAR(n) : 包括指定長度的字元串.

uBYTE:     二進制

uNULL:    空

u系統變量:

Ø USER

Ø CURRENT

Ø TODAY

Ø DBSERVERNAME

l應用SELECT語句查詢資料的文法:

[1.select         要查詢的字段

[2.from           要查詢的表名

[3.where         要查詢的條件

[4.group by     按條件分組

5.order by      按條件排序

    The where clause (optional) specifies which data values or rows will be returned or displayed, based on the criteria described after the keyword where.

    Conditional selections used in where clause:

    =  Equal

>  Greater than

<  Less than

>=  Greater than or equal to

<=  Less than or equal to

<>  Not equal to

LIKE  *See note below

    All Informix database servers support the following aggregate functions:

q AVG

q COUNT

q MAX

q MIN

q RANGE

q STDEV

q SUM

q VARIANCE

    Example 1:

  INSERT INTO stock

  VALUES (115, 'PRC', 'tire pump', 108, 'box', '6/box')

    Example 2:

  INSERT INTO stock (stock_num,description,unit_price,manu_code)

  VALUES (115,'tyre pump',114,'SHM')

  INSERT INTO cust_calls (customer_num, call_descr)

  SELECT customer_num, order_num FROM orders

  WHERE paid_date IS NOT NULL

  AND ship_date IS NULL

  UPDATE customer

  SET fname = 'Barnaby', lname = 'Dorfler'

  WHERE customer_num = 103

   Example 1:

   UPDATE customer

   SET (address1, address2, city, state, zipcode) =

           ((SELECT address1, address2, city, state, zipcode FROM newaddr

          WHERE newaddr.customer_num=customer.customer_num))

   WHERE customer_num IN (SELECT customer_num FROM newaddr)

文章結束給大家分享下程式員的一些笑話語錄:

《諾基亞投資手機浏覽器UCWEB,資金不詳或控股》杯具了,好不容易養大的閨女嫁外國。(心疼是你養的嗎?中國創業型公司創業初期哪個從國有銀行貸到過錢?)