图书销售管理系统数据库SQL应用编程 和 安全管理

本文详细介绍了图书销售管理系统数据库的SQL应用编程,包括数据库创建、表、视图、索引、存储过程和触发器的创建及操作。同时,文章探讨了数据库的安全管理,设计了数据存取权限控制模型,创建了客户和商家角色,分配了相应的权限,验证了数据安全模型的正确性。实验旨在提升数据库操作和安全管理水平。
摘要由CSDN通过智能技术生成

实验一:图书销售管理系统数据库SQL应用编程

实验目的

结合图书销售管理系统数据库开发项目案例,开展数据库SQL应用编程实践,培养数据库SQL操作访问存储过程触发器处理的数据库编程能力。

实验原理

首先对图书销售管理系统进行数据需求分析,定义组成系统数据结构的实体、实体属性以及实体之间的关系

采用实体关系图(E-R模型图)方法来展示图书销售管理系统的概念数据模型与逻辑数据模型

利用PowerDesigner数据库软件系统进行系统物理数据模型设计,对设计的图书销售管理系统数据库模型进行检验与完善,并对系统进行数据库设计,给出设计方案。

基于数据库设计方案,通过SQL编程执行来完成对数据库的创建与数据访问操作以及相应的后端编程操作

在本实验中,使用SQL语句完成对数据库、关系表、索引、视图、触发器、存储过程的创建

并编写SQL语句对数据库表进行数据的增删查改操作,以及利用视图、存储过程、触发器实现业务数据处理。

数据库基本操作数据

创建数据库:Create database <数据库名>;
创建数据库表:Create table <表名>;
插入数据:Insert into <基本表>[<列名表>] values(v1,v2,v3,….);
删除数据:Delete from <表名> [where <条件表达式>];
更新数据:Update <基本表> set <列名 1> = <表达式 1>,[<列名 2> = <表达式 2>…] [where <条件表达式>];
Add修改方式:Alter table <表名> add <新列名称><数据类型>[完整性约束];

视图

视图是一种从基础数据库表中获取数据所组成的虚拟表,在数据库中只需存储视图结构定义,而不存储视图所包含的数据,

使用视图可以简化复杂的SQL查询,提高数据访问安全性,提供一定的数据逻辑独立性,可以集中展示用户所感兴趣的特定数据。

创建视图:Create view <视图名>[(列名 1), (列名 2), …] as <SELECT 查询>;
查看视图:Select * from <视图名>;
删除视图:Drop view <视图名>;

索引

索引是一种针对表中指定列的值进行排序的数据结构,使用它可以加快表中数据的查询。

在数据表中建立类似于图书目录的索引结构,并将索引列的值及索引指针操作保存在索引结构中。

此后在对数据表进行数据查询时,首先在索引结构中查找符合条件的索引指针值, 然后再根据索引指针快速找到对应的数据记录,这样可实现快速检索元组数据的目的。

创建索引:Create unique index <索引名> on <表名><(列名[,…])>;
修改索引:Alter index <索引名> rename to <新索引名>;
删除索引:Drop index <索引名>;

存储过程

存储过程是由一组能完成特定功能的SQL语句构成,它把经常会反复使用的SQL语句逻辑块封装起来,经编译后,存储在数据库服务端,

当再次调用时,不需再次编译,用户连接到数据库服务端时,用户通过指定存储过程的名称并给出参数,数据库就可以找到相应的存储过程并予以调用。

创建存储过程:
Create [or replace] function
name ( [ [ argmode ] [ argname ] argtype [{ default | =} default_expr ] [,…] ] ) [returns retype | returns table ( column_name column_type [,…] ) ]
As $$ Declare
--声明段
Begin
--函数体语句End;
$$ language lang_name;
调用存储过程:
Select function_name;

触发器

触发器与存储过程不同,存储过程通过其他程序启动运行或直接启动运行,而触发器由一个事件触发启动运行,也就是触发器在某个事件发生时自动隐式运行

Postgresql触发器在系统执行某种特定类型的操作时,数据库将自动执行指定的特殊函数。

触发器常用于定义逻辑计较复杂的完整性约束,或某种业务规则的约束

创建触发器:
Create [constraint] Trigger name
{ before | after |instead of}{event[or…]}
On table_name
[ from referenced_table_name] [ for [each ]{ row | statement } ] [when (condition ) ]
Execute procedure function_name ( arguments )

实验内容

针对图书销售管理系统基本需求,开发实现图书销售管理系统数据库,具体实验内容如下:

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)编写图书销

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值