sql数据库

关系代数中除法的SQL实现

余生长醉 提交于 2020-03-06 01:37:59
关系代数中除法的SQL实现 文章目录 关系代数中除法的SQL实现 引言 除法 笛卡尔积的逆 SQL实现 应用场景举例 集合谓词的缺席 实现减法 实现除法 附录 实验用SQL 引言 关系代数中的运算主要有选择、投影、连接(或者说乘法,即笛卡尔积)、除法,以及集合运算。其中,选择、投影、连接能直接用SQL表达,但除法和大部分集合运算不能。尤其是除法的缺失,使得涉及该操作的查询难以编写。本文将介绍用如何现有SQL实现除法,并分析困难产生的原因。 除法 笛卡尔积的逆 关系除法可以看作笛卡尔积的逆,即对于 R ÷ S R\div S R ÷ S ,其结果为所有满足 T × S ⊆ R T\times S\subseteq R T × S ⊆ R 的 T T T 中最大的那个,有 T = π ( R ) − π ( ( π ( R ) × S ) − R ) T=\pi(R)-\pi((\pi(R)\times S)-R) T = π ( R ) − π ( ( π ( R ) × S ) − R ) 可以将该结论表达为SQL以实现除法吗?在不支持 MINUS , EXCEPT 的数据库中不能。由于R至少有两列,用NOT EXISTS实现MINUS并不简单。 SQL实现 应用场景举例 假设如下关系, 人与技能 person skill 张大仙 LOL 殷子 笑 卫小妹 CV 成少 LOL

第九章、安全管理

天涯浪子 提交于 2020-03-06 01:06:35
第九章、安全管理 内容提要: 1.理解安全控制的基本概念 2.了解SQL Server 2008的存取控制 3.掌握SQL Server 2008的安全控制实现方式 4.了解Oracle的安全管理 第一节 安全控制概述 数据库安全性不同于数据的完整性。 安全性:保护数据以防止不合法用户故意造成破坏。 (确保用户被允许做其想做的事情。) 完整性:保护数据以防止合法用户无意中造成的破坏。 (确保用户做的事情是正确的。) 1.数据库安全控制的目标   保护数据免受意外或故意的丢失、破坏或滥用。 2.数据库安全的威胁   安全计划需要考虑:可用性损失,机密性数据损失,私密性数据损失,偷窃和欺诈,意外的损害。 3.安全控制模型 包括四阶段: 身份验证(用户) 操作权限控制(数据库应用程序与数据库管理系统) 文件操作控制(操作系统) 加密存储与冗余(数据库) 4.授权和认证   认证是一种鉴定用户身份的机制。授权是将合法访问数据库或数据库对象的权限授予用户的过程。包括认证用户对对象的访问请求。   DBMS通常采用自主存取控制和强制存储控制两种方案来解决安全控制问题。 第二节 存取控制 1.自主存取控制 又称自主安全模式, 通过SQL的GRANT,REVOKE,DENY语句来实现。 权限种类:维护权限与操作权限(语句权限与对象权限) 用户分类:系统管理员(sa)、数据库对象拥有者、普通用户。

十九、oracle pl/sql简介

本小妞迷上赌 提交于 2020-03-05 22:09:14
一、pl/sql 是什么 pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展。 pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。 二、为什么要学pl/sql 1.提高应用程序的运行性能 2.模块化的设计思想(分页的过程,订单的过程,转账的过程。。) 3.减少网络传输量 4.提高安全性(sql会包括表名,有时还可能有密码,传输的时候会泄露。PL/SQL就不会) 三、Oracle为什么在PL/SQL developer执行很快,用c# oracleclient执行就慢 因为PL/SQL这门语言是专门用于在各种环境下对Oracle数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。 而c#语言是微软的产品,它在连接ORACLE的时候先存到“连接池”中,所以第一次会慢点,但是当你的Web程序没有重起的时候,以后的速度就不会慢了。 四、使用pl/sql的缺点 移植性不好(换数据库就用不了) 五、pl/sql理解 1)、存储过程、函数、触发器是pl/sql编写的 2)、存储过程、函数、触发器是存在oracle中的 3)、pl/sql是非常强大的数据库过程语言 4)、存储过程、函数可以在java中调用 六

Oracle误删除表数据后的恢复具体解释

梦想的初衷 提交于 2020-03-05 17:24:57
Oracle误删除表数据后的恢复具体解释 測试环境: SYSTEM:IBM AIX 5L Oracle Version :10gR2 1. undo_retention參数的查询 与 改动 使 用 show parameter undo 命令查看当 前 的数据库參数 undo_retention 设置。 显演示样例如以下: SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS2 undo_retention(保持力), 900 单位是 秒 , 即 15分钟 。 改动默认的undo_retention參数设置: SQL> ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; System altered. SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- -

sql数据库还原,出现媒体簇的结构不正确,错误3241,SQLServer无法处理此媒体簇的解决方法

巧了我就是萌 提交于 2020-03-05 12:46:17
在还原数据库的时候,会遇到如下提示,设备 'D:\aaa.bak' 上的介质簇的结构不正确。SQL Server 无法处理此介质簇 产生的原因有3种: 一、备份bak文件和你要还原过去的程序版本不一致,可以通过select @@version查看2边的具体版本。一般大版本一致就基本没问题。 二、备份bak文件拷贝的过程中损坏了或者变小了,比如原来是5G,考过去变成了4.9G,那还原肯定就要报错,解决办法就是把bak打包考过去。(比如有时候通过堡垒机进行传文件,或者共享传文件容易出现) 三、备份的bak文件有多个,你考的时候少考了,考得不完整导致的。 来源: 51CTO 作者: 华仔的博客 链接: https://blog.51cto.com/hzcto/2473001

