数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
一、数据库管理系统
1.1、数据存储方式
计算机数据(Data)的存储一般以硬盘为数据存储空间资源,从而保证计算机内的数据能够持续保存。对于数据的处理,一般会采用数据库相关的技术进行处理,从而保证数据处理的高效性。
采用数据库的管理模式不仅提高了数据的存储效率,而且在存储的层面上提高了数据的安全性。通过分类的存储模式让数据管理更加安全便捷,更能实现对数据的调用和对比,并且方便查询等操作的使用。
1.2、数据库管理系统
常见的数据库管理系统:
Oracle: 收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
MySQL: 开源免费的数据库,小型的数据库。已经被Oracle收购了,MySQL6.x版本也开始收费。
SQL Server: 由Microsoft公司推出的一款收费的中型的关系型数据库管理系统,以其实用性、可伸缩性和与其他软件的高度集成度著称。C#、.net等语言常使用。
PostgreSQL: 始于1986年,是一个功能强大且开源的对象关系数据库系统,支持大部分SQL标准。
OceanBase: 一款高性能、高可用性的分布式数据库系统。OceanBase是由蚂蚁集团完全自主研发的国产原生分布式数据库,始创于2010年。
TIDB: 一个知名的国产分布式数据库系统。是 PingCAP 公司自主设计、研发的开源分布式关系型数据库。
达梦数据库: 中国电子信息产业集团旗下的基础软件企业,专注于提供大数据平台的整体解决方案。
MongoDB: 始于2007年,基于分布式文件存储的数据库,专为Web应用提供可扩展和高性能的数据存储解决方案。
GaussDB/OpenGauss: 华为的国产数据库系统。
DB2: IBM公司的数据库产品,收费的。常应用在银行系统中.
SyBase: 已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。
SQLite: 嵌入式的小型数据库,应用在手机端。
Redis: (Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Java常用的数据库:MySQL,Oracle,Redis。
Python常用的数据库:MySQL,Redis,MongoDB。
1.3、数据库与数据库管理系统关系
2、数据库
数据库就是存储数据的仓库,由数据库表组成,其本质是一个文件系统,数据库按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 数据库非常重要,因为它存储着企业的钱、用户信息、业务数据、订单等非常重要的数据。
2.1、数据库表
数据库中以表为组织单位存储数据。
数据库表由:表名、表字段、表记录构成
如:
在学生档案中,学生信息(数据库表)是由学号、姓名、性别、年龄、籍贯、院系、联系电话(表中字段)等特征组成的,那么这些具体的特征值所构成的一条记录就是一个学生的信息数据,例如“2016010102,张三,男,26,山西,计算机学院,18513232232”(记录)。
2.2、数据库表记录
根据表字段所规定的数据类型,我们可以向其中填入一条条的数据,而表中的每条数据类似类的实例对象。表中的一行一行的信息我们称之为记录。
2.2.1、数据库
2.2.2、数据库表结构
2.2.3、记录
MySQL
MySQL是一个C/S关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一.
关系型数据库 ,NoSQL,对象数据存储数据库.
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL是一款市场占有率非常高的数据库管理系统,技术成熟、配置步骤相对简单,而且具有良好的可扩展性。 但是,由于Oracle公司在2009年收购了MySQL的母公司Sun,因此MySQL数据库项目也随之纳入Oracle麾下,逐步演变为保持着开源软件的身份,但又申请了多项商业专利的软件系统。 因此由MySQL项目创始者重新研发了一款名为MariaDB的全新数据库管理系统。该软件当前由开源社区进行维护,是MySQL的分支产品,而且几乎完全兼容MySQL。
MySQL是目前最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
MySQL是非常灵活的一款数据库,虽然它不是绝对完美,但它的灵活足够适应很多高要求的环境。为了发挥MySQL的性能并很好的使用它,我们就得先了解其设计。MySQL的灵活主要体现在我们可以通过不同的配置使他在不同的硬件上都能运行的很好。但是MySQL最重要,与众不同的特性是它的存储引擎架构,这种架构将查询处理及其他系统任务和数据的存储/提取相分离。
关系型数据库天然就是二维表格,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。
MySQL 使用了标准的 SQL 语言形式。支持大型的数据库,可以处理拥有上千万条记录的大型数据库。MySQL 还可用于多种系统中,且支持多种语言。
RDBMS术语
数据库:数据库是一些关联表的集合。
数据表:表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
-
列:一列(数据元素)包含了相同的数据,例如邮政编码的数据。
-
行:一行(=元组,或者记录)是一组相关的数据,例如一条用户订阅的数据。
-
冗余:存储两倍数据,冗余降低了性能,但是提高了数据的安全性。
-
主键:主键是唯一的,一个数据表中只能够包含一个主键,你可以使用主键来查询数据。
-
外键:外键用于关联两个表。
-
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
-
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或者多列的值进行排序的一种结构。类似于书籍的目录。
-
Server : (mysqld) 网络服务器(TCP socket : 3306 ). 管理数据模块(数据存储引擎INNODB)增删改查.用户认证模块.其他工具模块.
-
Client: 默认的命令行客户(mysql) , 第三方客户端Navicat , mycli (命令行,可以自动补全SQL,python实现的)