由于老师与研究生、老师与本科生是一对多的关系,按照关系数据库的设计思想,应该把老师表的主键即编号加到研究生、本科生表中,作为它们的外键;由于老师与电脑、研究生与电脑、本科生与电脑、实验室管理员与电脑也是一对多的关系,应该把老师、研究生、本科生、实验室管理员表的主键即编号加到电脑表中,作为它的外键。由于老师、研究生、本科生等人员对象与硕士论文、程序文档、项目文档、研究报告、本科毕业设计文档、课件幻灯片等资料对象是多对多的关系,按照关系数据库的设计思想,应该建立新的表来表示它们之间的关系,新表的主键单独定义,外键则由资料对象的主键与人员对象的主键组成。由于帐号与人员对象是一对一的关系,可以把人员对象的主键即编号加到帐号表中,作为它的外键。
通过以上的分析,建立如下的关系模式:
老师(编号,姓名,性别,出生年月,身份证,职称,手机号码,邮箱地址,研究课题,介绍)
研究生(编号,实验室号,姓名,性别,出生年月,身份证,手机号码,邮箱地址,QQ,校内住址,年级,专业,学费类别,导师编号,研究课题,介绍,备注)
本科生(编号,姓名,性别,出生年月,身份证,手机号码,邮箱地址,QQ,校内住址,年级,专业,指导老师编号)
实验室管理员(编号,姓名,性别,出生年月,身份证,任职时间,手机号码,邮箱地址,QQ)
电脑(编号,实验室号,类型,CPU,硬盘,显卡,内存,显示器,购买日期,使用者编号)
打印机(编号,实验室号,型号,购买日期)
服务器(编号,实验室号,CPU,硬盘,显卡,内存,显示器,操作系统,更新日期,备份日期,购买日期)
实验仪器(编号,实验室号,名称,型号,购买日期)
硕士论文(编号,题目,提交时间,摘要,发表情况,公开等级,文件)
程序文档(编号,文档名称,提交时间,描述,公开等级,文件)
项目文档(编号,项目名称,提交时间,描述,公开等级,文件)
研究报告(编号,研究课题,提交时间,描述,发表情况,公开等级,文件)
本科毕业设计文档(编号,题目,提交时间,描述,公开等级,文件)
课件幻灯片(编号,题目,提交时间,公开等级,文件)
资料作者关联表(关联表编号,作者编号,资料编号)
参考文献(编号,题目,提交时间,摘要,公开等级,文件)
常用软件(编号,名称,上传时间,文件)
新闻与通知(编号,发布日期,题目,发布者,内容)
帐号表(帐号,密码,对应人员编号)
为了能根据资料作者关联表中的信息准确定位要查找的人员对象表和资料对象表,在定义它们的编号时,规定管理员,老师,研究生,本科生的编号第一位分别为1/2/3/4;硕士论文、程序文档、项目文档、研究报告、本科毕业设计文档、课件幻灯片的编号第一位分别为1到6,这样只要匹配编号的第一位就可以很容易地定位出要查找的两个表了。
4.3数据字典
数据库系统随着存储的信息不断增加,其所占的储存空间也会不断地增大,如果一个服务的空间已经满了,就要设置一个新的服务器,这无疑大增加了数据库系统的成本。为了尽量减少建设和文护的成本,在建立数据库的时间应该充分考虑到目前与将来的使用需求,为每一个字段设置一种合适的数据类型和数据长度。针对本实验室管理系统,其占有空间的增长速度不会很快,再加上主要占用存储空间的字段是存放各种资料文档的二进制文件的字段,因此,除“文件”字段以外的字段可以用字符型数据类型(char)来定义,长度可根据具体字段作不同的定义;又由于“介绍”、“摘要”、“描述”等字段的长度对于不同的元组会不一样,所以就使用长度可变的字符类型(varchar);占用存储空间最大的“文件”字段则要定义为image数据类型。image 数据中的数据被存储为位串,SQL Server 不对其进行解释。对 image 列中的数据的任何解释都必须由应用程序来完成。例如,应用程序可以用 BMP、TIFF、GIF 或 JPEG 格式将数据存储在 image 列中。从 image 列中读取数据的应用程序必须能够识别数据的格式并正确显示数据。image 列所做的全部工作就是提供一个位置,以存储组成图像数据值的位流。通常情况下,image 字符串是存储在数据行外的大型(最高可达 2 GB)字符或二进制字符串。数据行只包括一个 16 字节的文本指针,该指针指向一个树的根节点,该树由映射存储串片段的页的内部指针构成。使用 SQL Server,可将中小型image 值存储在一个数据行中,从而提高查询访问这些值的速度。当image 字符串存储在数据行中时,SQL Server 无须访问单独的页或页集合来读写这些字符串。这使得对image 行内字符串的读取几乎与对 varchar、nvarchar 或 varbinary 字符串的读取一样快。
根据以上的分析,定义数据库的数据字典如下:
老师:
{编号,老师的编号,字符型,10}
{姓名,老师的姓名,字符型,10}
{性别,老师的性别,字符型,2}
{出生年月,老师的出生日期,字符型,10}
{身份证,老师的身份证号码,字符型,20}
{职称,老师的职称,字符型,10}
{手机号码,老师的手机号码,字符型,15}
{邮箱地址,老师的邮箱地址,字符型,30}
{研究课题,老师的研究课题,可变长度的字符型,MAX}
{介绍,老师的个人介绍,可变长度的字符型,MAX}
研究生:
{编号,研究生的编号,整数型,10}
{实验室号,研究生的实验室号,字符型,10}
{姓名,研究生的姓名,字符型,10}
{性别,研究生的性别,字符型,2}
{出生年月,研究生的出生日期,字符型,10}
{身份证,研究生的身份证号码,字符型,20}
{手机号码,研究生的手机号码,字符型,15}
{邮箱地址,研究生的邮箱地址,字符型,30}
{QQ,研究生的QQ号码,字符型,10}
{校内住址,研究生的校内住址,字符型,10}
{年级,研究生的年级,字符型,10}
{专业,研究生的专业名称,字符型,20}
{学费类别,研究生的学费类别,字符型,10}
{导师编号,研究生的指导老师的编号,字符型,10}
{研究课题,研究生的研究课题,可变长度的字符型,MAX}
{介绍,研究生的个人介绍,可变长度的字符型,MAX}
{备注,研究生的备注信息,字符型,20}
本科生:
{编号,本科生的编号,字符型,10}
{姓名,本科生的姓名,字符型,10}
{性别,本科生的性别,字符型,2}
{出生年月,本科生的出生日期,字符型,10}
{身份证,本科生的身份证号码,字符型,20}
{手机号码,本科生的手机号码,字符型,15}
{邮箱地址,本科生的邮箱地址,字符型,30}
{QQ,本科生的QQ号码,字符型,10}
{校内住址,本科生的校内住址,字符型,10}
{年级,本科生的年级,字符型,10}
{专业,本科生的专业名称,字符型,20}
{指导老师师编号,本科生的指导老师的编号,字符型,10}
实验室管理员:
{编号,实验室管理员的编号,字符型,10}
{姓名,实验室管理员的姓名,字符型,10}
{性别,实验室管理员的性别,字符型,2}
{出生年月,实验室管理员的出生日期,字符型,10}
{身份证,实验室管理员的身份证号码,字符型,20}
{任职时间,实验室管理员的入职时间,字符型,10}
{手机号码,实验室管理员的手机号码,字符型,15}
{邮箱地址,实验室管理员的邮箱地址,字符型,30}
{QQ,实验室管理员的邮箱地址,字符型,10}电脑:
{编号,电脑的统一编号,字符型,10}
{实验室号,电脑所在实验室的号码,字符型,10}
{类型,台式或是手提,字符型,5}
{CPU,电脑的CPU型号,字符型,20}
{硬盘,电脑的硬盘大小 ,字符型,10}
{显卡,电脑的显卡型号,字符型,20}
{内存,电脑的内存大小 ,字符型,10}
{显示器,电脑的显示器型号,字符型,20}
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页