目录
引言
数据库管理系统是一个由互相关联的数据的集合和一组用访问这些数据的程序组成,这个数据集合通常称作数据库,其中包含了关于某个企业的信息。DBMS的主要目标就是提供一种可以方便高效的存取数据库信息的途径。
一.MySQL数据库系统的组成
数据库
数据库是用于存储数据的存储空间。
数据库管理系统
DBMS 主要是进行数据的创建(Create)、读取(Read)、更新(Update) 以及删除(Delete)等数据操作。
常见的数据库管理系统有甲骨文公司的 Oracle、IBM 公司的 DB2、微软公司的 Access 与 SQL Server 、 MySQL。
数据库应用程序
为方便终端用户,需要使用定制的、更为简洁的应用程序(Application Program) 来利用数据库, 这些应用程序称为数据库应用程序(Database Application Program)。
1.1 数据
描述事物的符号记录包括数字,文字、图形、图像、声音、档案记录等,以“记录”形式按统一格式进行存储
数据是以"记录"的形式按照统一的格式进行存储的,而不是杂乱无章的。
相同格式和类型的数据统一存放在一起,而不会把"人”和"书"混在一起存储。这样,数据的存储就能够井然有序。
举例班级同学
使用一些介质进行存储,例如文字存在文档中数据库可以完成数据持久化保存+快速提取
数据如何保存:最外层是mysql服务—》mysql数据库—》数据表—》记录为行,字段为列—>数据保存在一行行记录中
1.2 表
将不同的记录组织在一起,用来存储具体数据
记录:行
字段(属性):列
以行+列的形式就组成了表(数据存储在表中)
**关系数据库的表由记录组成,记录由字段组成,字段由字符或数字组成。**它可以供各种用户共享,具有最小冗余度和较高的数据独立性,它是统一管理的相关数据的集合。
1.3数据库
表的集合,是存储数据的仓库,以一定的组织方式存储的相互有关的数据集合
二.数据库管理系统(DBMS)
DBMS的主要功能
数据定义功能
DBMS提供数据定义语言(Data Define Language,DDL),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映像,定义有关的约束条件。例如,为保证数据库安全而定义用户口令和存取权限,为保证正确语义而定义完整性规则等。再如,DBMS提供的结构化查询语言(SQL)提供Create、Drop、Alter等语句可分别用来建立、删除和修改数据库。
用DDL定义的各种模式需要通过相应的模式翻译程序转换为机器内部代码表示形式,保存在数据字典(Data Dictionary,DD)(或称为系统目录)中。数据字典是DBMS存取数据的基本依据。因此,DBMS中应包括DDL的编译程序。
数据操纵功能
DBMS提供数据操纵语言(Data Manipulation Language,DML)实现对数据库的基本操作,包括检索、更新(包括插入、修改和删除)等。因此,在DBMS中也应包括DML的编译程序或解释程序。DML有两类:一类是自主型的或自含型的,这一类属于交互式命令语言,语法简单可独立使用;另一类是宿主型的,它把对数据库的存取语句嵌入在高级语言(如Fortran、Pascal、C等)中,不能单独使用。SQL就是DML的一种。例如,DBMS提供的结构化查询语言SQL提供查询语句(Select)、插入语句(Insert)、修改语句(Update)和删除语句(Delete),可分别实现对数据库中数据记录的查询、插入、修改和删除等操作。
数据库运行管理功能
对数据库的运行进行管理是DBMS运行的核心部分。DBMS通过对数据库的控制以确保数据正确有和数据库系统的正常运行。DBMS对数据库的控制主要通过4个方面实现:数据的安全性控制、数据的完整性控制、多用户环境干的并发控制和数据库的恢复。
数据库的建立和维护功能
数据库的建立包括数据库的初始数据的装入与数据转换等,数据库的维护包括数据库的转储、恢复、重组织与重构造、系统性能监视与分析等。这些功能分别由DBMS的各个实用程序来完成。
数据通信接口
DBMS提供与其他软件系统进行通信的功能。一般,DBMS提供了与其他DBMS或文件系统的接口,从而使该DBMS能够将数据转换为另一个DBMS或文件系统能够接受的格式,或者可接收其他DBMS或文件系统的数据,实现用户程序与DBMS、DBMS与DBMS、DBMS与文件系统之间的通信。通常这些功能要与操作系统协调完成。
数据组织、存储和管理
DBMS负责对数据库中需要存放的各种数据(如数据字典、用户数据、存取路径等)的组织、存储和管理工作,确定以何种文件结构和存取方式物理地组织这些数据,以提高存储空间利用率和对数据库进行增、删、查、改的效率。
三.数据库系统(DBS)
数据库系统主要有以下 3 个组成部分:
1.数据库:用于存储数据的地方。
2.数据库管理系统:用于管理数据库的软件。
3.数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库库的软件补充。
数据库(DataBase,DB)提供了一个存储空间来存储各种数据,可以将数据库视为一个存储数据的容器。一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。
数据库管理系统(Database Management System,DBMS)是用户创建、管理和维护数据库时所使用的软件,位于用户和操作系统之间,对数据库进行统一管理。DBMS 能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。
虽然已经有了 DBMS,但是在很多情况下,DBMS 无法满足对数据管理的要求。
数据库应用程序(DataBase Application)的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序负责与 DBMS 进行通信、访问和管理 DBMS 中存储的数据,允许用户插入、修改、删除数据库中的数据。
四.DBMS的工作模式
工作模式如下:
1.接受应用程序的数据请求和处理请求
2.将用户的数据请求转换为复杂机器代码
3.数显对数据库的操作
4.从数据库的操作中接受查询结果
5.对查询结果进行处理(格式转换)
6.将处理结果返回给用户
五.数据库系统发展
(1)人工管理阶段
早期的数据处理都是通过手工进行的,因为当时的计算机主要是用于科学计算。
人工管理阶段的特点:
1、 数据量较少:数据和程序一一对应,数据面向应用独立性很差。因为应用程序所处理的数据之间可能有一定的关系,因此程序之间会有大量的重复数据。
2、 数据不保存:因为该阶段计算机的主要任务是科学计算,一般不需要长期保存。计算出结果就行了。
3、 没有软件系统对数据进行管理:程序员不仅要规定数据的逻辑结构,并且要在程序中设计物理结构,包括存储结构的存取方法、输入输出方式等。
(2)文件系统阶段
主要是大容量的磁盘等辅助存储设备的出现,使得专门管理辅助设备上的数据的文件系统应运而生,它是操作系统中的一个子系统。
针对文件系统中,按照一定的规则将数据组织成为一个文件,应用存储通过文件系统对文件中的数据进行存取和加工。
数据可以长期保留:程序可以按照文件名访问和读取数据,不必关系数据的物理位置。
数据不属于某个特定应用:应用程序和数据直接不再是直接的对应关系,可以重复使用。不同的应用程序无法共享同一数据文件。
文件组织形式的多样化:索引文件、链接文件、Hash等。文件之间没有联系相互独立、数据间的联系要通过程序去构造。
文件系统的缺点:数据冗余、数据不一致性、数据孤立。gendan5.com/zs/399905.html
(3)数据库系统阶段
数据库系统由计算机软件、硬件资源组成的系统,它实现了有组织地、动态地存储大量关联数据、方便多用户访问。它与文件系统的重要区别是:数据的充分共享、交叉访问、与应用程序的高度独立性。
1、采用复杂的数据模型表示数据结构
数据模型描述数据本身的特点、数据之间的联系。数据不再面向单个应用,二是整个应用系统。数据冗余明显减少,实现数据共享。
2、有较高的数据独立性
数据库是以一种更高级的组织形式,在应用程序和数据库之间有DBMS负责数据的存取。
数据库系统和文件系统的区别:数据库对数据的存储按照同一结构进行的,不同应用程序都可以直接操作这些数据。数据库对数据的完整性、唯一性、安全性都有一套有效的管理手段。
另外数据库还提供管理和控制数据的各种简单操作命令,使用户编程程序更加容易。
六.当今主流数据库
1、MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。
MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
2、SQL Server
SQL Server是Microsoft 公司推出的关系型数据库管理系统。
具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
3、Oracle Database
Oracle Database,是甲骨文公司的一款关系数据库管理系统。
它是在数据库领域一直处于领先地位的产品。系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。
七.关系数据库
关系型数据库 应用举例
Oracle, MySQL 12306用户信息系统
SQLServer、Sybase 淘宝账号系统
lnformix、access 联通手机号信息系统
DB2、FoxPRO 银行用户账号系统
PostgreSQL 网站用户信息系统
八.非关系数据库介绍
非关系数据库也被称作NoSQL (Not Only SQL)
存储数据不以关系模型为依据,不需要固定的表格式
非关系型数据库的优点:
数据库可高并发读写
对海量数据高效率存储与访问
数据库具有高扩展性与高可用性
常用的非关系数据库:Redis、mongoDB等
九.关系数据库与非关系数据库的区别
1. 关系型数据库支持多个表之间连接查询(join),非关系型数据库不支持连接查询
2. 关系型强调数据之间的强关联型,并支持事物来确保数据的增删改查的强一致性,而非关系型数据库对数据的事物则支持的不是很好
3. 关系型数据库不灵活,是一种二维的数据结构,而且对一行的数据格式类型要求很高,非关系型数据库数据格式则更灵活,数据字段类型也很灵活
4. 非关系型数据库比关系型数据库更容易扩展
5. 非关系型数据库对大量的并发读写支持的更好,性能更高,而关系型由于IO瓶颈,高并发读写速度慢,支持不好
6. 对于数据量很大,而且数据之间无规律,为了能更好的利用这些数据,就可以用非关系数据库
7. 非关系型数据库有Mongdb,Redis,Hbase,关系型数据库有Mysql,Oracle
8. redis是内存级数据库,所有数据操作都在内存中进行,数据持久化通过RDB和AOF方式
9. Mysql所有的索引和数据都放在硬盘中,所以对数据的操作会有大量的IO耗时,IO是导致读写慢的主要原因
10. Mongdb介于二者之间,mongodb的所有数据实际上是存放在硬盘的,所有要操作的数据通过mmap的方式映射到内存某个区域内
11.传统关系型数据库在数据库高并发读写,对海量的数据存储,对数据库的高可扩展性应用场景性能不好
12.mongdb更灵活,适用于需求变更,模型无法确定,要进行扩展等场景,mongdb每条数据都可以灵活增加字段
十.MySQL数据库介绍
1、mysql介绍
一款深受欢迎的开源关系型数据库,Oracle旗下的产品,遵守GPL协议,可以免费使用与修改
特点:
性能卓越、服务稳定
开源、无版本权限制、成本低
多线程、多用户
基于C/S(客户端、服务器)架构
安全可靠:因为mysql日志文件能备份、恢复、故障定位、分析;不怕数据丢失、是mysql最核心的部分
Myaql: 存储引擎
myisam和innodb
myisam:快速读取,不支持事务
innodb:更注重写,支持事务。
2、MySQL商业版与社区版
mysql商业版是由nysql AB 公司负责开发与维护,需要付费才能使用
mysql社区版是由分散在世界各地的mysql开发者,爱好者一起开发与维护,可以免费使用。
两者区别
商业版组织管理与测试环节更加严格,会比社区版更加稳定
商业版不遵守GPL,社区版遵从GPL可以免费使用
商业版可获得7*24小时的服务,社区版则没有
3、MySQL产品阵营
第一阵营:5.0-5.1阵营,可说是早期产品的延续
第二阵营:5.4-5.7阵营,整合了MySQL AB公司、社区和第三方公司开发的存储引擎,从而提高性能
第三阵营: 6.0-7.1阵营,就是MySQL Cluster版本,为适应新时代对数据库的集群需求而开发
下载网址:http://www.dev.mysql.com/downloads
4、日志
数据库日志文件用于各份,恢复,是最核心的部分
mysql与oracle日志有所区别
mysql写一条数据,同步到日志中一条
oracle:重做日志组
一个组中至少3个日志成员,轮流存储日志
还会有另一个组与之同步/备份
十一、Myaql存储引擎
常用存储引擎 说明
MyISAM 拥有较高的插入,查询速度,但不支持事务
InnoDB 支持事务的存储引擎,mysql5.5以后将它设置为默认存储引擎。
BDB 事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性
Memory 基于内存的存储引擎,将所有的数据都置于内存中,查询、插入、删除效率极高,是一种空间换时间的思想,不过服务重启会导致数据丢失
Merge 将一部分的MyISAM表联合成的一个整体,适用于大数据存储。