数据库(1) | 数据库基础
数据库基础
这一章内容,重点讲解数据库的方方面面。数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,我们主要从入门的视角来学习这部分。
数据库的定义
A database is an organized collection of data. It is the collection of schemas, tables, queries, reports, views and other objects. The data are typically organized to model aspects of reality in a way that supports processes requiring information, such as modelling the availability of rooms in hotels in a way that supports finding a hotel with vacancies.
数据库是数据有组织的集合。这是一个对象模式、表、查询、报表、视图和其他对象的集合。该数据通常被组织到现实的方面进行建模,支持需要的信息流程,如模拟酒店房间的可用性的方式,支持查找可用酒店的方式。
什么是数据库
数据库的应用场景:
企业信息:
- 销售:用于存储客户、产品和购买信息等
- 会计:用于存储付款、收据、账户余额、资产和其他会计信息
- 人力资源:用于存储雇员、工资、所得税和津贴的信息,以及产生工资单等
银行和金融
- 银行业:用于存储客户信息、账户、贷款以及银行的交易记录
- 信用卡交易:用于记录信用卡消费的情况和产生每月清单
数据库是有组织地存储模型数据的空间,存储各种类型的信息(数据)。每个数据库,除了无模式型的,都有一个模型,提供数据的结构描述。
数据库管理系统是管理数据库结构、大小和排序的应用(或软件)。
数据库逻辑结构体系
数据库:Database,简称为DB。是长期存储在计算机内,有组织的,统一管理的相关数据的集合。
数据库管理系统:Database Management System,简称为DBMS。由相互关联的数据集合以及一组用于访问这些数据的程序组成。
数据库管理系统是位于用户与操作系统之间的一层数据库管理软件。为用户程序提供访问数据库的方法,包括建立数据库、查询、更新以及各种数据库控制等操作。
DBMS的工作模式如下:
- 接受应用程序的数据请求和处理请求
- 将用户的数据请求转换为复杂的机器代码
- 实现对数据库的操作
- 从对数据库的操作中接受查询结果
- 对查询结果进行处理和格式转换
- 将处理结果返回给用户
DBMS的主要功能
- 数据库的定义功能
- 数据库的操纵功能
- 数据库的保护功能
- 数据库的维护功能
数据库系统:Database System,简称为DBS。是实现有组织的、动态的存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统。
数据库系统是一种采用数据库技术的计算机系统。
DBS的组成
- 数据库:包括两类,一类是应用数据的集合,物理数据库,数据库的主体;另一类是各级数据结构的描述,描述数据库。
- 硬件:包括计算机、服务器等硬件设备。
- 软件:包括数据库管理系统、操作系统、各种主语言
- 数据库管理员
数据库发展历史
人工管理阶段
文件系统阶段
数据库阶段
- 1950年到1960年,磁带用于数据存储。
- 1968年,美国IBM公司推出层次模型的IMS(Information Management System)系统,硬盘使用系统。
- 1969年,美国CODASYL(Conference On Data System Language)组织发布了DBTG(Data Base Task Group)报告,总结了当时各式各样的数据库,提出网状模型。
- 1970年,美国IBM公司的Edgar F.Codd博士连续发表论文,提出关系模型,奠定了关系型数据库的理论基础。Codd也获得了声望很高的ACM图灵奖。
- 1990年以后,数据库进入了高级应用阶段。面向对象的数据库技术、开放数据库互联技术、数据仓库(大数据)和数据挖掘技术的应用日益广泛。
数据库学习重点
-
Oracle数据库的连接与命令行操作
-
SQL的数据基本查询和复杂查询操作
-
SQL的表对象的创建、删除和修改操作
数据库管理系统
A database management system (DBMS) is a computer software application that interacts with the user, other applications, and the database itself to capture and analyze data. A general-purpose DBMS is designed to allow the definition, creation, querying, update, and administration of databases.
数据库管理系统(DBMS)是与用户,其他应用程序和数据库本身来捕获和分析数据进行交互的计算机软件应用程序。
一般用途的数据库管理系统旨在允许定义,创建,查询,更新和管理数据库。
数据库管理系统分类
关系型数据库
关系型数据库系统实现了关系模型,并用它来处理数据。关系模型在表中将信息与字段关联起来(也就是schemas),从而存储数据。
这种数据库管理系统需要结构(例如表)在存储数据之前被定义出来。有了表,每一列(字段)都存储一个不同类型(数据类型)的信息。数据库中的每个记录,都有自己唯一的key,作为属于某一表的一行,行中的每一个信息都对应了表中的一列——所有的关系一起,构成了关系模型。
非关系型(NoSQL)数据库
- 文档型存储
- 列存储
- 缓存存储
主流数据库介绍
数据库 | 描述 | 优点 | 不足 |
---|---|---|---|
Oracle | 甲骨文公司推出的使用最广泛的关系型数据库管理系统 | 高稳定性、可靠性、优秀的安全机制、优秀的安全机制、采用标准的SQL结构化查询语言、支持大型数据库,数据类型支持数字、字符、大至2GB的二进制数据,为数据库的面向对象存储提供数据支持。 | 贵、对硬件要求很高、对数据库管理员的经验要求较高 |
Microsoft SQL Server | 微软公司的关系型数据库管理系统 | 真正的客户机/服务器体系结构,图形化的用户界面,使系统管理和数据库管理更加直观、简单、丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地,与WinNT完全集成,提供数据仓库功能和商业智能分析等功能 | 价格也高,而且不支持跨平台,安全性也相对不高 |
MySQL | 开源的关系型数据库管理系统 | 开源软件,版本更新较快、开源软件,版本更新较快、性能很出色、价格便宜 | 缺乏一些存储程序的功能,技术更新目前进入几乎停滞状态 |
IBM DB2 | IBM公司的大型关系型数据库管理系统 | DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令 | 管理工具比较简陋、价格贵。 |
MongoDB | 开源流行的文档型NoSQL数据库 | 关系数据库和非关系数据库之间的产物,其功能丰富,能够支持复杂的数据类型,但仍然保留着关系数据库的一些属性(查询、索引) | 在国内流行度不是很高、相关技术资料比较缺乏 |
PostgreSQL | 最先进SQL型开源objective-RDBMS | PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,比MySQL的性能和负载能力更强和稳定,在 GIS 领域处于优势地位 | 普及度不够高 |
Cassandra | 开源流行的列存储NoSQL数据库 | 它是混合型的非关系数据库,在网络社交云计算方面应用较理想,读操作比写操作快很多,较适用于银行、金融、数据分析等领域。 | 技术推广难度 |
SQLite | 嵌入式使用的关系型数据库管理系统 | 基于文件、很容易迁移,支持标准化迁移,简洁 | 没有用户管理功能,不支持额外的性能优化 |
Redis | 开源的内存键值对型NoSQL数据库 | 有各种丰富的数据结构,支持数据持久化 | 内存优化有待进一步提升 |
数据库的评价排名平台:http://db-engines.com/en/ranking_trend