注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刘邓

每天收获一点点-目标:富足

 
 
 

日志

 
 

数据库初设计  

2012-05-17 17:56:41|  分类: 技术类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

设计一个名为LDSQL的非关系型“数据库”,至少根据解析以下SQL语句,可能要用到编译原理中的语法分析

creat database

drop database

ctreat table

drop table

insert语句

update语句

select语句

经初步分析数据库设计的关键是:
1.字符串解析,将SQL脚本文件或者用户输入转化为相应的命令
2.创建用户数据类,解析下面的SQL语句:

CREATE TABLE class(
ClsNO char(6) PRIMARY KEY , --班号(主键)
ClsName varchar(16) NOT NULL, --班名
Director varchar(10),--辅导员
Specialty varchar (30),--专业

)

PRIMARY KEY的类型为map的key键,(可以设定一个初值然后设定自加n单位),然后创建剩余部分UserData类

class UserData

{

string ClsName;//为了方便,把所有字符串都归结为string类型

string Director;

string Speccialty;

};

则table中map的格式为:map<string,UserData> m_mUserAccount
面临的问题:
1.字符串解析
2.如何在系统运行时根据字符串解析的结果创建UserAccount类。
 数据库初设计 - 刘邓 - 刘邓 

系统开始首先创建一个创建一个DBMS(Database Management System)对象

class DBMS

{

//以文件目录元素的向量,存储着数据库名称列表。每一个目录就是一个数据库名

vector<DIR> m_Database;

public:

DBMS(DIR dir){将dir目录下的数据库名称用来初始化m_Database}//构造函数

bool CheckIN(DIR dir){检查给的的数据库名是否存在}

bool Creat(DIR dir){创建数据库,插入到m_Database中,并在目录下创建dir名的数据库}

bool Drop(Dir dir){删除数据库,移除m_Database中的dir,删除目录下的dir数据库}

}

 

根据用户输入的“SQl”语句来对文件进行操作:

create database XX

检查默认目录下是否存在名为XX的子目录,如果存在则返回错误,不存在就在默认目录下创建一个XX子目录。

drop database XX

检查默认目录下是否存在名为XX的子目录,如果不存在则返回错误提示,否则提示用户确认删除操作(暂时不提供回收站功能,删除为彻底删除)。



 

  评论这张
 
阅读(68)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017