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语句,删除数据后会自动的帮我们提交事务

posted @ 2016-01-11 14:54  sq_1303037035  阅读(103)  评论(0编辑  收藏  举报