写出模式R的基本FD和关键码序列?

比如说F是R上的FD集,设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的FD集合,则有以下三条推论规则。自反性、增广性、传递性。这个FD集到底是啥啊????????... 比如说F是R上的FD集,
设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的FD集合,则有以下三条推论规则。自反性、增广性、传递性。
这个FD集到底是啥啊????????

函数依赖简单点说就是:某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。

函数依赖是由数学派生的术语,它表征一个属性或属性集合的值对另一个属性或属性集合的值的依赖性。需要强调的是,函数依赖是关系所表述信息本身具有的语义特性,而不能由属性构成关系的方式来决定,也不能由关系的当前内容所决定。

1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。

2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。

例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立。

3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。


· 教育知识分享小达人,专注于讲解教育知识。

1、函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。

2、函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。

例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立

3、数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。

设R(U)是一个属性集U上的关系模式,X和Y是U的子集。

上面一段话是某些教材上的话,比较不好理解。比如在设计学生表时,一个学生的学号能决定学生的姓名,也可称姓名属性依赖于学号,对于现实来说,就是如果知道一个学生的学号,就一定能知道学生的姓名,这种情况就是姓名依赖于学号,这就是函数依赖,函数依赖又分为非平凡依赖,平凡依赖;从性质上还可以分为完全函数依赖、部分函数依赖和传递函数依赖。

定义:R(U),X、Y为属性集,t1、t2为元组,若t1[X]=t2[X],则t1[Y]=t2[Y],称X函数决定Y函数或Y依赖于X,记作X→Y。

例3-22 对实例3-21“学生选课”关系模式R,如果规定每个学生只能有一个姓名,每个课程号只能对应一门课程,则有以下FD:

由于每个学生每选修一门课程只能有一个成绩,则有以下FD:

例3-23 设关系模式R(ABCD),假设A与B为一对多联系,而C与D为一对一联系,试写出相应的FD。

由于A与B为一对多联系,即每个A值有多个B值与之对应,即B值决定A值,可写出FD:B→A。

同理,由于C与D为一对一联系,可写出FD:D→C和C→D。

注意一对一、一对多联系(如学号和性别为一对多联系)的FD。

2. FD和关键码的关系

定义:R(U),若X→U,则称X是R的超键。如果X任一子集X1,有X1→U不成立,则称X是R的候选键。

例3-24 对例3-22的关系模式R进行分析,有以下FD:

结论:·若X是R的候选键,则对于任意Y,均有X→Y。eg. “学生选课”。

·函数依赖表示数据的完整性约束。

定义:若X→Y,且Y X,则称X→Y是“平凡的FD”,反之称为“非平凡的FD”。

结论:平凡的FD是不可能不满足的FD(如X→X),要研究的是非平凡的FD。

规则:·自含律 X→X。

·自反律 若Y X,则X→Y。

·增广律 若X→Y,则XZ→YZ。

·传递律 若X→Y且WY→Z,则XW→Z。

·分解规则 若X→YZ,则X→Y且X→Z。

·合并规则 若X→Y且X→Z,则X→YZ。

·复合规则 若X→Y且Z→W,则XZ→YW。


推荐于 · TA获得超过141个赞

在数据库系统中,设有关系模式R或简记为R,X,Y是U的子集,r是R的任一具体关系, 如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X, 记为X→Y。X→Y为模式R的一个函数依赖。

下载百度知道APP,抢鲜体验

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。

}

