欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 数据操作系列 - 0. 序言

程序员文章站 2022-04-15 21:26:18
0. 前言 在上一个系列中,我们初步浏览了一下C 的基础知识。这句话的意思就是C 基础知识系列完结了,撒花。当然,并不是因为C 已经讲完了。正是因为我们轻轻地叩开了那扇门,才能看到门后面那瑰丽的世界。那么,门后面有什么?就让我在后续的篇幅里,带着大家一起浏览吧。 0.1 C 能做什么 之前在开发工具 ......

0. 前言

在上一个系列中,我们初步浏览了一下c#的基础知识。这句话的意思就是c#基础知识系列完结了,撒花。当然,并不是因为c#已经讲完了。正是因为我们轻轻地叩开了那扇门,才能看到门后面那瑰丽的世界。那么,门后面有什么?就让我在后续的篇幅里,带着大家一起浏览吧。

0.1 c# 能做什么

之前在开发工具篇大概为大家介绍了.net 分的方向,.net framework,.net core,mono,uwp 这四个。严格讲这不是技术区分的方向,而是基于sdk的区分。

说起能完成的功能,接下来给大家看一个图:

C# 数据操作系列 - 0. 序言

这是微软官网对.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#能做什么吧:

  1. 网站
  2. 桌面应用
  3. 游戏
  4. 微服务应用
  5. 手机app
  6. 人工智能
  7. 物联网

嗯,基本是涵盖了互联网绝大多数的项目类别,所以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程序。

C# 数据操作系列 - 0. 序言

这是微软给出的宣传亮点。

ms sql server是收费的,而且正版的费用不是很便宜,但对于普通开发而言,有科学方式(微软一概在这方面特别大方)来免费试用旗舰版。

C# 数据操作系列 - 0. 序言

当然了,ms sql server还有两个不收费的版本,不过功能不如旗舰版的全:

C# 数据操作系列 - 0. 序言

所以对于一个独立项目或者中小型企业而言不失为一个好的选择。

2. oracle数据库

最出名的企业级数据库,与ms sql server不同的是,oracle从出生就备受企业级应用的青睐。其独到的特性支持和数据库dbms,以及它强大的性能,都是决定性的亮点。

但oracle数据库也是一个对开发者不太友好的数据库。因为如果开发者如果需要安装的话,需要在oracle官网有一个账号。然后下载两个安装包,总计4g左右。安装过程十分复杂,稍有不慎就需要卸载已安装完成的配件接着重新安装。

嗯,最重要的一点是,企业使用收费。

C# 数据操作系列 - 0. 序言

点击下载后,如果没登陆的话,会跳转到这个页面

C# 数据操作系列 - 0. 序言

3.mysql

说到数据库,根本没法绕过mysql。mysql之前是一个开源的数据库,所有人都可以正常使用,不需要像oracle一样 注册账号。mysql提供了一个收费版和一个社区版(免费版)。可以说是一个十分适合初学者的数据库,甚至因为其开源的特性,使得众多厂商都可以根据自己的业务逻辑从新发布一个mysql的版本。

这是它版本的部分区别:

C# 数据操作系列 - 0. 序言

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的写法。

更多内容烦请关注

C# 数据操作系列 - 0. 序言