论坛首页 综合技术论坛

数据库总结

浏览 1770 次
锁定老帖子 主题:数据库总结
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-26  
                                        数据库总结

数据库= 实体 + 关系
实体:实体就是一个实际的对象,即主键.
关系:外键
三个范式:
第一范式:
1. 一个行的每个列必须具有原子性,即任何给定行的列只能包含一个值
2. 表中的每行必须包含相同数量的列,假如每个列只能包含一个值,即意味着每行必须包含相同数量的值.
3. 一个表中的所有行必须是不同的,虽然可能包含相同的值,但每行作为一个整体必须在整个表中试唯一的.
第二范式:
非主必须依赖于主键列键列(设计一个实体必须是它的固有属性)
第三范式:
非主键列之间必须相互独立(不能通过一个字段知道另一个字段的值)
注:NF1和NF2必须满足.
实体:
强实体:能脱离主键列而单独存活
弱实体:脱离了主键列就不能存活(没有什么意义)
关系:
实体与实体之间的关系(一对一,一对多,多对多) 
  一对一:从一边到另一边是一对一,反过来还是一对一
一对多:从一边到另一边是一对多,反过来是一对一
多对一:反过来就是一对多
多对多:从一边到另一边是一对一,反过来还是多对多,但实际中一般不用多对多而用一对多或多对一
注:找关系一定是以“一”为标准,从一个实体的一条记录出发。
主键:用来对实体的唯一标识
代理主键:没有什么实际的意义
业务主键:与业务有关,一般情况下,业务变更业务主键也要相应的变更
外键:表示表与表之间的关系,表不一定要有外键才有关系
例如:在学生表中,学号(学生表)和 科目编号(科目表)是独立主键
学号+科目编号(成绩表)是复合主键。
创建序列:
SELECT * FROM emp
CREATE SEQUENCE tt
CREATE TABLE t_class(
       cid NUMBER(5) PRIMARY KEY,
       cname VARCHAR2(8)
)
INSERT INTO t_class(cid,cname) VALUES(tt.NEXTVAL,'1');
INSERT INTO t_class(cid,cname) VALUES(tt.NEXTVAL,'2');
INSERT INTO t_class(cid,cname) VALUES(tt.NEXTVAL,'3');
INSERT INTO t_class(cid,cname) VALUES(tt.NEXTVAL,'4');
SELECT * FROM t_class
创建同义词:
CREATE PUBLIC SYNONYM yy FOR t_class
SELECT * FROM yy

视图理解:
CREATE OR REPLACE VIEW 视图名
AS
SQL查询;
例如:
CREATE OR REPLACE VIEW T_EMP
AS
SELECT * FROM EMP E LEFT JION DEPT D ON E.DEPTNO=E.DEPTNO
删除:
DROP VIEW 视图名
视图的作用:
1. 保护数据安全
2. 简化数据的查询和处理操作
3. 有利于数据交换操作
4. 有利于简化对用户权限的管理
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics