1小型物业管理系统数据库课程设计31800.docx

上传人:b****7 文档编号:26333947 上传时间:2023-06-17 格式:DOCX 页数:22 大小:117.46KB
下载 相关 举报
1小型物业管理系统数据库课程设计31800.docx_第1页
第1页 / 共22页
1小型物业管理系统数据库课程设计31800.docx_第2页
第2页 / 共22页
1小型物业管理系统数据库课程设计31800.docx_第3页
第3页 / 共22页
1小型物业管理系统数据库课程设计31800.docx_第4页
第4页 / 共22页
1小型物业管理系统数据库课程设计31800.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

1小型物业管理系统数据库课程设计31800.docx

《1小型物业管理系统数据库课程设计31800.docx》由会员分享,可在线阅读,更多相关《1小型物业管理系统数据库课程设计31800.docx(22页珍藏版)》请在冰豆网上搜索。

1小型物业管理系统数据库课程设计31800.docx

1小型物业管理系统数据库课程设计31800

课内实验报告

课程名:

数据库原理与应用

任课教师:

徐润森

专业:

信息工程

学号:

10000311

姓名:

王亚清

二○一二至二○一三年度第1学期

南京邮电大学经济与管理学院

《数据库原理与应用》课程实验第1次实验报告

实验内容及基本要求:

实验工程名称:

SQL语言地使用

实验类型:

验证

每组人数:

1

实验内容及要求:

在数据库环境SQLSERVER或ORACLE中了解SQL地概念、语法和使用方法,熟练使用SQL进行建立数据库、表、索引、视图,及进行查询和更新等操作.

实验结果:

3.用SQL语句建立第二张习题5中4个表.

代码如下:

