关系型数据库基础概念:MySQL系列之开篇
一、基础概念
数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的、可以鉴别的信息。
1、数据库(Database,DB)是指长期储存在计算机中的有组织的、可共享的数据集合。数据要按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性,系统易于扩展,并可以被多个用户分享。
数据的三个基本特点:
- 永久存储
- 有组织
- 可共享
2、数据库管理系统(DBMS)是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。 它实现数据库系统的各种功能。是数据库系统的核心。
- 数据定义功能
- 数据操作功能
- 数据库的运行管理功能
- 数据库的建立和维护功能
- 数据组织、存储和管理功能
- 数据的安全保证
- 数据的备份功能
3、数据库系统的构成有:
- 用户(终端用户)
- 程序(API)
- 应用程序:指以数据库为基础的应用程序
- 数据库管理系统
- 数据库管理员(DBA):负责数据库的规划、设计、协调、维护和管理等工作
- 数据库
4、数据库系统的架构:
- 单机架构
- 大型 主机/终端 架构
- 主从式架构 c/s :客户/服务器结构(Client/Server,C/S)中, “客户端”、“前台”或“表示层”主要完成与数据库使用者的交互任务; “服务器”、“后台”或“数据层”主要负责数据管理。
- 分布式架构
5、数据库系统的结构
- 模式:也称为概念模式或逻辑模式,是数据在逻辑上的视图,即概念视图
- 外模式:也称为子模式或用户模式 数据视图,即用户视图
- 内模式:也称为存储模式,是内部视图或存储视图
外模式/模式映像 保证了数据与程序的逻辑独立性
内模式/模式映像 保证了数据与程序的物理独立性
6、模型
模型(Model)是现实世界特征的模拟和抽象表达。
数据模型是对现实世界数据特征的抽象,描述的是数据的共性内容。
二、数据库管理技术的发展
- 萌芽阶段-----文件系统 使用磁盘文件来存储数据
- 初级阶段-----第一代数据库 出现了网状模型、层次模型的数据库
- 中级阶段-----第二代数据库 关系型数据库和结构化查询语言
- 高级阶段------新一代数据库 “关系-对象”型数据库
1、文件系统管理的缺点
- 编写应用程序不方便
- 数据冗余不可避免
- 应用程序依赖性
- 不支持对文件的并发访问
- 数据间联系弱
- 难以按用户视图表示数据
- 无安全控制功能
2、数据库管理系统的优点
- 相互关联的数据的集合
- 较少的数据冗余
- 程序与数据相互独立
- 保证数据的安全、可靠
- 最大限度地保证数据的正确性
- 数据可以并发使用并能同时保证一致性
三、关系型数据库(RDBMS)概念
关系数据库(Relation Database)是所有关系的集合,构成一个关系数据库。 以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数据库,其数据库操作建立在关系代数的基础上。
表(Table)是一个二维的数据结构,由表名、列、若干行数据组成。
- 关系 :关系就是二维表。并满足如下性质: 表中的行、列次序并不重要
- 行row:表中的每一行,又称为一条记录Record或元组Tuple。表中的数据按行存储。
- 列column:表中的每一列,称为属性Attribute,字段Field
- 分量(Component) :元组(行)中的一个属性值,称为分量。
- 键(Key):属性(或属性组)的值都能用来唯一标识该关系的元组,则称这些属性(或属性组)为该关系的键。
- 主键(Primary key):用于惟一确定一个记录的字段
- 外键(Foreign Key) 某个属性(或属性组)不是这个关系的主码或候选码,而是另一个关系的主键。
- 参照关系(Referencing Relation)和被参照关系(Referenced Relation):参照关系也称为从关系,被参照关系也称为主关系,它们是指以外键相关联的两个关系。
- 域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值。
数据类型(Data Type) 每个列都有相应的数据类型,它用于限制(或容许)该列中存储的数据。
1、事务transaction
多个操作被当作一个整体对待
事务遵循ACID特性:
- A原子性:不可分割性,所有的动作要全做,要不都不做
- C一致性:保持数据一致性
- I隔离性:事务没有完成无法看大最终数据
- dirty data 脏数据:事务没做完的数据
- D持久性:持久影响,永久性
2、E-R模型(实体-联系)
实体Entity:客观存在并可以相互区分的客观事物或抽象事件称为实体。在E-R图中用矩形框表示实体,把实体名写在框内。
属性:实体所具有的特征或性质
联系:联系是数据之间的关联集合,是客观存在的应用语义链。联系有实体内部的联系和实体之间的联系。实体之间的联系用菱形框表示。
联系的类型:
- 一对一联系(1:1)
- 一对多联系(1:n)
- 多对多联系(m:n)
3、关系型数据库的历史
- 1970年 IBM的E.F.Codd提出了关系模型,奠定了关系数据库的理论基础
- 20世纪70年代末关系方法理论研究和软件系统的研制取得了重大突破
- 1981年 出现了比较成熟的关系数据库管理技术,证实了关系数据库的优点:高级的非过程语言接口、较好的数据独立性。
- 20世纪80年代后 网状模型和层次模型与底层实现的结合紧密,关系模型具有坚实理论基础,成为主流数据模型。
4、关系数据模型的组成要素
数据模型的要素包括:
- 关系数据结构
- 关系操作集合
- 关系完整性约束
5、数据三要素
- 数据结构:包括两类,一类是与数据类型、内容、性质有关的对象,比如关系模型中的域、属性和关系等;另一类是与数据之间联系有关的对象,它从数据组织层表达数据记录与字段的结构。
- 数据的操作:
- 数据提取,在数据集合中提取感兴趣的内容。
- 数据更新:变更数据库中的数据。
- 数据的约束条件:是一组完整性规则的集合
- 实体(行)完整性 Entity integrity
- 域(列)完整性 Domain Integrity
- 参考完整性 Referential Integrity
6、约束constraint
- 主键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,即NOT NULL,一个表只能有一个。
- 惟一键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个。
- 外键约束:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据。
- 检查约束:字段值在一定范围内。
7、索引
将表中的一个或多个字段中的数据复制一份另存,并且此些需要按特定次序排序存储。
8、关系运算
- 选择:挑选出符合条件的行
- 投影:挑选出需要的字段
- 连接:表间字段的关联
9、数据模型
- 数据抽象:
- 物理层:数据存储格式,即RDBMS在磁盘上如何组织文件
- 逻辑层:DBA角度,描述存储什么数据,以及数据间存在什么样的关系
- 视图层:用户角度,描述DB中的部分数据
- 关系模型的分类:
- 基于对象的关系模型
- 半结构化的关系模型
四、RDBMS设计范式
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。
满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。
一般说来,数据库只需满足第三范式(3NF)即可。
- 1NF:无重复的列,每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。除去同类型的字段,就是无重复的列。
说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库
- 2NF:属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的每个行必须可以被唯一地区分。通常为表加上一个列,以存储各个实例的唯一标识PK,非PK的字段需要与整个PK有直接相关性。
- 3NF:属性不依赖于其它非主属性,满足第三范式必须先满足第二范式。第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,非PK的字段间不能有从属关系。
@^_^@ 2018.06.05 15:42
关系型数据库基础概念:MySQL系列之开篇的更多相关文章
- mysql之数据库基本概念(mysql学习笔记一)
数据库系统 数据库管理系统(DBMS)+数据库(DATABASE)(+数据库管理员) DBS=dbms+db 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...
- MYSQL数据库基础概念
数据库的发展史 1.萌芽阶段:文件系统 使用磁盘文件来存储数据2.初级阶段:第一代数据库 出现了网状模型.层次模型的数据库3.中级阶段:第二代数据库 关系型数据库和结构化查询语言4.高级阶段:新一代数 ...
- 渣渣小本求职复习之路每天一博客系列——数据库基础(MySQL)(5)
前情回顾:昨天学习了MySQL中索引的设计与使用,还了解了一些常见的SQL注入攻击的手段以及防范方法,一般来说,在面试的时候如果不是要求比较高,基本就够用了. 今天碰见一个拿了TP-LINK的offe ...
- Teradata 认证系列 - 3. 关系型数据库的概念
本课的学习目标 定义关系型数据库关联的术语 讨论主键的功能 讨论外键的功能 列出关系型数据库的优势 描述星型架构和第三范式数据模型的区别 什么是数据库?数据库是一个应用永久保存数据的集合表现在: 逻辑 ...
- 数据库基础之Mysql
数据库的简介 数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...
- 心动不如行动,基于Docker安装关系型数据库PostgrelSQL替代Mysql
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_171 最近"全栈数据库"的概念甚嚣尘上,主角就是PostgrelSQL,它最近这几年的技术发展不可谓不猛,覆盖 ...
- MySQL关系型数据库基础操作
MySQL基础 一.MySQL常用数据类型 1.常用数值类型(INT,DOUBLE,FLOAT) ① int 或者 integer 类型: 大小(字节):4字节: 范围: (有符号: -2147483 ...
- 【原创】数据库基础之Mysql(1)常用命令
1 创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 比如 create user 'test_user'@'%' identi ...
- 【原创】数据库基础之Mysql(2)主从库配置
一 安装 # wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm# yum -y insta ...
随机推荐
- java--Hibernate添加数据save
添加按钮跳转到add表单页面 <a href="${pageContext.request.contextPath }/department_saveUI.action"&g ...
- nodejs 解析 base64 文本
使用Buffer对象,在创建Buffer,指定源的编码方式 Buffer.from(data, 'base64').toString(); 当然如果是解析图片或者二进制数据的话,就不需要toStrin ...
- codeforces 29D Ant on the Tree (dfs,tree,最近公共祖先)
D. Ant on the Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- hdu-5653 Bomber Man wants to bomb an Array.(区间dp)
题目链接: Bomber Man wants to bomb an Array. Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65 ...
- 优秀开源项目之一:视频监控系统iSpy
iSpy是一个开源的视频监控软件,目前已经支持中文.自己用了一下,感觉还是很好用的.翻译了一下它的介绍. iSpy将PC变成一个完整的安全和监控系统 iSpy使用您的摄像头和麦克风来检测和记录声音或运 ...
- bzoj 4260: REBXOR Trie+乱搞
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=4260 题解: 啊啊啊. 被这种SB题坑了半天. 求出异或前缀和后 从n到1枚举\(r_1 ...
- 【转】 Pro Android学习笔记(五二):ActionBar(5):list模式
可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner. list的样式和 ...
- ansible的使用
ansible主要分为单条命令和组命令(即配置后缀为名yml的文件,使用ansible-playbook执行)的使用,以下分别对两者进行说明.如不会安装ansible,请参考我的文章 centos7安 ...
- CentOS 7 配置 http 服务器
一.http单域名访问 1.安装软件: yum -y install httpd 2.启动服务:systemctl start httpd 3.设置开机启动: systemctl enable ht ...
- Spring IOC 少
控制反转好处 IOC:控制反转也叫依赖注入,IOC利用java反射机制,AOP利用代理模式.所谓控制反转是指,本来被调用者的实例是有调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给sprin ...