온라인 서점 관리 시스템

목차

1. 시스템 요구사항 분석

2. 데이터베이스 개념구조 설계

4. 데이터베이스 물리적 구현

5. 데이터베이스 기능 디버깅


1. 시스템 요구사항 분석

1. 시스템 배경

       오늘날 인터넷의 급속한 발전으로 인해 사람들은 정보를 얻는 것이 매우 편리해졌습니다. 과거에는 사람들이 오프라인 서점에서 책을 구입하여 지식을 얻었고, 시간이나 공간의 제약으로 인해 다양한 수준의 정보 폐쇄로 어려움을 겪는 경우가 많았습니다. 요즘 전자책이 대중화되고 있고, 온라인 서점은 독자들에게 정보 교환의 창구를 열어주고, 독자들의 시간을 절약해 줄 수 있기 때문에 온라인 서점 관리 시스템은 매우 필요합니다.

2. 요구사항 분석

서점의 도서정보를 관리하고, 관리자와 이용자에게 디자인을 제공하기 위한 시스템입니다.

서점의 필요에 따라 서점에서는 책을 구매하고 판매하는 두 가지 운영 체제를 운영합니다. 책에는 사용자와 관리자가 쉽게 찾고 운영할 수 있도록 번호, 제목, 저자, 출판사, 버전, 가격, 목록 및 기타 정보가 포함되어야 합니다.

이 시스템에는 두 가지 유형의 사용자가 있습니다. 1. 사용자 2. 관리자. 사용자는 프론트 데스크를 보고 관리자는 백 데스크를 관리합니다. 두 가지 모두에 대한 요구 사항은 다음과 같습니다.

(1) 사용자

등록 후 세부 정보를 입력하세요.

사용자 이름(Bname), 성별(Bsex), 주소(Bsaddress), ID(Bno), 비밀번호(Bpw).

사용자 작업:

도서 세부정보 보기, 도서 구매, 개인정보 관리

(2) 관리자

비초기 관리자는 초기 관리자에 의해 추가됩니다.

직업번호(Sno), 비밀번호(Spw), 이름(Sname), 성별(Ssex).

       관리자 작업:

도서 정보 추가, 도서 정보 삭제, 도서 검색, 도서 세부정보 보기, 도서 정보 업데이트(수량, 도서 제목, 도서 속성 추가 등), 관리자 변경.

3. 시스템 기능 다이어그램

그림 1 온라인 서점 관리 시스템 기능도

온라인 서점 관리 시스템의 업무는 크게 등록 및 로그인, 사용자의 도서 구매, 도서의 관리자 운영 등 3가지 업무로 구성되며, 사용자가 시스템에 진입하여 해당 작업을 클릭하면 시스템은 그림과 같이 응답하고 정보를 반환한다. 그림 2.

그림 2 비즈니스 흐름도

다음은 비즈니스 흐름에 대한 자세한 분석입니다.

  1. 등록 로그인

등록 및 로그인 프로세스: 사용자 또는 관리자가 이 시스템을 사용할 때 먼저 페이지에서 로그인 ID(사용자 또는 관리자 ID)를 선택한 후 로그인합니다. 시스템은 사용자 정보 데이터베이스를 검색하고 사용자 정보 시트를 출력합니다. 로그인 후 정보와 양식을 입력하고 일치하면 시스템에 들어가고, 양식이 비어 있으면 해당 사용자가 없으므로 사용자가 등록해야 함을 의미합니다. 등록시 전체 사용자 정보를 입력 한 후 시스템에 들어갈 수 있습니다.

그림 3 사용자 로그인 흐름도

  1. 사용자가 책을 구매함

이용자 도서구매 프로세스 : 이용자가 도서에 대해 조회한 후 도서를 구매하기 위한 주문을 생성할 수 있으며, 이때 관리자는 도서를 판매할 만큼 재고가 충분한지 조회하여 조회하고, 재고가 충분할 경우, 아웃바운드 주문이 생성되고 관리자는 지침을 따릅니다. 아웃바운드 주문이 라이브러리에서 꺼내지고 주문 확인 양식이 사용자에게 반환됩니다. 사용자는 성공적으로 주문을 했습니다.

그림 4 사용자의 도서 구매 흐름도

  1. 관리자가 장부를 운영함

