SQL基础E-R图画法
例一、假设有以下表:
T1(a1,a2, a3, a5)
T2(a3,a4)
T3(a5, a6)
T4(a3, a5, a7)
其中带下划线的属性标识为所在关系模式的主码
T1中的a3是参照T2的外码
T1中的a5是参照T3的外码
T4中的a3是参照T2的外码
T4中的a5是参照T3的外码
请将上述关系模式用适当的E-R图表示出来,并用下划线标注出作为实体主码的属性。
分析易知:
假如有实体t1,t2,t3,t4则
T1(a1,a2,)
T2(a3,a4)
T3(a5, a6)
T4( a7)
t4中仅仅只有a7所以可以认为是联系的属性(用T4来表示联系)
所以易知t1和t2之间存在一个联系(用T1来表示)
下面是E-N图:

例二、在某数据库中,相关表的建表语句如下:
create tableT1(
a1 int primary key,
a2 int,
a3 int foreign key references T2(a3)
);
create tableT2(
a3 int primary key,
a4 int,
a5 int foreign key references T2(a3)
);
create tableT3(
a1 int,
a3 int,
a6 int,
primary key (a1, a3),
a1 foreign key references T1(a1),
a3 foreign key references T2(a3)
);
请画出相应的E-R图,使得可以从该E-R图推导出上述表定义,其中实体和联系的名称可以自定,实体的主码属性请使用下划线标明。
分析:
化简表如下:
tableT1(a1,a2,a3) a1为主键,a3为外键(T2表的主键)
tableT2(a3,a4,a5) a3为主键引用T2表中的主键(也就是a3)
tableT3(a1,a3,a6) a1,a3为联合主键,并且a1,a3分别是外键
假如有实体t1,t2,t3,t4则
tableT1(a2)
tableT2(a4)
tableT3(a6)
我们看tableT1表
表中只含有一个a2,所以可以认为它是联系的一个属性
并且存在一个含有a1的属性的实体我们记为t1
存在一个含有a3的属性的实体我们记为t3
同理我们看tableT2表
易知T2中只含有a4,所以我们可以认为它是一个联系的属性
并且存在一个含有a3,a5属性的实体我们记为t2
现在看tableT3
易知T3中只含有a6,所以我们可以认为它是一个联系的属性
所以可画E-N图:

例三、设某教学管理系统,其查询模块需要提供如下功能:
Ⅰ.查询系信息,列出各系编号、系名和系办公电话;
Ⅱ.查询某系教师的信息,列出教师号、教师名、工资和聘用日期;
Ⅲ.查询某教师讲授的课程信息,列出课程号、课程名和学分;
Ⅳ.查询讲授某门课程的教师信息,列出教师名和职称;
Ⅴ.查询某门课程的先修课程信息,列出先修课程号和先修课程名。
系统有如下业务规则:
Ⅰ.一个系可聘用多名教师,一名教师只能受聘于一个系;
Ⅱ.一名教师可讲授多门课程,一门课程可由多名教师讲授;
Ⅲ.一门课程可以有多门先修课程,也可以没有先修课程
(1)根据以上查询功能与业务规则,用E-R图描述该系统的概念模型。
(2)将ER图转换为满足3NF的关系模式,并说明每个关系模式的主码和外码。
一个系可以聘用多名教师,一名教师只能受聘于一个系,所以系实体与教师实体有联系;
一名教师可以讲授多门课程,一门课程可由多名教师讲授,所以教师实体与课程实体有联系;
一门课程可以有多门先修课程,所以课程间也有联系。
所以我们可以作出以下E-N图:
所以:
系(系编号,系名,系办公电话)无外码
教师(教师号,教师名,工资,聘用日期,职称,系编号)外码:系编号
课程(课程号,课程名,学分,教师号)外码:教师号
先修(先修课程号,先修课程名,课程号)外码:课程号

SQL基础E-R图画法的更多相关文章
- SQL 基础学习(2) Joining 和function , 作业没有做,需要看百宝箱。NOsql的概念
SQL 基础学习(2) Joining 可以同时关联(joining)多张表进行复杂的查询. 相比于用Rails捞出数据再用Ruby进行过滤组合,使用SQL更加高效,节能. 以下是 users has ...
- 《SQL基础教程》+ 《SQL进阶教程》 学习笔记
写在前面:本文主要注重 SQL 的理论.主流覆盖的功能范围及其基本语法/用法.至于详细的 SQL 语法/用法,因为每家 DBMS 都有些许不同,我会在以后专门介绍某款DBMS(例如 PostgreSQ ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
- SQL基础--> 约束(CONSTRAINT)
--============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完 ...
- 黑马程序员:Java基础总结----GUI图形化界面
黑马程序员:Java基础总结 GUI图形化界面 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! GUI(Graphical User Interface)图形化界 ...
- [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
SQL 基础知识梳理(六)- 函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...
- [SQL] SQL 基础知识梳理(七)- 集合运算
SQL 基础知识梳理(七)- 集合运算 目录 表的加减法 联结(以列为单位) 一.表的加减法 1.集合:记录的集合(表.视图和查询的执行结果). 2.UNION(并集):表的加法 -- DDL:创建表 ...
- 数据库学习---SQL基础(一)
数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) SQL(struct query language)结构化查询语言:一种专门与数据库通信的语言, ...
随机推荐
- Advanced SQL: Relational division in jOOQ
i Rate This Relational algebra has its treats. One of the most academic features is the ...
- java: file/outputStream/InputStream 复制文件
java i/o 复制文件 public static void main(String[] args) throws Exception { // TODO 自动生成的方法存根 if(args.le ...
- C语言基础二
C--顺序程序设计 赋值语句 赋值语句和赋值表达式的区别: if((a = b) > 0) t = 0; 字符数据的输入输出 putchar函数 该函数为字符输出函数,其作用是向终端数出一个字符 ...
- JAVA实现多线程的四种方式
JAVA多线程实现方式: 1.继承Thread类(无返回值) 2.实现Runnable接口(无返回值) 3.实现Callable接口,通过FutureTask包装器来创建Threak线程(有返回值) ...
- MySQL InnoDB与MyISAM存储引擎差异
言: 之前简单介绍过 MySQL 常用的存储引擎,今天对两个主流的存储简单分析下差异,书上没有参考的笔试题解答注解: 差异: MyISAM 只支持表锁,不支持事务,表损坏率较高.较老的存储引擎. ...
- 剑指offer--21.链表中倒数第k个结点
定义两个指针,当一个指针指到第K个结点时,第二个指针开始向后移动 -------------- 时间限制:1秒 空间限制:32768K 热度指数:602826 本题知识点: 链表 题目描述 输入一个链 ...
- 2016 ACM-ICPC EC-Final题解
题目链接 A. Number Theory Problem 题意:给你一个数N,求形如2k-1且小于2N的数中有多少能被7整除. 解法:观察二进制位找规律,答案是N/3. #include<bi ...
- 1151 LCA in a Binary Tree(30 分)
The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U ...
- ACM学习历程—Hihocoder 1139 二分·二分答案(bfs)
http://hihocoder.com/problemset/problem/1139 这题提示上写的是二分,但是感觉不二分应该也可以,至少题目是AC的... 二分的思想就是二分答案的值,看能不能在 ...
- MAC的VMWare CentOS 6.8命令笔记
1.图形界面切换到命令行界面 真正的Linux切换界面使用命令, Ctrl + Alt + Fn (1,2,3,4,5,6) Wondows平台 Ctrl + option + F ...