数据库的发展史

1、萌芽阶段:文件系统

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

数据库管理系统的优点

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

文件管理系统的缺点

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

数据库系统的架构

1、单机架构
2、大型主机/终端架构
3、主从式架构(C/S)
4、分布式架构

关系型数据库

关系:二维码关系,满足的性质是表中的行、列次序并不重要

行row:表中的每一行,又称为一条记录

列column:表中的每一列,称为属性,字段

主键(Primary key):用于唯一确定一个记录的字段

外键(Foreign Key): 某个属性(或属性组)不是这个关系的主码或候选码,而是另一个关系的主键。

参照关系(Referencing Relation)和被参照关系(Referenced Relation):参照关系也称为从关系,被参照关系也称为主关系,它们是指以外键相关联的两个关系。

域domain:属性的取值范围,如,性别只能是‘男’、‘女’两个值

关系数据库

1、RDBMS:

MySQL:MySQL, MariaDB, Percona Server

2、事物transaction:多个操作被当做一个整体对待

ACID:

A:原子性

C:一致性

I :隔离性

D:持久性

实体-联系模型E-R

1、实体Entity
   •客观存在并可以相互区分的客观事物或抽象事件称为实体。
  •在E-R图中用矩形框表示实体,把实体名写在框内
2、属性
  •实体所具有的特征或性质
3、联系
  联系是数据之间的关联集合,是客观存在的应用语义链
  •实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之间有一种关联关系
  •实体之间的联系:指不同实体之间联系。例学生选课实体和学生基本信息实体之间
  •实体之间的联系用菱形框表示

联系类型

联系的类型
一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)

数据三要素

数据结构:包括两类
  一类是与数据类型、内容、性质有关的对象,比如关系模型中的域、属性和关系等;
  另一类是与数据之间联系有关的对象,它从数据组织层表达数据记录与字段的结构
数据的操作
  数据提取:在数据集合中提取感兴趣的内容。SELECT
  数据更新:变更数据库中的数据。INSERT、DELETE、UPDATE
数据的约束条件 :是一组完整性规则的集合
  实体(行)完整性 Entity integrity
  域(列)完整性 Domain Integrity
  参考完整性 Referential Integrity

简易数据规划流程

1、第一阶段:收集数据,得到字段
  •收集必要且完整的数据项
  •转换成数据表的字段
2、第二阶段:把字段分类,归入表,建立表的关联
  •关联:表和表间的关系
  •分割数据表并建立关联的优点
  •节省空间
  •减少输入错误
  •方便数据修改
3、第三阶段
  •规范化数据库

数据库的正规化分析

RDMBS设计范式基础概念
  设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同范式,各种范式呈递次规范,越高的范式数据库冗余越小

范式

1、1NF:无重复的列,每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中某个属性不能有多个值或者不能有重复的属性。除去同类型的字段,就是无重复的列。

说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库

2、2NF:属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的没个行必须可以被唯一地区分。

3、3NF:属性不依赖于其他非主属性,满足第三范式必须先满足第二范式。第三范式要求一个数据库表中不包含已在其他表中已包含的非主关键字信息,非PK的字段间不能有从属关系。

SQL概念

SQL:结构化查询语言

数据存储协议:应用层协议,C/S

S:server,监听于套接字,接受并处理客户端的应用请求

C:Client客户端

约束

约束:constraint,表中的数据要遵守的限制
主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,即NOT NULL,一个表只能有一个
惟一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个
外键:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据
检查:字段值在一定范围内

基本概念

索引:将表中的一个或多个字段中的数据复制一份另存,并且此些需要按特定次序排序存储
关系运算
  选择:挑选出符合条件的行
  投影:挑选出需要的字段
  连接:表间字段的关联

数据模型

数据抽象
  物理层:数据存储格式,即RDBMS在磁盘上如何组织文件
  逻辑层:DBA角度,描述存储什么数据,以及数据间存在什么样的关系
  视图层:用户角度,描述DB中的部分数据
关系模型的分类
  关系模型
  基于对象的关系模型
  半结构化的关系模型:XML数据

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

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

MySQL和MariaDB

官方网址
  https://www.mysql.com/
  http://mariadb.org/
官方文档
  https://dev.mysql.com/doc/
  https://mariadb.com/kb/en/
版本演变
  MySQL:5.1 --> 5.5 --> 5.6 --> 5.7
  MariaDB:5.5 -->10.0--> 10.1 --> 10.2 --> 10.3

MYSQL的特性

插件式存储引擎:也称为“表类型”,存储管理器有多种实现版本,功能和特性可能均略有差别;用户可根据需要灵活选择,Mysql5.5.5开始innoDB引擎是MYSQL默认引擎
  MyISAM ==> Aria
  InnoDB ==> XtraDB
单进程,多线程
诸多扩展和新特性
提供了较多测试组件
开源

