Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

用Java实现了一个关系型数据库,DBMS数据库管理系统,可使用常用增删改查的SQL语句,具有数据字典,数据索引文件,并且实现了启发式查询优化

Notifications You must be signed in to change notification settings

lxqgithub/wyxDBMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

37 Commits

Repository files navigation

wyxDBMS 是一个用Java实现的关系型数据库

实现功能

  • 1、用Java语言建立数据库表。
    (1) 数据文件和字典文件存储结构和存取方法为按行存取,数据为字符型可直接阅读。
    (2) 属性的个数任意,属性的类型包括整数int,字符串varchar,双精度浮点double。
    (3) 表的相关信息存入数据字典。

  • 2、为关系表插入元组。
    (1) 用VALUES子句为新建立的关系插入元组。
    (2) 用VALUES子句在关系模式修改之后按照新的模式插入元组。
    (3) 不指定属性,插入元组的所有属性值;
    (4) 插入元组的指定属性的值。
    (5) 修改相应的索引文件。

  • 3、实现属性的添加和删除功能。
    (1)为基本表添加属性并维护数据字典。

  • 4、实现表中元组的删除和修改功能,维护索引文件。
    (1)实现删除数据库记录的功能。
    a) 没有WHERE条件,删除关系中的所有元组。
    b) 指定WHERE条件,删除满足条件的元组。
    (2)实现修改数据库记录的功能。
    a) 没有WHERE条件,修改所有元组的指定属性的值。
    b) 指定WHERE条件,修改满足条件的元组的指定属性的值。
    (3)修改相应的索引文件。

  • 5、实现表的删除功能。
    (1)删除表并维护数据字典。
    (2)删除相应的索引文件。

  • 6、索引的创建、维护与删除
    (1)为关系表的所有属性建立稠密索引(文件路径+文件行号)。
    (2)使用java类库的treeMap(红黑树实现)存储索引项。
    (3)实现数据增删改时索引的维护功能。
    (4)实现数据增删改查时,从索引树中索引所需的数据文件,提高数据操作效率。
    (5)可控制文件行数,默认:lineNumConfine = 10;每插满10行,新建数据文件。

  • 7、实现显示数据库表的功能。
    (1)实现"SELECT * FROM 表名"。
    (2)显示表的结构和内容。

  • 8、查询优化:
    (1)实现启发式关系代数优化算法。(对原始的语法树进行优化处理,生成查询计划,选择代价最小的。)

  • 9、查询执行:
    (1)、实现单关系的投影操作(select 属性名列表 from 关系名)。
    (2)、实现单关系的选择操作(select * from 关系名 where 条件表达式)。
    (3)、实现单关系的选择和投影操作(select 属性名列表 from 关系名 where 选择条件)。//选择条件是指"属性名 操作符 常量"形式的条件
    (4)、实现多个关系的选择、投影和连接操作(select 属性名列表 from 关系名列表 where 条件表达式)。
    (5)、实现两个关系和多个关系的连接操作(select * from 关系名列表 where 连接条件)。//连接条件是指"属性名 操作符 属性名"形式的条件
    (6)、实现多个关系的选择、投影和连接操作(select 属性名列表 from 关系名列表 where 条件表达式)。

  • 10、用户权限
    (1)、创建用户、设置密码,并写数据字典;
    (2)、为用户授权,并写数据字典(grant admin to userName;);
    (3)、用户进行任何数据库操作前,要根据数据字典进行权限验证;
    (4)、撤销用户权限,并修改数据字典(revoke admin from userName;)。

About

用Java实现了一个关系型数据库,DBMS数据库管理系统,可使用常用增删改查的SQL语句,具有数据字典,数据索引文件,并且实现了启发式查询优化

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%

AltStyle によって変換されたページ (->オリジナル) /