Chapter2: 关系数据库

一.搞懂主键 外键关系

主键(主码):能唯一标识一个元组的某一属性组。

外键:不是这组数据的主键 但是另一组数据的唯一主键(当这组数据的主键有2个时 可以作为外键)

例 1  找出所有外键
1. 学生S(学号,姓名,性别,系号,出生年月)
2.   系DEPT(系号,系名,负责人)
3.   课程C(课程号,课程名,学分)
4.   选课SC(学号,课程号,成绩)

答:1的系号(1==>2)  4的学号(4==>1)  4的课程号(4==>3)

============================================

二.理解关系性质

1.列是同质的。                                       //同一数据类型
2.关系中行的顺序、列的顺序可以任意互换,不会改变关系的意义。即行、列无序
3关系中的任意两个元组不能相同。                  //元组:二维表中的行称为元组(记录值)。
4.关系中的元组分量具有原子性,即每一个分量都必须是不可分的数据项。
5.不同的列可出自同一个域                    //定义域可以一样

===============================================

三.关系的完整性

1.主键上的元素不能为空!(非主键可以)

2.外键元素两表的域必须相同 或者空

3.其作用就是要保证数据库中的数据是正确的,提高了数据库的正确度 .

==============================================

四.关系运算

1.选择 σ     //挑出符合的行

2.投影 兀    //挑出符合的列(会去重)

上两个简单理解 不列举例子

3.等值连接R ⋈S  //两表有公共属性 对相同属性的化简表 笛卡儿积后 去重

例:                                  R⋈S

解释:R与S相同属性B有b1,b2,b3,提出后笛卡儿积 再去重

4.除法 R ÷S    //含有关键词:全部 需进行÷操作

例: R÷S:查询选修了全部课程的同学学号

    R              S                   R÷S

关键词:“的”后面是被除数的表

    “全部”是除数的表

R÷S的属性:是“的”后面的 R-S的属性名

R÷S=满足所有S主键的  +  R÷S的属性

例题:

            S                             C                      SC

Q1:查询选修了“程军”老师课程的学生学号

