如何用ai来完成数据库分析(1)

news2024/11/15 11:38:26

前言

因一些课程设计要写长篇分析报告,这里借用ai做一篇指导教程,分上下两篇。这篇也会教如何让ai给你你想要的答案,众所周知,现在的ai并不智能,不针对各类厂家,但是放出来的确实表象如此。

但其实问法决定了我们很多时候无法解锁其100%的功能,错误的问答方式甚至让回复比1.0的版本更加混乱无序。所以,这篇也有ai指导性的说明。

条件

假定,我们要对一张小票进行数据库分析,那么所需要写入的报告至少要包含以下内容:

  • 数据库相关操作知识
  • 关系模型和概念结构先关知识
  • 分析过程和表设计思路
  • 构建数据库流程和依赖关系的理由
  • 模拟数据。
  • 查询,一定程度上查询出小票该有的数据(可选)

工具

Navicate15(可以不一样,只用模型,查询语句,不使用更多功能)

er图制作网站,也可自己画图,不过这个真的很好用:

https://zhzsoft.cn/er/

一个可插图的文档编辑软件wps啦,Word文档都可。

问答ai,我这里展示用的是阿里的通义千问,也可用星火,不过我个人认为通义千问的排版更舒服。

制作

知识罗列

要做一个长篇的报告最重要的就是知识要完全覆盖,非毕设或者上交比赛的论文类,大多对文献引用,专业格式要求较低,我做的这类是课程设计的结课报告,附带有一个答辩,没有那么严格,所以这边可加入大量篇幅。

请尽可能覆盖你可能用到的知识点,这里可以用ai,我们分析一下该怎么问

  • 首先,我把作者分为不会,不了解数据库的人和了解一些或者会数据库的人,我们先确定好问的内容,也就是通过ai来问出自己的需要,然后做知识点筛选就好了,举个例子。
问:请问,我想写一篇数据库课程设计报告,我都可能用到哪些知识呢?
通义ai:
撰写一份数据库课程设计报告时,你需要综合运用数据库理论与实践方面的知识。以下是一些可能用到的关键知识点:

1. 数据库系统概览
数据库系统的定义
数据库管理系统(DBMS)的作用
数据库系统的主要组成部分(如数据定义语言DDL、数据操纵语言DML等)
2. 数据模型
关系模型
层次模型
网状模型
面向对象模型
NoSQL模型
3. 关系数据库理论
关系代数
关系演算
范式化(第一范式至第三范式,BCNF)
数据完整性约束(实体完整性、参照完整性和用户定义完整性)
4. SQL
SQL基础知识
数据定义(CREATE, ALTER, DROP)
数据操作(INSERT, UPDATE, DELETE)
数据查询(SELECT语句)
子查询
连接(JOIN)
视图
存储过程与触发器
5. 数据库设计
需求分析
概念设计(ER模型)
逻辑设计
物理设计
性能优化
6. 数据库安全
访问控制
加密
审计
备份与恢复策略
7. 数据库管理
数据库性能调优
查询优化
索引使用
并发控制
事务管理(ACID属性)
8. 分布式数据库
分布式系统的概念
分布式数据库的特点
数据分区
数据复制
9. 新兴技术
大数据处理
数据仓库
数据挖掘
云计算中的数据库服务

可以看到从6往后就已经不是我们设计所涉及的内容了,前五条让ai展开说明,即可,通义的排版可直接用,我们需要说“前五条请展开说明”,ai会给我们这样的知识汇总:

当然可以。以下是关于数据库课程设计报告中前五条内容的详细展开说明:

1. 数据库系统概览
定义: 数据库是一个长期存储在计算机内的、有组织的、可共享的数据集合。数据库系统包括数据库本身、数据库管理系统(DBMS)、应用程序、数据库管理员(DBA)和最终用户。
DBMS的作用: DBMS是位于用户与操作系统之间的软件层,用于管理和控制数据库资源。它的主要功能包括数据定义、数据操作、数据控制和数据维护。
数据库系统的主要组成部分:
数据定义语言(DDL): 用于定义数据库结构的语言,如创建表、索引等。
数据操纵语言(DML): 用于添加、删除和更新数据的语言。
数据控制语言(DCL): 用于管理权限和控制访问的语言。
事务控制语言(TCL): 用于管理事务的开始、提交和回滚。
......

