oracle 10g学习6
一、数据库设计
需求分析-->建模-->建立数据字典-->建表-->根据需求构建测试数据-->测试数据库<----->数据库的重构
建模过程中用到的元素:
1、实体(Entity)
实体:用圆角矩形来表示,实体的名字一般用大写,而且一般会和数据库中的表的名字保持一致
对象实体:现实生活中真实存在的事物
业务实体:由项目中业务逻辑产生出来的实体
2、属性
属性:一般用小写字母表示,并且一个属性在一张表中只能出现一次
ER图中符号的表示
1)#:唯一,以后可能表示为主键
2)*:非空
3)o:代表随意,可有可无
4)虚线:may be
5)实线:must be
6) 竖杠(|): 代表要强制在(|)一方建立一个联合主键,将对方ID拿过来做联合主键
3、关系
实体间的关系:
one-to-one
one-to-many
many-to-one
many-to-many
1) 一对一关系如果要建立主外键关系,如果都是实线或都是虚线可以随便建。
如果一边实线,一边虚线,实线一边建外键。
2) 一对多关系外键建立在多的一方
3) 多对多可以拆成两个一对多或者建一张桥表
二、范式
范式一 表中的值必须是单值(也就是不可再拆分)
范式二 表中要有主键列
范式三 表中的列与列之间不能产生依赖关系
语法:
create table table_name(
列名 类型 行级约束,
列名 类型 行级约束,
列名 类型 行级约束,
列名 类型 行级约束
);
create table table_name(
列名 类型,
列名 类型,
列名 类型,
列名 类型,
表级约束,
表级约束,
表级约束,
表级约束
);
1) 约束级别
a) 行级别: 约束类型紧跟在列后,约束和列间没有逗号分隔
b) 表级别: 约束和列间通过逗号分隔
2) not null只能用于列级别,不能用于表级别
3) 为两个或者两个以上的列定义联合约束
(包括联合主键,联合外键,联合唯一键)时必须在表级别上定义
4)做联合外键的俩个列,一定要在所引用的表中做联合主键或者有联合唯一的约束
三、数据字典
数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。
比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等
四、truncate和delete
truncate和delete作用一样,也是删除表中数据
delete是DML语句,删除数据后需要自己手动的提交事务或者回滚事务
truncate是DDL语句,删除数据后会自动的帮我们提交事务