数据库课程设计是在学生系统的学习了数据库原理课程后,按照关系型数据库的基本原理,综合运用所学的知识,以小组为单位,设计开发一个小型的管理信息系统(MIS)。通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。
总体设计要求:
四到五人为一个小组,小组成员既要有相互合作的精神,又要分工明确。每个学生都必须充分了解整个设计的全过程。
通讯录
1、功能需求:
1)网络版,用户登录,合法使用,非法拒绝。
2)合法用户(以下简称:用户)可以添加通讯录成员。
3)用户点击不同的组,显示该用户相对应的成员通讯方式。
4)用户点击一个成员,将会得到他响应的各种通讯方式。
2、数据分析:
1)有管理员,进行数据维护
2)通讯录用户有多个人。每个用户因与通讯录成员关系不同,所以对同一个成员可能有不同的分组方式。
3)通讯录成员可以分组,每个组包含多成员,一个成员可以属于多个组。
4)通讯录成员都有通讯方式,其中每个成员可以有多种通讯方式,一个通信数据可能属于多个成员
ER图:
关系模式:
用户表(用户编号,用户名,密码,等级)
成员表(成员编号,姓名,性别,出生日期)
分组方式表(分组编号,分组方式)
分组表(用户编号,成员编号,分组编号)
联系方式表(联系方式编号,联系方式)
通讯录表(成员编号,联系方式编号,数据)
MS SQL Server2000 实现:
/*---------创建数据库-------------*/
create database txl
go
use txl
go
/*-----------用户表---------------*/
create table users
(Uid int identity(1,1) primary key,
Uname char(16) unique not null,
Upassword char(16) not null,
Ulevel int check(Ulevel in(1,2,3)) default 1
)
/*-----------成员表---------------*/
create table membership
(Mid int identity(1,1) primary key,
Mname char(16) unique not null,
Msex char(2) check(Msex='男' or Msex='女'),
Mbirthday datetime
)
/*-----------分组方式表---------------*/
create table PacketMode
(Pid int identity(1,1) primary key,
Pname char(16) unique not null
)
go
/*-----------分组表---------------*/
create table Relations
(
Uid int references users(Uid),
Mid int references membership(Mid),
Pid int references PacketMode(Pid),
primary key (Uid,Mid,Pid)
)
/*-----------联系方式表---------------*/
create table Contact
(
Cid int identity(1,1) primary key,
Cname char(16) unique not null
)
/*-----------通讯录表---------------*/
create table AddressBook
(
Mid int references membership(Mid),
Cid int references Contact(Cid),
ADate char(60) not null,
primary key (Mid,Cid)
)
录入数据库数据
/*-----插入用户------------------------------*/
insert into users(uname,upassword,ulevel)
values('cnlht','123456',1)
/*-----插入成员------------------------------*/
insert into membership(Mname,Msex)
values('梁宏','男')
insert into membership(Mname,Msex)
values('王海','男')
insert into membership(Mname,Msex)
values('梁伟','男')
insert into membership(Mname,Msex)
values('王强','男')
/*-----插入分组方式--------------------------*/
insert into PacketMode(Pname)
values('本人')
insert into PacketMode(Pname)
values('亲人')
insert into PacketMode(Pname)
values('朋友')
insert into PacketMode(Pname)
values('同学')
insert into PacketMode(Pname)
values('同事')
/*-----插入联系方式--------------------------*/
insert into contact(cname)
values('手机')
insert into contact(cname)
values('E-Mail')
insert into contact(cname)
values('QQ')
insert into contact(cname)
values('家庭住址')
insert into contact(cname)
values('邮政编码')
insert into contact(cname)
values('办公电话')
insert into contact(cname)
values('工作单位地址')
insert into contact(cname)
values('工作单位邮编')
/*-----插入用户-成员关系---------------------*/
insert into relations
values(1,1,1)
insert into relations
values(1,2,5)
insert into relations
values(1,3,2)
insert into relations
values(1,4,4)
/*-----插入成员-联系方式(通讯录)------------*/
insert into AddressBook
values(1,1,'135892xxxxx')
insert into AddressBook
values(2,1,'158065xxxxx')
insert into AddressBook
values(3,1,'1377x0xxxxx')
insert into AddressBook
values(4,1,'1369xxxxxxx')
insert into AddressBook
values(1,2,'cnlht@126.com')
insert into AddressBook
values(1,3,'56280xxx')
insert into AddressBook
values(1,6,'0532-8228xxxx')
查询:1、用户cnlht的所有成员
2、用户cnlht的所有成员的手机
3.查询cnlht用户的相关通讯录(含所有组的,所有通讯方式)
学生学籍管理系统
一、设计目的
学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。
二、设计内容
1. 主要的数据表
学生基本情况数据表,学生成绩数据表,课程表,代码表等。
2.