北大数据库原理上机考题练习及参考答案 练习二(商品、顾客、购买)

合集下载

数据库系统原理复习 题集附答案

数据库系统原理复习 题集附答案

数据库系统原理复习题集附答案数据库系统是计算机科学和技术中的一个重要领域,它涉及数据的组织、存储和管理。

在数据库系统原理的学习中,复习一些题目并附带答案是非常有效的学习方法。

下面是一些数据库系统原理的复习题及其答案,希望对大家的学习有所帮助。

1. 数据库系统的三级模式分别是什么?(5分)答案:数据库系统的三级模式包括外模式(用户级模式)、概念模式(逻辑模式)和内模式(物理模式)。

2. 数据库是什么?数据库管理系统是什么?(5分)答案:数据库是一个按照一定格式存储、组织和管理数据的集合。

数据库管理系统(DBMS)是对数据库进行管理的软件系统,它提供数据定义、数据操作和数据控制等功能。

3. 数据库系统的优点有哪些?(10分)答案:数据库系统的优点包括数据共享、数据独立性、数据安全性、数据一致性、数据可靠性和数据备份与恢复等。

4. 数据库系统的完整性约束有哪些?(10分)答案:数据库系统的完整性约束包括实体完整性约束、参照完整性约束和用户定义完整性约束。

5. 请简要解释事务的概念。

(10分)答案:事务是数据库操作的一个基本单位,它是一个不可分割的工作单位。

事务应具有四个特性,即原子性、一致性、隔离性和持久性。

6. 请解释ACID是什么意思。

(10分)答案:ACID是数据库事务的四个特性的缩写,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

7. 请简要介绍数据库的并发控制。

(15分)答案:并发控制是数据库系统中保证事务并发执行的一种机制。

常用的并发控制方法包括锁定和时间戳。

8. 请解释关系数据库的概念。

(10分)答案:关系数据库是一种基于关系模型的数据库,以表(关系)为单位存储数据。

9. 数据库中的主键和外键有什么作用?(10分)答案:主键用于唯一标识表中的每一行数据,外键用于建立表之间的关系,实现数据的引用和关联。

10. 请解释数据库的范式。

北大数据库原理上机考题练习及参考答案 练习四(商品、部门、供应商、销售记录、供应记录)

北大数据库原理上机考题练习及参考答案 练习四(商品、部门、供应商、销售记录、供应记录)

