All Projects → wwwyanxin → Wyxdbms

wwwyanxin / Wyxdbms

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

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Wyxdbms

Crate
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of data in real-time.
Stars: ✭ 3,254 (+1780.92%)
Mutual labels:  sql, database, dbms
Cubrid
CUBRID is a comprehensive open source relational database management system highly optimized for Web Applications.
Stars: ✭ 184 (+6.36%)
Mutual labels:  sql, database, dbms
Orientdb
OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries. OrientDB Community Edition is Open Source using a liberal Apache 2 license.
Stars: ✭ 4,394 (+2439.88%)
Mutual labels:  sql, database, dbms
Ohmysql
Easy direct access to your database 🎯 http://oleghnidets.github.io/OHMySQL/
Stars: ✭ 166 (-4.05%)
Mutual labels:  sql, database, dbms
Event Management
helps to register an users for on events conducted in college fests with simple logic with secured way
Stars: ✭ 65 (-62.43%)
Mutual labels:  sql, database, dbms
Laravel Db Profiler
Database Profiler for Laravel Web and Console Applications.
Stars: ✭ 141 (-18.5%)
Mutual labels:  sql, database
Sequelize Ui
Browser-based GUI for previewing and generating Sequelize project files.
Stars: ✭ 142 (-17.92%)
Mutual labels:  sql, database
Querybuilder
SQL query builder, written in c#, helps you build complex queries easily, supports SqlServer, MySql, PostgreSql, Oracle, Sqlite and Firebird
Stars: ✭ 2,111 (+1120.23%)
Mutual labels:  sql, database
Norm
Access a database in one line of code.
Stars: ✭ 152 (-12.14%)
Mutual labels:  sql, database
Reactive record
Generate ActiveRecord models for a pre-existing Postgres db
Stars: ✭ 132 (-23.7%)
Mutual labels:  sql, database
Spark With Python
Fundamentals of Spark with Python (using PySpark), code examples
Stars: ✭ 150 (-13.29%)
Mutual labels:  sql, database
Myproxy
A sharding proxy for MYSQL databases
Stars: ✭ 153 (-11.56%)
Mutual labels:  sql, database
Stratosdb
☄️ ☁️ An All-in-One GUI for Cloud SQL that can help users design and test their AWS RDS Instances
Stars: ✭ 140 (-19.08%)
Mutual labels:  sql, database
Php Login System
Embeddable and Secure PHP Authentication System with Login, Signup, User Profiles, Profile Editing, Account Verification via Email, Password Reset System, Remember-Me Feature and more.
Stars: ✭ 135 (-21.97%)
Mutual labels:  sql, database
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (+1178.03%)
Mutual labels:  sql, database
Mysql
Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package
Stars: ✭ 11,735 (+6683.24%)
Mutual labels:  sql, database
Bats
面向 OLTP、OLAP、批处理、流处理场景的大一统 SQL 引擎
Stars: ✭ 152 (-12.14%)
Mutual labels:  sql, database
Sqlservice
The missing SQLAlchemy ORM interface.
Stars: ✭ 159 (-8.09%)
Mutual labels:  sql, database
Sqldb Logger
A logger for Go SQL database driver without modify existing *sql.DB stdlib usage.
Stars: ✭ 160 (-7.51%)
Mutual labels:  sql, database
Query Exporter
Export Prometheus metrics from SQL queries
Stars: ✭ 166 (-4.05%)
Mutual labels:  sql, database

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;)。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].