抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

数据库的基本知识

概念

数据库:database,是一种存储数据的仓库。

  • 数据库是根据数据结构组织,存储和管理数据的
  • 数据库能够长期、高效的管理和存储数据
  • 数据库的目的就是能够存储(写)和提供(读)数据

    数据库分类

概念

数据库分类:根据数据库的架构和数据组织原理进行分类。

  1. 早起根据数据库的组织数据的存储模型分类

    • 层次数据库:基于层次的数据结构(数据分层)
    • 网状数据库:基于网状的数据结构(数据网络)
    • 关系数据库:基于关系模型的数据结构(二维表)
  2. 现在较多根据实际数据管理模型分类(存储介质)

    • 关系型数据库:基于关系模型的数据结构(二维表)通常存储在磁盘
    • 非关系型数据库:没有具体模型的数据结构(键值对)通常存储在内存

关系型数据库

概念

关系型数据库:一种建立在关系模型上的数据库

  • 关系模型:
    • 关系数据结构(存储)
    • 关系操作集合(操作)
    • 关系完整约束(约束)
  • 关系型数据库存储在磁盘中(永久性存储)
  • 关系型数据库系统(DBS)模型有四层结构
    • 数据库管理系统(DBMS):管理系统运行
    • 数据库(DB):数据存储的管理者
    • 数据表(Table):数据关系管理者
    • 数据字段(Field):依赖于数据表、实际数据存储者
  • 关系型数据库产品
    • 大型:Oracle、DB2
    • 中性:MySQL、SqlServer
    • 小型:Sybase、Access

非关系型数据库

概念

非关系型数据库:NoSQL(Not only SQL),不仅仅是关系型数据库

  • 所以不是关系型数据库的统称
  • 数据存储模型不是二维表,而是键值对(KEY-VALUE)
  • 存储的位置通常是内存(效率高)
  • 不能永久性存储(需要定时存到关系型数据库中)
  • 常见的非关系型数据库产品
    • MongoDB
    • Redis
    • Memcached

对比

NoSQL通常与关系型数据库配合使用,他们彼此是一种互补关系。

  • NoSQL运行在内存、解决效率问题
    • I/O问题
    • 效率问题
  • MySQL运行在磁盘、解决稳定问题
    • 安全问题(永久存储)
    • 稳定

SQL基本介绍

概念

SQLStructured Query Language,结构化查询语言,是一种针对关系型数据库特殊标准化的编程语言。

  • SQL是一种编程语言
  • 能够实现用户数据库查询和程序设计
  • SQL根据操作不同,分为几类:
    • DQL:Data Query Language ,数据查询语言,用于查询和检索数据
    • DML:Data Manipulation Language,数据操作语言,用于数据的写操作(增删改)
    • DDL:Data Definition Language,数据定义语言,用于创建数据结构
    • DCL:Data Control Language,数据控制语言,用于用户权限管理
    • TPL:Transaction Process Language,事务处理语言,辅助DML进行事务操作(因此也归属于DML)
  1. SQL虽然是编程语言,但是目前数据库通常只用来进行数据管理(逻辑部分给其他编程语言)
  2. SQL虽然是针对关系型数据库的通用语言,但是不同的产品操作指令不完全通用

MySQL基本介绍

概念

MySQL:瑞典AB公司下的一款关系型数据库

  • MySQL当前属于甲骨文公司(AB->Sun->Oracle)
  • MySQL开源免费(部分存储引擎收费)
  • MySQL是一种C/S结构软件,因此需要MySQL的客户端来访问服务端(数据管理)
    • mysqld.exe:服务端
    • mysql.exe:客户端
  • MySQL使用SQL指令对数据库进行操作

访问原理

1
2
3
4
5
graph LR
A[MySQL客户端] -->B[寻找服务端 host寻找]
B --> C[寻找服务器 Port寻找]
C --> D[验证身份 username验证 password验证]
D --> E{服务器}

MySQL访问

MySQL访问:客户端连接上服务器,然后实现数据操作的过程

  • 客户端访问服务端
    • 利用Windows控制台访问(MySQL客户端)
    • 利用数据库管理工具(Navicat)
  • 客户端需要连接认证
    • -h:主机地址(本机localhost 、可以忽略)
    • -P:端口号(默认3306)
    • -u:用户名
    • -p:用户密码
  • 客户端连接上服务端就表示占用了一个资源,可以进行对应权限的操作
    • MySQL数据库连接资源有限:单个服务器最多16384个
    • 连接资源不够了其他访问就需要排队等待
    • 用完尽可能释放资源

评论