数据库课程设计实验报告
数据库课程设计实训报告

一、前言随着信息技术的飞速发展,数据库技术已成为现代信息技术的重要组成部分。
为了让学生更好地掌握数据库的基本原理和应用,提高数据库设计与开发能力,本课程设计实训旨在通过实际操作,让学生熟悉数据库的设计与实现过程,培养学生的实践能力和团队协作精神。
二、实训背景随着我国医疗行业的快速发展,医院对信息管理系统的需求日益增长。
为了提高医院管理效率和服务质量,本实训项目以医院病房计算机管理系统为背景,设计并实现一个基于数据库技术的管理系统。
三、实训目标1. 熟悉数据库的基本原理和设计方法;2. 掌握数据库设计工具的使用,如E-R图、关系模型等;3. 学会使用SQL语言进行数据库操作;4. 具备数据库应用系统的开发能力;5. 提高团队协作和沟通能力。
四、实训内容1. 需求分析通过对医院病房管理工作的调研,分析出以下需求:(1)科室信息管理:包括科室名称、科室主任、科室电话等;(2)病房信息管理:包括病房号、病房类型、床位数等;(3)医生信息管理:包括医生姓名、职称、联系电话等;(4)病人信息管理:包括病人姓名、性别、年龄、入院时间、出院时间等;(5)医疗费用管理:包括药品费用、检查费用、治疗费用等。
2. 概念结构设计根据需求分析,设计以下实体集及其属性:(1)科室(科室ID,科室名称,科室主任,科室电话)(2)病房(病房号,病房类型,床位数)(3)医生(医生ID,姓名,职称,科室ID,联系电话)(4)病人(病人ID,姓名,性别,年龄,入院时间,出院时间,病房号)(5)药品(药品ID,药品名称,规格,价格)(6)检查(检查ID,检查名称,价格)(7)治疗(治疗ID,治疗名称,价格)实体间关系如下:(1)科室与医生之间存在一对多关系;(2)病房与病人之间存在一对多关系;(3)药品、检查、治疗与病人之间存在多对多关系。
3. 逻辑结构设计将概念结构设计中的实体集转化为关系模型,并定义以下关系模式:(1)科室(科室ID,科室名称,科室主任,科室电话)(2)病房(病房号,病房类型,床位数)(3)医生(医生ID,姓名,职称,科室ID,联系电话)(4)病人(病人ID,姓名,性别,年龄,入院时间,出院时间,病房号)(5)药品(药品ID,药品名称,规格,价格)(6)检查(检查ID,检查名称,价格)(7)治疗(治疗ID,治疗名称,价格)(8)病人_药品(病人ID,药品ID)(9)病人_检查(病人ID,检查ID)(10)病人_治疗(病人ID,治疗ID)4. 物理结构设计根据逻辑结构设计,设计以下表格及其字段:(1)科室表:科室ID,科室名称,科室主任,科室电话(2)病房表:病房号,病房类型,床位数(3)医生表:医生ID,姓名,职称,科室ID,联系电话(4)病人表:病人ID,姓名,性别,年龄,入院时间,出院时间,病房号(5)药品表:药品ID,药品名称,规格,价格(6)检查表:检查ID,检查名称,价格(7)治疗表:治疗ID,治疗名称,价格(8)病人_药品表:病人ID,药品ID(9)病人_检查表:病人ID,检查ID(10)病人_治疗表:病人ID,治疗ID5. 数据库实施使用SQL语言创建以上表格,并插入一些示例数据。
数据库实验报告(通用3篇)

数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。
2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。
3,并且这次实习可以非常好的关心我完成将来的毕业论文。
四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。
然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。
同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。
使我们队公司有了更进一步的了解实习,就是在实践中学习。
经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。
当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。
还有发布了一些关于公司产品的博客,比如新浪,网易。
而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。
经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。
数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。
实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。
虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。
数据库实验报告

