MySQL 数据库基础(一)(数据库的简介)


前言

  • 随着科技的发展,我们迈入了“信息大爆炸时代”,大量的数据、信息在不断地产生,伴随而来的就是如何安全、有效地存储、检索和管理他们
  • 对于数据的有效存储、高效访问、方便共享和安全控制已经成为了当今值得重视的问题
  • 所以使用数据库很有必要!
  • 现在看来,使用数据库可以高效且条理分明的存储数据,使人们能够更加迅速、方便地管理数据
  • 总结一下,数据库具有以下特点:
    • 可以结构化存储大量的数据信息,方便用户进行有效的检索和访问
    • 可以有效地保持数据信息的一致性、完整性,降低数据冗余
    • 可以满足应用的共享和安全方面得要求

一、数据库的基本概念

1. 数据(Data)

  • 描述事物的符号记录称为数据(Data)
  • 数据不仅仅包括数字,文字、图形、图像、声音、档案记录等都是数据
  • 在数据库中,数据是以“记录”的形式按统一的格式进行存储的,而不是杂乱无章的
  • 这样,数据的存储就能够井然有序
  • 如下图中存储的一行数据,在数据库中称为一条“记录”(Record),每条记录中的每一个输出称为“列”,图中的编号、姓名、性别、年龄都是列名
编号 性别 年龄
王一 12
王二 14
王三 16

2.数据库表与和数据库(DB)

  • 将不同的记录组织在一起,就形成了数据库(Database,DB)的“表”(Table)
  • 表是用来存储具体数据的
  • 数据库是表的集合,是以一定的组织方式存储的相互有关的数据集合
  • 且通常,数据库并不是简单地存储这些数据,还要表示它们之间的关系;就比如书和人之间的关系,书的作者是某个人,因此也需要建立书与人的“关系”
  • 这种对应关系也需要用数据库来表示,因此关于关系的描述也是数据库的一部分

3.数据库管理系统(DBMS)

  • 数据库管理系统(Databas Management System,DBMS)是实现对数据库资源有效组织、管理和存取的系统软件
  • 它在操作系统的支持下,支持用户对数据库的各项操作:
功能 解释
数据库的建立和维护 包括建立数据库的结构和数据的录入与转换、数据库的转储与恢复、数据库的重组与性能坚实等功能
数据定义功能 包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式及信息格式等功能;保证存储在数据库中的数据正确、有效和相容,以防止不合语义的错误数据被输入或输出
数据操纵功能 包括数据查询统计和数据更新两个方面
数据库的运行管理功能 这是数据库管理系统的核心部分,包括并发控制、存取控制、数据库内部维护等功能
通信功能 DBMS 与其它软件之间的通信,如 Access 能与其它 Office 组件进行数据交换

4.数据库系统(DBS)

  • 数据库系统(Database System,DBS)是一个人机系统,一般由硬件、OS、数据库、DBMS、应用软件和数据库用户(包括数据库管理员)组成
  • 用户可以通过 DBMS 或应用程序操作数据库
  • 应用程序是利用 DBMS ,为解决某个具体的管理或数据处理的任务而编制的一系列命令的有序集合
  • 数据库管理员(Database Administrator,DBA)负责数据库的更新和备份、数据库系统的维护、用户管理等工作,保证数据库系统的正常运行
  • 注:数据库、数据库系统、数据库管理系统甚至数据库表等名词,在日常讨论中通常不严格区别,可以根据具体情况判断出实际所指是什么

二、数据库发展史

1.初级阶段——第一代数据库

  • 自20世纪60年代起,第一代数据库系统问世
  • 它们是层次模型与网状模型的数据库系统,为统一管理和共享数据提供了有力的支撑
  • 在这个阶段中,数据库的代表是 1969 年 IBM 公司研制的层次模型的数据库管理系统——IMS(Information Management System,信息管理系统)和 20 世纪 70 年代美国数据系统语言协会(CODASYL)下述数据库任务组(DBTG)提议的网状模型

