文档章节

数据库初探(二)

f
 fang_faye
发布于 2017/08/08 22:05
字数 793
阅读 2
收藏 0
点赞 0
评论 0

两年多以后,还是会想起曾经的那个问题。范式的本质是什么?到现在我也只能弱弱的写上自己浅薄的理解,本质大概应该就是为了更加规范。设计数据库时会遵循不同的设计规范,进而设计出更加合理的关系型数据库,这些规范就是范式。

(前言:有关函数依赖以及码、主码、外码的相关知识可自行查找)

范式简介:

第一范式(1NF):每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式。

第二范式(2NF):若R属于1NF,且每一个非主属性完全函数依赖于码,则R属于2NF。

第三范式(3NF):在1NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)。

巴斯-科德范式(BCNF):在1NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖)。

不同数据库的分页技术:

为什么需要分页技术?

在查询情况下,最经常的情况就是我们需要查询几条数据,而不是全部的查询出结果,比如最为经典的情况就是在我们写一个查询结果列表的情况,我们希望结果是分页显示,也就是查询出一段记录集。

Mysql:Mysql是最为方便的,由一个limit关键字来完成。

Oracle:Oracle数据库为我们提供了两个很重要的字段:RowId和RowNumber,来完成分页查询。

MSsql:SQL Server 2005以上可以使用ROW_BUNMER()函数实现分页。SQL server分页实现起来比较复杂,也有多种方式进行分页。具体各种分页方式的性能比较可参考:

http://www.cnblogs.com/yangecnu/p/Introduct-Server-Side-Paging-with-SQL-Server.html

——————————————再更新——————————————————————

关系型数据库系统的查询优化:查询优化在关系数据库系统中有着非常重要的地位。关系查询优化是影响RDBMS性能的关键因素,也是关系型数据库取得巨大成功的关键所在。查询优化的优点在于用户不必考虑如何最好的表达查询以获得较好的效率,也在于系统可以比用户程序的优化做得更好。

关系型数据库系统的查询优化就是选择一个高效执行的查询处理策略,有多种方法。按照优化的层次可分为代数优化物理优化。其中代数优化指关系代数表达式的优化,即按照一定的规则,改变代数表达式中操作的次序和组合,使查询执行更加高效;物理优化指存储路径和底层操作的选择。可基于规则、代价或语义进行选择。

查询优化经验:

1、尽量避免全表扫描

2、查询时先过滤,再关联

3、使用游标索引等技术来提高查询效率

© 著作权归作者所有

共有 人打赏支持
f
粉丝 2
博文 24
码字总数 8275
作品 0
【HTML5初探之本地存储】如果没有数据库。。。

导航 【初探HTML5之使用新标签布局】用html5布局我的博客页! 【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面...

范大脚脚 ⋅ 2017/12/07 ⋅ 0

干货来了!2016年DevExpress资源汇总(更新、文档)

在2016年,著名软件界面解决方案专家DevExpress进行了重大升级,EVGET围绕版本升级推出了一系列干货资源,现将2016年所有Dev资源使用教程汇总于此,欢迎收藏转发点赞哦~ DevExpress WPF入门指...

Miss_Hello_World ⋅ 2016/11/25 ⋅ 0

Android Instrumentation自动化测试框架

Android monkey test 脚本的编写 Instrumentation 是google开发的Android测试框架(http://developer.android.com/reference/android/test/InstrumentationTestRunner.html) 主要分为下列项......

IamOkay ⋅ 2016/02/25 ⋅ 0

Solr初探(4)——后台数据导入及Document的增删改查

进入Solr后台页面,选择一个核,点击,进入管理标签: 一、添加Document 在Solr初探(2)——域管理中我们已经说过了,id是一个Document必须要包含的field,让我们新建一个,类型为: 在查询...

yuanlaijike ⋅ 04/10 ⋅ 0

MyBatis初探一

一、MyBatis介绍 mybatis(持久层框架3.2.6 or 3.2.7)简单执行流程 >1.SqlMapConfig.xml(全局配置文件),配置数据源,事务和运行环境等 >2.配置映射文件(编写SQL语句):mapper.xml... >3.SqlSes...

AAASSSSddd ⋅ 2016/04/02 ⋅ 0

【HTML5初探之Web Workers】网页也能多线程

导航 【初探HTML5之使用新标签布局】用html5布局我的博客页! 【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面...

范大脚脚 ⋅ 2017/11/09 ⋅ 0

初探Apache derby

一. Derby能提供什么? Derby是一个基于Java和SQL ,开源的 RDBMS 。完全使用Java实现,他为用户提供了一个小巧的基于标准的数据库引擎,他可以嵌入到任Java解决方案中,他确保数据完成并提供...

-蒋全忠- ⋅ 2014/02/11 ⋅ 0

C#进阶系列——DDD领域驱动设计初探(一):聚合

原文:C#进阶系列——DDD领域驱动设计初探(一):聚合 前言:又有差不多半个月没写点什么了,感觉这样很对不起自己似的。今天看到一篇博文里面写道:越是忙人越有时间写博客。呵呵,似乎有点...

杰克.陈 ⋅ 2017/12/19 ⋅ 0

C#进阶系列——DDD领域驱动设计初探(四):WCF搭建

原文:C#进阶系列——DDD领域驱动设计初探(四):WCF搭建 前言:前面三篇分享了下DDD里面的两个主要特性:聚合和仓储。领域层的搭建基本完成,当然还涉及到领域事件和领域服务的部分,后面再...

杰克.陈 ⋅ 2017/12/19 ⋅ 0

【HTML5初探之Geolocation API】让我们获取女神的地址

导航 【初探HTML5之使用新标签布局】用html5布局我的博客页! 【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面...

范大脚脚 ⋅ 2017/12/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 32分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 36分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 41分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 43分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 53分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 今天 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 今天 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部