图书管理系统数据字典_2. 结构化——数据字典

45373248fd4654fad4d211984ae1cb8f.png

返回目录:

Chilan Yuk:软件工程分析设计图库目录​zhuanlan.zhihu.com
fe999e2ba66ad246f9042b218a91181f.png

一、基本知识

用于定义数据流和数据存储的结构,并给出构成所给的数据流和数据存储的各数据项的基本数据类型。

数据字典中应该包括关于数据的如下信息

  1. 一般信息(名字、别名、描述等)
  2. 定义(数据类型、长度、结构等)
  3. 使用特点(值的范围、使用频率、使用条件、使用方式、条件值等)
  4. 控制信息(用户、使用特点、改变数、使用权等)
  5. 分组信息(文档结构、从属结构、物理位置等)

82491c230c8399ec0259d6ee8d585193.png

二、数据字典的四类元素

1. 数据流条目

通常列出该数据流的各组成数据项

3808de98f6b011df12608cc3c56e1944.png

2. 数据项条目(数据流或数据存储分量)

数据流的组成成员是数据项,数据项条目是不可再分解的数据单位。

5362365843b7d59ab1db5dd450c640a9.png

3. 数据存储条目

与数据流条目一样。对存储数据的定义用数据存储条目。

59f8a759d42e77330b8774fc2181d828.png

4. 加工条目

通常采用输入—处理—输出(IPO,Input-Process-Output)视图描述。

04a5ed245172eddcdb540cb98f677ead.png

三、案例分析

例1:影碟租借与销售系统

1. 顶层图

4785e37a3d0b645320c762b77105bfbb.png

2. 0层图

a748151c7fff3840b9ab9e3a38919af3.png

3. 系统0层图各加工细化

(1)会员管理的1层细化

c4744d3afecb9c039a331e6c51b8663b.png

(2)影碟管理的1层细化

b056a47c8b404248a15ebf96adb50bfe.png

(3)查询打印处理的1层细化

587d45295a340aa7a40b5b1e70dafdf4.png

4. 系统数据字典

(1)数据流条目

273f3cb533aa2d25dee6d3dab20d0d7e.png

(2)数据项条目

a97138bc5fc8edf3e253af467658693b.png

(3)数据存储条目

0e95455f0f1fd13b7fd24bf0dc19ad35.png

例2:图书管理系统

图书管理系统旨在用计算机对图书进行管理,主要涉及四个方面的工作:新书入库、读者借书、读者还书以及图书注销,以及查询某位读者的借书情况、某种图书和整个图书的库存情况。

  1. 在购入新书时,图书管理人员为购入的新书编制图书卡片,包括分类目录号、流水号(要保证每本书都有唯一的流水号,即使同类图书也是如此)、书名、作者、内容摘要、价格和购书日期等信息,并写入图书目录文件中;
  2. 读者借书时,首先填写借书单,包括姓名、校园卡号、欲接图书分类目录号等信息,然后管理人员将借书单输入系统,继之系统检查该读者号是否有效,若无效,则拒绝借书;否则进一步检查该读者所借图书是否超过最大限制数(此处我们假设每位读者同时只能借阅不超过五本书),若已达到最大限制数(此处为5本),则拒绝借书;否则读者可以借出该书,登记图书分类目录号、读者号和借阅日期等,写入到借书文件中;
  3. 在读者还书时,读者填写还书单,由管理人员将其输入系统后,系统根据其中的学号,从借书文件中读出该读者的借阅记录,获取该书的还书日期,判定该图书是否逾期,以便按规定做出相应的罚款;
  4. 在对一些过时或无继续保留价值的图书进行注销时,管理人员从图书目录文件中删除相关的记录;
  5. 当图书馆领导提出查询要求时,系统应依据查询要求,分别给出相应的信息。

其中假定,“为购入的新书编制图书卡片”,“读者首先填写借书单”等功能,均由人工实现。

(1)顶层数据流图

67a172c43270669bac6d507ba8afa4ac.png
顶层DFD图

(2)0层DFD

4e4b84716ae3a237605e90e2dd915dbe.png
0层DFD图