관리자의 장부 작업 프로세스: 관리자가 로그인한 후 업데이트 관리자 작업과 장부 작업의 두 가지 유형이 포함된 관리자 상세 페이지에 진입합니다. 장부 작업에 들어간 후 장부 양식이 생성되고 관리자가 장부를 선택합니다. 수정이 필요하거나 양식에 새 책을 추가해야 합니다.

그림 5 관리자 작업 흐름도

데이터 흐름도는 데이터와 처리 사이의 관계를 표현한 것으로, 온라인 서점 관리 시스템의 하향식 구조 분석을 통해 그림 6, 7, 8을 얻을 수 있으며, 이는 관리자가 사용자 이후에 도서 내용과 내용을 조정함을 나타냅니다. 주문 생성 주문 생성을 위한 데이터 흐름

그림 6 레이어 0 데이터 흐름 다이어그램

그림 7 레이어 1 데이터 흐름 다이어그램

그림 8 레이어 2 데이터 흐름 다이어그램

데이터사전은 다양한 형태의 데이터 기술을 모아 놓은 것으로 주로 데이터 항목, 데이터 구조, 처리 과정 등을 기술하고 기본 데이터 단위, 데이터 간의 연결, 처리 방법 등을 반영한다.

1. 데이터 항목

데이터 항목 : 도서번호(Bookno)

의미: 각 도서를 고유하게 식별합니다.

유형: 문자

길이: 4

값 범위: 0000~9999

값 의미: 상점에서 판매하는 책의 종류를 식별합니다.

다른 데이터 항목과의 논리적 관계: 없음

데이터 항목 : Bookname (Bookname)

의미: 책 이름인 UNIQUE는 반복될 수 없습니다.

유형: 문자

길이: 40

값 의미: 각 유형의 책 이름

다른 데이터 항목과의 논리적 관계: 없음

2.데이터 구조

데이터 구조: 책

의미 설명 : 책의 모든 정보를 정의하는 온라인 서점 관리 시스템의 주요 데이터 구조이다.

구성 : 번호, 제목, 유형, 가격, 목록, 출판사

데이터 구조: 관리자

의미 설명 : 온라인 서점 관리 시스템의 주요 데이터 구조로서 관리자의 모든 정보를 정의하고 있다.

구성 : 직업번호, 이름, 성별, 비밀번호

3. 처리 과정

프로세스: 도서 업데이트

설명: 도서 정보 업데이트

입력 : 도서 번호, 제목, 종류, 가격, 출판사, 증량 수량

출력: 도서 정보

처리 : 신간 재고가 있을 경우, 신간을 창고에 등록하거나, 도서 가격 및 기타 정보를 변경합니다.

프로세스: 주문 수정

설명: 책이 판매되었습니다

입력 : 도서번호, 배송수량, 도서명, 배송지 주소

출력: 배송 정보

처리 : 이용자가 도서를 구매한 후 배송주문이 생성되며, 이용자가 직접 주문정보를 변경할 수 있습니다.

2. 데이터베이스 개념구조 설계

(1) 엔터티 분석

이 시스템에는 4개의 엔터티, 즉 두 명의 사용자와 두 개의 운영 엔터티가 있습니다.

1. 관리자 2. 사용자 3. 도서 4. 주문.

관리자는 백그라운드에서 도서 데이터를 관리하는 역할을 담당하며, 사용자는 플랫폼에서 도서를 구매하고, 도서는 플랫폼의 거래 주체 역할을 하며, 사용자가 구매할 도서를 선택한 후 주문하고 구매 정보를 기록함으로써 주문이 생성됩니다.

종합적인 엔터티 및 데이터 사전 분석은 4가지 엔터티의 속성을 각각 분석하고, 엔터티와 속성 간의 관계 다이어그램을 다음과 같이 그립니다.

1. 관리자의 속성

관리자에게는 작업 번호(Sno), 비밀번호(Spw), 이름(Sname), 성별(Ssex)의 네 가지 속성이 있습니다. 직무번호는 해당 직원이 어떤 관리자인지 식별하는 메인코드로 사용되며, 직무번호와 비밀번호는 관리자 로그인 작업에 사용되며, 이름과 성별은 관리자의 기본정보입니다.

그림 9 관리자 엔터티 및 속성

2. 사용자 속성

