+++++++php組件、SQL組件

來源:互聯網
上載者:User

標籤:struggle strive endeavo

一、php基本應用

Hypertext Preprocessor 嵌入thml文檔的指令碼程式設計語言,動態網站的開發語言

源碼擷取:

www.php.net

動態網站開發

php, asp, ruby, c, bash<有程式功能的解譯器>

"php通過庫調用完成操作檔案"

"bash通過內部程式"

設定檔
  • php包:為Httpd提供模組 PHP scripting language for creating dynamic web sites

      # rpm -ql php  /etc/httpd/conf.d/php.conf          //為模組提供的配置  /usr/lib/httpd/modules/libphp5.so   //為prefork提供的模組  /var/lib/php/session  /var/www/icons/php.gif
  • php-common為php提供運行環境

      # rpm -ql php-common  /etc/php.ini  /etc/php.d/*.ini
配置格式
[Foo]directive = value
[MYSQL|MYSQLI] 串連mysql驅動的配置    持久:基於tcp串連發起mysql協議請求,不斷開,需要維持一個串連    非持久:每次建立都需要拆除串連
php.ini核心配置選項:"http://php.net/manual/zh/ini.core.php"php.ini配置選項列表:"http://php.net/manual/zh/ini.list.php"
配置讀取

CGI, CLI //每次httpd調用程式,啟動子進程時,讀取配置

FastCGI/module //在啟動web程式讀取一次

php添加模組實現加速:

[EPEL]php-xcache提供php的驅動

執行php代碼: scan[文法] -->parsing[詞法-->運算式] --> complie[運算式-->opcode] --> exec

php-xache能實現,緩衝opcode,進程間能相互使用opcode

二、儲存與協議
  • 儲存
    • 檔案:syscall

    • SQL儲存:(Mysql分支、oracle、mssql) 驅動

      MYSQL分支:mysql, mariadb, percona-server, pgsql(enterpriseDB)

    • NoSQL: mongodb, hbase, redis

    • NewSQL: 分布式模式管理儲存引擎

  • 協議:關聯式模式、RDMBS、SQL協議、資料存放區協議
  1. 關聯式模式:表(row: 2NF, column:1NF )

    實現: DBMS(Mysql, MariaDB)

    資料結構:層次、網狀、關聯式模式

    關聯式模式的分類:

     基本-關聯式模式 實體-關聯式模式 基於對象-關聯式模式 半結構化-關聯式模式     支援xml解析資料
  2. RDBMS: 滿足關係型資料庫的設計範式

    實現:SQL儲存(MYSQL分支、Oracle、MSSQL)

     MYSQL分支:mysql官方, mariadb開源, percona-server著名, pgsql皮(enterpriseDB) Oracle: 傳統公司:在智能手機普級的時候,在進階的收音機又有什麼用呢? MS_SQL:微軟

    設計範式:

     "1NF": 原子性 Atomicity,     例如:一個欄位包含班級和專業,不被允許 "2NF":行內有有限個欄位惟一標識此行,  "3NF":2個表有相同的欄位時,1張表欄位必須是主鍵      例如:          表1: 專業:非主鍵          表2: 專業:主鍵

    滿足範式:

      "拆表":將一個大的資料集拆分為小表,表必須滿足範式  "聯合":join, 基於index,演算法  "資料集":一個庫、方案、集合內

    表:先定義column, 後row

      可以沒有row, 必須有column

    結構:

     SQL引擎:  執行[scan]、分析[parsing]、求解[解決方案]、最佳化[選擇路徑|修改路徑結果不變] "事務: 多個操作都完成或都不完成(Atomicity原子性, Consistency一致性, Isolating隔離性, Durability持久性) 恢複: 將交易記錄中的資料同步至資料區 鎖: 寫(自己rw,其它人:-)讀(自己:r,其它人:r) 空間管理、緩衝、檔案存取介面
  3. SQL協議:Structure Query Language結構化查詢語言 (SQL)

    實現: SQL引擎或SQL解譯器 SQL引擎(SQL協議): 命令運行、函數、變數

  4. 資料存放區協議:

    C/S架構,mysql協議, mariadb協議, oracle協議, mssql協議(sql server)

    實現

     Client:     程式:CLI(mysql), GUI(phpMyadmin)     API:  SQL介面, php-mysql, ODBC(底層庫)         **API:寫程式面向的對象:硬體規格、彙編、syscall、libcall Server:      監聽socket,接收、處理、響應使用者的請求
三、MySQL/MariaDB基本知識開源RDBMS的實現
MariaDB
MariaDB的來源

作者研發SQL介面:成立AB(瑞典公司),MySQL

MySQL-->Google,facebook改進-->SUN收購-->Oracle收購SUN-->

MySQL讀音:‘My‘ ‘SQL‘

作者不樂意:另起一攤:MariaDB Maria:女兒的名字

Oracle收購SUN的原因

Oracle不能提供硬體到軟體到系統一體化的解決方案,而IBM(BIG BLUE)可以,為了比肩IBM,就收購了SUN

約束:插入的資料要遵守的限制

約束類型:

  • 主鍵約束:插入資料,惟一標識本行。Not NULL,惟一

  • 惟一鍵: 插入資料,惟一標識本行。NULL,不惟一

  • 外鍵約束:此表插入內容,取決於另一個表的主鍵

  • 檢查性約束:欄位定義運算式,插入資料必須滿足運算式

索引:抽取資料子集,排序

稠密、稀疏:1對1 or 1對多

簡單、組合: 索引欄位是1個或多個

聚簇、非聚簇:索引欄位與資料是否在一起

關係運算:抽取資料集

選擇、選擇row,WHERE

投影、選擇column, SELECT

串連、join

資料抽象:按視角

視圖層:view,只能看到資料庫的部分內容:提升使用者體驗

邏輯層:中繼資料, 依賴關係

物理層:據儲存格式:表和檔案的對應關係

MySQL安裝:

源碼 rpm

程式官方/項目官方:源碼和二進位程式

OS Vendor系統安裝光碟片: rpm 穩定 

感激
  • 瑞哥QQ,部落格

  • QQ: 2580259468

  • 部落格

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/07/C3/wKiom1nPLnDSJM8yAABpHaLUCWY511.png" title="QQ20170927224449.png" alt="wKiom1nPLnDSJM8yAABpHaLUCWY511.png" />

關於作者
  • 郵件:[email protected]

  • QQ: 2192383945


本文出自 “Reading” 部落格,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1969965

+++++++php組件、SQL組件

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.