单元2设计数据库_第1页
单元2设计数据库_第2页
单元2设计数据库_第3页
单元2设计数据库_第4页
单元2设计数据库_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元2设计数据库引言学生信息管理是高校学生管理工作的重要组成部分。学生信息管理系统涉及学生从入学到毕业离校的整个过程中管理的方方面面,主要包括学生成绩管理、学生住宿管理、学生助贷管理、学生任职管理、学生考勤管理、学生奖惩管理、学生就业管理等子系统。本教材教学案例和课堂练习采用学生信息管理系统中的学生成绩管理子系统,拓展练习采用学生住宿管理子系统。为什么需要设计数据库修建茅屋需要设计吗?修建大厦需要设计吗?结论:当数据库比较复杂时我们需要设计数据库为什么需要设计数据库良好的数据库设计节省数据的存储空间能够保证数据的完整性方便进行数据库应用系统的开发糟糕的数据库设计:数据冗余、存储空间浪费内存空间浪费数据更新和插入的异常【学习任务】任务1需求分析任务2设计数据库任务3确定表名和属性名任务4选取字段数据类型【学习目标】理解学生成绩管理系统和学生住宿管理系统的需求分析和关系模型;理解SQLServer支持的常用数据类型;能结合实际需求为表中字段选取合适数据类型。任务1任务1需求分析【任务提出】进行数据库设计首先必须明确了解与分析用户需求(包括数据与处理),需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。本任务要求完成学生成绩管理系统和学生住宿管理系统数据库需求分析。【任务分析】需求分析是整个数据库设计中最困难一步,对于初学者较难实施。同时考虑到需求分析的具体介绍会在后续课程安排,这里略过。并简单给出学生成绩管理系统和学生住宿管理系统的数据库需求分析结果。该任务要求学生仔细阅读给出的简单需求分析文档,并在课后调查所在学校的实际学生管理情况,结合学校实际情况分析理解。【相关知识与技能】1.需求分析的主要任务需求分析的主要任务是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。2.需求分析的过程需求分析的过程大致分为3步:需求调查、分析整理、修改完善。【任务实施】1.学生成绩管理系统数据库需求分析2.学生住宿管理系统数据库需求分析【任务总结】需求分析是整个数据库设计的第一步,主要任务是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。考虑到大家是初学者,以前没有学习过数据库设计开发相关知识,所以设计的系统案例较简单,使得大家容易入手。学习者可从本校实际学生管理情况出发对系统案例进行扩充。任务2任务2设计数据库【任务提出】在需求分析阶段数据库设计人员充分调查并描述了用户的数据和处理需求,但这些需求还是现实世界的具体需求,要某一DBMS实现用户的这些需求,需进行数据库设计,将现实世界的具体需求抽象为信息世界的结构并转化为相应的数据模型。本任务要求完成学生成绩管理系统和学生住宿管理系统数据库设计。【任务分析】进行数据库设计,须先理解数据库设计相关知识及关系数据库基本概念。考虑到数据库设计内容对于初学者来说较难理解,这里简要介绍,具体放在下学期详细讲解。【相关知识与技能】1.数据库设计阶段(1)概念结构设计阶段该阶段是整个数据库设计的关键,任务是通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。表示概念模型最常用的是实体-联系方法(E-R方法)。(2)逻辑结构设计阶段该阶段的任务是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。(3)数据库物理设计阶段该阶段的任务是为逻辑数据模型选取一个最合适应用环境的物理结构。【相关知识与技能】2.数据模型(1)为什么要建立数据模型首先,正如盖大楼的设计图一样,数据模型可使所有的项目参与者都有一个共同的数据标准;其次,数据模型可以避免出现问题再解决(边干边改的方式);第三,数据模型的使用可以及早发现问题;最后,可以加快开发速度。【相关知识与技能】(2)数据模型的分类1)概念数据模型简称概念模型,是面向数据库用户的现实世界的数据模型;与具体的DBMS无关。概念数据模型必须转换成逻辑数据模型,才能在DBMS中实现。2)逻辑数据模型逻辑数据模型是用户从数据库所看到的数据模型,是具体的DBMS所支持的数据模型。有层次模型、网状模型、关系模型、面向对象模型等。其中出现最早的是层次模型,而关系模型是目前最重要的一种模型。【相关知识与技能】(3)数据模型的三要素数据模型的组成要素有数据结构、数据操作、数据完整性约束。(4)关系模型1)关系模型的数据结构关系模型中数据的逻辑结构是一张二维表,称为关系,它由行和列组成。2)关系模型的数据操作操作主要包括查询、插入、删除、更新(修改)。3)关系模型的数据完整性约束包括实体完整性、参照完整性和用户定义的完整性。【相关知识与技能】3.关系数据库基本概念关系:一个关系对应于一张二维表。字段(属性):二维表(关系)的每一列称为一个字段(属性),每一列的标题称为字段名(属性名)。记录(元组):二维表(关系)的每一行称为一条记录(元组),记录由若干个相关属性值组成。【相关知识与技能】关系模式:是对关系的描述。一般表示为:关系名(属性1,属性2,…,属性n)。如学生(学号,姓名,性别,出生年月)。关系数据库:数据以“关系”的形式即表的形式存储的数据库。在关系数据库中,信息存放在二维表(关系)中,一个关系数据库可包含多个表。RDBMS:关系型数据库管理系统的简称,目前常用的数据库管理系统如SQLServer2005等都是RDBMS。【相关知识与技能】4.关系的性质(1)关系的每一个分量都必须是不分再分的数据项(2)关系中每一列中的值必须是同一类型的(3)不同列中的值可以是同一类型,不同的属性列应有不同的属性名(4)列的顺序无所谓(5)行的顺序无所谓(6)任意两个元组不能完全相同【任务实施】1.学生成绩管理系统数据库设计班级(班级编号,班级名称,所在学院,所属专业,入学年份)学生(学号,姓名,性别,出生年月,班级编号)课程(课程编号,课程名称,课程学分,课程学时)成绩(学号,课程编号,平时成绩,期末成绩)2.学生住宿管理系统数据库设计班级(班级编号,班级名称,所在学院,所属专业,入学年份)学生(学号,姓名,性别,出生年月,班级编号)宿舍(宿舍编号,楼栋,楼层,房间号,总床位数,宿舍类别,宿舍电话)入住(学号,宿舍编号,床位号,入住日期,离寝日期)卫生检查(检查号,宿舍编号,检查时间,检查人员,成绩,存在问题)【任务总结】数据库需求分析阶段的主要任务是确定在数据库中存储哪些数据,而数据库设计阶段的主要任务是将需要的数据合理组织存储到数据库中。任务3任务3确定表名和属性名【任务提出】数据库各关系模式确定后,并不能直接进行数据库实施,需先根据命名规范确定各关系的表名和属性名,然后根据实际需求为各属性选取合适数据类型,根据数据完整性要求定义各关系的完整性约束。本任务要求确定学生成绩管理系统和学生住宿管理系统中各关系的表名和属性名。【任务分析】表名和属性名的命名不能随心所欲,应规范命名。因为在数据库的开发和使用过程中涉及很多人员,如果随意命名,不易沟通而且容易出错。本任务先了解常见的命名规范,然后选择通用的命名规范来进行命名。【相关知识与技能】1.常见的命名规范【相关知识与技能】2.PascalCase(帕斯卡法)在实际应用中,常使用PascalCase命名方法,它使用大小写混合的单词,将每个单词的首字母大写,然后把它们连接在一起,中间不使用分隔符。本书案例的命名规范采用PascalCase。命名的单词一般采用英文单词或英文单词的缩写,尽量避免使用拼音命名,英文单词来自于具体业务定义,尽量表达清楚含义。【任务实施】1.确定学生成绩管理系统数据库的表名和属性名(1)班级(班级编号,班级名称,所在学院,所属专业,入学年份)

