成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

MySQL入門教程系列-1.1 數(shù)據(jù)庫基礎

dance / 1313人閱讀

摘要:確切地說,數(shù)據(jù)庫軟件應稱為數(shù)據(jù)庫管理系統(tǒng)。關系數(shù)據(jù)庫英語,是創(chuàng)建在關系模型基礎上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。關系鍵關系鍵是關系數(shù)據(jù)庫的重要組成部分。

數(shù)據(jù)庫基礎

共同編輯,修正錯誤,這里點擊進去

數(shù)據(jù)庫(Database,DB)是按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的建立在計算機存儲設備上的倉庫。

簡單來說是本身可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數(shù)據(jù)進行新增、截取、更新、刪除等操作。數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫有很多種類型,從最簡單的存儲有各種數(shù)據(jù)的表格到能夠進行海量數(shù)據(jù)存儲的大型數(shù)據(jù)庫系統(tǒng)都在各個方面得到了廣泛的應用。

什么是數(shù)據(jù)庫

人們通常用數(shù)據(jù)庫這個術語來代表他們使用的數(shù)據(jù)庫軟件。這是不正確的,它是引起混淆的根源。確切地說,數(shù)據(jù)庫軟件應稱為DBMS(數(shù)據(jù)庫管理系統(tǒng))。數(shù)據(jù)庫 是通過 DBMS 創(chuàng)建和操縱的容器。數(shù)據(jù)庫可以是保存在硬設備 上的文件,但也可以不是。在很大程度上說,數(shù)據(jù)庫究竟是 文件還是別的什么東西并不重要,因為你并不直接訪問數(shù)據(jù) 庫;你使用的是DBMS,它替你訪問數(shù)據(jù)庫。

數(shù)據(jù)庫指的是以一定方式儲存在一起、能為多個用戶共享、具有盡可能小的冗余度、與應用程序彼此獨立的數(shù)據(jù)集合。簡單來說可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數(shù)據(jù)運行新增、截取、更新、刪除等操作。

數(shù)據(jù)庫分類

數(shù)據(jù)庫的可多了去了,在維基百科上面有下面這些數(shù)據(jù)庫,并粗略的分了個類別。一看這里面的學問大了去了,還是先搬一些代表性的吧,長長見識,要深入了解各種概念推薦看《數(shù)據(jù)庫系統(tǒng)概論》。

關系數(shù)據(jù)庫

(英語:Relational database),是創(chuàng)建在關系模型基礎上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)?,F(xiàn)實世界中的各種實體以及實體之間的各種聯(lián)系均用關系模型來表示。關系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”?,F(xiàn)如今雖然對此模型有一些批評意見,但它還是數(shù)據(jù)存儲的傳統(tǒng)標準。標準數(shù)據(jù)查詢語言SQL就是一種基于關系數(shù)據(jù)庫的語言,這種語言執(zhí)行對關系數(shù)據(jù)庫中數(shù)據(jù)的檢索和操作。

MySQL

MariaDB(MySQL的代替品,英文維基百科從MySQL轉(zhuǎn)向MariaDB)

Percona Server(MySQL的代替品)

PostgreSQL

Microsoft Access

Google Fusion Tables

SQL Server

FileMaker

Oracle

Sybase

dBASE

Clipper

FoxPro

幾乎所有的數(shù)據(jù)庫管理系統(tǒng)都配備了一個開放式數(shù)據(jù)庫連接(ODBC)驅(qū)動程序,令各個數(shù)據(jù)庫之間得以互相集成。

非關系型數(shù)據(jù)庫(NoSQL)

NoSQL一詞最早出現(xiàn)于1998年,是Carlo Strozzi開發(fā)的一個輕量、開源、不提供SQL功能的關系數(shù)據(jù)庫。當代典型的關系數(shù)據(jù)庫在一些數(shù)據(jù)敏感的應用中表現(xiàn)了糟糕的性能,例如為巨量文檔創(chuàng)建索引、高流量網(wǎng)站的網(wǎng)頁服務,以及發(fā)送流式媒體。關系型數(shù)據(jù)庫的典型實現(xiàn)主要被調(diào)整用于執(zhí)行規(guī)模小而讀寫頻繁,或者大批量極少寫訪問的事務。

Key/value最終一致性存儲