数据库实验报告一、实验目的本次数据库实验的主要目的是通过实际操作和实践,深入了解数据库的基本概念、原理和技术,掌握数据库的设计、创建、管理和数据操作的方法,提高对数据库系统的应用能力和问题解决能力。
二、实验环境本次实验使用的数据库管理系统是 MySQL,操作系统为 Windows 10。
实验中使用的开发工具包括 MySQL Workbench 和命令行终端。
三、实验内容与步骤(一)数据库设计1、需求分析根据给定的业务场景,确定数据库需要存储的信息和数据之间的关系。
例如,对于一个学生管理系统,需要存储学生的基本信息、课程信息、成绩信息等,并且明确这些信息之间的关联,如学生与课程的选课关系、课程与成绩的对应关系等。
2、概念模型设计使用 ER 图(实体关系图)来描述数据库的概念模型。
确定实体(如学生、课程)、属性(如学生的学号、姓名,课程的课程号、课程名)以及实体之间的关系(如多对多、一对多等)。
3、逻辑模型设计将概念模型转换为关系模型,确定数据表的结构,包括表名、字段名、数据类型、主键、外键等。
例如,学生表(学号、姓名、性别、出生日期),课程表(课程号、课程名、学分),选课表(学号、课程号、成绩)等。
(二)数据库创建1、使用 MySQL Workbench 或命令行创建数据库。
2、创建数据表,按照设计好的逻辑模型定义表结构。
(三)数据插入与操作1、使用 INSERT 语句向数据表中插入数据,以模拟实际的业务数据。
2、进行数据的查询操作,使用 SELECT 语句查询满足特定条件的数据。
3、进行数据的更新和删除操作,使用 UPDATE 和 DELETE 语句修改或删除数据。
(四)数据库索引与优化1、了解索引的概念和作用,为经常用于查询、连接和排序的字段创建索引。
2、分析查询语句的执行计划,通过优化查询语句、调整数据表结构等方式提高数据库的性能。
(五)数据库备份与恢复1、学习数据库备份的方法,使用 mysqldump 工具或 MySQL Workbench 进行数据库的备份。
《数据库实验》实验报告

《数据库实验》实验报告一、实验目的本实验旨在通过设计与实现一个简单的学生信息管理系统,来加深对数据库基本概念和SQL语言的理解,并掌握数据库的创建、表的设计、数据的增删改查等基本操作。
二、实验环境本次实验的开发环境为以下软件与工具:1. 数据库管理系统:MySQL2. 编程语言:Java3. 开发工具:Eclipse IDE4. Web服务器:Apache Tomcat三、实验内容及步骤1. 数据库的创建与连接首先,在MySQL中创建一个名为"student_system"的数据库,并通过JDBC连接该数据库。
在Java代码中,使用JDBC的API进行数据库连接操作,包括加载驱动、建立连接等步骤。
2. 数据表的设计与创建在student_system数据库中创建一个名为"student"的数据表,该表用于存储学生的基本信息。
表中应包含学号(id)、姓名(name)、性别(gender)和专业(major)等字段,并设置合适的数据类型和约束。
3. 数据的插入与修改通过SQL语句,在student表中插入若干条学生信息,包括学号、姓名、性别和专业。
同时,通过SQL的UPDATE语句,修改某些学生的信息。
4. 数据的查询编写SQL语句,实现对学生信息的查询。
可以根据学号或姓名等关键字进行查询,并返回符合条件的学生信息。
5. 数据的删除根据指定的学号或姓名,编写SQL语句实现对学生信息的删除操作。
删除后,该学生的信息将不再存在于数据库中。
四、实验结果经过以上实验步骤的设计与实现,在学生信息管理系统中,成功地创建了student表,并成功插入了若干学生信息。
通过SQL语句的查询和修改操作,可以准确地获取和修改学生的信息。
此外,删除操作也能够成功地从数据库中删除指定学生的信息。
五、实验总结通过本次实验,我进一步掌握了数据库的基本操作与SQL语言的应用。
在实验过程中,我理解到数据库的设计与搭建是一个关键步骤,合理的表结构和约束条件对于数据的管理和有效性有着重要的影响。
数据库系统实验课实验报告

