文档视界 最新最全的文档下载
当前位置:文档视界 › 数据库-逻辑结构设计

数据库-逻辑结构设计

数据库-逻辑结构设计
数据库-逻辑结构设计

1、关系模型与ER模型:(一个关系就是一张二维表)

关系模式:→二维表

ER模型:→ER图

2、关系模型的基本概念:

教师(教师编号,A, B, 姓名,性别,所在系)--主表

课程(课程号,课程名,上课教师,教师编号)--从表

关系名:实体与实体间的联系

元组----记录---行(非空)

字段----数据项---列(属性)

键----关键字----标识属性(主键,外键,候选键)

主从关系:以该属性为主键的表就是主表,以该属性为外键的表就是从表。

3、将ER模型转换成二维表,以下面为例:

ER模型:

实体:

教师(教师编号,姓名,性别,所在系)

课程(课程号,课程名,教师编号,上课教室)

学生(学号,姓名,年龄,班级)

联系:

讲授(教师编号,课程号)

选修(学号,课程号,成绩)

二维表:

①将实体转为关系表

(实体名--关系名,实体属性--关系属性,即列,实体键--关系键)

②将实体的联系转为关系表(关系模式)

1:1的联系--可以转为一个独立的关系模式,也可以与任一实体合并

1:n的联系--可以转为一个独立的关系模式,也可以与n端实体合并

m:n的联系--可以转为一个关系模式

3个或3个以上实体之间的多元化的联系--可以转为一个关系模式

相同的键的关系模式可以合并

4、关系规范化:(5个等级----5个范式-----1NF→5NF)Form

①规范化原因:消除不合适的数据依赖,即关系模式中会存在以下弊端:

数据重复(冗余)

数据不一致性

数据插入异常

数据删除异常….

②范式规范化的判定条件:

1NF:实体中的属性不能再分解

实例:

学生1(学号,姓名,性别,出生日期,系部代码,入学时间,家庭成员)不属于1NF

更改后:

学生1(学号,姓名,性别,出生日期,系部代码,入学时间,家庭)

家庭(学号,家庭成员姓名,亲属关系)

2NF:实体中的非键属性完全依赖键属性

实例:

属于1NF,不属于2NF

分析:

系部代码----由学号决定,出生日期---由学号决定,成绩---由学号+课程号决定

更改后:

3NF:没有一个非键属性传递依赖于键(关键字→非关键字1....→非关键字n)

实例:

属于2NF 分析:

姓名,性别,出生日期,入学时间---由学号唯一决定

系部代码,系名,系宿舍楼----不是由学号唯一决定,相互递推出来不属于3NF

(例如:系部代码----由学号或者系名或者系宿舍楼推出)

更改后:

5、关系数据的完整性:

实体完整性:对关系的主键进行约束(主键的属性列值不能空)

参照完整性:对关系的外键进行约束(不能在从表中引用主表中不存在的元组)用户自定义完整性:对关系中具体数据指定约束条件

教师(教师编号,A, B, 姓名,性别,所在系)--主表

课程(课程号,课程名,上课教师,教师编号)--从表

6、数据依赖

完全依赖:

传递依赖:

多值依赖:

平凡与非平凡依赖:

7、逻辑结构设计过程:

①写出关系模式,绘制ER图

②对关系模式转为2维关系表,并进行范式规划化,使其达到3NF

③对2维表中关系数据的完整性约束

8、练习3

数据库表结构设计参考

数据库表结构设计参考

表名外部单位表(DeptOut) 列名数据类型(精度范围)空/非空约束条件 外部单位ID 变长字符串(50) N 主键 类型变长字符串(50) N 单位名称变长字符串(255) N 单位简称变长字符串(50) 单位全称变长字符串(255) 交换类型变长字符串(50) N 交换、市机、直送、邮局单位邮编变长字符串(6) 单位标识(英文) 变长字符串(50) 排序号整型(4) 交换号变长字符串(50) 单位领导变长字符串(50) 单位电话变长字符串(50) 所属城市变长字符串(50) 单位地址变长字符串(255) 备注变长字符串(255) 补充说明该表记录数约3000条左右,一般不做修改。初始化记录。 表名外部单位子表(DeptOutSub) 列名数据类型(精度范围)空/非空约束条件 外部子单位ID 变长字符串(50) N 父ID 变长字符串(50) N 外键 单位名称变长字符串(255) N 单位编码变长字符串(50) 补充说明该表记录数一般很少 表名内部单位表(DeptIn) 列名数据类型(精度范围)空/非空约束条件 内部单位ID 变长字符串(50) N 主键 类型变长字符串(50) N 单位名称变长字符串(255) N 单位简称变长字符串(50) 单位全称变长字符串(255) 工作职责 排序号整型(4) 单位领导变长字符串(50) 单位电话(分机)变长字符串(50) 备注变长字符串(255)

