数据库设计:良好的数据库设计是优化代码的条件,是数据库优化的标准,设计比优化更重要.
主要分为四个部分:
#1#:数据库设计过程 :
第一步:要分析用户的应用需求.
第二步:根据用户需求,写出数据字典:它是关于数据库中数据的描述,即元数据,不是元数据本身.
第三步:对用户的需求进行综合,归纳与抽象,形成一个独立于具体DBMS的概念模型.
也就是根据数据字典去画E-R<Entity-Relation>图.
第四步:定义实体--->E-R图是怎么画的,画E-R图的过程.
第五步:定义联系(也就是二元联系,1~N,N~1,1~1,N~N).
#2#:数据库设计范式 ###***重点*****###
关联数据库设计之时是要遵守一定的规则,也就是设计范式.
在数据库中的设计范式主要有五种:
第一范式(1NF):
对于表中每一行中,都必需要有唯一的列,且每一列的值具有原子性<不可分割>.
也就是说我们要设主键.***
第二范式(2NF):
非主键列的活动必需完全依赖于整个主键,如查找,更新必须得依赖于主键
例:在Hibernate中我们只能依赖于主键进行修改,如果依赖于非主键修改会报错.
第三范式(3NF):
非主键列互不依赖.
也就是说当一个表依赖到另外一张表的数据时,不能依赖于不是主键的列.
例:建立关联时,我们只能用另外一张表的主键进行建立关联.
第四范式(4NF):
第五范式(5NF):
尽量少用,也就是用空间去换时间,第五范式又叫无null范式样.
将表分割成尽可能少的块,为了排除在表中所有的冗余.
也就是说,当一个表里有一个字段只有一个人有数据时,这样这个字段没有数据的人置为null.
这时候就要考虑到要用另外一张表来保存这个数据.
#3#:数据库设计技巧(主要分为六个技巧)
技巧一: 需求分析技巧
技巧二: 表设计技巧
每个表中都应该加入几个有用的字段,如:创建日期,创建用户等.
技巧三: 字段设计技巧
技巧四: 键设计技巧
技巧五: 索引设计技巧
技巧六: 数据完整性设计技巧
#4#:数据库设计规范
oracle数据库优化:
一:一些最常用的语法:
1:大小写
2:exist > in > or
3:列上计算问题,列操作尽量置于操作符右边,少用列格式转换,
不要用到列计算,海量查询时少用格式转换,这样使得对全表扫描.
查询海量数据是,可以使用optimizer hints(ORACLE)
例如/*+ORDERED */
如
SELECT /*+ FULL(EMP) */ E.ENAME
FROM EMP E
WHERE E.JOB = 'CLERK';
而不是
SELECT E.ENAME
FROM EMP E
WHERE E.JOB || '' = 'CLERK';
4:只要是带null的都将导致索引失效,还有调用函数,通配符<%>都将导致索引失效.
5:from与where条件写法,如当查询多个表,或者多个条件查询时,
就要把数据量大的条件放在第一个条件.
查询多个表:例如:
表 TAB1 16,384 条记录
表 TAB2 1 条记录
选择TAB2作为基础表 (最好的方法)
select count(*) from tab1,tab2
多个条件查询:例如:
(低效,执行时间156.3秒)
SELECT …
FROM EMP E
WHERE SAL > 50000
AND JOB = ‘MANAGER’
AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);
(高效,执行时间10.6秒)
SELECT …
FROM EMP E
WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO)
AND SAL > 50000
AND JOB = ‘MANAGER’;
6:排序和分组
7:避免相关子查询
8:where替换Having
9:临时表替换游标.
二:影响数据库的三大特征--->内存,CPU,I/O,netWork.
oracle优化方式与优化模式.
优化方式:RBO:基于规则,低版本默认的是这个,就是一些表的语句写法.
CBO:基于成本-->参照物:定期的表及索引的统计信息.
也就是说:当一个表里的数据只有几条数据时,
这个时候我们就要考虑不要走索引,如果走索引的话,
它是先找索引,然后再找你要的数据,这样使得走了两步.
所以这个时候就有了成本的考虑.
优化模式:
Rule:基于规则的方式.
Choolse: 指的是当一个表或索引有统计信息,则走CBO的方式,反之则用RBO.
First Rows: 是当一个表有统计信息时,它将是以最快的方式返回查询的最先的几行,
从总体上减少了响应时间.
All Rows: 是基于成本的.(CBO)
三:Oracle备份
物理备份:
逻辑备份:
什么叫冷,热备份并解释冷备份和热备份的不同点以及各自的优点?
数据库还在运行时将它备份叫做热备份,
数据库停止时进行备份叫做冷备份
分享到:
相关推荐
MySQL.Data.dll是MySQL数据库连接器的一个重要组成部分,主要用于C#和其他.NET Framework应用程序与MySQL服务器进行交互。这个8.0版本的类库提供了丰富的API,使开发者能够方便地执行SQL查询、管理数据库对象以及...
本压缩包"学习数据库的代码 oracle mysql.zip"显然包含了一些与Oracle和MySQL数据库相关的学习资料,这两大数据库系统在业界广泛使用,各有特点。 Oracle数据库是甲骨文公司(Oracle Corporation)开发的一款关系型...
标题提到的"通用的数据库管理工具Access, MySQL, Oracle...等等"指的是能够支持多种不同数据库系统的软件,这些工具为数据管理和分析提供了极大的便利。 1. **Access**: Microsoft Access是Microsoft Office套件的...
Oracle数据库和MySQL数据库是两种广泛使用的数据库管理系统,它们在数据存储、查询语法、数据库结构以及管理方式上存在显著差异。"Oracle数据库sql转换mysql数据库工具" 提供了解决这一问题的解决方案,允许用户将...
总的来说,将MySQL数据库转换为Oracle涉及到多个步骤,包括数据备份、导出、格式转换、导入和测试。使用合适的工具可以简化这一过程,但理解两者之间的差异和Oracle的最佳实践仍然是至关重要的。在实际操作中,应...
MySQL到Oracle的数据迁移是一项常见的任务,特别是在企业级应用中,可能因为各种原因需要从MySQL迁移到功能更强大的Oracle数据库系统。下面将详细讲解这个过程涉及的关键知识点。 首先,我们需要了解MySQL和Oracle...
MySql.Data.dll实现的ADO.NET接口包括`DbConnection`、`DbCommand`、`DbDataAdapter`和`DbDataReader`等,这些接口是.NET框架中的标准数据库访问接口,使得MySQL操作与其他数据库系统(如SQL Server或Oracle)保持...
然而,值得注意的是,随着MySQL版本的更新,新的驱动程序(如`mysql-connector-java`的更高版本)引入了更多的优化和改进,包括更好的性能、对新数据库特性的支持以及错误修复。因此,尽管5.1.5版本仍能工作,但建议...
MySQL数据库是一个开源的关系型数据库管理系统(RDBMS),由Oracle公司维护。它的特点是性能高、可移植性强、易于使用,并且拥有丰富的功能集。.NET开发者通常会用到MySQL.Data.dll来实现以下功能: 1. **连接管理*...
MySQL和Oracle数据库安装文档 MySQL和Oracle都是流行的关系数据库管理系统,它们广泛应用于企业级应用中。对于初学者来说,安装和配置数据库是一件比较困难的事情。因此,本文档旨在提供一个详细的安装指南,帮助...
数据库驱动是连接应用程序与特定数据库管理系统的关键组件,它允许程序通过标准接口与数据库进行通信,执行查询、更新数据等操作。...此外,还要注意数据库的性能优化,包括索引使用、事务管理、缓存策略等。
这个工具专注于将MySQL的数据库结构和数据转换为Oracle数据库兼容的格式。下面将详细解释这个过程涉及的知识点。 1. **SQL语言的差异**: MySQL和Oracle都是SQL数据库管理系统,但它们对SQL语法的实现有所不同。...
这个版本的驱动包含了Oracle JDBC Thin驱动,它是纯Java实现,无需安装其他数据库客户端软件,只需要这个jar文件,就可以在Java应用程序中连接远程Oracle数据库。 使用ojdbc7.jar包的步骤通常包括以下几个部分: 1...
本文将探讨Oracle和MySQL数据库连接池的性能优化策略,并提供实际的代码示例。 数据库连接池是提高数据库访问性能的重要技术。Oracle和MySQL在连接池管理方面有着不同的侧重点和优化策略。Oracle更注重稳定性和资源...
Oracle到MySQL转换工具是一种专门设计用于帮助用户将Oracle数据库中的数据和结构迁移至MySQL数据库的应用程序。这个过程通常称为数据库迁移或数据迁移,是企业在更换数据库系统时常常面临的需求。以下是一些关于...
本压缩包中的学习笔记涵盖了五大主流数据库系统:Oracle、MySQL、MongoDB、Redis以及Neo4j,它们各自拥有独特的特性和用途,适用于不同的场景。 1. Oracle数据库: Oracle是一款关系型数据库管理系统(RDBMS),在...
本文将详细探讨如何将XML数据导入到Oracle数据库,同时也会涉及其他数据库(如SQL Server、MySQL、Sybase)的数据导出至XML,并进行相应的解析。 首先,我们来看SQL Server的数据导出到XML。在SQL Server中,可以...
`MySql.Data.dll`是Oracle公司为.NET框架提供的一个MySQL数据库驱动程序,它允许C#或其他.NET语言与MySQL服务器进行通信。在Unity中,由于Unity支持C#编程,因此我们可以利用这个插件来编写代码,实现与MySQL数据库...
本资料"oracle转mysql.rar"聚焦于这两者之间的函数转换及差异分析,旨在帮助那些需要将Oracle数据库系统迁移至MySQL环境的用户,或者需要在两者间进行数据交互的开发者。 首先,Oracle和MySQL在SQL语法上有一定的...
《Oracle与MySQL数据库索引设计与优化》这本书深入探讨了两个主流关系型数据库管理系统——Oracle和MySQL中的索引设计和优化策略。索引是数据库性能的关键因素,它们能够加速数据检索,提高系统效率,尤其在大数据量...