Microsoft SQL Server 数据库服务器管理维护角色

坚强是说给别人听的谎言 提交于 2020-03-05 08:54:06
固定服务器角色: 按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述: Bulkadmin:这个服务器角色的成员可以运行BULK INSERT语句。这条语句允许从文本文件中将数据导入到SQL Server 2008数据库中,为需要执行大容量插入到数据库的域账户而设计。 Dbcreator:这个服务器角色的成员可以创建、更改、删除和还原任何数据库。这不仅是适合助理DBA的角色,也可能是适合开发人员的角色。 Diskadmin:这个服务器角色用于管理磁盘文件,比如镜像数据库和添加备份设备。它适合助理DBA。 Processadmin:SQL Server 2008能够多任务化,也就是说可以通过执行多个进程做多个事件。例 如,SQL Server 2008可以生成一个进程用于向高速缓存写数据,同时生成另一个进程用于从高速缓存中读取数据。这个角色的成员可以结束(在 SQL Server 2008中称为删除)进程。 Securityadmin:这个服务器角色的成员将管理登录名及其属性。他们可以授权、拒绝和撤销服务器级权限。也可以授权、拒绝和撤销数据库级权限。另外,它们可以重置SQL Server 2008登录名的密码。 Serveradmin:这个服务器角色的成员可以更改服务器范围的配置选项和关闭服务器。例如SQL Server

最近sql注入数据库被更改泛滥,以下提供一个.net程序防止sql注入的方法

一笑奈何 提交于 2020-03-05 07:59:45
最近sql注入数据库被更改泛滥:状况如下:“ </title> </pre>> <script src=http://sb.5252.ws:88/107/1.js> </script> <”, 以下提供一个.net程序防止sql注入的方法(过滤敏感语句的仅供参考)方式如下:在Global.asax文件下面加入如下代码: void Application_BeginRequest(Object sender, EventArgs e) { StartProcessRequest(); } #region SQL注入式攻击代码分析 /// <summary> /// 处理用户提交的请求 /// </summary> private void StartProcessRequest() { try { string getkeys = ""; string sqlErrorPage = "../default.aspx";//转向的错误提示页面 if (System.Web.HttpContext.Current.Request.QueryString != null) { for (int i = 0; i < System.Web.HttpContext.Current.Request.QueryString.Count; i++) { getkeys = System.Web

C# 增删改查应用集结

被刻印的时光 ゝ 提交于 2020-03-05 06:33:25
ADO.NET技术,该技术用于.net程序操作数据库 ADO的组成: 1.数据提供程序 a.Connection:连接对象,用于指定数据库服务器的相关信息(数据库服务名 数据库用户名 密码等) b.Command:命令对象,用于对数据库执行增删改查的操作,会提供对应的操作方法 2.数据集 对数据库的操作: 1.导名称空间System.Data.SqlClient (用于连接Sql server数据库) 2.创建连接对象 //连接字符串的格式: server=数据库服务名;database=数据库;uid=用户名;pwd=密码 String conStr = "server=192.168.0.102;database=MySchool3;uid=sa;pwd=sa"; SqlConnection cn = new SqlConnection(conStr); 3.打开连接 cn.open(); 4.创建命令对象 String sql = "delete student where studentId="+this.textBox1.Text; SqlCommand cmd = new SqlCommand(sql,con); 5.执行命令对象 int count=cmd.ExecuteNonQuery();//该方法的返回值:sql语句执行后 受影响的行数

共享池中保留池的调整(shared_pool_reserved_size)

試著忘記壹切 提交于 2020-03-05 05:39:05
--************************************************* -- 共享池中保留池的 调 整 (shared_pool_reserved_size) --************************************************* 1 . 何 谓 保留池 简 言之,保留一部分 内 存空 间 以 备 不 时 之需。通常情 况 下, Oracle 会将 大的 内 存 请 求分割成小的 内 存 块来满 足需求。而 对 于大的 内 存且 为连续 的 内 存空 间请 求,如果在共享池中未找到, 则会动 用 共享池中的保留池。 当 然,共享池在 内 存 压 力的情 况 下,也 会 使用到 保留池中的部分。保留池部分 满 足 较 大的 内 存需求更高效。缺省情 况 下, Oracle 会 配置 较 小的保留池, 这 部分可以用作 PL/SQL 或 触发 器 编译 使用或用于装 载 JAVA 对 象的 临时 空 间 。 这 些分配出去的 内 存一旦 释 放后 将 返回 给 保留池。 任意大于 "_shared_pool_reserved_min_alloc = 4400" 字 节 的 连续内 存分配 请 求,如果 shared_pool 中分配不能解 决 ,且 当 前 shared_pool 中 没 有可用的 块 能 够 aged

mysql-python安装时EnvironmentError: mysql_config not found

我只是一个虾纸丫 提交于 2020-03-05 03:13:03
MySQLdb是python的一个标准的连接和操纵mysql的模块。 下载地址; https://pypi.python.org/pypi/MySQL-python/1.2.4#downloads sourceforge地址: http://sourceforge.net/projects/mysql-python/ 说一下版本问题,去上面的网址可以看到,有2个版本MySQLdb1,MySQLdb2,默认下载的是MySqLdb2,可是到了第二版,作者又新开了一个项目叫moist https://github.com/farcepest/moist 就是前面版本的升级,不知道作者为什么要新开一个项目。查看作者MySQLdb2的readme: This is the legacy (1.x) version of MySQLdb. While it is still being maintained, there will not be a lot of new feature development. TODO A bugfix 1.2.4 release A 1.3.0 release that will support Python 2.7-3.3 The 2.0 version is being renamed moist and lives at https://github