{"id":27139824,"url":"https://github.com/xray2016/minisql","last_synced_at":"2025-04-08T04:59:43.211Z","repository":{"id":245301782,"uuid":"166405996","full_name":"xRay2016/Minisql","owner":"xRay2016","description":"This is a project for a simple database management system.","archived":false,"fork":false,"pushed_at":"2019-01-18T13:57:39.000Z","size":256,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-06-21T08:42:44.459Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xRay2016.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-18T13:03:44.000Z","updated_at":"2024-06-21T08:42:48.447Z","dependencies_parsed_at":"2024-06-21T08:42:48.192Z","dependency_job_id":"b3259737-f373-42f7-843c-2cea8411e2ff","html_url":"https://github.com/xRay2016/Minisql","commit_stats":null,"previous_names":["xray2016/minisql"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRay2016%2FMinisql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRay2016%2FMinisql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRay2016%2FMinisql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xRay2016%2FMinisql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xRay2016","download_url":"https://codeload.github.com/xRay2016/Minisql/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247779691,"owners_count":20994573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-08T04:59:42.782Z","updated_at":"2025-04-08T04:59:43.195Z","avatar_url":"https://github.com/xRay2016.png","language":"C++","readme":"﻿\n# MiniSql\n\n@(DBMS)[Minisql]\n\n**MINISQL** 是一个基于文件系统的DBMS，它实现了基础的查找，插入，删除和更新等操作，支持不相关子查询，支持group by子句和聚集函数，并且它能够根据查找的select语句实现基本的查询优化，并且对查询等操作有带有索引的物理优化。\n\n- **示例sql** - 见example.txt\n- **环境** -windows  \n\n\n----------\n\n\n## 模块介绍\n\n\u003e Minisql主要分为三个部分，第一个部分是frontend类，主要负责从命令行中读取sql语句以及展示相应的输出。第二个部分是Parser类，Database类以及API类，主要负责对相关用户权限的检查以及对sql语句解析优化并执行相关的调用。第三个部分是table_manager和data_dictionary_manager类等，主要负责表，数据字典等的信息在文件系统中的存储以及查询，插入等操作的支持。\n\n\u003e ![Alt text](./pic1.png)\n\n\n\n### frontend类\n\u003efrontend类主要负责对于命令行从读取命令\n\n### Parser类\n\u003eParser类负责接收frontend传来的sql语句，然后解析出对应的sql语句的含义，传递给Database类执行相关的调用。\n\n### Database类\n\u003eDatabase类主要负责对Parser类的调用进行权限检查，合法性检查等工作，并对成功的操作执行日志文件的记录。\n\n### API类\n\u003e将对底层的操作封装在一个类中，方便上层调用。\n\n### Buffer_manager类\n\u003e对于表而言，我们使用page来进行管理，所以需要一个类对页进行管理，执行对应页的调入和换页等操作。\n\n### Table_manager类\n\u003e实现对表的基本操作，包括定义删除增删查改等等，同时实现对表中数据的索引等等。\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxray2016%2Fminisql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxray2016%2Fminisql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxray2016%2Fminisql/lists"}