个人通讯录系统——数据库课程设计

时间:2024-03-30 07:09:41

 

 

 

 

 

 

 

 

课  程  设  计

 

课    程     数据库原理及应用课程设计    

题    目         个人通讯录系统          

学    院         信息工程学院            

   专    业        计算机科学与技术         

   班    级        18计科本科2班            

   姓    名            ******                

   学    号         201805050257             

指导教师            *****                 

 学年学期     2019-2020 学年第  二 学期    

 

   2020年  6 月  5 日

 

郑州升达经贸管理学院

课程设计任务书

题目                 个人通讯录系统                      

班级          2018级计算机科学与技术本科2            

学号      *************          姓名      张阵涛        

摘 要

随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必

须经常与亲戚、朋友、同学、同事保持联系,但是有时候存在着许多的限制条件,比如怎样找到交流对象的各种信息?可能你会想到现实生活中的手机等通讯工具,由于这些工具的单一性,不可能在第一时间找到自己想要的信息资料,因此,为了能够快速查找到联系人的信息,节省查找时间,开发通讯录管理系统。

 

通讯录管理系统是一个基于SQL数据库储存的个人通讯录管理系统。它是将自己的联系人的具体信息集中管理,成为一个方便人们使用的小软件。在开发过程中主要运用SQL技术,由于开发工具和数据库之间的良好使用,可以为开发带来方便,使之成为一个可施行的系统。从而达到开发的目的-----实现对通讯录信息的管理。

 

通过采用相关技术,以及老师的辅导和同学们的帮助,将系统设计的功能全部实现。功能包括:用户的登录, 添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯的联系人,并且可以根据数据表的各字段来查询你所要找的联系人等功能

 

 

 

 

 

 

 

 

 

 

 

 

 

目录

  1.       需求分析                                                                                                                                               1

1.1系统功能                                                                                                                                             1

1.2系统数据流                                                                                                                                        1

1.3数据字典                                                                                                                                             1

2.数据库概念结构设计                                                                                                                              4

2.1实体集                                                                                                                                                 4

2.2联系集                                                                                                                                                 4

2.3实体属性图                                                                                                                                        4

2.4局部E-R图                                                                                                                                         7

2.5全局E-R图                                                                                                                                         9

3.数据库逻辑设计                                                                                                                                       9

3.1E-R图转换而得到的关系模式                                                                                                       9

4.数据库实施                                                                                                                                              10

4.1数据库创建                                                                                                                                      10

4.2数据库表创建                                                                                                                                 10

4.2.1list表                                                                                                                                           10

4.2.2family表                                                                                                                                     11

4.2.3office表                                                                                                                                      11

4.2.4listfamily表                                                                                                                               12

4.2.5listoffice表                                                                                                                                12

4.3数据装载                                                                                                                                           13

5.数据库访问                                                                                                                                              15

5.1数据查询                                                                                                                                           15

5.2数据更新                                                                                                                                           16

6.数据库维护                                                                                                                                              18

6.1备份数据库                                                                                                                                      18

7.总结                                                                                                                                                            18

8.参考文献                                                                                                                                                   19

 

 

  1. 需求分析

1.1系统功能

通过与通讯录系统数据库用户交谈等方式以及作者对通讯录使用的分析,可以得到通讯录数据库系统的数据需求。

· 通讯录有多个功能。每个功能都建立在创建的实体和联系的上面,通过实体和联系来实现添加、删除、修改等操作。

· 通讯录的使用者通过其各自的实体来标识。通过系统添加并存储每个用户的姓名、电话、出生年月及其通讯地址等,用户在变更信息的情况下就修改之前提供的通讯信息。

· 通讯录在记录个人信息的同时,顺便也保存好家庭住址和办公住址及其对应的电话,以便在未及时修改个人信息的情况下能有其他方式联系用户,做到数据的多元选择。

· 通讯录使用者在管理通讯录记录时,及时删除无用记录和信息并修改,让通讯录总体结构清晰自然。

1.2系统数据流

个人通讯录系统——数据库课程设计

1.3数据字典

数据结构:list

含义说明:是通讯录的主体数据结构,定义了一个记录的有关信息

组    成:list_name,list_sex,list_number,list_birthday和list_address

 

数 据 项:list_name

含义说明:唯一标识每个记录

别    名:姓名 

类    型:字符型

长    度:8

取值范围:

取值含义:通讯录记录的姓名

数 据 项:list_sex

含义说明:唯一标识每个记录

别    名:性别

类    型:字符型

长    度:4

取值范围:

取值含义:被记录者的性别

 

数 据 项:list_ number

含义说明:唯一标识每个记录

别    名:手机号码

类    型:字符型

长    度:16

取值范围:

取值含义:被记录者的手机号码,区别于办公电话

数 据 项:list_birthday

含义说明:唯一标识每个记录

别    名:生日

