关系型数据库学习
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 关系型数据库学习
- 一 数据库介绍
- 1 相关定义
- 数据(data)
- 数据库(database、DB)
- 数据库管理系统(DataBase Management System , DBMS)
- 2 数据模型-数据库原理及应用
- 概念层数据模型(概念模型)
- 组织层数据模型(组织模型)
- 3 概念模型
- 基本概念
- 实体(Entity)
- 实体集(entity collection)
- 属性(attribute)
- 属性的域(domain)
- 码或关键字(key)
- 4 实体间的联系
- 5 组织模型
- 层次模型
- 网状模型
- 关系模型
- 6 数据库分类
- 按传统模型分类
- 按应用分类
- 7 关系型数据库与非关系型数据库比较
- 二 关系型数据库设计
- 1 E-R图设计原则
- 2 关系型数据库设计原则
- 3 数据的规范化
- (1)范式
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- 反规范化
- (2)函数依赖
- 三 关系型数据库事务
- 1 事务及特性
- 2 事务并发带来的问题
- 3 事务的隔离级别
- 四 MySQL简介及安装
- 1 MySQL简介
- 2 目录
- 3 MySQL安装
- 五 SQL基础操作
- 数据查询语言-DQL
- 数据操作语言-DML
- 事务处理语言-TPL
- 数据控制语言-DCL
- 数据定义语言-DDL
- 指针控制语言-CCL
一 数据库介绍
1 相关定义
数据(data)
描述事物的符号记录称为数据;
可以是数字、文字、图形图像等,数据有多种表现形式,都可以经过数字化后存入计算机。
数据库(database、DB)
数据库是指长期存储在计算机内、有组织、可共享的数据集合;
数据库的数据是按一定的数据模型组织、描述、存储;
数据库的数据具有较小的冗余度、较高的数据独立性和扩展性。
数据库管理系统(DataBase Management System , DBMS)
数据库管理系统是操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
一般我们说的MySQL、Oralce等数据库,指的是数据库管理系统(DBMS)。
2 数据模型-数据库原理及应用
数据模型实际上是模型化数据和信息的工具。根据模型应用的不同目的,可将模型分为两大类:
概念层数据模型(概念模型)
从数据的语义视角来抽取模型,是按用户的观点来对数据和信息进行建模,主要用于数据库设计。
概念模型主要使用实体-联系(Entity-Relationship)表示,也称E-R模型。
组织层数据模型(组织模型)
从数据的组织层次来描述数据,是按计算机的观点来对数据和信息建模,主要用于DBMS的实现。
3 概念模型
基本概念
概念层数据模型是指抽象现实系统中有应用价值的元素及其关联关系;
反映现实系统中有应用价值的信息结构;
不依赖于数据的组织层数据模型。
常用的概念层数据模型有:实体-联系(Entity-Relationship, E-R)模型、语义对象模型。
实体(Entity)
客观存在的、可以相互区别的事物,可以是具体的人、事、物,也可以是抽象的概念。
实体集(entity collection)
具有相同性质的多个实体所组成的集合。
属性(attribute)
实体所具有的特征,一个实体可以用若干属性来刻画。
属性的域(domain)
属性的取值范围。
码或关键字(key)
在实体属性中,能够区别实体集中不同实体的某个属性或某几个属性的组合。
图1 使用E-R图表示员工实体及其属性
4 实体间的联系
实体与实体间的关系,主要有以下三种。
实体、属性与实体之间的关系结合起来就是一张完整的E-R图。用E-R图表示的概念模型独立于具体的DBMS所支持的数据模型,是数据模型的共用基础。
5 组织模型
层次模型
用树形结构表示实体和实体之间的关系
典型的层次结构模型数据库有:IMB公司的IMS
网状模型
用图形结构标识实体与实体之间的联系的数据模型称为网状数据模型,典型网状模型数据库有:CODASYL系统。
关系模型
把数据看成是二维表中的元素,而这个二维表就是关系。
用关系(表格数据)表示实体和实体之间联系的模型称为关系数据模型,典型关系数据模型有:MySQL、Oracle
6 数据库分类
按传统模型分类
- 层次式数据库
- 网络式数据库
- 关系型数据库
按应用分类
互联网中,最常用的数据库模型是两种,即关系型数据库和非关系型数据库。
- 关系型数据库产品主要有(Oracle、MySQL、DB2、Access、SQLlite等)
- 非关系型数据库(Redis、Mongdb、Hbase等)
- 实时/时序数据库(RTDB-Real Time DataBase):适用于工业监控领域,包括数据采集,海量监测数据的压缩、存储及检索,基于监测数据的反馈及控制等功能。
7 关系型数据库与非关系型数据库比较
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织。
- 优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。 - 缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,对传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。 - 优点:
1、格式灵活:存储数据的格式可以是key-value形式、文档形式、图片形式等,使用灵活,应用场景广泛;
2、使用方便:可以使用硬盘或者随即存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性。 - 缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。
二 关系型数据库设计
1 E-R图设计原则
- E-R图的设计质量决定了关系数据库的设计质量。而E-R图的设计又依赖于软件前期的需求分析与功能设计。
- 数据库设计人员通常采用“一事一地”的原则从功能描述中抽象出E-R图。
- 实体不是一个具体的对象,而是某一类别所有事物的统称;
- 属性通常用于表示实体的某种特性,也可以表示实体关系的特征;
- 属性应该存在且只存在于某一地方(实体或关系中);
- 实体是一个单独的 个体,不能存在于另一个实体中成为另一个实体的属性;
- 同一个实体在一个E-R图中仅能出现一次。
2 关系型数据库设计原则
- 根据E-R图来设计数据库的逻辑表结构
- 为E-R图中的每一个实体建一张表
- 实体的属性作为该表的字段
- 为每张表定义一个主键(如果需要,可以向表中添加一个没有实际意义的字段作为该表的主键,比如Id)
- 增加外键标识E-R图中的一对多关系
- 建立新表表示E-R图中的多对多关系
- 为表中的字段选择合适的数据类型
- 根据需要定义约束条件
- 评价关系的质量,进行表的改进
3 数据的规范化
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
(1)范式
从关系模型满足的确定约束条件称为范式。根据满足约束条件的级别不同,范式由低到高分为1NF、2NF、3NF、BCNF、4NF等。
第一范式(1NF)
基础
第二范式(2NF)
基础
第三范式(3NF)
基础
反规范化
基础
(2)函数依赖
设X、Y是关系R的两个属性集合,当任何时刻R中的任意两个元素中的X属性值相同时,则他们的Y属性值也相同,则称X函数决定Y,或Y函数依赖X。
三 关系型数据库事务
1 事务及特性
的基础
2 事务并发带来的问题
的基础
3 事务的隔离级别
的基础
四 MySQL简介及安装
1 MySQL简介
的基础
2 目录
的基础
3 MySQL安装
的基础
五 SQL基础操作
数据查询语言-DQL
的基础
数据操作语言-DML
的基础
事务处理语言-TPL
的基础
数据控制语言-DCL
的基础
数据定义语言-DDL
的基础
指针控制语言-CCL
的基础