MYSQL数据库基础概念的更多相关文章

  1. MySQL数据库--基础简述

    MySQL数据库--基础简述 1.15.1 MySQL简介 Mysql是最流行的RDBMS(Relational Database Management System:关系数据库管理系统),特别是在W ...

  2. 26.MySQL数据库基础

    MySQL数据库基础 目录 MySQL数据库基础 数据库的概念 数据 表 数据库 数据库的管理系(DBMS) 数据库系统 访问数据库的流程 数据库系统发展史 当今主流数据库介绍 关系数据库 关系数据库 ...

  3. mysql 数据库基本概念

    mysql 数据库基本概念 一.数据库的集中控制优点1.降低存储数据的冗余度2.更高的数据一致性3.存储的数据可以共享4.可以建立数据库所遵循的标准5.便于数据维护完整性6.能够实现数据的安全性 二. ...

  4. mysql数据库基础的简单操作指南

    最近在学习mysql,本文是做的关于mysql学习的笔记,跟大家分享一下,希望对大家学习mysql知识有所助益.mysql现在几乎已经成了网站建设的主流数据库,很多php网站系统都采用了mysql数据 ...

  5. MySQL数据库基础

    MySQL数据库基础 本文的所有操作是基于CMD环境,MySQL通过在命令行中输入SQL语句对数据库进行操作.配置问题可参考<打通MySQL的操作权限>中的内容,该文算是针对前期的环境配置 ...

  6. Mysql数据库基础学习笔记

    Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...

  7. Mysql数据库基础操作

    Mysql数据库基础操作 在mysql数据库中开启使用tab键补全功能 1)修改主配置文件/etc/mysql/my.cnf(mysql和mariadb目录有些不同) vim /etc/mysql/m ...

  8. mysql数据库基础-2019-9-10(随堂笔记)

    mysql数据库基础 在cmd情况下启动mysql数据库:(配置path环境变量后可忽略) 运行mysql1. 进入mysql路径2. 执行:mysql -uroot -p,安装时的密码 1.数据库& ...

  9. php面试专题---15、MySQL数据库基础考察点

    php面试专题---15.MySQL数据库基础考察点 一.总结 一句话总结: 注意:只写精品 1.mysql定义int(3),那么我存1234就错了么? 不是:无影响:只会影响显示字符的个数:可以为整 ...

随机推荐

  1. 阿里云 ecs win2016 FileZilla Server

     Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务 一.安装 Filezilla Server 下载最新版本的 Filezilla Server ...

  2. sql根据一个表查询的数据作为条件查询另一个表

    代码格式如下: ) 要注意的是:in后面的查询语句必须是查询一个字段跟前面的表相对应的.比如要根据订单号orderID,OpenBills 这个表就需要查询到orderID这个字段,BillConsu ...

  3. Java基础加强-泛型

    /*泛型*/ (泛型是给编译器看的) 泛型是提供给 /*javac编译器使用的*/,可以限定集合中的输入类型,让编译器挡住源程序中的非法输入,编译器编译带类型带类型说明的集合时,会去掉 "类 ...

  4. MySQL的启动方式

    MySQL常用启动方式: windows 和linux 上都可以使用 mysql --help|grep my.cnf 过滤查看关于MySQL对应 配置文件my.cnf [root@bqh-118 b ...

  5. 【python+ddt】DDT模块的使用

    ddt模块包含了一个类的装饰器ddt和两个方法的装饰器: data:包含多个你想要传给测试用例的参数: file_data:会从json或yaml中加载数据: unpanck:通常data中包含的每一 ...

  6. gdb无法单步调试

    使用gdb调试单步程序时如果打印提示“single stepping until exit from function xxx,which has no line number information ...

  7. PaaS容器集群优化之路

    1. 性能优化面对的挑战 以下是整个PaaS平台的架构 其中主要包括这些子系统: 微服务治理框架:为应用提供自动注册.发现.治理.隔离.调用分析等一系列分布式/微服务治理能力,屏蔽分布式系统的复杂度. ...

  8. idou老师教你学Istio 20 : Istio全景监控与拓扑

    根据Istio官方报告,Observe(可观察性)为其重要特性.Istio提供非侵入式的自动监控,记录应用内所有的服务. 我们知道在Istio的架构中,Mixer是管理和收集遥测信息的组件.每一次当请 ...

  9. Centos杀死进程kill方法大全

    杀死进程最安全的方法是单纯使用kill命令. 首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令: # kill -pid 注释:标准的kill命令通常都能达到目的.终止有问题的进程,并 ...

  10. django考点

    django考点 1 列举Http请求中常见的请求方式2 谈谈你对HTTP协议的认识.1.1 长连接3 简述MVC模式和MVT模式4 简述Django请求生命周期5 简述什么是FBV和CBV6 谈一谈 ...