关系模型的基本术语

定义:用二维表格来表示实体集,用关键码表示实体之间联系的数据模型称为关系模型

有时也习惯称呼关系为表或表格,元组为行(Row),属性为列。关系中属性个数称为“元数”,元组个数称为“基数”

关键码(Key,简称键):由一个或多个属性组成

超键(Super Kry):在关系中能唯一标识元组的属性集称为关系模型的超键

候选键:不含有多余属性的超键称为候选键

主键:(Primary Key):用户选作元组标识的候选键称为主键,一般不加说明,键是指主键

外键:(Foreign Key):如果模式R中属性K是其他模式的主键,那么K在在模式R中称为外键

关系的定义和性质

定义:关系是一个属性数目相同元组的集合

关系是一种规范化了的二维表格,对于关系作了下列规范性限制:

  1、关系中每一个属性都是不可分解的

  2、关系中不允许出现重复的元组(即不允许出现相同的元组)

  3、由于关系是一个集合,因此不考虑元组间的顺序,即没有顺序

  4、元组中属性在理论上也是无序的,但使用时按习惯考虑列的顺序

三类完整性规则

实体完整性规则:关系中元组在组成主键的属性上不能有空值,如果有空值,那么就起不到唯一标识元组的作用

参照完整性规则:K是关系模式R1中的主键,是关系模式R2中的外键,那么K在R2中的取值有俩种,或者为空值,或者等于R1关系中某个主键值(不允许应用不存在的实体)

用户定义的完整性规则

ER模型到关系模型的转换

ER图中的主要成分是实体类型和联系类型,转换算法就是如何把实体类型、联系类型转换成关系模式

实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键

联系类型的转换(一、二元联系类型的转换)

  1、若实体间联系是1:1,可以在俩个实体类型转换成的俩个关系模式中任意一个关系模式的属性中加入另一个关系模型的键(作为外键)和联系类型的属性

  2、若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键(作为外键)和联系类型的属性

  3、若实体间的联系为M:N,则将联系类型也转换成关系模式,其属性为俩端实体类型的键(作为外键)加上联系类型的属性,而键为两端实体键的组合

实体转换为关系模型

系(系编号,系名,电话)

教师(教工号,姓名,性别,职称)

课程(课程号,课程,学分)

联系转换为关系模型

