数据库

2012数据库技术发展现状与未来趋势

a 夏天 提交于 2020-11-02 14:46:56
近几年来,NoSQL运动如火如荼,不断有业内的巨头加入阵营,发布和推广NoSQL的相关产品,开拓应用场景。传统关系型数据库软件厂商也不甘寂寞,新产品、新版本、新特性不断发布,新官司、新收购也频频爆出,即使一向沉静的数据库市场,也被震出了几丝波澜。   就让我们一起来回顾近两年间数据库市场的风云变幻和起伏跌宕,并展望未来几年,数据库市场及相关领域的发展吧。    ORACLE 依然拉风   进入2012年,ORACLE继续拉风的强势,据Gartner近期发布的调查报告显示,在RDBMS市场,Oracle的市场份额已经占到48.1%,仍然位居第一位,其市场份额超过了之后的五个竞争对手的总和。   近些年来,ORACLE在资本层面频频发起重量级的并购,先后收购了PeopleSoft、BEA、SUN等知名软件企业,极大增强了自家整体实力。产品线上也是四面出击,现如今的ORACLE早已由一个单纯的数据库软件厂商,蜕变成产品集合涵盖了包括数据库、中间件、操作系统、企业化管理、商业智能、虚拟机、开发工具等,从软件到硬件,可对外提供完整企业解决方案的巨无霸厂商,完成从卖产品到卖服务的重大角色转变。   ORACLE的产品线漫长且数量众多,进入2012年,在笔者看来,下列产品值得着重描述,这些产品未来的发展,也有可能会对整个市场产生重大影响。   1) Exadata   2008年的OOW大会上

MySQL数据库的维护处理

五迷三道 提交于 2020-10-28 10:05:26
1、维护,主要是日志记录在维护中的处理,日志记录文件通常保存在与数据文件相同的目录之中,比如:Unix系统中的/usr/local/mysql/var或是/usr/local/mysql/data,在Windows中则是c:\mysql\data目录,日志记录分为以下几类: 一、错误日志:保存了服务器上发生的每个错误的记录;如果需要激活错误日志,添加--log-error选项到服务器启动命令行或选项文件中,比如: [root@host175 ~]# /etc/rc.d/init.d/mysqld start --log-error Starting MySQL [ OK ] 这个日志的文件名一般是以.err为结尾的。比如我机器上的host175.err,如下蓝色字体标记的: [root@host175 ~]# ls /usr/local/mysql/var/ WorkDB ibdata1 mysql-bin.000008 mysql-bin.000017 greedland mysql mysql-bin.000009 mysql-bin.000018 host.test.com.err mysql-bin.000001 mysql-bin.000010 mysql-bin.000019 host.test.com.pid mysql-bin.000002 mysql-bin

Django基于ORM操作数据库的方法详解

安稳与你 提交于 2020-05-08 04:49:53
本文实例讲述了Django基于ORM操作数据库的方法。分享给大家供大家参考,具体如下: 1、配置数据库 vim settings #HelloWorld/HelloWorld目录下 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #mysql数据库中第一个库test 'NAME': 'test', 'USER': 'root', 'PASSWORD': '123456', 'HOST':'127.0.0.1', 'PORT':'3306', }, 'article': { 'ENGINE': 'django.db.backends.mysql', # mysql数据库中第二个库test2 'NAME': 'test2', 'USER': 'root', 'PASSWORD': '123456', 'HOST':'127.0.0.1', 'PORT':'3306', } } 2、在项目目录中建立“web站点”(app) django-admin.py startapp blog ##HelloWorld/目录下建立网站app,我建了两个app(blog和article) 3、配置新建的app(blog和article) vim settings ##/HelloWorld/HelloWorld目录下

事物的4中隔离级别,及在spring事物中的对应关系

