• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

数据库基本概念介绍

MySQL 彭东稳 8年前 (2015-12-29) 23275次浏览 已收录 0个评论

一、什么是数据库?

数据库由一批数据构成有序的集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映了客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。

数据库的概念诞生于60年前,随着信息技术和市场的快速发展,数据库技术也层出不穷,随着应用的拓展和深入,数据库的数量和规模越来越大,其诞生和发展给计算机信息管理带来了一场巨大的革命。

数据库的发展大致划分为如下几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库系统阶段。其种类大概有3中:第一代的层次、网状数据库系统,第二代的关系数据库,第三代的以面向对象模型为主要特征的数据库系统。

初级阶段60年代——-第一代数据库:网状层次模型数据库

中级阶段70年代——-第二代数据库:关系型数据库

高级阶段80年代——-第三代数据库:对象数据库

二、数据库的特点?

通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合。数据库的概念更像我们生活中一个存储仓库,而数据库是用来存储数据的仓库。既然是一个数据仓库那么就会面临这么几个问题。

1. 如何存储数据?

2. 如何找到数据?

3. 如何定义数据?

4. 如何管理数据?

使用数据库可以带来以下好处:

1. 使用数据库就可以高效且条理分明地存储数据、它使人们能够更加迅速方便地管理数据。

2. 可以结构化存储大量的数据信息、方便用户进行有效的检索和访问。

3. 可以有效地保持数据信息的一致性、完整性、降低数据冗余。

4. 可以满足应用的共享和安全方面的要求。