补充说明该表记录数较小(100条以内),一般不做修改。维护一次后很少修改 表名内部单位子表(DeptInSub) 列名数据类型(精度范围)空/非空约束条件内部子单位ID 变长字符串(50) N 父ID 变长字符串(50) N 外键 单位名称变长字符串(255) N 单位编码变长字符串(50) 单位类型变长字符串(50) 领导、部门 排序号Int 补充说明该表记录数一般很少 表名省、直辖市表(Province) 列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 名称变长字符串(50) N 外键 投递号变长字符串(255) N 补充说明该表记录数固定 表名急件电话语音记录表(TelCall) 列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 发送部门变长字符串(50) N 接收部门变长字符串(50) N 拨打电话号码变长字符串(50) 拨打内容变长字符串(50) 呼叫次数Int 呼叫时间Datetime 补充说明该表对应功能不完善,最后考虑此表 表名摄像头图像记录表(ScreenShot) 列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 拍照时间Datetime N 取件人所属部门变长字符串(50) N 取件人用户名变长字符串(50) 取件人卡号变长字符串(50) 图片文件BLOB/Image

数据库设计各阶段

1.数据库应用系统的设计步骤 按规范设计的方法可将数据库设计分为以下六个阶段 (1)需求分析; (2)概念结构设计; (3)逻辑结构设计; (4)数据库物理设计; (5)数据库实施; (6)数据库运行和维护。 2.需求分析 需求收集和分析是数据库应用系统设计的第一阶段。明确地把它作为数据库应用系统设计的第一步是十分重要的。这一阶段收集到的基础数据和一组数据流图(Data Flow Diaˉgram———DFD)是下一步设计概念结构的基础。概念结构对整个数据库设计具有深刻影响。而要设计好概念结构,就必须在需求分析阶段用系统的观点来考虑问题、收集和分析数据及其处理。如何分析和表达用户需求呢?在众多的分析方法中,结构化分析(Structured Analysis,简称SA方法)是一个简单实用的方法。SA方法用自顶向下、逐层分解的方式分析系统。用数据流图,数据字典描述系统。然后把一个处理功能的具体内容分解为若干子功能,每个子功能继续分解,直到把系统的工作过程表达清楚为止。在处理功能逐步分解的同时,它们所用的数据也逐级分解。形成若干层次的数据流图。数据流图表达了数据和处理过程的关系。处理过程的处理逻辑常常用判定表或判定树来描述。数据字典(Data Dictionary,简称DD)则是对系统中数据的详尽描述,是各类数据属性的清单。对数据库应用系统设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。数据字典是各类数据描述的集合,它通常包括以下5个部分: (1)数据项,是数据最小单位。 (2)数据结构,是若干数据项有意义的集合。 (3)数据流,可以是数据项,也可以是数据结构。表示某一处理过程的输入输出。 (4)数据存储,处理过程中存取的数据。常常是手工凭证、手工文档或计算机文件。 (5)处理过程。

实验二_C语言逻辑结构程序设计

实验二C语言逻辑结构程序设计 一、实验内容 1.用scanf函数输入一个年份year,计算这一年2月份的天数days,然后用输出函数printf输出days。 2.编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。 3.编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。 4. 学有余力的同学完成附加题。 二、实验目的和要求 1. 进一步掌握关系表达式和逻辑表达式的使用。 2. 熟悉选择结构程序设计。 3. 熟练使用if语句进行程序设计。 4. 使用switch语句实现多分支选择结构。 三、预习要求 熟悉选择结构程序设计语句和方法。 四、实验设备(软、硬件) 硬件设备:PC机 软件环境:Turboc 2.0 五、实验方法与步骤 1.用scanf函数输入一个年份year,计算这一年2月份的天数days,然后 用输出函数printf输出days。 实验步骤与要求: (1)有变量定义为整型。 (2)输入前要加提示语句。 (3)输出结果前要有必要的文字说明。 说明: (1)闰年的条件是:year能被4整除但不能被100整除,或者year能被400 整除。

(2)如果year是闰年,则2月份的天数为29天,不是闰年则为28天。 2.编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。实验步骤与要求: (1) 输入一组数据3,4,8,观察程序运行结果,并与实验二中程序2做比较 (2) 另外再输入几组数据进行测试: 3,4,5 3,3,3 3,3,5 (3)如果程序有误,可采用“跟踪打印”的调试方法,确定错误的出处。 3.编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。 奖金税率 a<500 0.00 500≤a<1000 0.05 1000≤a<2000 0.08 2000≤a<5000 0.10 5000≤a 0.15 实验步骤与要求: (1) 用if语句编程,自变量和函数值均为双精度类型 (2) 用scanf函数输入奖金数a,输出结果采用以下形式: a=具体值 rate=税率值 tax=应缴税款 profit=实得奖金数 (3) 分别输入a=280,512,1000,4250,5100,运行该程序 (4) 用if~else if语句和switch语句编程,其它同上。 六、实验报告要求 1.每次实验后撰写一份实验报告; 2.实验报告采用学校统一的“中国人民公安大学计算机课实验报告”纸; 3.学生按照实验报告纸上的内容认真填写每一项,实验过程一项中要求填写要求上机调试的程序和调试程序的步骤程序;

数据库设计的基本步骤

