设计数据库的一般步骤及例子
在现在的程序开发中MySQL是必定会用到的,MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。这篇文章我们就来说说设计数据库的一般步骤及例子。
一、数据库设计的一般流程
1.概述
包括课程设计选题、项目背景、课程设计报告编写目的、课程设计报告的组织等内容。
2.课程设计任务的需求分析
2.1设计任务
2.2设计要求
2.3需求描述的规范文档
3.概念结构设计
3.1概念结构设计工具(E-R模型)
3.2XXX子系统(局部)
3.2.1子系统描述
3.2.2分E-R图
3.2.3说明
3.3YYY子系统
3.3.1子系统描述
3.3.2 分E-R图
3.3.3 说明
……
3.X 总体E-R图
3.X.1 E-R图的集成
3.X.2 总体E-R图
4.逻辑结构设计
4.1关系数据模式
4.2视图的设计
4.3优化
5.数据库物理设计与实施
5.1数据库应用的硬件、软件环境介绍
5.2物理结构设计
5.3 索引的设计
5.4建立数据库
5.5 加载数据库测试数据
6.数据操作要求及实现
6.1数据查询操作
6.2数据更新操作
6.3数据维护操作
6.4其他
7.数据库应用系统的实现
8.设计心得体会
9.参考文献
二、例子:学生选课管理系统
在高校教学管理系统中,学生选课管理是很重要的功能模块。
需求分析:
该系统应该能管理学校的教师信息、学生信息、专业信息、学校开设的所有课程信息、学生选修课程的信息等。选课系统主要满足三类用户的要求,这三类用户分别是教务处的系统管理员、教师和学生。他们所具有的操作权限以及操作内容是不同的。具体的需求分析如下:
系统管理员
维护学生的个人基本信息,实现对学生个人信息的增、删、改等。
学生信息包括…
维护教师的个人基本信息,实现对教师个人信息的增、删、改等。
教师信息包括…
维护课程的个人基本信息,实现对课程个人信息的增、删、改等。
课程信息包括…
学生用户
查询和修改个人信息。
进行选课操作
学生可以查看自己所选课程信息及以前所选课程的成绩信息。
教师用户
查询和修改个人信息
课程结束后,登记成绩
教师可查看自己的教学安排。
数据库概念结构设计:
概念结构设计的常用工具是ER图。分下面几步完成。
数据抽象(抽象出实体)。画出各实体属性图。
设计分ER图。找出实体及其联系,并画出分ER图。
合并分ER图,生成初步ER图。
全局ER图。将各个实体的属性加入初步ER图,消除各局部可能存在的冲突(包括属性冲突、命名冲突和结构冲突),形成全局ER图。
数据库逻辑结构设计:
首先,将概念模型ER图中实体和联系转换为数据模型,在RDBMS中,就是转换为关系模式,并确定关系模式的属性和主码。
ER图向关系数据模型转换的基本规则如下:
一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键。
若实体间的联系是1:1的,则联系不单独转换为关系模式,需在两个实体对应的关系模式中的任意一个中加入另一个关系模式的键和联系的属性。
若实体间的联系是1:n的,则联系不单独转换为关系模式,需在n端实体对应的关系模式中加入1端实体对应的关系模式的键和联系的属性。
若实体间的联系是m:n的,则将联系也转换成关系模式,其属性为两端实体类型的码加上和联系的属性,而联系的键为两端实体码的组合。
其次,对具有相同主码的关系模式进行必要的合并。
关系优化
以规范化理论为指导,对关系数据模型进行优化。规范化到第三范式。
数据库物理设计与实施:
主要包括以下工作:
创建数据库
创建基本表,设置约束条件,管理基本表。
创建和管理索引。(DBMS会为主键自动建立索引。建立索引来提高查询效率。)
创建和管理视图。
向数据库中输入数据。
用SQL语句 实现对数据查询、修改、删除等操作。(可以先思考需要怎么操纵数据库,后面再实现)
编写存储过程、触发器等,并调试通过。(比如创建一个触发器当学生表中某学号的学生被删除时,自动将选课表中的该选课记录删除)
数据库运行维护:
主要包括以下内容
数据库的备份与恢复
数据库的安全性与完整性控制
数据库的性能监督、分析和改进
访问数据库,可以通过以下语句操纵数据。
对学生表的性别、年龄字段添加约束。
添加一个属性列“入学时间”。
修改“专业”的数据类型。
增加课程名必须取唯一值的约束。
在选课表的列“学号”、“课程号”上建立索引。
在选课表的“工号”、“课程号”上建立索引。
假设学生选课系统中有4个院系,为方便各个院系的教学管理人员查看本院系学生信息,每个院系分别建立一个学生视图。
建立一个反映学生选课情况的视图。
学生通过学号或姓名查询自己的选课信息。
学生通过学号或姓名查询自己的基本信息。
列出某个教师所授某门课程的成绩单,并按成绩升或降序显示。
列出某个教师所教授的所有课程信息。
查询某个学生已经获得的学分信息。
统计某个教师某门课的平均分、最高分、最低分。
添加一门新的课程。
修改某门课的学分。
创建删除触发器,当学生表中的某“学号”的学生被删除时,自动将选课表中的该学生的选课记录删除,即为学生表建立删除触发器,实现学生表和选课表的级联删除。
创建删除触发器,当课程表中的某“课程编号”的课程被删除时,自动将选课表中的选修该课程的记录都删除,即为课程表建立删除触发器,实现学生表和选课表的级联删除。
创建插入触发器,当往选课表中插入记录时,查询学生表中是否有该学号的学生,课程表中是否有该课程编号的课程,如果都有则可以插入,否则拒绝插入。
备份“学生选课系统”数据库到本地磁盘E盘下的BACKUPDB文件夹下面。
sp_addumpdevice 'disk','学生选课系统_bak','E:\BACKUPDB\学生选课系统_bak'
BACKUP DATABASE 学生选课系统TO DISK='学生选课系统_bak'
图书借阅管理系统
需求分析:
系统应实现以下功能:图书管理员可以维护图书信息,包括增加新书、修改图书信息、办理图书借阅登记、归还登记、过期图书处理、丢失图书处理以及读者借阅证件信息的维护等。而读者可以实现借书、还书、查询图书信息、借书信息等。具体要求如下:
图书信息管理:录入各图书信息、维护图书信息等。
读者信息管理:维护读者信息并根据实际情况需要修改、更新、删除读者
借阅管理:包括借书、还书、过期图书归还处理等。
图书借阅管理系统主要有2种用户。
管理员:维护图书基本数据,包括图书种类、更新图书信息,进行读者的图书借阅和归还处理等。
读者用户:可以查询图书信息、借阅图书。
语义:图书馆的图书情况和管理规定,每种类型图书有很多不同的图书,同样的书可以习多本;每本图书可以被多次借阅,每位读者可以借阅多本图书。每本图书的借阅期限是一个月。
数据库概念结构设计:
分3步完成:1)抽象出实体2)抽象出联系实际)确定实体的属性和键
图书类型,包括:图书分类号、图书分类名称、描述信息。
图书,包括:图书编号、图书名称、作者、出版社、价格。
读者,包括:证件号、姓名、性别、所在系、班级、证件状态(包括有效和失效)、联系方式等。
读者与图书之间是m:n,图书类型与图书之间是1:n,读者与图书类型之间无联系。
数据库逻辑结构设计:
将E-R图转换成关系模型。
对关系模型进行优化
规范化到第三范式
数据库物理设计与实施:
主要包括以下工作:
创建数据库
创建基本表,设置约束条件,管理基本表。
创建和管理索引。(DBMS会为主键自动建立索引。建立索引来提高查询效率。)
创建和管理视图。
向数据库中输入数据。
用SQL语句 实现对数据查询、修改、删除等操作。(可以先思考需要怎么操纵数据库,后面再实现)
编写存储过程、触发器等,并调试通过。
操纵数据库中的数据
为了方便管理员分类管理,现在需要为多种图书类类型的图书建立视图。
建立读者借阅情况表。
为借阅表中的证件号和借阅日期建立组合次索引。
为图书表中的图书分类号、书名、出版社字段分别建立索引。
为借阅表建立一个插入触发器,以保证向借阅表插入的“证件号”在读者表中存在,如果不存在,就不会向借阅表中插入借阅信息记录。
在借阅表建立一个更新触发器,监视借阅表的“借阅日期”列,使其不能手工修改。
在读者表建立删除触发器,实现读者表和借阅表的级联删除。
运动会管理系统
需求分析:
引入计算机管理运动会,运动员可以在运动会管理系统中查询自己的比赛项目及比赛结果,裁判员或工作人员可以通过系统记录运动员各个比赛项目的成绩、进行成绩统计等。运动会管理系统保存运动员、比赛项目以及不同类型比赛的参赛数据。
运动会管理系统主要管理对象有代表队、运动员、比赛项目等。
本系统中,基本规定如下:一个代表队包含多个运动员,一个运动员只能属于一个代表队;一个运动员可以参加多个比赛项目,一个比赛项目可以被多个运动员参加;假设各个比赛项目结束后,按照成绩由高到低排出名次,并对前3名的运动员给予相应的积分,如第1、2、3名分别积分为3、2、1分,而获得其他名次的运动员积分为零分,将代表队中所有成员的积分累加,得到各代表队总积分,将总积分由高到低排序,得到各个代表队的排名情况。
为简化系统需求,本运动会管理系统只考虑田径运动会的管理,仅考虑代表队、、比赛项目的关系,不考虑裁判评分、比赛时间、地点等到的安排。
数据库概念结构设计:
代表队:代表队员、队名称、领队、总积分、总名次
运动员:运动员号,姓名、性别、年龄
比赛项目:项目号、项目类别、项目名称、成绩单位。
数据库逻辑结构设计:
4张表,
比赛详情,包括成绩、积分、名次
以上就是设计数据库的一般步骤及例子全部内容,相信大家已经对如何设计数据库已经有一个大概的思路了吧。
相关教程:
以上是设计数据库的一般步骤及例子的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

