一:为什么需要使用数据库设计

  数据库设计可以使数据库通过健壮的数据库结构  高效并且健康  的进行工作。

二.数据库设计原则 (数据库设计、系统设计、架构设计)

  1.熟悉需求

    保证之后需求的变更 不会影响到数据库的维护、更新、减少了工作成本

  2.开发符合规范的数据库

    (1).命名规范

    (2).明确现实中的实体与数据表的关系

  ·   (3).一张数据表不能既没有主键,也没有外键(主键是现实中实体的抽象,外键表示现实中实体之间的关系)

    (4).基本表的特征

      原子性:基本表中的字段是不可在分解的

      原始性:基本表中的记录是原始数据的记录

      演绎性:由基本表和关系表可以派生出任何想要的数据

      稳定性:基本表中的结构是相对稳定的,表中的记录需要长期保存

    (5).必须满足第一第二范式,尽量满足第三范式(属性的原子性约束,记录的唯一性约束,对字段冗余的约束)

    (6).要有一个 简洁的E-R图:简单的实体、关系图

    (7).要符合完整性约束

  3.审核数据库设计

三.数据模型

  1.关系模型 E-R图:通过实体间的关系来设计数据库的

  2.对象模型OR:

四.数据库设计的技巧

  (1).表三少:在符合系统需求的前提下,表的个数越少越好,一张表中组合主键的字段数越少越好,一个表中的字段越少越好

  (2).检查各种变化字段

  (3).避免使用保留字

  (4).删除标记字段

  (5).避免使用触发器

  (6).如果发现重新输入数据、就需要创建新的表和新的关系

  (7).熟练使用数据库设计工具

  (8).创建E-R图标和数据字典

  (9).每个表都应该用友3个有用的字段:修改记录时间,修改人,修改后的版本

  (10).对地址和电话采用多个字段

  (11).正确处理多对多关系

五.数据库设计的步骤

  (1).手机信息

  (2).标识对象

  (3).建立对象模型

  (4).标示每个对象需要存储的信息类型

  (5).表示对象之间的关系

Oracle基础<1>--数据库设计的更多相关文章

  1. Java基础88 数据库设计的三大范式

    数据库的设计原则:建议设计的表尽量遵守三大范式 1.第一范式 要求表的每个字段必须是不可分割的独立单元 Student表:    name       -- 违反了第一范式             张 ...

  2. Oracle基础:数据库操作_数据库事务_表的锁定

    数据库操作语句: INSERT INTO 表名[(字段列表)] VALUES ( 表达式列表); 例子:INSERT INTO emp(empno,ename,job,hiredate) VALUES ...

  3. Oracle 基础 导入数据库 删除用户、删除表空间、删除表空间下所有表

    导入数据库 在cmd下用 imp导入  格式: imp userName/passWord file=bmp文件路径 ignore = y (忽略创建错误)full=y(导入文件中全部内容); 例: ...

  4. OA系统启动:基础数据,工作流设计

    自从开源OA系统启动:系统概览放 出来后.园友们反馈了一些不错的建议.主要集中在工作流部分.本来是先不考虑工作流部分.这些天的交流和思考.决定把工作流部分作为系统基础结构贯穿整个 系统.所以先考虑了这 ...

  5. 开源OA系统启动:基础数据,工作流设计

    原文:http://www.cnblogs.com/kwklover/archive/2007/01/13/bpoweroa_03_baseandworkflowdesign.html自从开源OA系统 ...

  6. 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》

    一.课程笔记 1.1  软件开发周期 (1)需求分析阶段 分析客户的业务和数据处理需求. (2)概要设计阶段 设计数据库的E-R模型图,确认需求信息的正确和完整. /* E-R图:实体-关系图(Ent ...

  7. 七、Oracle 数据库设计

    1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体. 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证 ...

  8. Oracle数据库设计实例-实时生产效率系统数据库设计

    Oracle数据库设计实例-实时生产效率系统数据库设计 引言 1.1 设计前提 某部门经理要求IT部门设计一个流水线实时生产效率系统,用来统计实时的生产量和效率.流水线有数百条,实时间隔为1min. ...

  9. Oracle数据库设计第三范式

    一.数据库设计范式及其意义和不足 数据库的设计范式是数据库设计所需要满足的规范,数据库的规范化是优化表的结构和优化把数据组织到表中的方式,这样使数据更明确,更简洁.实践中,通常把一个数据库分成两个或多 ...

随机推荐

  1. UVa11235 FrequentValues(RMQ)

    Problem F: Frequent values You are given a sequence of n integers a1 , a2 , ... , an in non-decreasi ...

  2. HDU3535AreYouBusy(分组背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=3535 分组背包,每一组加了以下三个限制 0 stands for the sets that should ch ...

  3. Classifier4J的中文支持

    Classifier4J是一个轻量级的分类工具,支持贝叶斯分类.向量空间模型.信息摘要等.然而它却不支持中文,异常信息大致如下: Exception in thread "main" ...

  4. [Netbeans]为面板设置背景图片

    与AndroidStudio等类似IDE不同,在Netbeans开发桌面程序时,不可以直接通过src=@drawable 等方法为窗口设置背景图片.这里介绍一种简便的方法: 1:首先,拖动一个面板到f ...

  5. WCF再学习小结

    http://www.cnblogs.com/jillzhang/archive/2010/04/04/1704388.html http://leelei.blog.51cto.com/856755 ...

  6. 数据库 SQL :有关 NULL 值引发 TRUE、FALSE、UNKNOW 三值逻辑

    在 Java.C# 中,相信如果是 boolean 类型值,只有两种选择 true.false.然而,在 SQL 查询中,NULL 值的引入,使得新增了 UNKNOW ,因此,就产生了 TRUE.FA ...

  7. PL/pgSQL的anyelement例子

    http://www.postgresonline.com/journal/archives/239-The-wonders-of-Any-Element.html 定义函数 pgsql=# CREA ...

  8. C++学习笔记之迭代器

    模板是的算法独立于存储的数据类型,而迭代器使算法独立于使用的容器类型.理解迭代器是理解STL的关键. 迭代器应该具备的特征: (1)应该能够对迭代器进行解除引用的操作,以便能够访问它引用的值.即如果P ...

  9. web自己主动保存表单

    note:当中部分源代码来源网络 所用的框架:jquery 实现的功能: 1.自己主动保存表单 2.页面刷新的时候把自己主动保存的值赋值给表单元素 思路: 1.表单值改变的时候自己主动触发函数.保存表 ...

  10. 前端优化分析 之 javascript引用位置优化

    在很多优化法则中都提到,尽量将javascript放到页面底部,这是为什么呢 我通过firebug进行了下简单的分析 看下图  本页面首尾都存在javascript代码 我们分析得出 1.整个页面文档 ...