数据库设计步骤:
1-确定实体
2-确定实体属性
3-确定实体关系
一对一关系
一对多关系
多对多关系
ps:多对多设计:将两个表建立一个关联关系,将两个表的主键拿出来单独存放在一个表中。
4-规范化实例
规范化::定义了规范化的三个级别,范式是具有最小冗余的表结构。
规范化实例
第一范式(1ST NF)
第一范式的目标是确保每列的原子性。
如果每列都是不可再分的最小数据单元,(也称为最小的原子单元),则满足第一范式。
第二范式(2ND NF)
如果一个关系满足1NF,并且除了主键以外的其他列,每个属性是功能依赖于整个键,而不只是部分的键则满足第二范式。
第二范式要求每个表只描述一件事。
第三范式(3RD NF)
如果一个关系满足2NF,每个非键属性只功能依赖于主键,不功能依赖于其他属性,则满足第三范式。
确保每列和主键列直接相关,而不是间接相关。
数据组织:
实体——表
属性——字段
实体关系——表的关系(pk/fk)
创建表
语法:
create table table_name (column_name data_type not null|null, ...)
例如:
create table cusActivity(
id int,
cusNo varchar(20) not null,
atvData date not null,
atvPlace varchar2(30),
atvTitle varchar3(30),
atcDesc varchar(100) )
约束
实体完整性
主键约束(非空)
唯一性约束(可以为空)
域完整性
Check约束(检测约束的作用)
(类似于设置函数、规则,用来检测)
引用完整性
Foreign KEY 约束(主表中必须有的数据,从表才可以有外键约束)
(外键约束,将两个表产生关联关系)
创建约束
创建列级约束
创建表级约束
语法:
主键、唯一性约束 (pk)
Constraint <name> Primary Key|Unique (<column_name>) 备注:column_name(列名称)
Check约束()
Constraint <name> Check (列条件表达式)
Foreign Key 外键约束 (fk)
Constraint <name> Foreign key (<column_name>) references <table_name>(<column_name>)
(外键约束-添加的数据在主表中必须有此数据)
删除约束
语法:
alter table 表名 drop constraint