SQLServer学习笔记1--从数据库跨入高级编程的门槛

SQLServer学习笔记1--谈谈数据库

  • 数据库概念
  • 数据库特点
  • 数据库分类
    • 关系型数据库
    • 非关系型数据库

数据库概念

数据库是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
在进一步了解数据库之前,我们先来了解一下实体的概念
实体:客观存在的事物都是实体
实体数据的存储要求:必须按照一定的分类和规律存储
那么数据库就是专门用来存储这些实体的信息数据的一个集合

数据库的概念实际包括两层意思:
(1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
(2)数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。

数据库特点

特点
(1)结构化,数据库系统实现了整体数据的结构化,数据库中的数据不再仅针对某个应用,而是面向全组织;不仅数据内部是结构化,而且整体式结构化,数据之间有联系
(2)共享性,数据是面向整体的,所以数据可以被多个用户、多个应用程序共享使用,可以大大减少数据冗余,节约存储空间,避免数据之间的不相容性与不一致性。
(3)独立性,数据独立性包括数据的物理独立性和逻辑独立性:
物理独立性是指数据在磁盘上的数据库中如何存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样一来当数据的物理存储结构改变时,用户的程序不用改变。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不改变。
数据与程序的独立,把数据的定义从程序中分离出去,加上存取数据的由DBMS负责提供,从而简化了应用程序的编制,大大减少了应用程序的维护和修改
(4)数据由DBMS统一管理和控制
数据库的共享是并发的(concurrency)共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。

DBMS必须提供以下几方面的数据控制功能:
数据的安全性保护(security)、数据的完整性检查(integrity)、数据库的并发访问控制(concurrency)、数据库的故障恢复(recovery)

用户–应用程序–数据文件之间的数据交互
SQLServer学习笔记1--从数据库跨入高级编程的门槛_第1张图片

数据库分类

当前,数据库主要分成两类:关系型数据库和非关系型数据库

关系型数据库

关系型数据库是指采用了关系模型来组织数据的数据库,而关系模型是由二维表及其联系组成的数据组织。

特点

1、易于维护:都是使用表结构,格式一致;

2、使用方便:SQL语言通用,可用于复杂查询;

3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点
1、读写性能比较差,尤其是海量数据的高效率读写;

2、固定的表结构,灵活度稍欠;

3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

目前主流的关系型数据库有:

MYSQL

目前使用最广泛的开源、多平台的关系型数据库,支持事务、符合ACID、支持多数SQL规范

SQLServer

支持事务、符合ACID、支持多数SQL规范,属于商业软件,需要注意版权和licence授权费用

Oracle

支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,功能最强大、最复杂、市场占比最高的商业数据库

Postgresql

开源、多平台、关系型数据库,功能最强大的开源数据库,需要python环境,基于postgresql的TimeScaleDB,是目前比较火的时序数据库之一

非关系型数据库

非关系型数据库也称为NOSQL(Not Only SQL),作为关系型数据库的一个补充,能在特定场景和特点问题下发挥高效率和高性能。

常见的非关系型数据库类型有键值(Key-Value)存储数据库和面向文档数据库(Document-oriented)

键值存储数据库类似hash,通过key做添加、删除、查询,性能高,优势在于简单、易部署、高并发。

Redis

开源、Linux平台、key-value键值型Nosql数据库,简单稳定,非常主流的、全数据in-momory、定位于“快”的键值型nosql数据库

Memcaced

一个开源的、高性能的、具有分布式内存对象的缓存系统,通过它可以减轻数据库负载,加速动态的web应用

面向文档数据库以文档的形式存储,每个文档是一系列数据项的集合,每个数据项有名称与对应的值。

MongoDB

开源、多平台、文档型nosql数据库,“最像关系型数据库”,定位于“灵活”的nosql数据库。适用于网站后台数据库(更新快、实时复制)、小文件系统(json,二进制)、日志分析系统(数据量大的文件)

以上就是数据库入门的一些内容,主要参考于以下链接:
https://www.sohu.com/a/324922573_120047065

https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F%E7%9A%84%E7%89%B9%E7%82%B9/10076046?fromtitle=%E6%95%B0%E6%8D%AE%E5%BA%93%E7%89%B9%E7%82%B9&fromid=15811357&fr=aladdin

欢迎转载!

你可能感兴趣的:(SQLServer学习笔记)