纵然是瞬间 提交于 2020-04-18 01:59:12
注意事项:注解方式实现事物,在同一个类中非事物方法调用事物方法,注解失效,原因注解都是通过aop实现的,不光事物的注解无效,其他注解也会失效。 Read uncommitted 读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。 事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,但是事务还没有提交,就在这时,程序员去查看自己这个月的工资,发现比往常多了3千元,以为涨工资了非常高兴。但是老板及时发现了不对,马上回滚差点就提交了的事务,将数字改成3.6万再提交。 分析:实际程序员这个月的工资还是3.6万,但是程序员看到的是3.9万。他看到的是老板还没提交事务时的数据。这就是脏读。 那怎么解决脏读呢?Read committed!读提交,能解决脏读问题。 Read committed 读提交,顾名思义,就是一个事务要等另一个事务提交后才能读取数据。 事例:程序员拿着信用卡去享受生活(卡里当然是只有3.6万),当他埋单时(程序员事务开启),收费系统事先检测到他的卡里有3.6万,就在这个时候!!程序员的妻子要把钱全部转出充当家用,并提交。当收费系统准备扣款时,再检测卡里的金额,发现已经没钱了(第二次检测金额当然要等待妻子转出金额事务提交完)。程序员就会很郁闷,明明卡里是有钱的… 分析

开源中国 OsChina Android 客户端源码分析(8)数据库Sqlite

走远了吗. 提交于 2020-04-17 04:07:45
【推荐阅读】微服务还能火多久?>>> 1开源中国客户端使用的数据库部分的源码在net.oschina.app.db包下,两个类一个是用于管理数据库的创建类DatabaseHelper,继承SQLiteOpenHelper,另一个是用于数据库的增删改查的工具类 NoteDatabase 。那么数据库在开源中国源码中哪一模块用到了呢? 便签管理,便签是什么?就是一个记事本的功能o(^▽^)o 2关于 SQLiteOpenHelper的使用,自己之前的项目中没有用到过,看了下,这里有个体会:当获取到 SQLiteOpenHelper实例,并使用getWritableDatabase或者getReadableDatabase打开数据库时,如果数据库没有建立,则建立数据库,并回调oncreate方法,那么数据库建立好了,我们就可以在oncreate方法里完成数据表的建立或者数据的初始化。 3既然要创建数据库,那么数据库的名字,初始化建立的表,版本号这些参数,就需要在 SQLiteOpen Helper类中声明。 4在 数据库的增删改查的工具类 NoteDatabase中,我们发现采用了组合的方式,在其构造函数中完成了 SQLiteOpen Helper实例化,这样在内部声明的方法中,我们就可以直接使用 SQLiteOpen

MongoDb基本操作

别说谁变了你拦得住时间么 提交于 2020-04-17 03:43:15
【推荐阅读】微服务还能火多久?>>> 基本操作 简单操作 mongo #连接mongodb >show dbs #查看所有数据库 local 0.078125GB test 0.203125GB >use local #切换到local switched to db local > show collections #查看local的所有collection startup_log >db.startup_log.find() #产看startup_log { "_id" : "jlan-pc-1466044795232", "hostname" : "jlan-pc", "startTime",...} > db.createCollection('startup_log2') #创建collection { "ok" : 1 } >db.startup_log.remove() #清空collection 数据导出 mongoexport -d local -c startup_log -o startup_log.json #把startup_log导出为json文件,在终端执行 mongoexport -d local -c startup_log --csv -f _id,hostname,startTime -o startup_log.csv #startup

Derby使用3—Embedded模式

对着背影说爱祢 提交于 2020-04-16 11:32:10
【推荐阅读】微服务还能火多久?>>> 零、回顾 这部分先来回顾一下上两篇博客中的主要内容。第一篇博客中主要简单介绍了Derby数据的历史,特点,安装以及使用的两种模式。第二篇文章主要介绍了客户机-服务器(C/S)模式的使用。今天继续介绍第二种使用模式,内嵌模式(Embedded Mode)。 一、客户端使用内嵌模式 与之前介绍的C/S模式不同,使用内嵌模式时不需要开启一个数据库的服务进程来监听并处理客户端的请求,客户端可以自行的完成这些命令。所以使用内嵌模式是有一定优势的。 下面来具体介绍这种模式的使用。首先还是要设置好CLASSPATH的环境变量。同样有两种方法,即使用Derby数据库编译好的脚本文件。可以执行命令: setEmbeddedCP 将所需要的jar文件配置在CLASSPATH环境变量中。或者自己手动加入,执行命令: export CLASSPATH=$DERBY_HOME/lib/derbytools.jar:$DERBY_HOME\lib\derby.jar: 我们还是需要运行ij工具,运行方式可以参照上一篇博客。之后还是执行连接数据库的命令: jdbc:derby:DB_Path/DB_NAME;create=true' 这里需要多说一句,就是查找数据路径的根目录位置,如果没有设置derby.system.home(即数据库主目录的位置)

