数据库实验6数据库系统设计
数据库系统概论实验

数据库系统概论实验数据库系统概论是计算机科学与技术专业的一门重要课程,其实验环节是帮助学生巩固理论知识、掌握数据库系统的基本操作和设计方法的关键环节。
本文将从实验的目的、实验环境与工具、实验内容以及实验过程中可能遇到的问题等方面进行详细介绍。
一、实验目的数据库系统概论实验的主要目的是通过实践操作,帮助学生理解和掌握数据库系统的基本概念、基本操作和基本设计方法,培养学生对数据库系统的使用和开发能力。
二、实验环境与工具数据库系统概论实验通常在计算机实验室进行,学生可以使用计算机实验室提供的数据库管理系统软件进行实验操作。
常见的数据库管理系统软件有Oracle、MySQL、SQL Server等,根据实验的要求和实验室条件,确定使用哪种数据库管理系统进行实验。
三、实验内容数据库系统概论实验的内容通常包括以下几个方面:1. 数据库的创建与删除:学生需要学会使用SQL语句创建数据库,并了解数据库的基本属性和结构;同时,学生还需要学会使用SQL 语句删除数据库。
2. 表的创建与删除:学生需要学会使用SQL语句创建表,并定义表的属性、类型和约束条件;同时,学生还需要学会使用SQL语句删除表。
3. 数据的插入与查询:学生需要学会使用SQL语句向表中插入数据,并学会使用SQL语句查询表中的数据。
4. 数据的更新与删除:学生需要学会使用SQL语句更新表中的数据,并学会使用SQL语句删除表中的数据。
5. 数据库的备份与恢复:学生需要学会使用数据库管理系统提供的备份和恢复工具,实现数据库的备份和恢复操作。
四、实验过程中可能遇到的问题在实验过程中,学生可能会遇到以下几个常见问题:1. 数据库连接问题:学生需要确保数据库连接的正确性,包括数据库的URL、用户名和密码等信息。
2. SQL语句错误:学生在编写SQL语句时可能会出现语法错误或逻辑错误,需要仔细检查和调试SQL语句。
3. 数据库权限问题:学生在进行数据库操作时可能会遇到权限不足的问题,需要联系管理员进行权限的调整。
数据库系统原理实验报告

数据库系统原理实验报告一、实验目的1.熟悉数据库系统的基本概念和原理;2.掌握数据库系统的基本操作;3.学会使用数据库系统进行数据管理和查询。
二、实验设备1.计算机;2.数据库管理系统软件。
三、实验过程1.创建数据库通过数据库管理系统软件,我们首先需要创建一个新的数据库。
在数据库管理系统软件的界面上,点击“新建数据库”按钮,输入数据库名称、用户名、密码等信息,并确定创建。
2.设计数据表在创建完数据库后,我们需要设计数据表结构。
点击数据库管理系统软件界面上的“表设计”按钮,弹出数据表设计界面。
根据实验需求,在数据表设计界面上添加字段、设置字段类型、设置主键等,最后确定设计。
3.插入数据数据表设计好后,我们需要将数据插入到数据表中。
通过数据库管理系统软件,点击“插入数据”按钮,弹出插入数据界面。
在插入数据界面上,输入要插入的数据信息,点击确定插入。
4.查询数据将数据插入到数据表中后,我们需要查询特定的数据。
通过数据库管理系统软件,点击“查询数据”按钮,弹出查询数据界面。
在查询数据界面上,输入查询条件,点击确定查询。
系统将会返回符合条件的数据。
五、实验结果通过以上实验步骤,我们成功地创建了一个新的数据库,设计了数据表结构,并将数据插入到数据库中。
同时,我们还可以通过数据库管理系统软件查询数据并获取到结果。
这些实验结果表明我们对数据库系统的基本操作具有熟练掌握的能力。
六、实验总结通过本次实验,我们深入了解了数据库系统的基本概念和原理,掌握了数据库系统的基本操作方法,并成功地应用到实际数据管理和查询中。
通过实验,我们意识到数据库系统在现代信息管理中的重要性,并且清楚地了解到数据库系统的优势和应用场景。
通过进一步的学习和实践,我们相信我们可以更加熟练地应用数据库系统,并将其应用到实际工作中。
数据库系统实验课实验报告