题目:数据库原理练习2/*设有一个公司,分为若干部门,现需要保存商品、公司各部门、销售记录、供应商、供应记录的信息。

其中销售记录表记录了部门与其卖出的商品的联系。

供应记录表记录了供应商、购买该供应商商品的部门、供应商所提供的商品的联系。

表结构的具体描述如下:商品(商品号,商品名,颜色)部门(部门号,部门名,楼层)销售记录(部门号,商品号,商品数量)供应商(供应商号,供应商名,级别)供应记录(供应商号,部门号,商品号,商品数量)请用SQL语句完成下面的功能:1. 建表,要求满足如下约束:a) 商品名、部门名、供应商名不能为空b) 销售记录的数量要求大于1000,小于50000c) 定义必要的主外码2. 往表中插入如下数据:商品(c00001, shoe, red;c00002, shoe, blue;c00003, shoe, yellow;c00004, clothing, black;c00005, clothing, pink;c00006, clothing, red;)部门(d00001, commodity, 1;d00002, marketing, 2;d00003, service, 2;d00004, consulting, 3;)销售记录(d00001, c00001, 5000;d00001, c00002, 8000;d00001, c00006, 10000;d00002, c00005, 40000;d00003, c00004, 9000;)供应商(s00001, dangdang, 0;s00002, sina, 0;s00003, 8848, 0;)供应记录(s00001, d00001, c00001, 5000;s00001, d00002, c00005, 40000;s00002, d00001, c00002, 8000;s00002, d00001, c00006, 10000;s00003, d00003, c00004, 9000;)3. 完成如下查询a) 列出销售了所有颜色为red的商品的部门名。

(完整版)数据库原理与应用习题参考答案

(完整版)数据库原理与应用习题参考答案

第1章数据库概述1.与文件管理相比,数据库管理有哪些优点?答:(1)相互关联的数据集合;(2)较少的数据冗余;(3)程序与数据相互独立;(4)保证数据的安全可靠;(5)最大限度地保证数据的正确性;(6)数据可以共享并能保证数据的一致性。

2.比较文件管理和数据库管理数据的主要区别。

答:文件系统不能提供数据的独立性,也不能提供数据共享、安全性等功能,这些需要客户端编程实现。

而数据库管理系统可以很方便地提供这些功能。

3.在数据库管理方式中,应用程序是否需要关心数据的存储位置和结构?为什么?答:不需要。

因为这些都由数据库管理系统来维护。

4.在数据库系统中,数据库的作用是什么?答:数据库是存储数据的仓库,其作用是存储数据。

5.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据库文件吗?答:不可以。

6.数据独立性指的是什么?它能带来哪些好处?答:数据独立性包括逻辑独立性和物理独立性两部分。

物理独立性是指当数据的存储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。

这两个独立性使用户只需关心逻辑层即可,同时增强了应用程序的可维护性。

7.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?答:数据库系统一般包括3个主要部分:数据库、数据库管理系统和应用程序。

数据库是数据的汇集,它以一定的组织形式保存在存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;应用程序专指以数据库数据为基础的程序8.在文件服务器结构和客户/服务器结构中,对数据的处理有什么区别?答:在文件服务器结构中,数据的处理是在客户端完成的,而在客户/服务器结构中,对数据的处理是在服务器端完成的,服务器返回给客户端的是处理后的结果。

第2章数据模型与数据库系统结构1.解释数据模型的概念,为什么要将数据模型分成两个层次?答:数据模型实际上是模型化数据和信息的工具,在数据库中,数据模型要满足三个要求:第一,要能够比较真实地模拟现实世界;第二,要容易被人们理解;第三,要能够很方便地在计算机上实现。

数据库系统原理练习题库(附参考答案)

数据库系统原理练习题库(附参考答案)

数据库系统原理练习题库(附参考答案)一、单选题(共100题,每题1分,共100分)1.属于数据库结构设计阶段的是A、程序设计B、功能设计C、事务设计D、逻辑结构设计正确答案:D2.人工管理阶段,计算机主要应用于A、数据集成B、科学计算C、过程控制D、故障恢复正确答案:B3.下列关于数据控制语言的说法中,正确的是A、REVOKE语句用于授予权限B、GRANT语句用于收回权限C、数据控制语言主要用于数据执行流程管理D、数据控制语言包括的主要SQL语句是GRANT和REVOKE正确答案:D4.下列属于关联分析算法的是A、AprioriB、GMMC、RedisD、HBase正确答案:A5.同一数据被反复存储的情况是A、删除异常B、插入异常C、更新异常D、数据冗余正确答案:D6.产生数据不一致的主要原因是并发操作破坏了事务的A、持续性B、一致性C、原子性D、隔离性正确答案:D7.DBMS提供【】来严格地定义模式。

A、模式描述语言B、子模式描述语言C、内模式描述语言D、程序设计语言正确答案:A8.关系数据库以【】作为数据的逻辑模型。

A、二维表B、关系C、关系模型D、数据库正确答案:C9.关于调用存储过程的说法,错误的是A、可以从交互式界面调用B、可以使用CALL语句来调用存储过程C、可以由嵌入式SQL调用D、不是所有的SQL接口都能调用存储过程正确答案:D10.可唯一标识实体的属性集称为A、键B、实体型C、域D、属性正确答案:A11.目的是为可实际运行的应用程序设计提供依据与指导,并作为设计评价的基础的是A、设计评价B、编制应用程序设计说明C、模型转换D、子模式设计正确答案:B12.在使用游标的过程中,需要注意的事项不包括A、游标不能单独在查询操作中使用B、在一个BEGIN···END语句块中每一个游标的名字并不是唯一的C、游标是被SELECT语句检索出来的结果集D、在存储过程或存储函数中可以定义多个游标正确答案:B13.对关系的描述不正确的是A、关系中的元组次序可交换B、关系可以嵌套定义C、关系是一张二维表D、关系是一个集合正确答案:B14.下列关于MySQL的说法中,正确的是A、在MySQL中,一个关系对应多个基本表B、在MySQL中,一个或多个基本表对应一个存储文件C、在MySQL中,一个表只能有一个索引D、在MySQL中,索引不能存放在存储文件中正确答案:B15.关系数据库是以【】的形式组织数据。

北大数据库原理上机考题练习及参考答案 练习二(商品顾客购买)

北大数据库原理上机考题练习及参考答案 练习二(商品顾客购买)

题目:现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成:商品(商品号,商品名,单价,商品类别,供应商);顾客(顾客号,姓名,住址);购买(顾客号,商品号,购买数量);试用SQL语言完成下列功能:1 建表,在定义中要求声明:(1)每个表的主外码;(2)顾客的姓名和商品名不能为空值;(3)单价必须大于0,购买数量必须再0到20之间;2 往表中插入数据:商品(M01,佳洁士,8.00,牙膏,宝洁;M02,高露洁,6.50,牙膏,高露洁;M03,洁诺,5.00,牙膏,联合利华;M04,舒肤佳,3.00,香皂,宝洁;M05,夏士莲,5.00,香皂,联合利华;M06,雕牌,2.50,洗衣粉,纳爱斯M07,中华,3.50,牙膏,联合利华;M08,汰渍,3.00,洗衣粉,宝洁;M09,碧浪,4.00,洗衣粉,宝洁;)顾客(C01,Dennis,海淀;C02,John,朝阳;C03,Tom,东城;C04,Jenny,东城;C05,Rick,西城;)购买(C01,M01,3; C01,M05,2;C01,M08,2; C02,M02,5;C02,M06,4; C03,M01,1;C03,M05,1; C03,M06,3;C03,M08,1; C04,M03,7;C04,M04,3; C05,M06,2;C05,M07,8;)商品有9 条,顾客有5条,购买有5条3 用SQL语句完成下列查询:(1)求购买了供应商"宝洁"产品的所有顾客;(2)求购买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);(3)求牙膏卖出数量最多的供应商。

4 将所有的牙膏商品单价增加10%。

5 删除从未被购买的商品记录。

参考答案:create table product(productno char(10) not null,productname char(15) not null,price float(15),sort char(10),supplier char(20),primary key (productno),check (price > 0))create table customer(customerno char(10) not null,customername char(15) not null,address char(10),primary key (customerno))create table buy(customerno char(10) not null,productno char(10) not null,num smallint,primary key (customerno,productno),foreign key (customerno) references customer (customerno),foreign key (productno) references product (productno),check (num between 0 and 20))insert into product values ('M01','佳洁士',8.00,'牙膏','宝洁');insert into product values('M02','高露洁',6.50,'牙膏','高露洁');insert into product values('M03','洁诺',5.00,'牙膏','联合利华') ;insert into product values('M04','舒肤佳',3.00,'香皂','宝洁') ;insert into product values('M05','夏士莲',5.00,'香皂','联合利华');insert into product values('M06','雕牌',2.50,'洗衣粉','纳爱斯');insert into product values('M07','中华',3.50,'牙膏','联合利华') ;insert into product values('M08','汰渍',3.00,'洗衣粉','宝洁') ;insert into product values('M09','碧浪',4.00,'洗衣粉','宝洁') ;insert into customer values ('C01','Dennis','海淀') ;insert into customer values('C02','John','朝阳') ;insert into customer values('C03','Tom','东城') ;insert into customer values('C04','Jenny','东城');insert into customer values('C05','Rick','西城') ;insert into buy values ('C01','M01',3);insert into buy values('C01','M05',2);insert into buy values('C01','M08',2);insert into buy values('C02','M02',5);insert into buy values('C02','M06',4);insert into buy values('C03','M01',1);insert into buy values('C03','M05',1);insert into buy values('C03','M06',3);insert into buy values('C03','M08',1);insert into buy values('C04','M03',7);insert into buy values('C04','M04',3);insert into buy values('C05','M06',2);insert into buy values('C05','M07',8);(1)求购买了供应商"宝洁"产品的所有顾客;select c.customerno,c.customername from product p,customer c, buy b where p.productno = b.productno and c.customerno = b.customerno and supplier = '宝洁'(2)求购买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);参考书本p126select distinct c.customername from buy as x , customer c where not exists(select * from buy as y where y.customerno in (select customerno from customer where customername = 'Dennis' )and not exists (select * from buy as z where z.customerno = x.customerno and z.productno = y.productno))and x.customerno = c.customerno(3)求牙膏卖出数量最多的供应商。

数据库原理上机自考试题_2009年6月5日下午_B卷

数据库原理上机自考试题_2009年6月5日下午_B卷

北京市数据库自考上机考试题目【要求:不允许使用临时表。

第5题必须使用游标,其它各题不允许使用游标,数据库表名前面务必添加自己帐号】某个汽车销售代理商的数据库系统包括如下三个表:♦汽车公司(公司编号, 公司名,所在地)注:公司名唯一♦汽车(汽车编号, 车型名, 公司编号,单价, 保修期)注:公司编号是外码,保修期是大于等于6的整数,表示保修的月数,缺省值是12个月♦交易记录(交易编号, 汽车编号, 销量, 销售日期,销售人员编号)注:汽车编号和销售人员编号是外码,销量必须大于0,销售日期是datetime类型♦销售人员(销售人员编号, 姓名)注:所有带下划线的属性均表示主码试用SQL语句完成下列功能:1. 在数据库中建立上述三个表,写明主码,外码和其它约束条件(10分)。

2. 在三个表中插入如下数据(5分):汽车公司(001,通用,上海002,奇瑞,广州003,丰田,上海)汽车(01,别克,001,60000,3602,雪佛莱,001,30000,1203,QQ,002,20000,6 04,凯迪拉克,001,,36 05,威驰,003,40000,12 06,嘉美,003,80000,24) 交易记录(1,01,10,2007-09-02,1 2,01,1,2008-3-12,33,02,3,2007-1-1,34,01,2,2003-4-9,45,02,9,2004-1-8,16,04,1,2008-8-8 8:8:8,4 7,04,2,2007-2-3,28,03,5,2006-1-21,59,03,7,2008-3-5,2 10,05,1,2008-1-2,2 11,06,3,2001-3-1,5 12,05,2,2006-3-2,4 13,02,1,2006-1-1,4 14,01,3,2007-1-5,7 15,02,100,2008-3-2,7 16,01,20,2009-6-1,7)销售人员(1,张三2,李四3,王二4,赵五5,钱六6,丁七3. 完成如下查询(每个10分,共40分):1) 列出每个销售人员的交易情况,需要含有以下3列:销售人员名称,销售汽车总量,销售总金额。

北大数据库原理上机考题练习及参考答案练习二(学生、班、系)

北大数据库原理上机考题练习及参考答案练习二(学生、班、系)

题目:(1)现要为学校建立一个数据库,设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。

. 现要建立关于系、学生、班级的数据库,关系模式为:班CLASS (班号,专业名,系名,入学年份)学生STUDENT (学号,姓名,年龄,班号)系 DEPARTMENT (系号,系名)试用SQL 语言完成以下功能:1 建表,在定义中要求声明:(1 )每个表的主外码。

(2 )每个班级的人数不能超过30 人。

(3 )学生的年龄介于15 到40 岁之间。

(4 )学生姓名不能为空。

(5 )只有班里没有学生的时候,才能删除该班级。

2 插入如下数据CLASS (101 ,软件,计算机,1995 ; 102 ,微电子,计算机,1996 ;111 ,无机化学,化学,1995 ; 112 ,高分子化学,化学,1996 ;121 ,统计数学,数学,1995 ; 131 ,现代语言,中文,1996 ;141 ,国际贸易,经济,1997 ; 142 ,国际金融,经济,1996 ;)STUDENT (8101 ,张三,18 ,101 ; 8102 ,钱四,16 ,121 ;8103 ,王玲,17 ,131 ; 8105 ,李飞,19 ,102 ;8109 ,赵四,18 ,141 ; 8110 ,李可,20 ,1428201 ,张飞,18 ,111 ; 8302 ,周瑜,16 ,112 ;8203 ,王亮,17 ,111 ; 8305 ,董庆,19 ,102 ;8409 ,赵龙,18 ,101 ; 8510 ,李丽,20 ,142 )DEPARTMENT ( 001 ,数学; 002 ,计算机;003 ,化学; 004 ,中文;005 ,经济;)3 完成以下查询功能(1 )找出所有姓李的学生,并按其年龄由小到大排序。

(2 )列出所有开设超过两个专业的系的名字。

(3 )列出学生人数大于等于2 的系的编号和名称。

数据库原理试题及答案(二)

数据库原理试题及答案(二)

数据库原理试题及答案一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.数据库在磁盘上的基本组织形式是( B )A.DB B.文件C.二维表D.系统目录2.ER(实体联系模型)模型是数据库的设计工具之一,它一般适用于建立数据库的( A )A.概念模型B.逻辑模型C.内部模型D.外部模型3.数据库三级模式中,用户与数据库系统的接口是( B ) A.模式B.外模式C.内模式D.逻辑模式4.在文件系统中,所具有的数据独立性是( D )A.系统独立性B.物理独立性C.逻辑独立性D.设备独立性5.在DB技术中,“脏数据”是指( D )A.未回退的数据B.未提交的数据C.回退的数据D.未提交随后又被撤消的数据6.关系模式至少应属于( A )A.1NF B.2NFC.3NF D.BCNF7.设有关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},则属性集BD的闭包(BD)+为( B )A.BD B.BCDC.BC D.CD8.设有关系R如题8图所示:(C)R题8图则∏专业,入学年份(R)的元组数为A.2 B.3C.4 D.59.集合R与S的交可以用关系代数的基本运算表示为( A ) A.R-(R-S) B.R+(R-S)C.R-(S-R) D.S-(R-S)l0.已知SN是一个字符型字段,下列SQL查询语句( C ) SELECT SN FROM SWHERE SN LIKE′AB%′;的执行结果为A.找出含有3个字符′AB%′的所有SN字段B.找出仅含3个字符且前两个字符为′AB′的SN字段C.找出以字符′AB′开头的所有SN字段D.找出含有字符′AB′的所有SN字段l1.现要查找缺少成绩(Grade)的学生学号(Snum),相应的SQL语句是( D )A.SELECT Snum B.SELECT SnumFROM SC FROM SCWHERE Grade=0 WHERE Grade<=0 C.SELECT Snum D.SELECT SnumFROM SC FROM SCWHERE Grade=NULL WHERE Grade IS NULLl2.下列不是..数据库恢复采用的方法是( D )A.建立检查点B.建立副本C.建立日志文件 D.建立索引13.在SQL/CLI中,将宿主程序与数据库交互的有关信息记录在运行时数据结果中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目:现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成:商品(商品号,商品名,单价,商品类别,供应商);顾客(顾客号,姓名,住址);购买(顾客号,商品号,购买数量);试用SQL语言完成下列功能:1 建表,在定义中要求声明:(1)每个表的主外码;(2)顾客的姓名和商品名不能为空值;(3)单价必须大于0,购买数量必须再0到20之间;2 往表中插入数据:商品(M01,佳洁士,8.00,牙膏,宝洁;M02,高露洁,6.50,牙膏,高露洁;M03,洁诺,5.00,牙膏,联合利华;M04,舒肤佳,3.00,香皂,宝洁;M05,夏士莲,5.00,香皂,联合利华;M06,雕牌,2.50,洗衣粉,纳爱斯M07,中华,3.50,牙膏,联合利华;M08,汰渍,3.00,洗衣粉,宝洁;M09,碧浪,4.00,洗衣粉,宝洁;)顾客(C01,Dennis,海淀;C02,John,朝阳;C03,Tom,东城;C04,Jenny,东城;C05,Rick,西城;)购买 (C01,M01,3;C01,M05,2;C01,M08,2;C02,M02,5;C02,M06,4;C03,M01,1;C03,M05,1;C03,M06,3;C03,M08,1;C04,M03,7;C04,M04,3;C05,M06,2;C05,M07,8;)商品有9 条,顾客有5条,购买有5条3 用SQL语句完成下列查询:(1)求购买了供应商"宝洁"产品的所有顾客;(2)求购买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);(3)求牙膏卖出数量最多的供应商。

4 将所有的牙膏商品单价增加10%。

5 删除从未被购买的商品记录。

参考答案:create table product(productno char(10) not null,productname char(15) not null,price float(15),sort char(10),supplier char(20),primary key (productno),check (price > 0))create table customer(customerno char(10) not null,customername char(15) not null,address char(10),primary key (customerno))create table buy(customerno char(10) not null,productno char(10) not null,num smallint,primary key (customerno,productno),foreign key (customerno) references customer (customerno), foreign key (productno) references product (productno),check (num between 0 and 20))insert into product values ('M01','佳洁士',8.00,'牙膏','宝洁');insert into product values('M02','高露洁',6.50,'牙膏','高露洁'); insert into product values('M03','洁诺',5.00,'牙膏','联合利华') ; insert into product values('M04','舒肤佳',3.00,'香皂','宝洁') ;insert into product values('M05','夏士莲',5.00,'香皂','联合利华'); insert into product values('M06','雕牌',2.50,'洗衣粉','纳爱斯'); insert into product values('M07','中华',3.50,'牙膏','联合利华') ; insert into product values('M08','汰渍',3.00,'洗衣粉','宝洁') ;insert into product values('M09','碧浪',4.00,'洗衣粉','宝洁') ;insert into customer values ('C01','Dennis','海淀') ;insert into customer values('C02','John','朝阳') ;insert into customer values('C03','Tom','东城') ;insert into customer values('C04','Jenny','东城');insert into customer values('C05','Rick','西城') ;insert into buy values ('C01','M01',3);insert into buy values('C01','M05',2);insert into buy values('C01','M08',2);insert into buy values('C02','M02',5);insert into buy values('C02','M06',4);insert into buy values('C03','M01',1);insert into buy values('C03','M05',1);insert into buy values('C03','M06',3);insert into buy values('C03','M08',1);insert into buy values('C04','M03',7);insert into buy values('C04','M04',3);insert into buy values('C05','M06',2);insert into buy values('C05','M07',8);(1)求购买了供应商"宝洁"产品的所有顾客;select c.customerno,c.customername from product p,customer c, buy b where p.productno = b.productno and c.customerno = b.customerno and supplier = '宝洁'(2)求购买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);参考书本p126select distinct c.customername from buy as x , customer c where not exists (select * from buy as y where y.customerno in (select customerno from customer where customername = 'Dennis' )and not exists (select * from buy as z where z.customerno = x.customerno and z.productno = y.productno))and x.customerno = c.customerno(3)求牙膏卖出数量最多的供应商。

select p.supplier,sum(num) from product p,customer c, buy bwhere p.productno = b.productno and c.customerno = b.customerno and sort = '牙膏'group by p.supplierhaving sum(num) > = all(select sum(num) from product p,customer c, buy bwhere p.productno = b.productno and c.customerno = b.customerno and sort = '牙膏'group by p.supplier)(4)update product set price = price * (1+0.1) where sort = '牙膏';(5)delete from product where productno not in (select distinct productno from buy );(素材和资料部分来自网络,供参考。

可复制、编制,期待您的好评与关注)。

相关文档
最新文档