数据库系统实验课实验报告一、实验目的数据库系统实验课是一门重要的实践课程,旨在通过实际操作和实验,深入理解数据库系统的原理和应用,提高我们的数据库设计、管理和应用开发能力。
本次实验的具体目的包括: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. 能够运用E-R图进行数据库概念结构设计。
4. 能够运用SQL语句进行数据库逻辑结构和物理结构设计。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实验内容1. 数据库概念结构设计2. 数据库逻辑结构设计3. 数据库物理结构设计四、实验步骤1. 数据库概念结构设计(1)分析需求,确定实体和属性以“图书管理系统”为例,确定实体和属性如下:实体:图书、读者、借阅信息属性:- 图书:书名、作者、出版社、ISBN、出版日期、分类号、库存数量- 读者:读者编号、姓名、性别、出生日期、联系电话、邮箱、住址- 借阅信息:借阅编号、图书编号、读者编号、借阅日期、归还日期、状态(2)绘制E-R图根据实体和属性,绘制E-R图如下:```图书(书名,作者,出版社,ISBN,出版日期,分类号,库存数量)读者(读者编号,姓名,性别,出生日期,联系电话,邮箱,住址)借阅信息(借阅编号,图书编号,读者编号,借阅日期,归还日期,状态) ```2. 数据库逻辑结构设计(1)确定关系模式根据E-R图,确定关系模式如下:- 图书(书名,作者,出版社,ISBN,出版日期,分类号,库存数量)- 读者(读者编号,姓名,性别,出生日期,联系电话,邮箱,住址)- 借阅信息(借阅编号,图书编号,读者编号,借阅日期,归还日期,状态)(2)编写SQL语句创建表```sqlCREATE TABLE 图书 (书名 VARCHAR(100),作者 VARCHAR(50),出版社 VARCHAR(50),ISBN VARCHAR(20),出版日期 DATE,分类号 VARCHAR(10),库存数量 INT);CREATE TABLE 读者 (读者编号 VARCHAR(10),姓名 VARCHAR(50),性别 CHAR(1),出生日期 DATE,联系电话 VARCHAR(20),邮箱 VARCHAR(50),住址 VARCHAR(100));CREATE TABLE 借阅信息 (借阅编号 VARCHAR(10),图书编号 VARCHAR(10),读者编号 VARCHAR(10),借阅日期 DATE,归还日期 DATE,状态 VARCHAR(10));```3. 数据库物理结构设计(1)确定索引根据需求,确定索引如下:- 图书表:ISBN、分类号- 读者表:读者编号- 借阅信息表:借阅编号、图书编号、读者编号(2)编写SQL语句创建索引```sqlCREATE INDEX idx_isbn ON 图书(ISBN);CREATE INDEX idx_分类号 ON 图书(分类号);CREATE INDEX idx_读者编号 ON 读者(读者编号);CREATE INDEX idx_借阅编号 ON 借阅信息(借阅编号);CREATE INDEX idx_图书编号 ON 借阅信息(图书编号);CREATE INDEX idx_读者编号 ON 借阅信息(读者编号);```五、实验结果与分析1. 通过实验,掌握了数据库设计的概念、过程和步骤。
(完整版)数据库实验报告

数据库实验报告姓名学号目录一.实验标题:2二.实验目的:2三.实验内容:2四.上机软件:3五.实验步骤:3(一)SQL Server 2016简介3(二)创建数据库 4(三)创建数据库表 7(四)添加数据17六.分析与讨论: 19一.实验标题:创建数据库和数据表二.实验目的:1.理解数据库、数据表、约束等相关概念;2.掌握创建数据库的T-SQL命令;3.掌握创建和修改数据表的T-SQL命令;4.掌握创建数据表中约束的T-SQL命令和方法;5.掌握向数据表中添加数据的T-SQL命令和方法三.实验内容:1.打开“我的电脑”或“资源管理器”,在磁盘空间以自己的姓名或学号建立文件夹;2.在SQL Server Management Studio中,使用create database命令建立“学生-选课”数据库,数据库文件存储在步骤1建立的文件夹下,数据库文件名称自由定义;3.在建立的“学生-选课”数据库中建立学生、课程和选课三张表,其结构及约束条件如表所示,要求为属性选择合适的数据长度;4.添加具体数据;四.上机软件:SQL Server 2016五.实验步骤:(一)SQL Server 2016简介1.SQL Server 2016的界面2.启动和退出SQL Server 20161)双击图标,即出现SQL Server2016的初始界2)选择“文件”菜单中的“退出”命令,或单击控制按钮中的“×”即可注意事项:1.在退出SQL Server 2016之前,应先将已经打开的数据库进行保存,2.如果没有执行保存命令,系统会自动出现保存提示框,根据需要选择相应的操作(二)创建数据库方法一:1.点击“新建查询”,出现如下对话框2.在空白区域输入创建数据库“学生选课”的代码命令,点击“执行”3.消息框中出现“命令已成功完成”即表示数据库创建成功,在“对象资源管理器”中,右击“数据库”,打开快捷菜单,选择“刷新”命令,在“数据库”向下会出现新创建的数据库“学生选课”方法二:1.右击数据库,在弹出的快捷菜单中选择“新建”2.在弹出的对话框中输入“学生选课”3. 在“对象资源管理器”中,右击“数据库”,打开快捷菜单,选择“刷新”命令,在“数据库”向下会出现新创建的数据库“学生选课”注意事项:数据库名称在服务器中必须唯一,并且符合标识符的规则(三)创建数据库表1.左键点击“学生选课”数据库,再点击“新建查询”,在出现的空白对话框中输入如图代码后点击“执行”,消息框中出现“命令已成功执行”即成功建立好学生、课程、选课三张表2.建立成功后的表格如图所示注意事项:1.T-SQL中创建数据库表的指令格式为:Create table 表名(字段名1 数据类型{identify | not null | null},字段名2 数据类型{identify | not null | null},……)null表示该字段的值可以为控制,空值意味着没有任何存储数据,这是默认参数,当所定义的字段允许空值时,参数null可以忽略not null表示该字段的值不能为空值identify称为计数器,表示该字段的值是一组递增的证书数据。
数据库设计 实验报告