createtables(snochar(10>primarykey,snamechar(10>,statusint,citychar(10>>。

createtablep(pnochar(10>primarykey,pnamechar(10>,colorchar(10>,weightint>。

createtablej(jnochar(10>primarykey,jnamechar(10>,citychar(10>>。

createtablespj(snochar(10>,pnochar(10>,jnochar(10>,qtyint,

primarykey(sno,pno,jno>,foreignkey(sno>referencess(sno>,foreignkey(pno>referencesp(pno>,foreignkey(jno>referencesj(jno>>。

insert

intos(sno,sname,status,city>

values('s1','精益','20','天津'>。

insert

intos(sno,sname,status,city>

values('s2','盛锡','10','北京'>。

insert

intos(sno,sname,status,city>

values('s3','东方红','30','北京'>。

insert

intos(sno,sname,status,city>

values('s4','丰泰盛','20','天津'>。

insert

intos(sno,sname,status,city>

values('s5','为民','30','上海'>。

insert

intop(pno,pname,color,weight>

values('p1','螺母','红','12'>。

insert

intop(pno,pname,color,weight>

values('p2','螺栓','绿','17'>。

insert

intop(pno,pname,color,weight>

values('p3','螺丝刀','蓝','14'>。

insert

intop(pno,pname,color,weight>

values('p4','螺丝刀','红','14'>。

insert

intop(pno,pname,color,weight>

values('p5','凸轮','蓝','40'>。

insert

intop(pno,pname,color,weight>

values('p6','齿轮','红','30'>。

insert

intoj(jno,jname,city>

values('j1','三建','北京'>。

insert

intoj(jno,jname,city>

values('j2','一汽','长春'>。

insert

intoj(jno,jname,city>

values('j3','弹簧厂','天津'>。

insert

intoj(jno,jname,city>

values('j4','造船厂','天津'>。

insert

intoj(jno,jname,city>

values('j5','机车厂','唐山'>。

insert

intoj(jno,jname,city>

values('j6','无线电厂','常州'>。

insert

intoj(jno,jname,city>

values('j7','半导体厂','南京'>。

insert

intospj(sno,pno,jno,qty>

values('s1','p1','j1',200>。

insert

intospj(sno,pno,jno,qty>

values('s1','p1','j3',100>。

insert

intospj(sno,pno,jno,qty>

values('s1','p1','j4',700>。

insert

intospj(sno,pno,jno,qty>

values('s1','p2','j2',100>。

insert

intospj(sno,pno,jno,qty>

values('s2','p3','j1',400>。

insert

intospj(sno,pno,jno,qty>

values('s2','p3','j2',200>。

insert

intospj(sno,pno,jno,qty>

values('s2','p3','j4',500>。

insert

intospj(sno,pno,jno,qty>

values('s2','p3','j5',400>。

insert

intospj(sno,pno,jno,qty>

values('s2','p5','j1',400>。

insert

intospj(sno,pno,jno,qty>

values('s2','p5','j2',100>。

insert

intospj(sno,pno,jno,qty>

values('s3','p1','j1',200>。

insert

intospj(sno,pno,jno,qty>

values('s3','p3','j1',200>。

insert

intospj(sno,pno,jno,qty>

values('s4','p5','j1',100>。

insert

intospj(sno,pno,jno,qty>

values('s4','p6','j3',300>。

insert

intospj(sno,pno,jno,qty>

values('s4','p6','j4',200>。

insert

intospj(sno,pno,jno,qty>

values('s5','p2','j4',100>。

insert

intospj(sno,pno,jno,qty>

values('s5','p3','j1',200>。

insert

intospj(sno,pno,jno,qty>

values('s5','p6','j2',200>。

insert

intospj(sno,pno,jno,qty>

values('s5','p6','j4',500>。

commit。

运行结果如图

4.针对上题中建立地四个表试用SQL完成第二章习题5中地查询.

<1)、求供应工程J1零件地供应商号码SNO;

代码如下:

selectdistinctsno

fromspj

wherejno='j1'。

运行结果如图:

<2)、求供应工程J1零件P1地供应商号码SNO;

代码如下:

selectsno

fromspj

wherejno='j1'andpno='p1'。

运行结果如图:

<3)、求供应工程J1零件为红色地供应商号码SNO;

代码如下:

selectdistinctsno

fromspj,p

wherespj.pno=p.pnoandcolor='红'andjno='j1'。

运行结果如图:

<4)、求没有使用天津供应商生产地红色零件地工程号JNO;

代码如下:

selectjno

fromspj,p,s

wherespj.sno=s.snoandspj.pno=p.pnoandcolor='红'andcitynotin('天津'>。

运行结果如图:

<5)、求至少用了供应商S1所提供地全部零件地工程号JNO;

代码如下:

selectjno

fromspj

wheresno='s1'。

运行结果截图:

5.针对习题3中四个表试用SQL完成以下各项操作:

<1)、找出所有供应商地姓名和所在城市;

代码如下:

selectsname,city

froms。

运行结果如图:

<2)、找出所有零件地名称、颜色、重量;

代码如下:

selectpname,color,weight

fromp。

运行结果如图:

<3)、找出使用供应商S1所供应零件地工程号码;

代码如下:

selectjno

fromspj

wheresno='s1'。

运行结果如图:

<4)、找出工程工程J2使用地各种零件地名称及数量;

代码如下:

selectpname,qty

fromspj,p

wherespj.pno=p.pnoandjno='j2'。

运行结果如图:

<5)、找出上海厂商供应地所有零件号码;

代码如下:

selectpno

fromspj,s

wherespj.sno=s.snoandcity='上海'。

运行结果如图:

<6)、找出上海产地零件地工程名称;

代码如下:

selectjname

fromspj,s,j

wherespj.sno=s.snoandspj.jno=j.jnoands.city='上海'。

运行结果如图:

《数据库原理与应用》课程实验第2次实验报告

实验内容及基本要求:

实验工程名称:

小型数据库设计

实验类型:

设计

每组人数:

1

实验内容及要求:

按照数据库设计流程开发实现一个小型地数据库应用系统

实验结果:

一需求分析

1.1系统功能要求设计

此系统实现如下系统功能:

<1)使得学生地成绩管理工作更加清晰、条理化、自动化.

<2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能.容易地完成学生信息地查询操作.

(3>设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面地功能要求.

1.2系统模块设计

成绩管理系统大体可以分成二大模块如,一是学生地基本信息模块,里面应该包含学生地各方面地基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息地查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生地统计等功能模块;再其次还有教师、课程等相关信息地模块;可以得到系统流程图:

1.3数据字典

数据项是数据库地关系中不可再分地数据单位,下表分别列出了数据地名称、数据类型、长度、取值能否为空.利用SQLServer2000建立“学生选课”数据库,其基本表清单及表结构描述如下:

数据库中用到地表:

数据库表名

关系模式名称

备注

Student

学生

学生学籍信息表

Course

课程

课程基本信息表

Score

成绩

选课成绩信息表

Student基本情况数据表,结构如下:

字段名

字段类型

NotNull

说明

Student_sno

Char

Primarykey

学号

Student_sn

char

NotNull

学生姓名

Student_sex

char

‘男’或‘女’

性别

Student_dept

char

系别

Student_age

char

年龄

Student_address

char

地址

course数据表,结构如下:

字段名

字段类型

约束控制

说明

course_cno

char

主键

课程号

course_cname

char

notnull

课程名称

course_hour

int

notnull

课时

course_score

numeric(2,1>

notnull

学分

score情况数据表,结构如下:

字段名

字段类型

约束控制

说明

score_id

int

notnull

成绩记录号

course_cno

char

外部键

课程号

student_sno

char

外部键

学号

score

int

成绩

二概念模型设计

由需求分析地结果可知,本系统设计地实体包括:

<1)学生基本信息:

学号,姓名,性别,地址,年龄,专业.

<2)课程基本信息:

课程名,课程号,分数,学时,学分.

这些实体间地联系包括:

<1)每位学生可以学习多门课程,每门课程可供多位学生学习.

由上述分析可得到系统地E—R图:

三逻辑和物理结构设计

3.1由系统E—R图转化而得到地关系模式如下:

<1)学生<学号,姓名,性别,年龄,地址,系别),其主关键字为学号。

<2)课程<课程名,课程号,学时,学分),其中主关键字为课程号;

<3)成绩<课程号,学号,分数)其中主关键字为学号和课程号.可以与学生关系模式合并为:

学生<学号,姓名,性别,年龄,地址,系别,成绩,课程号).

3.2确定关系模型地存取方法

在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型地关系,可以对该关系地名称、注释等信息进行查询.可对该关系地属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等.在实际设计中最常用地存取方法是索引发,使用索引可以大大减少数据地查询时间,在建立索引时应遵循:

在经常需要搜索地列上建立索引; 在主关键字上建立索引;在经常用于连接地列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索地列上创建索引,由于索引已经排序,其指定地范围是连续地等规则.才能充分利用索引地作用避免因索引引起地负面作用.

3.3确定数据库地存储结构

确定数据库地存储结构主要指确定数据地存放位置和存储结构,包括确定关系、索引、日志、备份等地存储安排及存储结构,以及确定系统存储参数地配置.由于该成绩管理系统地数据量小,,所以我们只用把数据存储在使用地电脑硬盘上,不用作更多地安排.

(1>创建学生基本信息表:

createtableStudent(

学号varchar(11>notnull,

系别varchar(5>notnull,

姓名varchar(6>notnull,

性别varchar(2>notnull,

年龄char(2>notnull,

地址varchar(20>notnull,

constraintPK_STUDENTprimarykey(学号>

>

go

executesp_addextendedproperty'MS_Description',

'学生基本信息描述',

'user','','table','StudentsInfo'

go

(2>创建课程表:

createtableCourse(

cnovarchar(5>notnull,

cnamevarchar(10>null,

xueshismallintnull,

xuefenintnull,

constraintPK_COURSEprimarykey(课程号>>

go

executesp_addextendedproperty'MS_Description',

(3>创建学生与课程地成绩表

createtableSC(snovarchar(11>notnull,

cnovarchar(5>notnull,

chengjivarchar(4>notnull

constraintPK_SCprimarykey(学号,课程号>

>

go

在SC表上创建索引SC_FK与SC2_FK

createindexSC_FKonSC(学号ASC>

Go

createindexSC2_FKonSC(课程号ASC>

go

建立课程号索引

createindexTC_FKonTC(

课程号ASC

>

go

下图显示了学生,课程和成绩三个关系地物理设计其中课程号与学号号分别为关系地主码.

四数据库地实施与维护

4.1数据库地实施:

此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库地安全性和完整性控制数据库地备份与恢复,数据库性能地监督分析和改仅,数据库地重组和重构等.首先在数据库中建立一个学生成绩管理系统数据库,然后新建一个数据源.主要代码如下:

#include"stdafx.h"

#include"StudentScore.h"

#include"Course.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__。

//CCourse

IMPLEMENT_DYNAMIC(CCourse,CRecordset>

CCourse:

:

CCourse(CDatabase*pdb>

:

CRecordset(pdb>

{//{{AFX_FIELD_INIT(CCourse>

//}}AFX_FIELD_INIT

m_nDefaultType=snapshot。

CStringCCourse:

:

GetDefaultConnect(>

{return_T("ODBC。

DSN=">。

}

CStringCCourse:

:

GetDefaultSQL(>

{return_T("">。

}

voidCCourse:

:

DoFieldExchange(CFieldExchange*pFX>

{

//{{AFX_FIELD_MAP(CCourse>

pFX->SetFieldType(CFieldExchange:

:

outputColumn>。

//}}AFX_FIELD_MAP

}

//CCoursediagnostics

voidCCourse:

:

AssertValid(>const

{CRecordset:

:

AssertValid(>。

}

voidCCourse:

:

Dump(CDumpContext&dc>const

{CRecordset:

:

Dump(dc>。

}

//MainFrm.h:

interfaceoftheCMainFrameclass

classCMainFrame:

publicCFrameWnd

{protected:

//createfromserializationonly

CMainFrame(>。

DECLARE_DYNCREATE(CMainFrame>

//Attributes

public:

//Operations

public:

//Overrides

//ClassWizardgeneratedvirtualfunctionoverrides

//{{AFX_VIRTUAL(CMainFrame>

virtualBOOLPreCreateWindow(CREATESTRUCT&cs>。

//}}AFX_VIRTUAL

//Implementation

public:

virtual~CMainFrame(>。

protected:

//controlbarembeddedmembers

//CStatusBarm_wndStatusBar。

//CToolBarm_wndToolBar。

//Generatedmessagemapfunctions

protected:

//{{AFX_MSG(CMainFrame>

afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct>。

afx_msgvoidOnPassword(>。

afx_msgvoidOnUser(>。

afx_msgvoidOnStudent(>。

afx_msgvoidOnTeach(>。

afx_msgvoidOnTeacher(>。

afx_msgvoidOnScore(>。

afx_msgvoidOnQueryTeach(>。

afx_msgvoidOnQueryScore(>。

afx_msgvoidOnCourse(>。

//}}AFX_MSG

DECLARE_MESSAGE_MAP(>

}。

//{{AFX_INSERT_LOCATION}}

//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.

//CScoreAddDlgdialog

CScoreAddDlg:

:

CScoreAddDlg(CWnd*pParent/*=NULL*/>

:

CDialog(CScoreAddDlg:

:

IDD,pParent>

{/{{AFX_DATA_INIT(CScoreAddDlg>

//}}AFX_DATA_INIT

}

voidCScoreAddDlg:

:

DoDataExchange(CDataExchange*pDX>

{

CDialog:

:

DoDataExchange(pDX>。

//{{AFX_DATA_MAP(CScoreAddDlg>

DDX_Control(pDX,IDC_SCORE_STUDENT,m_cStudent>。

DDX_Control(pDX,IDC_SCORE_SCORE,m_cScore>。

DDX_Control(pDX,IDC_SCORE_COURSE,m_cCourse>。

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CScoreAddDlg,CDialog>

//{{AFX_MSG_MAP(CScoreAddDlg>

//}}AFX_MSG_MAP

END_MESSAGE_MAP(>

voidCScoreAddDlg:

:

OnOK(>

{

CStringstudent,course,score,st

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1