0. 前言
在上一個系列中,我們初步瀏覽了一下C#的基礎知識,這句話的意思就是C#基礎知識系列完結了,撒花,當然,并不是因為C#已經講完了,正是因為我們輕輕地叩開了那扇門,才能看到門后面那瑰麗的世界,那么,門后面有什么?就讓我在后續的篇幅里,帶著大家一起瀏覽吧,
0.1 C# 能做什么
之前在開發工具篇大概為大家介紹了.net 分的方向,.net framework,.net core,mono,UWP 這四個,嚴格講這不是技術區分的方向,而是基于SDK的區分,
說起能完成的功能,接下來給大家看一個圖:

這是微軟官網對.net能做的事情一個整體的描述,當然,其中某些方向暫時只能在Visual Studio上開發,所以需要Windows系統,當然了,并不是一直都只能在Windows下開發,微軟正在一步一步的遷移到.net core或者說是.net standard(標準)上,
說到這里,重新介紹一下.net standard和.net framework以及.net core的區別吧,
.net standard也叫 dotnet 標準,是一套正式的.net API規范,進一步提高.net生態的一致性,而.net core正是在.net standard體系下的一個產物,
所以我們大概總結一下C#能做什么吧:
- 網站
- 桌面應用
- 游戲
- 微服務應用
- 手機APP
- 人工智能
- 物聯網
嗯,基本是涵蓋了互聯網絕大多數的專案類別,所以C#的前景還是可以的,
0.2 什么是資料庫
資料庫的英文名字是Database,是指按照資料結構來組織、管理資料的倉庫,而我們常說的資料庫還有另外一種意思,指資料庫管理系統,也就是 Database Management System,用來高效地管理、獲取資料,
所以,我們平時在使用資料庫的時候,會同時搭配資料庫管理系統進行,當然,對于一個開發而言,并不需要精通資料庫管理系統,這部分的作業屬于DBA(Database Administrator,資料庫管理員)的,
1. 常用資料庫
很多時候說到資料庫的時候,其實一般指的都是關系型資料庫,近年來,因為高并發和大資料時代的到來,關系型資料庫無法很好地滿足需求,于是大牛們研究出了非關系型資料庫,
1.1 關系型資料庫
關系型資料庫(Relational Database),是指使用關系模型來組織資料的資料庫,最大的特征就是以行的形式表示物體,以列的形式表示物體的欄位,一張表為一組物體,多張表聯合起來就組成了一個資料庫,
這里簡單介紹一下 關系型資料庫的幾大巨頭:
1. Microsoft SQL Server:
微軟開發的資料庫,早期版本只支持Windows環境,而且安裝簡單,性能和維護相對不錯,然后被中小企業所接受并使用,在前幾年,微軟為Linux開發了對應的版本,甚至增強了企業級性能,在SQL Server2019之前的版本,SQL Server對應的管理程式 SQL Server Management Studio 是與資料庫安裝鏡像一起的,可以在安裝資料庫的時候直接安裝,在2019,則取消了SQL Server Management Studio 與安裝包的掛鉤,用戶就可以自行安裝SQL Server Management Studio程式,

這是微軟給出的宣傳亮點,
MS SQL Server是收費的,而且正版的費用不是很便宜,但對于普通開發而言,有科學方式(微軟一概在這方面特別大方)來免費試用旗艦版,

當然了,MS SQL Server還有兩個不收費的版本,不過功能不如旗艦版的全:

所以對于一個獨立專案或者中小型企業而言不失為一個好的選擇,
2. Oracle資料庫
最出名的企業級資料庫,與MS SQL Server不同的是,Oracle從出生就備受企業級應用的青睞,其獨到的特性支持和資料庫DBMS,以及它強大的性能,都是決定性的亮點,
但Oracle資料庫也是一個對開發者不太友好的資料庫,因為如果開發者如果需要安裝的話,需要在Oracle官網有一個賬號,然后下載兩個安裝包,總計4G左右,安裝程序十分復雜,稍有不慎就需要卸載已安裝完成的配件接著重新安裝,
嗯,最重要的一點是,企業使用收費,

點擊下載后,如果沒登陸的話,會跳轉到這個頁面
3.MySQL
說到資料庫,根本沒法繞過MySQL,MySQL之前是一個開源的資料庫,所有人都可以正常使用,不需要像Oracle一樣 注冊賬號,MySQL提供了一個收費版和一個社區版(免費版),可以說是一個十分適合初學者的資料庫,甚至因為其開源的特性,使得眾多廠商都可以根據自己的業務邏輯從新發布一個MySQL的版本,
這是它版本的部磁區別:

MySQL后來被Oracle公司收購了,維護和更新就變得有點迷,因為Oracle的名聲不太好,再加上Oracle對MySQL并不上心,就有大神依賴于MySQL的原始碼重新搞了MariaDB,
4.MariaDB
MariaDB是MySQL的一個復刻版,出于對Oracle一概名聲的信任,當時MySQL原始開發組的一批小伙伴覺得搞一個基于GNU GPL下的開源專案來,
MariaDB的API和命令與MySQL完全一致,但是MariaDB更換了資料引擎,
1.2 非關系型資料庫
NOSQL(Not only sql)是對不同于傳統關系型資料庫的統稱,這是近幾年興起的概念,里面有很多后起之秀,
當代典型的關系資料庫在一些資料敏感的應用中表現了糟糕的性能,例如為巨量檔案創建索引、高流量網站的網頁服務,以及發送流式媒體[5],關系型資料庫的典型實作主要被調整用于執行規模小而讀寫頻繁,或者大批量讀而極少寫訪問的事務,
NOSQL的結構通常提供弱一致性的保證,如最終一致性,或交易僅限于單個的資料項,不過,有些系統,提供完整的ACID保證在某些情況下,增加了補充中間件層(例如:CloudTPS)[6],有兩個成熟的系統有提供快照隔離的列存盤:像是Google基于過濾器系統的BigTable[7],和滑鐵盧大學開發的HBase[8],這些系統,自主開發,使用類似的概念來實作多行(multi-row)分布式ACID交易的快照隔離(snapshot isolation)保證為基礎列存盤,無需額外的資料管理開銷,中間件系統部署或維護,減少了中間件層,
少數NOSQL系統部署了分布式結構,通常使用分布式散串列(DHT)將資料以冗余方式保存在多臺服務器上,依此,擴充系統時候添加服務器更容易,并且擴大了對服務器失效的承受能程度,
以上內容來源于維基百科,
關于非關系型資料庫后續也會進行介紹,現在就淺藏輒止吧,
2. 總結
本篇是《C# 資料訪問系列》的開篇,在這里簡單介紹了一下資料庫有哪些和一些簡單的區分,這個系列主要講C# 通過ADO.NET 、EF、Nhibernate等ORM(物件關系映射)框架訪問和操作資料,
下一篇將簡單介紹一下SQL以及常用SQL的寫法,
更多內容煩請關注我的博客《高先生小屋》

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/42853.html
標籤:C#
上一篇:教你配置windows上的windbg,linux上的lldb,打入clr內部這一篇就夠了
下一篇:如何兩個物件資料比對