数据库设计实验报告数据库设计实验报告一、引言数据库设计是计算机科学中至关重要的一环,它涉及到数据的组织、存储和管理。
本实验报告旨在介绍数据库设计的基本原理和实践经验,以及本次实验的设计过程和结果。
二、数据库设计原理1. 数据库设计的目标数据库设计的主要目标是满足用户需求,提供高效、可靠、安全的数据存储和访问方式。
设计师需要深入了解用户的需求,并根据需求制定合理的设计方案。
2. 数据库设计过程数据库设计通常包括需求分析、概念设计、逻辑设计和物理设计四个阶段。
需求分析阶段需要明确用户需求和系统功能,概念设计阶段将需求转化为概念模型,逻辑设计阶段将概念模型转化为逻辑模型,物理设计阶段将逻辑模型映射到具体的数据库管理系统。
3. 实体关系模型实体关系模型是数据库设计中常用的概念模型,它通过实体、属性和关系描述现实世界的数据结构。
实体表示现实世界中的对象,属性表示实体的特性,关系表示实体之间的联系。
4. 范式理论范式理论是数据库设计中的重要概念,它描述了数据的结构和依赖关系。
常用的范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。
设计师需要根据需求和数据特点选择合适的范式,并遵循范式理论进行设计。
三、实验设计过程本次实验的数据库设计目标是创建一个图书管理系统。
根据需求分析,我们确定了以下实体和关系:1. 实体:- 书籍(书名、作者、出版社、出版日期、价格等属性)- 读者(姓名、年龄、性别、联系方式等属性)- 图书馆(名称、地址、管理员等属性)2. 关系:- 借阅关系(读者ID、书籍ID、借阅日期、归还日期等属性)根据实体关系模型和范式理论,我们进行了如下设计过程:1. 概念设计:根据需求分析,我们创建了实体-属性关系图,明确了实体和属性之间的关系。
2. 逻辑设计:根据概念设计的结果,我们将实体关系图转化为关系模式,并进行了范式分析。
通过分析,我们确定了每个关系模式的主键和外键,并消除了冗余和不合理的依赖关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理及应用》课程设计报告题目:计算机学院选课管理系统学号:10903060137 姓名朱子奇2011年6月数据库课程设计实验报告系统名称:计算机学院选课管理系统课程名称:数据库课程设计课程设计时间:为期五天(2011.6.20-2011.6.24)课程设计内容:一开发背景1.1 背景1.2 目的二功能描述2.1 系统目的与要求2.2 系统可行性分析三业务流程分析四数据流程分析4.1 数据流程图4.2 数据字典4.3 E-R图五概念模型设计六物理模型设计与优化七课程设计心得体会八参考文献一开发背景1.1 背景:大学的课程按大类来说一般分为必修课和选修课。
必修一般指学校或院系规定学生必须修习某课程,学校对必修课程一般有统一的要求和安排。
选修是指根据学生个人兴趣或专业需要自由选择修习某课程。
简言之,必修就是必须修读,选修就是选择性修读。
一般来说,基础性的知识都作为必修课程。
有些知识不是基础性的,与兴趣和研究方向有关,这部分知识可以选择。
这是大学与中学最大的不同之处。
90年代中期,由于Internet 的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代高校管理信息系统提供了充足的条件,用计算机数据库系统的形式来管理选课成为了既方便又快捷的一种方式。
因此开发选课管理系统是十分有前景的工作。
1.2 目的:利用计算机支持学校高效率完成选课操作,是适应现代管理要求、推动企业劳动型治理走向科学化、规范化的必要条件;而选课管理是一项琐碎、复杂而又十分细致的工作,学生的基本资料,所开设的课程条目,选课资料的保存,选课条件的约束,一般不允许出错,假如实行手工操作,须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,而计算机选课操作,不仅能够保证各项信息准确无误、快速输出,同时计算机具有手工治理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学校管理的效率,也是学校的科学化、正规化管理,与时代接轨的重要条件。
开发本系统就是为了解决高校在选课操作管理中的一些不规范,使选课信息的治理向着规范化、简单化、有效化的方向发展。
二功能描述2.1 系统目标与要求:建立一个选修课管理系统,统一管理学生、课程以及选课信息,以便快速地提供选课操作。
该系统应具有以下功能目标:1 学生进行选课操作。
已经登记在系统数据库中的学生,可以进行课程信息的查看。
一旦学生找到所欲的课程,就可以提出选课申请。
系统会审核并记录学生的选课信息。
对于每位学生的每次选课操作,系统会生成一条选课信息并将其写入选课信息库中。
2 学生进行选课信息查询操作。
完成选课的学生,可以进行选课信息的查询和确认。
每位学生都可以在任何时间查询选课信息,以进行学生选课后遗忘了所选的课程是什么时的补救。
3 学生对不满意的选课进行更改操作。
当学生对所选课程不满意时,可以向系统提供选课更改的请求。
系统根据学生的请求,允许学生进行选课的更改操作。
2.2 系统可行性分析:系统现阶段的发展过程中,利用现有人力和物力是完全具备能力开发出来的,作为阶段性产品,日后的发展空间大,实现方法简单容易。
本系统开发采用PowerDesigner和SQL SERVER相结合的方法来实现。
要求所有数据信息的储存都由数据库来完成,而这些数据的建模则由PowerDesigner完成。
系统采用数据库进行信息管理模式,与手工管理相比,既能够降低对人工劳动的要求,又能大大减少管理成本,而且在结构上也具有很大的灵活性,在安全上也可以得到充分地保证。
所以本系统在技术上是完全可以实现的。
目前,在高校选课是必须的操作,许多都要求通过数据库进行管理,并且实际中也有系统的使用。
所以本系统的使用前景非常的广阔,易于推广和普及到现实中应用。
所以本系统在实际应用上是完全可行的。
三业务流程分析业务流程图:选课查询and更改四数据流程分析4.1 数据流程图选课查询and更改4.2 数据字典数据流的描述:数据流编号:D1.1数据流名称:登录信息申请简述:学生输入用户名密码请求登录数据流来源:学生数据流去向:系统登录数据流组成:系统编号学生学号登录密码数据流编号:D1.2数据流名称:登录信息简述:学生信息库反馈学生信息数据流来源:学生信息库数据流去向:登录系统数据流组成:学生姓名学生性别学生年龄学生院系数据流编号:D1.3数据流名称:课程信息申请简述:学生查看可选课信息数据流来源:登录系统数据流去向:查看所欲课程数据流组成:学生编号数据流编号:D1.4数据流名称:课程信息简述:课程信息库反馈课程信息数据流来源:课程信息库数据流去向:查看所欲课程数据流组成:课程编号课程名称课程学分课程课时数据流编号:D1.5数据流名称:选课申请单简述:学生根据所欲课程提交申请单数据流来源:查看所欲课程数据流去向:执行选课操作数据流组成:学生编号课程编号数据流编号:D1.6数据流名称:选课完成通知单简述:审核并完成选课操作数据流来源:执行选课操作数据流去向:记录选课信息数据流组成:学生编号课程编号系统编号数据流编号:D1.7数据流名称:选课信息更新单简述:向选课信息库更新选课记录数据流来源:记录选课信息数据流去向:选课信息库数据流组成:学生编号课程编号系统编号数据流编号:D2.1数据流名称:登录信息申请简述:学生输入用户名密码请求登录数据流来源:学生数据流去向:系统登录数据流组成:系统编号学生学号登录密码数据流编号:D2.2数据流名称:登录信息简述:学生信息库反馈学生信息数据流来源:学生信息库数据流去向:登录系统数据流组成:学生姓名学生性别学生年龄学生院系数据流编号:D2.3数据流名称:选课信息申请简述:学生查选课信息数据流来源:登录系统数据流去向:查看已选课信息数据流组成:学生编号数据流编号:D2.4数据流名称:选课信息简述:选课信息库反馈选课信息数据流来源:选课信息库数据流去向:查看已选课信息数据流组成:学生姓名课程名称课程学分课程课时数据流编号:D2.5数据流名称:更改申请单简述:学生根据欲更改课程提交申请单数据流来源:查看已选课信息数据流去向:执行更改操作数据流组成:学生编号课程编号数据流编号:D2.6数据流名称:更改完成通知单简述:审核并完成更改操作数据流来源:执行更改操作数据流去向:更改选课信息数据流组成:学生编号课程编号系统编号数据流编号:D2.7数据流名称:选课信息更新单简述:向选课信息库更新选课记录数据流来源:更改选课信息数据流去向:选课信息库数据流组成:学生编号课程编号系统编号处理逻辑的描述:处理逻辑编号:P1.1处理逻辑名称:登录系统简述:审核学生身份使学生进入系统输入的数据流:登录信息申请登录信息处理描述:接受学生的登录信息申请,处理并请求学生信息库反馈学生信息,将反馈的信息返回给学生,使学生登录输出的数据流:课程信息申请处理逻辑编号:P1.2处理逻辑名称:查看所欲课程简述:向学生展示可选课程输入的数据流:课程信息申请课程信息处理描述:通过学生的学号进行筛选,要求课程数据库反馈课程信息,将反馈信息返回给学生,使其看到可选课程输出的数据流:选课申请单处理逻辑编号:P1.3处理逻辑名称:执行选课操作简述:对选课信息进行审核并生成数据库记录输入的数据流:选课申请单处理描述:根据学生的选课申请单进行审核并生成数据库记录输出的数据流:选课完成通知单处理逻辑编号:P1.4处理逻辑名称:记录选课信息简述:将选课确认信息导入数据库输入的数据流:选课完成通知单处理描述:将数据库记录更新选课数据库输出的数据流:选课信息更新单处理逻辑编号:P2.1处理逻辑名称:登录系统简述:学生输入用户名密码请求登录输入的数据流:登录信息申请登录信息处理描述:接受学生的登录信息申请,处理并请求学生信息库反馈学生信息,将反馈的信息返回给学生,使学生登录输出的数据流:课程信息申请处理逻辑编号:P2.2处理逻辑名称:查看已选课程信息简述:浏览已选过的选课记录输入的数据流:选课信息申请单处理描述:对已经进行过选课的用户现实起选课记录输出的数据流:更改申请单处理逻辑编号:P2.3处理逻辑名称:执行更改操作简述:对选课信息进行审核,并生成数据库记录输入的数据流:更改申请单处理描述:学生提出改申请,系统进行信息审核并生成数据库记录输出的数据流:更改完成通知单处理逻辑编号:P2.4处理逻辑名称:更改选课信息简述:将产生的数据库记录用于更新选课数据库输入的数据流:更改完成通知单处理描述:准备将已经生成的数据库记录用于更新之前的选课信息库,已完成选课的更改操作输出的数据流:选课信息更新单数据存储的描述:数据存储编号:F1.1数据存储名称:学生信息库简述:存储学生基本的信息数据存储组成:学生编号学生姓名学生性别学生年龄学生院系关键字:学生编号学生姓名相关联的处理:P1.1数据存储编号:F1.2数据存储名称:课程信息库简述:存储所有课程信息数据存储组成:课程编号课程名称课程学分课程课时关键字:课程编号课程名称相关联的处理:P1.2数据存储编号:F1.3数据存储名称:选课信息库简述:存储学生的选课信息数据存储组成:学生编号学生姓名课程编号课程名称课程学分课程课时系统编号关键字:学生编号课程编号相关联的处理:P1.4数据存储编号:F2.1数据存储名称:学生信息库简述:存储学生基本信息数据存储组成:学生编号学生姓名学生性别学生年龄学生院系关键字:学生编号学生姓名相关联的处理:P2.1数据存储编号:F2.2数据存储名称:选课信息库简述:存储学生的选课信息数据存储组成:学生编号学生姓名课程编号课程名称课程学分课程课时系统编号关键字:学生编号课程编号相关联的处理:P2.2 P2.4外部实体的描述:外部实体编号:S1.1外部实体名称:学生(选课)简述:从选课系统中选课的人输入的数据流:无输出的数据流:登陆信息申请外部实体编号:S2.1外部实体名称:学生(查询and更改)简述:从选课系统中查询and更改的人输入的数据流:无输出的数据流:登陆信息申请4.3 E-R图五概念模型设计六物理模型设计与优化SQL脚本/*==============================================================*/ /* DBMS name: Sybase SQL Anywhere 11 *//* Created on: 2011/6/24 1:13:38 *//*==============================================================*/ if exists(select 1 from sys.sysforeignkey where role='FK_学生_管理_系统') then alter table 学生delete foreign key FK_学生_管理_系统end if;if exists(select 1 from sys.sysforeignkey where role='FK_更改单_处理(更改单)_系统') thenalter table 更改单delete foreign key FK_更改单_处理(更改单)_系统end if;if exists(select 1 from sys.sysforeignkey where role='FK_查询单_处理(查询单)_系统') thenalter table 查询单delete foreign key FK_查询单_处理(查询单)_系统end if;if exists(select 1 from sys.sysforeignkey where role='FK_选修_选修_课程') then alter table 选修delete foreign key FK_选修_选修_课程end if;if exists(select 1 from sys.sysforeignkey where role='FK_选修_选修2_学生') then alter table 选修delete foreign key FK_选修_选修2_学生end if;if exists(select 1 from sys.sysforeignkey where role='FK_选课单_处理(选课单)_系alter table 选课单delete foreign key FK_选课单_处理(选课单)_系统end if;if exists(select 1 from sys.sysindex i, sys.systable twhere i.table_id=t.table_idand i.index_name='管理_FK'and t.table_name='学生') thendrop index 学生.管理_FKend if;if exists(select 1 from sys.sysindex i, sys.systable twhere i.table_id=t.table_idand i.index_name='学生_PK'and t.table_name='学生') thendrop index 学生.学生_PKend if;if exists(select 1 from sys.systablewhere table_name='学生'and table_type in ('BASE', 'GBL TEMP')) thendrop table 学生end if;if exists(select 1 from sys.sysindex i, sys.systable twhere i.table_id=t.table_idand i.index_name='处理(更改单)_FK'and t.table_name='更改单') thendrop index 更改单.处理(更改单)_FKend if;select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_idand i.index_name='更改单_PK'and t.table_name='更改单') thendrop index 更改单.更改单_PKend if;if exists(select 1 from sys.systablewhere table_name='更改单'and table_type in ('BASE', 'GBL TEMP') ) thendrop table 更改单end if;if exists(select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_idand i.index_name='处理(查询单)_FK'and t.table_name='查询单') thendrop index 查询单.处理(查询单)_FKend if;if exists(select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_idand i.index_name='查询单_PK'and t.table_name='查询单') thendrop index 查询单.查询单_PKend if;if exists(select 1 from sys.systablewhere table_name='查询单'and table_type in ('BASE', 'GBL TEMP') ) thendrop table 查询单end if;if exists(select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_idand i.index_name='系统_PK'and t.table_name='系统') thendrop index 系统.系统_PKend if;if exists(select 1 from sys.systablewhere table_name='系统'and table_type in ('BASE', 'GBL TEMP') ) thendrop table 系统end if;if exists(select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_idand i.index_name='课程_PK'and t.table_name='课程') thendrop index 课程.课程_PKend if;if exists(select 1 from sys.systablewhere table_name='课程'and table_type in ('BASE', 'GBL TEMP') ) thendrop table 课程end if;if exists(select 1 from sys.sysindex i, sys.systable twhere i.table_id=t.table_idand i.index_name='选修2_FK'and t.table_name='选修') thendrop index 选修.选修2_FKend if;if exists(select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_idand i.index_name='选修_FK'and t.table_name='选修') thendrop index 选修.选修_FKend if;if exists(select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_idand i.index_name='选修_PK'and t.table_name='选修') thendrop index 选修.选修_PKend if;if exists(select 1 from sys.systablewhere table_name='选修'and table_type in ('BASE', 'GBL TEMP') ) thendrop table 选修end if;if exists(select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_idand i.index_name='处理(选课单)_FK'and t.table_name='选课单') thendrop index 选课单.处理(选课单)_FKend if;if exists(select 1 from sys.sysindex i, sys.systable twhere i.table_id=t.table_idand i.index_name='选课单_PK'and t.table_name='选课单') thendrop index 选课单.选课单_PKend if;if exists(select 1 from sys.systablewhere table_name='选课单'and table_type in ('BASE', 'GBL TEMP')) thendrop table 选课单end if;/*==============================================================*/ /* Table: 学生*//*==============================================================*/ create table 学生(学号char(10) not null,编号(系统)char(10) not null,姓名char(10) not null,年龄char(10) not null,性别char(10) not null,院系char(10) not null,constraint PK_学生primary key (学号));/*==============================================================*/ /* Index: 学生_PK *//*==============================================================*/ create unique index 学生_PK on 学生(学号ASC);/*==============================================================*/ /* Index: 管理_FK *//*==============================================================*/ create index 管理_FK on 学生(编号(系统)ASC);/*==============================================================*/ /* Table: 更改单*//*==============================================================*/ create table 更改单(单据编号(更改单)char(10) not null,编号(系统)char(10) null,系统编号(更改单)char(10) not null,课程编号(更改单)char(10) not null,学号(更改单)char(10) not null,日期(更改单)timestamp not null,constraint PK_更改单primary key (单据编号(更改单)));/*==============================================================*/ /* Index: 更改单_PK *//*==============================================================*/ create unique index 更改单_PK on 更改单(单据编号(更改单)ASC);/*==============================================================*/ /* Index: 处理(更改单)_FK *//*==============================================================*/ create index 处理(更改单)_FK on 更改单(编号(系统)ASC);/*==============================================================*/ /* Table: 查询单*//*==============================================================*/ create table 查询单(单据编号(查询单)char(10) not null,编号(系统)char(10) null,系统编号(查询单)char(10) not null,课程编号(查询单)char(10) not null,学号(查询单)char(10) not null,日期(查询单)timestamp not null,constraint PK_查询单primary key (单据编号(查询单)));/*==============================================================*/ /* Index: 查询单_PK *//*==============================================================*/ create unique index 查询单_PK on 查询单(单据编号(查询单)ASC);/*==============================================================*/ /* Index: 处理(查询单)_FK *//*==============================================================*/ create index 处理(查询单)_FK on 查询单(编号(系统)ASC);/*==============================================================*/ /* Table: 系统*//*==============================================================*/ create table 系统(编号(系统)char(10) not null,名称(系统)char(10) not null,constraint PK_系统primary key (编号(系统)));/*==============================================================*/ /* Index: 系统_PK *//*==============================================================*/ create unique index 系统_PK on 系统(编号(系统)ASC);/*==============================================================*/ /* Table: 课程*//*==============================================================*/ create table 课程(编号(课程)char(10) not null,名称(课程)char(10) not null,学分char(10) not null,课时char(10) not null,constraint PK_课程primary key (编号(课程)));/*==============================================================*/ /* Index: 课程_PK *//*==============================================================*/ create unique index 课程_PK on 课程(编号(课程)ASC);/*==============================================================*/ /* Table: 选修*//*==============================================================*/ create table 选修(编号(课程)char(10) not null,学号char(10) not null,constraint PK_选修primary key clustered (编号(课程), 学号));/*==============================================================*/ /* Index: 选修_PK *//*==============================================================*/ create unique clustered index 选修_PK on 选修(编号(课程)ASC,学号ASC);/*==============================================================*/ /* Index: 选修_FK *//*==============================================================*/create index 选修_FK on 选修(编号(课程)ASC);/*==============================================================*/ /* Index: 选修2_FK *//*==============================================================*/ create index 选修2_FK on 选修(学号ASC);/*==============================================================*/ /* Table: 选课单*//*==============================================================*/ create table 选课单(单据编号(选课单)char(10) not null,编号(系统)char(10) null,系统编号(选课单)char(10) not null,课程编号(选课单)char(10) not null,学号(选课单)char(10) not null,日期(选课单)timestamp not null,constraint PK_选课单primary key (单据编号(选课单)));/*==============================================================*/ /* Index: 选课单_PK *//*==============================================================*/ create unique index 选课单_PK on 选课单(单据编号(选课单)ASC);/*==============================================================*/ /* Index: 处理(选课单)_FK *//*==============================================================*/ create index 处理(选课单)_FK on 选课单(编号(系统)ASC);alter table 学生add constraint FK_学生_管理_系统foreign key (编号(系统)) references 系统(编号(系统))on update restricton delete restrict;alter table 更改单add constraint FK_更改单_处理(更改单)_系统foreign key (编号(系统)) references 系统(编号(系统))on update restricton delete restrict;alter table 查询单add constraint FK_查询单_处理(查询单)_系统foreign key (编号(系统)) references 系统(编号(系统))on update restricton delete restrict;alter table 选修add constraint FK_选修_选修_课程foreign key (编号(课程)) references 课程(编号(课程))on update restricton delete restrict;alter table 选修add constraint FK_选修_选修2_学生foreign key (学号)references 学生(学号)on update restricton delete restrict;alter table 选课单add constraint FK_选课单_处理(选课单)_系统foreign key (编号(系统)) references 系统(编号(系统))on update restricton delete restrict;七课程设计心得体会通过5天的课程设计学习,自己在数据库开发应用方面的能提得到了很大的提升。