2.中级阶段——第二代数据库

  • 20 世纪 70 年代初,第二代数据库——关系数据库开始出现
  • 自从 1970 年 IBM 研究员阐述了关系模型的概念后,IBM 大力投入关系数据库的研究
  • 关系数据库的底层实现起来比较容易,所以很快被采用,并进入了众多商业数据库的研发计划,Oracle 就是当时顺应关系数据模型的出现而成立的一家专做(关系)数据库的公司
  • 20 世纪 80 年代初,IBM 公司的关系数据库系统 DB2 问世,而 Oracle 公司也将 Orale 移植到桌面计算机上
  • 这时,作为第二代数据库系统的关系数据库,开始逐步取代层次与网状模型的数据库,成为行业主流
  • 到目前为止,关系数据库系统仍占领数据库应用的主要地位
  • 关系数据库系统将结构化查询语言(Structured Query Language,SQL)作为数据定义语言(DDL)和数据操作语言(DML),它一诞生就成为关系数据库的标准语言
  • SQL 使得关系数据库中数据库表的查询可以通过简单的、声明性的方式进行,大大简化了程序员的工作

3.高级阶段——第三代数据库

  • 传统关系数据库是以商业应用、事务处理为背景发展起来的,还需要有新的数据库系统以满足不同的、新的领域的要求
  • 自 20 世纪 80 年代开始,适用不同领域的新型数据库系统不断涌现
  • 特别是面向对象的数据库系统,实用性强、适应面广
  • 20 世纪 90 年代后期,形成了多种数据库系统共同支撑应用的局面
  • 当然了,在商务应用方面,还是关系数据库占主流,不过,已经一些新的元素被添加进主流数据库系统中,例如,Oracle 支持的“关系——对象”数据库模型

三、当今主流数据库介绍

1.关系数据库

  1. SQL Server(微软公司产品)
    • 面向 Windows 系统
    • 简单、易用
  2. Oracle(甲骨文公司产品)
    • 面向所有主流平台
    • 安全且完善
    • 操作复杂
  3. DB2(IBM 公司产品)
    • 面向所有主流平台
    • 大型、安全、完善
  4. MySQL(被甲骨文公司收购)
    • 免费、开源和体积小

2.非关系数据库

  • 非关系数据库也被称为 NoSQL(Not Only SQL),存储数据不以关系模型为依据,不需要固定的表格式
  • 非关系型数据库作为关系型数据库的一个补充,在日益快速发展的网站时代,发挥着高效率与高性能
  • 非关系型数据库的优点:
    • 满足数据库高并发读写的需求
    • 能对海量数据高效率存储与访问
    • 满足数据库高扩展性与高可用性的需求

四、关系数据库的基本概念

  • 关系数据库系统是基于关系模型的数据库系统,是关系模型应用到数据库领域的实例化
  • 它的基本概念来自于关系模型

1.关系数据库的基本结构

  • 关系模型的数据结构使用简单易懂的二维数据表,即反映事物及其联系的数据描述是以平面表格形式体现的
  • 在每个二维表中,每一行称之为一条记录,用以描述一个对象的信息;每一列称之为一个字段,用以描述对象的一个属性
  • 数据表与数据库之间存在相应的关联,这些关联用来查询相关的数据
  • 关系数据库是由数据表之间的关联组成的,可用简单的“实体——关系”(E-R)图来表示
  • E-R 图中包含了实体(数据对象)、关系和属性这三个要素
    mark
  • 实体:也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”,如银行客户、银行账户等
  • 属性:实体所具有的某一特性,一个实体可以有多个属性;如银行客户实体集中的每个实体均具有姓名、住址、电话等属性
  • 联系:实体集之间的对应关系称为联系,也称为关系;如银行客户和银行账户之间存在”储蓄“的关系
  • 所有实体及实体之间联系的集合构成一个关系数据库
    mark
  • 在每个二维表中,每一行称为一条记录,用来描述一个对象的信息
  • 每一列称为一个字段,用来描述对象的一个属性
  • 虽然在银行客户看来,自己的账户和别人的账户是完全不一样,且是唯一的,但是,银行内部往往还是会使用内部编码来区分和管理不同的业务