类    型:字符型

长    度:8

取值范围:

取值含义:被记录者的生日

数 据 项:list_address

含义说明:唯一标识每个记录

别    名:通讯地址

类    型:字符型

长    度:80

取值范围:

取值含义:被记录者的通讯地址

数据结构:family

含义说明:是通讯录的主体数据结构,定义了一个记录的有关信息

组    成:f_number和f_address

 

数 据 项:f_number

含义说明:唯一标识每个记录

别    名:家庭电话

类    型:字符型

长    度:16

取值范围:

取值含义:被记录者的家庭电话

数 据 项:f_ address

含义说明:唯一标识每个记录

别    名:家庭住址

类    型:字符型

长    度:80

取值范围:

取值含义:被记录者的家庭地址

数据结构:office

含义说明:是通讯录的主体数据结构,定义了一个记录的有关信息

组    成:of_number,of _address和of_e_mail

 

数 据 项:of_number

含义说明:唯一标识每个记录

别    名:办公电话

类    型:字符型

长    度:16

取值范围:

取值含义:被记录者的办公电话

 

数 据 项:of_address

含义说明:唯一标识每个记录

别    名:办公地址

类    型:字符型

长    度:80

取值范围:

取值含义:被记录者的办公地址

数 据 项:of_e_mail

含义说明:唯一标识每个记录

别    名:电子邮箱

类    型:字符型

长    度:20

取值范围:

取值含义:被记录者的电子邮箱

 

  1. 数据库概念结构设计

2.1实体集

>>>实体集list,具有属性list_name,list_sex,list_ number,list_birthday,list_address。

>>>实体集family,具有属性f_number和f_address。

>>>实体集office,具有属性of_number,of_address和of_e_mail。

2.2联系集

>>>listFamily是list和family间的一个多对一联系集。

>>>listOffice是list和office间的一个多对一联系集。

 

2.3实体属性图

个人通讯录系统——数据库课程设计

List实体图

个人通讯录系统——数据库课程设计

Family实体图

个人通讯录系统——数据库课程设计

Office实体图

个人通讯录系统——数据库课程设计

List family实体图

个人通讯录系统——数据库课程设计

List office实体图

 

2.4局部E-R图

个人通讯录系统——数据库课程设计

List family联系E-R图

个人通讯录系统——数据库课程设计

Listoffice联系E-R图

2.5全局E-R图

个人通讯录系统——数据库课程设计

个人通讯录系统E-R图

  1. 数据库逻辑设计

3.1E-R图转换而得到的关系模式

如下 (红色字体的为主码、下划线的为外码):

list = (list_name,list_sex,list_ number,list_birthday,list_address)

family = (f_number,f_address)

office = (of _number,of _address,of_e_mail)

listFamily = (list_namef _number)

listOffice = (list_nameof _number)

  1. 数据库实施

4.1数据库创建

CREATE DATABASE 通讯录;

个人通讯录系统——数据库课程设计

 

4.2数据库表创建

4.2.1list