数据库系统实验课实验报告一、实验目的数据库系统实验课是一门重要的实践课程,旨在通过实际操作和实验,深入理解数据库系统的原理和应用,提高我们的数据库设计、管理和应用开发能力。
本次实验的具体目的包括:1、熟悉数据库管理系统(DBMS)的操作环境和基本命令。
2、掌握数据库的创建、表的设计、数据的插入、查询、更新和删除等基本操作。
3、学会使用 SQL 语句进行复杂的数据查询和数据处理。
4、理解数据库的完整性约束、索引和存储过程的概念及应用。
5、培养解决实际数据库问题的能力和团队协作精神。
二、实验环境本次实验使用的数据库管理系统是 MySQL 80,实验在 Windows 10 操作系统上进行。
使用的开发工具包括 MySQL Workbench 和命令行终端。
三、实验内容1、数据库的创建使用 CREATE DATABASE 语句创建了一个名为“student_management”的数据库,用于存储学生管理相关的数据。
2、表的设计在“student_management”数据库中,设计了以下几张表:“students”表,包含学生的学号(student_id)、姓名(student_name)、性别(gender)、年龄(age)等字段。
“courses”表,包含课程的课程号(course_id)、课程名称(course_name)、学分(credit)等字段。
“enrolls”表,用于记录学生选课的信息,包含学号(student_id)、课程号(course_id)、成绩(grade)等字段。
在设计表时,为每个字段选择了合适的数据类型,并设置了主键和外键约束,以保证数据的完整性和一致性。
3、数据的插入使用 INSERT INTO 语句向“students”、“courses”和“enrolls”表中插入了一些示例数据,以便进行后续的查询和操作。
4、数据的查询使用简单的 SELECT 语句查询了“students”表中的所有学生信息。
数据库原理及应用实验教案

数据库原理及应用实验教案一、实验目的1. 理解数据库的基本概念,掌握数据库的基本操作。
2. 熟悉数据库管理系统,了解数据库设计原则。
3. 学会使用SQL语言进行数据的增、删、改、查等操作。
4. 掌握数据库的索引、视图和存储过程等高级功能。
5. 培养实际操作数据库的能力,提高解决实际问题的技能。
二、实验内容1. 数据库的创建与管理创建新数据库打开现有数据库数据库的备份与恢复2. 表的创建与管理表的创建表结构的修改表的删除表的数据插入、删除和修改3. SQL语言基础数据定义语句(CREATE、ALTER、DROP)数据查询语句(SELECT)数据操纵语句(INSERT、UPDATE、DELETE)数据控制语句(GRANT、REVOKE)4. 索引与约束索引的创建、修改和删除主键、外键的设置与维护唯一约束和检查约束的设置5. 视图与存储过程视图的创建、修改和删除存储过程的创建、修改和删除存储过程的调用三、实验环境1. 硬件环境:计算机实验室,每台计算机配备数据库管理系统软件。
2. 软件环境:数据库管理系统软件(如MySQL、Oracle、SQL Server 等),编程语言环境(如Python、Java等),文本编辑器或集成开发环境(如Visual Studio Code、Eclipse等)。
四、实验步骤1. 实验准备:安装并配置数据库管理系统软件,了解实验内容和要求。
2. 实验一:数据库的创建与管理创建一个名为“实验数据库”的新数据库。
打开已存在的数据库,进行备份和恢复操作。
3. 实验二:表的创建与管理创建一个名为“学生”的表,包括学号、姓名、年龄、性别等字段。
插入、删除和修改表中的数据。
4. 实验三:SQL语言基础使用SELECT语句查询学生表中的数据。
使用INSERT、UPDATE和DELETE语句操作学生表数据。
5. 实验四:索引与约束为学生表的学号字段创建索引。
设置主键、外键、唯一约束和检查约束。
数据库原理综合实验报告

