MySQL
数据库的基础
数据库新系统
数据与信息
联系
数据和信息之间是相互联系的。数据是反映客观事物属性的记录,是信息的具体表现形式。数据经过加工处理之后,就成为信息;而信息需要经过数字化转变成数据才能存储和传输。
数据库存储单元--服务器
数据库系统的构成
存储单元
数据库中的数据按一定的数学模型组织,描述和存储,具有极小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享
硬件
数据库系统的硬件组成包括构成计算机系统的各种物理设备,想CPU,内存和磁盘这些必要的硬件设备,当然,空调,应急电源,传感器等包括系统之内,硬件的配置应满足整个数据库系统的需求
软件
数据库系统的软件操作系统,数据库管理系统及应用程序。数据库管理系统是数据库系统的核心软件,在操作系统的支持工作,科学地组织和存储数据,高效获取和维护数据
人员
数据库系统的正常运行离不开人员的维护和优化,数据库系统只有在专业人员的手中才能发挥其出色的性能。
数据库系统特点
实现数据库共享
数据共享是指所用户可以同时存储和读取数据库中的数据,也是只用户可以使用各种方式通过接口调用数据库
减少系统和数据的冗余
和文件需要相比,数据库系统实现数据共享,避免了有用户自建立应用文件造成的大量数据重复和系统冗余,保持了数据的一致性,性能更加稳定
数据实现集中控制
相对于文件系统中数据处于分散状态,同一用户或不同用户或不同用户在处理数据过程中,文件之间无关系的管理方式,数据库系统可对数据进行集中控制和管理,并通过数据模型来表示各种数据和组织之间的联系
保持数据的安全,完整合并并发
数据库系统可以实现安全性控制(防止数据丢失,错误更新和越权使用),完整性控制(保证数据的正确性)并发控制(既能在同一数据周期内允许对数据实现)
故障恢复
数据库类型
数据模型
层次模型
数据库层次模型就想一棵树,主干上有着不同的分支,描述一对多的层次关系非常自然直观,容易理解。
优点:层次分明,表与信息描述的很清晰
缺点:查询需要一层一层查询,不夸表查询。对于非层次关系,如多对多关系,一个节点具有多个父节点等,使用层次模型表示容易出现关系混乱。
网状模型
优点:数据连接直接
缺点:表与表关系描述关系复杂
允许一个以上的节点父节点
一个节点可以有多余一个的父节点
定义:网状模型绝缘油层次模型更复杂的网状结构
关系型数据库
关系型数据库产品
Oracle 数据库
SQL Server 数据库
Access 数据库
能够处理以上的表,并且能够进行多表联查,也是使用最多的
虽然网状和层次模型已经可以很好地解决数据的集中和共享问题,但他们在数据独立和抽象级别上仍有很大欠缺。
特点
存储结构
sql:增删改查(insert,delete,update,select)
关系型数据库按照结构化的方法存储数据,每个数据表的行列都必须对应的字段(也就是先定义号表的结构),在根据表的结果存入数据。
扩展方式
关系型数据库将数据存储在数据表中,因此数据出自的瓶颈就出现多张数据表的操作中,而且数据表越多问题就越严重。
查询方式
事务性
ACID规则:
原子性(atomicity):要么成功要么失败
一致性(consistency):不管如何操作,总体不变
隔离性(lsolation):所有用户操互不影响
持久性(durability):所有操作都会保存到相关日志文件
它可以满足对事务性要求较高或者需要进行复杂数据查询的任务需求,而且可以充分满足数据库操作的高性能和操作稳定性的要求。 关系型数据库强调数据的强一致性,可以控制事务原子性细粒度,并且一旦操作有误或者有需要,可以回滚事务
读写性能
关系型数据库十分强调数据的一致性,并为此降低读写性能,付出了巨大的代价。虽然关系型数据库存储数据和处理数据的可靠性很不错,但一旦面对海量数据的处理,效率就会变得很低,特别是遇到高并发读写的时候,性能会下降得非常厉害。
面向对象模型
描述信息,特性
非关系型数据库
非关系型数据库也被称为 NOSQL( Not Only SQL)数据库。它的产生并不是要彻底否定关系型数据库,而是作为传统数据库的一个有效补充。非关系型数据库的数据存储不需要固定的表结构,一般情况下也不存在对数据的连续操作。相对于关系型数据库,非关系型数据库在大数据存取上具备无法比拟的性能优势。
常见的非关系型数据库产品有以下 3 种。
Memcached
Redis
mongoDB
为什么使用MySQL
MySQL 属于中小型关系型数据库管理系统,目前被广泛地应用到互联网上的大、中、小型网站中,相比于其他数据库产品,其特点如下:
(1)与 Oracle 相比,MySQL由于体积小、安装成本低、易于维护、速度快、总体拥有成本低、开放源码且无版权制约,成为商业数据库的首选。
(2)可以使用SQL访问与管理 MySQL 数据库。
(3) MySQL历史悠久,社区及用户非常活跃,遇到问题可以寻求帮助。
(4)品牌口碑效应使得企业无须考虑就直接使用LAMP、 LNMP流行架构。
(5) MySQL同时提供多种应用程序编程接口(Application Programming Interface,API),支持多种操作系统,并支持多种开发语言,特别对流行的 PHP 语言有很好的支持。