CREATE TABLE `list` (

  `list_name` char(8) NOT NULL COMMENT '用户名',

  `list_sex` varchar(8) DEFAULT NULL COMMENT '性别',

  `list_number` char(16) DEFAULT NULL COMMENT '手机号',

  `list_birthday` varchar(80) DEFAULT NULL COMMENT '生日',

  `list_address` varchar(16) DEFAULT NULL COMMENT '通讯地址',

  PRIMARY KEY (`list_name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

个人通讯录系统——数据库课程设计

4.2.2family

CREATE TABLE `family` (

  `f_number` char(16) NOT NULL COMMENT '家庭电话',

  `f_address` char(80) DEFAULT NULL COMMENT '家庭住址',

  PRIMARY KEY (`f_number`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

个人通讯录系统——数据库课程设计

4.2.3office

CREATE TABLE `office` (

  `of_number` char(16) NOT NULL COMMENT '办公电话',

  `of_address` varchar(80) DEFAULT NULL COMMENT '办公地址',

  `of_e-mail` varchar(20) DEFAULT NULL COMMENT '办公E-mail',

  PRIMARY KEY (`of_number`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

个人通讯录系统——数据库课程设计

4.2.4listfamily

CREATE TABLE `listfamily` (

  `list_name` char(8) NOT NULL COMMENT '用户名',

  `f_number` char(16) NOT NULL COMMENT '家庭地址',

  PRIMARY KEY (`list_name`,`f_number`),

  KEY `listfamily_ibfk_2` (`f_number`),

  CONSTRAINT `listfamily_ibfk_2` FOREIGN KEY (`f_number`) REFERENCES `family` (`f_number`) ON DELETE CASCADE ON UPDATE CASCADE,

  CONSTRAINT `listfamily_ibfk_1` FOREIGN KEY (`list_name`) REFERENCES `list` (`list_name`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

个人通讯录系统——数据库课程设计

4.2.5listoffice

CREATE TABLE `listoffice` (

  `list_name` char(8) NOT NULL COMMENT '用户名',

  `of_number` char(16) NOT NULL COMMENT '办公地址',

  PRIMARY KEY (`list_name`,`of_number`),

  KEY `of_number` (`of_number`),

  CONSTRAINT `listoffice_ibfk_1` FOREIGN KEY (`list_name`) REFERENCES `list` (`list_name`),

  CONSTRAINT `listoffice_ibfk_2` FOREIGN KEY (`of_number`) REFERENCES `office` (`of_number`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

个人通讯录系统——数据库课程设计

4.3数据装载

List表数据

-- ----------------------------

-- Records of list

-- ----------------------------

INSERT INTO `list` VALUES ('张三', '男', '13807388888', '19910706', '河南新郑');

INSERT INTO `list` VALUES ('王可', '女', '15207383333', '19901101', '河南新郑');

INSERT INTO `list` VALUES ('郭豪', '男', '15807387777', '19900123', '河南新郑');

INSERT INTO `list` VALUES ('马庄', '男', '13407389999', '19891203', '河南新郑');

个人通讯录系统——数据库课程设计

Family表数据

-- ----------------------------

-- Records of family

-- ----------------------------

INSERT INTO `family` VALUES ('0731245677', '河南新郑32号楼');

INSERT INTO `family` VALUES ('07382456777', '河南新郑31号楼');

INSERT INTO `family` VALUES ('07412456777', '河南新郑33号楼');

个人通讯录系统——数据库课程设计

Office表数据

-- ----------------------------

-- Records of office

-- ----------------------------

INSERT INTO `office` VALUES ('0103333333', '北京东城区', '[email protected]');

INSERT INTO `office` VALUES ('07381111111', '河南新郑', '[email protected]。com');

INSERT INTO `office` VALUES ('07382222222', '河南新郑', '[email protected]');

INSERT INTO `office` VALUES ('07554444444', '广东深圳', '[email protected]');

个人通讯录系统——数据库课程设计

Listfamily表数据

-- ----------------------------

-- Records of listfamily

-- ----------------------------

INSERT INTO `listfamily` VALUES ('郭豪', '0731245677');

INSERT INTO `listfamily` VALUES ('王可', '07382456777');

INSERT INTO `listfamily` VALUES ('马庄', '07382456777');

INSERT INTO `listfamily` VALUES ('张三', '07412456777');

个人通讯录系统——数据库课程设计

listoffice表数据

-- ----------------------------

-- Records of listoffice

-- ----------------------------

INSERT INTO `listoffice` VALUES ('王可', '0103333333');

INSERT INTO `listoffice` VALUES ('马庄', '07381111111');

INSERT INTO `listoffice` VALUES ('郭豪', '07382222222');

INSERT INTO `listoffice` VALUES ('张三', '07554444444');

个人通讯录系统——数据库课程设计

  1. 数据库访问

5.1数据查询

查询“张三”的手机号,生日和地址

select list_name,list_number,list_birthday,list_address from list where list_name="张三";

个人通讯录系统——数据库课程设计

查询“马庄”的办公电话,手机号以及生日

select list.list_name,list_number,list_birthday,of_number from list inner join listoffice on list.list_name=listoffice.list_name where list.list_name="马庄";

个人通讯录系统——数据库课程设计

5.2数据更新

1假如王可生日为19901101,她换了手机号为18003933800,并改名为王老五

执行如下:update list set list_name="王老五",list_number=18003933800 where list_birthday=19901101;

个人通讯录系统——数据库课程设计

2假如用户的朋友马庄出国了,用不到这个联系方式了,用户想将马庄信息删除

执行如下:delete from list where list_name="马庄";

个人通讯录系统——数据库课程设计

  1. 数据库维护

6.1备份数据库

导出数据库

Mysqldump-uroot-pdatabasetable>*sql

导入数据库

Mysql-u 用户名 -p 数据库名称<数据库文件

  1. 总结

通过这次的课程设计,让我们对数据库原理有了更深入的理解,实践让我们更清晰地看到所学知识的重要性。在做课程设计的过程中,发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决,我们相信在以后的学习能够解决好它们。经过两个星期的努力,在老师的帮助下,通过自己的努力和从资料的引用,终于完成了这次个人通讯录系统的简单课程设计。工夫不负有心人,只要努力付出,就会得到美好的回报。

虽然这次选择的课程设计难度相对较小,但是通过我们自己的努力,一步一步的实现它。总而言之,我们从中学到了很多东西,我认为这次课程设计对于我以后的工作有很大帮助。

 

 

  1. 参考文献

[1]王珊,萨师煊.《数据库系统概论》[M].北京:高等教育出版社,2006.5

[2]何玉洁.《数据库原理与应用》[M].机械工业出版社,2009.7