6.17数据库复习(1)
第1章数据库概述
1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
答:数据是数据库中存储的基本对象。
数据库:是存放数据的场所。
数据库管理系统:管理数据库数据及其功能的系统软件。
数据库系统:由数据库、数据库管理系统、数据库管理员和数据库应用程序共同构成的系统。
5.比较用文件管理和用数据库管理数据的主要区别。
答:文件系统不能提供数据的独立性,也不能提供数据共享、安全性等功能,这些需要客户端编程实现。而数据库管理系统可以很方便地提供这些功能。
6.在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么?
答:不需要。因为这些都由数据库管理系统来维护。
7.在数据库系统中,数据库的作用是什么?
答:数据库是存储数据的仓库,其作用是存储数据。
8.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗?答:不可以。
10.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?
答:数据库系统一般包括3个主要部分:数据库、数据库管理系统和应用程序。数据库是数据的汇集,它以一定的组织形式保存在存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;应用程序专指以数据库数据为基础的程序。
第2章 数据库系统结构
3.实体之间的联系有几种?分别是哪些?请为每一种联系举出一个例子。
答:有三种:1:1;1:n;m:n。1:1示例:系和系主任。1:n示例:班和学生;m:n示例:教师和学生。
5.指明下列实体间联系的种类:
(1)教研室和教师(··一个教师只属于一个教研室,一个教研室可有多名教师).·:一对多。
(2)商店和顾客。
答:多对多。
(3)国家和首都。
答:一对一。
6.解释关系模型中的主码、外码、主属性、非主属性的概念,并说明主码、外码的作用。答:主码是用于唯一确定表中一个元组的一个属性或最小的属性组。用于实现实体完整性。
外码用于实现数据之间的关联关系(参照完整性)。
主属性:候选键所包含的属性。
非属性:主属性之外的其他属性。
7.指出下列关系模式的主码:
(1)考试情况(课程号,考试性质,考试日期,考试地点)。假设一门课程在不同的日期可以有多次考试,但在同一天只能考一次。多门不同的课程可以同时进行考试。
答:(课程号,考试日期)
(2)教师授课(教师号,课程号,授课时数,学年,学期)。假设一名教师在同一个学年和学期可以讲授多门课程,也可以在不同学年和学期多次讲授同一门课程,对每门课程的讲授都有一个授课时数。
答:(教师号,课程号,学年)
(3)图书借阅(书号,读者号,借书日期,还书日期)。假设一个读者可以在不同的日期多次借阅同一本书,一个读者可以同时借阅多本不同的图书,一本书可以在不同的时间借给不同的读者。但一个读者不能在同一天对同一本书借阅多次。
答:(书号,读者号,借书日期)
8.设有如下两个关系模式,试指出每个关系模式的主码、外码,并说明外码的引用关系。产品表(产品号,产品名称,产品价格,生产日期),其中产品名称有重复。销售表(产品号,销售时间,销售数量),假设可同时销售多种产品,但同一产品在同一时间只销售一次。
答:产品的主码:产品号,无外码。
销售的主码:(产品号,销售时间),其中产品号为引用产品表的外码。
9.关系模型的数据完整性包含哪些内容?分别说明每一种完整性的作用。
答:包含:实体完整性、参照完整性和用户定义的完整性。
实体完整性:作用是保证表中的不存储相同的数据,也不存储无意义的数据。
参照完整性:用于描述实体之间的联系。
用户定义的完整性:用于限定属性的取值范围,目的是保证数据库中存储的值与现实世界相符。
10.数据库系统包含哪三级模式?试分别说明每一级模式的作用?
答:外模式、模式和内模式。
外模式是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同用户对数据的需求。
模式:是数据库中全体数据的逻辑结构和特征的描述,它满足所有用户对数据的需求。
内模式:是对整个数据库的底层表示,它描述了数据的存储位置和存储方式。
11.数据库系统的两级映像的功能是什么?它带来了哪些好处?
答:两级映像是外模式/模式映像和模式/内模式映像。外模式/模式映像保证了当模式发
生变化时可以保证外模式不变,从而是用户的应用程序不需要修改。模式/内模式映像保证了当内模式发生变化,比如存储位置或存储文件名改变,可以保持模式不变,从而使用户不需要知道这些变化。
12.数据库三级模式划分的优点是什么?它能带来哪些数据独立性?
答:数据库三级模式的划分使用户可以在逻辑层处理数据,而不需要关心具体的物理细节,同时当内模式或模式发生变化时,可以通过模式之间的映像关系,保持外模式不变,从而避免了修改应用程序。三级模式以及三级模式之间的两级映像带来了数据的逻辑独立性和物理独立性。
第3章 SQL语言基础及数据定义功能
10.写出创建如下三张表的SQL语句,要求在定义表的同时定义数据的完整性约束。答:
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 no tnull;
销售数量 smalldatetime check(销售数量>=1);
)
11.为“图书表”添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取值要大于等于1000。
答:alter table 图书表 Add印刷数量 int check(印刷数量>=1000)
12.删除“书店表”中的“邮政编码”列。
答:alter table 书店表 Drop column 邮政编码
13.将“图书销售表”中的“销售数量”列的数据类型改为整型。
答:alter table 图书销售表 Alter column 销售数量 int
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本