菜鸟也能飞:数据库实战专业教程三杨元

数据库分析完了,基础已经搞定,接下来就是对程序的初步设计。如何设计呢?如果是小程序,用脑子想想,也就算设计完了,但是如果是稍微复杂点的系统,恐怕就不行了。概要设计还是要借助于UML图,现在你知道它有多重要了吧?我们先来设计程序的大致结构,可以用UML的包图。作为专业水准的菜鸟,我们要用三层架构来设计程序。所谓三层架构,就是把程序分为基本的三层,分别为:UI层(用户界面层)、BLL层(业务逻辑层)、DAL层(数据访问层)。把程序分成三层,好处不言而喻,从此你就再也见不到所有东西都在一个窗体里混乱的情形,如果什么地方需要修改,再也不用去改动整个工程。每一层都有各自的功能,从UI层到DAL层,它们是向下依赖的。其中,UI层只负责显示界面,不应该有逻辑(有效性验证的逻辑还是可以有的),所有的功能都是通过调用BLL层完成;BLL层负责程序的所有逻辑组织,它通过调用DAL层完成复杂的操作,然后提供一个简洁的接口让UI层调用,相当于一个大外观层,BLL层的类,可以按照窗体写,也就是说每一个窗体对应一个BLL层的类,类的各种方法完成窗体的所有功能;DAL层负责访问数据库,数据库中每一个表,在DAL层中都有一个与之对应的操作类,通过该操作类,可以实现对对应表的一切操作。前边提到的实体类,就是为三层架构服务的,三层之间一般都是通过实体类传递数据,这样简洁、方便,实体类就相当于一个容器。注意,还有一个层,也可以不单独作为一个层的DBHelper,这个部分负责最低级的与数据库交互代码,比如连接数据库、插入数据、查询数据等等,把这些最基本的代码提炼到一个单独的层中有利于代码的复用,使程序更加精炼。欲知其他知识,请轻点google,我说到此为止。献上一张三层架构的示意图:

再来一个数据库、DAL操作类、实体类的关系,这个有点乱,刚开始不好理解,多想想就知道啦:

有了上边的分析,我们就可以用Rational Rose画程序包图了,提一个小技巧,Rose的包理论上应该在包图里画,但是那样没法画类,所以还是建议在类图里画包,用包把类图分成几个大部分,然后在每个部分里画特定的类,这样双击包直接就可以看到该包中的类了。根据三层架构,我们可以画出下边的包图:

整体架构就是这样了,接下来就搞定每个包里都有什么类。

SQLHelper包:

DAL包:

BLL包:

UI包:

七、详细设计。

详细设计还得从数据库开始。作为专业菜鸟,我们要把所有的SQL语句都放在存储过程当中,不要放在程序里。这样做的好处是:容易修改、维护,执行速度快、减少数据传输量。存储过程可以简单的理解为在SQL服务器上创建小函数,它们有名字、参数,通过调用这些小函数,我们可以完成对表的增、删、查、改操作,相当于把SQL语句放在了服务器上,并且是经过编译的,执行速度快。在程序中,我们不必再写复杂的SQL语句,直接写存储过程名称就可以了。

一定要仔细研究上边那篇文章,因为这是数据库使用的经典例子,把他搞懂了使用数据就没什么问题了,我就偷个懒,不在重复写啦。

另外,可以看出,本教程的例子,班级表依赖年级表,学生表依赖班级表,所以在删除记录时,必须级联删除,级联删除可以在程序中完成,但我还是比较喜欢放在SQL触发器中。触发器的使用方法和存储过程大同小异,在这就不赘述了,可以google。

详细设计还是要用到UML图,这回用的一般是时序图和流程图,其他的虽然重要,但是比较少用,具体的还是google。

很遗憾的告诉大家,教程到此就结束了,细节上远远没有结束,存储过程具体代码、各层的代码都没有写,UML的图还有很多没画,但那些都是细节知识,本教程的目的是宏观指导,本小菜也需要继续学习,时间非常有限,所以只能写这么多了。

剩下的基本上都是写代码,我写出来也没啥意思,开发一个项目,基本的流程都在这呢,我主要不是教大家写代码,而不是告诉大家一个项目的流程,体会一个稍微大点的程序是怎么设计出来的,分享一下我自己的经验。跟着这个教程走,就是再菜,也是专业菜鸟!

教程中涉及大量知识点,都需要大家耐心的去查阅资料,不怕不会,就怕不知道,刚开始会用就可以了,随着学习的深入,再去搞懂细节原理。我学这些东西也不是一天两天就学成的,是大约一年半的积累,希望大家能静下心来,踏实学习。