不断推出新版本以提供更好的使用体验,微信作为中国的社交媒体平台之一。升级微信至最新版本是非常重要的,家人和同事的联系、为了保持与朋友、及时了解最新动态。1.了解最新版本的特性与改进了解最新版本的特性与改进非常重要,在升级微信之前。性能改进和错误修复,通过查看微信官方网站或应用商店中的更新说明、你可以了解到新版本所带来的各种新功能。2.检查当前微信版本我们需要检查当前手机上已安装的微信版本、在升级微信之前。点击,打开微信应用“我”然后选择,菜单“关于”在这里你可以看到当前微信的版本号,。3.打开应

使用AppleID登录iTunesStore时,可能会在屏幕上抛出此错误提示“此AppleID尚未在iTunesStore中使用”。没有什么可担心的错误提示,您可以按照这些解决方案集进行修复。修复1–更改送货地址此提示出现在iTunesStore中的主要原因是您的AppleID个人资料中没有正确的地址。步骤1–首先,打开iPhone上的iPhone设置。步骤2–AppleID应位于所有其他设置的顶部。所以,打开它。步骤3–在那里,打开“付款和运输”选项。步骤4–使用面容ID验证您的访问权限。步骤

iPhone上的Shazam应用程序有问题?Shazam可帮助您通过聆听歌曲找到歌曲。但是,如果Shazam无法正常工作或无法识别歌曲,则必须手动对其进行故障排除。修复Shazam应用程序不会花费很长时间。因此,无需再浪费时间,请按照以下步骤解决Shazam应用程序的问题。修复1–禁用粗体文本功能iPhone上的粗体文本可能是Shazam无法正常运行的原因。步骤1–您只能从iPhone设置中执行此操作。所以,打开它。步骤2–接下来,打开其中的“显示和亮度”设置。步骤3–如果您发现启用了“粗体文本