사용자 엔터티에는 계정 번호(Bno), 사용자 이름(Bname), 성별(Bsex), 주소(Bsaddress) 및 비밀번호(Bpw)의 5가지 속성이 있습니다. 계좌번호는 주요코드로 사용되며 중복사용이 불가능하며 이용자를 식별하는 데 사용됩니다 계좌번호와 비밀번호는 이용자의 로그인 작업에 사용됩니다 주소는 구매한 도서를 발송할 주소를 결정하는 데 사용됩니다 사용자 이름, 성별은 이용자의 기본정보로서, 비워두셔도 됩니다.

그림 10 사용자 엔터티 및 속성

3. 도서의 속성

책에는 번호(Bookno), 책 제목(Bookname), 유형(Booktype), 출판사(Press), 가격(BPrice), 재고(Binventory) 등 6가지 속성이 있습니다. 번호는 메인코드로 사용되며, 책제목, 종류, 출판사 등을 통해 사용자가 원하는 도서를 쉽게 찾을 수 있습니다. 도서는 관리자가 구매해야 하며, 가격은 도서 기본 정보입니다.

图11 图书实体和属性

4.订单的属性

订单有五个属性:用户名/购买者姓名(Bname),书名(Bookname),目的地址(Bsaddress),数量(Quantity),订单号(Ono)。其中订单号为主码,用户名和书名来自购买者提供的信息,目的地址和数量有用户(购买者)按需修改。

图12 订单实体和属性

根据需求分析,各个实体之间有以下联系:

1.管理员与图书

一个管理员可以更新多本图书,一本图书的信息可以被多个管理员修改,多对多。

2.管理员与其他管理员

一个旧的管理员可以增加多个新管理员、更改多个管理员的信息,多对多。

3.用户与图书

一个用户可以购买多种图书,一种图书可以由多个用户购买,购买时需要选择购买数量,多对多。

4.用户与订单

一个用户可以修改自己的多个订单,一个订单只能由创建它的一个用户修改,一对多。

5.图书、用户和订单

一个用户和他购买的多本图书可以产生多个订单,一个订单可以由多个图书和一个用户产生。

E-R

根据前面的实体属性图和联系分析画出整个系统的E-R图,具体的E-R图如图13。各实体的属性分别如下:

图书:{ 编号,书名,类型,出版社,价格,库存}

管理员:{ 工号,姓名,性别,密码}

用户:{ 账号,用户名,性别,地址,密码}

订单:{目的地址,书名,订单号,数量,用户名}

图13 网上书店管理系统E-R图

关系模型

将E-R图中9个实体和联系转换为以下关系模型,该关系模型由5个关系模式组成:

图书:(编号,书名,类型,出版社,价格,库存)

管理员:(工号,姓名,性别,密码)

用户:(账号,用户名,性别,地址,密码)