2.主键

  • 数据表中的每行记录都必须是唯一的,而不允许出现完全相同的记录,通过定义主键(主关键字,Promary Key)可以保证记录(实体)的唯一性
  • 键,即关键字,它是关系模型中一个非常重要的元素
  • 主键唯一标识表中的行数据,一个主键值对应一行数据,主键由一个或多个字段组成,其值具有唯一性,不允许取空值(NULL)
  • 一个表只能有一个主键
  • 如果一个属性集能唯一地标识表的一行而又不含有多余的属性,那么这个属性集称为候选键
  • 表中可以有多个候选键,但是只能有一个候选键可以选做表的主键,所有其他候选键称为备用键
  • 例如下图,“编号”、“姓名”、“性别”、“年龄”、“专业编号”都可以说是候选键,而可以定义“编号”为主键
编号 姓名 性别 年龄 专业编号
1 徐一 21 1
2 徐二 22 3
3 徐三 18 3
4 徐四 18 5

3.外键

  • 一个关系数据库通常包括多个表,通过外键(Foreign Key)可以使这些表关联起来
  • 外键是用于建立和加强两个表数据之间的链接的一列或多列,通过表中主键值得一列或多列添加到另一个表中,可创建两个表之间的链接
  • 这个列就称为第二个表的外键
  • 如下表所示,字段“专业编号”是该表的主键,而上表中也有一个相同的字段“专业编号”,则该字段称为外键
专业编号 专业
1 云计算运维
3 大数据开发
5 人工智能
  • 主键的表称之为“主表”,外键的表称之为“从表”
  • 主表和从表总是成对出现的,相互之间以“外键”形成关联

4.数据完整性规则

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

  1. 实体完整性规则
    • 实体完整性规则要求关系中的元组在主键的属性上不能有空值
    • 如果出现空值,那么主键值就起不到唯一标识元组的作用
    • 例如,在主键的表中,每个人都有自己对应的“编号”,用来唯一标识每个人的信息记录,这个“编号”往往被设为该表的主键,以方便其他数据库表的关联应用
    • 依照实体完整性规则,“编号”字段不允许为空
  2. 域完整性规则
    • 域完整性也称列完整性,指定一个数据集对某一个列是否有效或确定是否允许空值
    • 若在主键的表中,定义“性别”字段只能取值为“男”或“女”,那么该列就不会输入一些其他无效的值了
  3. 引用完整性规则
    • 如果两个表之间相互关联,那么引用完整性规则要求不允许引用不存在的元组
    • 例如,在主键的表中记录了所有人的信息,下表中记录了人们的兴趣和爱好
    • “郑三”在主键的表中时不存在,但在上表中却有了他兴趣爱好的记录,这样的情况是不允许的
序号 姓名 兴趣 爱好
1 徐一 打球 街舞
2 徐二 唱歌 喊麦
3 郑三 洗脚 按摩
  1. 用户定义的完整性规则
    • 用户定义的完整性规则是针对某一具体数据的约束条件,由应用环境决定
    • 它反应了某一具体应用所涉及的数据必须满足的语义要求
    • 系统提供定义和检验这类完整性的机制,以便用统一的系统方法进行处理,不再由应用程序来承担这项工作

5.关系数据库应用

  • 12306用户信息系统
  • 淘宝账号系统
  • 联通手机号信息系统
  • 银行用户账号系统
  • 网站用户信息系统

猜你喜欢

转载自blog.csdn.net/weixin_51486343/article/details/113130509