数据库系统原理第六节
数据库设计
关系数据库设计方法
逻辑结构设计方法
- 将E-R图转换为关系模型
- 一个实体转换为一个关系模式,实体的属性作为关系的属性,实体的码作为关系的码
- 一个一对一联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
- 一个一对多联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并
- 一个多对多联系可以转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性
- 三个或以上实体间的一个多元联系可以转换为一个关系模式
- 具有相同码的关系模式可合并
- 对关系数据模型进行优化
- 数据库逻辑设计的结果,
不是唯一
的 - 确定各
属性
间的函数依赖关系 - 对于各个关系模式之间的数据依赖进行极小化处理,消除
冗余
的联系 - 判断每个关系模式的范式,根据实际需要确定最合适的范式
- 按照
需求分析
得到的处理要求,分析浙西模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或分解 - 对关系模式进行必要的分解,提高
数据操作
的效率和存储空间
的利用率
- 数据库逻辑设计的结果,
- 设计面向用户的外模式
设计用户子模式
- 可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用
- 可以对不同级别的用户定义不同的视图,以保证系统的安全性。
- 简化用户对系统的使用
物理设计方法
建立索引
- 逻辑连接
- 静态建立索引
- 动态建立索引
建立聚集 - 聚集是将相关数据集中存放的
物理存储技术
- 数据聚集结构的一种有效方式是
块结构方式
- 数据聚集可在
一个或多个
关系上建立
SQL与关系数据库基本操作
SQL概述
什么是SQL
结构化查询语言
是专门用来与数据库通信的语言,它可以帮助用户操作关系数据库
SQL的特点
SQL不是某个特定数据库供应商专有的语言
SQL简单易学
SQL强大,灵活,可以进行非常复杂和高级的数据库操作
SQL的组成
数据查询
数据定义 DDL
- CREATE 创建数据库或数据库对象
- ALTER 对数据库或数据库对象进行修改
- DROP 删除数据库或数据库对象
数据操纵 DML - SELECT 从表或视图中检索数据
- INSERT 将数据插入到表或视图中
- UPDATE 修改表或视图中的数据
- DELETE 从表或视图中删除数据
数据控制 DCL - GRANT 用于授予权限
- REVOKE 用于收回权限
MySql预备知识
MySQL使用基础
关系数据库管理系统 RDBMS
优点:体积小,速度快,开放源代码,遵循GPL
MySQL扩展语言要素
常量:也称字面值或标量值
- 字符串常量
- 数值常量
- 十六进制常量
- 时间日期常量
- 位字段值
- 布尔值
- NULL值
变量
- 用户变量
用户变量前常添加@ - 系统变量
大多数系统变量前添加两个@@
运算符
- 算术运算符
- 位运算符
- 比较运算符
- 逻辑运算符
- NOT
- AND
- OR
- XOR
表达式:是常量,变量,列名,复杂计算,运算符合函数的组合
- 字符型表达式
- 数值型表达式
- 日期型表达式
内置函数
- 数学函数
- ABS
- 聚合函数
- COUNT
- 字符串函数
- 日期和时间函数
- 加密函数
数据定义
数据库模式定义
创建数据库
使用 CREATE DATABASE
或 CREATE SCHEMA
语句
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[DEFAULT] CHARACTER SET[=]charset_name
| [DEFAULT] COLLATE[=]collation_name
查看数据库
SHOW {DATABASES | SCHEMAS}
[LIKE pattern | WHERE expr]
选择数据库
use db_name
修改数据库
ALTER DATABASE db_name
DEFAULT CHARACTER SET gb2312
DEFAULT COLLATE gb2312_chinese_ci;
删除数据库
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name;