不需要写太多,因为我们知识点篇幅太多会提高查重率,适当即可,因为我们毕竟是数据库设计,相信多少听过数据库的人都应该知到经典的:增删改查。这些还有一些索引语句,也可替换一部分纯知识点来做加分项。

  • 然后我们前面说了er图,其实这部分内容也可以加上,这个ai本身不支持绘画er图,所以只需要说类似:“请讲一下er图相关知识”。ai就会给罗列,因为篇幅,这里不举例了。

研究对象分析

也就是你对这个小票的看法和推理过程,因为我这边暂时没有小票,向ai寻求一张肯存在的数据,然后询问,小票模板如下:

购物小票
	商家信息:
		商家名称
		商家地址
		商家联系电话
	交易日期和时间:
		交易发生的日期
		交易发生的时间
	销售单据信息:
		发票或小票号码
	商品或服务信息:
		商品名称或服务项目
	单位价格
	数量
	总价

这时候就要准备让他以设计者的身份帮我们设计数据库了,我们需要先给ai一个大方向,像这样。
在这里插入图片描述
我们并不是一定需要让ai把话说完,目前市面上的ai采取的是读取分析,也就是如果分析数据的时候,将其打断,不让他把你的信息重复一遍,那么结果很可能会很混乱,我们后面会讲到,像这样只要他已经完成了第一句话,“我可以”这样的话,我们就已经可以打断了,不过这样的给与前提,总字数不会太多就是了。

现在我们把结构给ai
在这里插入图片描述
他给了我一些表单还有数据库创建语句,我们先保存备用

CREATE TABLE Merchant (
    MerchantID INT PRIMARY KEY,
    Name VARCHAR(255) NOT NULL,
    Address VARCHAR(255),
    Phone VARCHAR(20)
);

CREATE TABLE Sale (
    SaleID INT PRIMARY KEY,
    MerchantID INT,
    SaleDate DATE NOT NULL,
    SaleTime TIME NOT NULL,
    InvoiceNumber VARCHAR(50) UNIQUE,
    FOREIGN KEY (MerchantID) REFERENCES Merchant(MerchantID)
);

CREATE TABLE Product (
    ProductID INT PRIMARY KEY,
    ProductName VARCHAR(255) NOT NULL,
    UnitPrice DECIMAL(10, 2) NOT NULL
);

CREATE TABLE SaleDetail (
    SaleDetailID INT PRIMARY KEY,
    SaleID INT,
    ProductID INT,
    Quantity INT NOT NULL,
    TotalPrice DECIMAL(10, 2) NOT NULL,
    FOREIGN KEY (SaleID) REFERENCES Sale(SaleID),
    FOREIGN KEY (ProductID) REFERENCES Product(ProductID)
);

然后,其实我们并没有得到想要的答案,还记得么?我们需要的是设计过程,ai给的是结果,这出现了回答偏差,那么我们就需要修正。

请说明这么设计的原因,每个数据类型和依赖存在的原因都要写出,缩短到300字以内

解释:

  • 首先我们要的是设计原因,你需要明确告诉ai你的需求,然后他既然已经给了你建表的语句,那么具体的细节,包括我前面说的依赖,还有这次他说的数据类型,我们都要囊括进去,以便ai修正
  • 其次缩短到300字,为什么不是100不是200,300会不会很多,首先设定范围是为了防止ai过度解读你的话,有些ai的版本在2.5偏下的时候会非常乐于发长解读,我们并不需要那么长,但是太低会导致ai不去思考,套用自己上一段的内容。我们在300这个区间里找到需要的,快速截取一段作为我们需要的即可。
  • 最后我们得到的分析如下:
Merchant 表存储商家信息,使用 INT 类型的 MerchantID 作为主键,确保每个商家都有唯一的标识。Name 和 Address 使用 VARCHAR 类型来存储文本信息,Phone 也是 VARCHAR 类型,因为电话号码可能包含特殊字符。
Sale 表记录每次交易的信息,SaleID 作为主键,MerchantID 作为外键,确保每笔交易都关联到一个合法的商家。SaleDate 和 SaleTime 分别使用 DATE 和 TIME 类型来精确记录交易时间。
Product 表存储商品信息,ProductID 作为主键,ProductName 使用 VARCHAR 类型存储商品名称,UnitPrice 使用 DECIMAL 类型存储单价,保证数值精度。
SaleDetail 表记录每笔交易中的商品明细,SaleDetailID 作为主键,SaleID 和 ProductID 作为外键,确保每条明细都关联到一笔合法的交易和一个合法的商品。Quantity 使用 INT 类型来存储数量,TotalPrice 使用 DECIMAL 类型来存储总价。

