数据库

NoSQL 与 关系型数据库

爱⌒轻易说出口 提交于 2020-03-11 10:00:21
一、二者的基本概念 NoSQL,泛指非关系型的数据库。 关系数据库,是建立在关系模型基础上的数据库。 这里提到了关系模型, 关系模型是1970年由E.F.Codd提出的。 它和层次、网状模型相比,有以下特点: 1.数据结构简单(二维表格) 2.扎实的理论基础。 a.关系运算理论 b.关系模式设计理论 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征: 不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。 无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。 弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。 分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。 异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样

Oracle学习总结02

空扰寡人 提交于 2020-03-11 09:50:07
1-数据库服务器、实列、数据库的关系 数据库服务器包含实例和数据库,实例又包含了内存结构和后台进程。 2-内存结构 后台进程属于实例还是数据库? 实例是操作系统和Oracle数据库进行联系的标志,提供了一种访问数据库的方式,实例分成内存结构(SGA)和后台进程。 3-手画Oracle体系结构图 4-用户进程和服务器进程关系 用户在向数据库发出SQL命令之前,必须要与实例相连,用户进程(比如sqlplus)要先进行登录,登录成功后,Oracle在服务器运行的计算机上建立了服务器进程,两者为一对一的关系。用户进程通过连接Oracle服务器进程来连接数据库。 5-Oracle体系结构的三大主要组成? Oracle体系结构由内存结构、进程结构、存储结构。 6-逻辑存储结构中的数据库、表空间、段、区、数据块的关系? 在Oracle的逻辑存储结构中,数据库是由表空间组成,表空间由一些段组成,段由数据区组成,数据区由一个个的数据块组成。 7-sqlplus命令中 col name format a30 是什么意思? 设置显示字段的宽度,把column_name的列宽设置为30个字符。 8-数据块和数据区哪个是最小的单位?如何区分? 数据块是Oracle存储结构中最小的逻辑单位,是执行数据库输入输出操作的最小存储单位,一个数据块对应一个或多个物理块;而数据区(extend)是一些数据块组成

EntityFramework CodeFirst 4.3 step by step (2)

杀马特。学长 韩版系。学妹 提交于 2020-03-11 08:26:21
昨天的config和基本的使用已经讲过了,各位读者的评论我也认真看过想过,不知道读者们有没有动手试试,正所谓“纸上得来终觉浅,绝知此事要躬行”啊! 如果您是有过多年开发经验(注意不是一个经验用多年噢!)并且有面向对象特别是Domain-Driven Design方面的思想的大鸟级人物,您一定会有所感触!在本系列之后,我会给大家推荐一本DDD方面的书,如果下面一段时间项目不是很忙的话会一边阅读一边写博客给大家分享和讨论,甚至翻译成中文做连载等等。。。 好了,今天我们接着昨天的说! 3. How to migrate. 昨天我们已经使用CodeFirst反向生成了一个数据库,如果每个项目都能到此为止的话那就好了,但没办法,客户需求要增加,要改变呀!需求变了数据库可能也要变啊! 需求是活的,人脑也要活,微软的工程师都不是泛泛之辈,脑子肯定是更活的,CodeFirst这点都考虑不到的话那我也懒得去捣腾了。 假设我们现在根据需求加一个User类 User 1 class User 2 { 3 public int UserId { get; set; } 4 public string UserName { get; set; } 5 public string BlogUrl { get; set; } 6 } 在昨天的BlogContext类中新增加一个属性: public DbSet

Redis & Redis 桌面管理工具Redis Desktop Manager

你。 提交于 2020-03-11 07:41:49
Redis简述 Redis 是完全开源免费的,遵守BSD协议,先进的key - value持久化产品。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例。此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的。 性能测试结果: SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下: Linux 2.6, Xeon X3320 2.5Ghz. stackoverflow 网站使用 Redis 做为缓存服务器。 安装过程: Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能

Django初体验

僤鯓⒐⒋嵵緔 提交于 2020-03-11 07:39:27
为什么使用Django 快速开发 使用python 数据库ORM系统 大量内置应用 后台管理系统 admin 用户认证系统 auth 会话系统 sessions 安全性高 表单验证 SQL注入 跨站点攻击 易于扩展 Django知识储备 python基础 数据库SQL HTTP协议 HTML & CSS 正则表达式 Django 开发环境 python ipython: 支持自动补齐 安装pip: sudo apt-get install python-pip 安装django: pip安装 sudo pip install django 源码安装 git clone https://github.com/django/django.git python setup.py install 第一个django项目 django-admin startproject mysite python manage.py runserver Django 创建工程和应用 工程目录详解 manage.py: django总管命令 python manage.py runserver python manage.py shell python manage.py migrate - etc... mysite setttings.py: 网站的配置文件 urls.py: URL映射配置文件,

mysql小白入门

半腔热情 提交于 2020-03-11 06:05:43
mysql 简介 1 、什么是数据库 ? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。 主流的数据库有:sqlserver,mysql,Oracle、SQLite、Access、MS SQL Server等,本文主要讲述的是mysql 2 、数据库管理是干什么用的? a. 将数据保存到文件或内存 b. 接收特定的命令,然后对文件进行相应的操作 PS:如果有了以上管理系统,无须自己再去创建文件和文件夹,而是直接传递 命令 给上述软件,让其来进行文件操作,他们统称为数据库管理系统(DBMS,Database Management System) mysql 安装 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

