
数据库
zou song
这个作者很懒,什么都没留下…
展开
-
《数据库索引设计优化》读书笔记(一)
第3章 SQL处理过程练习3.1 为SQL3.7中所示的查询设计尽可能好的索引:-- SQL 3.7SELECT LNAME, FNAME, CNO FROM CUST WHERE SEX = 'M' AND HEIGHT > 190 ORDER BY LNAME, FNAME ;分析:本书第4章提出了一个三星索引的概念。如果与一个查询相关的索引行是相邻的,或者...转载 2019-01-03 11:19:48 · 256 阅读 · 0 评论 -
数据库设计Step by Step (9)——ER-to-SQL转化
引言:前文(数据库设计 Step by Step (8)——视图集成)讨论了如何把局部ER图集成为全局ER图。有了全局ER图后,我们就可以把ER图转化为关系数据库中的SQL表了。俯瞰整个数据库生命周期(如下图所示),找到我们的“坐标”。把ER图转化为关系数据库中的表结构是一个非常自然的过程。许多ER建模工具除了辅助绘制ER图外,还能自动地把ER图转化为SQL表。转载 2016-03-28 22:03:06 · 517 阅读 · 0 评论 -
数据库设计 Step by Step (8)——视图集成
引言:在前文(数据库设计Step by Step (7)——概念数据建模)最后的案例中,我们通过集成多个局部的实体关系(ER)模型最终得到了全局ER图。在现实项目中视图集成可能并不会那么容易。俯瞰整个数据库生命周期(如下图所示)。在前面的内容中,我们已完成了“确定需求”和“数据模型”(图中以灰色标出),本小节我们将详细讨论“视图集成”(图中以红色标出)把基于不同用户视角的局转载 2016-03-28 22:02:01 · 549 阅读 · 0 评论 -
数据库设计Step by Step (7)——概念数据建模
引言:在前两篇博文(数据库设计 Step by Step (5)和数据库设计 Step by Step (6) —— 提取业务规则)中,我们进行了数据库需求分析,着重讨论了两个主题:1.理解用户需求;2.提取业务规则。当需求分析完成后,我们就要进入到概念数据建模环节。本篇文章将使用之前介绍过的“基本实体关系模型构件”和“高级实体关系模型构件”作为建模的基本元素,大家可以回顾数据库设计 St转载 2016-03-28 22:01:14 · 408 阅读 · 0 评论 -
数据库设计 Step by Step (6) —— 提取业务规则
引言:数据库设计 Step by Step (5)中我们通过多种方法来理解客户的需求并撰写了需求文档。本文我们将回答三个问题。1. 为什么业务规则非常重要。2. 怎样识别业务规则。3. 如何修改关系模型并隔离出业务规则。 什么是业务规则业务规则描述了业务过程中重要的且值得记录的对象、关系和活动。其中包括业务操作中的流程、规范与策略。业务规则保证了业务能满足其目标转载 2016-03-28 22:00:24 · 343 阅读 · 0 评论 -
数据库设计 Step by Step (5)——理解用户需求
引言:数据库设计 Step by Step (4)中我们讨论了泛化关系、聚合关系、三元关系等高级实体关系模型构件及其语义。从本次讲座开始我将引领大家开始数据库设计之旅,我们将从需求分析开始,途中将经过概念数据建模、多视图集成、ER模型转化为SQL、范式化等过程,最终得到完整、可用的SQL表。需求分析在数据库生命周期中至关重要,通常也是涉及人员最多的步骤。数据库设计师在这个阶段必须走访最终用转载 2016-03-28 21:59:32 · 298 阅读 · 0 评论 -
数据库设计 Step by Step (4)——高级ER模型构件
引言:数据库设计 Step by Step (3)中我们讨论了基本实体关系模型构件及其语义。这些概念非常重要,是今天这一讲的基础,在开始本文内容之前建议大家可以再回顾一下上一篇的内容。今天我们将讨论高级实体关系模型构件,与上一篇一起涵盖了ER模型构图的大部分内容。三元关系是今天这一讲的难点,大家可以重点关注。 泛化(Generalization):超类型与子类型原始转载 2016-03-28 21:58:44 · 462 阅读 · 0 评论 -
数据库设计 Step by Step (3)——基本ER模型构件
引言:数据库设计 Step by Step (2)在园子里发表之后,收到了一些邮件,还有朋友直接电话我询问为什么不包含数据库物理设计方面的内容。我在这里解释一下,数据库物理设计与数据库产品是密切相关的,本系列的专注点是较为通用的数据库设计理念与方法,这也是国内软件项目中容易被忽视的一块。今天我们将学习实体关系(ER)模型构件及其语义,这是数据库逻辑设计的基础。内容可能有些枯燥,但却非常重要和有用。转载 2016-03-28 21:57:56 · 426 阅读 · 0 评论 -
数据库设计 Step by Step (2)——数据库生命周期
引言:数据库设计 Step by Step (1)得到这么多朋友的关注着实出乎了我的意外。这也坚定了我把这一系列的博文写好的决心。近来工作上的事务比较繁重,加之我期望这个系列的文章能尽可能的系统、完整,需要花很多时间整理、思考数据库设计的各种资料,所以文章的更新速度可能会慢一些,也希望大家能够谅解。系列的第二讲我们将站在高处俯瞰一下数据库的生命周期,了解数据库设计的整体流程转载 2016-03-28 21:57:11 · 345 阅读 · 0 评论 -
数据库设计 Step by Step (1)——扬帆启航
引言:一直在从事数据库开发和设计工作,也看了一些书籍,算是略有心得。很久之前就想针对关系数据库设计进行整理、总结,但因为种种原因迟迟没有动手,主要还是惰性使然。今天也算是痛下决心开始这项卓绝又令我兴奋的工作。这将是一个系列的文章,我将以讲座式的口吻展开讨论(个人偷懒,这里的总结直接拿去公司培训新人用)。系列的第一讲我们先来回答下面几个问题数据库是大楼的根基大多数程序转载 2016-03-28 21:56:03 · 329 阅读 · 0 评论 -
数据库设计Step by Step篇目整理及下载地址
系列篇目1. 数据库设计 Step by Step (1)——扬帆启航2. 数据库设计 Step by Step (2)——数据库生命周期3. 数据库设计 Step by Step (3)——基本ER模型构件4. 数据库设计 Step by Step (4)——高级ER模型构件5. 数据库设计 Step by Step (5)——理解用户需求6. 数转载 2016-03-28 21:54:40 · 303 阅读 · 0 评论 -
数据库设计Step by Step (10)——范式化
引言:前文(数据库设计Step by Step (9)——ER-to-SQL转化)讨论了如何把ER图转化为关系表结构。本文将介绍数据库范式并讨论如何范式化候选表。我们先来看一下此刻处在数据库生命周期中的位置(如下图所示)。前几篇博文中我们详细的讨论了ER建模的方法。精心设计的ER模型将帮助我们直接得到范式化的表或只需稍许修改即为范式化的表,设计、绘制ER图的重要性也体现在这里。概念转载 2016-03-28 22:04:01 · 446 阅读 · 0 评论 -
数据库设计Step by Step (11)——通用设计模式(系列完结篇)
引言:前文(数据库设计Step by Step (10)——范式化)我们详细讨论了关系数据库范式,始于第一范式止于BCNF范式。至此我们完成了数据库的逻辑设计,如下图所示。正如首篇博文数据库设计 Step by Step (1)——扬帆启航中介绍的,本系列博文关注通用于所有关系数据库的需求分析与逻辑设计部分。无论你使用的是Oracle,SQL Server,Sybase等商业数转载 2016-03-28 22:04:50 · 459 阅读 · 0 评论 -
数据库原理
转自:http://blog.jobbole.com/100349/一提到关系型数据库,我禁不住想:有些东西被忽视了。关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata 。但很少有文章讲解数据库是如何工作的。你可以自己谷歌/百度一下『关系型数据库原理』,看看结果多么的稀少【译者注:百度为您找到相关结果约1,850,000个…】 ,而且找到的那些文章都转载 2016-05-15 18:31:11 · 579 阅读 · 0 评论 -
Mongodb 与sql 语句对照
mongodb与mysql命令对比传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。 MyS转载 2017-10-10 16:12:14 · 338 阅读 · 0 评论 -
MySQL大表优化方案
转自:https://segmentfault.com/a/1190000006158186当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候My转载 2017-08-27 09:57:53 · 274 阅读 · 0 评论 -
Oracle 联接查询,字表多行字段合并为一行,以逗号分隔的查询SQL
Oracle 连接查询,字表多行字段合并为一行,以逗号分隔的查询SQL 要做什么看标题就懂了。。。 背景:1. 现有二表:test_main, test_sub 2. test_sub表的m_id是关联test_main的m_id字段的外键,main对sub为一对多。 求做成以下结果: 步骤 1. test_转载 2017-03-05 22:22:28 · 9902 阅读 · 4 评论 -
oracle的分析函数over(Partition by...) 及开窗函数
http://zonghl8006.blog.163.com/blog/static/4528311520083995931317/ over(Partition by...) 一个超级牛皮的ORACLE特有函数。天天都用ORACLE,用了快2年了。最近才接触到这个功能强大而灵活的函数。真实惭愧啊!oracle的分析函数over 及开窗函数一:分析函数over转载 2016-10-01 15:46:40 · 364 阅读 · 0 评论 -
sql case when then else end
sql case when then else end查询生成统计列表:[sql] view plain copy print?SELECT a.managecom, a.subtype, count(*) loadsucc, sum(case when a.state转载 2016-09-21 22:35:22 · 413 阅读 · 0 评论 -
oracle rowid与rownum的使用
一、rowid的定义: 1、rowid是数据库的一个伪列,建立表的时候数据库会自动为每个表建立ROWID列,是数据库中每一条记录的唯一标识,存储每条记录的实际物理地址,对记录的访问是基于ROWID。但它实际上不存储在表中,可以从表中查询,但不支持插入,更新,删除它们的值。 ROWID可以分为物理rowid和逻辑rowid两种。普通的堆表中的rowid是物理rowid,索引组织表(IOT)的转载 2016-09-21 22:24:30 · 1426 阅读 · 0 评论 -
Oracle数据库程序包全局变量的应用
1 前言 在程序实现过程中,经常用遇到一些全局变量或常数。在程序开发过程中,往往会将该变量或常数存储于临时表或前台程序的全局变量中,由此带来运行效率降低或安全隐患。 本文主要论述将全局变量或常数存取程序包的优点和实现方法。 2 优点 2.1 执行效率比存储于临时表高,不需要频率存取临时表 2.2 将全局变量藏于最后防线,安全性较高 2.3 在视转载 2016-09-21 22:22:18 · 781 阅读 · 0 评论 -
Rowid和Rownum的区别
Rowid和Rownum对于数据库开发人员来说基本很少用到,因为在企业数据库开发中大多都是进行数据批处理,但是对于其他数据库人员来说还是会用到的。rowid和rownum都是虚列,但含义完全不同。rowid是物理地址,用于定位oracle中具体数据的物理存储位置,而rownum则是sql的输出结果排序。通俗的讲:rowid是相对不变的,rownum会变化,尤其是使用order by的时候。转载 2016-08-25 10:22:44 · 3851 阅读 · 0 评论 -
Oracle中select ... for update的用法
语法:SELECT... FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED];其中OF 子句用于指定即将更新的列,即锁定行上的特定列;WAIT 子句指定等待其他用户释放锁的秒数,防止无限期的等待。使用“FORUPDATE WAIT”子句的优点如下:1防止无限期地等待被锁定的行;2允许应用程序中对锁的等待转载 2016-08-25 10:10:51 · 3753 阅读 · 0 评论 -
养成良好SQL书写习惯
我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。 要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么转载 2016-07-05 22:10:38 · 351 阅读 · 0 评论 -
关系型数据库表结构的两个设计技巧
By良少http://blog.youkuaiyun.com/shendl 关系型数据库表结构的设计,有下面两个设计技巧:物理主键作为关联的外键 关系型数据库,由多个数据表构成。每一个数据表的结构是相同的,不同表之间可能存在关联关系。表之间的关联关系,正是关系型数据库得名的原因。 一个表由多个字段构成。其中可能有多转载 2016-02-25 21:00:54 · 382 阅读 · 0 评论 -
数据库连接池原理分析
这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。一.早期我们怎么进行数据库操作 1.原理:一般来说,java应用程序访问数据库的过程是: ①装载数据库驱动程序; ②通过jdbc建立数据库连接; ③访问数据库,执行sql语句; ④断开数据库连接。转载 2016-04-01 15:43:12 · 317 阅读 · 0 评论 -
mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
在mysql中存在着各种utf8编码格式,如下表:1)utf8_bin2)utf8_general_ci3)utf8_general_csutf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。utf8_general_cs区分大小写,转载 2016-03-06 11:30:52 · 300 阅读 · 0 评论 -
沈剑:58同城数据库架构最佳实践
数据库的基本概念基本概念这一块,主要是让大家就一些数据库方面的概念达成一致。首先是“单库”,最初的时候数据库都是这么玩的,几乎所有的业务都有这样的一个库。接下来是“分片”,数据库的分片是解决数据量大的问题。如果数据量非常大,就要做水平切分,有一些数据库支持auto sharding。之前58同城也用过两年mongoDB,后来发现auto sharding功能转载 2016-01-20 19:12:41 · 465 阅读 · 0 评论 -
存储过程常用技巧
1.存储过程结构 1.1 第一个存储过程Java代码create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(20 ); begi转载 2015-12-17 19:36:50 · 570 阅读 · 0 评论 -
存储过程的优缺点
为什么要用存储过程几个去 IBM 面试的兄弟回来抱怨:去了好几个不同的 IBM 项目组,几乎每个面试官问到数据库的时候都要问用没用过存储过程,烦人不?大家去面的程序员,又不是 DBA,以前的项目都没有用到存储,不照样运行的好好的?存储过程真的那么重要吗,它到底有什么好处呢?笔者认为,存储过程说白了就是一堆 SQL 的合并。中间加了点逻辑控制。但是存储过程处理转载 2015-12-17 19:47:54 · 284 阅读 · 0 评论 -
OLAP、OLTP的介绍和比较
OLTP与OLAP的介绍 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直转载 2015-12-13 22:03:46 · 320 阅读 · 0 评论 -
centos6.5下安装mysql
centos6.5下安装mysql1.使用yum命令安装mysql[html] view plaincopy[root@bogon ~]# yum -y install mysql-server 2.设置开机启动[html] view plaincopy[root@bogon ~转载 2015-11-21 22:49:36 · 291 阅读 · 0 评论 -
truncate与delete的区别
truncate table命令将快速删除数据表中的所有记录,但保留数据表结构。这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的 可以做一个测试 建一个带有自增字段的表,加入100万数据 然后分别用TRUNCATE和DELETE删除转载 2015-11-21 15:05:56 · 275 阅读 · 0 评论 -
sql优化
优化SQL查询:如何写出高性能SQL语句1、 首先要搞明白什么叫执行计划?执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。可见,转载 2015-11-15 22:22:21 · 454 阅读 · 0 评论 -
完整的卸载MySQL 5.1的卸载方法
完整的卸载MySQL 5.1的卸载方法: 1、控制面板里的增加删除程序内进行删除 2、删除MySQL文件夹下的my.ini文件,如果备份好,可以直接将文件夹全部删除 3、开始->运行-> regedit 看看注册表里这几个地方删除没有 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\转载 2015-10-11 21:52:25 · 1565 阅读 · 0 评论 -
MyISAM InnoDB 区别
原文:http://www.php100.com/html/webkaifa/database/Mysql/2011/0326/7789.htmlMyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyI转载 2015-11-08 22:36:08 · 281 阅读 · 0 评论 -
sql 除法中如何防止被除数为0,以及SUM和舍入为指定的小数位数函数
[sql] view plaincopySUM(ROUND(case when S1.SAL_NOS_PRM_AMTthen S1.SAL_AMT when S1.SAL_AMTthen 0 else S1.SAL_AMT /转载 2015-11-04 20:52:37 · 2385 阅读 · 0 评论 -
TiDB:支持MySQL协议的分布式数据库解决方案
【编者按】TiDB 是国内 PingCAP 团队开发的一个分布式 SQL 数据库。其灵感来自于 Google 的 F1,TiDB 支持包括传统 RDBMS 和 NoSQL 的特性。在国内ITOM 管理平台OneAPM 举办的技术公开课中,TiDB的高级工程师刘奇从HBase特性、TiDB的优势和系统架构等方面进行了详细阐述。以下为演讲整理:HBase简介众所周知,在SQL方面处于顶转载 2016-01-20 22:47:13 · 872 阅读 · 0 评论 -
阿里服务互联网金融的关系数据库——OceanBase
摘要:4月2日,蚂蚁金服方面宣布,蚂蚁金服及阿里巴巴自主研发的通用关系数据库OceanBase已经开始支撑淘宝、天猫和聚划算的所有日常交易。编者按:时至今日,“Big data”(大数据)时代的来临已经毋庸置疑,尤其是在电信、金融等行业,几乎已经到了“数据就是业务本身”的地步。这种趋势已经让很多相信数据之力量的企业做出改变。为了应对大数据的冲击,淘宝将以前的Oracle、小型机、高端存转载 2016-01-20 22:49:31 · 1063 阅读 · 0 评论 -
NoSQL
【编者按】NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面。今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会。非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展,希转载 2016-01-21 22:57:32 · 338 阅读 · 0 评论