无法在iPhone上启用Wi-Fi通话?通话质量得到改善,您甚至可以从蜂窝网络不那么强大的远程位置进行通信。Wi-Fi通话也提高了标准通话和视频通话质量。因此,如果您无法使用手机上的Wi-Fi通话,这些解决方案可能会帮助您解决问题。修复1–手动启用Wi-Fi通话您必须在iPhone设置中启用Wi-Fi通话功能。步骤1–为此,您必须打开“设置”。步骤2–接下来,只需向下找到并打开“电话”设置即可步骤3–在电话设置中,向下滚动并打开“Wi-Fi通话”设置。步骤4–在Wi-Fi通话页面中,将“此iPh

在某些情况下,飞行模式非常方便。但是,如果您的iPhone突然卡在其中,相同的飞行模式可能会让您头疼。在本文中,我们设计了这套解决方案,可以让您的iPhone退出飞行模式。快速解决方法–1.尝试直接从控制中心禁用“飞行模式”。2.如果您无法从控制中心禁用飞行模式,您可以直接从“设置”选项卡禁用飞行模式–如果这些技巧不起作用,请按照以下修复程序解决问题。修复1–强制重启设备强制重启设备的过程非常简单。您所要做的就是按照这些分步说明进行操作。步骤1–您可以通过按下并松开音量调高按钮来启动该过程。步骤

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

PHP中处理数据库连接报错,可以使用以下步骤:使用mysqli_connect_errno()获取错误代码。使用mysqli_connect_error()获取错误消息。通过捕获并记录这些错误信息,可以轻松识别并解决数据库连接问题,确保应用程序的顺畅运行。

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())
