数据库设计
0.1 简述数据库完整性及其作用?
解析:数据库的准确性,保证数据库中数据的准确性。
0.2基本操作语句(DML DDL DCL)有哪些? 语法是?
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=2
见到update和delete,必须有where
Select * from student where id=1
0.3常用的聚合函数有哪些?
AVG():求平均值
SUM():求和
MAX():求最大值
MIN():求最小值
COUNT():求总的记录数,COUNT(1)和COUNT(*)等价,一般认为COUNT(1)效率高。
0.4表连接分为哪几种类型?
内连接,外连接和交叉连接(数据库原理)
为什么要设计数据库?
首先,良好的数据库设计:
1可以节省数据的存储空间
2能够保证数据的完整性
3方便进行数据库应用系统的开发
糟糕的数据库设计:
1数据冗余、存储空间浪费
2内存空间浪费
3数据更新和插入的异常
由此,我们得出一个结论,当数据库比较复杂时,我们需要设计数据库
设计数据库的步骤
0.1收集信息
与该系统有关的人员进行交流,座谈,充分了解用户需求,理解数据库需要完成的任务。
0.2标识实体(Entity)
标识数据库要管理的关键对象或者实体,实体一般都是名词
0.3标识每个实体的属性
0.4标识实体之间的关系
范式
主要分为以下几类
一对一:一辆车只能对应一个车位
一对多:一个客房可以入住多个客人
多对一:多个客人可以入住一个客房
多对多:一本书可以被多个人借,一个人也可以借多本书
一个关系的属性名的集合称为关系模式
第一范式:目标是确保每列的原子性
如果每列都是不可再分的最小单元(也成为最小的原子单元),则满足第一范式
第二范式:要求每个表只能描述一件事
如果一个关系满足1NF,并除了主键以外的其他列,都依赖与该主键
第三范式:如果一个关系满足2NF,并除了主键以外的其他列都不传递依赖于主键列
第二范式是其他列都要依赖于主键列,但没有说明是直接依赖还是间接依赖.也就是直接依赖和间接依赖均可以
但是第三范式明确指出只能直接依赖,如果出现间接依赖的情况,要单独独立出来一张表