利用简单的字符串匹配模拟数据库的DBMS

DBMS管理系统

先说一下,为什么要在这样一个时候,写一个DBMS,主要是我的学长告诉我,周日要找我吃饭,我平时不在学校住啊,我就早上就赶过来了,我就问啊,咱们什么时候吃饭啊,没人回答。。。过了一会终于回答了,告诉我晚上六点半。。。我就想那我可以做点工作嘛,毕竟最近一直在打工嘛,刚想敲安卓代码,就发现没带数据线没有办法调试,所以就写这个数据库实验玩一玩咯,打算一次性全写完得啦,不想一次一次得写啦。

我先将数据库的功能进行了分类:

  • 一. 基于数据库的操作

1.数据库的创建:
创建数据库时,需要输入管理员的用户名,用户口令,管理员的权限默认是最大值,同时需要将管理员的用户名,用户口令,用户权限存到数据字典中,其中用户口令将采用MD5加密,这样即使数据字典被破解,管理员的口令也不会被盗取。


2.完整性的约束
①:创建表的过程,要检查表名是否重复,如果重复将提示创建表失败
②:数据插入过程中,要检查是否符合用户输入的类型值,如果不满足,将提示用户插入失败


3.数据库安全问题的处理
①:要建立用户权限的机制
②:所有用户的用户口令要采用MD5加密后存储

  • 二. 文件操作

1.利用java对txt创建的操作
2.利用java向txt中写入的操作
3.利用java对txt内容读取的操作
4.利用java删除txt的操作

  • 三.用户类的定义

1.为用户定义用户名、密码、权限的操作
2.管理员可以授权的操作

  • 四.对表内容的操作

1.增添数据的操作:Insert
①:要检查表名是否正确
②:要检查插入的属性个数是否正确,如果属性值为空请输入null
③:检查属性值是否是预先定义好的类型


2.删除数据的操作:Delete
①:该删除操作需要删除的是一整行数据,如果需要删除某个属性值,需要调用更改的接口,将值修改为null即可


3.修改数据的操作:Update
①:修改是可以根据用户输入的条件进行修改,需要输入新的一行,暂不支持单独输入某一个属性的修改


4.查询数据的操作:Select
①:能够处理多个表的连接操作;查询条件包括and、or、=、≠、≤、≥、<、>
②:实现全关系选择操作(select * from 关系名)。
③:实现单关系的投影操作(select 属性名列表 from 关系名)。
④:实现单关系的选择操作(select * from 关系名 where 条件表达式)。
⑤:实现单关系的选择和投影操作(select 属性名列表 from 关系名 where 选择条件)。//选择条件是指“属性名 操作符 常量”形式的条件
⑥:实现两个关系和多个关系的连接操作(select * from 关系名列表 where 连接条件)。//选择条件是指“属性名 操作符 属性名”形式的条件
⑦:实现两个关系和多个关系的选择和连接操作(select * from 关系名列表 where 选择条件和连接条件)。
⑧:实现两个关系和多个关系的投影和连接操作(select 属性名列表 from 关系名列表 where 连接条件)。
⑨:实现两个关系和多个关系的选择、投影和连接操作(select 属性名列表 from 关系名列表 where 条件表达式)。


5.增添主键的操作:CreateKey
6.删除主键的操作:DeleteKey
7.修改主键的操作:UpdateKey
8.输出表结构的操作:Select *

  • 五.对表这个层级的操作

1.创建表:CreateTable
①:需要先查重,如果已经有该表则提示用户创建表失败
②:需要将表的属性,和属性信息写到数据字典中,需要建立这样一张表存储在txt中


2.删除表:DeleteTable
①:删除数据字典中的信息,删除对应的txt文件

  • 六.修改表结构的操作

1.增添表的属性:AlterAdd
①:检查是否已经具有该属性,已经有,回复用户失败
②:修改对应的数据字典,将表中加一列,属性值全部置空


2.删除表的属性:AlterDrop
①:检查是否已经具有该属性,若没有,回复用户失败
②:修改对应的数据字典,删除表中的这一列


3.创建索引的操作:CreateIndex
①:检查是否已经具有该索引,如果有这个索引,则回复失败
②:创建索引文件,修改数据字典中表的信息


4.删除索引的操作:DeleteIndex
①:检查是否已经具有该索引,如果没有这个索引,则回复失败
②:删除索引文件,修改数据字典中表的信息

//TODO 未完待续
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容