数据库设计的基本步骤 一、数据库设计的生存期 按照规范设计的方法,考虑到数据库及其应用系统开发的全过程,将数据库 设计分为六个阶段。如下图。 ① 需求分析 需求收集和分析, 需求。 ② 概念结构设计 对需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型(用 E-R 图表示)。 ③ 逻辑结构设计 将概念结构转换为某个DBMS 所支持的数据模型(例如关系模型),并对其 进行优化。 ④ 物理结构设计 为逻辑数据模型选取一个最适合应用环境的物理结构 (包括存储结构和存取 方法)。 ⑤ 数据库实施 需求A 祈断段 T 1 概念设计阶段 i 逻辑 q 丰计阶段 1 物理. 1 殳计阶段 j 数据E L 支实施阶段 数据库运荷? 维护阶段 得到用数据字典描述的数据需求,用数据流图描述的处理

运用DBMS 提供的数据语言(例如 SQL )及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 ⑥数据库运行和维护 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。 说明:设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述 六个阶段的不断反复。 二、数据库设计阶段的内容 设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程。下面针对各阶段的设计内容给出各阶段的设计描述。如下图。 阶段 濮块结构) 三、数据库设计阶段的模式 数据库结构设计的不同阶段形成数据库的各级模式,如下图 需求数据字睦、全系统中数据项、 分析數据證、数据存储的描述 数1E流图和判定我(利宦 闕)、数据字典中处理过程的 描述 设计 概念模型〔E?兄图) 模块设计 IPO表 编写模武装入 数JE 实施数揭库试 运行阶段 Create … L o豆恋■?. 程序编码 编译联结 测试 Tlain () * ■ A if???then ■■ i HUl 数据宇典 系窥说朋书包括: ①新系统要求、 方案和概图 ②反映新系统信息 流的数据流图 方法选择物理 存取路径建立设计

实验2 逻辑结构程序设计(答案)

实验二逻辑结构程序设计 实验课程名:高级语言程序设计ΙΙ 专业班级:学号:姓名: 实验时间:16-3-30 实验地点:K4 指导教师: 一、实验目的及要求 1.了解C语言表示逻辑量的方法(以0代表“假”,以非代表“真”)。 2.学会正确使用逻辑运算符和逻辑表达。 3.熟练掌握if语句和switch语句. 4.学习调试程序。 二、实验内容 (1)源程序c30105.c中包含有一些错误,调试下列程序,使之具有如下功能:输入 a、b、c三个整数,求最小值。 # include “stdio.h” void main( ) { int a,b,c; scanf("%d%d%d",a,b,c); if((a>b)&&(a>c)) if(b键)。改正输入数据的分隔方式后,程序没有输出,还是用单步执行的方法,监视程序的执行过程,发现程序中条件设计有误,经过改正的程序如下: # include “stdio.h” void main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); if((a

进销存数据库表结构设计

1.帐类表(KIND) 无索引 序号中文名称英文名称类型备注 1 帐类编号K_SERIAL byte 2 帐类名称K_NAME text*10 本表系统自动建立,共划分为15种帐类,不可增删 帐类编号帐类名称备注 0 上期结存进货,不参加进货统计 1 购入进货,购入时必需输入供货单位名称 2 自制进货 3 投资转入进货 4 盘盈进货 5 领料出库,领料必需输入领料部门名称 6 调拨出库 7 报损出库 8 盘亏出库 9 退库对低值易耗品,在用品退为在用库存 10 直接报废对于低值易耗品,在用品转报废 11 领用对于低值易耗品,在用库存转在用 12 调拨对于低值易耗品,在用库存减少 13 报废对于低值易耗品,在用库存报废 14 直进直出进出库,购入与领料对库存无影响 2.物品表(GOODS) 序号索引名称索引域唯一? 主索引? 1 G_CODING +G_CODING Y N 2 G_SERIAL +G_SERIAL Y Y 序号中文名称英文名称类型备注 1 物品内部编号G_SERIAL INT->long 系统内部唯一标识该物品 2 物品编号G_CODING TEXT * 10 用户使用此编号访问物品 &3 物品名称G_NAME TEXT*40 非空 &4 物品单位G_UNIT TEXT*8 非空 &5 物品规格G_STATE TEXT*20

6 物品类别G_CLASS INT 取自表CLASS 7 备注G_REMARKS MEMO 8 最小库存量G_MIN CURRENCY 为零,即无最小库存 9 最大库存量G_MAX CURRENCY 为零,即无最大库存 10 库存数量G_QUANT CURRENCY 控制出库数量 11 虚拟库存数量G_VQUANT CURRENCY 出库时用 12 库存金额G_AMOUNT CURRENCY 3.类别表(CLASS) 序号索引名称索引域唯一? 主索引? 1 C_CODING +C_CODING Y N 2 C_SERIAL +C_SERIAL Y Y 序号中文名称英文名称类型备注 1 类别内部序号C_SERIAL INT 系统内部唯一标识该物品 2 类别编号C_CODING TEXT *10 用户使用该编号访问类别信息 3 类别名称C_NAME TEXT*20 非空 4 出库类型C_KIND BYTE 1.移动平均 2..先进先出 3.后进先出 4.实际计价 *5.月末平均 5 备注C_REMARKS MEMO *6 底标志C_BOTTOM BOOLEAN *7 类别级别C_LEVEL BYTE 4.供货单位、使用部门(DEPART) 序号索引名称索引域唯一? 主索引? 1 D_CODING +D_CODING Y N 2 D_SERIAL +D_SERIAL Y Y 序号中文名称英文名称类型备注 1 内部序号D_SERIAL INT 系统内部唯一标识该部门 >0 供货单位 =0 库房 <0 使用部门 2 单位编号D_CODING TEXT*10