(3)逐步求精

对加工1进行分解:

4a8ec8997db29c74c2ab53778b51f4e7.png

再对借书进行细化:

c473889cad5ae9413f38ea8ae4f517f2.png

(4)建立系统的数据字典

数据流条目:

  • 查询要求=[读者情况|图书情况|图书统计表]
  • 读者情况=姓名+校园卡号+可借图书数
  • 图书统计表=[A|B|C|D|E]
  • 图书馆里要求=[入库单|借书单|还书单|注销单]
  • 入库单=图书类号+图书流水号+书名+作者+内容摘要+单价+购书日期
  • 借书单=姓名+校园卡号+书名+图书类号+借书日期
  • 还书单=姓名+校园卡号+书名+图书类号
  • 注销单=图书类号+图书流水号+书名+价格+购书日期+单价
  • 查询结果=读者情况|图书情况|图书统计表

数据存储条目:

  • 借书文件={借书单}
  • 目录文件={入库单}+库存量
  • 读者文件={读者情况}

数据项条目:

  • {略}

加工小说明

6f50121e9086f4cbc5866aac05555c39.png

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

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

相关文章

重复次数最多的 子串_每日算法系列【LeetCode 424】替换后的最长重复字符

题目描述给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。示例1输入: s "ABAB", k 2 输出: …

python基础(一)简单入门

一.第一个python程序 1.交互式编程 直接在命令行里面输入python即可进入python交互式命令行,linux下一样: 在 python 提示符中输入以下文本信息,然后按 Enter 键查看运行效果: 2.脚本式编程 把代码都写到文件里面,然后…

unbuntu 启动任务脚本_Ubuntu下服务启动脚本编写

像Nginx、MySQL等服务一样,在后台运行自己编写的抓取天气信息的Python脚本。1.以管理员权限新建一个服务脚本文件sudo vim /etc/init.d/weather_service2.用下列模板修改该服务脚本文件#!/bin/bash### BEGIN INIT INFO## Provides: weather_service# Required-Start…

iOS开发工具——网络封包分析工具Charles

作者 唐巧 发布于 2013年12月9日 | 1 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享稍后阅读我的阅读清单简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要…

Java Web托管选项流程图

我经常被问到的一个问题是在何处以及如何托管Java Web应用程序。 可以在带有嵌入式服务器的Eclipse中创建它很好,但是如何将它带给人们呢? 长期以来,对于发烧友的程序员一直没有答案。 只有昂贵和超大型的选择。 事情最近变了,但这…

使用Regions ADF 11g进行Master Detail CRUD操作

你好 此示例演示了如何使用Regions在表之间创建Master Detail关系。 区域的主要目的是可重用性的概念。 使用区域和有限的任务流,我们可以将页面重用到许多其他页面中,以保持相同的功能并采用更简洁的方法。 下载示例应用程序。 在此示例中,…

win7 mysql php apache myadmin_windows下Apache+mysql+php+phpMyAdmin的安装及配置 | 学步园

1、下载Apache ( httpd-2.2.25-win32-x86-no_ssl.msi )http://httpd.apache.org/download.cgi#apache24根据提示安装到路径(建议自定义路径),NetWork Domain和Server Name都输入 localhost(访问时使用的域名);2、下载mysql (mysql-5.5.34-win32.msi )http://dev.m…

具有NetBeans,嵌入式GlassFish,JPA和MySQL数据源的Arquillian

这是一个偶然的帖子。 我一直在研究交易CDI观察者,并尝试使用嵌入式GlassFish对它进行一些集成测试。 但是令人惊讶的是,这种方法不能很好地工作,我仍在弄清楚,使用普通的嵌入式GlassFish时问题出在哪里。 同时,我转到…

jsp mysql 音乐网站_Maven+JSP+SSM+Mysql实现的音乐网站

项目简介本系统基于MavenJSPSSMMysql实现的音乐网站。主要实现的功能有音乐播放、下载、上传等几个模块。难度等级:中等技术栈编辑器Eclipse Version: 2020-03 (4.15.0)前端技术基础:htmlcssJavaScript框架:JQueryBootstrap后端技术SpringSpr…