java实现调用Mysql存储过程分析代码

*爱你&永不变心* 提交于 2020-04-11 17:43:57
数据库的测试代码如下 : 1、新建表test,sql代码如下: create table test( field1 int not null ) TYPE=MyISAM ; insert into test(field1) values(1); 2、删除已存在的存储过程,代码如下: delimiter // -- 定义结束符号 drop procedure p_test; 3、mysql存储过程定义,代码如下: create procedure p_test() begin declare temp int; set temp = 0; update test set field1 = values(temp); end 4、 Java调用带有输入参数的存储过程,代码如下: public static void callIn(int in){ //获取连接 Connection conn = ConnectDb.getConnection(); CallableStatement cs = null; try { //可以直接传入参数 //cs = conn.prepareCall("{call sp1(1)}"); //也可以用问号代替 cs = conn.prepareCall("{call sp1(?)}"); //设置第一个输入参数的值为110 cs.setInt(1,

oracle数据库常用语法(中文注释版)

一笑奈何 提交于 2020-04-10 18:30:47
-- 查看系统所有变量值 show all -- 显示当前连接用户 show user -- 显示表结构 desc 表名 -- 显示错误 show error -- 退出 exit; 表空间是数据库中最大的逻辑单位,一个oracle中至少有一个表空间,varchar2是oracle独有的.每个数据库中都有一个名为system的表空间,即系统表空间,用于存放数据库字典表、程序单元、过程、函数包和触发器等。一个数据库文件只能与一个表空间相联系,每个表空间由一个或多个数据文件组成。 -- 创建表空间 create tablespace 表空间名 --创建表空间同时制定数据文件路径大小 (size后为表空间大小单位为K或者M) create tablespace 表空间名 datafile '数据文件路径' size 10M autoextend on -- 删除表空间 drop tablespace 表空间名 -- 修改表空间 alter tablespace 表空间名 add datafile '文件路径' size 大小 -- 授予权限 grant 角色权限(角色)[,角色权限] to 用户 -- 查看当前用户的系统权限 select * from user_sys_privs -- 收回权限 revoke 角色权限 from 用户 -- 创建表 create table 表名 (

android原生的数据库实现[ContentProvider+SQLiteOpenHelpe...

人盡茶涼 提交于 2020-04-10 08:55:57
先吐槽下:最近几周压力老大了,前面我们三个ios开发人员花了一个多月开发的应用要移植到android上,由于应用相对比较复杂,有拖拽排序、离线下载、二维码扫描,而这次,另一个ios开发人员离职,剩下的另一个还没做个android,得由我带,于是,我估计了下开发时间,大约34天,我将计划发给领导,领导却说最多给我15天,我半天没说一个字:*&%¥#%**&⋯⋯&& 哎,出来混的,不管怎样,尽量吧。 这个开发,我们四张表要操作,相对于一般的移动应用,还是比较大的,故数据库实现肯定是整个开发的第一个和至关重要的一步,于是,我整理了下面这个demo。 其实网上有很多比较不错的orm移动开发框架,相对还是比较优秀,可以节省大把的开发时间,但我个人认为,现在这个还不是很稳定,而且,在效率上,我持保守态度,移动开发上, 应相对的少用反射和抽象接口 ,而网络上的一些第三方的框架,却抓住这个大用特用,个人觉得,不大好,另外,采用android原生的数据库实现方案,还有个极大的好处是: 很容易实现产品生态系统,这个是其他的orm所不易达到的 。也即,可以轻而易举地实现我们的几个应用间的数据共享和交互,URI访问即可,从而形成一个生态圈的目的,具体的,就不多说了。 这个demo是一个完整的db操作,但只给出了一个实体的db实现,不过,足以: 程序结构图: 后面的所有db操作