软件技术基础数据库
- 格式:doc
- 大小:80.00 KB
- 文档页数:11
软件技术专业数据库基础第一阶段技能考核试题班级______ 姓名________一、任务要求:东方公司为了提高员工专业及职业素质,准备建设一个小型图书馆,为了便于图书的管理,委托长春信息技术职业学院计算机系软件技术专业班级设计一个简易的图书管理系统,由各专业教师为项目经理。
项目经理通过对用户需要分析,决定将整个项目的开发开为:系统分析、系统设计、系统编码、系统测试、试运行、正式投入使用六个阶段。
本次考核内容为根据项目经理要求完成数据库设计:具体要求如下:1.创建图书管理数据库,数据库为由“DB_同学姓名”构成,数据库文件保存到D盘的databases目录下,数据文件初始大小为50MB,日志文件在数据文件的1/4。
(10分)2.为了方便图书管理员日常管理及用户查询,系统要求:(20分)2.1 图书要进行分类管理,如“市场营销”、“计算机”、“职业素质”、“专业技术”等;2.2 用户可能方便地查看图书的ISBN、书名、所属的类别、图书价格、现有库存量、出版社、出版时间、作者等信息,而且管理员还要知道什么时间添加的图书信息。
2.3 图书的各种类别是提前预定好的,以后每本图书都属于其种的一个类别。
3. 数据表创建结束后,要求同学们录入初始数据,其中类别表不少于5种,图书表中不少于6种图书,要求数据贴近真实。
(20分)4. 要求程序能够实现如下查询:(30分)4.1 查询所有书名中包含“数据库”文字的图书信息。
(5分)4.2请按价格从大到小的顺序显示所有的图书信息。
(5分)4.3请按价格在15至40元之间的所有图书,并按价格从大到小的顺序显示。
(5分)4.4 查询库存量低于5本的所有图书(5分)4.5 查询市场营销类图书册数。
(5分)4.6 查询2008年之后出版的图书。
(5分)5. 将图书的“计算机类”数据修改为“信息类”。
(5分)6. 将最后一本图书删除。
(5分)7. 扩展功能:(10分)用户希望能够记住每本图书借书、还书的相关信息,请同学位根据以上相关信息设计一个借阅表。
软件技术基础知识点在当今数字化的时代,软件技术已经成为推动社会发展和创新的关键力量。
无论是我们日常使用的手机应用,还是企业运行的复杂系统,都离不开软件技术的支持。
接下来,让我们一起探索软件技术的一些基础知识点。
一、数据结构数据结构是软件技术中非常重要的概念。
它是指相互之间存在一种或多种特定关系的数据元素的集合。
常见的数据结构包括数组、链表、栈、队列、树和图等。
数组是一种最简单的数据结构,它是一组相同类型的元素按顺序存储在连续的内存空间中。
数组的优点是访问元素的速度快,但插入和删除元素的效率较低。
链表则是通过指针将各个元素链接在一起,不需要连续的内存空间。
链表在插入和删除元素时较为方便,但访问元素的速度相对较慢。
栈是一种特殊的线性表,遵循“后进先出”的原则。
就像往一个桶里放东西,最后放进去的会最先被取出。
队列则遵循“先进先出”的原则,类似于排队买票,先到的先买。
树是一种分层的数据结构,常见的有二叉树、二叉搜索树等。
二叉搜索树可以快速地进行查找、插入和删除操作。
图则用于表示多对多的关系,在网络路由、社交网络分析等领域有广泛的应用。
二、算法算法是解决特定问题的一系列明确步骤。
好的算法应该具有正确性、可读性、健壮性、高效性和低存储量需求等特点。
常见的算法有排序算法,如冒泡排序、插入排序、选择排序、快速排序等。
冒泡排序通过不断比较相邻的元素并交换位置,将最大的元素逐步“浮”到数组的末尾。
快速排序则通过选择一个基准元素,将数组分为小于和大于基准元素的两部分,然后对这两部分分别进行排序。
搜索算法也是重要的算法之一,包括顺序搜索和二分搜索。
顺序搜索逐个检查元素,直到找到目标元素或遍历完整个数组。
二分搜索则是在有序数组中,通过不断将数组对半分割来查找目标元素,效率较高。
还有动态规划算法,用于解决具有重叠子问题和最优子结构性质的问题,如背包问题、最长公共子序列问题等。
三、编程语言编程语言是软件开发者与计算机进行交流的工具。
《软件技术基础》教学大纲一、课程信息二、课程内容(一)课程教学目标通过本课程的学习,使学生了解计算机软件中的相关重要概念、软件技术的基础知识和方法,从而培养学生利用计算机解决问题的意识和能力,为计算机在专业应用中奠定基础。
为非计算机专业学生开设的一门关于计算机软件基础知识的综合性课程,以应用为目的,选择性地介绍数据结构、操作系统、软件工程、数据库技术和网络基础等部分内容,通过这些内容的学习,学生能对计算机软件系统有一个整体的认识和了解。
(二)基本教学内容1、计算机软件技术概述及C语言回顾;2、几种典型数据结构的逻辑结构和存储结构;3、算法的概念,二叉树及图的遍历方法,常用的查找和排序算法。
4、软件工程中的基本概念及生命周期法;5、操作系统中的基本概念及管理方法;6、数据库的基本知识,SQL语言。
7、计算机网络的主要结构和常识。
8.网络新技术(1)计算机软件技术概述及C语言回顾;教学目的与要求:了解软件技术的发展历程,常用软件的分类。
复习开发工具C语言中的相关知识。
教学重点:教材章节内容及开发工具C语言中的相关知识。
教学难点:C语言中指针的应用。
教学内容:软件的概念,历史及分类。
本教程各章节的主要内容及学习方法。
开发工具C语言中较难理解的指针,结构体等编程知识。
(2)数据结构教学目的与要求:理解数据结构的基本概念;理解线性表、栈、队列数据结构的基本概念,理解各线性数据结构的特点和存储结构,掌握基于不同的存储结构的相关操作的实现方法;理解树和图的基本概念,基本特点和存储结构,掌握二叉树的遍历算法的实现以及树和二叉树之间转换的方法;理解查找和排序的基本概念,掌握查找和排序的各三种基本方法和实现。
教学重点:线性表、堆栈、队列、树和图的逻辑结构表示;线性表、堆栈、队列、树和图的存储算法;线性表、堆栈、队列、树和图的插入和删除操作的算法。
教学难点:单链表的建立及操作算法;循环队列的工作原理、查找以及排序算法。
软件技术基础知识第一章1、算法和算法的特点2、数据结构:指相互关联的数据元素的集合。
数据结构分为逻辑结构和物理结构。
逻辑结构:表示了数据的逻辑关系(前后件关系)。
按照逻辑关系的不同分为:线形结构和非线形结构。
物理结构:表示了数据在计算机上的存放形式,也称存储结构。
按照存放形式的不同分为:顺序存储和链式存储。
3、线形结构的条件:4、线形结构通常称之为线性表。
顺序存储的线性表称为顺序表,链式存储的线性表称为线性链表。
5、对与空的数据结构可以为线性结构也可以为非线性结构。
6、顺序表和线性链表的特点。
7、栈和队列的特点。
8、栈和队列可以采用顺序存储也可以采用链式存储。
9、双向链表和循环队列。
10、树和二叉树11、二叉树的基本性质①第k层最多具有的结点数。
②深度为k的二叉树最具有的结点数。
③任何二叉树对为0的结点数和度为2的结点数的关系。
12、满二叉树的特点。
13、完全二叉树的特点。
14、二叉树的遍历15、顺序查找适用的情况。
对长度为n的线形表进行顺序查找最坏的情况需要查找的次数。
16、二分法查找适用的情况。
对长度为n的线形表进行二分法查找最坏的情况需要查找的次数。
17、排序的分类。
交换类排序:冒泡排序法,最坏的情况需要比较的次数。
插入类排序法,堆排序法。
第二章1、编程的良好习惯要求:根据需要添加相应的注释,应该有良好的视觉组织,在完成功能的前提下,优先考虑可读性和清晰性,然后在考虑效率。
2、注释的分类:序言性注释和功能性注释。
3、结构化程序设计的原则。
4、结构化程序设计的基本结构。
5、对象是属性和行为的封装体。
6、对象的基本特点:标识唯一性,分类性,多态性,封装性,摸快独立性。
7、类和实例之间的关系。
类是具有共同属性和方法对象的集合,是关于对象的抽象,一个具体的对象则称之为类的一个实例。
8、消息。
9、继承、多态性。
第三章1、软件的定义及软件的特点软件是程序、数据及相关文档的集合。
特点:2、软件危机是开软件过程中所遇到的一系列的严重问题。
实验报告
实验名称数据库应用系统的开发
班级
学号
姓名
成绩
【实验方案设计】
1. 利用Visual Basic里的VB Application Wizard按照步骤逐步创建一个窗体应用程序,并链接到上一实验创建的数据库中,同时添加各种操作按钮,如插入、删除、更改等,最后将数据库的每个表视图集合到主视图中
【实验过程】(实验步骤、记录、数据、分析)
1.选择数据来源种类
2.选择数据库文件并做链接
3.选择数据视图布局,此处选择网格式布局,便于查看全部数据
4.选择一个表及要添加的字段和排列顺序
5.选择对数据可进行的操作按钮,如添加、更改、删除、更新、关闭等
6.添加完一个表后,继续添加其他表,直到整个数据库所有表已添加
7.添加完成后界面
8.通过链接到ACCESS数据库的VB数据库管理程序查看每个表数据,并进行数据增加、删除、修改等操作
9.在数据库管理系统中对数据进行增加操作,此处增加一条订单ID为151112的记录,可以看到在ACCESS中的数据表进行了同步增加。
这样就可以达到不打开ACCESS而只通过一个单界面应用程序就实现对数据库的维护工作,具有简单性、高效性的特点。
软件技术的专业知识技能主要包括以下几个方面:
1. 程序设计基础:掌握编程语言和程序设计原理,了解常用的数据结构和算法,能够编写高质量的程序代码。
2. 数据库技术:熟悉数据库管理系统和数据库设计原理,能够进行数据库的建立、维护和管理。
3. 操作系统应用:了解操作系统的基本原理和常用命令,能够进行系统的安装、配置和管理。
4. 计算机网络技术:掌握计算机网络的基本原理和协议,能够进行网络设备的配置和管理,保障网络安全。
5. 图形图像处理:熟悉图形图像处理的基本原理和常用工具,能够进行图形图像的处理和编辑。
6. 软件测试技术:了解软件测试的基本原理和方法,能够进行软件的测试和调试,保障软件的质量和稳定性。
7. 软件工程管理:了解软件工程的基本原理和方法,能够进行软件的开发、测试和维护管理。
以上是软件技术专业的主要专业知识技能,希望对您有所帮助。
软件技术基础1. 引言软件技术基础是指软件开发过程中所必需的基本知识和技能。
为了能够高效地开发出可靠的软件系统,软件开发人员需要掌握一系列与软件开发相关的技术和概念。
本文将介绍软件技术基础的概念、原理以及其中的一些重要组成部分。
2. 软件开发生命周期软件开发生命周期是软件开发过程中的一个重要概念。
它描述了软件从概念到退役的整个过程,包括需求分析、设计、编码、测试和部署等步骤。
不同的软件开发方法和模型可能有不同的生命周期,但基本的原则是相同的。
以下是一个常见的软件开发生命周期模型:2.1 需求分析需求分析阶段是软件开发生命周期的第一步。
在这个阶段,开发人员与客户一起讨论和确定软件系统的需求。
这涉及到收集用户需求、定义系统功能和确定软件的特性。
2.2 设计设计阶段侧重于将系统需求转化为可执行的设计方案。
在这个阶段,开发人员会制定一个系统的整体架构,绘制系统的详细设计图,并确定软件的模块和组件。
编码阶段是将设计方案转化为可执行代码的过程。
在这个阶段,开发人员使用编程语言和开发工具来实现系统功能。
编码过程需要遵循一定的编码规范和设计原则,以确保代码的质量和可维护性。
2.4 测试测试阶段是对软件系统进行功能测试和性能测试的过程。
在这个阶段,开发人员会对软件进行单元测试、集成测试和系统测试,以确保软件的功能正常运行,并满足用户的需求。
2.5 部署部署阶段是将测试通过的软件部署到目标环境的过程。
这包括将软件安装在用户计算机上,并进行系统配置和调试。
3. 编程语言编程语言是软件开发的基础工具之一。
它们用于编写软件的代码,并定义了程序的结构和行为。
常见的编程语言包括C++、Java、Python等。
3.1 C++C++是一种通用的编程语言,广泛应用于系统级软件开发和高性能计算中。
它提供了面向对象的编程模型以及强大的内存控制功能。
Java是一种跨平台的编程语言,广泛用于Web开发和企业级应用开发。
它的特点是具有良好的可移植性和安全性。
实验五数据库建立一、实验目的1.熟练掌握用SQL语句实现基本表的创建。
2.熟练掌握用SQL语句实现数据插入、数据更新和数据查询。
3.熟练掌握用SQL语句实现数据的简单查询和连接查询。
二、实验环境SQL Server2000三、预习要求SQL Server2000的查询分析器和企业管理器的使用,SQL数据定义和数据操纵语言。
四、实验内容(一)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(四张表的数据另给),要求实现关系的三类完整性。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
(二)分别使用插入、删除、修改的方式更新基本表中的数据。
五、实验方法和步骤(一)使用Microsoft SQL Server企业管理器和查询分析器建立数据库mySPJ:1.打开“开始->程序->Microsoft SQL Server->企业管理器”;2.在企业管理器左边的树标签中依次打开“Microsoft SQL Server-> SQL Server组->(local)(Windows NT)->数据库”,(local)(Windows NT)前的红色标记转化为绿色标记表明NT服务已启动;3.从企业管理器的“工具”菜单中选择“SQL 查询分析器”,打开查询分析器后,在其窗口书写创建数据库mySPJ的SQL语句,点击执行按钮(或F5键)执行该SQL语句;4.在企业管理器左边的树标签中查看数据库是否建立成功。
(二)在数据库mySPJ中建立S,P,J,和SPJ四个基本表:按照实验内容给出的基本表结构在查询分析器窗口中书写SQL语句分别建立各表,并设置主键和外键约束;1.创建表SCREATE TABLE S(SNO CHAR(3) PRIMARY KEY NOT NULL,SNAME V ARCHAR(20) NOT NULL,STATUS INT NOT NULL,CITY CHAR(10) NOT NULL,)2.创建表PCREATE TABLE P(PNO CHAR(3) PRIMARY KEY NOT NULL,PNAME V ARCHAR(20) NOT NULL,COLOR CHAR(10) NOT NULL,WEIGHT CHAR(10) NOT NULL,)3.创建表JCREATE TABLE J(SNO CHAR(3) PRIMARY KEY NOT NULL,SNAME V ARCHAR(20) NOT NULL,STATUS INT NOT NULL,CITY CHAR(10) NOT NULL,)4.创建表SPJCREATE TABLE SPJ(SNO CHAR(3) NOT NULL,PNO CHAR(3) NOT NULL,JNO CHAR(3) NOT NULL,QTY CHAR(10) NOT NULL,PRIMARY KEY(SNO,PNO,JNO),FOREIGN KEY (SNO)REFERENCES S(SNO),FOREIGN KEY (PNO)REFERENCES P(PNO),FOREIGN KEY (JNO)REFERENCES J(JNO),)(三)更新表数据:1.利用Insert 语句将习题中给出的示例记录插入各表。
例如:在表spj中插入例表中的第一行,语句为:INSERT INTO SPJV ALUES('S1','P1','J1','200');其他记录插入方法与此相似。
2.利用Update更新表中的记录:1.将p表中的所有红色零件的重量增加5。
Sql语句:UPDATE PSET WEIGHT=WEIGHT+5WHERE COLOR='红';2.将spj表中所有天津供应商的QTY属性值减少10。
用子查询。
UPDATE SPJSET QTY=QTY-10WHERE SNO in(SELECT SNOFROM S2WHERE CITY='天津');3.利用Delete语句删除p表中的所有红色零件的记录。
答:DETELEFROM PWHERE COLOR='红';4.SQL语句执行后返回基本表查看更新后的结果,如果与期望不符,分析原因并记录在实验报告中。
六、思考题如何用SQL语句实现关系的三类完整性?答:三类完整性是指:实体完整性、参照完整性、与完整性。
实体完整性,是对主键的约束,是指元组在组成主键的属性上不能有空值,主键是区分实体的唯一性标识,因此不能为空。
参照完整性(引用完整性):这是外键的约束,不允许引用不存在的元组。
外键与关系的主键相对应,外键或者取空值,或者取参照关系中的主键值。
参照完整性用于保证关系的有效性,并保证在输入、编辑或删除数据时数据库是完整的。
用户定义完整性(域完整性):是针对某一具体关系数据库的约束条件。
它反映某一具体应用所涉及的数据必须满足的语义要求。
七、实验中出现的问题及解决法案1、当创建表的时候,用过primary key之后,该列就不能有重复的输入。
这违背了实体完整性;2、用NOT NULL限制的属性,就不能为空,必须有输入;3、Spj表中的pno、jno、sno不能出现s、p、j中没有的记录,因为有外键的约束。
Spj表必须参照s、p、j三个表创建。
八、实验总结通过这次试验,首先我熟悉了server2000的工作环境,了解了数据库的基本知识,如:分离数据库、附加数据库。
学会了手工创建表和用sql语句创建表,也学会了sql语句实现数据插入、数据更新。
实验六数据库查询一、实验目的1.熟练掌握用SQL语句实现视图操作。
2.理解触发器的含义,并初步掌握用SQL语句实现触发器的编写。
3.理解存储过程的含义,并初步掌握用SQL语句实现存储过程的编写。
二、实验环境SQL Server2000三、预习要求SQL Server2000的查询分析器和企业管理器的使用,存储过程和触发器的含义。
四、实验内容(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。
③查询工程名称中含有“厂”字的工程明细。
(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:求s和p表的笛卡尔积④左连接:求j表和spj表的左连接。
⑤右连接:求spj表和j表的右连接。
(三)分组查询:1.求各种颜色零件的平均重量。
2.求北京供应商和天津供应商的总个数。
3.求各供应商供应的零件总数。
4.求各供应商供应给各工程的零件总数。
5.求使用了100个以上P1零件的工程名称。
6.求各工程使用的各城市供应的零件总数。
(四)嵌套查询:1.in连接谓词查询:①查询没有使用天津供应商供应的红色零件的工程名称。
②查询供应了1000个以上零件的供应商名称。
(having)2.比较运算符:求重量大于所有零件平均重量的零件名称。
五、实验方法和步骤参照实验五中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
源程序:/*查询所有“天津”的供应商明细*/select *from Swhere city='天津'/*查询所有“红色”的14公斤以上的零件*/select pnamefrom Pwhere color='红' and weight>=14/*查询工程名称中含有“厂”字的工程明细*/select *from Jwhere jname like '%厂'/*等值连接:求S表和J表的相同城市的等值连接*/select *from S,Jwhere J.city=S.city/*自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序*/select sname,pname,jnamefrom S,J,P,SPJwhere S.sno=SPJ.sno and J.jno=SPJ.jno and P.pno=SPJ.pnoorder by sname,jname,pname/*笛卡尔积:求S表和J表的笛卡尔积*/select *from S,P/*左连接:求J表和SPJ表的左连接*/ select J.jno,jname,city,sno,pno,qty from J,SPJwhere J.jno*=SPJ.jno;/*右连接:求J表和SPJ表的右连接*/ select J.jno,jname,city,sno,pno,qty from J,SPJwhere J.jno=*SPJ.jno;/*求各种零件的平均重量*/select color,avg(weight)from Pgroup by color;/*求北京供应商和天津供应商的总个数*/ select city,count(sno)总个数from Sgroup by cityhaving city='北京' or city='天津';/*求各供应商供应的零件总数*/select sname,sum(qty)总数from S,SPJwhere S.sno=SPJ.snogroup by sname/*求各供应商供应给各工程的零件总数*/ select sname,jname,sum(qty)总数from S,J,SPJwhere S.sno=SPJ.sno and J.jno=SPJ.jno group by sname,jname/*求供应给各工程的零件p1总数*/select jname,sum(qty)总数from S,J,SPJwhere S.sno=SPJ.sno and J.jno=SPJ.jno and pno='p1' group by jname/*求使用了100个以上P1零件的工程名称*/select jnamefrom J,SPJwhere J.jno=SPJ.jno and pno='p1'group by jnamehaving sum(qty)>=100;/*求各工程使用的各城市供应的零件总数*/select jname,S.city,sum(qty)总数from S,J,SPJwhere S.sno=SPJ.sno and J.jno=SPJ.jnogroup by jname,S.city/*查询没有使用天津供应商供应的红色零件的工程名称*/ select jnamefrom Jwhere jno in(select jnofrom SPJwhere pno in(select pnofrom Pwhere color!='红')and sno in(select snofrom Swhere city!='天津'))/*查询供应了1000个以上零件的供应厂商名*/select snamefrom Swhere sno in(select snofrom SPJgroup by snohaving sum(qty)>=1000)/*比较运算符:求重量大于所有零件平均重量的零件名称*/select pnamefrom Pwhere weight >=(select avg(weight)from P)六、思考题如何通过系统的设置实现类似的功能,而不需触发器?答:通过设置外键约束,并设置级联删除,可以不用触发器。