三、数据库技术构成

  • 数据(Data

描述事物符号的记录称为数据、数据包括数字、文字、声音、视屏、在数据库中数据是以“记录”的形式按统一的格式进行存储,一条记录也就是一行数据。

  • 数据库表(Table

数据库表也是一系列二维数组的集合,它可以说明表是用来存储具体数据的,由行和列组成。行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性,都有相应的描述信息,如数据类型,数据宽度等。如下图:

数据库基本概念介绍

  • 数据库(Database

数据库就是表的集合,它是以一定的组织方式存储的相互有关的数据集合。

  • 数据库管理系统(DBMS)

数据库管理系统是位于用户与操作系统之间的一层数据管理软件,主要功能包括:数据定义、数据操纵、数据库的运行管理、数据库的建立和维护等。数据库管理系统是实现对数据资源有效组织、管理和存取的系统软件。如MySQLOracle等都是数据库管理系统;位于用户而后操作系统之间,对数据库进行统一管理。

  • 数据库应用软件(DA

虽然已经有了DBMS,但是在很多情况下,DBMS无法满足对数据管理的要求。数据库应用程序的使用可以满足对数据库管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序复杂与DBMS进行通信,访问和管理DBMS中存储的数据库。

  • 数据库系统(DBS)

数据库系统提供了一个存储空间用来存储各种数据,可以将数据库视为一个存储数据的容器。一个数据库可能包含许多个文件,一个数据库系统中通常包含许多数据库。一般由硬件、操作系统、数据库、DBMS、应用软件和数据库用户。

四、数据库管理系统视图

物理视图:数据库管理系统底层都是一个个二进制文件存放。

用户视图:数据库管理系统把底层二进制文件展现为一张张表。

DBA视图:管理员可以查看物理视图和用户视图还可以查看数据处理过程。

五、数据库管理系统功能

1. 数据库的建立和维护:就是建立数据库的结构和数据的录入与转换。

2. 数据定义功能:定义全局数据结构、局部逻辑数据结构、存储结构保密模式。

3. 数据操作功能:包括数据查询统计和数据更新两个方面。

4. 数据库的运行管理:这是数据库管理系统的核心部分、包括并发控制、存取控制、数据库内部维护等功能。

5. 通信功能DBMS与其它软件之间的通信、如access能与office组件进行数据交换。

选择一个数据库系统需要从:数据库能存储容量、用户数量(并发性)、安全性、性能、伸缩性以及成本。

六、数据库发展中的组织结构

数据是现实世界中的抽象,而数据模型则是数据特征的抽象,在数据库中数据模型是它的核心与基础。数据模型表现为“数据结构”、“数据操作”、“数据约束”,它从概念层次上描述了系统的静态特征、动态特征、约束条件为数据库系统的信息表示与操作提供了一个抽象框架。

网状型数据库:数据结构、数据操作、数据约束

数据结构:在网状模型中,数据记录组织成图的形式,使用数据结构图做抽象的分析和表示特点是“一对一”、“一对多”、“多对多”的关系,网状模型适合表达复杂的数据关系的实现。

数据操作:从数据结构的定义看出网状模型的数据操作时建立在关系链基础上的导航似操作比较复杂。

数据约束:网状模型的数据约束是零散孤立的或者分散在各个节点或者集中成为一种关系链。

层次型数据库:数据结构、数据操作、数据约束

数据结构:层次模型是网状模型的一个特例,在层次模型中记录组织成树的形式使用树形结构图做抽象的分析和表示是一对多的关系,相对于网状模型层次模型进制了多对多,多对一的结构关系使得它的数据结构相对简单。

数据操作:跟网状模型一样具有网状模型的特点—–导航型,由于禁止了一对多,和多对多使得数据查询的速度提快了。

数据约束:还是跟网状模型差不多,但是层次模型的数据约束可以做到适当的系统实现,但更多还是依赖应用程序。

关系型数据库:数据结构、数据操作、数据约束

数据结构:关系模型的结构是建立在关系代数的理论基础上,数据结构使用简单易懂的二维数据表,可以用简单的实体—-关系(e-r)图来直接表示,E-R图中包含了实体、关系、属性。单个要素(实体也为实例对应现实世界中可区别于其他对象的事件或事物,如银行客户和银行账户、属性就是实体所具有的某一特性,如银行客户的姓名住址电话、关系就是银行客户和银行账户之间存在存取的关系。)

数据操作:关系模型使用从关系代数上抽象出来的数据库操作语言DML进行操作,结构化查询语言SQL就是其中最重要的一种已成为关系数据库的标准语言。

数据约束:关系数据库的数据约束可以针对实体、实体的属性、关系、并可以再定义实体、实体属性、关系的全面实现。

七、数据库操作语言

对数据库进行查询和修改操作的语言叫做SQLSQL的含义是结构化查询语言(Structured Query Languate)。SQL有许多不同的类型,有3个主要的标准:ANSIANSI SQL修改后再1992年采纳的标准,称为SQL-92SQL2。最近的SQL-99标准,SQL-99标准从SQL2扩充而来并增加了对象关系特征和许多其他新功能。其次,各大数据库厂商提供不同版本的SQL,这些版本的SQL不但能包括原始的ANSI标准,而且在很大程度上支持新推出的SQL-92标准。

SQL语言包含以下4个部分:

数据定义语言(DDL):DROPCREATEALTER等语言。

数据操作语言(DML):INSERTUPDATEDELETE等语句。

数据查询语言(DQL):SELECT语句。

数据控制语言(DCL):GRANTREVOKECOMMITROLLBACK等语句。

PS:具体的SQL语句使用和说明,后面详细介绍。

八、数据库访问技术

不同的程序设计语言会有各自不同的数据库访问技术,程序语言通过这些技术,执行SQL语句,进行数据管理。主要的数据库访问技术有:

  • ODBC

Open Database Connectivity(开放数据库互连)技术为访问不同的SQL数据库提供了一个共同的接口。ODBC使用SQL作为访问数据的标准。这一接口提供了最大限度的互操作性:一个应用程序可以通过共同的一组代码访问不同的SQL数据库管理系统(DBMS)。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMSODBC驱动程序完成。也就是,不论是AccessMySQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有数据库。

  • 动态SQL

动态SQL就是程序设计语言使用函数或者方法与数据库管理系统建立连接并进行交互。通过建立连接向SQL服务器发送查询语句并将结果保存至变量中而后进行处理。如:

JDBCJava Data Base ConnectivityJava数据库连接)用于Java应用程序连接数据库的标准方法,是一种用于执行SQL语句的java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。

PDOPHP Nata ObjectPHP访问数据库定义了一个轻量级的、一致性的接口,他提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。

九、数据库应用类型

不管是SQL开发人员还是管理人员,都要知道数据库应用是哪种类型,一般来说,可将数据库的应用类型分为OLTPOnline Transaction Processing,联机事务处理)和OLAPOnline Analysis Processing,联机分析处理)两种。

60年代,关系数据库之父E.F.Codd提出了关系模型,促进了联机事务处理(OLTP)的发展(数据以表格的形式而非文件方式存储)。1993 年,E.F.Codd提出了OLAP概念,认为OLTP已不能满足终端用户对数据库查询分析的需要,SQL对大型数据库进行的简单查询也不能满足终端用户分析的要求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此,E.F.Codd提出了多维数据库和多维分析的概念,即OLAP。

  • OLTP

OLTP是传统关系型数据库的主要应用。其主要面向基本的、日常的事务处理,例如银行交易。也被称为面向交易的处理系统,其基本特征是可以立即将顾客的原始数据传送到计算中心进行处理,并在很短的时间内给出处理结果,这个过程的最大优点是可以即时地处理输入的数据、及时地回答,因此OLTP又被称为实时系统。衡量OLTP系统的一个重要性能指标是系统性能,具体体现为实时响应时间。

  • OLAP

OLAP是数据仓库系统的主要应用,所谓数据仓库是对于大量已经由OLTP形成的数据的一种分析型的数据库,用于处理商业智能、决策支持等重要的决策信息;数据仓库是在数据库应用到一定程序之后而对历史数据的加工与分析,读取较多,更新较少,TPCH属于此类,对于OLAP,列存储模式比通常的行存储模式可能更具优势。

以下是OLTP和OLAP大致的区分:

OLTP

OLAP

用户

操作人员,低层管理人员

决策人员,高级管理人员

功能

日常操作处理

分析决策

DB设计

面向应用

面向主题

数据

最新的,细节的,二维的,分立的

历史的,聚集的,多维的,集成的

存取规模

读/写数条(甚至数百条)记录

读上百万(甚至上亿)条记录

操作频度

非常频繁(以秒计)

比较稀松(以小时甚至以周计)

工作单位

严格的事务

复杂的查询

用户数

数百个-数千万个

数个-数百个

DB大小

100MB-GB

100GB-TB

十、关系型数据库基本概念

关系型数据库管理系统(Relational Database Management SystemRDBMS)是E.F.Codd博士在其发表的论文《大规模共享数据银行的关系型模型》(Communications of the ACM杂志19706月刊)基础上设计出来的。RDBMS是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是RDBMS。它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。

自关系数据库管理系统被提出以来,RDBMS获得了长足的发展,许多企业的在线交易处理系统、内部财务系统、客户管理系统等大多采用了RDBMS。业界普遍使用的关系型数据库管理系统产品有IBMDB2通用数据库、OracleMySQL以及SQL Server等等。

关系型数据库管理系统的基本结构:关系数据库使用的存储结构是多个二维表,即反应事物及联系的数据描述是以平面表格形式体的。二维表通常是一个由行和列组成的,一个数据表分别说明数据库中某一个特定的方面或部分的对象及属性。数据表中的行通常叫做记录或者元组,列通常叫字段或者属性。

关系型数据库常用的概念:

  • 关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名。
  • 元组:可以理解为二维表中的一行,在数据库中经常被称为记录。
  • 属性:可以理解为二维表中的一列,在数据库中经常被称为字段。
  • 域:属性的取值范围,也就是数据库中某一列的取值限制。
  • 关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成。
  • 关系模式:指对关系的描述,其格式为:关系名(属性1,属性2, … … ,属性N),在数据库中成为表结构。

关系型数据库的优点:

  • 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解。
  • 使用方便:通用的SQL语言使得操作关系型数据库非常方便。
  • 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率。

十一、关系型数据库数据分层

表示层:表

逻辑层:存储引擎(MySQL是插件式存储引擎)

物理层:数据文件

对于物理层来说数据文件就是操作系统之上存放的文件,其实也有表示层就是“数据文件“,逻辑层就是“文件系统”,而物理层就是“数据块”。

十二、数据的完整性规则

为了维护数据库中的数据与现实世界的一致性、关系型数据库的数据与更新操作必须遵守下列四类完整性规则。

实体完整性规则:完整性要求数据库中的记录在主键的属性上不能有空值、如果出现空值那么主键就不起作用。

列完整性规则:指定一个数据集对某一个列是否有效或确定是否允许为空值。

引用完整性规则:就是如果有两个表之间相互关联、那么引用完整性规则要求不允许引用不存在的记录。

用户定义的完整性规则:这是针对某一具体数据的约束条件、由引用环境决定。

十三、主流关系型数据库

开发数据库应用,选择一个好的数据库是非常重要的。目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有MySQL、MariaDB、Percona、SQLServer、PostgreSQL、ORACLE、SYBASE、INFORMIX和DB2。

Oracle:属于Oracle公司产品,商业版。

Sybase:属于Sybase公司产品,商业版。

Informix:属于IBM公司产品,商业版。

DB2:属于IBM公司产品,商业版。

SQL Server:属于Microsoft公司产品,商业版。

MySQL:属于Oracle公司产品,开源数据库,但有企业版和社区版。

MariaDB:属于Monty公司产品,开源数据库,跟MySQL属于同一个作者。

Percona:属于Percona公司产品,开源数据库,属于MySQL分支版本。

PostgreSQL:开源数据库,据说比MySQL更优秀一点,国外用的比较多。

十四、数据库衍生职业

其实数据库的工作大概可以简易分为运维和开发两类,如下:

运维DBA:安装、升级、备份、恢复、用户管理、权限管理、SQL语句、监控、性能分析、基准测试。

开发DBA:数据库设计、SQL优化、存储过程、存储函数、触发器、Bug提交或修复、Debug跟踪、能够写Patch更好。

内核DBA:读懂数据库源码,写过内核代码(起码5000行以上)。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (3)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!