--数据建模:三范式,从表中删除冗余信息的过程叫规范化
--规范化:精简数据库,删除冗余值,建立关联关系。
--第一范式:必须有主键,每个属性值都是不可再分的最小数据单位
--第二范式:关系模式中的所有非主关键字完全依赖于主关键字。针对联合主键
--第三范式:非主关键字不能依赖于其它非主关键字。
create table tb_class01( --班级表
id number,
code varchar2(18) not null,
constraints tb_class_pk primary key (id)--主键约束
);
create table tb_student01(--学生表
id number,
name varchar(18) not null,
sex varchar(6) not null,
age number not null,
email varchar2(50),
address varchar2(100) default '郑州',
iphone4s varchar2(11),
class_id number not null,
constraints tb_student_pk primary key (id), --主键约束
constraints tb_student_fk foreign key (class_id) references tb_class01(id)--外键约束
);
create table tb_course(--课程表
id number primary key,
name varchar2(18),
credit number
);
--学生-课程中间表:建立主键,学生表外键,课程表外键 多对多
create table tb_student_course(
id number primary key,
student_id,
course_id,
score number,
constraints tb_student_course_fk_s foreign key(student_id) references tb_student(id),
constraints tb_student_course_fk_c foreign key(course_id) references tb_course(id)
)
--规范化:精简数据库,删除冗余值,建立关联关系。
--第一范式:必须有主键,每个属性值都是不可再分的最小数据单位
--第二范式:关系模式中的所有非主关键字完全依赖于主关键字。针对联合主键
--第三范式:非主关键字不能依赖于其它非主关键字。
create table tb_class01( --班级表
id number,
code varchar2(18) not null,
constraints tb_class_pk primary key (id)--主键约束
);
create table tb_student01(--学生表
id number,
name varchar(18) not null,
sex varchar(6) not null,
age number not null,
email varchar2(50),
address varchar2(100) default '郑州',
iphone4s varchar2(11),
class_id number not null,
constraints tb_student_pk primary key (id), --主键约束
constraints tb_student_fk foreign key (class_id) references tb_class01(id)--外键约束
);
create table tb_course(--课程表
id number primary key,
name varchar2(18),
credit number
);
--学生-课程中间表:建立主键,学生表外键,课程表外键 多对多
create table tb_student_course(
id number primary key,
student_id,
course_id,
score number,
constraints tb_student_course_fk_s foreign key(student_id) references tb_student(id),
constraints tb_student_course_fk_c foreign key(course_id) references tb_course(id)
)