目录
前言
- 随着科技的发展,我们迈入了“信息大爆炸时代”,大量的数据、信息在不断地产生,伴随而来的就是如何安全、有效地存储、检索和管理他们
- 对于数据的有效存储、高效访问、方便共享和安全控制已经成为了当今值得重视的问题
- 所以使用数据库很有必要!
一、数据库的基本概念
1. 数据(Data)
- 描述事物的符号记录称为数据(Data)
- 数据不仅仅包括数字,文字、图形、图像、声音、档案记录等都是数据
- 在数据库中,数据是以“记录”的形式按统一的格式进行存储的,而不是杂乱无章的
- 这样,数据的存储就能够井然有序
- 如下图中存储的一行数据,在数据库中称为一条“记录”(Record),每条记录中的每一个输出称为“列”,图中的编号、姓名、性别、年龄都是列名
1.1数据如何保存
mysql服务---》mysql数据库---》数据表---》记录为行,字段为列--->数据保存在一行行记录中
编号 | 姓名 | 性别 | 年龄 |
---|---|---|---|
1 | ghr1 | 男 | 12 |
2 | ghr2 | 女 | 14 |
3 | ghr3 | 男 | 16 |
2.数据库表与和数据库(DB)
- 将不同的记录组织在一起,就形成了数据库(Database,DB)的“表”(Table)
- 表是用来存储具体数据的
- 数据库是表的集合,是以一定的组织方式存储的相互有关的数据集合
- 关系型数据库的表由记录组成,记录由字段组成,字段由字符或数字组成,它可以供各种用户共享,具有最小冗余度和较高的数据独立性。是统一管理的相关数据的集合。
- 且通常,数据库并不是简单地存储这些数据,还要表示它们之间的关系;就比如书和人之间的关系,书的作者是某个人,因此也需要建立书与人的“关系”
- 这种对应关系也需要用数据库来表示,因此关于关系的描述也是数据库的一部分
3.数据库管理系统(DBMS)
- 数据库管理系统(Databas Management System,DBMS)是实现对数据库资源有效组织、管理和存取的系统软件
- 它在操作系统的支持下,支持用户对数据库的各项操作:
功能 | 解释 |
---|---|
数据库的建立和维护 | 包括建立数据库的结构和数据的录入与转换、数据库的转储与恢复、数据库的重组与性能监视等功能 |
数据定义功能 | 包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式及信息格式等功能;保证存储在数据库中的数据正确、有效和相容,以防止不合语义的错误数据被输入或输出 |
数据操纵功能 | 包括数据查询统计和数据更新两个方面 |
数据库的运行管理功能 | 这是数据库管理系统的核心部分,包括并发控制、存取控制、数据库内部维护等功能 |
通信功能 | DBMS 与其它软件之间的通信,如 Access 能与其它 Office 组件进行数据交换 |
3.1DBMS的工作模式如下
1>接受应用程序的数据请求和处理请求
2>将用户的数据请求(高级指令)转换为复杂机器代码(底层指令)
3>实现对数据库的操作
4>从数据库的操作中接受查询结果
5>对查询结果进行处理(格式转换)
6>将处理结果返回给用户
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 世纪 90 年代后期,形成了多种数据库系统共同支撑应用的局面
- 当然了,在商务应用方面,还是关系数据库占主流,不过,已经一些新的元素被添加进主流数据库系统中,例如,Oracle 支持的“关系——对象”数据库模型
三、当今主流数据库介绍
1.关系数据库
- SQL Server(微软公司产品)
- 面向 Windows 系统
- 简单、易用
- Oracle(甲骨文公司产品)
- 面向所有主流平台
- 安全且完善
- 操作复杂
- DB2(IBM 公司产品)
- 面向所有主流平台
- 大型、安全、完善
- MySQL(被甲骨文公司收购)
- 免费、开源和体积小
2.非关系数据库
- 非关系数据库也被称为 NoSQL(Not Only SQL),存储数据不以关系模型为依据,不需要固定的表格式
- 非关系型数据库作为关系型数据库的一个补充,在日益快速发展的网站时代,发挥着高效率与高性能
- 非关系型数据库的优点:
- 满足数据库高并发读写的需求
- 能对海量数据高效率存储与访问
- 满足数据库高扩展性与高可用性的需求
四、关系数据库的基本概念
1.关系数据库的基本结构
- 关系模型的数据结构使用简单易懂的二维数据表,即反映事物及其联系的数据描述是以平面表格形式体现的
- 在每个二维表中,每一行称之为一条记录,用以描述一个对象的信息;每一列称之为一个字段,用以描述对象的一个属性
- 数据表与数据库之间存在相应的关联,这些关联用来查询相关的数据
- 数据表通常是一个由行和列组成的二维表,每一个数据表分别说明数据库中某一特定方面或部分的对象及属性
- 数据表中的行通常讲座记录或元组,它代表众多具有相同属性的对象中的一个
- 数据表中的列通常叫做字段或属性,它代表相应数据库中存储对象的共有的属性。
- 实体:也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”,如银行客户、银行账户等
- 属性:实体所具有的某一特性,一个实体可以有多个属性;如银行客户实体集中的每个实体均具有姓名、住址、电话等属性
- 联系:实体集之间的对应关系称为联系,也称为关系;如银行客户和银行账户之间存在”储蓄“的关系
- 所有实体及实体之间联系的集合构成一个关系数据库
2.主键
- 数据表中的每行记录都必须是唯一的,而不允许出现完全相同的记录,通过定义主键(主关键字,Promary Key)可以保证记录(实体)的唯一性
- 键,即关键字,它是关系模型中一个非常重要的元素
- 主键唯一标识表中的行数据,一个主键值对应一行数据,主键由一个或多个字段组成,其值具有唯一性,不允许取空值(NULL),一个表只能有一个主键
- 如果一个属性集能唯一地标识表的一行而又不含有多余的属性,那么这个属性集称为候选键
- 表中可以有多个候选键,但是只能有一个候选键可以选做表的主键,所有其他候选键称为备用键
- 例如下图,“编号”、“姓名”、“性别”、“年龄”、“专业编号”都可以说是候选键,而可以定义“编号”为主键
编号 | 姓名 | 性别 | 年龄 | 专业编号 |
---|---|---|---|---|
1 | 徐一 | 男 | 21 | 1 |
2 | 徐二 | 男 | 22 | 3 |
3 | 徐三 | 男 | 18 | 3 |
4 | 徐四 | 女 | 18 | 5 |
3.外键
- 一个关系数据库通常包括多个表,通过外键(Foreign Key)可以使这些表关联起来
- 外键的功能是实现同一事物在不同表中的标志一致性
专业编号 | 专业 |
---|---|
1 | 云计算运维 |
3 | 大数据开发 |
5 | 人工智能 |
- 主键的表称之为“主表”,外键的表称之为“从表”
- 主表和从表总是成对出现的,相互之间以“外键”形成关联
- 在单独操作时,外键功能由两种方法实现
- 阻止执行
-
从表插入新行,其外键值不是主表的主键值便阻止插入;
-
从表修改外键值,新值不是主表的主键值便阻止修改;
-
主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行);
-
主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行)。
-
-
级联执行
-
主表删除行,连带从表的相关行一起删除;
-
主表修改主键值,连带从表相关行的外键值一起修改。两种方法提供给用户选择。无论选取哪种方法,从表里都不会有多余行。从另一个角度理解,用拒绝同一事物在从表中的标志与主表不一致来实现与主表中的标志一致。
-
两种实现方法,通过下面方式选择:
-
界面:设级联更新、级联删除两个选择方框,选取则级联执行、不选取则阻止执行;
-
命令:设E)kSCM)E、RESTRICT两个可选项,CASCADE为级联执行、RESTRICT为阻止执行。
-
- 阻止执行
4.数据完整性规则
为了维护数据库中的数据与现实世界的一致性,关系数据库的数据与更新操作必须遵循下列四类完整性规则:
- 实体完整性规则
- 实体完整性规则要求关系中的记录在主键的属性上不能有空值,如果出现空值,那么主键值就起不到唯一标识元组的作用
- 域完整性规则
- 域完整性也称列完整性,指定一个数据集对某一个列是否有效或确定是否允许空值
- 若在主键的表中,定义“性别”字段只能取值为“男”或“女”,那么该列就不会输入一些其他无效的值了
- 引用完整性规则
- 如果两个表之间相互关联,那么引用完整性规则要求不允许引用不存在的元组
- 主表的主键中所不存在的字段在从表的外键中是不被允许创建的。参考外键。
- 用户定义的完整性规则
- 用户定义的完整性规则是针对某一具体数据的约束条件,由应用环境决定
- 它反应了某一具体应用所涉及的数据必须满足的语义要求
- 系统提供定义和检验这类完整性的机制,以便用统一的系统方法进行处理,不再由应用程序来承担这项工作
总结
数据库具有以下特点:
- 可以结构化存储大量的数据信息,方便用户进行有效的检索和访问
- 可以有效地保持数据信息的一致性、完整性,降低数据冗余
- 可以满足应用的共享和安全方面得要求