首先,是LINUX系统的诞生大事件,即它的历史。

  • 1965 年,Bell 实验室、MIT、GE(通用电气公司)准备开发 Multics 系统,为了同时支持 300 个终端访问主机,但是 1969 年失败了;

    刚开始并没有鼠标、键盘,输入设备只有卡片机,因此如果要测试某个程序,则需要将读卡纸插入卡片机,如果有错误,还需要重新来过; Multics:Multiplexed Information and Computing Service

  • 因为汇编语言对于硬件的依赖性,因此只能针对特定硬件; 只是为了移植一款“太空旅游”的游戏;

  • 将 B 语言改成 C 语言,由此产生了 C 语言之父; 90% 的代码是 C 语言写的,10% 的代码用汇编写的,因此移植时只要修改那 10% 的代码即可;

  • 1984 年,因为 UNIX 规定:“不能对学生提供源码”,Tanenbaum 老师自己编写兼容于 UNIX 的Minix,用于教学;

  • 产品:GCC、Emacs、Bash Shell、GLIBC; 倡导“自由软件”; GNU 的软件缺乏一个开放的平台运行,只能在 UNIX 上运行; 自由软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着 GPL 的版权; 自由软件是可以卖的,但是不能只卖软件,而是卖服务、手册等;

  • 表现出来就是一个$,而 Windows/dos 的表现为^M$,可以直接使用dos2unixunix2dos工具在两种格式之间进行转换,使用file命令可以查看文件的具体类型。

    使用下面这个命令可以安装,之所以叫 ninvaders 是因为这款游戏是基于 ncurses 命令行图形库做的:

    • 使用awk将文本内容打印到终端

    说明:你首先应该注意的是,这里我使用了awk语言的分支选择语句if,它的使用和很多高级语言如C/C++语言基本一致,如果你有这些语言的基础,这里将很好理解。另一个你需要注意的是NROFS,这两个是awk内建的变量,NR表示当前读入的记录数,你可以简单的理解为当前处理的行数,OFS表示输出时的字段分隔符,默认为" "空格,如上图所见,我们将字段分隔符设置为 换行符,所以第一行原本以空格为字段分隔的内容就分别输出到单独一行了。然后是$N其中N为相应的字段号,这也是awk的内建变量,它表示引用相应的字段,因为我们这里第一行只有三个字段,所以只引用到了$3。除此之外另一个这里没有出现的$0,它表示引用当前记录(当前行)的全部内容。

    • 将test的第二行的以点为分段的字段换成以空格为分隔

    说明:这里的-F参数,前面已经介绍过,它是用来预先指定待处理记录的字段分隔符。我们需要注意的是除了指定OFS我们还可以在print 语句中直接打印特殊符号如这里的 ,print打印的非变量内容都需要用""一对引号包围起来。上面另一个版本,展示了实现预先指定变量分隔符的另一种方式,即使用BEGIN,就这个表达式指示了,其后的动作将在所有动作之前执行,这里是FS赋值了新的"."点号代替默认的" "空格

    注意:首先说明一点,我们在学习和使用awk的时候应该尽可能将其作为一门程序语言来理解,这样将会使你学习起来更容易,所以初学阶段在练习awk时应该尽量按照我那样的方式分多行按照一般程序语言的换行和缩进来输入,而不是全部写到一行(当然这在你熟练了之后是没有任何问题的)。

    6.awk常用的内置变量

    当前输入文件名,若有多个文件,则只表示第一个。如果输入是来自标准输入,则为空字符串
    N表示字段号,最大值为NF变量的值
    字段分隔符,由正则表达式表示,默认为" "空格
    输入记录分隔符,默认为" ",即一行为一个记录
    当前输入文件的记录数,请注意它与NR的区别
    输出字段分隔符,默认为" "空格
    输出记录分隔符,默认为" "

    介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用。

    一、Linux 上的软件安装

    通常 Linux 上的软件安装主要有三种方式:

  • 从磁盘安装deb软件包

这几种安装方式各有优劣,而大多数软件包会采用多种方式发布软件,所以我们常常需要全部掌握这几种软件安装方式,以便适应各种环境。下面将介绍前三种安装方式,从源码编译安装你将在 Linux 程序设计中学习到。

 在不同的linux发行版上面在线安装方式会有一些差异包括使用的命令及它们的包管理工具,因为我们的开发环境是基于ubuntu的,所以这里我们涉及的在线安装方式将只适用于ubuntu发行版,或其它基于ubuntu的发行版如国内的ubuntukylin(优麒麟),ubuntu又是基于debian的发行版,它使用的是debian的包管理工具dpkg,所以一些操作也适用与debian。而在其它一些采用其它包管理工具的发行版如redhat,centos,fedora等将不适用(redhat和centos使用rpm)

比如我们想安装一个软件,名字叫做 w3m(w3m是一个命令行的简易网页浏览器),那么输入如下命令:

Tool(高级包装工具)的缩写,是Debian及其派生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。这个包管理器包含以 apt- 开头的的多个工具,如 apt-get apt-cache apt-cdrom 等,在Debian系列的发行版中使用。

