精华内容
下载资源
问答
  • 常用的数据库有哪些?redis用过吗? 常见的主流数据库(DBMS):https://blog.csdn.net/gengkui9897/article/details/89294936 关系型数据库 MySQL数据库 Microsoft SQL Server数据库 Oracle数据库 Postgresql...
    常用的数据库有哪些?redis用过吗?

    常见的主流数据库(DBMS):https://blog.csdn.net/gengkui9897/article/details/89294936
    关系型数据库

    1. MySQL数据库
    2. Microsoft SQL Server数据库
    3. Oracle数据库
    4. Postgresql数据库
    5. Sybase数据库
    6. DB2数据库
    7. Access数据库

    非关系型数据库

    1. Mongodb数据库
    2. Redis数据库
    3. Hbase数据库
    4. Memcaced数据库

    常见的nosql数据库有哪些?以及他们的特点与区别?:
    https://blog.csdn.net/wyz0516071128/article/details/80877984

    Redis 和 Memcached 和mongodb的区别

    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。

    MongoDB是一个基于分布式文件存储的数据库,文档型的非关系型数据库,与上面两者不同。

     

     

    1.性能上:
         性能上都很出色,具体到细节,由于 Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比 Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起 Memcached,还是稍有逊色。
    前两者性能差不多,大于 Mongodb。
     
    2.内存空间和数据量大小:
         MemCached可以修改最大内存,采用LRU算法。Redis增加了VM的特性,突破了物理内存的限制。(2.4后取消
       MongoDB 适合大数据量的存储,依赖操作系统 VM 做内存管理,吃内存也比较厉害,服务不要和别的服务在一起。
     
    3.操作便利上:
         MemCached数据结构单一,仅用来缓存数据,而Redis支持更加丰富的数据类型,也可以在服务器端直接对数据进行丰富的操作,这样可以减少网络IO次数和数据体积。
       Mongodb 支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。
     
    4.可靠性上:
         MemCached不支持数据持久化,断电或重启后数据消失,但其稳定性是有保证的。Redis支持数据持久化和数据恢复,允许单点故障,但是同时也会付出性能的代价。
       MongoDB 从 1.8 版本开始采用 binlog 方式支持持久化的可靠性。
     
    5.应用场景:
         Memcached:动态系统中减轻数据库负载,提升性能;做缓存,适合多读少写,大数据量的情况(如人人网大量查询用户信息、好友信息、文章信息等)。
         Redis:适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统(如新浪微博的计数和微博发布部分系统,对数据安全性、读写要求都很高)。
       MongoDB:主要解决海量数据的访问效率问题。 
     
    需要慎重考虑的部分
     
    1.Memcached单个key-value大小有限,一个value最大只支持1MB,而Redis最大支持512MB
    2.Memcached只是个内存缓存,对可靠性无要求;而Redis更倾向于内存数据库,因此对对可靠性方面要求比较高
    3. 从本质上讲,Memcached只是一个单一key-value内存Cache;而Redis则是一个数据结构内存数据库,支持五种数据类型,因此Redis除单纯缓存作用外,还可以处理一些简单的逻辑运算,Redis不仅可以缓存,而且还可以作为数据库用
    4.新版本(3.0)的Redis是指集群分布式,也就是说集群本身均衡客户端请求,各个节点可以交流,可拓展行、可维护性更强大。

    5. MongoDB不支持事务。




    转自   http://www.cnblogs.com/cac2020/p/6044536.html

    Redis 的作者 Salvatore Sanfilippo 曾经对这两种基于内存的数据存储系统进行过比较:


    1. Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。


    2. 内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。


    3. 性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。


    具体为什么会出现上面的结论,以下为收集到的资料:


    1、数据类型支持不同


    与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多。最为常用的数据类型主要由五种:String、Hash、List、Set和Sorted Set。Redis内部使用一个redisObject对象来表示所有的key和value。redisObject最主要的信息如图所示:



    type代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存储的是一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则代表实际redis内部是按数值型类存储和表示这个字符串的,当然前提是这个字符串本身可以用数值表示,比如:”123″ “456”这样的字符串。只有打开了Redis的虚拟内存功能,vm字段字段才会真正的分配内存,该功能默认是关闭状态的。


    1)String


    • 常用命令:set/get/decr/incr/mget等;


    • 应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类;


    • 实现方式:String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr、decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int。


    2)Hash


    • 常用命令:hget/hset/hgetall等


    • 应用场景:我们要存储一个用户信息对象数据,其中包括用户ID、用户姓名、年龄和生日,通过用户ID我们希望获取该用户的姓名或者年龄或者生日;


    • 实现方式:Redis的Hash实际是内部存储的Value为一个HashMap,并提供了直接存取这个Map成员的接口。如图所示,Key是用户ID, value是一个Map。这个Map的key是成员的属性名,value是属性值。这样对数据的修改和存取都可以直接通过其内部Map的Key(Redis里称内部Map的key为field), 也就是通过 key(用户ID) + field(属性标签) 就可以操作对应属性数据。当前HashMap的实现有两种方式:当HashMap的成员比较少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,这时对应的value的redisObject的encoding为zipmap,当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。



    3)List


    • 常用命令:lpush/rpush/lpop/rpop/lrange等;


    • 应用场景:Redis list的应用场景非常多,也是Redis最重要的数据结构之一,比如twitter的关注列表,粉丝列表等都可以用Redis的list结构来实现;


    • 实现方式:Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。


    4)Set


    • 常用命令:sadd/spop/smembers/sunion等;


    • 应用场景:Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的;


    • 实现方式:set 的内部实现是一个 value永远为null的HashMap,实际就是通过计算hash的方式来快速排重的,这也是set能提供判断一个成员是否在集合内的原因。


    5)Sorted Set


    • 常用命令:zadd/zrange/zrem/zcard等;


    • 应用场景:Redis sorted set的使用场景与set类似,区别是set不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。当你需要一个有序的并且不重复的集合列表,那么可以选择sorted set数据结构,比如twitter 的public timeline可以以发表时间作为score来存储,这样获取时就是自动按时间排好序的。


    • 实现方式:Redis sorted set的内部使用HashMap和跳跃表(SkipList)来保证数据的存储和有序,HashMap里放的是成员到score的映射,而跳跃表里存放的是所有的成员,排序依据是HashMap里存的score,使用跳跃表的结构可以获得比较高的查找效率,并且在实现上比较简单。


    2、内存管理机制不同


    在Redis中,并不是所有的数据都一直存储在内存中的。这是和Memcached相比一个最大的区别。当物理内存用完时,Redis可以将一些很久没用到的value交换到磁盘。Redis只会缓存所有的key的信息,如果Redis发现内存的使用量超过了某一个阀值,将触发swap的操作,Redis根据“swappability = age*log(size_in_memory)”计算出哪些key对应的value需要swap到磁盘。然后再将这些key对应的value持久化到磁盘中,同时在内存中清除。这种特性使得Redis可以保持超过其机器本身内存大小的数据。当然,机器本身的内存必须要能够保持所有的key,毕竟这些数据是不会进行swap操作的。同时由于Redis将内存中的数据swap到磁盘中的时候,提供服务的主线程和进行swap操作的子线程会共享这部分内存,所以如果更新需要swap的数据,Redis将阻塞这个操作,直到子线程完成swap操作后才可以进行修改。当从Redis中读取数据的时候,如果读取的key对应的value不在内存中,那么Redis就需要从swap文件中加载相应数据,然后再返回给请求方。 这里就存在一个I/O线程池的问题。在默认的情况下,Redis会出现阻塞,即完成所有的swap文件加载后才会相应。这种策略在客户端的数量较小,进行批量操作的时候比较合适。但是如果将Redis应用在一个大型的网站应用程序中,这显然是无法满足大并发的情况的。所以Redis运行我们设置I/O线程池的大小,对需要从swap文件中加载相应数据的读取请求进行并发操作,减少阻塞的时间。


    对于像Redis和Memcached这种基于内存的数据库系统来说,内存管理的效率高低是影响系统性能的关键因素。传统C语言中的malloc/free函数是最常用的分配和释放内存的方法,但是这种方法存在着很大的缺陷:首先,对于开发人员来说不匹配的malloc和free容易造成内存泄露;其次频繁调用会造成大量内存碎片无法回收重新利用,降低内存利用率;最后作为系统调用,其系统开销远远大于一般函数调用。所以,为了提高内存的管理效率,高效的内存管理方案都不会直接使用malloc/free调用。Redis和Memcached均使用了自身设计的内存管理机制,但是实现方法存在很大的差异,下面将会对两者的内存管理机制分别进行介绍。


    Memcached默认使用Slab Allocation机制管理内存,其主要思想是按照预先规定的大小,将分配的内存分割成特定长度的块以存储相应长度的key-value数据记录,以完全解决内存碎片问题。Slab Allocation机制只为存储外部数据而设计,也就是说所有的key-value数据都存储在Slab Allocation系统里,而Memcached的其它内存请求则通过普通的malloc/free来申请,因为这些请求的数量和频率决定了它们不会对整个系统的性能造成影响Slab Allocation的原理相当简单。 如图所示,它首先从操作系统申请一大块内存,并将其分割成各种尺寸的块Chunk,并把尺寸相同的块分成组Slab Class。其中,Chunk就是用来存储key-value数据的最小单位。每个Slab Class的大小,可以在Memcached启动的时候通过制定Growth Factor来控制。假定图中Growth Factor的取值为1.25,如果第一组Chunk的大小为88个字节,第二组Chunk的大小就为112个字节,依此类推。




    当Memcached接收到客户端发送过来的数据时首先会根据收到数据的大小选择一个最合适的Slab Class,然后通过查询Memcached保存着的该Slab Class内空闲Chunk的列表就可以找到一个可用于存储数据的Chunk。当一条数据库过期或者丢弃时,该记录所占用的Chunk就可以回收,重新添加到空闲列表中。从以上过程我们可以看出Memcached的内存管理制效率高,而且不会造成内存碎片,但是它最大的缺点就是会导致空间浪费。因为每个Chunk都分配了特定长度的内存空间,所以变长数据无法充分利用这些空间。如图 所示,将100个字节的数据缓存到128个字节的Chunk中,剩余的28个字节就浪费掉了。



    Redis的内存管理主要通过源码中zmalloc.h和zmalloc.c两个文件来实现的。Redis为了方便内存的管理,在分配一块内存之后,会将这块内存的大小存入内存块的头部。如图所示,real_ptr是redis调用malloc后返回的指针。redis将内存块的大小size存入头部,size所占据的内存大小是已知的,为size_t类型的长度,然后返回ret_ptr。当需要释放内存的时候,ret_ptr被传给内存管理程序。通过ret_ptr,程序可以很容易的算出real_ptr的值,然后将real_ptr传给free释放内存。




    Redis通过定义一个数组来记录所有的内存分配情况,这个数组的长度为ZMALLOC_MAX_ALLOC_STAT。数组的每一个元素代表当前程序所分配的内存块的个数,且内存块的大小为该元素的下标。在源码中,这个数组为zmalloc_allocations。zmalloc_allocations[16]代表已经分配的长度为16bytes的内存块的个数。zmalloc.c中有一个静态变量used_memory用来记录当前分配的内存总大小。所以,总的来看,Redis采用的是包装的mallc/free,相较于Memcached的内存管理方法来说,要简单很多。


    3、数据持久化支持


    Redis虽然是基于内存的存储系统,但是它本身是支持内存数据的持久化的,而且提供两种主要的持久化策略:RDB快照和AOF日志。而memcached是不支持数据持久化操作的。


    1)RDB快照


    Redis支持将当前数据的快照存成一个数据文件的持久化机制,即RDB快照。但是一个持续写入的数据库如何生成快照呢?Redis借助了fork命令的copy on write机制。在生成快照时,将当前进程fork出一个子进程,然后在子进程中循环所有的数据,将数据写成为RDB文件。我们可以通过Redis的save指令来配置RDB快照生成的时机,比如配置10分钟就生成快照,也可以配置有1000次写入就生成快照,也可以多个规则一起实施。这些规则的定义就在Redis的配置文件中,你也可以通过Redis的CONFIG SET命令在Redis运行时设置规则,不需要重启Redis。


    Redis的RDB文件不会坏掉,因为其写操作是在一个新进程中进行的,当生成一个新的RDB文件时,Redis生成的子进程会先将数据写到一个临时文件中,然后通过原子性rename系统调用将临时文件重命名为RDB文件,这样在任何时候出现故障,Redis的RDB文件都总是可用的。同时,Redis的RDB文件也是Redis主从同步内部实现中的一环。RDB有他的不足,就是一旦数据库出现问题,那么我们的RDB文件中保存的数据并不是全新的,从上次RDB文件生成到Redis停机这段时间的数据全部丢掉了。在某些业务下,这是可以忍受的。


    2)AOF日志


    AOF日志的全称是append only file,它是一个追加写入的日志文件。与一般数据库的binlog不同的是,AOF文件是可识别的纯文本,它的内容就是一个个的Redis标准命令。只有那些会导致数据发生修改的命令才会追加到AOF文件。每一条修改数据的命令都生成一条日志,AOF文件会越来越大,所以Redis又提供了一个功能,叫做AOF rewrite。其功能就是重新生成一份AOF文件,新的AOF文件中一条记录的操作只会有一次,而不像一份老文件那样,可能记录了对同一个值的多次操作。其生成过程和RDB类似,也是fork一个进程,直接遍历数据,写入新的AOF临时文件。在写入新文件的过程中,所有的写操作日志还是会写到原来老的AOF文件中,同时还会记录在内存缓冲区中。当重完操作完成后,会将所有缓冲区中的日志一次性写入到临时文件中。然后调用原子性的rename命令用新的AOF文件取代老的AOF文件。


    AOF是一个写文件操作,其目的是将操作日志写到磁盘上,所以它也同样会遇到我们上面说的写操作的流程。在Redis中对AOF调用write写入后,通过appendfsync选项来控制调用fsync将其写到磁盘上的时间,下面appendfsync的三个设置项,安全强度逐渐变强。


    • appendfsync no 当设置appendfsync为no的时候,Redis不会主动调用fsync去将AOF日志内容同步到磁盘,所以这一切就完全依赖于操作系统的调试了。对大多数Linux操作系统,是每30秒进行一次fsync,将缓冲区中的数据写到磁盘上。


    • appendfsync everysec 当设置appendfsync为everysec的时候,Redis会默认每隔一秒进行一次fsync调用,将缓冲区中的数据写到磁盘。但是当这一次的fsync调用时长超过1秒时。Redis会采取延迟fsync的策略,再等一秒钟。也就是在两秒后再进行fsync,这一次的fsync就不管会执行多长时间都会进行。这时候由于在fsync时文件描述符会被阻塞,所以当前的写操作就会阻塞。所以结论就是,在绝大多数情况下,Redis会每隔一秒进行一次fsync。在最坏的情况下,两秒钟会进行一次fsync操作。这一操作在大多数数据库系统中被称为group commit,就是组合多次写操作的数据,一次性将日志写到磁盘。


    • appednfsync always 当设置appendfsync为always时,每一次写操作都会调用一次fsync,这时数据是最安全的,当然,由于每次都会执行fsync,所以其性能也会受到影响。


    对于一般性的业务需求,建议使用RDB的方式进行持久化,原因是RDB的开销并相比AOF日志要低很多,对于那些无法忍数据丢失的应用,建议使用AOF日志。


    4、集群管理的不同


    Memcached是全内存的数据缓冲系统,Redis虽然支持数据的持久化,但是全内存毕竟才是其高性能的本质。作为基于内存的存储系统来说,机器物理内存的大小就是系统能够容纳的最大数据量。如果需要处理的数据量超过了单台机器的物理内存大小,就需要构建分布式集群来扩展存储能力。


    Memcached本身并不支持分布式,因此只能在客户端通过像一致性哈希这样的分布式算法来实现Memcached的分布式存储。下图给出了Memcached的分布式存储实现架构。当客户端向Memcached集群发送数据之前,首先会通过内置的分布式算法计算出该条数据的目标节点,然后数据会直接发送到该节点上存储。但客户端查询数据时,同样要计算出查询数据所在的节点,然后直接向该节点发送查询请求以获取数据。



    相较于Memcached只能采用客户端实现分布式存储,Redis更偏向于在服务器端构建分布式存储。最新版本的Redis已经支持了分布式存储功能。Redis Cluster是一个实现了分布式且允许单点故障的Redis高级版本,它没有中心节点,具有线性可伸缩的功能。下图给出Redis Cluster的分布式存储架构,其中节点与节点之间通过二进制协议进行通信,节点与客户端之间通过ascii协议进行通信。在数据的放置策略上,Redis Cluster将整个key的数值域分成4096个哈希槽,每个节点上可以存储一个或多个哈希槽,也就是说当前Redis Cluster支持的最大节点数就是4096。Redis Cluster使用的分布式算法也很简单:crc16( key ) % HASH_SLOTS_NUMBER。



    为了保证单点故障下的数据可用性,Redis Cluster引入了Master节点和Slave节点。在Redis Cluster中,每个Master节点都会有对应的两个用于冗余的Slave节点。这样在整个集群中,任意两个节点的宕机都不会导致数据的不可用。当Master节点退出后,集群会自动选择一个Slave节点成为新的Master节点。



    参考资料:


    • http://www.redisdoc.com/en/latest/

    • http://memcached.org/


    转自https://blog.csdn.net/hackercn9/article/details/54846048


    展开全文
  • 文章目录数据库介绍数据库管理系统-简称(DBMS)数据库管理系统-主要功能数据库类型1. 关系数据库2. 非关系型数据库(NoSQL)数据库模型数据库的架构数据库索引数据库操作:事务 数据库介绍 数据库,简而言之可视...

    数据库介绍

    数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
    所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

    数据库管理系统-简称(DBMS)

    数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
    数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。

    数据库管理系统-主要功能

    1.数据定义:DBMS提供数据定义语言DDL(Data Definition Language),供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。
    2.数据操作:DBMS提供数据操作语言DML(Data Manipulation Language),供用户实现对数据的追加、删除、更新、查询等操作。
    3.数据库的运行管理:数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。
    4.数据组织、存储与管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。
    5.数据库的保护:数据库中的数据是信息社会的战略资源,所以数据的保护至关重要。DBMS对数据库的保护通过4个方面来实现:数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制。DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。
    6.数据库的维护:这一部分包括数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能,这些功能分别由各个使用程序来完成。
    7.通信:DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。

    数据库的类型

    1. 关系数据库

    ⚫ MySQL
    ⚫ MariaDB(MySQL的代替品,英文维基百科从MySQL转向MariaDB)
    ⚫ Percona Server(MySQL的代替品·)
    ⚫ PostgreSQL
    ⚫ Microsoft Access
    ⚫ Microsoft SQL Server
    ⚫ Google Fusion Tables
    ⚫ FileMaker
    ⚫ Oracle数据库
    ⚫ Sybase
    ⚫ dBASE
    ⚫ Clipper
    ⚫ FoxPro
    ⚫ foshub

    2. 非关系型数据库(NoSQL)

    ⚫ NoSQL
    ⚫ BigTable(Google)
    ⚫ Cassandra
    ⚫ MongoDB
    ⚫ CouchDB
    ⚫ 键值(key-value)数据库
    ⚫ Apache Cassandra(为Facebook所使用):高度可扩展
    ⚫ Dynamo
    ⚫ LevelDB(Google)

    数据库模型

    ⚫ 对象模型
    ⚫ 层次模型(轻量级数据访问协议)
    ⚫ 网状模型(大型数据储存)
    ⚫ 关系模型
    ⚫ 面向对象模型
    ⚫ 半结构化模型
    ⚫ 平面模型(表格模型,一般在形式上是一个二维数组。如表格模型数据Excel)

    数据库的架构

    ⚫ 数据库的架构可以大致区分为三个概括层次:内层、概念层和外层。
    ⚫ 内层:最接近实际存储体,亦即有关数据的实际存储方式。
    ⚫ 外层:最接近用户,即有关个别用户观看数据的方式。
    ⚫ 概念层:介于两者之间的间接层。

    数据库索引

    数据索引的观念由来已久,像是一本书前面几页都有目录,目录也算是索引的一种,只是它的分类较广,例如车牌、身份证字号、条码等,都是一个索引的号码,当我们看到号码时,可以从号码中看出其中的端倪,若是要找的人、车或物品,也只要提供相关的号码,即可迅速查到正确的人事物。
    另外,索引跟字段有着相应的关系,索引即是由字段而来,其中字段有所谓的关键字段(Key Field),该字段具有唯一性,即其值不可重复,且不可为"空值(null)"。例如:在合并数据时,索引便是扮演欲附加字段数据之指向性用途的角色。故此索引为不可重复性且不可为空。

    数据库操作:事务

    事务(transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。 事务的ACID(数据库事务正确执行的四个基本要素的缩写)特性:
    ⚫ 基元性(atomicity)
    ⚫ 一致性(consistency)
    ⚫ 隔离性(isolation)
    ⚫ 持续性(durability)
    ⚫ 事务的并发性是指多个事务的并行操作轮流交叉运行,事务的并发可能会访问和存储不正确的数据,破坏交易的隔离性和数据库的一致性。
    ⚫ 网状数据模型的数据结构 网状模型 满足下面两个条件的基本层次联系的集合为网状模型。

    1. 允许一个以上的结点无双亲;
    2. 一个结点可以有多于一个的双亲。

    转载参考地址:https://baike.baidu.com/item/数据库/103728?fr=aladdin

    数据库基本----SQL语句大全

    一、基础
    
        1、说明:创建数据库
        Create DATABASE database-name
    
        2、说明:删除数据库
        drop database dbname
    
        3、说明:备份sql server
        --- 创建 备份数据的 device
        USE master
        EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat'
        --- 开始 备份
        BACKUP DATABASE pubs TO testBack
    
        4、说明:创建新表
        create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
        根据已有的表创建新表:
        A:create table tab_new like tab_old (使用旧表创建新表)
        B:create table tab_new as select col1,col2… from tab_old definition only
    
        5、说明:删除新表
        drop table tabname
    
        6、说明:增加一个列
        Alter table tabname add column col type
        注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
    
        7、说明:添加主键: Alter table tabname add primary key(col)
        说明:删除主键: Alter table tabname drop primary key(col)
    
        8、说明:创建索引:create [unique] index idxname on tabname(col….)
        删除索引:drop index idxname
        注:索引是不可更改的,想更改必须删除重新建。
    
        9、说明:创建视图:create view viewname as select statement
        删除视图:drop view viewname
    
        10、说明:几个简单的基本的sql语句
        选择:select * from table1 where 范围
        插入:insert into table1(field1,field2) values(value1,value2)
        删除:delete from table1 where 范围
        更新:update table1 set field1=value1 where 范围
        查找:select * from table1 where field1 like ’%value1%---like的语法很精妙,查资料!
        排序:select * from table1 order by field1,field2 [desc]
        总数:select count as totalcount from table1
        求和:select sum(field1) as sumvalue from table1
        平均:select avg(field1) as avgvalue from table1
        最大:select max(field1) as maxvalue from table1
        最小:select min(field1) as minvalue from table1
    
        11、说明:几个高级查询运算词
        AUNION 运算符
        UNION 运算符通过组合其他两个结果表(例如 TABLE1TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALLUNION 一起使用时(即 UNION ALL),不消除
    
    重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2BEXCEPT 运算符
        EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALLEXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
        CINTERSECT 运算符
        INTERSECT 运算符通过只包括 TABLE1TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALLINTERSECT 一起使用时 (INTERSECT ALL),不消除重复
    
    行。注:使用运算词的几个查询结果行必须是一致的。
    
        12、说明:使用外连接
        A、left outer join:
        左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
        SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
        B:right outer join:
        右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
        C:full outer join:
        全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
    
    二、提升
    
        1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
        法一:select * into b from a where 1<>1
        法二:select top 0 * into b from a
    
        2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
        insert into b(a, b, c) select d,e,f from b;
    
        3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
        insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
        例子:..from b in '"&Server.MapPath("."&"/data.mdb" &"' where..
    
        4、说明:子查询(表名1:a 表名2:b)
        select a,b,c from a where a IN (select d from b   或者: select a,b,c from a where a IN (1,2,3)
    
        5、说明:显示文章、提交人和最后回复时间
        select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
    
        6、说明:外连接查询(表名1:a 表名2:b)
        select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
    
        7、说明:在线视图查询(表名1:a
        select * from (Select a,b,c FROM a) T where t.a > 1;
    
        8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
        select * from table1 where time between time1 and time2
        select a,b,c, from table1 where a not between 数值1 and 数值2
    
        9、说明:in 的使用方法
        select * from table1 where a [not] in (‘值1,’值2,’值4,’值6)
    
        10、说明:两张关联表,删除主表中已经在副表中没有的信息
        delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1
    
        11、说明:四表联查问题:
        select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where ..
    
        12、说明:日程安排提前五分钟提醒
        select * from 日程安排 where datediff('minute',f开始时间,getdate())>5
    
        13、说明:一条sql 语句搞定数据库分页
        select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段
    
        14、说明:前10条记录
        select top 10 * form table1 where 范围
    
        15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
        select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
    
        16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
        (select a from tableA   except (select a from tableB) except (select a from tableC)
    
        17、说明:随机取出10条数据
        select top 10 * from tablename order by newid()
    
        18、说明:随机选择记录
        select newid()
    
        19、说明:删除重复记录
        Delete from tablename where id not in (select max(id) from tablename group by col1,col2,)
    
        20、说明:列出数据库里所有的表名
        select name from sysobjects where type='U'
    
        21、说明:列出表里的所有的
        select name from syscolumns where id=object_id('TableName')
    
        22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。
        select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) 
    
    FROM tablename group by type
        显示结果:
        type vender pcs
        电脑 A 1
        电脑 A 1
        光盘 B 2
        光盘 A 2
        手机 B 3
        手机 C 3
    
        23、说明:初始化表table1
    
        TRUNCATE TABLE table1
    
        24、说明:选择从1015的记录
        select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc
    
    三、技巧
    
        11=11=2的使用,在SQL语句组合时用的较多
    
        “where 1=1” 是表示选择全部   “where 1=2”全部不选,
        如:
        if @strWhere !='
        begin
            set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere
        end
        else
            begin
                set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
            end
    
        我们可以直接写成
        set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere
    
        2、收缩数据库
        --重建索引
        DBCC REINDEX
        DBCC INDEXDEFRAG
        --收缩数据和日志
        DBCC SHRINKDB
        DBCC SHRINKFILE
    
        3、压缩数据库
        dbcc shrinkdatabase(dbname)
    
        4、转移数据库给新用户以已存在用户权限
        exec sp_change_users_login 'update_one','newname','oldname'
        go
    
        5、检查备份集
        RESTORE VERIFYONLY from disk='E:/dvbbs.bak'
    
        6、修复数据库
        Alter DATABASE [dvbbs] SET SINGLE_USER
        GO
        DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
        GO
        Alter DATABASE [dvbbs] SET MULTI_USER
        GO
    
        7、日志清除
        SET NOCOUNT ON
        DECLARE @LogicalFileName sysname,
                 @MaxMinutes INT,
                 @NewSize INT
    
    
        USE     tablename             -- 要操作的数据库名
        Select   @LogicalFileName = 'tablename_log',   -- 日志文件名
        @MaxMinutes = 10,               -- Limit on time allowed to wrap log.
                 @NewSize = 1                   -- 你想设定的日志文件的大小(M)
    
        -- Setup / initialize
        DECLARE @OriginalSize int
        Select @OriginalSize = size
           FROM sysfiles
           Where name = @LogicalFileName
        Select 'Original Size of ' + db_name() + ' LOG is ' +
                 CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
                 CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
           FROM sysfiles
           Where name = @LogicalFileName
        Create TABLE DummyTrans
           (DummyColumn char (8000) not null)
    
    
        DECLARE @Counter   INT,
                 @StartTime DATETIME,
                 @TruncLog   VARCHAR(255)
        Select   @StartTime = GETDATE(),
                 @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
    
        DBCC SHRINKFILE (@LogicalFileName, @NewSize)
        EXEC (@TruncLog)
        -- Wrap the log if necessary.
        WHILE     @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
               AND @OriginalSize = (Select size FROM sysfiles Where name = @LogicalFileName)
               AND (@OriginalSize * 8 /1024) > @NewSize
           BEGIN -- Outer loop.
             Select @Counter = 0
             WHILE   ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
               BEGIN -- update
                 Insert DummyTrans VALUES ('Fill Log')
                 Delete DummyTrans
                 Select @Counter = @Counter + 1
               END
             EXEC (@TruncLog)
           END
        Select 'Final Size of ' + db_name() + ' LOG is ' +
                 CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
                 CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
         FROM sysfiles
         Where name = @LogicalFileName
        Drop TABLE DummyTrans
        SET NOCOUNT OFF
    
        8、说明:更改某个表
        exec sp_changeobjectowner 'tablename','dbo'
    
        9、存储更改全部表
    
        Create PROCEDURE dbo.User_ChangeObjectOwnerBatch
        @OldOwner as NVARCHAR(128),
        @NewOwner as NVARCHAR(128)
        AS
    
        DECLARE @Name   as NVARCHAR(128)
        DECLARE @Owner   as NVARCHAR(128)
        DECLARE @OwnerName   as NVARCHAR(128)
    
        DECLARE curObject CURSOR FOR
        select 'Name'   = name,
           'Owner'   = user_name(uid)
        from sysobjects
        where user_name(uid)=@OldOwner
        order by name
    
        OPEN   curObject
        FETCH NEXT FROM curObject INTO @Name, @Owner
        WHILE(@@FETCH_STATUS=0)
        BEGIN
        if @Owner=@OldOwner
        begin
           set @OwnerName = @OldOwner + '.' + rtrim(@Name)
           exec sp_changeobjectowner @OwnerName, @NewOwner
        end
        -- select @name,@NewOwner,@OldOwner
    
        FETCH NEXT FROM curObject INTO @Name, @Owner
        END
    
        close curObject
        deallocate curObject
        GO
    
    
        10SQL SERVER中直接循环写入数据
        declare @i int
        set @i=1
        while @i<30
        begin
           insert into test (userid) values(@i)
           set @i=@i+1
        end 
    
    
    转载:https://blog.csdn.net/guocuifang655/article/details/3988515
    
    展开全文
  • Protist核糖体参考数据库(PR 2 ) SSU rRNA基因数据库 是在BioMarks项目框架下于2010年启动的,该项目是基于Roscoff站生物物流的浮游生物小组在过去十年中开发的。 其目的是提供使用八个独特的分类领域(从王国到...
  • 人大金仓数据库的语法手册,可为新手开发做指导,适合金仓数据库入门
  • 一般.sql、.bak 文件格式 对应的数据库类型分别为 mysql的数据库文件是.sql后缀的,mssql是.bak后缀的。access是最基本的数据库可以是任何文件名,一般是mdb,我们的所有虚拟主机都access数据库。 数据库版本...

    数据库文件有哪些格式以及类型呢?

    一般有.sql、.bak 文件格式 对应的数据库类型分别为 mysql的数据库文件是.sql后缀的,mssql是.bak后缀的。access是最基本的数据库可以是任何文件名,一般是mdb,我们的所有虚拟主机都有access数据库。

    数据库版本有:mysql有5.0 5.5 mssql的版本是2000 2005 2008 这些版本的是不同服务器上的参数也不一样,详细可以参考我们oa中技术交流中的 “服务器档案记录”。

    展开全文
  • 数据库中数据备份有哪些类型发布时间:2021-01-05 10:01:21来源:亿速云阅读:94作者:小新这篇文章主要介绍了数据库中数据备份有哪些类型,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后...

    数据库中数据备份有哪些类型

    发布时间:2021-01-05 10:01:21

    来源:亿速云

    阅读:94

    作者:小新

    这篇文章主要介绍了数据库中数据备份有哪些类型,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数据备份可分为:热备份、冷备份和温备份。热备份可以在数据库运行中直接备份,对正在运行的数据库操作没有任何的影响。冷备份必须在数据库停止的情况下进行备份,数据库的读写操作不能执行。温备份在数据库运行中进行,备份时仅支持读操作,不支持写操作。

    备份是以防万一的一种必要手段,在出现硬件损坏或非人为的因素而导致数据丢失时,可以使用备份恢复数据,以将损失降低到最小程度,因此备份是必须的。备份可以分为以下几个类型。

    根据备份的方法(是否需要数据库离线)可以将备份分为:热备(Hot Backup)

    冷备(Cold Backup)

    温备(Warm Backup)

    热备份可以在数据库运行中直接备份,对正在运行的数据库操作没有任何的影响,数据库的读写操作可以正常执行。这种方式在 MySQL 官方手册中称为 Online Backup(在线备份)。

    冷备份必须在数据库停止的情况下进行备份,数据库的读写操作不能执行。这种备份最为简单,一般只需要复制相关的数据库物理文件即可。这种方式在 MySQL 官方手册中称为 Offline Backup(离线备份)。

    温备份同样是在数据库运行中进行的,但是会对当前数据库的操作有所影响,备份时仅支持读操作,不支持写操作。

    按照备份后文件的内容,热备份又可以分为:逻辑备份

    裸文件备份

    在 MySQL 数据库中,逻辑备份是指备份出的文件内容是可读的,一般是文本内容。内容一般是由一条条 SQL 语句,或者是表内实际数据组成。如 mysqldump 和 SELECT * INTO OUTFILE 的方法。这类方法的好处是可以观察导出文件的内容,一般适用于数据库的升级、迁移等工作。但其缺点是恢复的时间较长。

    裸文件备份是指复制数据库的物理文件,既可以在数据库运行中进行复制(如 ibbackup、xtrabackup 这类工具),也可以在数据库停止运行时直接复制数据文件。这类备份的恢复时间往往比逻辑备份短很多。

    按照备份数据库的内容来分,备份又可以分为:完全备份

    部分备份

    完全备份是指对数据库进行一个完整的备份,即备份整个数据库,如果数据较多会占用较大的时间和空间。

    部分备份是指备份部分数据库(例如,只备份一个表)。

    部分备份又分为:增量备份

    差异备份

    增量备份需要使用专业的备份工具。指的是在上次完全备份的基础上,对更改的数据进行备份。也就是说每次备份只会备份自上次备份之后到备份时间之内产生的数据。因此每次备份都比差异备份节约空间,但是恢复数据麻烦。

    差异备份指的是自上一次完全备份以来变化的数据。和增量备份相比,浪费空间,但恢复数据比增量备份简单。

    MySQL 中进行不同方式的备份还要考虑存储引擎是否支持,如 MyISAM 不支持热备,支持温备和冷备。而 InnoDB 支持热备、温备和冷备。

    一般情况下,我们需要备份的数据分为以下几种:表数据

    二进制日志、InnoDB 事务日志

    代码(存储过程、存储函数、触发器、事件调度器)

    服务器配置文件

    感谢你能够认真阅读完这篇文章,希望小编分享的“数据库中数据备份有哪些类型”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

    展开全文
  • 下面小编就为大家带来一篇JavaScript转换数据库DateTime字段类型方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 和利时系统数据库编辑参考doc,和利时系统数据库编辑参考
  • SAP-HANA数据库SQL参考手册是一个中文版的SAP HANA SQL参考文档,详细介绍了在HANA体系中SQL语言的语法以及各种使用规则,包括数据类型、谓词、 操作符、表达式、函数、语句等。目标读者:SAP顾问、管理员、SAP硬件...
  • 常用数据库种类与特点

    千次阅读 2019-03-01 20:30:39
    早期数据库模型三种,分别为层次式数据库、网络式数据库和关系型数据库。 而在当今的互联网中,通常把数据库分为两类,即关系型数据库和非关系型数据库。 关系型数据库与实例 关系型数据库是指采用了关系模型来...
  • 数据库表的类型

    2020-11-26 18:22:24
    MySQL一共向用户提供了包括DBD、HEAP、ISAM、MERGE、MyIASM、InnoDB以及Gemeni这7种Mysql表...原来使用了数据库的引擎的意思就是给表定义了一种类型参考文章:https://www.cnblogs.com/catcrazy/p/6379730.html ...
  • MySql数据库的列类型(字段类型)[参考].pdf
  • MySQL的4个系统数据库介绍

    千次阅读 2021-02-01 13:12:11
    MYSQL在一定程度有些东西和SQL Server相似,另一方面很多东西又与Oracle相似的东西;今天分享下和SQL Server稍微相似的数据库管理方式,即数据库的方式管理数据库。1. INFORMATION_SCHEMA数据库:此数据库提供了...
  • 第1部分:Boot Camp , 第2部分:客户机/服务器 , 第3部分:Firebird数据类型, 第4部分:数据库对象 第5部分:Firebird SQL命令,第6部分:事务管理,第7部分:服务编程,第8部分:安全设置,第9部分:管理工具 ...
  • 第1章 数据概述 一选择题 1下列关于数据库管理系统的说法错误的是 C A数据库管理系统与操作系统有关操作系统的类型决定了能够运行的数据库管理系统的类型 B数据库管理系统对数据库文件的访问必须经过操作系统实现...
  • 生物信息学数据库分类概览

    万次阅读 2018-11-24 18:55:07
    生物与计算机的结合让生物进入大数据时代,为方便管理各种生物数据,科学家们开发...元数据库,合并不同来源的相关数据以更新的或更加方便的形式提供新的数据,通俗的讲就是数据库数据库,代表性的数据库主要以...
  • 声明:本文内容参考书籍《MySql入门很简单》 目录 1 创建数据库 2 删除数据库 3 数据库存储引擎 3.1 InnoDB 3.2 MyISAM 3.3 MEMORY 3.4 存储引擎的选择 首先数据库是指长期存储在计算机内、组织的和可共享的数据...
  • 1 第 1 章 数据概述 一选择题 1下列关于数据库管理系统的说法错误的是 C A 数据库管理系统与操作系统有关操作系统的类型决定了能够运行的数据库管理系统的类型 B数据库管理系统对数据库文件的访问必须经过操作系统...
  • 数据库文献

    2014-10-16 21:04:46
    SQL-Sever数据库根据运行模式将事务分为4种类型:自动提交事务、显示事务、隐式事务和批处理级事务。1. 自动提交事务:是指每条单独的语句都是一个事务;2. 显式事务:是指每个事务均以BEGIN TRANSACTION语句显式...
  • 常用数据库的字段类型及大小

    万次阅读 多人点赞 2017-09-10 21:27:07
    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小     ORACLE的数据类型  常用的数据库字段类型如下:  字段类型 中文说明 限制条件 其它说明  CHAR 固定长度字符串 最大长度2000 bytes `  VARCHAR2 ...
  • 人大金仓数据库kingbaseESV6SQL参考手册,包含安装手册和数据库使用手册,如常见函数,存储过程,自带函数的使用方法。
  • 开发过程中经常会遇到数据库已经存数据,但经过测试发现原来的表设计中字段格式不合适的问题,现在把修改的步骤以及经验总结一下,以供参考查阅
  • HugeGraph图数据库有哪些功能?

    千次阅读 2018-08-26 19:54:07
    数据库(Graph Database)是一种使用顶点、边和属性来表示与存储数据,并以图结构进行语义查询的数据库。图数据库的关键概念是边,通过边将顶点连接在一起,从而进行快速的图检索操作。 HugeGraph是一款开源图...
  • 文章目录前情提要数据资源 Data resourcesq2-feature-classifie使用的分类学分类器标记基因参考数据库Greengenes (16S rRNA)数据库的各种版本及下载链接如下:Silva (16S/18S rRNA)数据库UNITE (fungal ITS)数据库...
  • 主要介绍了Redis02 使用Redis数据库(String类型)全面解析的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考
  • 1.无符号数,符号数,无符号char,符号char的范围 计算机以二进制补码的存储数值,当一个具有符号位的数据值存储在计算机中的时候,计算机会以最高位为符号位,其余位取绝对值的二进制补码来存储。 符号char...
  • mysql数据库中的大量存储类型[参考].pdf
  • 工作中经常见到一些设计粗糙的数据库,其中将数字...所以,这里简单总结一下,在数据库系统中,将数字类型存储成字符类型有哪些不好的地方。以关系型数据库MySQL示例。  ①字符类型往往比数字类型占用更多的存储...
  • 目 录 第一章 前言 2 1.1 文档目的2 1.2 预期读者2 1.3 参考资料2 第二章 设计规范3 2.1 数据库对象数量 3 2.2 表创建规范 3 2.3 表结构设计 4 2.3.1 字段命名 4 2.3.2 数据类型 4 2.3.3 数据分布 5 2.3.4 分区 7 ...
  • 分子生物学数据库

    千次阅读 2019-02-20 11:01:09
    核酸研究(NAR)对所有的分子生物学数据库进行分类, 见 NAR Database Summary Paper Category List,包括: Nucleotide Sequence Databases (核酸数据库) RNA sequence databases (RNA序列数据库) Protein ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 527,285
精华内容 210,914
关键字:

参考数据库有哪些类型