实验六数据库原理综合实验1实验目的(1)运用所学的数据库设计技术,针对一个具体的应用系统,完成系统数据库的概念模型、逻辑模型和物理模型的设计。
以巩固理论课程上所学的知识,更好地掌握数据库设计技术方法。
(2)对前面章节所学的知识加以综合应用。
2实验内容给定一个应用环境,如学生选课系统、超市管理系统、某企业库存管理系统、学校图书管理系统、学校综合积分管理系统等等。
(同学们课从上述选定一个题目,也可以选取一个自己较熟悉的应用环境)。
完成下面的工作2.1 数据库概念模型设计(1)进行需求分析。
-对系统的语义进行描述(包括功能、所需的数据及他们之间的关系和处理方法)(2)识别系统中的实体及实体的属性,分析实体之间的联系。
(3)设计数据库概念模型,画出E-R图。
2.2 数据库逻辑模型设计(1)根据数据库概念模型设计数据库的逻辑模型。
-将E-R模型转化到逻辑模型(2)根据应用需要和规范化理论对逻辑模型进行优化。
2.3 数据库物理模型设计(1)针对某种DBMS,设计数据库物理模型,包括表空间、表和索引等于物理存储有关的设计。
(2)优化物理模型(3)生成某种DBMS的SQL语句,创建数据库及其表。
2.4 装载数据(1)收集真实数据或者生成模拟数据。
(2)批量加载数据到数据库中。
(3)设计一系列SQL语句,尤其是连接查询、嵌套查询等SQL语句,以测试数据库性能。
3实验要求(1)可以借助POWERDESIGNER等系统分析与设计辅助工具进行数据库设计,也可以使用WORD文件直接生成各种设计文档。
(2)选择的数据库应用系统应该规模适中,不宜太大太复杂,可能做不完;也不宜太小太简单,甚至仅有三两个表组成。
(3)要设计良好的数据库完整性约束。
(4)思考题:数据库设计通常由哪些辅助工具?各有哪些优缺点?4实验步骤4.1 数据库概念模型设计(1)进行需求分析。
学生需要有学号、姓名、性别、年龄、专业等信息。
选课需要有学号、课号、成绩等信息课程需要有课程号、课程名、先修课、学分等信息(2)设计数据库概念模型,画出E-R图。
数据库系统概论(王珊第五版)实验6答案

实验6答案1.查询名字中第2个字为‘向’的学生姓名和学号及选修的课程号、课程名;select a.sname,a.sno,o,ame from student a,course b,sc cWhere a.sname like'_向%' and a.sno=c.sno and o=o2.列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;Select a.sno,sname,sdept,o,grade from student a,course b,sc c Where ame in('数学','大学英语')and a.sno=c.sno and o=o3.查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;Select * from studentWhere sage<>(select sage from student where sname='张力')4.按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。
其中已修学分为考试已经及格的课程学分之和;Select a.sno,sname,sdept,sum(ccredit) as 已修学分from student a,course b,sc cWhere grade>60 and a.sno=c.sno and o=oGroup by a.sno,sname,sdept5.查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;Select a.sno,a.sname,o from student a,sc cWhere Cno in(select Cno from sc where sno in(select sno from student where sname='张力'))and a.sno=c.sno6.查询只被一名学生选修的课程的课程号、课程名;Select cno,cname from courseWhere cno in(select cno from sc group by cno having COUNT(*)=1)7.使用嵌套查询出选修了“数据结构”课程的学生学号和姓名;Select sno,sname from studentWhere sno in(select sno from sc where Cno=(select Cno from course where cname='数据结构'))8.使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;Select sname,sage,sdept from studentWhere sage<any(select sage from student where sdept='cs')And sdept<>'cs'9.使用ANY、ALL 查询,列出其他院系中比WM系所有学生年龄小的学生的姓名;Select sname from studentWhere sage<all(select sage from student where sdept='wm') And sdept<>'wm'10.分别使用连接查询和嵌套查询,列出与‘张力’在一个院系的学生的信息;Select b.*from student a,student bwhere a.sname='张力' and a.sdept=b.sdept或SELECT * FROM StudentWHERE Sdept IN(SELECT Sdept FROM Student WHERE sname='张力')11.使用集合查询列出CS系的学生以及性别为女的学生学号及姓名;SELECT sno,sname from studentWhere sdept='cs'unionselect sno,sname from studentwhere ssex='女'12.使用集合查询列出CS系的学生与年龄不大于19岁的学生的交集、差集;SELECT *FROM StudentWHERE Sdept='CS'EXCEPTSELECT *FROM StudentWHERE Sage<=19SELECT *FROM StudentWHERE Sdept='CS'INTERSECTSELECT *FROM StudentWHERE Sage<=19。
数据库系统实验

