收藏 分销(赏)

将E-R图转换为关系模型的转换规则.doc

上传人:xrp****65 文档编号:8974720 上传时间:2025-03-09 格式:DOC 页数:4 大小:48KB
下载 相关 举报
将E-R图转换为关系模型的转换规则.doc_第1页
第1页 / 共4页
将E-R图转换为关系模型的转换规则.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述
将E-R图转换为关系模型的转换规则如下: •1) 实体集转换为关系 –实体集对应于一个关系 –关系名:与实体集同名。 –属性:实体集的所有属性。 –主码:实体集的主码。 • 2) 联系转换为关系    联系转换成为关系模式。联系转换成为关系模式时,要根据联系方式的不同采用不同的转换方式 ①1:1联系的转换方法 a) 将1:1联系转换为一个独立的关系:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,且每个实体的码均是该关系的候选码。 第一步:联系形成的关系独立存在: 职工表(职工号,姓名,年龄)主码:职工号 产品表(产品号,产品名,价格)主码:产品号 负责(职工号,产品号)主码:职工号或产品号 合并方案1:“负责”与“职工”两关系合并: 职工(职工号,姓名,年龄,产品号) 产品(产品号,产品名,价格) 合并方案2:“负责”与“产品”两关系合并: 职工(职工号,姓名,年龄) 产品(产品号,产品名,价格,职工号) b) 将1:1联系与某一端实体集所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体集的码。 ② 1:n联系的转换方法 a)一种方法是将联系转换为一个独立的关系,其关系的属性由与该联系相连的各实体集的码以及联系本身的属性组成,而该关系的码为n端实体集的码; 步骤一:联系形成的关系独立存在。 仓库(仓库号,地点,面积) 主码:仓库号 产品(产品号,产品名,价格) 主码:产品号 仓储(仓库号,产品号,数量)主码:产品号 合并后方案:联系形成的关系与n端对象合并。 仓库(仓库号,地点,面积) 产品(产品号,产品名,价格,仓库号,数量) b)另一种方法是在n端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变。 ③ m:n联系的转换方法 在向关系模型转换时,一个m:n联系转换为一个关系。转换方法为:与该联系相连的各实体集的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合(该码为多属性构成的组合码)。 •该模型包含两个实体集(学生、课程)和一个m:n联系 •该模型可转换为三个关系模式: –学生(学号,姓名,性别,年龄)主码:学号 -课程(课程号,课程名,学分)主码:课程号 –选课(学号,课程号,成绩)主码:学号+课程号 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CalculatorJFrame extends JFrame implements ActionListener { private JTextField text; //显示计算结果的文本行 private char op; //当前运算符 private float value; //当前计算结果值 private boolean first; //表示是否为数值的第1个数字 public CalculatorJFrame() { super("计算器"); this.setSize(280,210); this.setLocation(300,240); this.display(); //显示图形用户界面 this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); op='+'; value=0.0f; first=true; } private void display() //图形用户界面 { text = new JTextField("0.",30); text.setHorizontalAlignment(JTextField.RIGHT); //设置对齐方式,右对齐 text.setEditable(false); //只能显示,不允许编辑 this.getContentPane().add(text,"North"); JPanel panel = new JPanel(new GridLayout(5,4,5,5));//面板采用网格布局 this.getContentPane().add(panel); String str[]={"sqrt","+/-","Backspace","C","7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"}; JButton buttons[] = new JButton[str.length]; for (int i=0; i<buttons.length; i++) { buttons[i] = new JButton(str[i]); panel.add(buttons[i]); buttons[i].addActionListener(this); //为按钮注册单击事件监听器 } } public void actionPerformed(ActionEvent e) //按钮单击的事件处理方法 { String current = e.getActionCommand(); //获取按钮标签 if (current=="C") //清除 { text.setText("0."); //重新设置文本内容 value = 0.0f; first = true; return; } if (current=="Backspace") //退格 { String str=text.getText().substring(0,text.getText().length()-1); text.setText(str); if (str=="") { text.setText("0."); first = true; } return; } if (current.charAt(0)>='0' && current.charAt(0)<='9' || current==".") //0~9数字按钮 { if (first) { text.setText(""); first = false; } text.setText(text.getText()+current); } else { System.out.print(""+value+op+text.getText()+"="); switch (op) { case '+': value += Float.parseFloat(text.getText());break; //转换成浮点数后运算 case '-': value -= Float.parseFloat(text.getText());break; case '*': value *= Float.parseFloat(text.getText());break; case '/': value /= Float.parseFloat(text.getText());break; } System.out.println(""+value); text.setText(""+value); op = current.charAt(0); //字符串中取第1个字符 first = true; } } public static void main(String arg[]) { new CalculatorJFrame(); } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服