MySQL的基本学习(二)——设计范式与导入导出

我们承接前面的内容来学习关于MySQL的新的东西

 

 

 


设计范式:

数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。

范式最终的设定,还是要根据实际开发去考虑,未必必须满足范式

三大设计范式

第一范式:

当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。

 

+—-+——+————-+
| id    | name|    address   |
+—-+——+————-+
|   1   | 小明  |   中国武汉   |
|   2  | 小王  |   中国成都   |
|   3  | 小李  | 中国黑龙江 |
+—-+——+————-+

例如这样,在address中,字段值还可以再拆成“中国”“武汉”,这样的就明显不满足第一范式

范式设计的越详细,对某些实际操作可能更好,但是,不一定都是好处

第二范式:

必须是满足第一范式的前提下

第二范式要求,除主键外的每一列都必须依赖(由A推出B,则B依赖于A)于主键。

如果要出现不完全依赖(部分依赖),只可能发生在联合主键的情况下

例如:

 老师       班级        开始        结束
张老师  0531       10:00       12:00
张老师  0425      14:00        16:00
王老师  0643       14:00       16:00

可知,上述可将 老师+班级 作为联合主键,但开始/结束时间其实由班级字段就可确定,即开始/结束时间部分依赖于联合主键

对于部分依赖,一般就拆表处理。

第三范式:

必须是满足第二范式的前提下

除开主键列的其他列之间不能有传递依赖关系。

属性不依赖于其它非主属性

示例:
+—————-+————-+——+—–+———+——-+
|        Field         |         Type     | Null | Key | Default | Extra |
+—————-+————-+——+—–+———+——-+
|        id               |      int(11)     |  NO  | PRI | NULL |            |
|        name         | varchar(20) | YES |         | NULL |            |
| school_name | varchar(20)  | YES |          | NULL |          |
| school_address | varchar(20) | YES |        | NULL |         |
+—————-+————-+——+—–+———+——-+
主键是id,但是school_address也可以由school_name决定,存在传递依赖

分解为两个表即可:

学号、姓名、学校名称

学校名称、学校地址

 


数据库的导入导出:

导出:

在命令行(注意:没有进入mysql)使用命令:

mysqldump -u用户名 -p密码 数据库名 > 导出文件(.sql)

即可导出,有几个参考的参数:

-h:表示host地址
-d:表示不导出数据,只导出结构

导入:

第一中方法:

进入mysql数据库中,先用use 选择一个库

用如下命令:

source sql文件的位置

例如:

 source C:\Users\lenovo\Desktop\notenow.sql;

即可导入

 

第二种方法:

将导出的sql文件复制到本地数据库的安装目录的data文件夹下

在cmd窗口中,切换到MYSQL数据库的安装路径,然后进入数据库

创建一个数据库

然后用如下命令导入

mysql -uroot -pminstone 数据库 < .sql文件

 


 

 

 

 

 

商业转载 请联系作者获得授权,非商业转载 请标明出处,谢谢

 

 

 

 

 

发表评论