梁文娟目录实验1 用E-R图设计数据库 (3)实验2 熟悉SQL Server 2000环境 (4)实验3 创建数据库及表 (19)实验4 数据查询 (34)实验5 视图的定义和操作 (36)实验6 实现数据完整性 (38)实验7 实现数据库安全管理 (41)实验8 实现触发器 (45)实验9 数据库备份与恢复 (47)实验10 数据库设计综合应用 (48)实验1 用E-R图设计数据库实验目的与要求:1.掌握E-R模型的基本概念和图形的表示方法。
2.掌握将现实世界的事物转化成E-R图的基本技巧3.熟悉关系数据模型的基本概念。
4.掌握E-R图转化成关系表的基本方法实验环境:1.Windows 2000/XP2.SQL Server 2000实验内容:1.根据需求确定实体、属性和联系。
2.将实体、属性和联系转化为E-R图。
3.将E-R图转化为表。
实验步骤:1.设计能够表示学生、课程关系的数据库。
1)确定学生、课程实体的属性。
2)确定学生、课程实体的联系以及联系类型。
3)画出学生、课程关系的E-R图。
2.设计能够表示商品、顾客和商品生产厂家关系的数据库。
1)确定商品、顾客和商品生产厂家实体的属性。
2)确定商品、顾客和商品生产厂家的联系以及联系类型。
3)画出商品、顾客和商品生产厂家关系的E-R图。
讨论:E-R图和关系表之间的关系。
实验2 熟悉SQL Server 2000环境一、实验目的●掌握SQL Server 2000的安装●了解SQL Server 2000的组织结构和操作环境●熟悉SQL Server 2000的基本使用方法二、背景知识SQL Server 2000是Microsoft公司推出的高性能的客户端/服务器结构的关系数据库管理系统,它继承了SQL Server 7.0版本的高性能、可靠性、易用性和可扩充性的优点,同时又增加了一些新的特性,使其成为一种领先的数据库管理系统,可用于联机事务处理(OLTP)、数据仓库及电子商务等。
数据库原理及应用实验教案

