课  程  设  计

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

题    目个人通讯录系统

学    院         信息工程学院            

   专    业        计算机科学与技术         

   班    级  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', '北京东城区', 'xiaodanzhu@163.com');

INSERT INTO `office` VALUES ('07381111111', '河南新郑', '2345678910@qq。com');

INSERT INTO `office` VALUES ('07382222222', '河南新郑', 'xiaopiqiu@163.com');

INSERT INTO `office` VALUES ('07554444444', '广东深圳', 'woxiaoxiao@qq.com');

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

个人通讯录系统——数据库课程设计相关推荐

  1. JAVA 点菜系统数据库课程设计

    点菜系统数据库课程设计 效果图 数据库建表 CREATE TABLE OrderDish (orderid int not null,money int,primary key(orderid) ); ...

  2. 学生选课系统 数据库课程设计

    数据库课程设计报告 设计题目         学生选课系统 专    业         计算机科学与技术 班    级         计1101 学    号 姓    名        寸利芳 ...

  3. 学生选课系统---数据库课程设计SQL Server

    可以直接从我的GitHub中获取文档: ##学生选课系统GitHub #一 题目 ###学生选课系统 #二 需求分析 1.根据学生专业学年学期等信息,录入课程完成课程计划 2.根据课程计划,录入任课教 ...

  4. 计算机信息管理是学什么课程设计,毕业论文计算机专业学生信息管理系统(数据库课程设计)...

    毕业论文计算机专业学生信息管理系统(数据库课程设计) (70页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 兰州石化职业技术学院毕业设计( ...

  5. 数据库课程设计--淘宝购物订单系统

    数据库课程设计–淘宝订单系统 也不知道那个憨批给我改的鸟名,孩他妈只能一个月一改,我服了. 过几天写个java版本的出来,php写的感觉技术含量太低,效率也低 前台:https://mysql.cxy ...

  6. 数据库课程设计——火车票售票系统

    摘要 数据库课程设计的题目,设计了一个火车票售票系统,实现了列车信息查询,车票查询及购买,订单查询,个人信息管理等功能,数据是从12306爬取的真实数据. 项目链接 前端项目链接:https://gi ...

  7. oracle学生考勤,Oracle数据库课程设计――学生考勤系统的Oracle实现1

    Oracle数据库课程设计――学生考勤系统的Oracle实现1 辽宁工程技术大学 Oracle数据库课程设计报告 学生考勤系统 姓 名: XXXXX 班 级: 计SJ08-1班 学 号: 完成日期: ...

  8. 数据库课程设计——滴滴打车系统

    1 引言 1.1需求分析 滴滴打车系统的主要应用需求来自乘客.司机两个身份的用户需求.对于乘客,他可以登入系统,查看自己的信息,修改自己的密码,进行打车下单的操作和给管理员留言的操作:对于司机,他可以 ...

  9. 山东大学数据库课程设计火车票系统报告

    数据库课程设计报告 ​ ----火车票订票系统 ​ ​​ 学院: 专业: 班级: 姓名: 学号: 目录 一.系统开发平台 3 二.数据库规划 3 2.1  任务陈述 3 2.2  任务目标 3 三.系 ...

最新文章

  1. 《研磨设计模式》chap10 中介者模式Mediator(2)应用举例
  2. 如何在ABAP ALV中具体的控制每个格子中的编辑属性
  3. 设计模式在vue中的应用(五)
  4. Mysql 查询blob数据很慢_blob存入数据库很慢
  5. python sqlite3 带密码_Python实现ATM提款机系统
  6. 网络体系结构——ISO/OSI参考模型
  7. python的objectproperty,python – ObjectProperty类的用法
  8. 最少拍控制系统设计(一)-- 最少拍无纹波系统的设计方法
  9. Clark变换的等幅值变换乘为什么2/3
  10. 党建管理系统开发,组织部干部人事任免平台建设方案
  11. 风口来了第二期——电子科学与技术专业现状和前景介绍分享
  12. 第1章 MatConvNet简介
  13. html5文档加载前调用函数,html调用javascript外部文件显示函数未定义
  14. S32K144(19)FlexIO
  15. 深度学习进行人体的姿态估计
  16. PPM文件的正确打开方式
  17. python修改图片类型
  18. python ui框架哪个最好用_Python UI开发最常用到的库
  19. 一缕烟香起静中开鸿蒙意思,一缕青烟暗指什么意思 千古萦回一缕香
  20. Windows系统共享文件夹或打印机等设备的dos脚本自动化

热门文章

  1. linux服务器抓包实例
  2. 第一次写“辅助”软件(微信游戏跳一跳)
  3. matlab中受控电流源怎么用,如何使用simulink进行光伏并网受控电流源的等效思路进行建模...
  4. K8S - 安装教程 和 体验(kubeadm)
  5. 图像跟踪(1) CSK
  6. linux系统如何安装adobe flash player
  7. 在Adobe Acrobat DC中设置PDF单页连续
  8. jmeter 正则表达式学习--使用详解
  9. 东网科技、中和资本共同成立大数据产业基金:“抢钱时代”下看好的5个抢钱领域...
  10. latex文件里面一个章节放的图表太多编译出现oo many unprocessed floats的解决方案