数据库基笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.数据库初始
1.需求分析
(1).优良的数据库设计
减少数据冗杂、避免数据维护异常、节约储存空间、高效访问
(2).设计流程
需求分析(数据--属性--两者各自特点)
逻辑设计(ER图逻辑建模)
物理设计(依据各数据库特点)
维护优化(新建、索引优化、大表拆分)
(3).为何需求分析与内容
都是什么数据、特点、数据周期
实体及其间的关系(1v1、1Vn、nVn)、实体包含的属性、怎样标识唯一个体注:永久与不永久储存、分表与分库储存、归档与清理
2.逻辑设计
(1).ER图
矩形:实体集
菱形:关系集
椭圆:属性
线段:图像间连接
(2).设计范式(第一、第二、第三、BC)
第一范式(1NF):表中所有字段都是单一属性,不可再分,也就是说都是二维表,如用户信息不可再分为姓名与电话
第二范式(2NF):数据库表中不存在非关键字短发对任一候选关键字段的部分函数依赖。(部分函数依赖存在于组合关键字中:多个属性组合起来确定唯一物品)如
商品名称与供应商为组合关键字,但供应商决定了其电话,商品决定了价格等,故而但关键字的一定符合2NF,有组合关键字则不一定
第三范式(3NF):在2NF基础上,数据表中不存在非关键字段对任意候选关键字段的传递函数依赖。如
商品名称——分类——分类描述,即分类描述对商品名称有传递函数依赖
BC范式:在3NF基础上,数据库表中不存在任何字段对任一候选关键字段的传递函数依赖,即复合关键字间也不可有函数依赖。
(3).操作异常:
由于实体间有依存关系
(插入异常--更新异常、删除异常)
(4).数据冗杂:
相同数据多次出现或可由其它列计算得到
3.物理设计
(1).做什么
选择合适数据库管理系统----定义数据库与表及字段的命名规范----根据所选的
DBMS系统选择合适的字段类型---- 反范式化设计
(2).DBNS系统
(3).命名规范
可读性原则(大小写,如CustAddress)
表意性原则(描述数据内容、储存过称的功能)
长名原则(不用意义不明的缩写)
(4).字段类型
优先选择数字类型,其次是日期或二进制类型,最后是字符
Char与varchar区别:数据长度差不多、最大小于50b用char
(浮点)Decimal与float区别:decimal用于精确数据(保留X位小数),float用于非精确
Int与datatime区别:前者空间少,但后者常用于频繁调用时间时
(5).主键选择
业务主键用于标识业务数据,进行表间关联;数据库主键用于优化储存
若数据库按主键顺序逻辑储存,则主键增长
主键字段要小
6.避免外键、触发器与预留字段
(7).反范式化
(适当对3NF违反,进而提高性能与读取效率)
减少表的关联数量
增加数据读取效率
反范式化要适度
4.维护与优化
(1).内容
维护数据字典、维护索引、维护表结构、适当对表水平或垂直拆分(2).维护数据字典
使用第三方工具
数据库本身的备注字段(COMMENT)——导出数据字典
(3).维护索引
①选择
出现在WHERE从句、GROUP BY从句、ORDER BY从句中列
选择性高的列放于最前面
数据类型要短
②注意事项
索引要少、定期维护索引碎片、不使用强制索引关键字
(4).维护表结构注意
在线变更表结构、同时对数据字典维护、控制表宽度与大小(5).表垂直(宽度)与水平拆分(数据量)
对多列表拆为几个少列表、对多个行拆为多个(Hash key)
(6).数据库中合适的操作
批量操作优于逐条操作
禁止使用Select*查询
控制自定义函数的应用(使用函数时列索引无效)
不使用数据库全文索引
二.MySQL数据库
1.安装、配置与简单操作
(1).目录结构
bin:储存可执行文件
data:储存数据文件
docs:文档
include:储存包含的头文件
lib:储存库文件
share:错误消息与字符集文件
(2).开启与关闭服务
窗口化操作或dos操作,如
net start mysql和net stop mysql
(3).DOS参数
如图1—1,—u名—p密码—P3306 —hXXX 1-1
(4)修改提示符
prompt名
名可为自定义字符,也可为系统内置如\D(完整日期)、\d(当前数据库)、\h(服
务器名)、\u(用户名)
(5)常用命令
SELECT VERSION();服务器版本SELECT NOW();当前日期
SELECT USER(); 当前用户
SELECT DATABASE(); 当前打开的数据库(6)语句规范
关键字与函数名称全大写
数据库名称、表名称、字段名称都小写Sql语句以分号结尾
二、SQL基础
1.DDL(数据定义语言)语句
(1)创建数据库
CREATE DATABASE t1;
SHOW DATABASES;(显示数据库)USE t1;(选择数据库)
SHOW TABLES;(显示表格)
(2)删除数据库
DROP DATABASE t1;
(3)创建表
CREATE TABLE t11(
enamevarchar(10),