Class(ClassNo,ClassName,College,Specialty,EnterYear)(2)学生(学号,姓名,性别,出生年月,班级编号)

Student(Sno,Sname,Sex,Birth,ClassNo)(3)课程(课程编号,课程名称,课程学分,课程学时)

Course(Cno,Cname,Credit,ClassHour)(4)成绩(学号,课程编号,平时成绩,期末成绩)

Score(Sno,Cno,Uscore,EndScore)【任务实施】2.确定学生住宿管理系统数据库的表名和属性名(1)班级(班级编号,班级名称,所在学院,所属专业,入学年份)Class(ClassNo,ClassName,College,Specialty,EnterYear)(2)学生(学号,姓名,性别,出生年月,班级编号)Student(Sno,Sname,Sex,Birth,ClassNo)(3)宿舍(宿舍编号,楼栋,楼层,房间号,总床位数,宿舍类别,宿舍电话)Dorm(DormNo,Build,Storey,RoomNo,BedsNum,DormType,Tel)(4)入住(学号,宿舍编号,床位号,入住日期,离寝日期)Live(Sno,DormNo,BedNo,InDate,OutDate)(5)卫生检查(检查号,宿舍编号,检查时间,检查人员,成绩,存在问题)CheckHealth(CheckNo,DormNo,CheckDate,CheckMan,Score,Problem)【任务总结】表名和属性名必须按照命名规范来命名,切忌使用中文汉字命名。任务4任务4选取字段数据类型【任务提出】关系模型设计好后,接下来的工作是要根据实际采用的DBMS为各关系中的属性(字段)选取合适数据类型,以保证数据能存储到各关系中。本任务要求为学生成绩管理系统和学生住宿管理系统的各关系中的属性选取合适数据类型。【任务分析】不同的DBMS所支持的数据类型并不完全相同,而且与标准的SQL也有一定差异。本书采用的DBMS为SQLServer2005。为字段选取数据类型须先理解SQLServer2005支持的常用数据类型,然后根据实际需求为各关系字段选取合适数据类型。【相关知识与技能】1.数值型数据类型数值型数据包括整型、定点小数型和浮点型。定点小数型能精确指定小数点两边的位数,而浮点型只能近似地表示。【相关知识与技能】【相关知识与技能】2.字符型数据类型【相关知识与技能】3.日期时间型数据类型4.货币型数据类型有money数据类型和smallmoney数据类型。money和smallmoney被限定到小数点后4位。在实际应用中,经常采用decimal数据类型代替货币数据类型。【任务实施】1.为学生成绩管理系统数据库中的字段选取合适数据类型【例1】为Class表中的字段选取数据类型。【任务实施】【练习1】为Student表中的字段选取数据类型。Student(Sno,Sname,Sex,Birth,ClassNo)【练习2】为Course表中的字段选取数据类型。Course(Cno,Cname,Credit,ClassHour)【练习3】为Score表中的字段选取数据类型。Score(Sno,Cno,Uscore,EndScore)【任务总结】字段数据类型的选取非常关键,关系到实际使用中的数据能否存储到数据库表中,所以必须考虑全面,应遵循存储空间够用但不浪费的原则,同时要考虑到不同系统之间的数据转换,字符数据尽量使用Unicode数据类型。【拓展知识】1.二进制数据类型【拓展知识】2.标识列标识列自动为表生成行号。列数据类型为bigbit、int、smallint、tinyint、numeric和decimal能够成为标识列,一个表只能创建一个标识列。须同时指定标识增量和标识种子,或者两者都不指定。默认值(1,1)。【拓展知识】3.特殊数据类型Uniqueidentifier标识列自动为表生成行号,但不同表的标识列可以生成相同的行号。如果应用程序需要生成在整个数据库或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论