数据库课后题答案 第7章 数据库设计

第7章数据库设计 1.试述数据库设计过程。 答:这里只概要列出数据库设计过程的六个阶段:( l )需求分析;( 2 )概念结构设计;( 3 )逻辑结构设计;( 4 )数据库物理设计;( 5 )数据库实施;( 6 )数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。 2 .试述数据库设计过程各个阶段上的设计描述。 答:各阶段的设计要点如下:( l )需求分析:准确了解与分析用户需求(包括数据与处理)。( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型。( 3 )逻辑结构设计:将概念结构转换为某个DBMS 所支持的数据模型,并对其进行优化。( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。( 5 )数据库实施:设计人员运用DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。( 6 )数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。 3 .试述数据库设计过程中结构设计部分形成的数据库模式。 答:数据库结构设计的不同阶段形成数据库的各级模式,即:( l )在概念设计阶段形成独立于机器特点,独立于各个DBMS 产品的概念模式,在本篇中就是 E 一R 图;( 2 )在逻辑设计阶段将 E 一R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图( Vi 娜),形成数据的外模式;( 3 )在物理设计阶段,根据DBMS 特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。 4 .试述数据库设计的特点。 答:数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目。其主要特点有:( l )数据库建设是硬件、软件和干件(技术与管理的界面)的结合。( 2 )从软件设计的技术角度看,数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来。 5 .需求分析阶段的设计目标是什么?调查的内容是什么? 答:需求分析阶段的设计目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。调查的内容是“数据’夕和“处理”,即获得用户对数据库的如下要求:( l )信息要求,指用户需要从数据库中获得信息的内容与性质,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据;( 2 )处理要求,指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理;( 3 )安全性与完整性要求。 6 .数据字典的内容和作用是什么? 答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括:( l )数据项;( 2 )数据结构;( 3 )数据流;( 4 )数据存储;( 5 )处理过程五个部分。其中数据项是数

c语言程序设计实验报告 逻辑结构程序设计

广州大学学生实验报告四 一、实验目的 (1)熟练掌握关系表达式和逻辑表达式的使用。 (2)熟练掌握用if语句和嵌套的if语句实现多分支结构程序设计。 (3)熟练掌握switch语句实现多分支结构程序设计。 二、实验设备 实验设备要求每个学生一台电脑,并需装有VC++ 6.0程序。 三、实验内容 (一)编写程序:输入月薪 salary,输出应交的个人所得税tax(保留2位小数)。(文件名: ch04_1.cpp) 计算公式: tax=rate*(salary-850) 当salary<=850时,rate=0 当850

(二)编写程序:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。(文件名:ch04_2.cpp) 要求输入输出示例:(运行3次) 第一次 输入 x 运算符 y:21 % 8 21 % 8 = 5 第二次 输入 x 运算符 y:4 * 8 4 * 8 = 32 第三次 输入 x 运算符 y:21 / 7 21 / 7 = 3 (三)编写程序:输入4个整数,按由大到小的顺序输出。(文件名:ch04_3.cpp) 要求输入输出示例: 请输入a,b,c,d=3 5 1 9 9 > 5 > 3 > 1 (四)编写程序:验证:任何4个相邻的自然数(0除外)的乘积不是完全平方数,但乘积加 1后则是完全平方数,如15*16*17*18=73440不是,但73441=271*271是。(文件名:ch04_4.cpp)(提示:验证一个自然数是否是完全平方数,可将这个数先开平方再平方,看能否得到原数。) 要求输入输出示例: 请输入n:5 n=5 s=1680 sqrt(1680)=40.987803 1680+1=1681=41*41 结论正确 四、实验过程及最终效果(完成的网页代码及网页屏幕截图) 实验代码: 一.#include void main(void) { float tax,rate,salary; printf("请输入月薪:\n"); scanf("%f",&salary); if(salary<=850) {

数据库设计实例需求分析、概念结构、逻辑结构

数据库设计实例分析 一、需求分析实例 现要开发高校图书管理系统。经过可行性分析和初步的需求调查,确定了系统的功能边界,该系统应能完成下面的功能: (1)读者注册。 (2)读者借书。 (3)读者还书。 (4)图书查询。 1、数据流图 顶层数据流图反映了图书管理系统与外界的接口,但未表明数据的加工要求,需要进一步细化。根据前面图书管理系统功能边界的确定,再对图书管理系统顶层数据流图中的处理功能做进一步分解,可分解为读者注册、借书、还书和查询四个子功能,这样就得到了图书管理系统的第0层数据流图 从图书管理系统第0层数据流图中可以看出,在图书管理的不同业务中,借书、还书、查询这几个处理较为复杂,使用到不同的数据较多,因此有必要对其进行更深层次的分析,即构建这些处理的第1层数据流图。下面的图8-7分别给出了借书、还书、查询子功能的第1层数据流图 2、数据字典 数据项 数据项名称:借书证号 别名:卡号 含义说明:惟一标识一个借书证 类型:字符型 长度:20 …… 数据结构 (1)名称:读者类别 含义说明:定义了一个读者类别的有关信息 组成结构:类别代码+类别名称+可借阅数量+借阅天数+超期罚款额 (2)名称:读者 含义说明:定义了一个读者的有关信息 组成结构:姓名+性别+所在部门+读者类型 (3)名称:图书 含义说明:定义了一本图书的有关信息 组成结构:图书编号+图书名称+作者+出版社+价格 ……

数据流 (1)数据流名称:借书单 含义:读者借书时填写的单据 来源:读者 去向:审核借书 数据流量:250份/天 组成:借书证编号+借阅日期+图书编号 (2)数据流名称:还书单 含义:读者还书时填写的单据 来源:读者 去向:审核还书 数据流量:250份/天 组成:借书证编号+还书日期+图书编号 …… 数据存储 (1)数据存储名称:图书信息表 含义说明:存放图书有关信息 组成结构:图书+库存数量 说明:数量用来说明图书在仓库中的存放数 (2)数据存储名称:读者信息表 含义说明:存放读者的注册信息 组成结构:读者+卡号+卡状态+办卡日期 说明:卡状态是指借书证当前被锁定还是正常使用 (3)数据存储名称:借书记录 含义说明:存放读者的借书、还书信息 组成结构:卡号+书号+借书日期+还书日期 说明:要求能立即查询并修改 …… 处理过程 (1)处理过程名称:审核借书证 输入:借书证 输出:认定合格的借书证 加工逻辑:根据读者信息表和读者借书证,如果借书证在读者信息表中存在并且没有被锁定,那么借书证是有效的借书证,否则是无效的借书证。 …… 二、概念结构设计实例 1.标识图书管理系统中的实体和属性 参照数据字典中对数据存储的描述,可初步确定三个实体的属性为: 读者:{卡号,姓名,性别,部门,类别、办卡日期,卡状态} 读者类别:{类别代码,类别名称,可借阅天数、可借阅数量,超期罚款额}

数据库结构设计

一、数据库结构设计步骤 二、需求分析 三、概念结构设计 四、逻辑结构设计 五、数据库物理设计 数据库结构设计 一、数据库结构设计步骤 一般可将数据库结构设计分为四个阶段,即需求分析、概念结构设计、逻辑结构设计和物理设计。 下面各节分别介绍各阶段设计内容和具体方法。 二、需求分析 需求分析的任务是具体了解应用环境,了解与分析用户对数据和数据处理的需求,对应用系统的性能的要求,提出新系统的目标,为第二阶段、第三阶段的设计奠定基础。一般需求分析的操作步骤如下所述。 1.了解组织、人员的构成 子系统的划分常常以现有组织系统为基础,再进行整合,而新系统首先必须达到的目的是尽可能地完成当前系统中有关信息方面的工作,在原有系统中,信息处理总是由具体人来实施的。我们要了解组织结构情况、相互之间信息沟通关系、数据(包括各种报告、报表、凭证、单据)往来联系情况。 具体弄清各个数据的名称,产生的时间与传递所需时间与周期,数据量的大小,所涉及(传送)的范围,使用数据的权限要求,数据处理过程中容易发生的问题及其影响,各个部门所希望获得的数据的情况等。 然后了解每个人对每一具体数据处理的过程,基本数据元素来源于哪些地方、获取的途径、处理的要求、数据的用途,进而弄清数据的构成、数据元素的类型、性质、算法、取值范围、相互关系。 在上述调查基础上,首先画出组织机构及工作职能图。我们以一个学校的基层单位——某大学一个系的管理为例来简要说明。 系的组织机构及工作职能如图7.1所示。

图7.1 系管理体系结构图 作为管理层经常需要的信息和工作有: .查询老师个人基本情况及打印相应内容 .查询与统计科研项目情况及相关报表 .查询与统计论文著作情况及相关报表 .上级部门及其他部门来文管理与查询(要求能全文检索) .系部发文管理 .任务下达、检查及管理 .信件、通知的收发及管理 .日程安排调度及管理 .设备仪器计划及管理 .设备入库与库存情况管理与查询 .设备借还领用管理及相应报表 .耗材计划与领发管理及相应统计报表 .图书管理及借还情况查询 .学生毕业设计文档管理 .专业与班组编制与查询 .教学文档管理及查询(安排与检查,包括课表、考试日程安排、监考安排等).学生成绩管理与查询和统计 .教师、学生、实验室课表管理及查询 .学生基本情况管理与查询(包括社会活动、奖惩、家庭情况及学校校友管理)

数据库表结构设计参考

数据库表结构设计参考. )表名外部单位表(DeptOut 约束条件非空空数据类型(精度范围) /列名外部单位ID N 变长字符串(50) 主键 N 变长字符串类型 (50)

N 单位名称(255) 变长字符串 (50) 单位简称变长字符变长字符(255)单位全交换类交换、市机、直送、邮变长字符(50)N (6)单位邮变长字符 变长字符(50))单位标英整排序(4) (50)交换变长字符变长字符(50)单位领 变长字符单位电(50) 变长字符所属城(50) 变长字符(255)单位地 备(255) 变长字符 补充说300条左右,一般不做修改。初始化记录该表记录数 表外部单位子表DeptOutSu 数据类型(精度范围列非约束条 变长字符(50)外部子单IDN 外ID变长字符(50)N单位名N变长字符(255) 变长字符单位编(50) 该表记录数一般很补充说 表内部单位表DeptI

数据类型(精度范围非列约束条IDN(50)变长字符主内部单类N变长字符(50) (255)变长字符N单位名 (50)变长字符单位简 变长字符单位全(255) 工作职 排序整(4) 单位领导(50) 变长字符串 (50) 单位电话(分机)变长字符串 (255) 变长字符串备注. 条以内),一般不做修改。维护一次后很少修改补充说明该表记录数较小(100 内部单位子表(DeptInSub)表名 约束条件数据类型(精度范围)空列名/非空 (50) N 变长字符串内部子单位ID 变长字符串(50) 父ID N 外键 (255) 单位名称 N 变长字符变长字符(50)单位编领导、部变长字符(50)单位类 Int 排序 该表记录数一般很补充说 省、直辖市表Provinc表

数据库的逻辑结构

数据库逻辑存储结构 数据库的物理存储结构对应一系列的物理文件,这部分主要描述的是数据存储的实际位置,不过数据如果存储,是以什么结构存储到数据文件中,则取决于数据库的逻辑存储结构. Oracle数据库在执行操作时,并不是以数据文件为单位,而是从逻辑上定义出一组结构,操作的数据可以一步步细分不同的存储单元,oracle 操作数据的过程,实际上就是对这些不同级别的存储单元进行维护和管理的过程. 逻辑存储概述 --块(block)块是逻辑存储结构中最小存储单位,所有数据的存储都是以块为单位进行.初始化参数文件中BLOCK_SIZE来指定一个块的大小,也就是说oracle的块大小在数据库创建时指定,一经指定就无法修改,除非重建数据库. --区(extent) 区是oracle数据库的最小分配单位,由一组连续的块组成,这些块在物理上可能并不连续(也就是OS块),但是必需都存在于一个物理文件,单个区在分配时不能跨文件分配(这个文件应该是数据文件).在创建对象时,最少会为该对象分配一个区,这个区叫做初始区(initial extent) 在随着对象的不断扩展,超出初始区后,oracle就会再为其分配扩展区(incremental extent)扩展区不一定要与初始区连续存放,甚至大小也可以与初始区不同,不过扩展区也必需是由连续的块组成. 段(segment)从逻辑的角度看,段由一个或多个区组成,它是一个真正逻辑结构. 可以将段看作是对象的全部或某个部分 例如:一个普通的堆组织表(不含分区,LOB类型及索引等)那么该表就对应一个段,不管这个表中被存放多少记录,它都仍然只对应一个段,不过如果该表创建了索引,那么索引数据会存放专门的索引段,如果该表有LOB类型,LOB数据也会被存入单独的数据段. --表空间(tablespace)从逻辑上定义,是由一个或多个段组成,从物理上定义是由一个或多个数据文件组成.表空间是oracle数据库中空间分配的最大逻辑单位,在往上就是数据库级别. 平时进行的创建对象的操作,都是在表空间一级进行. **提示:如创建存储对象时只能指定存储到哪个表空间,而不能指定存储到更细粒度的逻辑结构,如段,区,块.也不能指定存储到某个数据文件中. *注意*:在创建存储对象时,只需要指定存储所在的表空间(如果未指定,则存储到用户当前的默认表空间中),其他一切由oracle自动处理图: 每层结构都是一对多的关系 逻辑结构对应关系图

SQL Server数据库设计的案例分析

数据库设计的案例分析 一、教学管理 1. 基本需求 某学校设计学生教学管理系统。学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号和名称,一个专业属于一个学院,一个学院可以有若干个专业。学院信息要存储学院号、学院名、院长。教学管理还要管理课程表和学生成绩。课程表包括课程号、课程名、学分,每门课程由一个学院开设。学生选修的每门课程获得一个成绩。 设计该教学管理的ER模型,然后转化为关系模型。 若上面的管理系统还要管理教师教学安排,教师包括编号、姓名、年龄、职称,一个教师只能属于一个学院,一名教师可以上若干门课程,一门课程可以有多名老师来上,每个教师所上的每门课都有一个课堂号和课时数。试修改上题的ER模型,将教师教学信息管理增加进去。

2. 参考设计: 图一教学管理ER图 由ER模型转换的关系模型是: 学生(学号,姓名,性别,生日,民族,籍贯,专业号,简历,登记照)专业(专业号,专业,专业类别,学院号) 学院(学院号,学院,院长) 课程(课程号,课程名,学分,学院号) 成绩(学号,课程号,成绩) (题目分析:本题中有学生、专业、学院、课程四个实体。一个学生只有一个主修专业,学生与专业有多对一的联系;一个专业只由一个学院开设,一门课程只由一个学院开设,学院与专业、学院与课程都是一对多的联系;学生与课程有多对多的联系。 在转换为关系模型时,一对多的联系都在相应的多方实体的关系中增加一个外键。) 增加教师,ER图如下。

图二有教师实体的教学管理ER图 3. 物理设计 基于Access的数据库结构设计如下。 指定数据库文件的名称,并为设计好的关系模型设计表结构。 数据库文件保存在“E:\教学管理\”文件夹中,数据库文件名:教学管理.MDB。 表包括:学院、专业、学生、课程、成绩单。对应表结构如表1-2至表1-6所示。 表1-1 学院 表1-2 专业 表1-3 学生

数据库原理课后题答案

第1章 1.试述数据、数据库、数据库系统、数据库管理系统的概念。 答:(1)数据:描述事物的符号记录成为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。 (2)数据库:数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按照一定的数据模型组织。描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 (3)数据库系统:数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发人具)、应用系统、数据库管理员构成。 (4)数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。DBMS的主要功能包括数据定义功能、数据操作功能、数据库的建立和维护功能。 6.试述数据库系统三级模式结构,这种结构的优点是什么? 答:数据库系统的三级模式机构由外模式、模式和内模式组成。 外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 模式亦称逻辑模式,是数据库中全体数据呃逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的内部逻辑结构,通常是模式的子集。 内模式,亦称存储模式,是数据在数据库内部的表示,即对数据的物理结构和存储方式的描述。 数据库系统的三级模式是对数据的三个抽象级别,它对数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。 为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式∕模式映像和模式∕内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 7.定义并解释下列术语。 外模式:亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 内模式:亦称存储模式,是数据在数据库内部的表示,即对数据的物理结构和存储方式的描述。 模式:亦称逻辑模式,是数据库中全体数据逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的内部逻辑结构,通常是模式的子集。 DDL:数据库定义语言,用来定义数据库模式、外模式、内模式的语言。DML:数据操纵语言,用来对数据库中数据进行查询、插入、删除和修改的语句。 8.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么

程序设计中逐步培养学生逻辑思维能力

程序设计中逐步培养学生逻辑思维能力 摘要:阐述程序设计与学生逻辑思维能力培养的重要性,如何在程序设计中逐步培养学生逻辑思维的方法,程序设计应分析问题且精心设计算法并调试成功的过程,进而更好地发挥学生的学识和才智。 关键词:程序设计算法设计调试逻辑思维 在程序设计中较为关心的是程序效率与正确性。程序效率常由算法的效率来决定。程序设计有一个特点,就是它必须与实践密切相联。在计算机上进行实际操作是学好程序设计的重要环节,它直接关系着教学质量的好坏。因此,在上机实践中,我们应该培养学生掌握正确的逻辑思维方法,只有养成好的程序设计习惯,才能使其编制的程序具有良好风格。心理学家纽威尔在总结人类大量的思维活动经验的基础上发现,人在解决各种不同的问题时,存在某些共同的规律。概括起来主要为以下3个方面:首先先想出大致的“解题计划”,其次根据理论和推理规则,去“组织解决”,最后进行“方法—目的分析”。因此,我们编制程序时应提倡独立思考,要讲点思维逻辑。程序设计一般要经过分析问题、确定算法、编制程序、上机调试这样几个步骤。 1 在分析问题时逐步培养学生独立思维的能力 上机操作前,我们强调让学生做好前期准备工作,最好把程序写好。一般来讲,写完一个程序只能说完成了设计任务的一半。往往有这样的情况,有的程序编好了,在上机时又全部被否定。现象一:程序的运行没有得到预期的结果。现象二:想让程序做的事,程序并没有去做或者是做错了。 为什么会发生这样的现象呢?有的学生对客观实际问题了解得不够全面,有的则是没有掌握好解决问题的方法。可以这样说,各种计算机语言都是用来解决客观问题的工具。编制程序时,除掌握好工具之外,更要有解决客观实际的科学思维方法。我们常在学生提出问题时,不是马上去告诉其如何去做,而是启发他“再想一想”。以问题促进思考,用问题启发思维,这个“再想一想”就是一个培养其从借助于感觉和表象认识客观事物的外部,联系到借助于判断和推理逐步认识客观事物的内部联系的思维过程。为了解决一个问题,学生们都在进行思考,

14数据库设计(答案)

数据库设计 一、单项选择题 1、数据库设计的起点是( B )。 A、系统设计阶段 B、需求分析阶段 C、概念结构设计阶段 D、逻辑结构设计阶段 2、数据库设计的概念结构设计阶段,表示概念结构的常用方法和描述工具是 ( D )。 A、层次分析法和层次结构图 B、数据流程图分析法和数据流程 C、结构分析法和模块结构图 D、实体-联系方法和e-r图 3、在关系数据库设计中,设计关系模式是数据库设计中的( C )阶段的任务。 A、需求分析 B、概念设计 C、逻辑设计 D、物理设计 4、将设计好的表创建到ACCESS中,并设计窗体完成对表数据的操作,这是数 据库设计中的( C )阶段的任务。 A、逻辑结构设计 B、物理结构设计 C、实施 D、使用与维护 5、数据库应用系统开发一般包括两个方面的内容,即( D )。 A、需求分析和维护 B、概念结构设计和逻辑结构设计 C、功能设计和测试设计 D、结构特性设计和行为特性设计 6、将e-r图中的实体和联系转换为关系模型中的关系,这是数据库设计过程 中( D )设计阶段的任务。 A、需求分析 B、概念分析 C、物理结构 D、逻辑结构 7、把实体-联系模型转换为关系模型时,实体之间一对多联系在关系模型中是 通过( B )来实现。 A、建立新的主关键字 B、在n方增加1方的主关键字为外部关键字 C、建立新的关系 D、建立新的实体 8、数据库设计可分为6个阶段,每个阶段都有自己的设计内容,“为哪些关 系,在哪些属性上、建什么样的索引”这一设计内容应该属于( C )设计阶段。 A、概念设计 B、逻辑设计 C、物理设计 D、全局设计 9、把实体-联系模型转换为关系模型时,实体之间一对一联系在关系模型中是 通过( A )来实现。 A、两个关系各自增加对方的关键字为外部关键字 B、建立新的主关键字 C、建立新的关系 D、建立新的实体 10、数据库物理设计完成后,进入数据库实施阶段,下述工作中( D )一般 不属于实施阶段的工作。 A、建立库结构 B、系统调试 C、加载数据 D、扩充功能 11、以下错误的说法是,需求阶段的主要目标包括( D )。 A、画出数据流图 B、了解用户对数据库应用系统的各种要求

数据库设计中英文术语表

数据库设计中英文术语表 June 27, 2004, In Focus on 索引 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 正文 1.Access method(访问方法):此步骤包括从文件中存储和检索记录。 2.Alias(别名):某属性的另一个名字。在SQL中,可以用别名替换表名。 3.Alternate keys(备用键,ER/关系模型):在实体/表中没有被选为主健的候选键。 4.Anomalies(异常)参见更新异常(update anomalies) 5.Application design(应用程序设计):数据库应用程序生命周期的一个阶段,包括设 计用户界面以及使用和处理数据库的应用程序。 6.Attribute(属性)(关系模型):属性是关系中命名的列。 7.Attribute(属性)(ER模型):实体或关系中的一个性质。 8.Attribute inheritance(属性继承):子类成员可以拥有其特有的属性,并且继承那些 与超类有关的属性的过程。 9.Base table(基本表):一个命名的表,其记录物理的存储在数据库中。 10.Binary relationship(二元关系):一个ER术语,用于描述两个实体间的关系。例如, panch Has Staff。 11.Bottom-up approach(自底向上方法):用于数据库设计,一种设计方法学,他从标 识每个设计组建开始,然后将这些组件聚合成一个大的单元。在数据库设计中,可以从表示属性开始底层设计,然后将这些属性组合在一起构成代表实体和关系的表。 12.Business rules(业务规则):由用户或数据库的管理者指定的附加规则。 13.Candidate key(候选键,ER关系模型):仅包含唯一标识实体所必须得最小数量的 属性/列的超键。 14.Cardinality(基数):描述每个参与实体的可能的关系数目。 15.Centralized approach(集中化方法,用于数据库设计):将每个用户试图的需求合并 成新数据库应用程序的一个需求集合 16.Chasm trap(深坑陷阱):假设实体间存在一根,但某些实体间不存在通路。 17.Client(客户端):向一个或多个服务器请求服务的软件应用程序。 18.Clustering field(群集字段):记录总的任何用于群集(集合)航记录的非键字段, 这些行在这个字段上有相同的值。 19.Clustering index(群集索引):在文件的群集字段上定义的索引。一个文件最多有一 个主索引或一个群集索引。 20.Column(列):参加属性(attribute)。 https://www.docsj.com/doc/a310311108.html,plex relationship(复杂关系):度数大于2的关系。 https://www.docsj.com/doc/a310311108.html,posite attribute(复合属性):由多个简单组件组成的属性。 https://www.docsj.com/doc/a310311108.html,posite key(复合键):包含多个列的主健。 24.Concurrency control(并发控制):在多用户环境下同时执行多个十五并保证数据完 整性的一个DBMS服务。

C语言实验报告4《逻辑结构程序设计》

嘉应学院计算机学院 实验报告 实验地点 课程名称C语言程序设计实验名称逻辑结构程序 设计 指导老师实验时间提交时间 班级姓名座号 一、实验目的和要求 (1)了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”。 (2)学会正确使用逻辑运算符和逻辑表达式。 (3)熟练掌握if语句好switch语句。 (4)结合程序掌握一些简单的算法。 (5)学习调试程序。 二、实验环境、内容和方法 实验内容: (1)给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,81~89分为B,70~79分为C,60~69为D,60分以下为E。 ①事先编好程序,要求用if语句来实现。运行程序,并检查是否正确。 ②再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等 级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知 用户“输入数据错”,程序结束。 (2)输入4个整数,要求按由小到大顺序输出。。 实验方法: (一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 (二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 (三)根据实验内容,编译程序。 实验环境:Windows xp Visual C++6.0 三、实验过程描述 (1)成绩分类程序(有“输入数据错”版) #include void main() { float x;

printf("输入成绩;\n"); scanf("%f",&x); if((x>=90)&&(x<=100)) { printf("成绩为A\n"); } else if((x>=80)&&(x<=89)) { printf("成绩为B\n"); } else if((x>=70)&&(x<=79)) { printf("成绩为C\n"); } else if((x>=60)&&(x<=69)) { printf("成绩为D\n"); } else if((x>=0)&&(x<60)) { printf("成绩为E\n"); } else { printf("输入数据错\n"); } } (2) 输入4个整数,按由小到大顺序输出(程序) #include void main() { int a,b,c,d,t; printf("请输入4个整数,用逗号隔开。\n"); scanf("%d,%d,%d,%d",&a,&b,&c,&d); if(a>b) {t=a; a=b; b=t; } if(a>c)

相关文档