解析:数据的准确性,保证数据中数据的准确性。sql
DML(data manipulation language):自动提交的数据库操做语言
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字同样数据库
DDL(data definition language):自动提交的数据库定义语言
主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的连接和约束等初始化工做上,他们大多在创建表时使用数据库设计
DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL函数
DQL:数据库查询语言,关键字:select工具
Insert、update、delete、select性能
这里以student表为例:测试
Insert into student(name,age) values(‘张三’,18)编码
Update student set name=’ 李四’ where id=1设计
Delete from student where id=2orm
见到update和delete,必须有where
Select * from student where id=1
Avg():求平均值
Sum():求和
Max();求最大值
Min():求最小值
Count():求总的记录数,count(1)和count(*)等价,通常认为count(1)效率高。
内链接,外链接和交叉联接(数据库原理)
3、 数据库
1. 为何要设计数据库?
首先,良好的数据库设计:
01. 能够节省数据的存储空间
02. 可以保证数据的完整性
03. 方便进行数据库应用系统的开发
糟糕的数据库设计:
01. 数据冗余、存储空间浪费
02. 内存空间浪费
03. 数据更新和插入的异常
由此,咱们得出一个结论,当数据库比较复杂时,咱们须要设计数据库
2. 软件项目开发周期中数据库设计
从上图咱们能够看出,软件开发中设计数据库的步骤:
首先,咱们要从现实世界的需求构建出一个模型,这种模型经过E——R图的方式反映,若是肯定E——R知足了客户的需求,那么咱们须要将E-R图规范化,构建出数据库模型图,固然在这个图表中要反映出各个数据对象之间的关系,最后咱们根据数据库模型图构建出符合咱们需求的数据库。
需求分析阶段:分析客户的业务和数据处理需求
概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整
详细设计阶段:应用三大范式审核数据库结构
代码编写阶段:物理实现数据库,编码实现应用
软件测试阶段:……
安装部署:……
3. 设计数据库的步骤
01. 收集信息
与该系统有关的人员进行交流,座谈,充分了解用户需求,理解数据库须要完成的任务。
02. 标识实体(Entity)
标识数据库要管理的关键对象或者实体,实体通常都是名词
03. 标识每一个实体的属性
04. 标识实体之间的关系
4.E—R图
映射基数:
主要分为如下几类:
一对一:一辆车只能对应一个车位
一对多:一个客房能够入住多个客人
多对一:多个客人能够入住一个客房
多对多:一本书能够被多我的接,一我的也能够借多本书
或者是一个老师能够教多个班级,一个班级能够被多个老师教
一个关系的属性名的集合称为关系模式
Rdbms:
relational database management system 关系型数据库管理系统
01. 仅有好的RDBMS并不足以免数据冗余,必须在数据的设计中建立好的表结构
02. Dr E.F.codd,一个IBM研究员。最初定义了规范化的三个级别,范式是具备最小冗余的表结构
03. 这些范式是:
第一范式(1ST NF—First Normal Form)
第一范式的目标是确保每列的原子性
若是没列都是不可再分的最小单元(也称为最小的原子单元),则知足第一范式(1nf)
第二范式(2nd NF—Second Normal Form)
若是一个关系知足1NF,而且除了主键之外的其余列,都依赖于该主键,则知足第二范式(2NF),第二范式要求每一个表只描述一件事情。
第三范式(3rd NF—Third Normal Form)
若是一个关系知足2NF,而且除了主键之外的其余列都不传递依赖于主键列,则知足第三范式(3NF)
今天总算理解清楚了一点,:
第二范式是其余列都要依赖于主键列,可是没有说明是直接依赖仍是间接依赖。也就是直接依赖和间接依赖都可以。可是第三范式明确指出只能是直接依赖。
若是出现间接依赖的状况,要单独独立出来一张表.
5,规范化和性能的关系
为知足某种商业目标,数据库性能比规范化数据库更重要
具体策略和方法:
01. 经过在给定的表中添加额外字段,以大量减小须要从中搜索信息所需的时间
02. 经过在给定的表中插入计算列(好比成绩总分),以方便查询
在数据规范化同时,要综合考虑数据库的性能。
第一步:需求分析(收集信息)
第二步:绘制E-R图 (标示实体 ,找到实体的属性 , 标注实体间的关系)
第三步:将E-R图转换成数据库模型图
第四步:将数据库模型图转换成数据表
矩形;实体
椭圆形:属性
菱形:关系
PowerDesigner :选择PhysicalModel
若有有人不当心关掉了Platter,对工具栏点击右键,勾选Platter便可。
当咱们将数据库模型图设计完毕后,能够经过菜单中的database下的
Generate Database来生成对应的sql
第一范式:保证每列的原子性,不可再被拆分
第二范式:在知足第一范式的基础上,一张表只能描述一件事情
第三范式:在知足第二范式的基础上,除了主键列以外其余列都要直接依赖于主键
要在规范化和性能之间取一个平衡
4、 课程总结
01. 在需求分析阶段,设计数据库的通常步骤是什么?
收集信息
标识实体
标识每一个实体的属性
标识实体之间的关系
02. 在概要设计阶段和详细设计阶段,设计数据库的步骤是什么?
绘制E——R图
将E—R图转化为数据库模型图
应用三大范式规范化表设计
03. 为了设计结构良好的数据库,须要遵照一些专门的规则,称为数据库的设计范式,分别是什么?
三大范式的例子:
挺辛苦的,好好看吧!