| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 图书销售管理系统数据库SQL应用编程 和 安全管理 -> 正文阅读 |
|
[大数据]图书销售管理系统数据库SQL应用编程 和 安全管理 |
实验一:图书销售管理系统数据库SQL应用编程实验目的结合图书销售管理系统数据库开发项目案例,开展数据库SQL应用编程实践,培养数据库SQL操作访问、存储过程与触发器处理的数据库编程能力。 实验原理首先对图书销售管理系统进行数据需求分析,定义组成系统数据结构的实体、实体属性以及实体之间的关系。 采用实体关系图(E-R模型图)方法来展示图书销售管理系统的概念数据模型与逻辑数据模型。 利用PowerDesigner数据库软件系统进行系统物理数据模型设计,对设计的图书销售管理系统数据库模型进行检验与完善,并对系统进行数据库设计,给出设计方案。 基于数据库设计方案,通过SQL编程执行来完成对数据库的创建与数据访问操作以及相应的后端编程操作。 在本实验中,使用SQL语句完成对数据库、关系表、索引、视图、触发器、存储过程的创建, 并编写SQL语句对数据库表进行数据的增删查改操作,以及利用视图、存储过程、触发器实现业务数据处理。 数据库基本操作数据
视图视图是一种从基础数据库表中获取数据所组成的虚拟表,在数据库中只需存储视图结构定义,而不存储视图所包含的数据, 使用视图可以简化复杂的SQL查询,提高数据访问安全性,提供一定的数据逻辑独立性,可以集中展示用户所感兴趣的特定数据。
索引索引是一种针对表中指定列的值进行排序的数据结构,使用它可以加快表中数据的查询。 在数据表中建立类似于图书目录的索引结构,并将索引列的值及索引指针操作保存在索引结构中。 此后在对数据表进行数据查询时,首先在索引结构中查找符合条件的索引指针值, 然后再根据索引指针快速找到对应的数据记录,这样可实现快速检索元组数据的目的。
存储过程存储过程是由一组能完成特定功能的SQL语句构成,它把经常会反复使用的SQL语句逻辑块封装起来,经编译后,存储在数据库服务端, 当再次调用时,不需再次编译,用户连接到数据库服务端时,用户通过指定存储过程的名称并给出参数,数据库就可以找到相应的存储过程并予以调用。
触发器触发器与存储过程不同,存储过程通过其他程序启动运行或直接启动运行,而触发器由一个事件触发启动运行,也就是触发器在某个事件发生时自动隐式运行。 Postgresql触发器在系统执行某种特定类型的操作时,数据库将自动执行指定的特殊函数。 触发器常用于定义逻辑计较复杂的完整性约束,或某种业务规则的约束。
实验内容针对图书销售管理系统基本需求,开发实现图书销售管理系统数据库,具体实验内容如下: 1.基于图书销售管理系统基本数据需求,给出图书销售管理系统数据库设计方案。 2.在数据库服务器中,执行SQL创建图书销售管理系统数据库BookSale。 3.在数据库BookSale中,执行SQL创建数据库表、视图、索引等对象。 4.在数据库BookSale中,执行SQL进行数据增、删、查、改访问操作。 5.在数据库BookSale中,采用PL/pgSQL语言编写存储过程函数Pro_CurrentSale,实现当日图书销售量及销售金额汇总统计。 6.在数据库BookSale中,采用PL/pgSQL语言编写过程语句块,实现对存储过程函数Pro_CurrentSale的调用,并输出统计结果。 7.在数据库BookSale中,采用PL/pgSQL语言编写图书销售表Insert触发器Tri_InsertSale,实现图书库存数据同步修改处理。 8.在数据库BookSale中,对图书销售表Insert触发器Tri_InsertSale程序进行功能验证。 在实验计算机上,利用pgAdmin4数据库管理工具及SQL、PL/pgSQL语言,完成图书销售管理系统数据库应用编程操作, 同时记录实验过程的步骤、操作、运行结果界面等数据,为撰写实验报告提供素材。 实验设备及环境“数据库原理及应用”实验所涉及的机房硬件设备为pc计算机、服务器以及网络环境,pc计算机与服务器在同一局域网络。 操作系统: Windows10 / Windows 11 管理工具: pgAdmin4 DBMS系统: PostgreSQL 14 实验步骤(1)图书销售管理系统数据库BookSale创建操作。 采用SQL语句执行方式,创建图书销售管理系统数据库BookSale。 (2)在图书销售管理系统数据库BookSale中创建数据库表、视图、索引等对象。 采用SQL语句执行方式,创建图书表Book、作者表Author、出版社表Publisher、库存流水表Bookstock、客户表Customer、销售表Sale,以及各表主键和外键的创建,并为各表创建索引。 (3)对图书销售管理系统数据库表进行数据增、删、查、改SQL操作。 为 Book、Author、Publisher、Customer表准备样本数据,采用SQL语句执行方式,将样本数据插入到表中。 对各表进行数据修改、删除、查询、统计等访问操作。 (4)编写存储过程Pro_CurrentSale,实现当日图书销售量及销售金额汇总统计。 (5)编写过程语句块,实现对存储过程Pro_CurrentSale的调用,并输出统计结果。 (6)编写图书销售表Insert触发器Tri_InsertSale,实现图书库存数据同步修改处理。 编写图书销售表Insert触发器Tri_InsertSale,实现在Sale表数据插入时,级联操作 Bookstock表,将图书的库存流水进行记录,同时级联更新Book表中对应图书的库存数据。 (7)对图书销售表Insert触发器Tri_InsertSale程序进行功能验证。 为 Sale表准备样本数据,将样本数据插入到表中之后查看Bookstock表是否有对应的更新,并对比插入数据前后Bookstock表中对应数据的修改情况。 实验数据及结果分析(1)图书销售管理系统数据库BookSale创建操作。数据库BookSale创建操作SQL程序代码:
运行操作界面: 在目录处刷新,查看语句运行结果: 结果说明: (2)在图书销售管理系统数据库BookSale中创建数据库表、视图、索引等对象。创建数据库表SQL程序代码:
运行操作界面: 结果说明: 创建索引SQL程序代码:
?结果说明: (3)对图书销售管理系统数据库表进行数据增、删、查、改SQL操作。插入操作SQL程序代码:
运行操作界面:? 样本数据插入完成后,对出版社表内的数据进行查询操作,查看插入操作是否正确: 结果说明: 成功在各个数据库表中插入了样本数据,经过查询结果验证,插入操作无误。 增加了新的一行数据SQL程序代码:
运行操作界面: 结果说明: 成功在Publisher表中增加了新的一行数据,经过查询输出后证明增加数据操作无误。 修改操作SQL程序代码:
运行操作界面: 结果说明: 成功在Publisher表中实现了修改数据的操作,经过查询输出后证明修改操作无误。 删除操作SQL程序代码:
运行操作界面: 结果说明: 成功在Publisher表中删除了新添加的一行数据,经过查询输出后证明删除操作无误。 (4)编写存储过程Pro_CurrentSale,实现当日图书销售量及销售金额汇总统计。SQL程序代码:
运行操作界面: 结果说明: (5)编写过程语句块,实现对存储过程Pro_CurrentSale的调用,并输出统计结果。SQL程序代码:
运行操作界面: 结果说明: 调用存储过程后输出数据符合实际情况,输出的总销售量和总金额数据正确,创建存储过程Pro_CurrentSale正确。 (6)编写图书销售表Insert触发器Tri_InsertSale,实现图书库存数据同步修改处理。创建InsertSale()触发器函数SQL程序代码:
运行操作界面: 结果说明: 成功创建了InsertSale()触发器函数。 创建了Tri_InsertSale触发器SQL程序代码:
运行操作界面: 结果说明: 成功创建了Tri_InsertSale触发器。 (7)对图书销售表Insert触发器Tri_InsertSale程序进行功能验证。SQL程序代码:
运行操作界面: 查看Bookstock表的数据:? 对比Book表的数据: 结果说明: Bookstock表中本来没有数据,在Sale表插入数据之后,将库存数据进行记录,记录数据正确,同时发现 Book表中库存量都发生了变化, 分别减少了与销售表中记录的销售件数相应值的大小,更新数据正确,可以证明触发器的功能都实现了,触发器功能正确。 总结及心得体会通过这次学习,发现自己的相关SQL语句的标准模式掌握的不够熟练,还需要查找相关资料才能完成,通过这次练习,提高了相关语句的熟练度,所以勤学多练才是掌握一门技能的好方法 实验二:图书销售管理系统数据库安全管理实验目的了解该DBMS系统对数据库管理的内容与方法,特别是理解数据库安全机制和作用, 以及PostgreSQL数据库角色管理、用户管理、权限管理的基本方法,培养数据库管理能力。 在图书销售管理系统数据库中,创建必要的角色和用户,并完成上述角色与用户的权限管理。 实验原理设计数据存取权限控制模型,对各角色进行不同权限的赋予,保证数据库数据的安全性。 使用SQL语句进行角色、用户的创建、对角色进行权限赋予、对用户分派角色。 用户的创建: SQL提供了专门创建用户的SQL命令语句,在数据库中,只能通过特定权限的用户创建其他用户,如系统管理员或超级用户。 因此为每个用户分配合适的权限,尤为重要。
角色的创建: 角色的创建与用户创建过程相似,但没有密码等设置要求。 权限赋予: 可以直接将对表的操作权限直接赋予用户。
但是这样需要为每个用户单独赋予权限,当用户数量较多时,工作量大,且难以管理。通过创建角色,赋予角色相应权限,用户采用继承角色的方式获得相应的权限。 使用不同的用户登录时,就拥有了该用户的权限,在对数据库表进行操作的时候就会受到不同程度的制约。 实验内容使用pgAdmin4数据库管理工具对图书销售管理系统数据库进行数据库安全管理,具体实验内容如下: 1.针对图书销售管理系统数据库应用需求,设计数据存取权限控制模型。 2.在数据库中,创建客户(R_Customer)、商家(R_Seller)角色。 3.在数据库中,根据业务规则为客户(R_Customer)、商家(R_Seller)角色赋予数据库对象权限。 4.在数据库中,分别创建客户用户U_Customer、商家用户U_Seller。 5.分别为客户用户U_Customer、商家用户U_Seller分派客户(R_Client)、商家(R_Seller)角色。 6.分别以客户用户U_Customer、商家用户U_Seller身份访问图书销售管理数据库,验证所实现数据存取权限控制模型的正确性。 在实验计算机上,利用pgAdmin4数据库管理工具及SQL语句,完成图书销售管理系统数据库安全管理,同时记录实验过程的步骤、操作、运行结果界面等数据,为撰写实验报告提供素材。 实验设备及环境“数据库原理及应用”实验所涉及的机房硬件设备为pc计算机、服务器以及网络环境,pc计算机与服务器在同一局域网络。 操作系统: Windows10 / Windows 11 管理工具: pgAdmin4 DBMS系统: PostgreSQL 14 实验步骤(1)针对图书销售管理系统数据库,设计数据存取权限控制模型。 根据业务逻辑及实际需要为商家、客户、系统管理员分配在每个数据库表上的操作权限。 (2)在数据库中,创建客户(R_Customer)、商家(R_Seller)角色。 采用SQL语句执行方式,创建客户R_Customer、商家R_Seller角色。 (3)在数据库中,根据业务规则为客户(R_Customer)、商家(R_Seller)角色赋予数据库对象权限。 利用Grant关键词对客户R_Customer、商家R_Seller角色,参考设计的数据存取权限控制模型,赋予对应的所定义的数据库对象权限。 (4)在数据库中,分别创建客户用户U_Customer、商家用户U_Seller。 (5)分别为客户用户U_Customer、商家用户U_Seller分派客户(R_Client)、商家(R_Seller)角色。 (6)分别以客户用户U_Customer、商家用户U_Seller身份访问图书销售管理数据库,验证所实现数据存取权限控制模型的正确性。 分别以客户用户U_Customer、商家用户U_Seller身份访问图书销售管理数据库,并分别以这两个用户对各数据库表进行操作,以验证是否正确分配了两用户不同的角色权限。 实验数据及结果分析(1)针对图书销售管理系统数据库,设计数据存取权限控制模型。商家角色安全模型: 客户角色安全模型:? 结果说明: (2)在数据库中,创建客户(R_Customer)、商家(R_Seller)角色。SQL程序代码:
运行操作界面: 结果说明: (3)在数据库中,根据业务规则为客户(R_Customer)、商家(R_Seller)角色赋予数据库对象权限。 SQL程序代码:
运行操作界面: 结果说明: (4)在数据库中,分别创建客户用户U_Customer、商家用户U_Seller。(5)分别为客户用户U_Customer、商家用户U_Seller分派客户(R_Client)、商家(R_Seller)角色。SQL程序代码:
?运行操作界面: 结果说明: 成功创建了客户用户U_Customer和商家用户U_Seller。 (6)分别以客户用户U_Customer、商家用户U_Seller身份访问图书销售管理数据库,验证所实现数据存取权限控制模型的正确性。SQL程序代码:
以客户用户身份登录数据库: 查看Book表:? ?删除Book表中的数据: ?查看Author表: 向Author表中插入一条数据: 查看Sale表: 结果说明: 客户用户U_Customer可查看Book表中的数据。 在删除Book表中的数据时,结果显示失败,客户用户不能完成删除操作。 客户用户可以查看Author表中的数据。 在向Author表中插入一条数据时,结果显示失败,客户用户不能完成插入操作。 在查看Sale表中的数据时,结果显示失败,客户用户不能完成查看操作。 客户用户对数据库表的权限的测试都正确,即创建的客户用户赋予权限的操作是正确的。 以商家用户身份登录数据库:SQL程序代码:
查看Customer表: 向Author表中插入一条数据: 从Bookstock表中删除一条数据: 更新Sale表中的一条数据: 结果说明: 商家用户U_Seller可查看Customer表中的数据。 通过与客户用户步骤中查询的作家信息表进行对比,Author表中的数据新增加了一条,商家用户具有对Author表的插入权限。 在从Bookstock表中删除一条数据时,结果显示失败,商家用户不能完成删除操作。 通过对比,Sale表中的数据发生了更新,商家用户具有对Sale表的更新权限。 商家用户对数据库表的权限的测试都正确,即创建的商家用户赋予权限的操作是正确的。 总结及心得体会在SQL Shell (psql)的使用中遇到了多次报错,在网上搜索实践后解决,例如postgreSQL: password authentication failed for user "postgres",从postgreSQL: password authentication failed for user "postgres"_森林先森的博客-CSDN博客获得解决。我从中理解到,互联网可以帮助解决大部分问题 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 15:19:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |