(1)E-R图如下:
(2)关系模型为:
职工(职工号,姓名,住址,所在部门) 主键:职工号
部门(部门编码,部门所有职工,经理,销售的产品) 主键:部门编码
产品(产品内部编号,产品名,制造商,价格,型号) 主键:产品内部编码
制造商(制造商编码,制造商名称,地址,生产的产品名,价格) 主键:制造商编码
数据库作业
第一次
1、指明下列实体间联系的种类:
(1)教研室和教师(假设一个教师只属于一个教研室,一个教研室可有多名教师)
(2)商店和顾客;
(3)国家和首都。
2、指出下列关系模式的主码:
(1)考试情况(课程号,考试性质,考试日期,考试地点)。假设一门主课程在不同的日期可有多次考试,但在同一天只能考一次。多门不同的课程可以同时进行考试。
(2)教师授课(教师号,课程号,授课时数,学年,学期)。假设一名教师在同一学年和学期可以讲授多门课程,也可以在不同学年和学期多次讲授同一门课程,对每门课程的讲授都有一个授课时数。
(3)图书借阅(书号,读者号,借书日期,还书日期)。假设一个读者可以在不同的日期多次借阅同一本书,一个读者可以同时借阅多本不同的图书,一本书可以在不同时间借给不同的读者。但一个读者不能再同一天对同一本书借阅多次。 答:课程名、考试日期
答:课程号、学年、学期
答:书号、读者号、借书日期
3、数据库包含哪三级模式?试分别说明每一级模式的作用。
数据库系统包含的三级模式为:内模式、模式和外模式。外模式是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据视图,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的子集或局部重构。模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。内模式是对整个数据库的底层表示,它描述了数据的存储结构。
第二次
1、 数据完整性的含义是什么?
答:数据的完整性是为了防止数据库中存在不符合应用语义的数据,为了维护数据的完整性,数据库管理系统提供了一种机制来检查数据库中的数据,看其是否满足语义规定的条件。这些加在数据库数据之上的语义约束条件就是数据完整性约束条件。
2、 写出创建如下3张表的SQL 语句,要求在定义表的同时定义数据的完整性约束:
(1)“图书表”结构如下:
书号:统一字符编码定长类型,长度为6,主码;
书名:统一字符编码可变长类型,长度为30,非空;
第一作者:普通编码定长字符类型,长度为10,非空;
出版日期:小日期类型;
价格:定点小数,小数部分1位,整数部分3位;
(2)“书店表”结构如下:
书店编号:统一字符编码定长类型,长度为6,主码;
店名:统一字符编码可变长类型,长度为30,非空;
电话:普通编码定长字符类型,8位长,每一位的取值均是0~9的数字; 邮政编码:普通编码定长字符类型,6位长;
(3)“图书销售表”结构如下:
书号:统一字符编码定长类型,长度为6,非空;
书店编号:统一字符编码定长类型,长度为6,非空;
销售日期:小日期时间类型,非空;
销售数量:微整型,大于等于1;
主码为(书号,书店编号,销售日期);
其中“书号”为引用“图书表”的“书号”的外码;
“书店编号”为引用“书店表”的“书店编号”的外码;
CREATE TABLE 图书表 (
书号 nchar(6) primary key,
书名 nvarchar(30) not null,
第一作者 char(10) not null,
出版日期 smalldatetime,
价格 numeric(4,1))
CREATE TABLE 书店表 (
书店编号 nchar(6) primary key,
店名 nvarchar(30) not null,
电话 char(8) check (电话 like "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"),
地址 varchar(40),
邮政编码 char(6))
CREATE TABLE 图书销售表 (
书号 nchar(6) not null,
书店编号 nchar(6) not null,
销售日期 smalldatetime not null,
销售数量 smallint check(销售数量>=1),
primary key(书号, 书店编号, 销售日期),
foreign key(书号) references 图书表(书号),
foreign key(书店编号) references 书店表(书店编号))
3、 为图书表添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取值要大于等于1000。
答:ALTER TABLE 图书表
ADD 印刷数量 int check (印刷数量>=1000)
4、 删除书店表的“邮政编码”列。
答:ALTER TABLE 书店表
DROP COLUMN 邮政编码
5、 将图书销售表中的“邮政编码”列的数据类型改为整型。
答:ALTER TABLE 图书销售表
ALTER COLUMN 销售数量 int
第三次
利用第3章定义的student 、course 和sc 表结构实现如下 *** 作。
1、查询学生选课表中的全部数据。
2、查询计算机系的学生的姓名、年龄。
3、查询成绩在70~80分之间的学生的学号、课程号和成绩。
4、查询计算机系年龄在18-20之间且性别为“男”的学生的姓名、年龄。
5、查询课程号为“c01”的课程的最高的分数。
6、查询计算机系学生的最大年龄和最小年龄。
7、统计每个系的学生人数。
8、统计每门课程的选课人数和考试最高分。
9、统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
10、查询总成绩超过200分的学生,要求列出学号、总成绩。
11、查询选修了“c02”号课程的学生的姓名和所在系。
12、查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。 13、查询哪些学生没有选课,要求列出学号、姓名和所在系。
1 select from SC
2 select Sname,Sage from Student where Sdept = "计算机"
3 select Sno,Cno,Grade from SC where Grade >= 70 and Grade
4 select Sname,Sage from Student where Sage between 18 and 20 and Ssex = "男"
5 select top 1 Grade from SC where Cno = "C01"
6 select max(Sage),min(Sage) from Student
7 select Sdept,sum(Sno) from Student group by Sdept
8 select courseCname,sum(scSno),max(Grade) from SC
join studet on StudentSno = SCSno
join Course on CourseCno = SCCno
group by coursecname,max(grade)
9 select sum(Cno),avg(Grade) from SC
join Course on CourseCno = SCCno
join Student on StudentSno= SCSno
order by SCSno
10 Select sno,sum(grade) 总成绩from sc
Group by sno having sum(grade) > 200
11 select StudentSname,StudentSdept from Student
join Course on CourseCno = SCCno
join SC on SCSno = StudentSno
where SCCno = "C02"
12 select Studentsname,coursecno,scgrade from sc
join student on studentsno = scsno
join course on coursecno = sccno
where scgrade >= 80
order by scgrade desc
13 Select sname from student s left join sc on ssno = scsno
Where scsno is null
第四次
1、查询与VB 在同一学期开设的课程的课程名和开课学期。
2、 查询与李勇年龄相同的学生的姓名、所在系和年龄。
3、 用子查询实现如下查询:(1)查询选修了“c01”号课程的学生的姓名和所在系
(2)查询数学系成绩80分以上的学生的学号、姓名、课程号和成绩(3) 查询计算机系考试成绩最高的学生的姓名(4)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩。
4、 查询没有选修VB 课程的学生的姓名和所在系。
5、 查询计算机系没有选课的学生的姓名和性别。
6、 删除考试成绩低于50分的学生的选课记录。
7、 删除没有人选的课程记录。
8、 删除计算机系VB 成绩不及格学生的VB 选课记录。
9、 将第2学期开设的所有课程的学分增加1分。
10、 将VB 课程的学分改为3分。
11、 将计算机系学生的年龄增加1岁。
12、 将信息系学生的“计算机文化学”课程的考试成绩加5分。
1Select c2Cname,c2Semester from Course c1 JOIN Course c2 on c1Semester = c2Semester Where c1cname = "VB" and c2Cname != "VB"
2 Select s2Sname,s2Sdept,s2Sage
From Student s1 JOIN Student s2 on s1Sage = s2Sage
Where s1Sname = "李勇" and s2Sname != "李勇"
3 ⑴ select sname,sdept from student where sno in(
select sno from sc where cno = "C01")
⑵ select sno,sname from student where sno in(
select sno from sc where grade > 80)
and sdept = "数学系"
⑶ select sname from student s join sc on ssno = scsno
where sdept = "计算机系" and grade = (
select max(grade) from sc join student s on ssno = scsno
where sdept = "计算机系")
⑷ select sname,sdept,ssex,grade from student s join sc on ssno = scsno
where ssno in (
select top 1 with ties sno
from sc join course c on ccno = sccno
where cname = "数据结构"
order by grade desc
4Select sname,sdept from student where sno not in (
Select sno from sc join course c on ccno = sccno
Where cname = "vb")
5Select sname,ssex from student where sdept = "计算机系"
And sno not in (select sno from sc )
6 Delete from sc where grade
7 Delete from course where cno not in(
Select cno from course)
8Delete from sc from sc join student s on ssno = scsno
Join course c on ccno = sccno
Where sdept = "计算机系" and cname = "VB"
And grade
9Update course set credit = credit + 2 where semester = 2
10Update course set credit = 3 where cname = "VB"
11Update student set sage = sage + 1 where sdept = "计算机系"
12Update SC set grade=grade+5
From course c join sc on ccno = sccno
Join student s on ssno = scsno
where sdept = "信息系" and cname = "计算机文化学"
第五次
1、 第一范式、第二范式和第三范式关系的定义分别是什么?
答:不包含非原子项属性的关系就是第一范式的关系;对于第一范式的关系,如果此关系中的每个非主属性都完全函数依赖于主键,则此关系属于第二范式;对于第二范式的关系,如果所有的非主属·性都不传递依赖于主键,则此关系就是第三范式的。
2、 设有关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学
分,成绩)设一个学生可以选多门课程,一门课程可以被多名学生选。一个学生有唯一的所在系,每门课程有唯一的课程名和学分。请指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。
答:候选键为:(学号,课程号),它也是此关系模式的主键。由于存在函数依赖:
学号 → 姓名,课程号 → 课程名
因此,存在非主属性对主键的部分函数依赖关系,因此它不是第二范式的表。分解如下: 学生表(学号,姓名,所在系,性别),主键为“学号”,已属于第三范式。
课程表(课程号,课程名,学分),主键为“课程号”,已属于第三范式。
选课表(学号,课程号,成绩),主键为(学号,课程号),已属于第三范式
第六次
1、 设有关系模式:学生(学号,姓名,所在系,班号,班主任,系主任),其语义为:一个学生只在一个系的一个班学习,一个系只有一个系主任,一个班只有一个班主任,一个系可以有多个班。请指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。
答:候选键为:学号,它也是此关系模式的主键。
由于不存在非主键属性对主键的部分依赖关系,因此,此关系模式属于第二范式的,但由于存在如下函数依赖:
学号 → 班号, 班号 → 班主任, 因此,存在非主键属性对码的传递依赖关系,同样以及
学号 → 所在系,所在系 → 系主任,因此,此关系模式不是第三范式的。对其分解后的结果为: 学生基本表(学号,姓名,所在系,班号), 主键为“学号”,“班号”为引用班级表表的“班号”的外键,“所在系” 为引用系表表的“系名”的外键。
班级表(班号,班主任),主键为“班号”。
系表(系名,系主任),主键为“系名”。
2、 设有关系模式:教师授课(课程号,课程名,学分,授课教师号,教师名,授课时数),其语义为:一门课程(有课程号决定)有确定的课程名和学分,每名教师(有教师号决定)有确定的教师名,每门课程可以有多名教师讲授,每名教师也可以讲授多门课程,每名教师对每门课程有确定的授课时数。指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。 答:此关系模式的候选键为(课程号,授课教师号),它们也是主键。由于存在函数依赖:
课程号 → 课程名,授课教师号 → 教师名
因此,存在非主属性对主键的部分函数依赖关系,因此它不是第二范式的表。分解如下: 课程表(课程号,课程名,学分),主键为“课程号”,已属于第三范式。
教师表(教师号,教师名),主键为“教师号”,已属于第三范式。
授课表(课程号,授课教师号,授课时数),主键为(课程号,教师号),已属于第三范式。
数据字典是什么
进行数据库设计的时候,对数据库元素进行的解释说明就是数据字典。举个例子吧,假设有下面这个设计出来的数据库表:
player(fname, lname, account, pwd, email)
对应的数据字典就是:
player:玩家信息表
fname:玩家名
lname:玩家姓
account:账户名
pwd:密码
email:联系电邮
这里只是一个针对某一表的数据字典,还有针对表与表之间关系的数据字典、表内字段属性的数据字典等等。越是大型的数据库设计,越是需要数据字典来辅助进行设计说明,帮助设计人员之间的沟通与交流。
SQL数据库数据字典怎么生成的?
数据字典是关于数据的信息的 ,也就是对数据流图中包含的所有元素的定义的 。
数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。
生成数据库参考代码如下:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date: <2014-09-19>
-- Description:
-- =============================================
CREATE PROCEDURE [dbo][CreateDatabaseDictionarie]
AS
BEGIN
DECLARE @TableName nvarchar(35),@htmls varchar(8000)
DECLARE @字段名称 VARCHAR(200)
DECLARE @类型 VARCHAR(200)
DECLARE @长度 VARCHAR(200)
DECLARE @数值精度 VARCHAR(200)
DECLARE @小数位数 VARCHAR(200)
DECLARE @默认值 VARCHAR(200)
DECLARE @允许为空 VARCHAR(200)
DECLARE @外键 VARCHAR(200)
DECLARE @主键 VARCHAR(200)
DECLARE @描述 VARCHAR(200)
SET NOCOUNT ON;
DECLARE Tbls CURSOR
FOR
Select distinct Table_name
FROM INFORMATION_SCHEMACOLUMNS
order by Table_name
OPEN Tbls
PRINT ''
PRINT ''
PRINT ' '
PRINT '
数据字典的组成
数据字典的组成:1、数据项2、数据结构3、数据流4、数据存储5、处理过程数据字典数据字典是数据库的重要组成部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:1、数据库中所有模式对象的信息,如表、视图、簇、及索引等。2、分配多少空间,当前使用了多少空间等。3、列的缺省值。4、约束信息的完整性。5、用户的名字。6、用户及角色被授予的权限。7、用户访问或使用的审计信息。8、其它产生的数据库信息。数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。关于数据的信息 ,是一种用户可以访问的记录数据库和应用程序元数据的目录,是对数据库内表信息的物理与逻辑的说明
数据字典与数据库设计之间有什么关系?
正文
1 引言
1.1编写目的
说明编写这份数据库设计说明书的目的,指出预期的读者。
1.2背景
说明:
a.说明待开发的数据库的名称和使用此数据库的软件系统的名称;
b.列出该软件系统开发项目的任务提出者、用户以及将安装该软件和这个数据库的计算站(中心)。
1.3定义
列出本文件中用到的专门术语的定义、外文首字母组词的原词组。
1.4参考资料
列出有关的
参考资料:
a.本项目的经核准的计划任务书或合同、上级机关批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。
列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。
2 外部设计
2.1标识符和状态
联系用途,详细说明用于唯一地标识该数据库的代码、名称或标识符,附加的描述性信息亦要给出。如果该数据库属于尚在实验中、尚在测试中或是暂时使用的,则要说明这一特点及其有效时间范围。
2.2使用它的程序
列出将要使用或访问此数据库的所有应用程序,对于这些应用程序的每一个,给出它的名称和版本号。
2.3约定
陈述一个程序员或一个系统分析员为了能使用此数据库而需要了解的建立标号、标识的约定,例如 用于标识数据库的不同版本的约定和用于标识库内各个文卷、、记录、数据项的命名约定等。
2.4专门指导
向准备从事此数据库的生成、从事此数据库的测试、维护人员提供专门的指导,例如将被送入数据 库的数据的格式和标准、送入数据库的 *** 作规程和步骤,用于产生、修改、更新或使用这些数据文卷的 *** 作指导。 如果这些指导的内容篇幅很长,列出可参阅的文件资料的名称和章条。
2.5支持软件
简单介绍同此数据库直接有关的支持软件,如数据库管理系统、存储定位程序和用于装入、生成、修 改、更新数据库的程序等。说明这些软件的名称、版本号和主要功能特性,如所用数据模型的类型、允许 的数据容量等。列出这些支持软件的技术文件的标题、编号及来源。
3 结构设计
3.1概念结构设计
说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图。
3.2逻辑结构设计
说明把上述原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构和文卷结构、所建立的各个文卷之间的相互关系,形成本数据库的数据库管理员视图。
3.3物理结构设计
建立系统程序员视图,包括:
a.数据在内存中的安排,包括对索引区、缓冲区的设计;
b.所使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划分;
c.访问数据的方式方法。
4 运用设计
4.1数据字典设计
对数据库设计中涉及到的各种项目,如数据项、记录、系、文卷、模式、子模式等一般要建立起数据字典,以说明它们的标识符、同义名及有关信息。在本节中要说明对此数据字典设计的基本考虑。
4.2安全保密设计
说明在数据库的设计中,将如何通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密的设计考虑。
mysql数据库数据字典表怎么写
你导出 rmation_schema 数据库里的所有表就OK了 新特性啊,以前只有ORACLE才有的
数据字典包括哪些内容
你好!
我用的是考研参考书,上面的答案是:
数据字典是数据库中描述信息和控制信息的 ,他是数据库设计和管理的有力工具。数据字典包含(1数据项,2数据流,3数据结构4数据存储5处理过程)五个部分。同时也是详细数据收集和数据分析的结果。
SQL怎么创建数据字典表,最好举个例子!
我的理解数据字典表就是普通的表,例如性别的数据字典表
而这个字典表即可以包含, xmdm(代码),xmmc(名称),xm (说明) 三列,可根据使用情况增加或减少列,里面的数据,即包含了 男,女,未知,三个选择 这男,女等就是字典
是可以列举完全的。
数据库中的字典是什么意思
数据字典即为数据库说明。包含完整的表结构介绍。
数据字典是特殊的数据库数据库类型是按什么
数据库设计方法、规范与技巧
一、数据库设计过程
数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
1 需求分析阶段
需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。
需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。
常用的调查方法有: 跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。
分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。
数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。
数据字典是各类数据描述的 ,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,
取值范围,取值含义,与其他数据项的逻辑关系}
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
数据流描述={数据流名,说明,数据流来源,数据流去向,
组成:{数据结构},平均流量,高峰期流量}
数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,
组成:{数据结构},数据量,存取方式}
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},
处理:{简要说明}}
2 概念结构设计阶段
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。
概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。
概念模型特点:
(1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。
(2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。
概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术,用于建立系统信息模型。
使用IDEF1X方法创建E-R模型的步骤如下所示:
21 第零步——初始化工程
这个阶段的任务是从目的描述和范围描述开始,确定建模目标,开发建模计划,组织建模
我想获取一段sql语句在 mssql2005下解析成的语句,
主要是想获取这个sql所用到的所有的表的名字。(ps:复杂的sql语句的)
请高手帮忙 在线等~
我的意思是要从用户输入的sql语句中提取该语句中所用的表
或者是:
sql 执行的步骤
1 解析器
第 1 阶段是解析器阶段,它将 SQL 文本转换成语法树。这个阶段不查找系统目录中的任何信息,不访问数据库。
2 语义分析
第 2 阶段分析由解析器创建的语法树,并产生用于查询的查询控制块和表达式树。要构建这些内部数据结构,它执行以下 *** 作:
验证对象
解析 UDR
如果可能的话,消除常量
验证对象
第 2 阶段访问数据库中不同的系统目录,以验证查询所引用的所有数据库对象(诸如表、列、视图、类型、UDR 等等)是否都存在。它在数据库中找到这些对象的标识,然后创建查询控制块和表达式树。
我要的就是验证对象步骤里的表的信息
以上就是关于数据库原理及应用 画出此数据库的e-r图全部的内容,包括:数据库原理及应用 画出此数据库的e-r图、数据库作业 数据库作业是什么、数据库数据字典怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)