本文目錄一覽:
- 1、國產DBMS有哪些?除了關係數據庫管理系統外,還有哪些非關係數據庫管理系統?
- 2、有哪些輕型的非關係型數據庫?
- 3、Mongodb和mysql的區別
- 4、什麼是數據庫
- 5、關係型數據庫和非關係型數據庫有哪些
國產DBMS有哪些?除了關係數據庫管理系統外,還有哪些非關係數據庫管理系統?
關係型數據庫:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL
非關係型數據庫:NoSql、Cloudant、MongoDb、redis、HBase當前主流的商業數據庫有Oracle、微軟SQLServer、IBM DB2和SybaseAdaptive SQL Server。
而在開源方面,主要有三家主流數據庫:MySQL、PostgreSQL和Ingres。這兩類數據庫都已經證明了自己可以勝任數據存儲和管理的需要。
有哪些輕型的非關係型數據庫?
常見的非關係型數據庫有:1、mongodb;2、cassandra;3、redis;4、hbase;5、neo4j。其中mongodb是非常著名的NoSQL數據庫,它是一個面向文檔的開源數據庫。
常見的幾種非關係型數據庫:
1、MongoDB
MongoDB是最著名的NoSQL數據庫。它是一個面向文檔的開源數據庫。MongoDB是一個可伸縮和可訪問的數據庫。它在c++中。MongoDB同樣可以用作文件系統。在MongoDB中,JavaScript可以作為查詢語言使用。通過使用sharding MongoDB水平伸縮。它在流行的JavaScript框架中非常有用。
人們真的很享受分片、高級文本搜索、gridFS和map-reduce功能。驚人的性能和新特性使這個NoSQL數據庫在我們的列表中名列第一。
特點:提供高性能;自動分片;運行在多個服務器上;支持主從複製;數據以JSON樣式文檔的形式存儲;索引文檔中的任何字段;由於數據被放置在碎片中,所以它具有自動負載平衡配置;支持正則表達式搜索;在失敗的情況下易於管理。
優點:易於安裝MongoDB;MongoDB Inc.為客戶提供專業支持;支持臨時查詢;高速數據庫;無模式數據庫;橫向擴展數據庫;性能非常高。
缺點:不支持連接;數據量大;嵌套文檔是有限的;增加不必要的內存使用。
2、Cassandra
Cassandra是Facebook為收件箱搜索開發的。Cassandra是一個用於處理大量結構化數據的分布式數據存儲系統。通常,這些數據分布在許多普通服務器上。您還可以添加數據存儲容量,使您的服務保持在線,您可以輕鬆地完成這項任務。由於集群中的所有節點都是相同的,因此不需要處理複雜的配置。
Cassandra是用Java編寫的。Cassandra查詢語言(CQL)是查詢Cassandra數據庫的一種類似sql的語言。因此,Cassandra在最佳開源數據庫中排名第二。Facebook、Twitter、思科(Cisco)、Rackspace、eBay、Twitter、Netflix等一些最大的公司都在使用Cassandra。
特點:線性可伸縮;;保持快速響應時間;支持原子性、一致性、隔離性和耐久性(ACID)等屬性;使用Apache Hadoop支持MapReduce;分配數據的最大靈活性;高度可伸縮;點對點架構。
優點:高度可伸縮;無單點故障;Multi-DC複製;與其他基於JVM的應用程序緊密集成;更適合多數據中心部署、冗餘、故障轉移和災難恢復。
缺點:對聚合的有限支持;不可預知的性能;不支持特別查詢。
3、Redis
Redis是一個鍵值存儲。此外,它是最著名的鍵值存儲。Redis支持一些c++、PHP、Ruby、Python、Perl、Scala等等。Redis是用C語言編寫的。此外,它是根據BSD授權的。
特點:自動故障轉移;將其數據庫完全保存在內存中;事務;Lua腳本;將數據複製到任意數量的從屬服務器;鑰匙的壽命有限;LRU驅逐鑰匙;支持發布/訂閱。
優點:支持多種數據類型;很容易安裝;非常快(每秒執行約11萬組,每秒執行約81000次);操作都是原子的;多用途工具(在許多用例中使用)。
缺點:不支持連接;存儲過程所需的Lua知識;數據集必須很好地適應內存。
4、HBase
HBase是一個分布式的、面向列的開源數據庫,該技術來源於 Fay Chang 所撰寫的Google論文“Bigtable:一個結構化數據的分布式存儲系統”。就像Bigtable利用了Google文件系統(File System)所提供的分布式數據存儲一樣,HBase在Hadoop之上提供了類似於Bigtable的能力。
HBase是Apache的Hadoop項目的子項目。HBase不同於一般的關係數據庫,它是一個適合於非結構化數據存儲的數據庫。另一個不同的是HBase基於列的而不是基於行的模式。
5、neo4j
Neo4j被稱為原生圖數據庫,因為它有效地實現了屬性圖模型,一直到存儲層。這意味着數據完全按照白板的方式存儲,數據庫使用指針導航和遍歷圖。Neo4j有數據庫的社區版和企業版。企業版包括Community Edition必須提供的所有功能,以及額外的企業需求,如備份、集群和故障轉移功能。
特點:它支持唯一的約束;Neo4j支持完整的ACID(原子性、一致性、隔離性和持久性)規則;Java API: Cypher API和本機Java API;使用Apache Lucence索引;簡單查詢語言Neo4j CQL;包含用於執行CQL命令的UI: Neo4j Data Browser。
優點:容易檢索其相鄰節點或關係細節,無需連接或索引;易於學習Neo4j CQL查詢語言命令;不需要複雜的連接來檢索數據;非常容易地表示半結構化數據;大型企業實時應用程序的高可用性;簡化的調優。
缺點:不支持分片
Mongodb和mysql的區別
Mongodb和mysql的區別
1.Mongodb簡介及優缺點分析
Mongodb是非關係型數據庫(nosql ),屬於文檔型數據庫。文檔是mongoDB中數據的基本單元,類似關係數據庫的行,多個鍵值對有序地放置在一起便是文檔,語法有點類似javascript面向對象的查詢語言,它是一個面向集合的,模式自由的文檔型數據庫。
存儲方式:虛擬內存+持久化。
查詢語句:是獨特的Mongodb的查詢方式。
適合場景:事件的記錄,內容管理或者博客平台等等。
架構特點:可以通過副本集,以及分片來實現高可用。
數據處理:數據是存儲在硬盤上的,只不過需要經常讀取的數據會被加載到內存中,將數據存儲在物理內存中,從而達到高速讀寫。
成熟度與廣泛度:新興數據庫,成熟度較低,Nosql數據庫中最為接近關係型數據庫,比較完善的DB之一,適用人群不斷在增長。
優點:
快速!在適量級的內存的Mongodb的性能是非常迅速的,它將熱數據存儲在物理內存中,使得熱數據的讀寫變得十分快。高擴展性,存儲的數據格式是json格式!
缺點:
① mongodb不支持事務操作。
② mongodb佔用空間過大。
③ 開發文檔不是很完全,完善。
2.MySQL優缺點分析
優點:
在不同的引擎上有不同 的存儲方式。
查詢語句是使用傳統的sql語句,擁有較為成熟的體系,成熟度很高。
開源數據庫的份額在不斷增加,mysql的份額頁在持續增長。
缺點:
在海量數據處理的時候效率會顯著變慢。
3.Mongodb和MySQL數據庫的對比
傳統的關係數據庫一般由數據庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由數據庫(database)、集合(collection)、文檔對象(document)三個層次組成。
MongoDB對於關係型數據庫里的表,但是集合中沒有列、行和關係概念,這體現了模式自由的特點。
4.MongoDB常用語句
# 連接Mongo數據庫,並設置數據存儲地址
mongod.exe –dbpath “d:softwareMongoDBServer3.0data”
#———————–#1# 數據庫
# 查看所有的數據庫
show dbs
# 刪除當前使用的數據庫
db.dropDatabase()
# 使用這個數據庫(只有插入數據後完成創建數據庫)
use dbt
# 查看當前使用的數據庫
db
db.getName()
# 查看當前數據庫狀態
db.stats()
# 修復當前數據庫
db.repairDatabase()
# 從一個數據庫複製到另一個數據庫
db.copyDatabase(“mydb”, “temp”, “127.0.0.1”);
#———————–#2# 集合
# 查看當前數據庫下所有的集合
show collections
show tables
# 創建名稱為coll集合
db.createCollection(‘coll’)
db.createCollection(“coll2”, {capped:true, autoIndexId:true, size:6142800, max:10000}) # 可選參數
# 查看當前集合狀態
db.coll.stats()
# 刪除名稱為coll集合
db.coll.drop()
#———————–#3# 集合數據
# 插入空數據並且直接創建名稱為coll集合
db.coll.insert({})
# 插入一個或多個數據
db.coll.insert({name:’tom’, age:22})
db.coll.insert([{name:’adam’, age:10},{name:’john’, age:23}])
# 添加數據(save方法可以修改相同id的數據)
db.coll.save({name:’allen’})
# 刪除一個或所有的數據
db.coll.remove({name:’tom’})
db.coll.remove({})
# 刪除符合條件的數據中的第一條
db.coll.remove({name:’tom’}, 1)
# 更改數據
db.coll.update({name:’tom’, age:22}, {$set:{name:’tom’, age:222}})
# 查看數據
db.coll.find()
# 查看一條數據
db.coll.findOne()
db.coll.find({}, {name:1, ‘_id’:0}) # 1表示顯示,0表示不顯示(find默認顯示_id)
# 格式化顯示數據,使數據更加清晰明了
db.coll.find().pretty()
# 使用and,or查看數據
db.coll.find({name:’tom’, age:22}) # 等同and使用
db.coll.find({$or:[{name:’tom’}, {age:21}]}) # or使用
# 操作符大於,小於,等於,不等於,大於不等於,小於不等於
db.coll.find({age: {$gt: 22}}) # 大於
db.coll.find({age: {$lt: 22}}) # 大於
db.coll.find({age: 22}) # 等於
db.coll.find({age: {$ne: 22}}) # 不等於
db.coll.find({age: {$gte: 22}}) # 大於等於
db.coll.find({age: {$lte: 22}}) # 小於等於
# 顯示從skip之後limit個
db.coll.find().limit(2).skip(1)
#———————–# # 用戶
# 3.x之後版本添加用戶
use admin
db.createUser({user:’nu’, pwd:’nu’, roles:[{role:’readWrite’,db:’admin’}]})
# 用戶認證
db.auth(“nu”, “nu”);
# 顯示當前所有用戶
show users;
db.system.users.find()
3.x版本刪除用戶
db.removeUser(‘nu’) # 不推薦使用,已經廢棄
db.dropUser(“nu”);
# 當前db版本
db.version();
# 當前db的鏈接機器地址和端口
db.getMongo();
# 備份到備份目錄
mongodump
# 從備份目錄恢復備份語句。
mongorestore
咱們下期見。
什麼是數據庫
數據庫專業的來說,其實就是一種電子的倉庫,是專門儲存數據和管理管理數據的一種處所,用戶可以對數據庫中的數據進行新增和更新或者刪除等操作。
舉個例子,現在每一個人都有很多朋友和同學,為了方便聯繫,我們在通訊錄,建立有關姓名和電話,這個通訊錄就是數據庫,有時候我們會修改某個電話號碼。
數據庫類型
1、關係數據庫
關係型數據庫,存儲的格式可以直觀地反映實體間的關係。關係型數據庫和常見的表格比較相似,關係型數據庫中表與表之間是有很多複雜的關聯關係的。
常見的關係型數據庫有Mysql,SqlServer等。在輕量或者小型的應用中,使用不同的關係型數據庫對系統的性能影響不大,但是在構建大型應用時,則需要根據應用的業務需求和性能需求,選擇合適的關係型數據庫。
2、非關係型數據庫
NoSQL,泛指非關係型的數據庫。隨着互聯網web2.0網站的興起,傳統的關係數據庫在處理web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站已經顯得力不從心,出現了很多難以克服的問題,而非關係型的數據庫則由於其本身的特點得到了非常迅速的發展。
關係型數據庫和非關係型數據庫有哪些
當前主流的關係型數據庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。非關係數據庫有Mong DB
原創文章,作者:EI565,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/127802.html