三十 MySQL (设计)

三十章 MySQL – 设计

一.了解设计数据库的步骤

数据库设计的作用:

随着项目的规模变大 设计变得越来越重要

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

糟糕的设计会产生冗余 存储空间浪费,内存空间浪费 数据更新和插入的异常

数据库设计的步骤(生命周期)

1.需求分析:分析客户的业务和数据处理需求 明确客户意图

2.概要设计阶段:设计数据库的E-R模型图 保证需求完整

3.详细设计阶段: 应用三大范式进行审核 完善

4.代码编写:构建真实的数据库

5.软件测试:测试数据库是否能满足真实的场景需求

6.安装部署: 试运行阶段

7.生产环境使用

需求:设计一个酒店管理系统 能够事项旅客入住手续和客房管理

A需求分析:


    1.收集信息 与有关人员进行沟通 座谈详细了解相应的需求
    
    2.标识实体 存储各类信息
    旅客信息 ,客房信息
    
    3.标识实体属性
    旅客:
    编号 姓名 性别 身份证号 手机号 入住时间 退房时间 押金 消费总金额 入住客房
    客房:
    编号 客房号  客房类型  客房床位数  客房入住人数  客房状态 
    
    4.标注实体关系:
    旅客入住客房 

二.掌握如何绘制数据库的E-R图

B概要设计:E-R图

实体间关系的分类:

一对一     身份证号唯一属于一个公民(这种关系完全可以放在一张表中)

一对多     客房和客人

多对一     客人和客房

多对多     学生和课程属于多对多 但是往往  商品和订单 (拆分为两个一对多)

C详细设计 先进行规范化 然后再进行模型图绘制

三 掌握如何绘制数据库模型图

二维模型图 Visio 或者 powerDesigner

四 掌握使用数据库设计的三大范式

1.确保每列的原子性(不可分割) 即一张表中的每个字段存储的信息足够单一

2.一张表只能表示一件事 如果在一张表中描述过多的事情 则会导致数据的冗余和不完整

3.表的字段之间不允许出现传递依赖

A-> B -> C A 和 C就是传递依赖

可以将传递依赖的信息抽取到多张或者一张数据字典表

数据字典表:

类型:大床房 双人间 豪华双人间…

客房状态:已预定 已入住 空闲

酒店设施:是否有早餐 有无空调 有无窗户 有无停车位 有无wifi

规范化和实际性能/复杂度等方面的关系

为降低查询的复杂度和提升性能:

1.允许一定的冗余列

2.允许一些特别的计算列

根据实际情况和需求决定规范和性能的取舍

五 掌握 用户管理和用户授权

--%表示任意机器  localhost 表示 本机

--创建用户:
CREATE  USER xiaoming@local host INENTIFIED BY `ming123`;


-- 给用户授权(可以只是授权 也可以授权的同时创建对应的用户)
GRANT 授权名 ON  数据库.数据表名 TO 用户名@本机地址


-- 授权时创建用户(ALL表示所有权限)
GRANT ALL ON 数据库.* TO xiaoming@本机地址 INENTIFIED BY 'ming123'


-- 删除用户 可以同时删除多个用户 以,隔开
DROP USER xiaoming@本机地址



-- 修改用户密码

--1.找到mysql的User表 然后修改对应的用户密码(root用户才能修改 修改自己或普通用户)
use mysql;
update user set password = password = ('密码') where user = xx and host = xxx;


-- 2.普通用户和root都可以使用
SET PASSWORD = PASSWORD('密码');
--root才能改其他的
SET PASSWORD FOR 用户名@主机地址 = PASSWORD ='密码';


--3.利用DOS程序 mysqladmin
 mysqladmin -u用户名 - p旧密码 password '新密码';
 
-- 4 当丢失了密码如何找回 仅限root
在mysql的配置文件 my.ini 添加一行 ship-grant-table
这样的话登录root 不需要输入密码 进去之后按上方的规则可以修改密码    记得用完之后再将选项删除

猜你喜欢

转载自blog.csdn.net/L097_/article/details/90741577