一、基础概念

数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的、可以鉴别的信息。

1、数据库(Database,DB)是指长期储存在计算机中的有组织的、可共享的数据集合。数据要按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性,系统易于扩展,并可以被多个用户分享。

数据的三个基本特点:

  1. 永久存储
  2. 有组织
  3. 可共享

2、数据库管理系统(DBMS)是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。 它实现数据库系统的各种功能。是数据库系统的核心。

  1. 数据定义功能
  2. 数据操作功能
  3. 数据库的运行管理功能
  4. 数据库的建立和维护功能
  5. 数据组织、存储和管理功能
  6. 数据的安全保证
  7. 数据的备份功能

3、数据库系统的构成有

  • 用户(终端用户)
  • 程序(API)
  • 应用程序:指以数据库为基础的应用程序
  • 数据库管理系统
  • 数据库管理员(DBA):负责数据库的规划、设计、协调、维护和管理等工作
  • 数据库

4、数据库系统的架构:

  1. 单机架构
  2. 大型 主机/终端 架构
  3. 主从式架构 c/s :客户/服务器结构(Client/Server,C/S)中, “客户端”、“前台”或“表示层”主要完成与数据库使用者的交互任务; “服务器”、“后台”或“数据层”主要负责数据管理。
  4. 分布式架构

5、数据库系统的结构

  • 模式:也称为概念模式或逻辑模式,是数据在逻辑上的视图,即概念视图
  • 外模式:也称为子模式或用户模式 数据视图,即用户视图
  • 内模式:也称为存储模式,是内部视图或存储视图

外模式/模式映像 保证了数据与程序的逻辑独立性

内模式/模式映像 保证了数据与程序的物理独立性

6、模型

​ 模型(Model)是现实世界特征的模拟和抽象表达。

​ 数据模型是对现实世界数据特征的抽象,描述的是数据的共性内容。

二、数据库管理技术的发展

  • 萌芽阶段-----文件系统 使用磁盘文件来存储数据
  • 初级阶段-----第一代数据库 出现了网状模型、层次模型的数据库
  • 中级阶段-----第二代数据库 关系型数据库和结构化查询语言
  • 高级阶段------新一代数据库 “关系-对象”型数据库

1、文件系统管理的缺点

  1. 编写应用程序不方便
  2. 数据冗余不可避免
  3. 应用程序依赖性
  4. 不支持对文件的并发访问
  5. 数据间联系弱
  6. 难以按用户视图表示数据
  7. 无安全控制功能

2、数据库管理系统的优点

  1. 相互关联的数据的集合
  2. 较少的数据冗余
  3. 程序与数据相互独立
  4. 保证数据的安全、可靠
  5. 最大限度地保证数据的正确性
  6. 数据可以并发使用并能同时保证一致性

三、关系型数据库(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、关系数据模型的组成要素

数据模型的要素包括:

  1. 关系数据结构
  2. 关系操作集合
  3. 关系完整性约束

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系列之开篇的更多相关文章

  1. mysql之数据库基本概念(mysql学习笔记一)

    数据库系统   数据库管理系统(DBMS)+数据库(DATABASE)(+数据库管理员) DBS=dbms+db 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...

  2. MYSQL数据库基础概念

    数据库的发展史 1.萌芽阶段:文件系统 使用磁盘文件来存储数据2.初级阶段:第一代数据库 出现了网状模型.层次模型的数据库3.中级阶段:第二代数据库 关系型数据库和结构化查询语言4.高级阶段:新一代数 ...

  3. 渣渣小本求职复习之路每天一博客系列——数据库基础(MySQL)(5)

    前情回顾:昨天学习了MySQL中索引的设计与使用,还了解了一些常见的SQL注入攻击的手段以及防范方法,一般来说,在面试的时候如果不是要求比较高,基本就够用了. 今天碰见一个拿了TP-LINK的offe ...

  4. Teradata 认证系列 - 3. 关系型数据库的概念

    本课的学习目标 定义关系型数据库关联的术语 讨论主键的功能 讨论外键的功能 列出关系型数据库的优势 描述星型架构和第三范式数据模型的区别 什么是数据库?数据库是一个应用永久保存数据的集合表现在: 逻辑 ...

  5. 数据库基础之Mysql

    数据库的简介 数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...

  6. 心动不如行动,基于Docker安装关系型数据库PostgrelSQL替代Mysql

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_171 最近"全栈数据库"的概念甚嚣尘上,主角就是PostgrelSQL,它最近这几年的技术发展不可谓不猛,覆盖 ...

  7. MySQL关系型数据库基础操作

    MySQL基础 一.MySQL常用数据类型 1.常用数值类型(INT,DOUBLE,FLOAT) ① int 或者 integer 类型: 大小(字节):4字节: 范围: (有符号: -2147483 ...

  8. 【原创】数据库基础之Mysql(1)常用命令

    1 创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 比如 create user 'test_user'@'%' identi ...

  9. 【原创】数据库基础之Mysql(2)主从库配置

    一 安装 # wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm# yum -y insta ...

随机推荐

  1. django--mysql配置

    配置mysql的过程中出现了许多错误,通过以下配置,解决问题: python3不能直接调用MySQLdb,所以需要安装pymysql,并在jango项目文件__init__.py中加入: import ...

  2. PS 滤镜——(扭曲)球面化 Spherize

    %%%% Spherize clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorit ...

  3. HDU5768Lucky7(中国剩余定理+容斥定理)(区间个数统计)

    When ?? was born, seven crows flew in and stopped beside him. In its childhood, ?? had been unfortun ...

  4. bzoj 1069: [SCOI2007]最大土地面积 凸包+旋转卡壳

    题目大意: 二维平面有N个点,选择其中的任意四个点使这四个点围成的多边形面积最大 题解: 很容易发现这四个点一定在凸包上 所以我们枚举一条边再旋转卡壳确定另外的两个点即可 旋(xuan2)转(zhua ...

  5. Tensorflow 数据导入

    导入数据 借助 tf.data API,您可以根据简单的可重用片段构建复杂的输入管道.例如,图片模型的管道可能会汇聚分布式文件系统中的文件中的数据.对每个图片应用随机扰动,并将随机选择的图片合并成用于 ...

  6. bzoj 4823 & 洛谷 P3756 老C的方块 —— 最小割

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4823 https://www.luogu.org/problemnew/show/P3756 ...

  7. linux shell查询

    查看当前版本可用的shell cat /etc/shells 查看当前使用的shell echo $0 查看当前用户默认使用的shell echo $SHELL

  8. JUST第二界算法设计大赛题解

    1.问题描述: 悠悠假期同叔叔一起去书店,他选中了六本书,每本书的单价(单位:元)分别为:3.1,1.7,2,5.3,0.9 和7.2.不巧的是,叔叔只带了十几块钱,为了让悠悠高兴,叔叔同意买书,但提 ...

  9. 机器学习:scikit-learn中算法的调用、封装并使用自己所写的算法

    一.scikit-learn库中的kNN算法 scikit-learn库中,所有机器学习算法都是以面向对象的形式进行包装的: 所有scikit-learn库中机器学习算法的使用过程:调用.实例化.fi ...

  10. JVM插庄之二:Java agent基础原理

    javaagent 简介 Javaagent 只要作用在class被加载之前对其加载,插入我们需要添加的字节码. Javaagent面向的是我们java程序员,而且agent都是用java编写的,不需 ...