1:1联系“主管”,可以在系模式中加入“教工号”(教工号为外键)------系(系编号,系名,电话,教工号

1:N联系“聘用”,可以在“教师”模式中加入系编号和聘期俩个属性(系编号为外键)---------教师(教工号,姓名,性别,职称,系编号,聘期)

1:N联系“开设”,可以在“课程”模式中加入系编号(系编号为外键) - ---------------------------课程(课程号,课程,学分,系编号

M:N联系“任教”,则生成一个新的关系模式-------------------------------------------------------------任教(教工号,课程号,学分)

这样结合起来的最终结果为:

系(系编号,系名,电话)

教师(教工号,姓名,性别,职称,系编号,聘期)

课程(课程号,课程,学分,系编号

任教(教工号,课程号,学分)

联系类型的转换(三元联系类型的转换)

  1、若实体间联系是1:1:1,可以在三个实体类型转换成的三个关系模式中任意一个关系模式的属性中加入另两个关系模型的键(作为外键)和联系类型的属性

  2、若实体间联系是1:1:N,则在N端实体类型转换成的关系模式中加入两个1端实体类型的键(作为外键)和联系类型的属性

  3、若实体间联系是1:M:N,则将联系类型也转换成关系模式,其属性为M端和N端实体类型的键(作为外键)加上联系类型的属性,而键为M端和N端实体键的组合

  4、若实体间联系是M:N:P,则将联系类型也转换为关系模式,其属性为三端实体类型的键(作为外键)加上联系类型的属性,而键为三端实体键的组合

仓库(仓库号,仓库名,地址)

商店(商店号,商店名)

商品(商品号,商品名)

进货(仓库号,商店号,商品号,日期,数量)

采用ER模式的逻辑设计步骤

关系数据库的逻辑设计步骤有以下五步:

1、导出初始关系模式集

2、规范化处理

3、模式评价(主要包括功能和性能俩个方面)

4、模式修正

5、设计子模式

数据库设计和ER模型-------之关系模型的基本概念(第二章)的更多相关文章

  1. 数据库设计与 ER 模型 - 数据库系统原理

    数据库系统生存周期 数据库应用系统的开发是一项软件工程,一般具有信息的采集.组织.加工.抽取.综合.传播等功能,但又有自己的特点,所以称为 数据库工程. 数据库应用系统从开始规划.设计.实现.维护到最 ...

  2. ER图/模型转换为关系模型

    ER图中的主要成分是实体类型和联系类型,转换规则就是如何把实体类型.联系类型转换成关系模式. 1. 二元联系转换 规则1.1(实体类型的转换):将每个实体类型转换成一个关系模式,实体的属性即为关系模式 ...

  3. 数据库系统概论——从E-R模型到关系模型

    E-R模型和关系模型都是现实世界抽象的逻辑表示 E-R模型并不被 DBMS直接支持,更适合对现实世界建模 关系模型是 DBMS直接支持的数据模型 基本 E-R图中的元素包括实体集.联系集.属性 椭圆框 ...

  4. ER模型到关系模型的转换规则

    E-R模型向关系模型的转换规则: 一.两元联系的转换规则 (1)实体类型的转换 将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键. (2)联系类型的转换 a实体间的联 ...

  5. 数据库系统(四)---关系型数据库设计及E-R图

    1.关系型数据库: 关系型数据库是一类采用关系模型作为逻辑数据模型的数据库系统,遵从数据库设计的基本步骤,包括:需求分析.概念结构设计.逻辑结构设计.物理结构设计.数据库实施.数据库的运行和维护等阶段 ...

  6. 数据库——数据库设计 E-R图向关系模型的转换

    1.将下列物资管理E-R图转换为关系模式: 转换原则 ⒈  一个实体型转换为一个关系模式.关系的属性:实体型的属性关系的码:实体型的码   ⒉ 一个m:n联系转换为一个关系模式(初步,以后可能调整). ...

  7. MySQL数据分析-(5)数据库设计之ER模型

    大家好,我是jacky,很高兴跟大家分享本课时的内容,从本节课开始,就开始了我们第二章的学习,第一章我们抛出了若干问题,从第二章开始往后,都是解决问题的一个过程: 第一章的案例中,我们拿手机销售公司举 ...

  8. 数据库设计和ER模型-------之ER模型的基本概念(第二章)

    ER模型(实体联系模型)的基本元素 实体:是一个数据对象,在ER模型中,实体用方框表示,方框内注明实体的名称 联系:表示一个或多个实体之间的关联关系,联系用菱形框表示,并用线段将其与相关的实体联系起来 ...

  9. 数据库设计和ER模型-------之数据库系统生存期(第二章)

    数据库设计 概念:开发人员利用开发环境表达用户要求.设计构造最优的数据模型,然后据此建立数据库以及其应用系统,这个过程称为数据库设计 数据库生存期 1968年首次提出“软件工程”的概念 概念:我们把数 ...

随机推荐

  1. CenterOS下安装Nginx

    1. 安装gcc 检查版本命令  gcc -v 安装命令 yum install gcc-c++ 2. 安装pcre 命令 yum install prce-devel 3. 安装zlib 命令 yu ...

  2. SpringMVC和Struts是线程安全的吗?为什么?

    线程不安全的.(其实我觉得回答为:存在线程安全问题 这样比较好点) 原因如下: 第一点,先理解为何线程不安全 1 struts1的action是单例的,所以存在线程安全问题(struts2是多例的,不 ...

  3. 修改postfix smtp端口,防止公网扫描浪费你的服务器流量

    邮件服务器的默认发送邮件端口是25,一些ISP会封锁25端口防止垃圾邮件的发送,这样就导致不能使用Foxmail.outlook等邮件客户端发送邮件.修改默认smtp端口就可以解决这个问题.下面的方法 ...

  4. HMM(隐马尔科夫模型)与分词、词性标注、命名实体识别

    转载自 http://www.cnblogs.com/skyme/p/4651331.html HMM(隐马尔可夫模型)是用来描述隐含未知参数的统计模型,举一个经典的例子:一个东京的朋友每天根据天气{ ...

  5. 关于PHP程序员技术职业生涯规划 转自 韩天锋

    转自 http://rango.swoole.com/ 看到很多PHP程序员职业规划的文章,都是直接上来就提Linux.PHP.MySQL.Nginx.Redis.Memcache.jQuery这些, ...

  6. HTML5本地存储之Web Storage实例篇,最有用的是localStorage

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. vi 编辑器基本命令

    命令模式(esc) k 上移一行j 下移一行h 左移一行l 右移一行 6j  下移6行 5k 上移5行 0 将游标放在一行的开始$ 将游标放在一行的末尾w 将游标移动到下一个单词b 将游标移动到上一个 ...

  8. 关于 TensorFlow

    TensorFlow 是一个用于人工智能的开源神器 TensorFlow中文社区    http://www.tensorfly.cn/   文档 TensorFlow™ 是一个采用数据流图(data ...

  9. 51nod1302 矩形面积交

    有2N个矩形,这些矩形被标号为0 ~ 2N-1,对于第i个矩形其长宽分别为X[i]与Y[i].现在要把这2N个矩形分为两组,每组N个,每个矩形恰好分到两组中的一组里.分成两组后,设两组分别为A组.B组 ...

  10. [Easyui - Grid]为easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列

    为easyui的datagrid.treegrid增加表头菜单,用于显示或隐藏列 /** * @author 孙宇 * * @requires jQuery,EasyUI * * 为datagrid. ...