数据库设计

数据部分

下章节会解释如何使用navicate和生成er图,我们先把ai回到上个节点,让他为我们添加一些数据,以增长我们的篇幅,和数据校验。

在这里插入图片描述
这里点击后可以重置你之前的问答,将这句话重新编辑来得到你需要的结果,我们这里改成:

请根据你所提供的数据库文件,添加一些可用数据

ai给出的数据添加

1. Merchant (商家信息表)
INSERT INTO Merchant (MerchantID, Name, Address, Phone)
VALUES
    (1, 'ABC 商店', '上海市浦东新区世纪大道100号', '13800138000'),
    (2, 'XYZ 超市', '北京市朝阳区建国路88号', '13900139000');
2. Sale (销售单据表)
INSERT INTO Sale (SaleID, MerchantID, SaleDate, SaleTime, InvoiceNumber)
VALUES
    (1, 1, '2024-07-26', '14:30:00', 'INV12345'),
    (2, 2, '2024-07-26', '15:15:00', 'INV67890');
3. Product (商品信息表)
INSERT INTO Product (ProductID, ProductName, UnitPrice)
VALUES
    (1, '苹果', 5.50),
    (2, '牛奶', 10.00),
    (3, '面包', 3.00);
4. SaleDetail (销售明细表)
INSERT INTO SaleDetail (SaleDetailID, SaleID, ProductID, Quantity, TotalPrice)
VALUES
    (1, 1, 1, 2, 11.00),  -- 苹果 x 2
    (2, 1, 2, 1, 10.00),  -- 牛奶 x 1
    (3, 2, 3, 3, 9.00);   -- 面包 x 3
ps:

复制文本框请点击这里,因为不同版本并不支持相同的markdown格式转换,长篇粘贴,会导致这些1234的行号也加入进去,非常不妥。)

ps:

复制文本框请点击这里,因为不同版本并不支持相同的markdown格式转换,长篇粘贴,会导致这些1234的行号也加入进去,非常不妥。)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP ABAP代码模板CLASS

此模板也使用OO ALV,创建新程序简单,功能包装独立,用到一个独立的CLASS. 1.ALV类 class ZCL_CM_GUI_ALV definitionpublicfinalcreate public .public section.data REPID type SYREPID .data DYNNR type SYDYNNR .data TOOLBAR type CHAR30 .data USE…

Linux中的进程替换

一、理解进程替换 首先,exec* 系列函数能让进程执行新程序,上图我们用到的是 int execl(const char* path, const char* arg, ...)函数,所以相当于执行了 ls -la 指令,这就完成了进程的替换。 本来子进程中存放的是父进程的代码和…

5. 有效的括号

5. 有效的括号 题目题目分析 题目 题目分析 一个很标准的关于栈知识点的应用,首先先初始化一个栈,再遍历字符串s,当匹配到为左边字符串是将其压入栈中,遇到右边字符串时要判断此时的栈顶元素是否与其匹配,若匹配则将栈顶元素弹出&…

GPX格式详解,javascript写入读取GPX示例

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

如何使用Markdown编辑器

欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#x…

【PLC】关于子程序功能以及编程过程中的部分心得

博主在使用GX Works对三菱PLC编程的时候用到了子程序功能,这里将使用子程序功能中的一点心得以及编程过程中的部分心得分享给大家。 博主主要对以下几个问题有一些心得: 1、如何调试带有子程序的程序? 2、如何让程序按照计划的顺序去执行&…

【OpenCV C++20 学习笔记】自定义线性滤波-filter2D

