数据库原理

安装SQL Server 2014

本秂侑毒 提交于 2020-02-12 08:11:22
一:下载SQL SERVER 2014   https://www.microsoft.com/zh-cn/server-cloud/products/sql-server-editions/sql-server-express.aspx 二:安装和配置   安装:参考数据库原理与应用教程 书     http://jingyan.baidu.com/article/3a2f7c2e653d5926afd61197.html     set up 然后下一步(中途有错误,需要修复(我的问题:需要添加visual studio 2010 server pack 1       https://www.microsoft.com/en-us/download/confirmation.aspx?id=20506       http://down.zdnet.com.cn/link/43/424986.shtml))   配置:参考数据库原理与应用教程 书           来源: https://www.cnblogs.com/justmaomao/p/5232672.html

线程池的原理和连接池的原理

岁酱吖の 提交于 2020-02-11 05:19:22
线程池的原理: 来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡 眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许 会问:为什么要搞得这么麻烦,如果每当客户端有新的请求时,我就创建一个新的线程不就完了?这也许是个不错的方法,因为它能使得你编写代码相对容易一些, 但你却忽略了一个重要的问题??性能!就拿我所在的单位来说,我的单位是一个省级数据大集中的银行网络中心,高峰期每秒的客户端请 求并发数超 过100,如果为每个客户端请求创建一个新线程的话,那耗费的CPU时间和内存将是惊人的,如果采用一个拥有200个线程的线程池,那将会节约大量的的系统资源,使得更多的CPU时间和内存用来处理实际的商业应用,而不是频繁的线程创建与销毁。 数据库连接池: 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。 一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池( 简单说:在一个“ 池”里放了好多半成品的数据库联接对象)

线程池的原理和连接池的原理

