创建表,对表的修改--数据库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书
设计题目数据库课程设计
专业计算机科学与技术班级
设计人学号
山东科技大学
2012年04月07日
摘要
本次设计是使用一种高级语言(C、C++、JA V A等)进行开发一中类似于DBMS的程序,主要功能包括表的建立、添加、删除、修改属性信息等基本操作。此文档为此编写。
通过对题目的分析我使用了C语言进行编写。将程序设计成以命令提示方式进行操作的不算很人性化的界面。但具有操作提示(另附txt)。
此次设计包含了自己定义的几个头文件、小程序程序,利用函数调用实现主函数的实现。自己编写了一个相当于DBMS的程序,经过不断改善能够很好的运行。
由于知识水平有限参考了前人的一些方法、技巧。特此说明。
目录
1.课程题目 (7)
2.设计目的 (7)
3.需求分析 (7)
a)创建一张表 (7)
b)对表的修改 (7)
c)数据类型的定义 (7)
4.实现方式 (8)
a)算法分析 (8)
b)主要函数 (9)
c)程序流程图 (9)
d)详细设计 (11)
5.程序实现 (21)
6.总结 (26)
7.附录 (27)
正文
一.课程题目
用高级语言设计一个简单的DBMS
二.设计目的
设计一个小型的的DBMS实现对表的添加修改等属性操作,加深对数据库知识的理解。
三.需求分析
1.创建一张表。
(1).要求:必须用到关键字“create table”;常用的符号“()”、“,”
“;”;表的名字可以任意定义;定义最基本的权限:unique、not null、default、
check,如果列中有性别一列则需要性别只能选择“男”、“女”;列不能重名;数据类型只能是已经定义的类型;约束只能是已经定义的约束;当遇到“;”时表的建立完成。
(2).可能的错误:有两列或多列重名;定义的类型和约束不
存、关键字错误。
2.表的修改
(1).加一行、列(Insert 、Alter table).所添加的与原有的
不能重名;修改表中已存在一项;删除表中的一行列。
(2).可能错误的操作:添加的表名或列已存在;字符输入错误。
3.数据类型的定义
常见的数据类型char,int ,short,long等
四. 实现方式
1.算法分析
编写一个简单的DBMS,能从文本文件中识别出各种命令语句:
create ,select ,delete ,insert。实现一个已固定属性的关系表的建立,元
组记录的插入,查找,修改,浏览,删除操作。整体采用链表结构,节点
由结构体构成,结构体内包含关系的各种属性,通过对链表的各种操作来
实现对关系表的各种操作,然后将所建的表以文本文档的形式存储在同一
2.主要成员函数
int Sql_CREATE()//创建表
int Sql_INSERT()//插入表
int Sql_ALTER()//修改元组属性int Sql_SELECT()//查找元组int Sql_UPDATE()//查询记录int Sql_DELETE()//删除表
3程序流程图
图一
4.详细设计
(1). 关于自定义的两个头文件
在程序中自定义了sql.h与dbf.h两个头文件,分别实现对函数中所用到的主函数进行定义与定义结构体变量、全局变量、宏定义等一些基本操作。
#ifndef dbf_H
#define dbf_H
#include
#include
#include
//------------宏定义--------------------------------------------------------// #define GET_YEAR 0
#define GET_MONTH 1
#define GET_DAY 2
#define FOX_VERISON_INFO 262
#define WIN_32
#define MAX_FIELD_COUNTS 40
//字段类型
#define FIELD_CHAR_TYPE 0x43
#define FIELD_DATE_TYPE 0x44
#define FIELD_FLOAT_TYPE 0x46
#define FIELD_LOG_TYPE 0x4C
#define FIELD_MEMO_TYPE 0x4D
#define FIELD_NUMIC_TYPE 0x4E
#define FIELD_INT_TYPE 0x49
//条件查询
#define CON_SMALL 0
#define CON_EQUAL 1
#define CON_LARGE 2
//排序
#define CON_SORT_INCREASE 0
#define CON_SORT_DECREASE 1
#define TRUE 1
#define FALSE 0
#define BOOL int
//文件句柄
/////////////////////////Struct definition////////////////////////////// //文件头结构体定义
struct _DbfHead
{
char dbFlag;
char year;
char month;
char day;
int recCounts;
short firstRecAddr;
short recLen;
char undo[20];