当你在执行安装操作时,首先apt-get 工具会在本地的一个数据库中搜索关于 w3m 软件的相关信息,并根据这些信息在相关的服务器上下载软件安装,这里大家可能会一个疑问:既然是在线安装软件,为啥会在本地的数据库中搜索?要解释这个问题就得提到几个名词了:

我们需要定期从服务器上下载一个软件包列表,使用 sudo apt-get update 命令来保持本地的软件包列表是最新的(有时你也需要手动执行这个操作,比如更换了软件源),而这个表里会有软件依赖信息的记录,对于软件依赖,我举个例子:我们安装 w3m 软件的时候,而这个软件需要 libgc1c2 这个软件包才能正常工作,这个时候 apt-get 在安装软件的时候会一并替我们安装了,以保证 w3m 能正常的工作。

apt-get使用各用于处理apt包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等,下面列出一些apt-get包含的常用的一些工具:

其后加上软件包名,用于安装一个软件包
从软件源镜像服务器上下载/更新用于更新本地软件源的软件包列表
升级本地可更新的全部软件包,但存在依赖问题时将不会升级,通常会在更新之前执行一次update
解决依赖关系并升级(存在一定危险性)
移除已安装的软件包,包括与被移除软件包有依赖关系的软件包,但不包含软件包的配置文件
移除之前被其他软件包依赖,但现在不再被使用的软件包
与remove相同,但会完全移除软件包,包含其配置文件
移除已安装的软件的旧版本软件包

下面是一些apt-get常用的参数:

自动回应是否安装软件包的选项,在一些自动化安装脚本中使用这个参数将十分有用
静默安装方式,指定多个q或者-q=#,#表示数字,用于设定静默级别,这在你不想要在安装软件包时屏幕输出过多时很有用
重新安装已经安装但可能存在问题的软件包
同时安装APT给出的建议安装的软件包

如何在不知道软件包完整名的时候进行安装。通常我们是使用Tab键补全软件包名,后面会介绍更好的方法来搜索软件包。有时候你需要同时安装多个软件包,你还可以使用正则表达式匹配软件包名进行批量安装。

# 升级没有依赖问题的软件包 # 升级并解决依赖关系

# 不保留配置文件的移除
# 移除不再需要的被依赖的软件包
 

 
当自己刚知道了一个软件,想下载使用,需要确认软件仓库里面有没有,就需要用到搜索功能了,命令如下:
现在我们试试搜索一下之前我们安装的软件 w3m ,如图:

结果显示了4个 w3m 相关的软件,并且有相关软件的简介。

三、使用 dpkg 从本地磁盘安装 deb 软件包

 

 

dpkg 是 Debian 软件包管理器的基础,它被伊恩·默多克创建于 1993 年。dpkg 与 RPM 十分相似,同样被用于安装、卸载和供给和 .deb 软件包相关的信息。

dpkg 本身是一个底层的工具。上层的工具,像是 APT,被用于从远程获取软件包以及处理复杂的软件包关系。"dpkg"是"Debian Package"的简写。

我们经常可以在网络上简单以deb形式打包的软件包,就需要使用dpkg命令来安装。

dpkg常用参数介绍:

后面加上目录名,用于安装该目录下的所有deb安装包
remove,移除某个已安装的软件包
显示deb包文件的信息
显示已安装软件包的目录信息

我们先使用apt-get加上-d参数只下载不安装,下载emacs编辑器的deb包,下载完成后,我们可以查看/var/cache/apt/archives/目录下的内容,如下图:

然后我们将第一个deb拷贝到home目录下,并使用dpkg安装

# 安装之前参看deb包的信息

如你所见,这个包还额外依赖了一些软件包,这意味着,如果主机目前没有这些被依赖的软件包,直接使用dpkg安装可能会存在一些问题,因为dpkg并不能为你解决依赖关系。

3.查看已安装软件包的安装目录

如果你依然在纠结到底linux将软件安装到了什么地方,那么很幸运你将可以通过dpkg找到答案

二进制包的安装比较简单,我们需要做的只是将从网络上下载的二进制包解压后放到合适的目录,然后将包含可执行的主程序文件的目录添加进PATH环境变量即可

这一节是本课程的最后一节,所以这里我们给大家介绍一个很有趣的命令。

 
 
 
 
}

我要回帖

更多关于 关键码序列 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信