天天看点

数据库备份、权限管理、数据库设计

一、数据库备份

1、为什么要备份

①保证重要的数据不丢失

②数据转移

2、数据库备份的方式

①直接拷贝物理文件data

②在可视化工具中手动导出

③使用命令行导出:mysqldump -h 主机 -u 用户名 -p 密码 数据库 > D:\a.sql

导出:mysqldump -u用户名 -p密码 -A --master-data=2 --single-transaction>/tmp/masterdb.sql
导入:mysql -u用户名 -p密码 </tmp/masterdb.sql      

二、权限管理

①创建普通用户,可以远程连接:create user 'test'@'%' identified by '123456';

②授权所有库,只能查询操作:grant select on *.* to test@'%'identified by '123456';

这是授予所有权限:grant all privileges on *.* to test@'%'identified by '123456';

③刷新权限:flush privileges;

④查询用户:select user,host from mysql.user;

数据库备份、权限管理、数据库设计

三、数据库设计

1、为什么要设计

当数据库比较复杂的时候,就需要设计数据库

糟糕的数据库设计:数据冗余、浪费空间

良好的数据库设计:节省内存空间、保证数据库完整性、方便开发

2、软件开发中,关于数据库设计

分析需求,分析业务和需要处理数据库的需求

概要设计:设计关系图

3、设计数据库的步骤

①收集信息,分析需求

  用户表:用户登录注册,用户的个人信息,写博客,创建分类

  分类表:文章分类,谁创建的

  文章表:文章的信息

  评论表:文章的评论

  友链表:友链信息

  自定义表:系统信息,某个关键的字或者一些主字段

②标识实体(把需求落到每个字段)

③标识实体之间的关系

4、三大范式

为什么需要数据规范化:信息重复、更新异常、插入异常(无法正常显示信息)、删除异常(丢失有效信息)

①第一范式

原子性:保证每一列不可分

②第二范式

前提:满足第一范式

每张表只描述一件事情

③第三范式

前提:满足第一范式、第二范式

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关

5、规范性和性能问题

关联查询的表不得超过三张表:

①考虑商业化的需求和目标(成本、用户体验),数据库的性能更加重要

②在规范性能问题的时候,需要适当的考虑一下规范性

③故意给某些表增加一些冗余的字段(从多表查询中变为单表查询)