持久化API(JPA)系列(三)实体Bean的开发技术-建立与数据库的连接

在EJB 2.x中。EJB有3种类型的Bean。各自是会话Bean(Session Bean)、消息驱动Bean(Message-Driven Bean)和实体Bean(Entity Bean)。 随着EJB 3的推出,EJB2.x中的实体Bean逐渐被JPA规范所替代&…

【SAP业务模式】之ICS(四):组织单元的配置

SAP的ICS业务后台配置主要有以下几个配置点: 1、组织单元的配置(公司代码、销售组织、工厂、采购组织等); 2、主数据的部分; 3、订单和开票的定价过程; 4、开票输出类型; 5、公司间发票的配置&a…

Twitter4j和Esper:在Twitter上跟踪用户情绪

对于复杂事件处理和Twitter API的新手,我希望这是一个简短的教程,可以帮助他们Swift起步。 管理大数据并从中挖掘有用的信息是当前技术中最热门的讨论主题。 来自Twitter,Facebook和Linkedin等社交网络的半结构化数据的爆炸式增长使Hadoop&am…

webase crud查看所有表_Laravel-Gii 可视化代码生成工具 CRUD +GUI

Laravel-Gii 可视化代码生成工具 CRUD GUI适用于快速B端后台开发,根据MySQL的表结构生成对应的Model、Observer、Controller、View、Route等相关项目文件[TOC]注意因为是解析MySQL的表结构,并且根据字段生成模板,所以目前生成的Model类时只支…

20145231第二周Java学习笔记

20145231 《Java程序设计》第2周学习总结 教材学习内容总结 本周的学习采用的依然是先看课本,再看视频,然后实践敲代码,最后根据学习笔记总结完成博客。 第三章:基础语法 知识点比较多比较零碎,整理的都是实际操作中可…

JavaFX 2.0和Scala,像牛奶和饼干

JavaFX 2.0和Scala都是很好的技术,但是一起使用时效果会更好。 JavaFX 2.0是一种功能强大的富客户端技术,具有先进的图形,动画和媒体功能。 Scala是一种简单但功能强大的语言,具有用于编写特定于域的语言(DSL&#xff…

ASP.NET WebAPi之断点续传下载(上)

前言 之前一直感觉断点续传比较神秘,于是想去一探究竟,不知从何入手,以为就写写逻辑就行,结果搜索一番,还得了解相关http协议知识,又花了许久功夫去看http协议中有关断点续传知识,有时候发觉东西…

贪吃蛇(C++实现,VC6.0编译,使用了EasyX图形库)

程序效果&#xff1a; 代码&#xff1a; //main.cpp 1 #include <iostream>2 #include<fstream>3 #include <graphics.h>4 #include <conio.h>5 #include<ctime>6 #include<windows.h>7 #include<mmsystem.h>8 #pragma comment(lib…

python中sorted的用法append_python sorted()排序详解

排序&#xff0c;在编程中经常遇到的算法&#xff0c;我也在几篇文章中介绍了一些关于排序的算法。有的高级语言内置了一些排序函数。本文讲述Python在这方面的工作。供使用内置函数sorted()/list.sort()的使用简单应用python对list有一个内置函数&#xff1a;>>> a[5…

云上的播放框架变得简单:Openshift模块

仅仅几年前&#xff0c;找到一个负担得起的Java Web应用程序托管解决方案是一项艰巨的任务&#xff0c;而寻找免费的托管解决方案是一项不可能的任务。 更不用说甚至考虑自动缩放&#xff0c;单命令部署&#xff0c;持续集成等事情&#xff0c;这都是科幻小说。 去年见证了云计…

C#中的yield return与Unity中的Coroutine(协程)(下)

Unity中的Coroutine&#xff08;协程&#xff09; 估计熟悉Unity的人看过或者用过StartCoroutine() 假设我们在场景中有一个UGUI组件&#xff0c; Image&#xff1a; 将以下代码绑定到Image 1 using UnityEngine;2 using System.Collections;3 using System.Threading;4 using …