数据库设计


数据库设计步骤:

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 
原文地址:https://www.cnblogs.com/aixing/p/13327705.html