MySQL数据库根底与实例教程练习题参考答案
由于时间仓促,中难免存在错误,不妥之处恳请读者批评指正!
第一章答案
1.数据库管理系统中常用的数学模型有哪些?
数据库管理系统通常会选择某种“数学模型〞存储、组织、管理数据库中的数据,常用的数学模型包括“层次模型〞、“网状模型〞、“关系模型〞以与“面向对象模型〞等。
2.您听说过的关系数据库管理系统有哪些?数据库容器中通常包含哪些数据库对象?
目前成熟的关系数据库管理系统主要源自欧美数据库厂商,典型的有美国微软公司的SQL Server、美国IBM公司的DB2和Informix、德国SAP公司的Sybase、美国甲骨文公司的Oracle。
数据库容器中通常包含表、索引、视图、存储过程、触发器、函数等数据库对象。
3.通过本章知识的讲解,SQL与程序设计语言有什么关系?
SQL并不是一种功能完善的程序设计语言,例如,不能使用SQL构建人性化的图形用户界面〔GraphicalU
serInterface,GUI〕,程序员需要借助Java、VC++等面向对象程序设计语言或者HTML的FORMeb应用程序,处理FORM表单中的数据以与数据库中的数据。
其他答案:
1、首先SQL语言是数据库结构化查询语言,是非过程化编程语言。而程序设计语言如此有更多的面向对象与逻辑程序设计。比如用SQL语言编写图形用户界面〔例如窗口、进度条〕,是无法实现的。
2、SQL语言可以说是,程序设计语言和数据库之间的一个翻译官。程序设计语言需要操作数据库时,需要借助〔或者说调用〕SQL语言来翻译给数据库管理系统。
3、不同数据库管理系统会有一些特殊的SQL规X,比如limit关键词在SQL Server 中无法使用。而这些规X与程序设计语言无关。
4.通过本章的学习,您了解的MySQL有哪些特点?
与题目2中列举的商业化数据库管理系统相比,MySQL具有开源、免费、体积小、便于安装,但功能强大等特点。
5.通过本章的学习,您觉得数据库表与电子表格〔例如Excel〕有哪些区别?
限于本章的知识点:外观上,关系数据库中的一个数据库表和一个不存在“合并单元格〞的电子表格〔例如Excel〕一样。与电子表格不同的是:同一个数据库表的字段名不能重复。为了优化存储空间以与便于数据排序,数据库表的每一列必须指定某种数据类型。
关系数据库中的表是由列和行构成的,和电子表格不同的是,数据库表要求表中的每一行记录都必须是唯一的,即在同一X数据库表中不允许出现完全一样的两条记录。
6.您所熟知的数据库设计辅助工具有哪些?您所熟知的模型、工具、技术有哪些?
数据库设计辅助工有数据模型、数据建模工具、关系数据库设计技术。其中常用的数据模型有ER模型和类图;常用的数据建模工具如ERwin、PowerDesigner、Visio等;常用的关系数据库设计技术如数据库规X化技术。
1.模型
数据模型有E-R图或者类图等数据模型。业务模型有程序流程图、数据流程图DFD、时序图、状态图等业务模型。
2.工具
软件项目管理工具如美国微软公司的Project,数据建模工具如ERwin、PowerDesigner、Visio,业务建模工具如PowerDesigner、Rational Rose以与Visio等。IDE工具有、Visual Studio、Eclipse以与NetBeans等。测试工具有Junit单元测试工具、QuickTest Professional功能测试工具以与LoadRunner性能测试工具等。
3.技术
软件开发时常用的技术包括:面向对象分析和设计技术、结构化分析和设计技术、软件测试技术和关系数据库设计技术等。
7.请您罗列出“选课系统〞需要实现哪些功能,使用数据库技术能够解决“选课系统〞中的哪些商业问题?
“选课系统〞中存在的商业问题〔等于“选课系统〞需要实现的功能〕:
如何存储以与维护课程、学生、教师以与班级的详细信息?
不同教师申报的课程名能否一样?如果允许课程名一样,如何区分课程?
如何控制每位教师只能申报一门选修课程?
如何控制每门课程的人数上限在〔60、150、230〕中取值?
如何控制每一门课程的选课学生总人数不超过该课程的人数上限?
如何实现学生选课功能、退选功能以与调课功能?
如何控制每位学生最多可以选修两门课程,且两门课程不能一样?
系统如何自动记录学生的选课时间?
如何统计每一门课程还可以供多少学生选修?
如何统计人数已经报满的课程?
如何统计某一个教师已经申报了哪些课程?
如何统计某一个学生已经选修了多少门课程,是哪些课程?
如何统计选修人数少于30人的所有课程信息?
如何统计选修每一门课程的所有学生信息?
课程信息删除后,如何保证选择该课程的学生可以选修其他课程?
如何通过搜索关键字检索自己感兴趣的课程信息?
8.您所熟知的编码规X有哪些?
1.命名规X
2.注释
3.书写规X〔缩进规X〕
9.您是如何理解“E-R图中实体间的关系是双向的〞?能不能举个例子?
请参看1.3.1章节的内容。
10.E-R图中,什么是基数?什么是元?什么是关联?
请参看1.3.2章节的内容。
11.E-R图的设计原如此是什么?您是怎么理解E-R图的设计原如此的?
请参看数据库开发人员通常采用“一事一地〞的原如此的内容。
12.关系数据库的设计步骤是什么?为每X表定义一个主键有技巧可循吗?主键与关键字有什么关系?
关系数据库的设计步骤,请参看1.4章节的内容。
为每X表定义一个主键技巧,请参看1.4.2章节的内容。
主键与关键字有什么关系,请参看1.4.2章节的内容。
12.在关系数据库设计过程中,如何表示E-R图中的1:1、1:m、m:n关系?
请参看1.4.3以与1.4.4章节的内容。
13.在数据库管理系统中,您所熟知的数据类型有哪些?每一种数据类型能不能各列举一些例子?
请参看1.4.5章节的内容。
14.您所熟知的约束条件有哪些?MySQL支持哪些约束条件?
请参看1.4.6章节的内容。MySQL支持主键〔primary key〕约束、外键〔foreign key〕约束、唯一性〔〕约束、默认值〔default〕约束、非空〔〕约束。
15.数据库中数据冗余的“并发症〞有哪些,能不能列举一些例子?
数据冗余“并发症〞插入有异常、删除异常、修改复杂。例子参看1.4.8章节的内容。
16.如何防止数据冗余?什么是1NF、2NF、3NF?
使用规X化减少数据冗余请参看1.4.8章节的内容。
17.根据本章的场景描述——“很多团购在网上对房源进展出租〞的E-R图,请设计该场景描述的数据库表。
团购(ID,网址)
房源〔房间号,房型〕
顾客〔顾客号〕
出租〔出租ID,ID,房间号,顾客号〕
19.如果将学生student表设计为如下表结构:
(student_no,student_no,student_name,student_contact,class_no,department_name)
请用数据库规X化的知识解释该表是否满足3NFX式的要求?该表是否存在数据冗余?是否会产生诸如插入异常、删除异常、修改复杂等数据冗余“并发症〞?
请参看1.4.8章节的内容。
20.在“选课系统〞中,学生选课时,由于每一门课程受到教室座位数的限制,每一门课程设置了人数上限,如何确保每一门课程选报学生的人数不超过人数上限?有几种设计方案?这些设计方案的区别在哪里?
请参看1.4.9章节的内容。
21.“选课系统〞有几X表,每个表有哪些字段?
teacher(teacher_no,teacher_name ,teacher_contact)
classes(class_no,class_name, department_name)
course(course_no ,course_name, up_limit,description,status,teacher_no)
student(student_no, student_name, student_contact,class_no)
choose(choose_no,student_no char(11),course_no,score,choose_time)
oracle数据库表结构怎么看22.依据自己所掌握的知识,描述如何使用数据库技术解决“选课系统〞问题域中的问题。
如何存储以与维护课程、学生、教师以与班级的详细信息?
答:course、student、teacher、classes表可以用于存储以与维护课程、学生、教师以与班级的详细信息。
不同教师申报的课程名能否一样?如果允许课程名一样,如何区分课程?
答:如果需求要求:不同教师申报的课程名不能一样,如此可以通过将course表的course_name字段设置为unique约束即可。
如果需求要求:不同教师申报的课程名可以一样,此时可以通过给course表添加course_id〔无任何逻辑意义〕主键字段,标记不同教师申报的课程。
如何控制每位教师只能申报一门选修课程?
请参看章节的“情形二〞内容。
如何控制每门课程的人数上限在〔60、150、230〕中取值?
答:MySQL目前不正常check约束。但该问题可以借助MySQL触发器解决,该题超出本章知识点内容,请参看触发器章节内容。
如何控制每一门课程的选课学生总人数不超过该课程的人数上限?
请参看1.4.9章节的内容。
如何实现学生选课功能、退选功能以与调课功能?
答:该问题可以借助MySQL存储过程、事务解决,该题超出本章知识点内容,请参看存储过程章节以与事务章节的内容。
如何控制每位学生最多可以选修两门课程,且两门课程不能一样?
答:该问题可以借助MySQL存储过程解决,该题超出本章知识点内容,请参看存储过程章节内容。
系统如何自动记录学生的选课时间?
答:借助MySQL的now()函数。
如何统计每一门课程还可以供多少学生选修?
如何统计人数已经报满的课程?
如何统计某一个教师已经申报了哪些课程?
如何统计某一个学生已经选修了多少门课程,是哪些课程?
如何统计选修人数少于30人的所有课程信息?
如何统计选修每一门课程的所有学生信息?
答:上述统计信息超出本章知识点内容,请参看表记录的检索章节内容。
课程信息删除后,如何保证选择该课程的学生可以选修其他课程?
答:可以通过外键约束级联删除实现,也可以通过触发器实现。
如何通过搜索关键字检索自己感兴趣的课程信息?
答:通过全文检索或者模糊查询like关键字实现。
第二章答案
1.通过本章的学习,您了解的MySQL有哪些特点?
答:请参看2.1.1章节内容。
2.请您简单描述MySQL的使用流程。什么是MySQL客户机?登录主机与MySQL客户机有什么关系?什么是MySQL会话?
答:请参看2.1.1章节内容。
MySQL客户机:与MySQL服务器通话的客户端不止一种,比如Windows操作系统下的命令行,可以直接通过命令建立与mysql数据库的通话,另外还有phpmyadmin、MySQL 等图形化界面连接方式等。本书经常使用的MySQL客户机程序存放在C:\Program Files\MySQL\MySQL Server 5.6\bin目录。
在一台登录主机上可以开启多个MySQL客户机。
数据库用户访问MySQL服务器的数据时,首先需要选择一台登录主机,然后在该登录主机上开启MySQ
L客户机,输入正确的账户名、密码,建立一条MySQL客户机与MySQL 服务器之间的“通信链路〞。通信链路断开之前,MySQL客户机可以向MySQL服务器发送屡次“请求〞,MySQL服务器会对每一次请求做出“响应〞,请求/响应期间称为MySQL会话。
3.通过Google或者Baidu搜索引擎,搜索常用的MySQL客户端工具〔或者客户机程序〕有哪些。
4.MySQL服务、MySQL服务实例、MySQL服务器分别是什么?什么是端口号?端口号有什么作用?
答:请参看2.1.1章节内容。
5.请列举my.ini配置文件中常用的参数选项组以与参数信息。
答:请参看2.1.5章节内容。
6.启动MySQL服务的方法有哪些?停止MySQL服务的方法有哪些?
答:请参看2.1.4章节内容。
7.MySQL客户机连接MySQL服务器的方法有哪些?连接MySQL服务器时,需提供哪些信息?
答:请参看2.1.7章节内容。
8.字符、字符集、字符序分别是什么?字符序的命名规如此是什么?
答:请参看2.2.1章节内容。
9.您所熟知的字符集、字符序有哪些?它们之间有什么区别?
答:请参看2.2.2章节内容。
10.请简述MySQL字符集的转换过程。
答:请参看2.2.3章节内容。
11.MySQL系统数据库有哪些?这些系统数据库有什么作用?
答:请参看2.2.1章节内容。
12.如果仅仅需要在数据库中存储中文简体字符,那么如何设置MySQL字符集?
答:请参看2.2.4章节内容。
13.请自己编写一段SQL脚本文件,并运行该脚本文件中的代码。
答:请参看2.2.5章节内容。
14.您所熟知的存储引擎有哪些?MyISAM存储引擎与InnoDB存储引擎相比,您更喜欢哪一个?它们都有什么特点?
答:请参看2.4.1章节内容。
15.创建student数据库,并在该数据库中创建student表,用于保存您的个人信息〔如某某、性别、某某号、出生日期等〕,并完成如下操作或问题。
1〕上述的student表有没有出现数据冗余现象?〔提示:出生日期可以由某某号推算得出〕
答:出生日期可由某某号计算得出,所以上述的student表存在数据冗余现象。
2〕student数据库目录存放在数据库根目录中,默认情况下,根目录是什么?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。