ПSno(ПCno,Sno ( SC ) ∞ ПCno (σTeacher=‘程军’ (C))

Q2:查询选修了“程军”老师全部课程的学生学号。

ПSno,Cno ( SC )  ПCno (σTeacher=‘程军’ (C))

Q3:查询全部学生都选修的课程号和课程名。

ПCno,Cname(C∞ ( ПSno,Cno ( SC) ÷ ПSno(S)) )

上课总结-数据库Chapter2: 关系数据库的更多相关文章

  1. 数据库的范式,第一、二、三、四、五范式、BC范式

    数据库的规范化(上一篇博客有写到)的程度不同,便有了这么多种范式.数据库范式是数据库设计必不可少的知识,没有对范式的理解,就无法设计出高效率.优雅的数据库,甚至设计出错误误的数据库.课本中的定义比较抽 ...

  2. 全自动迁移数据库的实现 (Fluent NHibernate, Entity Framework Core)

    在开发涉及到数据库的程序时,常会遇到一开始设计的结构不能满足需求需要再添加新字段或新表的情况,这时就需要进行数据库迁移. 实现数据库迁移有很多种办法,从手动管理各个版本的ddl脚本,到实现自己的mig ...

  3. 数据库 之MySQL 简单教程

      So Easy系列之MySQL数据库教程 1.   数据库概述 1.1.  数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...

  4. Jena学习笔记(2)——利用数据库保存本体

    注明:本文档是使用Jena2.6.4,数据库为MySQL,数据库驱动版本为mysql-connector-java-5.1.13-bin.jar. 1 Jena的数据库接口 Jena提供了将RDF数据 ...

  5. Postgres数据库基本介绍

    最近一直在做一个和PostgreSQL数据库相关的项目,把自己在这个过程中学习的知识记录下来.关于PostgreSQL数据库网上已经有太多的相关介绍了,为了博文的系统性还是先看一下维基百科对Postg ...

  6. 各种主流数据库的比较(所以说我觉得Oracle这个keng?入的不错?)

    随着计算机技术不断发展,各种数据库编程工具也随着发展,使当今的大多数程序开发人员可以摆脱枯燥无味的用计算机指令或汇编语言开发软件,而是利用一系列高效的.具有良好可视化的编程工具去开发各种数据库软件,从 ...

  7. 关于NoSQL数据库你应该知道的10件事

    关系数据库模型已经流行了几十年了,但是一种新类型的数据库——被称为NoSQL,正在引起企业的注意.下面是关于它的优势和劣势的一个概述.二十多年以来,对数据库管理来说,关系数据库(RDBMS)模型一直是 ...

  8. 数据库及SQL----常用知识点总结

    数据库也是计算机类笔试面试中不可避免会遇到的考点,尤其是银行和部分传统软件类公司.这里根据整理的资料,对数据库的相关知识也做个总结吧.希望学过数据库但长时间不用的同学根据这些知识能够回忆和重拾,没学过 ...

  9. 关系型数据库和NOSQL数据库对比

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt328 关系型数据库,是建立在关系模型基础上的数据库,其借助于集合代数等数学概 ...

随机推荐

  1. CSS中盒子垂直居中的常用方法

    在前端开发过程中,盒子居中是常常用到的.其中 ,居中又可以分为水平居中和垂直居中.水平居中是比较容易的,直接设置元素的margin: 0 auto就可以实现.但是垂直居中相对来说是比较复杂一些的.下面 ...

  2. Jsp页面中的中文乱码问题解决

    Jsp页面中的中文乱码问题解决 在编写Jsp页面的时候,发现写入其中的中文在浏览器浏览的时候会出现乱码的情况. 出现乱码的原因分析: 因为页面中对自己的编码格式的声明和页面的实际编码格式不相同,而浏览 ...

  3. C#中插入换行符

    要让一个Windows Form的TextBox显示多行文本就得把它的Multiline属性设置为true. 这个大家都知道,可是当你要在代码中为Text属性设置多行文本的时候可能会遇到点麻烦:) 你 ...

  4. 201671010140. 2016-2017-2 《Java程序设计》java学习第二周

                                 学习第二周(Java基本程序设计结构)      这一周,着重学习了Java的简单程序设计实现及运行,通过自己操作,发现Java的程序语法大面 ...

  5. MobileSubstrate

    [MobileSubstrate] Cydia Substrate (formerly called MobileSubstrate) is the de facto framework that a ...

  6. Mac设置Root密码

    [Mac设置Root密码] Mac系统重新设置root用户密码 如果不知道root用户密码,需要重设.   命令[sudo passwd root ]   然后提示你输入当前登录用户密码,通过以后, ...

  7. zookeeper更进一步(数据模型、watcher及shell命令)

    ZooKeeper数据模型 ZooKeeper 的数据模型,在结构上和标准文件系统的非常相似,拥有一个层次的命名空间,都是采用树形层次结构,ZooKeeper 树中的每个节点被称为—Znode.和文件 ...

  8. PhoneGap 3.4 开发配置及问题

    PhoneGap这个坑爹货,开发确实迅速,又无需学习新知识,但又有N多深不见底坑,最大的坑无疑是性能,滑动时卡顿明显,iPhone5上性能比较好,大部分安卓上就坑爹了,神马动画效果最好少用:其次是不同 ...

  9. Luogu 4254 [JSOI2008]Blue Mary开公司

    BZOJ 1568 学习了一波李超线段树. 大佬blog 这个东西专门用来维护插入一条线段和区间/单点的最大/最小值. 插入的时候讨论: 1.如果当前结点上没有线段,那么直接插入. 2.如果当前结点上 ...

  10. logback 中文手册

    摘自:http://aub.iteye.com/blog/1896611 logback 中文手册 博客分类:  Log loglogbackloback手册loback中文手册  logback 常 ...