- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我参加了一个研究生类(class),这只是一个大项目 - 编写 DBMS。
我们的目标不是重新发明轮子和制造企业 DBMS 来与 Oracle 竞争。只需要支持一小部分 SQL 命令。创建一些用于存储多媒体或其他东西的奇特混合模型 DBMS 的目标也不是。它必须是传统的 RDBMS。
该项目的主要目标是使用编程技术来利用现代架构(多核处理器)来构建高性能数据库(速度、负载)。
我只是想知道是否有关于查询评估、优化器、适合 DBMS 的数据结构或基本上任何可以帮助我创建出色项目的资源。例如,教授正在抛出诸如元编程之类的术语。
项目必须完全用 C++ 完成。
感谢到目前为止的回复!我无法优化现有的 DBMS,例如 MySQL,因为该项目需要您从头开始构建自己的 DBMS。是的,我知道这在很大程度上是在重新发明轮子,但是还有一些新颖的查询评估和优化算法的余地。如果您知道处理这个特定领域的任何好的资源或书籍,请告诉我!
最佳答案
首先你需要了解关系演算并制作一个编译器来处理从 sql 生成它,幸运的是 sql 是一种简单的语言而且这还不错。
然后熟悉索引的 bx 树。然后创建一个提交和回滚空间,这就是它的全部内容。与您可能从事的其他项目相比,这不是火箭科学,但如果您想在学期/学年结束时取得好成绩,那绝对是您最好立即开始的事情。
编辑:哦,就现代架构而言,树通常不会从多线程中获益太多。磁盘读取也不行。另一方面,使用操作系统级调用使用整个内存对于高性能至关重要,而不仅仅是进程中通常可寻址的内存。
关于c++ - 编写 DBMS 的技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2031922/
是否有一个java库能够将数据库从任何DBMS(Mysql,SQLServer,Oracle,SQLite,...)导出到任何DBMS? 最佳答案 这并不容易..但您可以尝试使用 apache tor
我正在寻找令人满意的选项来对我的 .NET DAL 类进行单元测试;由于它们是 DAL 类,因此它们直接使用 ADO.NET 访问数据库。目前,我使用 MSSQL 数据库的实例进行测试,但想知道有哪些
假设我有以下关系(表): 学生(身份证、姓名、家庭) 类(class)(id、标题、单位、引用) Std-Course (std-id, course-id)//std-id 和 course-id
假设我有一个表 Table1,其中包含属性 id、姓名、地址、薪水。现在,我编写以下查询: SELECT * FROM Table1 WHERE 2*Salary > (SELECT MAX(Sala
我们正在为场馆开发支付系统。现在我们正在考虑为我们的应用程序使用什么 DBMS。目前我们正在使用微软的 sql express 来存储我们的数据。但是因为该系统将在非常繁忙的场所使用,我们认为我们需要
接受这个查询: SELECT * FROM MyTable WHERE MyColumn = 'SomeValue' ORDER BY SomeFakeQualifier.MyCol
我需要一个 DBMS,但不知道该选择哪个。基本上,应用程序进行许多 INSERT/UPDATE,但也进行许多 SELECT。 SELECT 大多非常简单,只有一个字段。 我目前正在使用 MySQL +
这里有人可以澄清“DBMS”和“数据库服务器”之间的区别吗?还有,'MySQL'是数据库查询语言的名称还是DBMS的名称? 最佳答案 DBMS 代表数据库管理系统(参见维基百科 http://en.w
我们知道: A schedule in which transactions are aligned in such a way that one transaction is executed fi
我刚刚阅读了 DBMS 中 3NF 的定义,它指出: 函数依赖 X --> A 是允许的,如果:1. X 是 super 键。2. A 是某个键的一部分。 我有两个疑问: a:我不明白第二个条件对消除
几年来,我一直沉浸在 MsSql/MySql 的世界里,我决定再展翅飞翔。目前,我正在研究哪种 DBMS 擅长归档数据时所需的事情。例如。大量写入和低读取。 我已经看到了 NoSQL 运动,但我有一个
好的..我已经对此进行了研究,但我对此研究得越多,我就越感到困惑。所以想到在这里发帖。 DBMS 提供数据库服务器功能 DBMS 有一个服务器组件和一个客户端组件 DBMS = 数据库服务器软件 DB
如果我们使用外部过程,我可以用其他语言执行一些代码,我想使用一些数值方法库来做一些矩阵计算并将结果存储在 SQL、Oracle 或任何 DBMS 中,这可能吗? 也许在 SQL 中有一个表,并告诉外部
Augmentation功能依赖性中的规则指出 当 X -> Y 时, 然后是 XZ->YZ。 有人可以举一个真实世界的例子吗? 最佳答案 如果 X 是客户 ID,Y 是客户姓名,Z 是出生日期,则:
我想知道哪些 DBMS 在其查询计划/执行中实际使用了多线程? 最佳答案 Oracle 支持这一点,SQL Server 和 DB2 也是如此。不过,我不认为 MySQL 或 PostgeSQL 支持
数据库管理系统(尤其是MySQL)对表的最大行数有限制吗? 我想创建用于保存日志文件的表,它的行数增加得如此之快,我想知道我应该怎么做才能防止出现任何问题。 最佳答案 我认为没有官方限制,这将取决于最
因此,我正在努力思考整个“规范化”的问题。为了更好地理解它,我想出了一个存储歌曲的案例 假设我有以下数据库: 专辑表: album_name| genre album_1|
DBMS 中的空值代表什么? 是未赋值还是不适用还是零还是空格? 最佳答案 Null 是 SQL 中用来表示数据库中不存在数据值的特殊标记。由关系数据库模型的创建者 E. F. Codd 引入,SQL
DBMS 如何利用撤消缓冲区和重做日志文件来恢复对数据库所做的更改? 最佳答案 例如在 Oracle 上,重做日志文件记录由于事务和内部 Oracle 服务器操作而对数据库所做的更改。并且这些文件保护
是否有任何开源分层数据库或现有 RDBMS 之上的仿真? 我正在搜索一个 DMBS(或现有 RDBMS 的插件),它可以存储分层数据并允许对分层数据执行查询(类似于“SELECT LEVEL ...
我是一名优秀的程序员,十分优秀!