Oracle--4--数据建模和数据库设计概念,建表语句

本文介绍了Oracle数据库设计的过程,包括数据建模和数据库设计的概念,如需求分析、系统设计、数据库性能考量和文档工作。讨论了实体关系模型,关系类型,E-R图的符号表示,以及范式的概念。此外,还详细讲解了建表语句的格式和表元素,如数据类型、约束和表级约束。
摘要由CSDN通过智能技术生成

Lesson7 Overview of Data Modeling and Database Design(数据建模和数据库设计)

  • A:软件开发步骤

    • 需求分析
    • 系统设计
    • 代码构建和说明文档
    • 系统测试
    • 运行维护
  • B:数据库设计

    • 将模型转换为可行的软件表示形式
    • 结合规则、判断和常识来创建设计
    • 数据库设计开发要求:
      • 整体性能(不同的项目,侧重点不同,整体性能偏向不一样)
      • 全局性考虑
        • 应用
        • 和其他系统的交互
      • 文档工作和交流工作
      • 数据库设计弹性(可扩充)
      • 使用现有的解决方案(引入框架,模块,不要自己构建)
  • C:数据库模型

    1. 用户想法
    2. 实现用户想法对应的实体模型
    3. 实体模型对应的实体表
    4. 完善实体表之间的关系,变成数据库模型
  • D:实体关系模型

    1. 实体:实体用来描述表述具有相同特征和性质的事物(类似java的类),实体由实体名和实体属性表示;
    2. 属性:实体所具有的某一种特性,一个实体可以有若干属性;
    3. 实体关系(E-R图):满足实体与实体之间的连接方法,符合业务逻辑要求
  • E:关系类型(从关系双方来判定关系类型)

    1. 一对一:一个实体只能与一个实体关联
    2. 一对多(多对一):一个实体可以和多个实体关联
    3. 多对多:多个实体和多个实体之间产生关联
  • F:E-R图:实体-关系图(Entity Relationship Diagram):提供了表示实体,属性和关系的方法,用来描述现实世界的概念模型

    • 构成E-R图的基本要素:实体,属性,实体关系
    • ER图中符号表示:
      1. #:唯一,可能表示主键
      2. *:非空
      3. o(Optional):可有可无
      4. 虚线(may-be关系):顾客这边为虚线,顾客可能有订单也可能没有订单
      5. 实线(must-be):订单这边为实线,一个订单对应一个顾客
      6. |:代表强制在|一方建立一个联合主键,将对方的id拿过来作为联合主键
      7. 伞状图:代表多的一方
    • ER图转化为数据中的表
      • 实体名=表名
      • 实体属性=表中的列
      • 具有唯一特点的属性=主键
      • 实体关系=外键(其他表的主键)
  • G:范式(设计规范)

    1. 第一范式(1NF):一张表中,每个列里面的值不可以在进行分割;

    2. 第二范式(2NF):在第一范式满足的基础上,表中的非主键都要依赖于主键;

    3. 第三范式(3NF):在满足第二范式基础上,表中的非主键都必须依赖于主键列,而不能产生间接依赖

       例如这样设计一张表:
      	    订单表:   订单编号 是主键
      	    订单编号  订单名称  顾客编号  顾客姓名
      顾客编号依赖于订单编号,顾客姓名依赖于顾客编号,从而顾客姓名间接的依赖于订单编号,那么这里产生了依赖传递,所以这个设计是不满足第三范式的
      
    4. 巴斯-科德范式(BCNF)

    5. 第四范式(4NF)

    6. 第五范式(5NF完美范式)

  • H:外键和主键

    • 主键:
      1. 主键列必须满足非空为一;
      2. 只要满足非空为一的列都可以作为主键;
      3. 可以让表中有意义的列做主键,比如说学号,既表示学生学号又作为主键,满足非空为一;
      4. 也可以找没有意义的列做主键,用来表示一行数据记录(id);
      5. 联合主键:多个列在放在一起作为主键,要求联合主键中的列在一起非空为一
    • 外键:
      1. 表中的列作为外键,外键通常是引用其他表的主键作为该表外键,产生关系;
      2. 外键引用的不是主键也可以,但必须是非空为一的列;
      3. 外键引用主键列的值,主键列中没有出现的值,外键列的值也不可以出现;
      4. 外键列的值可以为空的;
      5. 可以把外键列作为该表的主键列,前提是这个外键列必须是非空为一;
      6. 其他表的联合主键作为某表联合外键的时候,必须把联合主键中的列都要引用过来,作为该表的联合外键。

Lesson 8 Creating Tables(建表语句)

  • A:建表格式:

    • create table 表名(

    ​ 列名1 数据类型 列级约束,

    ​ 列名2 数据类型 列级约束,

    ​ 列名3 数据类型 列级约束,

    ​ );

    • create table 表名(
      列名1 数据类型 列级约束,
      列名2 数据类型 列级约束,
      列名3 数据类型 列级约束,
      列名4 数据类型 列级约束,
      表级约束1,
      表级约束2
      );
  • B:表元素:

    1. 关键字:create(创建),table (表类型),数据类型关键字,约束关键字

    2. 表名:实体名

    3. 列名:实体属性

    4. 数据类型:varchar(),varchar2(),char(),number,date

      1. 其他类型 BLOB CLOB:BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的
      2. char用于存储定长类型;效率比varchar要稍高,占用空间比varchar要多.
        • 比如“asd”,对于char(9)就表示存储9个字节(包括6个空字节),取值就需要.trim()把两边的空号去掉。
        • 对于varchar(9),则是按照实际字节数存储的,只存储三个字节。
      3. varchar2型与varchar型的区别:
        • 1、varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
        • 2、VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;
        • 3、VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,
    5. 约束:

      • a、列级约束(行级约束):在列声明的时约束

        • primary key(主键约束),f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值