Apache Cassandra(為Facebook所使用):高度可擴展

Dynamo

Hibari

Project Voldemort

Riak

Key/value硬盤存儲

LevelDB(Google)

BigTable

MemcacheDB

Tokyo Cabinet

Tuple space

TreapDB

Key/value RAM存儲

Oracle Coherence

memcached

Citrusleaf database

Velocity

Redis

Tuple space

Key/value基于Paxos算法的存儲

Keyspace

數(shù)據(jù)庫模型

數(shù)據(jù)庫模型描述了在數(shù)據(jù)庫中結構化和操縱數(shù)據(jù)的方法,模型的結構部分規(guī)定了數(shù)據(jù)如何被描述(例如樹、表等)。數(shù)據(jù)庫模型的分類如下:

對象模型

層次模型(輕量級數(shù)據(jù)訪問協(xié)議)

網(wǎng)狀模型(大型數(shù)據(jù)儲存)

關系模型

面向?qū)ο竽P?/p>

半結構化模型

平面模型(表格模型,一般在形式上是一個二維數(shù)組。如表格模型數(shù)據(jù)Excel)

架構

數(shù)據(jù)庫的架構可以大致區(qū)分為三個概括層次:內(nèi)層、概念層和外層。

內(nèi)層:最接近實際存儲體,亦即有關數(shù)據(jù)的實際存儲方式。

外層:最接近用戶,即有關個別用戶觀看數(shù)據(jù)的方式。

概念層:介于兩者之間的間接層。

數(shù)據(jù)庫索引

數(shù)據(jù)索引的觀念由來已久,像是一本書前面幾頁都有目錄,目錄也算是索引的一種,只是它的分類較廣,例如車牌、身份證字號、條碼等,都是一個索引的號碼,當我們看到號碼時,可以從號碼中看出其中的端倪,若是要找的人、車或物品,也只要提供相關的號碼,即可迅速查到正確的人事物。

數(shù)據(jù)庫操作:事物

事務(transaction)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分區(qū)的工作單位。

數(shù)據(jù)表

關系數(shù)據(jù)庫沒有數(shù)據(jù)表,關鍵字、主鍵、索引等也就無從談起,數(shù)據(jù)表是關系數(shù)據(jù)庫中一個非常重要的對象,是其它對象的基礎,也是一系列二維數(shù)組的集合,用來存儲、操作數(shù)據(jù)的邏輯結構。根據(jù)信息的分類情況。一個數(shù)據(jù)庫中可能包含若干個數(shù)據(jù)表,每張表是由行和列組成,記錄一條數(shù)據(jù)數(shù)據(jù)表就增加一行,每一列是由字段名和字段數(shù)據(jù)集合組成,列被稱之為字段,每一列還有自己的多個屬性,例如是否允許為空、默認值、長度、類型、存儲編碼、注釋等

數(shù)據(jù)類型

在定義數(shù)據(jù)字段的類型對你的數(shù)據(jù)庫的優(yōu)化非常重要,數(shù)據(jù)類型決定了數(shù)據(jù)在計算機中的存儲格式,代表不同的信息類型,大致可以分為:數(shù)值、日期/時間和字符串(字符)類型,字符串類型又包括二進制類型。

上圖中每一列就是一個字段,每個字段都有自己的類型,例如name列為字符串類型,level 列為數(shù)字類型。

關系鍵

關系鍵是關系數(shù)據(jù)庫的重要組成部分。關系鍵是一個表中的一個或幾個屬性,用來標識該表的每一行或與另一個表產(chǎn)生聯(lián)系。一列(或一組列),其值能夠唯一區(qū)分表中每個行。

主鍵

主鍵(primary key或unique key),又稱主碼,數(shù)據(jù)庫表中對儲存數(shù)據(jù)對象予以唯一和完整標識的數(shù)據(jù)列或?qū)傩缘慕M合。一個數(shù)據(jù)列只能有一個主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。

表中的任何列都可以作為主鍵,只要它滿足以下條件:

任意兩行都不具有相同的主鍵值;

每個行都必須具有一個主鍵值(主鍵列不允許NULL值)。

除MySQL強制實施的規(guī)則外,應該堅持的 幾個普遍認可的最好習慣為:

不更新主鍵列中的值;

不重用主鍵列的值;

