数据库课程设计实验报告
- 格式:doc
- 大小:441.50 KB
- 文档页数:29
一、前言随着信息技术的飞速发展,数据库技术已成为现代信息技术的重要组成部分。
为了让学生更好地掌握数据库的基本原理和应用,提高数据库设计与开发能力,本课程设计实训旨在通过实际操作,让学生熟悉数据库的设计与实现过程,培养学生的实践能力和团队协作精神。
二、实训背景随着我国医疗行业的快速发展,医院对信息管理系统的需求日益增长。
为了提高医院管理效率和服务质量,本实训项目以医院病房计算机管理系统为背景,设计并实现一个基于数据库技术的管理系统。
三、实训目标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篇)数据库试验报告篇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. 逻辑设计:根据概念设计的结果,我们将实体关系图转化为关系模式,并进行了范式分析。
通过分析,我们确定了每个关系模式的主键和外键,并消除了冗余和不合理的依赖关系。
数据库实验报告(实验六)(合集五篇)第一篇:数据库实验报告(实验六)实验六SQL语言数据查询语言DQL一、实验内容了解SQL语言的SELECT语句对数据的查询,学会在Navicat for MySQL中用SELECT语句对表中的数据进行简单查询、连接查询、嵌套查询和组合查询。
启动Navicat for MySQL,用SELECT语句进行简单查询操作,具体实验步骤如下:(实验步骤里的内容)1启动Navicat for MySQL,登录到本地数据库服务器后,连接到test数据库上。
用Create Table建立Student表、Course表和Choose表:2.用INSERT语句分别向Student表中插入3个元组、Course表中插入3个元组、Choose表中插入7个元组:3.用SELECT语句,查询计算机学院学生的学号和姓名。
4.用SELECT语句的between…and…表示查询条件,查询年龄在20~23岁的学生信息。
5.用SELECT语句的COUNT()聚集函数,统计Student表中学生总人数。
6.分别用SELECT语句的max()、min()、sum()、avg()四个聚集函数,计算Choose表中C1课程的最高分、最低分、总分、平均分。
7.用SELECT语句对空值(NULL)的判断条件,查询Course表中先修课称编号为空值的课程编号和课程名称。
8.用SELECT语句的连接查询,查询学生的学号、姓名、选修的课程名及成绩。
9.用SELECT的存在量词EXISTS,查询与“张三”在同一个学院学习的学生信息。
10.用SELECT语句的嵌套查询,查询选修C1课程的成绩低于“张三”的学生的学号和成绩。
11.用SELECT语句的组合查询(UNION),查询选修了C1课程或者选修了C3课程的学生学号。
12.用SELECT语句的组合查询(UNION)与DISTINCT短语,查询选修了C1课程或者选修了C3课程的学生学号,并取消重复的数据。
数据库课程设计实习报告一、实习目的与意义本次数据库课程设计实习旨在加深我对数据库理论知识的理解,通过实际操作掌握数据库管理系统的基本操作技术,提高我运用数据库技术解决实际问题的能力。
在实习过程中,我使用了具体的DBMS(MySQL),并掌握了数据库前端开发工具(如Java)的使用,进一步提升了我的数据库技术水平。
二、实习内容与过程1. 实习平台与工具本次实习使用的数据库为MySQL,页面及朱语句为Java,开发工具为Eclipse。
2. 实习内容(1)数据库设计:根据需求分析,设计教务管理系统的数据库表结构,包括教师、学生、班级、系、课程等实体。
(2)数据库操作:利用Java实现对数据库的增删改查操作,包括连接数据库、编写SQL语句、处理查询结果等。
(3)前端界面设计:使用Java编写教务管理系统的用户界面,实现对数据库的交互操作。
(4)安全性测试:对数据库进行安全性测试,确保数据的安全性。
(5)功能测试与优化:对教务管理系统进行功能测试,发现问题并进行优化。
三、实习成果与收获1. 掌握了MySQL数据库的基本操作,包括创建数据库、表、插入数据、查询数据等。
2. 学会了使用Java编写数据库操作代码,实现了对数据库的增删改查操作。
3. 熟悉了教务管理系统的数据库设计,了解了各实体之间的关系。
4. 提高了运用数据库技术解决实际问题的能力,培养了团队协作和编程调试能力。
5. 深入理解了数据库理论知识的实际应用,为今后从事数据库相关领域的工作奠定了基础。
四、实习总结通过本次数据库课程设计实习,我对数据库理论知识有了更深刻的理解,掌握了数据库管理系统的实际操作技术,提高了运用数据库技术解决实际问题的能力。
同时,我也认识到数据库技术在软件开发中的重要性,为今后的学习和工作打下了坚实的基础。
在实习过程中,我学会了与团队成员沟通协作,锻炼了编程调试能力,培养了面对挑战解决问题的信心。
总之,本次实习对我来说是一次宝贵的学习和锻炼机会,使我受益匪浅。
数据库课程设计实习报告一、教学目标本课程旨在通过理论学习与实践操作,使学生掌握数据库的基本原理、设计方法和操作技能。
具体目标如下:1.理解数据库的基本概念、历史发展和分类。
2.掌握关系模型的基本元素,包括表、视图、索引等。
3.学会数据库的设计原则和方法,包括ER图和SQL语言。
4.能够使用数据库管理系统(DBMS)进行数据库的创建、操作和管理。
5.能够进行数据库的性能优化和故障排除。
6.能够运用SQL语言进行数据的增、删、改、查操作。
情感态度价值观目标:1.培养学生对数据库技术的兴趣和好奇心,增强其学习动力。
2.培养学生团队协作和问题解决的能力,提高其实际操作技能。
二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.数据库基础:介绍数据库的基本概念、历史发展和分类,关系模型及其基本元素。
2.数据库设计:讲解数据库的设计原则和方法,包括ER图和SQL语言。
3.数据库操作:教授如何使用数据库管理系统(DBMS)进行数据库的创建、操作和管理,以及数据库的性能优化和故障排除。
4.数据库应用:通过实例讲解如何运用SQL语言进行数据的增、删、改、查操作。
三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法相结合:1.讲授法:讲解基本概念、原理和方法。
2.案例分析法:分析实际案例,让学生更好地理解数据库的设计和应用。
3.实验法:让学生亲自动手操作,加深对数据库的理解和运用。
4.讨论法:分组讨论,培养学生的团队协作和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,将准备以下教学资源:1.教材:《数据库原理与应用》。
2.参考书:提供相关的学术论文和书籍,供学生深入研究。
3.多媒体资料:制作精美的PPT,辅助讲解和演示。
4.实验设备:提供数据库服务器和客户端软件,让学生进行实际操作。
五、教学评估本课程的评估方式将包括平时表现、作业、考试等多个方面,以全面客观地评价学生的学习成果。
数据库课程设计实验报告一、实验目的》熟练掌握、加深理解并巩固《数据库原理》课程中所学到的基本概念、基本原理和基本技术》综合利用所学到的关于数据库系统的一般原理和技术,以及其他课程的有关知识,来设计、实现一个以数据库为核心的应用软件系统》培养分析问题、解决问题的能力,进一步提高进行大型程序设计的能力二、实验环境➢操作系统:Windows XP》开发语言:Java➢开发工具:Eclipse JDK➢使用到的其他工具:SWT Designer、javaCup、jLex三、SQL 编译1. 词法分析一般关键字:ALL、AND、ANY、AS、ASC、BY、CREATE、DELETE、DESC、ESCAPE、FROM、INSERT、INTO、KEY、LIKE、NOT、NULL、OR、ORDER、PRIMARY、SELECT、TABLE、VALUES、WHERE、UPDATE、SET、INDEX、VIEW、ON、DROP、ALTER、ADD数据类型关键字:INT、FLOAT、STRING、BOOLEAN操作符号:’>’、’<’、’=’、’>=’、’<=’、’<>’、’(’、’)’、’*’、’.’、’,’变量名(正则表达式):[a-zA-Z]([0-9a-zA-Z]|_)*数据常量(正则表达式):’true’、’false’、[0-9]+、{[0-9]}*"."{[0-9]}*采用jLex 自动生成词法分析器。
2. 语法分析(正规表达式)SQL 语句:sql ::= create|select|insert|delete|update|drop|alter;CREATE 语句:create ::= CREATE TABLE NAME LPAR create_element_commalist RPAR |CREATE INDEX ON NAME LPAR NAME RPAR|CREATE VIEW NAME AS select;create_element_commalist ::= create_element|create_element_commalist COMMA create_element;create_element ::= NAME data_type PRIMARY KEY|NAME data_type;data_type ::= INT|FLOAT|STRING|BOOLEAN;CREATE 语句示例:CREATE TABLE table( Id INT PRIMARYKEY, Name STRING,isMale BOOLEAN,Height FLOAT)CREATE INDEX ON table(Name)CREATE VIEW tableView ASSELECT * FROM tableSELECT 语句:select ::= SELECT MULTI from where|SELECT select_list from where;select_list ::= s_attribute|select_list COMMA s_attribute;s_attribute ::= column_name|column_name AS NAME;column_name ::= NAME|NAME DOT NAME;FROM 子句:from ::= FROM from_list;from_list ::= f_attribute|from_list COMMA f_attribute;f_attribute ::= NAME|NAME NAME;WHERE 子句:where ::= orderby|WHERE search_condition orderby;search_condition ::= predicate|search_condition OR search_condition|search_condition AND search_condition |NOT search_condition|LPAR search_condition RPAR;predicate ::= comparison_predicate|like_predicate;comparison_predicate ::= op EQ op|op DY op|op XY op|op NE op|op XD op|op DD op;like_predicate ::= column_name LIKE CONTENT|column_name LIKE CONTENT ESCAPE CONTENT;op ::= column_name|ANY NAME|ALL NAME|CONTENT|INTNUM|FLOATNUM|BOOLDATA|NULL;orderby ::=|ORDER BY column_name|ORDER BY column_name ASC|ORDER BY column_name DESC;SELECT 语句示例:SELECT * FROM table WHERE Name=’koh’ OR Height>1.70INSERT 语句:insert ::= INSERT INTO NAME VALUES LPAR i_values RPAR|INSERT INTO NAME LPAR i_columns RPAR VALUES LPAR i_values RPAR ;i_values ::= i_value|i_values COMMA i_value;i_value ::= CONTENT|INTNUM|FLOATNUM|BOOLDATA;i_columns ::= NAME|i_columns COMMA NAME;INSERT 语句示例:INSERT INTO table VALUES(0,’koh’,true,1.76)INSERT INTO table(Id,Name,isMale,Height) VALUES(0,’koh’,true,1.76)UPDATE 语句:update ::= UPDATE NAME SET new_values WHERE search_condition;new_values ::= new_value|new_values COMMA new_value;new_value ::= NAME EQ CONTENT|NAME EQ INTNUM|NAME EQ FLOATNUM|NAME EQ BOOLDATA;UPDATE 语句示例:UPDATE table SET Height=1.80 WHERE Name=’koh’DELETE 语句:delete ::= DELETE FROM NAME WHERE search_condition;DELETE 语句示例:DELETE FROM table WHERE Name=’koh’DROP 语句:drop ::= DROP TABLE NAME|DROP INDEX NAME|DROP VIEW NAME;DROP 语句示例:DROP TABLE tableDROP INDEX tableIndexDROP VIEW tableViewALTER 语句:alter ::= ALTER TABLE NAME ADD NAME data_type|ALTER TABLE NAME DROP NAME;ALTER 语句示例:ALTER TABLE table ADD Age INTALTER TABLE table DROP Age3. 抽象语法树当SQL 语句经过了词法分析和语法分析后,将SQL 语句转化成一个数据库底层可以认识的抽象语法树。
一、实习背景随着信息技术的飞速发展,数据库技术在各个领域都得到了广泛应用。
为了提高我们运用数据库技术解决实际问题的能力,我们参加了数据库课程设计实习。
本次实习以开发一个学生信息管理系统为例,通过实际操作,加深对数据库原理及应用的理解,提高数据库设计与开发的能力。
二、实习目的1. 熟练掌握数据库设计的基本方法,包括需求分析、概念结构设计、逻辑结构设计和物理结构设计。
2. 掌握SQL语言,能够熟练进行数据库的创建、修改、删除、查询等操作。
3. 学会使用数据库开发工具,如Visual Studio、MySQL等。
4. 提高数据库系统分析与设计的能力,培养团队协作精神。
三、实习内容1. 需求分析通过调研,我们了解到学生信息管理系统需要具备以下功能:(1)学生信息管理:包括学生基本信息、学籍信息、成绩信息等。
(2)教师信息管理:包括教师基本信息、授课信息等。
(3)课程信息管理:包括课程基本信息、选课信息等。
(4)成绩查询:按学号、课程名称、教师姓名等条件查询成绩。
(5)统计报表:生成各类统计报表,如学生成绩排名、教师授课情况等。
2. 概念结构设计根据需求分析,我们设计了学生信息管理系统的概念结构,包括以下实体:(1)学生(学号、姓名、性别、出生日期、民族、籍贯、政治面貌、家庭住址、联系电话、电子邮件等)(2)教师(工号、姓名、性别、出生日期、民族、籍贯、政治面貌、家庭住址、联系电话、电子邮件等)(3)课程(课程编号、课程名称、学分、授课教师等)(4)成绩(学号、课程编号、成绩、学期等)3. 逻辑结构设计根据概念结构,我们设计了学生信息管理系统的逻辑结构,包括以下表:(1)学生表(学号、姓名、性别、出生日期、民族、籍贯、政治面貌、家庭住址、联系电话、电子邮件等)(2)教师表(工号、姓名、性别、出生日期、民族、籍贯、政治面貌、家庭住址、联系电话、电子邮件等)(3)课程表(课程编号、课程名称、学分、授课教师等)(4)成绩表(学号、课程编号、成绩、学期等)4. 物理结构设计根据逻辑结构,我们设计了学生信息管理系统的物理结构,包括以下表:(1)学生表(学号、姓名、性别、出生日期、民族、籍贯、政治面貌、家庭住址、联系电话、电子邮件等)(2)教师表(工号、姓名、性别、出生日期、民族、籍贯、政治面貌、家庭住址、联系电话、电子邮件等)(3)课程表(课程编号、课程名称、学分、授课教师等)(4)成绩表(学号、课程编号、成绩、学期等)5. 数据库开发与实现使用Visual Studio和MySQL数据库,我们实现了学生信息管理系统的数据库开发与实现。
数据库设计实验报告数据库设计实验报告一、引言数据库设计是计算机科学与技术领域中非常重要的一项工作。
通过合理的数据库设计,可以有效地存储和管理大量的数据,并提供高效的数据检索和操作功能。
本实验报告旨在介绍数据库设计的基本概念、方法和实践经验,以及在实验过程中遇到的问题与解决方案。
二、实验目的本次实验的主要目的是设计一个学生信息管理系统的数据库。
该数据库需要包含学生的基本信息、课程信息、成绩信息等内容,并能够支持学生信息查询、课程成绩统计等功能。
通过实践设计一个实际的数据库,可以加深对数据库设计原理和技术的理解,提高实际操作的能力。
三、实验过程1.需求分析在数据库设计之前,首先需要进行需求分析,明确系统的功能和数据需求。
通过与用户的沟通和讨论,我们确定了以下几个功能模块:学生信息管理、课程管理、成绩管理和查询统计。
在这个基础上,我们进一步定义了各个模块的具体数据结构和关系。
2.概念设计概念设计是数据库设计的第一步,它主要关注的是数据的逻辑结构和关系。
在概念设计阶段,我们使用实体-关系模型(ER模型)来描述系统中的实体、属性和关系。
通过对实体和关系的定义和分析,我们得到了一个初步的概念模型。
3.逻辑设计逻辑设计是在概念设计的基础上,进一步转化为数据库管理系统能够理解和处理的逻辑结构。
在逻辑设计阶段,我们使用关系模型来表示数据库的逻辑结构。
通过对实体和关系的转换和规范化处理,我们得到了一个符合规范的逻辑模型。
4.物理设计物理设计是将逻辑模型映射到具体的数据库管理系统中的过程。
在物理设计阶段,我们需要选择合适的数据库管理系统、确定数据类型和索引、优化查询语句等。
通过合理的物理设计,可以提高数据库的性能和效率。
五、实验结果经过以上的设计和实施,我们成功地完成了学生信息管理系统的数据库设计。
该数据库能够满足学生信息的存储和管理需求,并提供了查询和统计功能。
通过对数据库的测试和性能评估,我们发现系统的响应速度和稳定性都达到了预期的要求。
数据库设计实验报告数据库设计实验报告5篇在不断进步的时代,需要使用报告的情况越来越多,写报告的时候要注意内容的完整。
相信很多朋友都对写报告感到非常苦恼吧,以下是小编为大家收集的数据库设计实验报告,仅供参考,希望能够帮助到大家。
数据库设计实验报告1有关于数据库实验的心得体会,总的来说,受益匪浅。
在这些天中,我们学到了很多东西,包括建表,导入数据,查询,插入。
最重要的是我们有机会用电脑自己进行实践,没接触的时候总是觉得它比较深奥或是不可接近的新型语言,尽管自己对C语言非常感兴趣,但还是有些心理上的陌生感。
学习数据库就和我们平时的其它科目学习一样感觉它有永无止境的知识,数据库是我在高中时候听过,到了大学渐渐了解了些,但就其原理性的内容还不知道,也就是根本就不清楚什么是数据库,只是知道一个所谓的中国字典里的名词。
我认识它是从我接触实验运作开始的,刚开始就是建立数据库,两种验证模式,没什么东西但还觉得不错。
进而就是操作语言了,紧接着就是触发器的使用,进而对数据库高级的使用,等等。
开始知道数据库的时候想学,不知道从何而起,不懂的话怎么问,从什么地方学起。
后来到大三开学后有数据库原理必修课,非常高兴。
当时感觉SQL Sever数据库管理既然是单独一门课程一定会讲的比较细,也能学到真正实用的内容。
学了这门课以后发现和我想的基本是一样的,老师对学生也比较和蔼可亲,对我们要求也不是很紧。
让每个人都觉得轻轻松松就能把这门课程学完,没有多么紧张的作业,也没有太苛刻的要求。
当老师在最后说这个课程结束了,回顾一下以前老师给我们讲过的东西,真的有很多是我们应该去注意的。
学习完SQL Sever数据库后感觉可分两大块,一块是开发,一块是管理。
开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。
有点类似于程序员。
开发还需要有较强的逻辑思维和创造能力,自己没有真正做过,但感觉应该会比较辛苦,是青春饭;管理则需要对SQL Sever数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会弄掉整个数据库,相对前者来说,后者更看重经验。
数据库实验4-实验报告数据库实验 4 实验报告一、实验目的本次数据库实验 4 的主要目的是深入理解和掌握数据库中的某些关键概念和操作,通过实际的操作和实践,提高对数据库管理系统的应用能力,增强解决实际问题的技能。
二、实验环境本次实验使用的数据库管理系统为_____,运行环境为_____操作系统,使用的开发工具为_____。
三、实验内容与步骤(一)创建数据库首先,打开数据库管理系统,使用相应的命令或操作界面创建了一个名为“_____”的数据库。
在创建过程中,指定了数据库的一些基本属性,如字符集、排序规则等,以满足后续数据存储和处理的需求。
(二)创建数据表在创建好的数据库中,根据实验要求创建了若干个数据表。
例如,创建了一个名为“students”的表,用于存储学生的信息,包括学号(student_id)、姓名(student_name)、年龄(age)等字段。
创建表时,仔细定义了每个字段的数据类型、长度、是否允许为空等属性,以确保数据的准确性和完整性。
(三)数据插入接下来,向创建的数据表中插入了一些测试数据。
通过执行相应的插入语句,将学生的具体信息逐个插入到“students”表中。
在插入数据的过程中,特别注意了数据的格式和合法性,避免了因数据错误导致的插入失败。
(四)数据查询完成数据插入后,进行了各种查询操作。
使用了简单的查询语句,如“SELECT FROM students”来获取所有学生的信息。
还使用了条件查询,如“SELECT FROM students WHERE age >18”来获取年龄大于 18 岁的学生信息。
通过这些查询操作,熟悉了如何从数据库中获取所需的数据。
(五)数据更新对已有的数据进行了更新操作。
例如,通过执行“UPDATE students SET age = 20 WHERE student_id =1”的语句,将学号为 1 的学生的年龄更新为20 岁。
在更新数据时,谨慎操作,确保只更新了预期的记录。
数据库设计实验报告一、实验目的本次实验旨在通过设计一个数据库,加深对数据库设计原理和方法的理解,掌握数据库设计工具的使用,提高数据库设计能力。
二、实验环境本次实验使用MySQL数据库管理系统,并借助MySQL Workbench进行数据库设计和建模。
三、实验步骤1. 确定数据库需求:根据一个图书管理系统的需求,确定数据库中需要包含的实体、属性及它们之间的关系。
2. 实体关系模型设计:绘制ER图,表示各个实体之间的关系,包括实体的属性和主键。
3. 范式分解:将设计得到的实体关系模型转化为符合第三范式的关系模式。
4. 数据库物理设计:根据第三步得到的关系模式设计数据库的物理结构,确定表的字段、数据类型、约束等。
5. 创建数据库:在MySQL中创建数据库,并创建相应的表。
6. 插入数据:向数据库中插入一些测试数据,以便后续查询和操作。
7. 查询测试:通过SQL语句进行查询操作,检查数据库设计的正确性和完整性。
8. 实验总结:总结本次实验的过程和收获,对所学知识进行总结和回顾。
四、实验设计根据设计要求,我们设计了一个简单的图书管理系统数据库,包括以下几个表:1. 书籍表(Book)- 书籍编号(BookID)- 书名(Title)- 作者(Author)- 出版社(Publisher)- 出版日期(PublishDate)2. 借阅者表(Reader)- 借阅者编号(ReaderID)- 姓名(Name)- 性别(Gender)- 手机号(Phone)3. 借阅记录表(BorrowRecord)- 记录编号(RecordID)- 书籍编号(BookID)- 借阅者编号(ReaderID)- 借阅日期(BorrowDate)- 应还日期(DueDate)- 实际还书日期(ReturnDate)四、实验结果经过实验设计和数据库创建,数据库成功搭建完成。
我们通过一系列SQL查询操作,验证了数据库的正确性和完整性,包括图书信息的查询、借阅者信息的查询、借阅记录的查询等。
《数据库原理及应用》课程设计报告题目:计算机学院选课管理系统学号: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天的课程设计学习,自己在数据库开发应用方面的能提得到了很大的提升。