精华内容
下载资源
问答
  • sqliteDev,文件型数据库sqliteDev,文件型数据库sqliteDev,文件型数据库sqliteDev,文件型数据库sqliteDev,文件型数据库
  • 文件型数据库比较

    千次阅读 2012-09-01 09:28:11
    文件型数据库比较 TinyDB,access,ib,fb,easytable,mysql,DBISAM我都用过,在操作数据库时经过突然停电,突然重启动等因素折腾以后,数据库文件准坏。而且坏后99%不能修复。SQLite我用同样的方法,却没事,SQLite...

    http://zhangjiaweixt.iteye.com/blog/857653

    文件型数据库比较

    TinyDB,access,ib,fb,easytable,mysql,DBISAM我都用过,在操作数据库时经过突然停电,突然重启动等因素折腾以后,数据库文件准坏。而且坏后99%不能修复。SQLite我用同样的方法,却没事,SQLite数据库文件完好无损。
    特别是TinyDB,access,DBISAM,不断的有人报数据库损坏,把我害苦了。
    ib,mysql需要安装服务器程序,使用不太容易。easytable速度太慢。
    FB报数据库损坏倒是少了,但也有1%损坏率。
    突然停电,突然重启动等因素折腾,SQLite就这点值得去试试。我现在换SQLite数据库,看看实践中SQLite是不是能过硬。

    这断时间试了sqlite数据库
    sqlite和FB比,在单机上可解决三大问题:
    一:突然停电或系统突然重启动导至数据损坏。sqlite对这方面很大程度上避免这个问题方面做得比较好。
    二:加密功能,不用担心数据被别人复制到别的地方打开。而FB只要能复制到别的地方,随便可以打开。
    三:频烦的插入删除,更新数据,不会导至数据数据库很快增长。FB数据库快速度增长是容易导至数据库损坏的原因。
    这三个问题,是导至一个软件是否长期使用时的可靠性问题。
    我使用了各种办法想让sqlite数据库出现损坏(在操作数据库时用突然断电,强制杀死进程,重新启动等等),都没有办到。而FB这样折腾一会数据库文件准坏,且无法修复。
    sqlite缺点就是速度上比不上FB快。当然如果FB用的服务方式,还是很可靠的,可是,这样麻烦,小用户用这个也没有必要。
    使用了三年FB,看来要换一下了。

    firebird可靠性可是非常好的哦,打开force write,我的系统四年来几百份数据库从来没坏过一例,无论单机还是网络
    展开全文
  • node-webkit中js连接sqlite3文件型数据库

    千次阅读 2015-03-07 22:47:23
    最近一段时间因为要弄一个有趣的CS架构程序,需要找一个文件型数据库,最后决定用sqlite3数据库。但是js连接sqlite3 数据库伤透了脑筋。使用nodejs连接sqlite数据库但是node的ABI与node-webkit的ABI对不上号,就快在...
    过去一段时间因为要弄一个有趣的CS架构程序,需要找一个文件型数据库,最后决定用sqlite3数据库。但是js连接sqlite3 数据库伤透了脑筋。使用nodejs连接sqlite数据库但是node的ABI与node-webkit的ABI对不上号,就快在崩溃的边缘时找到了一个比较好的连接sqlite3数据库的工具sql.js。从此变得一发不可收拾。
    
        sql.js下载地址:https://github.com/kripken/sql.js
    
        下面是使用sql.js写的一个demo:
    
        需在页面上导入sql.js
    
             function test()
    
            {
    
    
    
                var fs = require("fs");
    
    
    
                //Create the database
    
                var db = new SQL.Database();
    
                  
    
                // NOTE: You can also use new sql.Database(data) where
    
                // data is an Uint8Array representing an SQLite database file
    
    
    
                // Execute some sql
    
                sqlstr = "CREATE TABLE hello (a int, b char);";
    
                sqlstr += "INSERT INTO hello VALUES (0, 'hello');"
    
                sqlstr += "INSERT INTO hello VALUES (1, 'world');"
    
                db.run(sqlstr); // Run the query without returning anything
    
    
    
                var res = db.exec("SELECT * FROM hello");
    
                
    
    
    
                // Prepare an sql statement
    
                var stmt = db.prepare("SELECT * FROM hello WHERE a=:aval AND b=:bval");
    
    
    
                // Bind values to the parameters and fetch the results of the query
    
                var result = stmt.getAsObject({':aval' : 1, ':bval' : 'world'});
    
                alert(result); // Will print {a:1, b:'world'}
    
    
    
                // Bind other values
    
                stmt.bind([0, 'hello']);
    
                while (stmt.step()) alert(stmt.get()); // Will print [0, 'hello']
    
    
    
                // free the memory used by the statement
    
                stmt.free();
    
                // You can not use your statement anymore once it has been freed.
    
                // But not freeing your statements causes memory leaks. You don't want that.
    
    
    
                // Export the database to an Uint8Array containing the SQLite database file
    
                var binaryArray = db.export();
    
                var buffer = new Buffer(binaryArray);
    
                fs.writeFileSync("filename.sqlite", buffer);
    
            }
    
        
    
         
    
    
    也可以使用自己新建的sqlite数据库文件
      导入方式:
        var fs = require( 'fs');
        var filebuffer =fs.readFileSync( 'test.sqlite'); // Load the db
        var db = new   SQL.Database(filebuffer);

        // Exportthe database to an Uint8Array containing the SQLite databasefile
           varbinaryArray = db.export();
           var buffer =new Buffer(binaryArray);
          fs.writeFileSync(" test.sqlite", buffer);

    展开全文
  • redis非关系型数据库详解

    万次阅读 2021-02-26 17:03:34
    Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,redis严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 ...

    Redis:

    ​ 学习redis和mysql是一样的:
    首先要明白,redis在6.0之前是单线程,过后是多线程的(实际好像还是单线程),redis是支持事务的,只是不支持事务回滚

    Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,redis严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

    redis提供了一堆操作方法【一堆命令操作数据】,我们使用这些方法就可以存入字符串,组织成各种数据结构(string,list,set,map等),使用起来更加方便。

    数据结构:String set list zset(有序并且不可重复集合) hash(map)等 redis存储数据都是以字符串的方式进行存放,它只是把最终存储的结果值,以一定结构进行存储

    NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,它泛指非关系型的数据库。随着互联网2003年之后web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的交友类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

    关系型数据库:以关系(由行和列组成的二维表)模型建模的数据库。 有表的就是关系型数据库。

    RDBMS: mysql,oracle,SQL server,DB2 ,postgresql等

    RBDMS 就是指 关系型数据库

    NoSql:非关系型数据库:Redis、MongoDb…

    注意:Redis是弥补关系型数据库不足之处,不是用来替代关系型数据库的

    在这里插入图片描述

    关系型数据库缺点:

    ​ 1.关系型数据库存储数据量是有极限的

    ​ 2.关系型数据库不支持高并发访问 (这点很重要)

    ​ 3.关系型数据库对列也是有限制的

    数据量大的时候就要考虑集群 分库 分表

    非关系型数据库优点:

    ​ 1.只要内存足够,它可以存储数据量是无限的

    ​ 2.非关系型数据库它支持高并发访问,

    ​ 补充特点(优势)

    1.数据保存在内存,存取速度快,并发能力强

    2.它支持存储的value类型相对更多,包括string(字符串)、list(列表)、set(集合)、 zset(sorted set --有序集合)和hash(哈希类型 - map)。

    3.redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库(如MySQL)起到很好的补充作用。

    4.它提供了Java,C/C++,C#,PHP,JavaScript等客户端,使用很方便。

    5.Redis支持集群(主从同步)。数据可以主服务器向任意数量从的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。

    6.支持持久化,可以将数据保存在硬盘的文件中

    7.支持订阅/发布(subscribe/publish)功能 QQ群 - 群发

    Redis 是存储在内存和磁盘中,不写sql语句,使用场景 :做缓存

    redis存储数据都是以字符串形式进行存储,它只是把存储的值 排列成有一定的格式,支持5种格式 String 、 list(集合)、 set(无序集合)、 hash(key value)、 zset (有序集合,并且不可重复)

    点赞 评论 转发这些就只能用redis来做,解决高并发问题

    光靠redis 解决不了高并发问题,还要靠集群 、分布式 、队列 等等

    Mysql、Memcached和Redis的比较

    mysqlredismemcached
    类型关系型非关系型非关系型
    存储位置磁盘磁盘和内存内存
    存储过期不支持支持支持
    读写性能非常高非常高

    Redis使用场景:

    中央缓存:

    经常查询数据,放到读速度很快的空间(内存),以便下次访问减少时间。减轻数据库压力,减少访问时间.而redis就是存放在内存中的。

    Hibernte二级缓存

    计数器应用:

    网站通常需要统计注册用户数,网站总浏览次数等等

    新浪微博转发数、点赞数

    实时防攻击系统

    暴力破解:使用工具不间断尝试各种密码进行登录。防:ip—>num,到达10次以后自动锁定IP,30分钟后解锁

    解决方案:

    1、存数据库

    登录操作的访问量非常大

    2、static Map<String,int> longinFailNumMap;

    ​ Map存储空间有限,大批量就不行,并且断电以后数据丢失。

    问题:

    1、每次查询数据库,查询速度慢,多次写 内存

    2、断电会丢失数据,多个节点,不能共用 redis集群,容量可以无限大,可以共享数据、并且支持过期

    设定有效期的应用:

    vip,红包,当session使用,存储登录对象, 设定一个数据,到一定的时间失效。 自动解锁,购物券 游戏道具(7)

    自动去重应用:

    Uniq 操作,获取某段时间所有数据排重值 这个使用 Redis 的 set 数据结构最合适了,只需要不断地将数据往 set 中扔就行了,set 意为 集合,所以会自动排重。

    队列:

    构建队列系统 使用 list 可以构建队列系统,使用 sorted set 甚至可以构建有优先级的队列系统。

    秒杀:可以把名额放到内存队列(redis),内存就能处理高并发访问。

    消息订阅系统:

    Pub/Sub 构建实时消息系统 Redis 的 Pub/Sub 系统可以构建实时的消息系统,比如很多用 Pub/Sub 构建的实时聊天系统 的例子。比如QQ群消息

    排行榜:

    zset有排序功能 ,可以实现各种排行榜

    安装redis

    ​ redis.windows.conf redis核心配置文件

    ​ redis-server.exe 启动redis服务核心文件

    ​ redis-cli.exe 启动客户端

    默认端口 为 :6379

    连接redis服务命令:redis -cli.exe -h 127.0.0.1 -p 6379

    可以简写 redis -cli.exe 默认连接本机服务,并且端口号6379

    支持的五种数据格式:

    String操作命令:

    ​ set key value 一次性设置一个key值和value值

    ​ get key 通过key值获取value值

    ​ mset key1 value1 key2 value2…一次性设置多个key值和value

    ​ mget key1 key2 key3 …通过多个key值获取对应的value值

    redis对key的操作命令:

    ​ keys * 把当前库所有的key值展示出来,

    ​ expire key seconds 设置指定的key值有效期为seconds秒

    ​ ttl key 查询指定的key值,存活有效期,值>0 存活多少秒 值=-2没有该值,不存在 ,值=-1 永久存活

    ​ incr key 自增1(前提:你的值必须是数字型字符串)

    ​ decr key 自减1(前提:你的值必须是数字型字符串)

    ​ incrby key number 自增number (前提:你的值必须是数字型字符串)

    ​ decrby key number 自减number(前提:你的值必须是数字型字符串)

    ​ del key1 key2 key3 …删除指定的键值对

    redis对库的操作

    ​ redis默认有16个库 索引 :0-15

    ​ 选择指定的库 :select index

    ​ 清空当前库: flushdb (慎用)

    ​ 清空所有的库:flushall(慎用)

    redis 对list的操作命令:

    ​ 栈:FiLO(先进后出),控制同一边进出。

    队列:FIFO(先进先出),控制从一边进,另一边出。

    list集合可以看成是一个左右排列的队列(列表)

    lpush key value //将一个或多个值 value 插入到列表 key 的表头(最左边)

    rpush key value //将一个或多个值 value 插入到列表 key 的表尾(最右边)

    lpop key //移除并返回列表 key 的头(最左边)元素。

    rpop key //移除并返回列表 key 的尾(最右边)元素。

    ​ 一个key 对应多个value值

    ​ lpush key value1 value2 value3 …向左添加数据

    ​ rpush key value1 value2 value3 …向右添加数据

    ​ lindex key index 根据指定的索引查询集合中的数据

    ​ lrange key begin end 查询指定范围的集合数据

    ​ lrange key 0 -1查询集合中所有的数据

    ​ lrem key number value 删除 number 大于0从左向右删除,number个value值

    ​ number小于0 从右向左删除number个value值

    ​ number等于0 删除所有的value值

    ​ lpop key 移除并返回列表 key 的头 (最左边) 元素

    ​ rpop key 移除并返回列表 key 的尾 (最右边) 元素

    redis 对set的操作命令:

    ​ set 无序 去重

    ​ sadd key value1 value2 value3… 添加值

    ​ smembers key 查询所有的值

    ​ srem key value1 value2 …删除值

    redis 对hash的操作命令:

    ​ hash类型类似于php的数组

    hset key name value//添加一个name=>value键值对到key这个hash类型

    hget key name //获取hash类型的name键对应的值

    hmset key name1 key1 name2 key2 //批量添加name=>value键值对到key这个hash类型

    hmget key name1 name2//批量获取hash类型的键对应的值

    hkeys //返回哈希表 key 中的所有键

    hvals //返回哈希表 key 中的所有值

    hgetall //返回哈希表 key 中,所有的键和值

    我们将user:1(name:zhangsan,age:18,sex:nv)的信息保存在hash表.

    redis对zset的操作命令:

    ​ 有序集合

    zadd key value key2 value

    redis设置密码:

    核心配置文件里面搜索requirepass 默认注释的,填上密码即可

    启动服务要根据配置文件来

    登陆autu 密码

    java操作数据库:

    ​ 创建普通java项目 引入 jar包

    IDEA Ctrl + P 查看需要哪些参数信息

    public class jedisTest {
        @Test
        public void testName(){
            //设置Ip
            String host="127.0.0.1";
            //设置端口号
            int port = 6379;
            //超时时间
            int timeout =10000;
            //创建jedis客户端
            Jedis jedis = new Jedis(host,port,timeout);
            //有密码的时候输入
            //jedis.auth("123456");
            //设置多个key value
            jedis.mset("name", "空灵", "age", "25");
            //通过key获取value值
            List<String> values = jedis.mget("name", "age");
            for (String value : values) {
                System.out.println(value);
            }
            //关闭资源
            jedis.close();
        }
    
    }
    

    连接池操作:

    //连接池
        @Test
        public void poll(){
            JedisPoolConfig config = new JedisPoolConfig();
            //设置最大连接数量
            config.setMaxTotal(10);
            //设置最小连接
            config.setMinIdle(2);
            //创建连接池,有密码的时候就加上 总共有5个参数,
            //1 配置参数、连接地址、端口号、超时时间、密码
            JedisPool jedisPool = new JedisPool(config, "127.0.0.1", 6379, 2000);
            //获取连接对象
            Jedis jedis = jedisPool.getResource();
            //设置多个key value
            jedis.mset("name","李东来","age","26","sex","1");
            //根据KEY取值
            List<String> values = jedis.mget("name", "age", "sex");
            //遍历
            for (String value : values) {
                //输出values值
                System.out.println(value);
            }
            //关闭资源
            jedis.close();
        }
    

    连接池属于重量级资源 ,不要关闭

    //jedis获取连接池对象工具类
    public enum JedisUtil {
        Instance;
        private static JedisPool jedisPool;
    
        static {
            try {
                JedisPoolConfig config = new JedisPoolConfig();
                //设置最大连接数量
                config.setMaxTotal(10);
                //设置最小连接
                config.setMinIdle(2);
                //创建连接池
                jedisPool = new JedisPool(config, "127.0.0.1", 6379,
                        2000);
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("创建连接失败");
            }
    
        }
    
        //获得连接池对象的方法
        public Jedis getResource() {
            return jedisPool.getResource();
        }
    
        //设置key value
        public void setKeyValue(String key, String value) {
            Jedis jedis = null;
            try {
                jedis = getResource();
                jedis.set(key, value);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (jedis != null) {
                    //关闭资源 
                    jedis.close();
                }
            }
        }
    
        //通过key 取value
        public String get(String key) {
            Jedis jedis = null;
            try {
                jedis = getResource();
                return jedis.get(key);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (jedis != null) {
                    //关闭资源
                    jedis.close();
                }
            }
            return null;
        }
    }
    

    Redis持久化配置(重点)

    1.1. 配置文件中常见配置

    bind logfile lognotice save oppenonly

    1.2. 简介

    在这里插入图片描述

    Redis 提供了两种不同级别的持久化方式:RDB和AOF,可以通过修改redis.conf来进行配置.

    在这里插入图片描述

    在这里插入图片描述

    1.3. RDB模式

    RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启该模式.

    如何关闭 rdb 模式:

    save “”

    # save 900 1 //至少在900秒的时间段内至少有一次改变存储同步一次

    # save xxx

    # save 60 10000

    1.4. AOF追加模式

    AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,默认关闭该模式。

    如何开启aof模式:

    appendonly yes //yes 开启,no 关闭

    # appendfsync always //每次有新命令时就执行一次fsync

    #这里我们启用 everysec

    appendfsync everysec //每秒 fsync 一次

    # appendfsync no //从不fsync(交给操作系统来处理,可能很久才执行一次fsync)

    其它的参数请大家看redis.conf配置文件详解

    redis是怎么保存数据?

    redis为了考虑效率,保存数据在内存中.并且考虑数据安全性,还做数据持久化,如果满足保存策略,就会把内存的数据保存到数据rdb文件,还来不及保存那部分数据存放到aof更新日志中。在加载时,把两个数据做一个并集

    淘汰策略:

    为什么要淘汰数据
    淘汰一些数据,达到redis数据都是有效的,节约内存资源。选择合适的淘汰策略进行淘汰。
    怎么淘汰
    淘汰一些数据,达到redis数据都是有效的。选择合适的淘汰策略进行淘汰。
    volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
    volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
    volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
    allkeys-lru:从所有数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
    allkeys-random:从所有数据集(server.db[i].dict)中任意选择数据淘汰
    no-enviction(驱逐):禁止驱逐数据
    redis 确定驱逐某个键值对后,会删除这个数据并,并将这个数据变更消息发布到本地(AOF 持久化)和从机(主从连接)。

    Redis存放数据永远过期。 allkeys-lru
    volatile-lru,volatile-ttl随意就OK

    并且对于缓存而已,就算错误删除也没有关系,如果不是缓慢,集群。

    回顾mysql连表查询:

    ​ 1 外联接

    1.1左外连接 只记左外连接就好

    ​ select * from A a left join B b on a.id =b.aid

    ​ 多表查询:左表所有数据都会展示出来,右边满足条件的则把数据展示 出来,如果右表不能满足条件,则以null进行填充

    ​ 1.2右外连接 :和左外连接相反

    ​ 2 内联接: 多表查询,左表右表同时满足条件的展示出来,不满足条件的全部过滤掉

    2.1显示内连接 只记这个

    ​ select * from A a [inner] join B b on a .id =a_id

    ​ 2.2隐式内连接

    ​ select * from A a ,B b where a.id=b.a_id

    idea打断点:

    必须是debug模式运行项目

    展开全文
  • 数据库根据其数据的存储方式可以分为关系型数据库和非关系型数据库。常见的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。常见的非关系性数据库有 NoSql、Cloudant,Hbase等 3....

    1.什么是数据库:

    存储电子文件的处所,用户可以对文件中的数据增删改查等操作。

    2.数据库的种类:

    数据库根据其数据的存储方式可以分为关系型数据库和非关系型数据库。常见的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。常见的非关系性数据库有 NoSql、Cloudant,Hbase等

    3.数据库的存储方式:

    关系型数据库:

    1)以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。

    2)关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名。 元组:可以理解为二维表中的一行,在数据库中经常被称为记录。 属性:可以理解为二维表中的一列,在数据库中经常被称为字段。 域:属性的取值范围,也就是数据库中某一列的取值限制。 关键字:一组可以唯一标识元组的属性。数据库中常称为主键,由一个或多个列组成。 关系模式:指对关系的描述,其格式为:关系名(属性1,属性2,…,属性N)。

    3)数据存储方式:行存储,一个表里每一个对象的记录存储一行,一行里包括了该记录的所有特征

    key 列1 列2 列3

    1 1 1 1

    非关系型数据库:

    1)以列为单位进行数据的存储,一列作为一个记录,每个对象的记录会存储多行,各行相对独立;

    2)数据存储方式:

    key 列名 值

    1 列1 1

    1 列2 1

    1 列3 1

    4.关系型数据库的优缺点及使用场景:

    优点:

    1)复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

    2)事务支持使得对于安全性能很高的数据访问要求得以实现。

    缺点:

    1)不擅长大量数据的写入处理

    2)不擅长为有数据更新的表做索引或表结构(schema)变更

    3) 字段不固定时应用不方便

    4)不擅长对简单查询需要快速返回结果的处理

    使用场景:

    1)需要做复杂处理的数据;

    2)数据量不是特别大的数据;

    3)对安全性要求高的数据;

    4)数据格式单一的数据;

    5.非关系型数据库的优缺点及使用场景:

    优点:

    1)nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。

    2)nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。

    3)nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。

    4)不支持Join处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作当然也同样容易。

    缺点:

    1)无法对表进行复杂的计算,不支持join等功能。

    使用场景:

    1)海量数据存储;

    2)多格式的数据存储;

    3)对查询速度要求快的数据存储;

    展开全文
  • 关系型数据库与非关系型数据库

    万次阅读 2018-04-18 15:45:07
    当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。非关系型数据库有 NoSql、Cloudant。非关系型数据库的优势: 1. 性能NoSQL是基于键值对的,可以想象成表中的主键和值的...
  • MongoDB2.1、安装启动2.1.1、下载安装2.1.2、后台启动2.1.3、查看是否启动2.1.4、如果开了外网端口,用浏览器查看是否外网访问2.2、常用命令2.2.1、连接mongo2.2.2、显示数据库列表2.2.3、显示表单(集合)列表2.2.4...
  • 文档型数据库

    万次阅读 2018-11-21 08:48:37
    文档型数据库 简介 1. MongoDB:文档型数据库,按照文档的形式存储 a. Web App(用的较多) 2. 数据库管理系统(DBMS) a. 需要把具体如何实现的如 增删改查 隐藏在系统软件中,对用户软件透明 基础概念: a. ...
  • 在ArcGIS中使用ArcPython批量合并多个文件型地理数据库(*.gdb)或个人地理数据库(*.mdb) 最近在做农村地籍建库和汇交工作,其中需要把某个县市100多个村子的农村地籍数据库合并在一起,最终作为这个县市的...
  • 在文档型NoSQL数据库出现之前,许多开发者一直绞尽脑汁思考,希望能想出更好的处理关系型数据库技术的方法,如今他们可能要跳出那种思维而另辟蹊径。本文将介绍关系型数据库和分布式文档型数据库的区别以及在应用...
  • 关系型数据库的发展历史

    千次阅读 2019-03-12 23:15:03
    数据库发展史 信息系统产生了海量的数据,有数据必须要有数据的存放位置, 无库时代 :没有专门的...非关系型数据库:为适应水平扩展性和处理超大量的数据环境,近几年发展非常迅速的发展,衍生类型非常多。 本...
  • 一、关系型数据库  关系型数据库,是指采用了关系模型来组织数据的数据库。  关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几十年中,关系模型的概念得到了充分的发展并逐渐成为主流数据库...
  • 数据库种类及关系型数据库原理

    千次阅读 2017-09-14 08:02:25
    一、数据库种类及关系型数据库原理1.1数据库种类:按照早期的数据库理论,比较流行的数据库模型有三种: 层次式数据库 网络式数据库 关系型数据库 在当今互联网中,最常用的数据库模型: 关系型数据库 非关系...
  • 关系型数据库和非关系型数据库

    千次阅读 2016-05-25 20:52:05
    虽然学了大半个学期的数据库…但是还是很懵逼的… 面试官问我为什么博客是用mongodb而不是其他的…我知道要说mongodb的优点...1.关系型数据库和非关系型数据库的区别(优缺点,适用环境) 2.为什么是mongodb 1.关系型
  • 一、关系型数据库 &nbsp;&nbsp;&nbsp; 关系型数据库,是指采用了关系模型来组织数据的数据库。 &nbsp;&nbsp;&nbsp; 关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几...
  • Python批量操作文件写入数据库及从数据库取数据

    万次阅读 多人点赞 2020-07-20 12:55:23
    博主工作长期需使用到数据库查询数据,因而接触到了数据库的一些皮毛知识。但是数据库和办公网不能互通,远端访问也没法实现,所以长期以来查询数据都相当麻烦。近期博主在自己的工作电脑上搭建了一个的MySQL数据库...
  • 从关系型数据库到非关系型数据库

    千次阅读 2012-07-07 20:21:15
    自1970年,埃德加·科德提出关系模型之后,关系数据库便开始出现,经过了40多年的演化,如今的关系型数据库具备了强大的存储、维护、查询数据的能力。但在关系数据库日益强大的时候,人们发现,在这个信息爆炸的...
  • 1.关系型数据库和非关系型数据库的区别(优缺点,适用环境) 2.博客为什么是mongodb 1.关系型 代表数据库系统:MySQL, SQL Server, Oracle, 关系型数据库的表是二维表,结构稳定,修改不易。经常需要联表查询...
  • 而在当今的互联网中,最常见的数据库模型主要是两种,即SQL关系型数据库和NoSQL非关系型数据库。 2.什么是关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户...
  • 关系型数据库与分布式数据库

    万次阅读 2018-01-28 10:27:48
    关系型数据库 当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL 关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中...
  • 使用redis实现关系型数据库表设计

    万次阅读 2016-12-24 15:22:47
    经过调研以后发现,如果以关系型数据库来实现,单表会出现很多冗余字段,如上述两种文件,需要设计6个字段来存储相关转码信息,但对特定的一种文件来说,只利用了三个字段。 而如果使用分表方式可以避免冗余,单表结果变...
  • NoSQL并不是关系型数据库管理系统,本文将会介绍NoSQL数据库与关系型数据库之间的差别,同时还会讨论在何种场景下应该使用NoSQL,何种场景下不应该使用。由于NoSQL还是个相对较新的技术,因此它还面临着很多挑战。 ...
  • 关系型数据库与Key-value型数据库Mongodb模式设计对比  MongoDb相比于传统的SQL关系型数据库,最大的不同在于它们的模式设计(Schema Design)上的差别,正是由于这一层次的差别衍生出其它各方面的不同。  我们...
  • 目录: 1.什么是数据库 2.数据库的种类 3.数据库的存储方式 4.关系型数据库的优缺点及使用场景 ...数据库根据其数据的存储方式可以分为关系型数据库和非关系型数据库。常见的关系型数据库有Oracle、D...
  • [数据库]---nosql,非关系型数据库整理

    千次阅读 2018-06-20 22:49:25
    1.关系型数据库与非关系型数据库的区别 2.非关系型数据库的分类  2.1 k-v型存储 2.1.1 Redis   2.2 列存储 2.2.1 Hbase   2.3 文档存储 2.3.1 MongoDB   2.4 图型存储  待研究 3.非关系...
  • 非关系型数据库 入门简介

    千次阅读 2019-07-01 16:18:09
    非关系型数据库也叫Nosql数据库,全称是not noly sql非关系型数据库提出另一种理念,例如,以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限...
  • 大家好,我是魔王哪吒,话不多说,今天带来的是一篇《考前复习必备MySQL数据库(关系型数据库管理系统)》文章,欢迎大家喜欢。前言MySQL是一个关系型数据库管理系统,在web应用方面,M...
  • 在ArcGIS中使用ArcPython批量合并多个文件型地理数据库(*.gdb)或个人地理数据库(*.mdb) 使用场景:其中需要把某个县市100多个地籍数据库合并在一起,最终作为最终数据整理汇交, 打开ArcMap的Python窗口,...
  • 最近接了个需求,就是要统一如题的各种接口,小弟从来没做过类似的东西。希望各位能给点例子。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 524,258
精华内容 209,703
关键字:

文件型数据库