不在主鍵列中使用可能會更改的值。(例如,如果使用一個名字作為主鍵以標識某個供應商,當該供應商合并和更改其 名字時,必須更改這個主鍵。)

超鍵

超鍵(superkey),有的文獻稱“超碼”,是在數(shù)據(jù)庫關系模式設計中能夠唯一標示多元組(即“行”)的屬性集。包含所有屬性的集叫做明顯(平凡)超鍵。

候選鍵

在關系模型中,候選鍵或候選碼(candidate key)是某個關系變量的一組屬性所組成的集合,它需要同時滿足下列兩個條件:

這個屬性集合始終能夠確保在關系中能唯一標識元組

在這個屬性集合中找不出真子集能夠滿足條件

滿足第一個條件的屬性集合稱為超鍵,因此我們也可以把候選鍵定義為“最小超鍵”,也就是不含有多余屬性的超鍵。

候選鍵的重要性是它們能夠在關系中唯一標識出不同的元組,因此超鍵也是在設計數(shù)據(jù)庫模式時需要指定的最重要的約束之一。由于在關系模型中,每個關系都是一個集合(沒有重復的元素),所以每個關系都至少有一個候選鍵(因為所有屬性組合必然是個超鍵)。但是在某些關系型數(shù)據(jù)庫中表也能代表多重集,所以在每個關系中都顯式地定義至少一個候選鍵是一條很重要的設計原則。數(shù)據(jù)庫管理系統(tǒng)通常都需要將每個關系中的某個候選鍵定義為主鍵,亦即這個候選鍵是區(qū)分不同元組時首選的識別方式,例如外鍵通常就是引用主鍵而非其他候選鍵。

外鍵

外鍵(foreign key,臺灣譯作外來鍵),又稱外部鍵。其實在關系數(shù)據(jù)庫中,每個數(shù)據(jù)表都是由關系來連系彼此的關系,父數(shù)據(jù)表(Parent Entity)的主鍵(primary key)會放在另一個數(shù)據(jù)表,當做屬性以創(chuàng)建彼此的關系,而這個屬性就是外鍵。

比如,學生跟老師之間是教學的關系,學生數(shù)據(jù)表會有個屬性叫指導老師(FK),而這個值就是對應到老師數(shù)據(jù)表的老師代號(PK),學生的指導老師就是外鍵。

代理鍵

在關系型數(shù)據(jù)庫設計中,代理鍵是在當數(shù)據(jù)表中的候選鍵都不適合當主鍵時,例如數(shù)據(jù)太長,或是意義層面太多,就會請一個無意義的但唯一的字段來代為作主鍵。

代理鍵是:

Surrogate (1) – Hall, Owlett and Codd (1976)
一個代理鍵值確定了外部世界的一個實體。代理鍵值是數(shù)據(jù)庫生成的,從來不顯示給用戶或應用程序看。

Surrogate (2) – Wieringa and De Jonge (1991)
一個代理鍵值確定了數(shù)據(jù)庫中的一個對象。代理鍵值是數(shù)據(jù)庫生成的,用戶或應用程序看不到它。

在實踐中,代理鍵值通常是個自動遞增的數(shù)字。在Sybase或SQL Server,用identity column標識代理鍵,PostgreSQL里用serial,Oracle里用SEQUENCE,在MySQL里用一個標記有AUTO_INCREMENT的字段。

自然鍵

自然鍵與代理鍵相反,它是在自然生活中唯一確定一個事物的標識。身份證號就是一個自然鍵,用于確定一個人。

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17544.html

相關文章

  • MySQL入門教程 - 收藏集 - 掘金

    摘要:數(shù)據(jù)庫數(shù)據(jù)庫入門教程系列工具掘金工具共同編輯,修正錯誤,這里點擊進去在這里持續(xù)更新由于軟件是基于模式的數(shù)據(jù)庫管理系統(tǒng)一個客戶機服務器,因此在日常各種工作中,可以通過各種客戶端軟件來與數(shù)據(jù)庫管理系統(tǒng)關聯(lián)。 MySQL入門教程系列-1.5 如何學習MySQL - 掘金 在這里持續(xù)更新 MySQL入門教程系列-1.5 如何學習MySQL 如何學習 MySQL 這是一個偽命題,每個人都有適合自...

    張利勇 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<