一、实验目的及原理
熟悉数据库的设计的基本方法和步骤,掌握数据库设计各阶段的任务,加深对数据库系统概念和特点的理解。
二、 实验用品及设备
1. PC机
2. 操作系统Windows xp, Windows 7, Windows 10等
3. 要求有一DBMS软件,例如SQL Sever2008,MySQL等
三、 实验内容及要求
选一个小型的数据库应用项目,不包括《学生选课管理系统》进行系统分析和数据库设计。
具体步骤:
- 所选题目(项目)
- 该系统所实现的功能(需求分析)
- 数据库概念结构设计(ER图)
- 数据库逻辑结构设计
- 实现(SQL命令)
四、设计
- 题目:家教系统:课外家教补习班中会雇佣很多老师给学生们上课,为了给方便管理老师和学生建立了一个家教系统数据库。
- 需求分析:为了管理老师和学生,需要给老师编号并记录老师姓名、所教学科号(限教一门)、所教年级、联系电话、家庭地址、工资;给学生编号并记录姓名、家长号、家长电话、所学科目号(限学一门)、当前年级;给家长编号并记录姓名、电话、家庭地址;给学科编号并记录科目名、年级、所需补习费用。
- ER图:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/531ad911fc3648460fd1d01aab8729af.png#pic_center)
- 数据库逻辑结构设计:
中文含义 | 字段名称 | 类型 | 约束 |
---|
教师号 | tno | char(8) | 主键 |
姓名 | tname | varchar(10) | 非空 |
所教学科号 | scno | char(5) | 外键 |
所教年级 | grade | varchar(5) | |
联系电话 | phone | char(11) | |
家庭地址 | address | varchar(20) | |
工资 | salary | money | |
中文含义 | 字段名称 | 类型 | 约束 |
---|
学号 | sno | char(8) | 主键 |
姓名 | sname | varchar(10) | 非空 |
家长号 | pno | char(8) | 外键 |
家长电话 | phone | char(11) | 外键 |
所学学科号 | scno | char(5) | 外键 |
当前年级 | grade | varchar(5) | |
中文含义 | 字段名称 | 类型 | 约束 |
---|
学科号 | scno | char(5) | 主键 |
学科名 | scname | varchar(10) | 非空 |
年级 | scno | varchar(5) | |
费用 | pay | money | |
中文含义 | 字段名称 | 类型 | 约束 |
---|
家长号 | pno | char(8) | 主键 |
姓名 | pname | varchar(10) | 非空 |
电话 | phone | char(11) | |
家庭地址 | address | varchar(20) | |
- 创建数据库、表
Create database jjxt
CREATE TABLE teacher
(tno Char(8) primary key,
tname Varchar(10) not null,
scno char(5) foreign key references sc(scno),
grade Varchar(5),
phone Char(11),
address Varchar(20),
Salary money
);
CREATE TABLE student
(sno Char(8) primary key,
sname Varchar(10) not null,
pno char(8) foreign key references parent (pno),
phone Char(11) foreign key references parent(phone),
scno Char(5) foreign key references parent (scno)
grade Varchar(5)
);
CREATE TABLE sc
(scno Char(5) primary key,
scname Varchar(10) not null,
scno Varchar(5),
pay money
);
CREATE TABLE parent
(pno Char(8) primary key,
pname Varchar(10) not null,
Phone char(11),
address Varchar(20)
);