THE END
0.数据分析工具SQL基础语法必知必会SQL是Structured Query Language的缩写,意思是结构化查询语言,是一种在数据库管理系统(RelationalDatabase Management System, RDBMS)中查询数据,或通过RDBMS对数据库中的数据进行更改的语言。 看不懂。。。能不能说人话?好嘞,SQL就是一种对数据库中的数据表或者数据进行增、删、改jvzquC41yy}/lrfpuj{/exr1r18g2j>ceh;:hA
1.SQL教程|菜鸟教程SQL 教程 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化编程语言。 在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。 在线测试工jvzquC41yy}/t~sqqd4dqv4usn5
2.MySQL教程|菜鸟教程> MySQL 教程 > MySQL 安装 > MySQL 管理 > MySQL 连接 > MySQL 创建数据库 > MySQL 删除数据库 > MySQL 选择数据库 > MySQL 数据类型 > MySQL 及 SQL 注入 > MySQL 导出数据 > MySQL 导入数据 > MySQL 函数 > MySQL 运算符 > MySQL 命令大全 > MySQL 测验 >MySQL Node.jsjvzquC41o0xvpxtd0eun1v~usn5
3.SQL教程|菜鸟教程SQL 教程 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化编程语言。 在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。 在线测试工jvzq<84vguz/t~sqqd4dqv4usn5tsu2vwvuskjq0jvsm
4.基于Python的SQLite基础知识学习腾讯云开发者社区SQLite的增、删、改、查和之前学过的MySQL、Oracle语法一样,均是采用标准SQL格式,这里不再进行说明,简单如下图所示: 好了关于SQLite的基础知识就介绍这么多,想要了解更多,可访问《菜鸟教程》“http://www.runoob.com/sqlite”,下面简单说说关于Python操作SQLite数据库。 Python操作SQLite 网上很多教程都是Python操作MyjvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk03==96::
5.SQLServer菜鸟入门sqlserver菜鸟教程SQL Server菜鸟入门 本文详细介绍了SQL中的数据查询语法,包括SELECT语句的基础用法,如选择特定列、过滤条件(WHERE子句)、排序(ORDERBY)、分组(GROUPBY)和聚合函数。还涵盖了子查询的概念,包括等值连接、非等值连接、自身连接、外连接和多表连接,以及如何使用IN、BETWEEN、EXISTS等操作符。此外,讨论了集合操作如UNION、jvzquC41dnuh0lxfp0tfv8vsa8957>5241gsvrhng1jfvjnnu173;>57:66
6.Python操作MySQL数据库|菜鸟教程连接数据库TESTDB使用的用户名为 "testuser" ,密码为 "test123",你可以可以自己设定或者直接使用root用户名及其密码,Mysql数据库用户授权请使用Grant命令。 在你的机子上已经安装了 Python MySQLdb 模块。 如果您对sql语句不熟悉,可以访问我们的SQL基础教程 jvzq<84yyy4489iqe0ipo8hqpvkov8731283786;17793956a;<4;>>4;54tj}rn
7.SQL学习五大步骤建议大家把一本书或一套教程啃完就可以了,一个月就能搞定。 4. 有哪些SQL实战网站? 脱离练习学习SQL简直是要命,可能你学了大半个月,拿到一个查询需求还是无从下手,所以说实践对于SQL来说非常重要。 这里有两个方式可以练习SQL ,一是自己搭建数据库,然后找题目练习 ,二是在SQL网站上练习 自己搭建数据库也不难,初学者可以安装mysql,然后去github上下 jvzquC41yy}/lrfpuj{/exr1r1?bf?56c789c:
8.php基础面试题echo曦php面向对象基础知识 点击查看 php常见五种设计模式 点击查看 mysql基础知识语法汇总整理 Linux 命令大全(菜鸟教程)jvzquC41yy}/ewgnqiy/exr1ez~93A68245q1B9656::0qyon
9.SQL简易教程下SQL 简易教程 下 简介:包含视图、函数知识、防止 SQL 注入攻击等内容。SQL 函数 简介大多数 SQL 实现支持以下类型的函数。❑ 用于处理文本字符串(如删除或填充值,转换值为大写或小写)的文本函数。❑ 用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。❑ 用于处理日期和时间值并从这些值jvzquC41fg|fnxugt0gmk‚zp0eun1jwvkerf1B76726
10.MySQL查询数据($conn ,"set names utf8"); $sql ='SELECT nhooo_id, nhooo_title, nhooo_author, submission_date FROM nhooo_tbl'; mysqli_select_db( $conn,'NHOOO'); $retval = mysqli_query( $conn, $sql );if(! $retval ) {die('无法读取数据: '. mysqli_error($conn)); }echo'菜鸟教程 mysqlijvzquC41yy}/ejnpkcuke7hqo1szuzq1o{yrn6xgngiu/zzgt{4ivvq
11.SQL基础教程本文介绍了SQL的基础知识,包括SQL的定义、功能以及基本语法。详细讲解了SELECT、INSERT、UPDATE等常用语句,并介绍了视图、索引等高级特性。 第一章 SQL基础 1.SQL 介绍 SQL是什么? SQL指结构化查询语言,全称是Structured Query Language。 SQL可以访问和处理数据库,包括数据查询,插入,更新和删除。 jvzquC41dnuh0lxfp0tfv8vsa6957B6381gsvrhng1jfvjnnu1732<>4;39
12.AI零基础:用提示词生成数据库查询语句的步骤对于零基础的朋友来说,写数据库查询语句(比如 SQL)是个难题 —— 不知道字段名怎么写、条件逻辑怎么表达、语法规则有哪些。但借助 AI 工具(如 ChatGPT、文心一言、通义千问),通过设计合适的提示词,即使不懂 SQL 语法,也能生成正确的数据库查询语句。 jvzquC41dnuh0lxfp0tfv8}eujgq1jwvkerf1mjvckrt1::2;:=16:
13.保姆级教程·SQL介绍与基础sql数据库保姆级教程·SQL介绍与基础 本文介绍了数据库和数据库系统的基本概念,重点讲解了PostgreSQL数据库的操作。包括其特点、安装、运行、命令行使用,还涉及数据库和表单的创建、数据类型、增删改查等操作,最后给出了相关进阶练习和习题。 一、数据库|基本概念 1-1:什么是数据库?jvzquC41dnuh0lxfp0tfv8vsa6;52==271gsvrhng1jfvjnnu1748A:766>
14.中国农业大学计算中心理论专题主流技术学习视频下载链接C、C++与数据库开发视频 视频:百度网盘:https://pan.baidu.com/s/14AtmwSBcm_SQWQSdWC6WpQ 提取码:70d4 压缩包:百度网盘:https://pan.baidu.com/s/11pxkc79HXixTsnD2Dd85lA 提取码:v3ro 李建忠老师带你深入探究C++设计模式视频教程 视频:百度网盘:https://pan.baidu.com/s/1IAWxhIWNtSBWh0u78K1vJwjvzquC41lu€y0lfw0gjv0ls1ctz0497514541jwva5;57@d:;96137mvon
15.SQL总结|菜鸟教程SQL 是一种与数据库系统协同工作的标准语言,这些数据库系统包括 MS SQL Server、IBM DB2、Oracle、MySQL 和 MS Access 等等。 我们已经学习了 SQL,下一步学习什么呢? 我们建议接下来学习 ADO 或 PHP MySQL。 如果您想要学习有关 ADO 的知识,请访问我们的ADO 教程。jvzquC41o0xvpxtd0eun1|vn1uwm/|zoocxz0qyon
16.PostgreSQL教程|菜鸟教程> PostgreSQL 教程 > Linux 上安装 PostgreSQL > Windows 上安装 PostgreSQL > Mac OS 上安装 PostgreSQL >PostgreSQL pgAdmin > PostgreSQL 语法 > PostgreSQL 数据类型 > PostgreSQL 创建数据库 > PostgreSQL 选择数据库 > PostgreSQL 删除数据库 > PostgreSQL 创建表格 > PostgreSQL 删除表格 > jvzquC41o0xvpxtd0eun1ytuvixfuzq1
17.书单来了|京东8.31图书品类日,这些经典书&新书不容错过SQL 基础教程(第 2 版) 作者:[日]MICK 译者:孙淼 罗勇 107 张图表+209 段代码+88 个法则 让菜鸟实现完美进阶! 编辑介绍:本书双色印刷,介绍了关系数据库以及用来操作关系数据库的 SQL 语言的使用方法。书中通过丰富的图示、大量示例程序和详实的操作步骤说明,让读者循序渐进地掌握 SQL 的基础知识和使用技巧,jvzquC41zkk/kwkqs0io1jwvkerf1>:eg3j16
18.SQL教程|菜鸟教程SQL 教程 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化编程语言。 在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。 在线测试工jvzquC41yy}/t~sqqd4dqv4usn5tsu2vwvuskjq0jvsmA~Bjvvvt'
19.SQLINSERTINTO语句|菜鸟教程演示数据库 在本教程中,我们将使用 RUNOOB 样本数据库。 下面是选自 "Websites" 表的数据: +---+---+---+---+---+|id|name|url|alexa|country|+---+---+---+---+---+|1|Google|https://www.google.cm/ | 1 | USA ||2|淘宝|https://www.taobao.com/ | 13 | CN ||3|菜鸟教程|jvzquC41o0xvpxtd0eun1|vn1uwm/rsugtz/j}rn