LinQ to sql 各种数据库查询方法

夙愿已清 提交于 2020-03-11 05:43:20
1、多条件查询: 并且 && 或者 || var list = con.car.Where(r => r.code == "c014" || r.oil == 8.2m); 2、模糊查询 1.模糊 var list = con.car.Where(r => r.name.Contains("AT")); 2.开头 var list = con.car.Where(r => r.name.StartsWith("皇冠")); 3.结尾 var list = con.car.Where(r => r.name.EndsWith("版")); 3、统计查询 1.总个数 //var count = con.car.Count(); 2.最大值 //var Max = con.car.Max(r => r.price); 3.最小值 //var Min = con.car.Min(r => r.price); 4.平均值 //var avg = con.car.Average(r => r.price); 4、分页查询 跳过,获取 int count = 5; //先定义一个变量用作每页显示的条数 int pagecount = 0; var list = con.car.Skip(pagecount * count 跳过多少条).Take(count取多少条);

数据库原理常见问答

我们两清 提交于 2020-03-11 05:27:58
版权声明:欢迎转载 https://blog.csdn.net/liaoqianwen123/article/details/25322151 常见问答 1. 试述数据库系统有哪些特点(特别是相对于文件系统)? ①数据共享。特别是实现数据字段的共享。②较高的数据独立性。③面向总体的数据结构话模型。④可控冗余度。 ⑤数据的统一管理和控制。 2. 简述关系的性质? ①随意两个元组不能全同。②元组是非排序的。③属性是非排序的。④属性必须有不同的名称。而不同属性能够来自一个域。 ⑤同一属性名处的诸属性值(同列)是同类型数据。且必须来自同一个域。 3.数据库设计过程包含哪几个主要阶段?哪些阶段独立于数据库管理系统? 哪些阶段依赖于数据库管理系统。 4个主要阶段:需求分析、概念设计、逻辑设计和物理设计;需求分析和概念设计独立于数据库管理系统,逻辑设计和物理设计依赖于数据库管理系统。 4. 试述数据字典的含义和作用? 数据字典 也常称为 数据文件夹或系统文件夹 ,它是以数据库有关信息为对象建立起来的数据库; 数据字典总是包含着数据库的各级模式所做的定义及各种描写叙述 。起着系统状态的文件夹表的作用,它帮助用户、数据库管理员和数据库系统本身使用和管理数据库的系统。 5.简述你对数据模型的理解。 数据模型 是严格定义的一组概念的集合。这些概念精确地描写叙述了系统的静态特性、动态特性、完整性约束条件。

高并发如何处理(架构层面)

坚强是说给别人听的谎言 提交于 2020-03-11 03:22:12
高并发系统各不相同。比如每秒百万并发的中间件系统、每日百亿请求的网关系统、瞬时每秒几十万请求的秒杀大促系统。 他们在应对高并发的时候,因为系统各自特点的不同,所以应对架构都是不一样的。 另外,比如电商平台中的订单系统、商品系统、库存系统,在高并发场景下的架构设计也是不同的,因为背后的业务场景什么的都不一样。 ** 最简单的系统架构 ** 假设刚刚开始你的系统就部署在一台机器上,背后就连接了一台数据库,数据库部署在一台服务器上。 我们甚至可以再现实点,给个例子,你的系统部署的机器是 4 核 8G,数据库服务器是 16 核 32G。 此时假设你的系统用户量总共就 10 万,用户量很少,日活用户按照不同系统的场景有区别,我们取一个较为客观的比例,10% 吧,每天活跃的用户就 1 万。 按照 28 法则,每天高峰期算它 4 个小时,高峰期活跃的用户占比达到 80%,就是 8000 人活跃在 4 小时内。 然后每个人对你的系统发起的请求,我们算他每天是 20 次吧。那么高峰期 8000 人发起的请求也才 16 万次,平均到 4 小时内的每秒(14400 秒),每秒也就 10 次请求。 好吧!完全跟高并发搭不上边,对不对? 然后系统层面每秒是 10 次请求,对数据库的调用每次请求都会有好几次数据库操作的,比如做做 crud 之类的。 那么我们取一个一次请求对应 3 次数据库请求吧,那这样的话

数据库连接技术——JDBC

﹥>﹥吖頭↗ 提交于 2020-03-11 03:12:02
JDBC(Java DataBase Connectivity)是 SUN 公司提供的一种数据库访问规则、规范, 由于数据库种类较多,并且 Java 语言使用比较广泛,SUN 公司就提供了一种规范,让其他的数据库提供商去实现底层的访问规则。 我们的 Java 程序只要使用 SUN 公司提供的 JDBC 驱动即可。 使用 JDBC 的基本步骤 注册驱动: DriverManager . registerDriver ( new com . mysql . jdbc . Driver ( ) ) ; 建立连接:参数一: 协议 + 访问的数据库 , 参数二: 用户名 , 参数三: 密码。 //DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb"); conn = DriverManager . getConnection ( "jdbc:mysql://localhost/student" , "root" , "root" ) ; 创建 statement:跟数据库打交道,一定需要这个对象。 st = conn . createStatement ( ) ; 执行 sql ,得到 ResultSet:执行查询,得到结果集。 String sql = "select