拟墨画扇 提交于 2020-02-11 04:45:39
来自: 线程池的原理和连接池的原理 线程池的原理 : 来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许会问:为什么要搞得这么麻烦,如果每当客户端有新的请求时,我就创建一个新的线程不就完了?这也许是个不错的方法,因为它能使得你编写代码相对容易一些,但你却忽略了一个重要的问题??性能!就拿我所在的单位来说,我的单位是一个省级数据大集中的银行网络中心,高峰期每秒的客户端请 求并发数超 过100,如果为每个客户端请求创建一个新线程的话,那耗费的CPU时间和内存将是惊人的,如果采用一个拥有200个线程的线程池,那将会节约大量的的系统资源,使得更多的CPU时间和内存用来处理实际的商业应用,而不是频繁的线程创建与销毁。 数据库连接池: 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。 一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池( 简单说:在一个“ 池

数据库原理 第2章 数据模型和数据库系统的模式结构

别说谁变了你拦得住时间么 提交于 2020-02-07 15:04:34
数据模型 概念数据模型 实体联系模型(E-R模型)、扩充的实体-联系模型(EER模型)、面向对象模型、谓词模型 概念模型是 现实世界到信息世界的抽象 概念模型是从 用户观点对数据和信息 的建模 是数据库设计者与用户之间交流的工具 是数据库逻辑模型的基础 <性质> 表示简单、易于理解、易于变动且具有 较强的语义表达能力 ,独立于具体的逻辑模型并易于向逻辑模型转换 实体-联系模型(ER模型) 是 最常用 的概念模型。(它提供 不受任何DBMS约束 的面向用户的表达方法) 在ER模型基础上增加概括,聚集等语义描述,形成扩充的实体-联系模型,即EER模型。 ER 模型一般与 关系模型 关联, EER 模型与 对象-关系模型 关联 将局部的ER图集成为全局的ER图时,可能存在三类冲突: 属性冲突:包括类型、取值范围、取值范围的冲突 结构冲突 命名冲突:包括实体类型名、联系类型名之间异名同义或同名异义 逻辑数据模型 层次模型、网状模型、关系模型、面向对象模型、对象关系模型 关系数据模型(1970年美国IBM公司的E.F.Codd提出) 关系数据模型由 关系数据结构 、 关系操作集合 、 关系完整性约束 三大要素组成。 关系数据模型中数据的 物理结构 是一张二维表 二维表中的 列 (字段)称为 属性 , 属性的个数 称为关系的 元或度 。 二维表中的 行 (记录的型),即对关系的描述称为

mysql主从备份及原理分析

拟墨画扇 提交于 2020-02-05 05:04:59
一.mysql主从备份(复制)的基本原理 mysql支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,并在本机上执行相同的更新。然后封锁并等待主服务器通知新的更新。从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新。    二.mysql主从备份配置方法 在进行mysql主从备份时,最好确保主从服务器的版本兼容。从服务器至少与主服务器版本相同或更高。    主机(master)配置: 1.修改mysql配置文件my.cnf 在[mysqld]标签下添加以下几行 [plain] view plain copy log-bin #开启二进制日志 server-id=id #主服务器id号 binlog-do-db=db_nameA #指定对db_nameA记录二进制日志 binlog-ignore-db=db_namB #指定不对db_namB记录二进制日志 注意: log-bin,server

mysql主从备份及原理分析

我怕爱的太早我们不能终老 提交于 2020-02-05 05:03:48
原文链接: http://blog.csdn.net/qmhball/article/details/8233769 一.mysql主从备份(复制)的基本原理 mysql支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,并在本机上执行相同的更新。然后封锁并等待主服务器通知新的更新。从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新。    二.mysql主从备份配置方法 在进行mysql主从备份时,最好确保主从服务器的版本兼容。从服务器至少与主服务器版本相同或更高。    主机(master)配置: 1.修改mysql配置文件my.cnf 在[mysqld]标签下添加以下几行 [plain] view plain copy log-bin #开启二进制日志 server-id=id #主服务器id号 binlog-do-db=db_nameA #指定对db_nameA记录二进制日志 binlog

ORM实现原理

北城余情 提交于 2020-01-28 12:13:44
1.什么是ORM ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。 2.什么是Hibernate 对于Hibernate的称呼有很多,比如工具、技术、框架以及解决方案等,这些都可以,重要的是大家要知道它的作用。在这里我习惯性称它为框架,它是一种能实现ORM的框架。能实现ORM这个功能的框架有很多,Hibernate可以说是这些框架中最流行、最受开发者关注的,甚至连JBoss公司也把它吸收进来,利用它在自己的项目中实现ORM功能。 3.ORM的实现原理 现在在Java领域大家对Hibernate的讨论很多,比如它的优缺点、如何应用、错误如何解决以及把它和Struts/Spring等框架相结合作为整个系统的解决方案。在这里我想和大家探讨一些更深层次的话题,那就是Hibernate是如何实现ORM的功能?如果让我们自己开发一款实现ORM功能的框架需要怎么做?其实这些问题就是围绕着一个词,那就是“映射”,如果我们知道如何实现这种映射那么我们也能够开发出自己的一款ORM框架。会使用Hibernate的开发人员都知道,在使用它实现ORM功能的时候,主要的文件有:映射类

分布式锁 原理及实现方式

纵饮孤独 提交于 2020-01-27 00:03:47
一、原理 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要使用分布式锁了。 在平时的实际项目开发中,我们往往很少会去在意分布式锁,而是依赖于关系型数据库固有的排他性来实现不同进程之间的互斥,但大型分布式系统的性能瓶颈往往集中在数据库操作上。 在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。 其实秒杀类场景最主要的是执行秒杀操作要单线程的,提到单线程,肯定会想到synchronized关键字,但是他有两个致命缺点:1、无法做到细粒度控制,2、只适合单点不适用集群。 所以大多数项目只能采用分布式锁的实现方式。 针对分布式锁的实现,目前比较常用的有以下几种方案:     基于数据库实现分布式锁     基于缓存(redis,memcached,tair)实现分布式锁     基于Zookeeper实现分布式锁 分布式锁主要有基于缓存如redis、基于zookeeper、基于数据库的实现。 在分析这几种实现方案之前我们先来想一下,我们需要的分布式锁应该是怎么样的?(这里以方法锁为例,资源锁同理)     

数据库原理复习——索引和散列

为君一笑 提交于 2020-01-25 15:41:14
本章主要讲的是数据库的查询时候的问题。 索引分为稀疏索引和稠密索引,前者是不是所有的键都有,后者只有一部分。主索引和辅助索引的区别是,主索引是针对排序好的列,每个索引项对应一个存储块儿,辅助索引是费排序的稠密索引。主索引是稀疏索引,辅助索引是稠密索引。 顺序索引主要有三种,除了刚刚说的主索引和辅助索引之外,如果辅助索引每个对应有多个查找对象的话,我们还可以设置一个中间层,让中间层来判断。主索引只能有一个,辅助索引可以有很多个。 在顺序索引中,缺点就是效率不高,更改的代价更高。这时候我们可以采取一种B+树索引的结构。其中的结点分为根结点、非叶节点和叶节点。根节点中至少有两个指针除非整个树就一个结点;其他的结点都是前面大后面小,等于的在后面;叶节点的前面直接指向数据本身,最右边的结点指向下一个结点。这样的缺点主要是空间代价特别大,还会有大量的空间浪费。B+树的查询方式是从上到下,更新我们不用管。然后B+树它本身就是一种文件组织的形式(这里有点不明白)。 然后另外一块我们要了解散列是什么。散列其实是一种文件的组织方式,整个文件区被划分为一个个的桶,我们去找一个记录的时候先把这个记录的某个属性值放到哈希函数里面得到一个桶的物理地址,然后去这个桶里找都自己的块儿,这样的方式使得数据可以分散在磁盘上。然后如果大小不够的话还可以存放在溢出桶里。 然后就是一个散列索引的事情

Sql注入基础原理介绍(超详细)

让人想犯罪 __ 提交于 2020-01-25 11:47:42
一、Sql注入简介 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。 二、Web 程序三层架构 三层架构 ( 3-tier architecture ) 通常意义上就是将整个业务应用划分为: 界面层(User Interface layer) 业务逻辑层(Business Logic Layer) 数据访问层(Data access layer)。 区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构被应用于众多类型的软件开发。 由数据库驱动的Web应用程序依从三层架构的思想也分为了三层: 表示层。 业务逻辑层(又称领域层) 数据访问层(又称存储层) 拓扑结构如下图所示 在上图中,用户访问实验楼主页进行了如下过程: 在 Web 浏览器中输入 www.shiyanlou.com 连接到实验楼服务器。 业务逻辑层的 Web 服务器从本地存储中加载 index.php 脚本并解析。 脚本连接位于数据访问层的 DBMS (数据库管理系统),并执行 Sql 语句。 数据访问层的数据库管理系统返回 Sql 语句执行结果给 Web 服务器。 业务逻辑层的 Web 服务器将 Web 页面封装成 HTML 格式发送给表示层的