2013-08-07 83 views
1

enter image description here转换ER图到SQL代码

这是ER图,对此表具有在执行所有约束SQL代码作出。我制作了表格并尝试通过外键实现所有关系,我想确认这些表格是否正确。

1)系表:

create table department(dpet_id number primary key, dept_name varchar2(15) 
not null); 

2)分支表:

create table branch(branch_id varchar2(5) primary number, electives varchar2(10), 
dept_id number references department(dept_id)); 

3)课程表:

create table course(course_id number primary key, course_name varchar2(10) 
not null,branch_id varchar2(5) references branch(branch_id)); 

4)学生台:

create table student(stud_id number primary key, stud_name varchar2(30) not null, 
branch_id varchar2(5) references branch(branch_id); 

5)申请人表:

create table applicant(app_id number primary key, stud_id number constraint fk 
references student(stud_id) constraint stu_unq unique); 

6)Applicant_branch表:

create table applicant_branch(app_id number references applicant(app_id), 
branch_id varchar2(5) references branch(branch_id)); 

执行这些表符合ER图?

+0

这是oracle吗? –

+0

@DanBracuk,是的,我在Oracle 11g中做了这个。 –

+0

请不要交叉发帖:http://dba.stackexchange.com/questions/47707/converting-er-diagram-to-tables-and-relationships-in-sql –

回答

2

您的ER图描绘了主题的概念模型。这是一件好事。

为了将来的参考,概念模型和SQL创建脚本之间有两个中间步骤。他们是逻辑设计和物理设计。

逻辑设计将概念模型转换为逻辑模型,并添加了一些功能。逻辑模型是关系型的(在大多数情况下)。一个附加功能是外键。如果你选择正常化,这是你正常化的地方。

物理设计将逻辑模型更改为物理模型,并添加了一些功能。物理模型用SQL语句表示;如表格,行和列。它是DBMS特有的。它增加了诸如索引和许多DBMS特定功能的功能,如表空间映射等。在这个阶段,您会考虑数据量,预期流量和吞吐量考虑因素。

最后,将物理模型转换为创建脚本。

对于非常小的问题,这些阶段可以合并为一个阶段,就像您已经完成的那样。对于非常大的项目,最好将它们分开。

1

我唯一可以补充的是,学生和部门之间没有任何关系。这取决于你的场景,你需要或不需要。但我认为它应该是。这样你就可以区分特定部门的学生。

另外你正在制作一个像分支一样的图片会出现在这种情况下吗?

+0

是的,分支在这种情况下属于部门。一切都好吗? –

+0

好的。其余的事情都很好。 –

+0

学生确定科和科确定部门。有间接的关系。 –