IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySql-权限、备份、规范设计、三大范式 -> 正文阅读

[大数据]MySql-权限、备份、规范设计、三大范式

权限管理

-- 创建新用户
create user sinanshao identified by '123456';

-- 修改密码
alter user 'sinanshao'@'%' identified by '111111';

-- 改用户名
rename sinanshao to sinanshao2;

-- 删除用户
drop user sinanshao;

-- 用户授权,给该用户所有的权限
-- all privileges除了授权权限的所有权限
grant all privileges on *.* to sinanshao;

show grants for sinanshao;			-- 查看权限
show grants for root@localhost;

-- 删除权限
revoke all privileges on *.* from sinanshao;

MySql备份

为什么要备份

  • 保证重要数据不丢失
  • 方便数据转移

MySql备份方式

  • 直接拷贝物理文件
  • 使用可视化工具
  • 使用命令行(不是登录mysql)
mysqldump -hlocalhost -uroot -p123.com learning student > d:\a.sql			//dump一张表
mysqldump -hlocalhost -uroot -p123.com learning student student2 > d:\b.sql	//dump多张表
mysqldump -hlocalhost -uroot -p123.com learning > d:\b.sql					//dump数据库

source d:\a.sql								//登录mysql时导入
mysql -uroot -p123.com learning < b.sql		//不登陆mysql时导入

规范数据库设计

为什么需要数据库设计

糟糕的数据库设计 :

  • 数据冗余,存储空间浪费
  • 数据更新和插入的异常
  • 程序性能差

良好的数据库设计 :

  • 节省数据的存储空间
  • 能够保证数据的完整性
  • 方便进行数据库应用系统的开发

设计数据库步骤

  • 收集信息,与该系统有关人员进行交流 , 座谈 , 充分了解用户需求 , 理解数据库需要完成的任务.

  • 标识实体,标识数据库要管理的关键对象或实体,实体一般是名词

  • 标识每个实体需要存储的详细信息[Attribute]

  • 标识实体之间的关系[Relationship]

个人博客数据库的设计测试

  1. 收集信息,分析需求
    • 用户表
    • 文章分类表
    • 文章表
    • 评论表
    • 友情链接表
    • 自定义表(一些不能单独成表的信息)key :value
-- 用户表
create table user(
    id int(10) primary key comment '账户',
    name varchar(50) comment '昵称',
    password varchar(50) comment '密码',
    sex varchar(2) comment '性别',
    age int(3) comment'年龄',
    sign varchar(200) comment '个性签名',
    head_portrait varchar(100) comment '头像的链接'
);

-- 文章分类表
create table category(
    id int(10) primary key comment '分类编号',
    name varchar(10) comment '类型名称'
);

-- 文章表
create table article(
    id int(10) primary key comment '文章编号',
    name varchar(20) comment '文章题目',
    category_id int(10) comment '文章所属类别id',
    author_id int(10) comment '文章创建者id',
    content text comment '文章内容',
    create_time datetime comment '创建时间',
    update_time datetime comment '最后一次修改时间'
);

-- 评论表
create table comment(
    id int(20) comment '评论的id',
    blog_id int(10) comment '所属文章的id',
    created_by_user_id int(10) comment '评论发布用户的id',
    content varchar(200) comment '评论内容',
    father_id int(10) comment '父评论', -- 就是盖楼了,需要自连接来查询
    create_time datetime comment '创建时间'
);

-- 链接表
create table link(
    id int(10) comment '链接编号',
    string_link varchar(200) comment '链接地址'
);
  1. 标识实体(落实到每个字段,上面已经实现)
  2. 标识实体之间的关系
    • user --> blog
    • blog --> category
    • user --> user

数据库的三大范式

为什么需要数据规范化?

不合规范的表设计会导致的问题:

  • 信息重复
  • 更新异常
  • 插入异常
    • 无法正确表示信息
  • 删除异常
    • 丢失有效信息

第一范式(1NF)

原子性(非事务中的原子性):保证每一列不可再分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0xXQeZII-1633436192268)(C:\Users\86159\AppData\Roaming\Typora\typora-user-images\image-20211005102916814.png)]

在此表中,家庭信息和学校信息这两列可继续再分,不满足原子性,调整如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WtNF8XoP-1633436192270)(C:\Users\86159\AppData\Roaming\Typora\typora-user-images\image-20211005103447883.png)]

第二范式(2NF)

前提:满足第一范式

完全依赖(非部分依赖):每一张表只描述一件事情,也就是表中的每一列都要与主键相关(非联合主键的话一眼就可以看出来),而不能只与主键(针对联合主键)的某一部分相关

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nl4lsEon-1633436192271)(C:\Users\86159\AppData\Roaming\Typora\typora-user-images\image-20211005105810545.png)]

该表订单号和产品号组成联合主键,而订单时间和订单金额只与订单号相关,而与产品号无关,不满足完全依赖,调整如下,拆分为两张表:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HkFYq4oW-1633436192273)(C:\Users\86159\AppData\Roaming\Typora\typora-user-images\image-20211005110032670.png)]

第三范式(3NF)

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

直接相关(非间接相关):表中的每一列数据都与主键直接相关,而不能间接相关

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vK3Tiql2-1633436192274)(C:\Users\86159\AppData\Roaming\Typora\typora-user-images\image-20211005110453557.png)]

该表的班主任的性别和年龄与学生没有直接相关,调整如下,拆分为两张表:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oKn8FZhd-1633436192275)(C:\Users\86159\AppData\Roaming\Typora\typora-user-images\image-20211005114520477.png)]

规范性和性能问题

关联查询的表不得超过三张(阿里规范)

  • 为满足某种商业目标 , 数据库性能比规范化数据库更重要

  • 在数据规范化的同时 , 要综合考虑数据库的性能

  • 故意给某些表添加冗余字段。(从多表查询变为单表查询)

  • 故意增加一些计算列方便查询

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:17:51  更:2021-10-06 12:19:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:46:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码