数据库原理及应用实验教案第一章:数据库基础1.1 实验目的了解数据库的基本概念掌握数据库的基本操作1.2 实验环境安装有数据库管理系统(如MySQL、Oracle或SQL Server)的计算机数据库管理系统的客户端工具1.3 实验内容实验一:创建数据库和表学习使用数据库管理系统的命令行工具或图形界面工具创建数据库学习使用SQL语句创建表实验二:数据库的简单操作学习使用SQL语句进行数据的插入、查询、更新和删除操作第二章:数据库设计2.1 实验目的掌握数据库设计的基本步骤和方法学会使用实体-关系模型设计数据库2.2 实验环境安装有数据库管理系统(如MySQL、Oracle或SQL Server)的计算机数据库管理系统的客户端工具2.3 实验内容实验三:实体-关系模型设计学习实体-关系模型的基本概念和表示方法根据给定的需求设计实体-关系模型实验四:将实体-关系模型转换为数据库模式学习将实体-关系模型转换为数据库模式的方法将设计的实体-关系模型转换为数据库模式第三章:SQL语言3.1 实验目的掌握SQL语言的基本操作学会使用SQL语言进行数据库的创建、查询和更新操作3.2 实验环境安装有数据库管理系统(如MySQL、Oracle或SQL Server)的计算机数据库管理系统的客户端工具3.3 实验内容实验五:SQL语言的基本操作学习使用SQL语言创建数据库、表、视图和索引学习使用SQL语言进行数据的插入、查询、更新和删除操作第四章:数据库的安全与保护4.1 实验目的了解数据库的安全与保护的基本概念和方法学会使用数据库管理系统的权限管理和备份恢复功能4.2 实验环境安装有数据库管理系统(如MySQL、Oracle或SQL Server)的计算机数据库管理系统的客户端工具4.3 实验内容实验六:数据库的权限管理学习使用数据库管理系统的权限管理功能,创建用户和角色,分配权限实验七:数据库的备份与恢复学习使用数据库管理系统的备份与恢复功能,进行数据库的备份和恢复操作第五章:数据库应用系统设计与实现5.1 实验目的掌握数据库应用系统的设计与实现的基本步骤和方法学会使用数据库管理系统进行应用程序的开发5.2 实验环境安装有数据库管理系统(如MySQL、Oracle或SQL Server)的计算机数据库管理系统的客户端工具编程语言环境和开发工具(如Java、Python或C等)5.3 实验内容实验八:数据库应用系统的设计与实现学习使用数据库管理系统进行应用程序的连接、查询和更新操作实验九:实现简单的数据库应用功能使用编程语言环境和开发工具,实现用户登录、数据查询和数据增删改等功能实验十:测试与优化数据库应用系统对实现的数据库应用系统进行测试和优化,确保系统的稳定性和性能第六章:数据库性能优化6.1 实验目的学习数据库性能优化的基本策略和方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告学院:计信学院专业:网络工程班级:091 姓名学号实验组实验时间2012-6-1 指导教师成绩实验项目名称实验六:数据库系统设计实验目的要求掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方法,并加深对数据库系统概念和特点的理解。
实验要求本实验属于设计型实验,通过实验,加强对课堂讲授知识的理解。
实验原理必须按照数据库设计的四个阶段进行:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。
概念模型设计时采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上地设计概念结构,和自底向上的设计方法;概念模型必须用E-R图进行表示。
在逻辑设计阶段,将E-R图转换成关系模式,然后进行关系模式的规范化。
在物理设计阶段,将关系模式转化成SQL Server中的具体的数据库表,并建立表间的关系,表的索引,及相关的约束。
实验仪器(1)硬件条件:个人计算机。
(2)软件条件:Windows 2000NT Server; MS SQL Server 2000。
实验步骤1、完成系统需求分析报告在系统需求分析报告中包括采用的设计方法、数据流图和数据字典。
2、完成数据库信息要求和关系数据模型设计使用E-R图表示对数据库中要存储的信息及语义进行详细描述,对数据约束和数据之间的关联进行详细描述。
详细描述系统需要的基本表及属性、视图和索引,对基本表的主码、候选码、外码及被参照表进行说明,对基本表中数据的约束条件进行说明。
3、完成数据库的操作和应用要求报告在数据库的操作和应用要求报告中,详细描述数据库的数据操作要求、处理方法和处理流程,画出系统功能模块图。
4、在机器上完成整个数据库的设计。
实验内容要求根据周围的实际情况,自选一个自己熟悉的小型数据库应用项目,并深入到应用项目的现实世界中,进行系统分析和数据库设计。
例如选择学籍管理系统、图书管理系统、材料管理系统或仓库管理系统等。
实验数据我设计的是车站售票管理系统,主要用于车站日常的票务处理。
一、需求分析车站售票管理系统员工管理模块汽车管理模块线路管理模块车票管理模块票务信息管理模块员工信息添加员工信息删除员工信息修改汽车信息添加汽车信息修改汽车信息删除线路信息添加线路信息修改线路信息删除添加车票删除车票查询车票信息购买/预订车票员工信息查询汽车信息查询线路信息查询车票信息查询功能模块图1.员工管理模块:员工有两种身份,售票员和系统管理员。
系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等。
2.线路信息管理模块:系统管理员可以在线路信息管理模块对车站线路信息进行管理。
管理员首先建立线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作。
管理员也可以通过本模块查询到所有需要查询的线路的详细信息。
3.汽车信息管理模块:系统管理员可以在汽车信息管理模块实现对汽车信息的管理。
管理员首先应该建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以完成相应的操作。
管理员也可以在整个数据库中查询相关汽车信息。
4.车票信息管理模块:系统管理员可以在车票管理模块实现对车票信息的管理。
管理员根据相应的汽车信息和线路信息来设置相应的车票详细信息。
管理员还可以对某条线路的车票信息进行修改,删除和查询操作。
5.车票订购信息模块用户可以通过查询时间,线路和汽车信息,来确定自己要买什么时间,什么路线,什么型号的汽车的车票,并形成表单。
程序分为登陆界面,主界面,线路信息管理界面,汽车信息管理界面,车票信息管理界面,票务信息管理界面,员工管理界面这几个主体界面。
使用时应先知道管理员或员工帐号和密码,登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,票务信息,帮助,退出程序菜单选项。
二、系统设计(一)数据流图:车站售票管理系统售票员购票信息售票信息系统管理员汽车,线路等信息汽车,路线等信息顶层数据流图查询处理买票购票信息可供票车票车票记录售票记录信息处理车票信息汽车记录线路记录读入信息处理汽车信息站点记录站点信息1层车票数据流图系统管理员售票员售票出售票查询查询打印售票报表报表打印已售车票查看已售车票情况查看发车时刻表显示发车时刻发车修改修改线路表汽车表员工表线路变更汽车变更人员变更增,删,改增,删,改增,删,改决定决定决定信息处理站点修改增,删,改站点表提取站点(二)数据字典:编号数据项名数据项含义说明数据类型长度与其他数据项的关系是否可以为空1 Uno用户编号整型4User表主键不2 UserName姓名nvarchar 20不3 Password密码nvarchar 20 不4 UserIdentiey身份nvarchar 20 不5 Cno 汽车编号整型 4 Coach表主键不6 Coachnumber 车牌号nvarchar 20 不7 Ctype 汽车型号nvarchar 208 Ctime购买时间datetime 89 Cnum座位数量整型 4 不10 Ctv有无电视char 1011 Ccondition有无空调char 1012 Coachholder 负责人nvarchar 20 不13 Lno线路编号整型 4 Line表主键不14 Ldepart起始城市nvarchar 20 不15 Larrival到达城市nvarchar 20 不16 Ltime 路程时间datetime 817 Tno 车票编号整型 4 Ticket表主键不18 Price 车票价格整型 4 不19 SoldTicket 已卖票数整型 4 不20 LastTicket 剩余票数整型 4 不21 Tdate 出发日期datetime 8 不22 Ttime 出发时间datetime 8 不23 Ptime 购买时间datetime 824 Seat 座位号整型 4 不25 ReserveORBuy 预定或购买char 10 不26 Cityno 站点编号整型 4 City表主键不27 CityName 站点名称nvarchar 20 不2.数据结构编号数据结构名属性1 员工员工编号,姓名,密码,身份2 汽车汽车编号,汽车型号,车牌号,购买时间,座位数量,有无电视,有无空调,负责人3 线路线路编号,起始城市,到达城市,路程时间4 车票车票编号,线路编号,汽车编号,车票价格,已卖票数,剩余票数,出发日期,出发时间5 购票车票编号,购买日期,预定或购买,座位号6 站点站点编号,站点名称编号数据流名输入输出1 变更汽车信息变更信息汽车记录汽车记录2 查询汽车信息汽车编号/汽车型号/车牌号/有无电视/有无空调/负责人3 变更站点信息变更信息站点记录4 变更线路信息变更信息线路记录5 查询线路信息线路编号/起始城市,到达城市线路记录6 变更车票信息变更信息车票记录车票记录7 查询车票信息车票编号/起始城市,到达城市/汽车型号/出发日期,出发时间8 预定车票车票编号,购买日期,预定或购买预订记录9 购买车票车票编号,购买日期,预定或购买购买记录10 查询购买情况车票编号/起始城市,到达城市/汽车型号购买记录11 更改用户变更信息用户记录12 员工信息用户输入电脑的用户名、密码系统主菜单4.数据存储数据存储名输入数据流输出数据流说明部分用户信息变更用户信息查询用户信息汽车信息变更汽车信息查询汽车信息线路信息变更线路信息查询线路信息车票信息变更车票信息查询车票信息预定车票信息车票信息预订记录购买车票信息车票信息购买记录5.处理过程处理过程名输入数据流输出数据流处理操作查询已知汽车/线路/车票信息所需信息购买/预定车票信息+购票时间+座位号无更新变更信息再次查询信息用户权限认证用户名,密码,身份系统主菜单用户登录(三)E-R图售票员汽车线路购买员工编号姓名密码身份汽车编号汽车型号购买时间座位数量有无电视有无空调线路编号起始城市到达城市路程时间车票编号车票价格剩余票数购买日期车牌号负责人已卖票数出发时间预定或购买座位号站点站点编号站点名称系统管理员管理管理车票管理包含包含员工编号姓名密码身份出发日期mnnm1p1mm npm(四)关系模型:1,User员工表(员工编号Uno,姓名UserName,密码Password,身份UserIdentiey)2,Coach汽车信息表(汽车编号Cno,汽车型号Ctype,车牌号Coachnumber,购买时间Ctime,座位数量Cnum,有无电视Ctv,有无空调Ccondition,负责人Coachholder)3,Line线路信息表(线路编号Lno,起始城市Ldepart,到达城市Larrival,路程时间Ltime)4,Ticket车票信息表(车票编号Tno,线路编号Lno,汽车编号Cno,车票价格Price,已卖票数SoldTicket,剩余票数LastTicket,出发日期Tdate,出发时间Ttime)5,Purchase车票购买表(车票编号Tno,购买日期Ptime,预定或购买ReserveORBuy,座位号Seat)6,City站点表(站点编号Cityno,站点名称CityName)三、系统实现(一)数据库设计:1.City站点表:erinfo员工表:3.Ticket车票信息表:4.Coach汽车信息表:5.Purchase车票购买表:6.Line线路表:(二)代码登录操作代码:(1)SqlHelper helper = new SqlHelper();SqlDataReader rdr;(2)if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(identity)) {MessageBox.Show("姓名,密码,身份框均不能为空!");}rdr = helper.ExecuteReader("dbo.SelectUserinfo", CommandType.StoredProcedure);while (rdr.Read()){if (rdr["UserName"].ToString() == name && rdr["Password"].ToString() == password && rdr["UserIdentity"].ToString() == identity){this.Hide();string iden = rdr["UserIdentity"].ToString();MainForm main = new MainForm(iden);main.ShowDialog();rdr.Close();return;}}MessageBox.Show("错误的姓名或密码或与身份不匹配,请重新输入!");rdr.Close();(3)存储过程:ALTER PROCEDURE dbo.SelectUserinfo/*(@parameter1 int = 5,@parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINselect * from UserinfoEND修改/删除操作代码:(1)try{SqlCommandBuilder scb = new SqlCommandBuilder(sd);sd.Update(ds, "a");ds.AcceptChanges();MessageBox.Show("修改成功!");}catch (Exception ex){MessageBox.Show(ex.Message.ToString());}(2)try{SqlCommandBuilder scb = new SqlCommandBuilder(sd);int a = dataGridView1.CurrentRow.Index;ds.Tables[0].Rows[a].Delete();sd.Update(ds, "a");ds.AcceptChanges();MessageBox.Show("删除成功!");}catch (Exception ex){MessageBox.Show(ex.Message.ToString());}添加操作代码:(1)DAL.CoachDAO coach = new Coach.DAL.CoachDAO();SqlHelper helper = new SqlHelper();(2) if (string.IsNullOrEmpty(coachnumber) || string.IsNullOrEmpty(seatnumber1) ||string.IsNullOrEmpty(coachholder)){ MessageBox.Show("车牌号,座位数量,负责人均不能为空!");}else{if (coach.Add(coachtype,coachnumber,date2,seatnumber,ishavetv,ishavecon,coachholder)) MessageBox.Show("添加成功!");elseMessageBox.Show("添加失败!");}(3)实体类CoachDAO.cs中:public bool Add(string coachtype,string coachnumber,DateTime date2, int seatnumber,string ishavetv,string ishavecon,string coachholder){bool flag = false;DataTable dt = new DataTable();string cmdText = "dbo.AddCoach";SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@coachtype",coachtype),new SqlParameter("@coachnumber",coachnumber),new SqlParameter("@date2",date2),new SqlParameter("@seatnumber",seatnumber),new SqlParameter("@ishavetv",ishavetv),new SqlParameter("@ishavecon",ishavecon),new SqlParameter("@coachholder",coachholder)};int res = helper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure);if (res > 0){flag = true;}return flag;}(4)存储过程:ALTER PROCEDURE dbo.AddCoach@coachtype nvarchar(20),@coachnumber nvarchar(20),@date2 datetime,@seatnumber int,@ishavetv char(10),@ishavecon char(10),@coachholder nvarchar(20)/*(@parameter1 int = 5,@parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINinsert into Coach (Ctype,Coachnumber,Ctime,Cnum,Ctv,Ccondition,Coachholder) values(@coachtype,@coachnumber,@date2,@seatnumber,@ishavetv,@ishavecon,@coachholder) END搜索操作代码:(1)SqlHelper helper = new SqlHelper();SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=Coach;Integrated Security=True");SqlDataAdapter sd; //定义一个数据适配器DataSet ds; //定义一个数据集(2)string str1 = "select Lno as 编号,Ldepart as 起始城市,Larrival as 到达城市,convert(varchar(10),Ltime,108) as 路程时间from Line where Lno =" + lineid + "";dataBind(str1);(3)private void dataBind(string str){try{sd = new SqlDataAdapter(str, conn);ds = new DataSet();sd.Fill(ds, "a");dataGridView1.DataSource = ds;dataGridView1.DataMember = "a";}catch (Exception ex){MessageBox.Show(ex.Message);}}查询操作代码:(1)DAL.PurchaseDAO purchase = new Coach.DAL.PurchaseDAO();SqlHelper helper = new SqlHelper();(2)dataGridView1.DataSource = purchase.Select1(departcity,arrivalcity,date2);(3)实体类PurchaseDAO.cs中:public DataTable Select1(string departcity, string arrivalcity, DateTime date2){DataTable dt = new DataTable();string cmdText = "dbo.SelectPurchase";SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@departcity",departcity),new SqlParameter("@arrivalcity",arrivalcity),new SqlParameter("@date2",date2)};dt = helper.ExecuteQuery(cmdText, paras, CommandType.StoredProcedure);return dt;}(4)存储过程ALTER PROCEDURE dbo.SelectPurchase@departcity nvarchar(20),@arrivalc ity nvarchar(20),@date2 datetime/*(@parameter1 int = 5,@parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINselect Ldepart as 起始城市,Larrival as 到达城市,convert(varchar(10),Tdate,120) as 出发日期,convert(varchar(10),Ttime,108) as 出发时间,Ctype as 车型,Coachnumber as 车牌号,Ctv as 有无电视,Ccondition as 有无空调,Price as 票价,Cnum as 总票数,LastTicket as 剩余票数from Coach,Line,Ticket where o = o and Line.Lno = Ticket.Lno and Ldepart = @departcity and Larrival =@arrivalc ity and Tdate = @date2END预订/购买操作代码:(1)tno = purchase.Y uding(depart, arrival, coachnum);(2)实体类PurchaseDAO.cs中public int Y uding(string depart, string arrival, string coachnum){int tno;DataTable dt = new DataTable();string cmdText = "dbo.SelectTno";SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@depart",depart),new SqlParameter("@arrival",arrival),new SqlParameter("@coachnum",coachnum)};dt = helper.ExecuteQuery(cmdText, paras, CommandType.StoredProcedure);tno = Convert.ToInt32(dt.Rows[0]["Tno"]);return tno;}(3)if (purchase.UpdateTicket(tno) && purchase.AddG(tno, datetime2, seat))MessageBox.Show("购买成功!您购买的票为:\n" + depart + "---" + arrival + "\n" + "出发时间:" + date + "_" + time + "\n" + "车牌号:" + coachnum + "\n" + "座位号:" + seat);elseMessageBox.Show("购买失败!");(4)public bool UpdateTicket(int tno){bool flag = false;string cmdText = "dbo.UpdateTicket";SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@tno",tno)};int res = helper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure);if (res > 0){flag = true;}return flag;}(5)public bool AddG(int tno, DateTime datetime2, string seat){bool flag = false;string cmdText = "dbo.AddPurchaseYG";SqlParameter[] paras = new SqlParameter[]{new SqlParameter("@tno",tno),new SqlParameter("@datetime2",datetime2),new SqlParameter("@seat",seat)};int res = helper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure);if (res > 0){flag = true;}return flag;}(6)存储过程ALTER PROCEDURE dbo.UpdateTicket@tno int/*(@parameter1 int = 5,@parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINupdate Ticket set SoldTicket = SoldTicket+1,LastTicket = LastTicket-1 where Tno = @tno END(7)ALTER PROCEDURE dbo.AddPurchase@tno int,@datetime1 datetime,@seat nvarchar(20)/*(@parameter1 int = 5,@parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINinsert into Purchase(Tno,Ptime,ReserveORBuy,Seat) values (@tno,@datetime1,'预订',@seat) END数据库连接类代码:///<summary>/// SqlCE数据库保持连接类///</summary>public class SqlHelper{public SqlConnection sqlconn = null;private SqlCommand cmd = null;private SqlDataReader sdr = null;///<summary>///构造函数///</summary>public SqlHelper(){string connStr = "Data Source=(local);Initial Catalog=Coach;Integrated Security=True";sqlconn = new SqlConnection(connStr);}private SqlConnection GetConn(){if (sqlconn.State == ConnectionState.Closed){sqlconn.Open();}return sqlconn;}///<summary>///构造函数///</summary>///<param name="fSqlceConnString">数据库连接字符串</param>public SqlHelper(String fSqlceConnString){string connStr = "Data Source=(local);Initial Catalog=Coach;Integrated Security=True";sqlconn = new SqlConnection(connStr);this.sqlconn = new SqlConnection(fSqlceConnString);if (sqlconn.State == ConnectionState.Closed){sqlconn.Open();}}///<summary>///执行不返回结果的SQL语句。