早期數(shù)據(jù)庫模型有三種,分別為層次式數(shù)據(jù)庫、網(wǎng)絡(luò)式數(shù)據(jù)庫和關(guān)系型數(shù)據(jù)庫。
而在當(dāng)今的互聯(lián)網(wǎng)中,通常把數(shù)據(jù)庫分為兩類,即關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫。
關(guān)系型數(shù)據(jù)庫
關(guān)系型數(shù)據(jù)庫是指采用了關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫,而關(guān)系模型是由二維表及其聯(lián)系組成的數(shù)據(jù)組織。
優(yōu)點(diǎn):
1、易于維護(hù):都是使用表結(jié)構(gòu),格式一致;
2、使用方便:SQL語言通用,可用于復(fù)雜查詢;
3、復(fù)雜操作:支持SQL,可用于一個表以及多個表之間非常復(fù)雜的查詢。
缺點(diǎn):
1、讀寫性能比較差,尤其是海量數(shù)據(jù)的高效率讀寫;
2、固定的表結(jié)構(gòu),靈活度稍欠;
3、高并發(fā)讀寫需求,傳統(tǒng)關(guān)系型數(shù)據(jù)庫來說,硬盤I/O是一個很大的瓶頸。
目前主流的關(guān)系型數(shù)據(jù)庫有
MYSQL
目前使用最廣泛的開源、多平臺的關(guān)系型數(shù)據(jù)庫,支持事務(wù)、符合ACID、支持多數(shù)SQL規(guī)范
SQL Server
支持事務(wù)、符合ACID、支持多數(shù)SQL規(guī)范,屬于商業(yè)軟件,需要注意版權(quán)和licence授權(quán)費(fèi)用
Oracle
支持事務(wù),符合關(guān)系型數(shù)據(jù)庫原理,符合ACID,支持多數(shù)SQL規(guī)范,功能最強(qiáng)大、最復(fù)雜、市場占比最高的商業(yè)數(shù)據(jù)庫
Postgresql
開源、多平臺、關(guān)系型數(shù)據(jù)庫,功能最強(qiáng)大的開源數(shù)據(jù)庫,需要python環(huán)境,基于postgresql的TimeScaleDB,是目前比較火的時(shí)序數(shù)據(jù)庫之一。(更多學(xué)習(xí)內(nèi)容,請點(diǎn)擊python學(xué)習(xí)網(wǎng))
非關(guān)系型數(shù)據(jù)庫
非關(guān)系型數(shù)據(jù)庫也稱為NOSQL(Not Only SQL),作為關(guān)系型數(shù)據(jù)庫的一個補(bǔ)充,能在特定場景和特點(diǎn)問題下發(fā)揮高效率和高性能。
常見的非關(guān)系型數(shù)據(jù)庫類型有鍵值(Key-Value)存儲數(shù)據(jù)庫和面向文檔數(shù)據(jù)庫(Document-oriented)
鍵值存儲數(shù)據(jù)庫類似hash,通過key做添加、刪除、查詢,性能高,優(yōu)勢在于簡單、易部署、高并發(fā),主要產(chǎn)品有
Redis
開源、Linux平臺、key-value鍵值型Nosql數(shù)據(jù)庫,簡單穩(wěn)定,非常主流的、全數(shù)據(jù)in-momory、定位于“快”的鍵值型nosql數(shù)據(jù)庫
Memcaced
一個開源的、高性能的、具有分布式內(nèi)存對象的緩存系統(tǒng),通過它可以減輕數(shù)據(jù)庫負(fù)載,加速動態(tài)的web應(yīng)用
面向文檔數(shù)據(jù)庫以文檔的形式存儲,每個文檔是一系列數(shù)據(jù)項(xiàng)的集合,每個數(shù)據(jù)項(xiàng)有名稱與對應(yīng)的值,主要產(chǎn)品有
MongoDB
開源、多平臺、文檔型nosql數(shù)據(jù)庫,“最像關(guān)系型數(shù)據(jù)庫”,定位于“靈活”的nosql數(shù)據(jù)庫。適用于網(wǎng)站后臺數(shù)據(jù)庫(更新快、實(shí)時(shí)復(fù)制)、小文件系統(tǒng)(json,二進(jìn)制)、日志分析系統(tǒng)(數(shù)據(jù)量大的文件)。
知識點(diǎn)擴(kuò)展:
Python的數(shù)據(jù)庫支持
經(jīng)過兩個多月的學(xué)習(xí),我們對Python的基礎(chǔ)語法大概都已經(jīng)學(xué)完了,接下來我們要把我們學(xué)到的東西逐步用到應(yīng)用的層面上。今天,我們要學(xué)的是,用Python實(shí)現(xiàn)數(shù)據(jù)庫的對接。
我們先來講一下什么是api,在編程語言的學(xué)習(xí)中,我們經(jīng)常會接觸到api這個詞,那么究竟什么是api,簡單來說就是一個接口,像java的api,有一個專門的api文檔提供查詢。Python數(shù)據(jù)庫的api是DB API。我們主要講的api版本是DB API2.0。
Python DB API有三個模塊屬性:
1、apilevel:這個屬性主要是用來定義使用的Python DB API 的版本,像我們上面說的DB API 2.0;
2、threadsafety:這個是用來定義模塊的線程安全度;
該參數(shù)是一個0到3的整數(shù),0表示線程不能共享模塊,1表示線程可共享模塊本身,2表示線程可共享模塊和連接, 但不能共享游標(biāo),3表示模塊是絕對線程安全的。
3、paramstyle:這個屬性定義在SQL查詢中使用哪種參數(shù)風(fēng)格,這里說明一下,SQL是指數(shù)據(jù)庫的意思。
這個我們就不具體講了,因?yàn)楝F(xiàn)在剛接觸新知識,引入這個知識點(diǎn),會很容易感到迷茫。
到此這篇關(guān)于python可以用哪些數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)python支持哪些數(shù)據(jù)庫內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://www.py.cn/faq/python/12530.html