table class( code varchar(20) primary key, name varchar(20) );create table kecheng( code varchar(20) primary key, name varchar(20) );create table teacher( code varchar(20) primary key, name varchar(20) );create table tkecheng( ids int auto_increment primary key, tcode varchar(20), kcode varchar(20), foreign key (tcode) references teacher(code), foreign key (kcode) references kecheng(code));create table student( code varchar(20) primary key, name varchar(20), sex bit, age int, class varchar(20), foreign key (class) references class(code) );create table chengji( isd int auto_increment primary key, scode varchar(20), kcode varchar(20), degree float, foreign key (scode) references student(code), foreign key (kcode) references kecheng(code));
10月16日上午数据库作业设计表解析
标签:
小编还为您整理了以下内容,可能对您也有帮助:
数据库Access中设计表要定义哪些内容?
表名,字段名,字段类型,默认值。设定主键。
双击“使用设计器创建表”,这时你将打开一个窗口,在这个窗口,我们将完成创建表的工作。可以看到,这里的创建表窗口仍然是以行、列形式输入的,每一行,可以创建表中的一个数据列(为了让大家直观理解“数据列”的名称,一般称之为字段),这里创建一个字段,需要输入字段的“字段名称”,还应当选择字段的“数据类型”,为了便于记忆和理解字段的作用,还可以输入字段的说明。还要在Access中设定主键。在输入完毕所有字段后,即可点击Access菜单中的“保存”,此时由于这个数据表还没有保存,因此会进行提示,要求输入数据表名称,此时输入表名称,并点击保存即可。
数据库应用作业3 求高手解救!
追问求一二题解答,。完全看不懂SQL!
追答一,
产品(产品号,产品名称,产品价格,生产日期)中的产品号是产品实体的主码。
销售(产品号,销售时间,销售数量)中的产品号是销售实体的外码。
因为产品名有重复,所以产品号作为主码,来确定唯一产品。销售时在不同的时间可以销售同一产品号的产品,所以产品号在销售中为外码。产品和销售关系为一对多(1:N)。
6、7、8你自己分解一下就行啦,这个应该是大一、大二时候学的,少年,少打dota多学习啊。
数据库应用作业3 求高手解救!
追问求一二题解答,。完全看不懂SQL!
追答一,
产品(产品号,产品名称,产品价格,生产日期)中的产品号是产品实体的主码。
销售(产品号,销售时间,销售数量)中的产品号是销售实体的外码。
因为产品名有重复,所以产品号作为主码,来确定唯一产品。销售时在不同的时间可以销售同一产品号的产品,所以产品号在销售中为外码。产品和销售关系为一对多(1:N)。
6、7、8你自己分解一下就行啦,这个应该是大一、大二时候学的,少年,少打dota多学习啊。
说明在设计数据库表时你是如何考虑的?
数据库是整个软件应用的根基,是软件设计的起点,它起着决定性的质变作用,因此我们必须对数据库设计高度重视起来,培养设计良好数据库的习惯,是一个优秀的软件设计师所必须具备的基本素质条件! 那么我们要做到什么程度才是对的呢?下面就说说数据库设计的原则: (1)、数据库设计最起码要占用整个项目开发的40%以上的时间
数据库是需求的直观反应和表现,因此设计时必须要切实符合用户的需求,要多次与用户沟通交流来细化需求,将需求中的要求和每一次的变化都要一一体现在数据库的设计当中。如果需求不明确,就要分析不确定的因素,设计表时就要事先预留出可变通的字段,正所谓“有备无患”。 (2)、数据库设计不仅仅停留于页面demo的表面 页面内容所需要的字段,在数据库设计中只是一部分,还有系统运转、模块交互、中转数据、表之间的联系等等所需要的字段,因此数据库设计绝对不是简单的基本数据存储,还有逻辑数据存储。 (3)、数据库设计完成后,项目80%的设计开发在你脑海中就已经完成了 每个字段的设计都是有他必要的意义的,你在设计每一个字段的同时,就应该已经想清楚程序中如何去运用这些字段,多张表的联系在程序中是如何体现的。换句话说,你完成数据库设计后,程序中所有的实现思路和实现方式在你的脑海中就已经考虑过了。如果达不到这种程度,那当进入编码阶段后,才发现要运用的技术或实现的方式数据库无法支持,这时再改动数据库就会很麻烦,会造成一系列不可预测的问题。 (4)、数据库设计时就要考虑到效率和优化问题 一开始就要分析哪些表会存储较多的数据量,对于数据量较大的表的设计往往是粗粒度的,也会冗余一些必要的字段,已达到尽量用最少的表、最弱的表关系去存储海量的数据。并且在设计表时,一般都会对主键建立聚集索引,含有大数据量的表更是要建立索引以提供查询性能。对于含有计算、数据交互、统计这类需求时,还要考虑是否有必要采用存储过程。 (5)、添加必要的(冗余)字段 像“创建时间”、“修改时间”、“备注”、“操作用户IP”和一些用于其他需求(如统计)的字段等,在每张表中必须都要有,不是说只有系统中用到的数据才会存到数据库中,一些冗余字段是为了便于日后维护、分析、拓展而添加的,这点是非常重要的,比如黑客攻击,篡改了数据,我们便就可以根据修改时间和操作用户IP来查找定位。 (6)、设计合理的表关联 若多张表之间的关系复杂,建议采用第三张映射表来关联维护两张表之间的关系,以降低表之间的直接耦合度。若多张表涉及到大数据量的问题,表结构尽量简单,关联也要尽可能避免。 (7)、设计表时不加主外键等约束性关联,系统编码阶段完成后再添加约束性关联 这样做的目的是有利于团队并行开发,减少编码时所遇到的问题,表之间的关系靠程序来控制。编码完成后再加关联并进行测试。不过也有一些公司的做法是干脆就不加表关联。 (8)、选择合适的主键生成策略
说明在设计数据库表时你是如何考虑的?
数据库是整个软件应用的根基,是软件设计的起点,它起着决定性的质变作用,因此我们必须对数据库设计高度重视起来,培养设计良好数据库的习惯,是一个优秀的软件设计师所必须具备的基本素质条件! 那么我们要做到什么程度才是对的呢?下面就说说数据库设计的原则: (1)、数据库设计最起码要占用整个项目开发的40%以上的时间
数据库是需求的直观反应和表现,因此设计时必须要切实符合用户的需求,要多次与用户沟通交流来细化需求,将需求中的要求和每一次的变化都要一一体现在数据库的设计当中。如果需求不明确,就要分析不确定的因素,设计表时就要事先预留出可变通的字段,正所谓“有备无患”。 (2)、数据库设计不仅仅停留于页面demo的表面 页面内容所需要的字段,在数据库设计中只是一部分,还有系统运转、模块交互、中转数据、表之间的联系等等所需要的字段,因此数据库设计绝对不是简单的基本数据存储,还有逻辑数据存储。 (3)、数据库设计完成后,项目80%的设计开发在你脑海中就已经完成了 每个字段的设计都是有他必要的意义的,你在设计每一个字段的同时,就应该已经想清楚程序中如何去运用这些字段,多张表的联系在程序中是如何体现的。换句话说,你完成数据库设计后,程序中所有的实现思路和实现方式在你的脑海中就已经考虑过了。如果达不到这种程度,那当进入编码阶段后,才发现要运用的技术或实现的方式数据库无法支持,这时再改动数据库就会很麻烦,会造成一系列不可预测的问题。 (4)、数据库设计时就要考虑到效率和优化问题 一开始就要分析哪些表会存储较多的数据量,对于数据量较大的表的设计往往是粗粒度的,也会冗余一些必要的字段,已达到尽量用最少的表、最弱的表关系去存储海量的数据。并且在设计表时,一般都会对主键建立聚集索引,含有大数据量的表更是要建立索引以提供查询性能。对于含有计算、数据交互、统计这类需求时,还要考虑是否有必要采用存储过程。 (5)、添加必要的(冗余)字段 像“创建时间”、“修改时间”、“备注”、“操作用户IP”和一些用于其他需求(如统计)的字段等,在每张表中必须都要有,不是说只有系统中用到的数据才会存到数据库中,一些冗余字段是为了便于日后维护、分析、拓展而添加的,这点是非常重要的,比如黑客攻击,篡改了数据,我们便就可以根据修改时间和操作用户IP来查找定位。 (6)、设计合理的表关联 若多张表之间的关系复杂,建议采用第三张映射表来关联维护两张表之间的关系,以降低表之间的直接耦合度。若多张表涉及到大数据量的问题,表结构尽量简单,关联也要尽可能避免。 (7)、设计表时不加主外键等约束性关联,系统编码阶段完成后再添加约束性关联 这样做的目的是有利于团队并行开发,减少编码时所遇到的问题,表之间的关系靠程序来控制。编码完成后再加关联并进行测试。不过也有一些公司的做法是干脆就不加表关联。 (8)、选择合适的主键生成策略
数据库大作业求学霸解答!!!QAQ
答案如下:
1)创建教师表、课程表和教师授课表
create table Teacher
( Tno char(5) primary key,
Tname char(8),
Tsex char(2),
Tbirth int,
Tdept varchar(30)
);
create table Course
( Cno char(3) primary key,
Cname varchar(30),
Cpno char(3),
Ccredit int
);
create table 教师授课表
( Tno char(5),
Cno char(3),
time datetime
) ;
2)在教师表、课程表和教师授课表上建立主外键约束
alter table 教师授课表
add (foreign key(Tno) references Teacher(Tno),
foreign key(Cno) references Course(Cno));
3)建立约束:教师表中教师年龄介于25至60之间
alter table Teacher
add check(Tbirth>=25 and Tbirth<=60);
4)向学生表插入一条记录20050204,'赵勤','女',20,'国贸系'。
insert into Student
values('20050204','赵勤','女',20,'国贸系');
5)在“课程表”的“课程号”列上创建唯一聚集索引。
create unique clustered index idx_cno on Course(Cno);
6)以“课程号”分组,统计各门课程的平均分数大于80分的行。
select Cno,avg(Grade) from SC
group by Cno
having avg(Grade)>80;
7)修改学号为“20050306”的学生信息为:20050206,魏海平,男,企管系。
update Student
set Sno='20050206',Sname='魏海平',Ssex='男',Sdept='企管系'
where Sno='20050306';
8)将学号为“20050304”的学生信息从表中删除。
delete from Student
where Sno='20050304';
9)查询所有任课教师的课程,没有课程的教师对应的课程为空。
select Tname,Cname from Teacher
left outer join 教师授课表 on Teacher.Tno=教师授课表.Tno
left outer join Course on 教师授课表.Cno=Course.Cno;
10)按课程分组查询计算机学院课程的最低分、最高分和平均分。
select Cno,min(Grade),max(Grade),avg(Grade)
from SC,Student
where SC.Sno=Student.Sno
group by Cno
having Sdept='计算机学院';
数据库表设计
建议建立三张数据表:处理人(工号,……);审核人(工号,……);工单(处理人工号,审核人工号,……),在工单数据显示时,只查询和该工号有关记录条目,如果需要更多的信息,可以从处理人和审核人表单中查找和个工号相对应的人员信息。
这是通过实体联系图转化来的。