订单:(订单号,目的地址,书名,编号,数量,账号

购买:(账号编号,数量)

根据E-R图画出cdm图:

图14 网上书店管理系统.cdm图

在PowerDesogner菜单栏-工具中选择创建pdm和ldm图。

一对多关系的转化:

       一个用户修改多个订单,一个订单只能由一个用户修改;

多对多关系的转化:

       一个用户可以购买多种图书,一种图书可以被多个用户购买;

       一个管理员更新多种图书,一种图书由多个管理员管理;

       一个管理员管理其他多个管理员,一个管理员可以被多个管理员管理;

    一个用户和一本书可以产生多个订单,一个订单可以由一个用户和多本图书产生。

(二) 逻辑模型设计(.LDM图)

图15 网上书店管理系统.pdm图

图16 网上书店管理系统.ldm图

四、数据库物理实现

(一)表设计

图书表

列名

数据类型

允许Null值

说明

Bookno

char(100)

Unchecked

书籍编号

Bookname

char(20)

Unchecked

书名

Booktype

char(30)

Unchecked

类型

Binventory

smallint

Unchecked

库存

BPrice

float

Unchecked

价格

Press

varchar(10)

Unchecked

出版社

订单表

列名

数据类型

允许Null值

说明

Bname

Char(20)

Unchecked

用户名

Bookname

Char(20)

Unchecked

书名

Bsaddress

Char(30)

Unchecked

地址

Quantity

bigint

Unchecked

数量

Ono

Char(20)

Unchecked

订单号

Bno

Char(20)

Unchecked

用户账号

管理员表

列名

数据类型

允许Null值

说明

Sno

Char(20)

Unchecked

管理员工号

Spw

Char(20)

Unchecked

管理员密码

Sname

Char(20)

Unchecked

管理员名字

Ssex

Char(2)

checked

管理员性别

用户表

列名

数据类型

允许Null值

说明

Bno

Char(20)

Unchecked

用户账号

Bpw

Char(30)

Unchecked

用户密码

Bname

Char(20)

Unchecked

用户名字

Bsex

Char(2)

checked

用户性别

Bsaddress

Char(30)

Unchecked

用户地址

(二)创建表和完整性约束代码设计

创建图书表:

/*==============================================================*/

/* Table: Book                                                  */

/*==============================================================*/

create table Book (

   Bookno               char(100)            not null,

   Bookname             char(20)             not null,

   Booktype             char(30)             not null,

   Binventory           smallint             not null,

   BPrice               float                not null,

   Press                varchar(10)          not null,

   constraint PK_BOOK primary key nonclustered (Bookno)

)

go

创建订单表:

/*==============================================================*/

/* Table: BookOrder                                             */

/*==============================================================*/

create table BookOrder (

   Bname                char(20)             not null,

   Bookname             char(20)             not null,

   Bsaddress            char(30)             not null,

   Quantity             bigint               not null,

   Ono                  char(20)             not null,

   Bno                  char(20)             not null,

   constraint PK_BOOKORDER primary key nonclustered (Ono)

)

go

创建管理员表:

/*==============================================================*/

/* Table: Su                                                    */

/*==============================================================*/

create table Su (

   Sno                  char(20)             not null,

   Spw                  char(20)             not null,

   Sname                char(20)             not null,

   Ssex                 char(2)              null,

   constraint PK_SU primary key nonclustered (Sno)

)

go

创建用户表:

/*==============================================================*/

/* Table: Buyers                                                */

/*==============================================================*/

create table Buyers (

   Bno                  char(20)             not null,

   Bpw                  char(10)             not null,

   Bname                char(20)             not null,

   Bsex                 char(2)              null,

   Bsaddress            char(30)             not null,

   constraint PK_BUYERS primary key nonclustered (Bno)

)

go

添加外键:

alter table BookOrder

   add constraint FK_BOOKORDE_修改_BUYERS foreign key (Bno)

      references Buyers (Bno)

go



alter table 产生

   add constraint FK_产生_产生_BOOK foreign key (Bookno)

      references Book (Bookno)

go



alter table 产生

   add constraint FK_产生_产生2_BOOKORDE foreign key (Ono)

      references BookOrder (Ono)

go



alter table 产生

   add constraint FK_产生_产生3_BUYERS foreign key (Bno)

      references Buyers (Bno)

go



alter table 更新

   add constraint FK_更新_更新_SU foreign key (Sno)

      references Su (Sno)

go



alter table 更新

   add constraint FK_更新_更新2_BOOK foreign key (Bookno)

      references Book (Bookno)

go



alter table 管理

   add constraint FK_管理_管理_SU foreign key (Sno)

      references Su (Sno)

go



alter table 管理

   add constraint FK_管理_管理2_SU foreign key (Su_Sno)

      references Su (Sno)

go



alter table 购买

   add constraint FK_购买_购买_BOOK foreign key (Bookno)

      references Book (Bookno)

go



alter table 购买

   add constraint FK_购买_购买2_BUYERS foreign key (Bno)

      references Buyers (Bno)

go

、数据库功能调试

(一)页面设计展示

管理员首页设计:

    管理员首页有图书管理和管理员管理功能,分别用于图书的增删查改和管理员的增删查改。

用户首页设计

    用户首页包括图书、订单管理、个人管理三个功能选项,其中图书用于用户查看所有图书,订单功能包括用户订单的增删查改,个人管理用于修改用户自身的信息,如姓名、密码、地址等。

登录页面设计

    登录界面有用户和管理员两个选项,其中工号(账号)作为主键区分管理员(用户)、输入密码时可以隐藏。

增加测试

    原表:

增加一行:

(二)系统运行的软件环境

在电脑硬件环境的支持下,系统运行的时候还需要软件的支持,由于本系统是基于Windows平台开发,所以运行的硬件环境需要还需要安装有Windows的操作系统,其中运用SQL Server数据库存放数据,主界面使用Dreamweaver设计。

추천

출처blog.csdn.net/l203018/article/details/131813880