自定义线性滤波 原理相关卷积核线性滤波操作 API实例 原理 相关 线性滤波的是指就是相关,即计算图像中的每个部分和卷积核(kernel)的相关结果。 卷积核 卷积核本质上是一个固定大小的系数数组,数组中的某个元素被作为锚点(一般是数组的中…

C++之从C过渡(上)

C之从C过渡 前言 暂时告别C语言,我们走进C。对于有C语言基础,初学C的我们来说,在正式学习C的主体内容之前,我们需要先有一个过渡,本文中会总结过渡需要了解的零散知识,主要是语法。 正文 C的第一个程序 …

终于用PC串口显示出esp32 串口输出hello world

硬件: esp32模块 rs232 转ttl 3.3v 电平转换器 3.3v 外接电源 esp32 tx 脚接转换器rx, rx脚接转换器tx esp32 使用uart2 现在就可以用pc作为上位机通过串口控制esp32,用pc串口调试软件作为esp的输出监控器显示esp的各种运算结果。 #include &qu…

使用visual studio2019创建dll导出自定义类

系列文章目录 文章目录 系列文章目录前言一、具体操作步骤1.创建动态链接库工程(DLL)2.头文件声明3.实现文件定义4.生成dll工程5 使用dll总结 前言 程序对动态链接库dll、静态链接库lib想必都很熟悉了,网上也有很多的相关介绍。但网上介绍的一般都是C语言函数介绍&…

javascript 的奇技巧淫二

文章目录 1 、标记模板文字2、使用 Object.entries() 和 Object.fromEntries()3、用于唯一元素的 Set 对象4、对象中的动态属性名称5、使用 bind() 进行函数柯里化6、使用 Array.from() 从类似数组的对象创建数组7、可迭代对象的 for…of 循环8、使用 Promise.all() 实现并发 P…

SpringBoot下载resources目录下的文件

1.引入SpringBoot和hutool依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.22</version></dependency>2.在项目resources目录下放入模版文件&#xff0c;结构如下&#xff1a…

JavaScript基础(30)_事件的冒泡、事件的委派

事件的冒泡(Bubble) 所谓的冒泡指的是事件的向上传导&#xff0c;当后代元素上的事件被触发时&#xff0c;其祖先元素的“相同事件”也会被触发。 取消事件冒泡 在开发中大部分情况冒泡都是有用的&#xff0c;如果不希望发生事件冒泡可以通过事件对象来取消冒泡。取消冒泡代码…

数字货币走势分析两点最关键,比特币BTC竞猜策略共享

目前虚拟货币市场成为各界关注的焦点&#xff0c;比特币的未来也会随着相关的决策和政策而产生变化&#xff0c;多位专家是看好这个市场的潜力的。如果比特币随后可以得到更多开采和推广的话&#xff0c;全球加密货币领域的高度还会提升。目前各方对于比特币和加密货币咨询和了…

OpenAI降低人们的期望值 今年秋季的DevDay不会公布GPT-5

去年&#xff0c;OpenAI 在旧金山举行了一场声势浩大的新闻发布会&#xff0c;会上该公司发布了一系列新产品和工具&#xff0c;其中包括类似 App Store 的GPT 商店。不过&#xff0c;今年的活动将更加低调。本周一&#xff0c;OpenAI 表示它将改变 DevDay 大会的形式&#xff…

使用visual studio code远程连接虚拟机

1. 安装Remote-SSH插件 打开vscode&#xff0c;在“扩展商店”中搜索“Remote-SSH”&#xff0c;然后点击“安装”即可&#xff0c;如图所示。 2. 配置SSH 如图所示&#xff0c;点击“远程资源管理器”&#xff0c;点击“新建远程”&#xff0c;然后在输入框中输入如下指令。…

革新出行体验:音频定位导航系统引领智能导航新时代

在科技日新月异的今天&#xff0c;出行方式正经历着前所未有的变革。从传统的纸质地图到GPS视觉导航&#xff0c;再到如今日益兴起的音频定位导航系统&#xff0c;每一次进步都极大地提升了人们的出行便捷性与安全性。音频定位导航系统&#xff0c;作为智能导航领域的创新之作&…

css仿el-tabs标签页效果

需求&#xff1a;el-tabs很多时候需要改间距或者下划线上还要加组件什么的比较麻烦&#xff0c;手写一个自己根据需求更改即可 1.效果 2.主要代码详解 主要代码如下&#xff1a;active是下划线&#xff0c;activeitem是选中后改变字体颜色&#xff0c; item- (index 1),用ite…

用.net core简易搭建webapi托管到IIS

1、从官网下载.NET Core 托管捆绑包 https://learn.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?viewaspnetcore-8.0&tabsvisual-studio 2、新建ASP.NET Core WEB API项目 新建控制器TestController并生成GetInfo方法 3、发布 目标路径选择 2)显示所有…

花小钱、办大事的巴黎奥运会,能学点啥?|易搭云

“获得奥运会举办权的竞争几乎和体育赛事本身一样激烈。”众所周知&#xff0c;奥运会不仅能带来巨大的经济效益&#xff0c;更是国家实力和文化底蕴的彰显。时隔百年&#xff0c;奥运会的主会场又回到了巴黎&#xff0c;以浪漫著称的巴黎&#xff0c;奥运会突出的关键词却变成…