#作业清单

5001

暂无

5002

  • (03/10/2025 23:30)

  • (29/10/2025 23:30)

5003

  • (03/10/2025 24:00)

    注意:大学关于学术不端和抄袭(作弊)的政策在本课程中将受到高度重视。所有提交内容必须是您自己的写作或代码。您不得让其他学生复制您的作品。讨论作业是可以的,例如理解相关概念。本作业为个人作业。请将您的作品打包为一个名为 A1-XXXX-YYYY.zip 的压缩文件上传,其中 XXXX 是您的姓名,YYYY 是您的学号。请确保压缩文件中包含所有文件。

    第一部分:ER建模(50分)

    提交由绘图程序绘制的图表(可使用任何您喜欢的程序,例如来自 实体关系模型工具 的 ER 绘图工具),不接受手绘图。如果您对某些设计选择不确定,可以添加解释说明。将您的图表和可选解释上传到一个名为 pdf 的 PDF 文件中。

    绘制一个单一的 ER 图来表示以下规格说明:

    • 一家银行企业需要存储客户(由 cid 标识,属性包括 cname)和账户(由 aid 标识,属性包括透支限额金额)的信息。(8分)

    • 客户可以是公司(属性包括街道、城市)或个人(属性包括性别、年龄)。(10分)

    • 客户拥有账户。对于每个客户拥有的账户,我们需要存储开户日期(账户开通日期)和 PIN 码(客户访问账户的密码)。一个客户可以有多个账户,但一个账户只能由一个客户拥有。(7分)

    • 添加三个实体:贷款(属性包括贷款号、贷款类型和金额,每个贷款有唯一的贷款号)、贷款支付(属性包括日期、金额和支付号)和分行(属性包括分行号、城市和街道,每个分行有唯一的分行号)。对于给定贷款,支付号标识唯一的支付,但不同贷款的支付号可能相同(例如,Jack Smith 的支付 #1 是金额 $100 的唯一支付,而 Jackie Chan 的支付 #1 可能是金额 $1,000 的不同支付)。(15分)

    • 每个贷款在单一唯一的分行办理。客户借款贷款;一个客户可能有多个贷款,而一个贷款可能与多个客户关联(例如,一对夫妇可能共同签署抵押贷款)。(8分)

    • 提交文件格式和图表呈现质量。(2分)

    注:如果您认为某些细节未完全指定,请运用常识判断。如有疑问,请明确说明您的假设及其如何影响模型。

    第二部分:为第一部分创建 SQL 关系模式(50分)

    请在您的计算机上安装 DB Browser for SQLite,并使用它运行所有 SQL 语句。我们使用 SQLite 是因为它是免费的,且可能是最好的轻量级数据库。提交一个包含所有 SQL 语句的单一 SQL 脚本文件。该文件应在 SQLite 中可执行。将文件命名为 part2.sql。您可以添加可选解释(例如,为什么某些约束无法在 SQL 中表示)。请将这些写入另一个名为 explanation_part2.pdf 的文件中。

    • 创建关系模式:为表示该银行企业所需的每个关系创建一个表。您可能需要先将 ER 模型转换为关系模式,再将关系模式转换为 SQL 命令。例如,在章节 3.1 中,学生表定义为 “Students (sid: string, name: string, login: string, age: integer, gpa: real)”。您无需以这种格式写出关系模式;我们仅根据创建表的 SQL 语句评分,而非模式本身。但我们认为模式会帮助您。(20分)

    • 施加完整性约束:施加隐含或声明的约束,如域(例如,dno 为整数)、键约束、外键约束和参与约束(使用 NOT NULL)。请尽可能包含第一部分中提到的约束。如果第一部分中有无法在 SQL 语句中捕获的约束,请描述该约束并解释原因。(25分)

    • 呈现质量。(5分)

  • (10/12/2025 24:00)

    本课程项目为学生提供了两种不同但同样严谨的途径,以展示他们对数据库系统概念和实践技能的理解。学生可以选择以下两个方向之一:

    方向一:数据库应用开发

    设计和实现一个围绕关系型或非关系型数据库系统的全栈应用程序。该应用程序应解决现实问题,展示高效的数据建模,支持有意义的查询,并采用适当的软件和数据库工程实践。

    方向二:研究论文复现(SIGMOD/VLDB/ICDE 风格)

    选择并复现一篇来自顶级数据库会议(如 SIGMOD、VLDB、ICDE 或 EDBT)的已发表研究论文。目标是理解、重新实现(至少核心思想或算法)并评估论文的技术贡献。该方向强调批判性阅读、系统实现和实验验证。

    项目提交内容和评分标准

    1. 源代码(30%)

    方向一:提交应用程序的所有源代码,包括数据库模式、后端逻辑、前端(如适用)以及任何数据生成或测试脚本。方向二:提交论文核心算法或系统组件的实现,以及测试脚本、合成/真实数据集和评估代码。为所有代码创建一个在线代码仓库(如 GitHub)。包含清晰的 README,说明结构、依赖项以及如何运行代码。
    2. 视频演示(20%)

    方向一:录制 5-8 分钟的屏幕录像,展示应用程序的关键功能:用户界面、查询执行、数据流和后台操作。方向二:提交 5-8 分钟的视频,解释所选论文、实现方法以及实验结果(例如性能数据、正确性验证)。使用屏幕录制工具(如 OBS、Zoom、Loom)并将视频上传至文件共享服务(如 Google Drive、Dropbox、OneDrive)。确保链接可访问。在最终报告中包含视频链接。
    3. 书面报告(50%)

    提交一份名为 XXXX-report.pdf 的全面 PDF 格式报告。报告应包括:

    小组信息:

    所有小组成员的姓名和本科专业贡献声明:

    明确列出每个成员的角色和贡献项目概述:

    方向一:问题陈述、应用目标和目标用户方向二:复现论文的标题、作者和发表会议;选择动机技术设计:

    方向一:软件架构(如 MVC、微服务)、技术栈和系统图方向二:论文技术方法总结、实现策略及任何偏差数据库设计(方向一)或算法/系统实现(方向二):

    方向一:ER 图、模式设计、规范化级别、索引策略和示例查询方向二:核心算法描述、数据结构以及如何验证正确性评估与结果:

    方向一:展示查询效率、可扩展性或可用性方向二:实验设置、使用数据集、性能指标以及与原始结果的比较(如适用)挑战与经验教训

    参考文献:包含复现的论文(方向二)

    提交内容链接:

    源代码仓库(如 GitHub)视频演示(含有效链接)附加指南

    小组可由 3-5 名学生组成。方向二的论文必须来自 SIGMOD、VLDB、ICDE 或等效数据库会议(如果会议不明确,需经教师批准)。所有代码和报告必须原创。任何外部资源或代码片段需正确引用。迟交将根据课程政策扣分。本项目旨在通过实践开发或严谨的科学复现加深你对数据库系统的理解——这两条路径在现代数据管理研究和工程中均具有重要价值。

    让你的好奇心指引选择,并追求深度、清晰度和技术卓越。

6007

  • (17/10/2025 24:00)

  • (01/12/2025 24:00)

6012

暂无

6015

  • (03/10/2025 24:00)