什么是数据库

一、数据库定义

1、顾名思义,数据库(DB,database)是按照数据结构来组织、存储和管理数据的“仓库”。

2、数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点的、与应用程序彼此独立的数据集合。

3、数据库可以通过统一的一些指令对数据进行增、删、改、查(Create,Retrive,Updata,Delete)等操作。

二、DBMS与DBS

1、数据库管理系统(DBMS,Database Management System),在用户与操作系统之间,由相互关联的数据集合以及一组用于访问这些数据的程序组成。

2、数据库系统(DBS,Database System),是实现有组织的、动态的存储大量关联数据、方便多用户访问的计算机硬件、软件(包括操作系统、应用程序、DBMS)、数据资源、人员(数据库管理员、使用者等)组成的系统。

3、主流数据库管理系统:Oracle(甲骨文公司推出)、MySQL(开源)、Microsoft SQL Server、SQLite(轻型、嵌入式、Android与iOS开发都使用该数据库)等。

三、数据库分类

1、数据库分为关系型数据库(sql数据库)与非关系型数据库(no-sql数据库)。两者的区别在于是否使用SQL语句作为操作的方式和方法。我们常见的数据库多属于关系型数据库。

2、关系型数据库:数据存放在表(table)中;表的每一行被称为记录(record):表中所有记录都有相同的字段(列),每一列代表一个属性。

table

3、非关系型数据库:NOSQL数据库一般都是Key-Value形式的,它的查询不需要SQL语句支持,而是通过查询key获得value值。相比关系型数据库,查询效率更高、扩展性更好。

4、结构化查询语言(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理数据库系统,也就是一些命令,来增加、删除、修改和查询这个文件里存储的数据;同时SQL也是数据库脚本文件的扩展名。

四、相关概念

1、索引。数据库经常有上亿条记录,查询会很慢很慢的,数据库会提供一个功能,像字典一样编制一个”索引“,就是新华字典的前几页一样,靠拼音或偏旁来查询的功能,这个就是索引(需要一个额外的磁盘空间来存放),这个经常能大幅度提高查询速度。

2、事务,数据库提供了一种机制,就是一件事,必须做完,如果中间出了差错,他会清理掉一切痕迹,回到最初状态,这对于保持数据的一致性和完整性有功不可没的作用。

3、联合查询,经常一张表格解决不了你的问题,比如有两张表,一张表是员工基本信息,另一张表是工资表,这个时候,要查询某某员工的工资,就要两张表一起来“联合查询”。

五、应用程序与数据库

1、应用程序与数据库的交互过程:

a)建立与数据库的连接;

b)利用这个连接,进行数据库的建表、删表、以及对表的增删改查操作;

c)关闭数据库连接。如果不关闭数据库连接,经常会产生内存泄漏(计算机所有程序都是在内存中运行的,内存泄漏指程序员申请了内存,但没有释放内存,导致内存一直处于被消耗的状态)以及各种异常。

2、结构化的数据适合用数据库来存储,可以方便查询。非结构化的数据,如视频、图片,会存在服务器的硬盘上,再将路径存储在数据库中。例如你上传了一张微信头像,会被存储到腾讯服务器上。这时候你再去请求这张头像,输入微信id、头像这样的关键词,微信就会先去数据库查你的头像文件对应的路径,然后根据路径在硬盘上找到文件回给你。

3、命令可以解决很多问题。例如我们浏览贴吧看帖子、上微博看热门都是执行的select命令,这个命令的执行速度直接影响到用户的体验,所以程序员必须优化好。


——部分内容整理自网络——

你可能感兴趣的:(什么是数据库)