世界一级方程式锦标赛_Formula one小型查询数据库设计实例

  • 2022年一级方程式锦标赛小型数据库设计
  • 0.数据库系统基础
    • 0.1数据库系统基础概述
    • 0.2数据库服务器名称
  • 1.数据库初始化
    • 1.1数据库表的创建
    • 1.2数据库表数据的录入
    • 1.3章节小结
  • 2.SQL语句——数据更新
    • 2.1修改、删除数据
    • 2.2用户界面操作方式管理表中数据
    • 2.3章节小结
  • 3.SQL语句——数据查询
    • 3.1SELECT语句一般查询和单表查询
    • 3.2连接查询
    • 3.3嵌套查询
    • 3.4章节小结
  • 4.数据库视图创建及应用
    • 4.1视图
    • 4.2视图的创建、修改和删除
    • 4.3视图知识点补充
    • 4.4章节小结
  • 5.数据库数据完整性
    • 5.1数据库完整性
    • 5.2缺省与规则
    • 5.3数据约束
      • 5.3.1主键约束
    • 5.4章节小结
  • 6.存储过程
    • 6.1存储过程的特点和类型
    • 6.2存储过程的相关操作
    • 6.3章节小结
  • 7.触发器
    • 7.1触发器的概念和类型
    • 7.2触发器的作用
  • 8.附录(以下待编号)
    • 8.1所用到的表格
    • 8.2参考书目
    • 8.3所使用到的软件

2022年一级方程式锦标赛小型数据库设计

声明:本篇文章的所有数据均来自于Formula_one世界一级方程式锦标赛网站(未包含阿布扎比收官战),可能在车手的部分签约数据、是否离队数据上有一定的错误,还请读者们海涵,谢谢!
本篇文章仅用于学期末课程总结与归纳

0.数据库系统基础

0.1数据库系统基础概述

数据库是采用计算机技术统一管理的相关数据的集合,数据库能为各种用户共享,具有最小冗余、数据之间联系密切、有较高的数据独立性等特点
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新以及各种数据库控制等

0.2数据库服务器名称

本次数据库创建所用到的服务器名称

1.数据库初始化

1.1数据库表的创建




根据附件创建对应表格
对应的SQL语句

USE Formula_one
CREATE TABLE DRIVERS(车手 char(8) not null,出生时间 smalldatetime not null,国籍 char(20) not null,车手状态 char(10) not null,选用车号 smallint not null,备注 text not null );CREATE TABLE TEAMS(车队 char(15) not null,车队领队 char(15) not null, 车队积分 smallint not null,制造商冠军 char(5),备注 text not null);CREATE TABLE POINTS(车手 char(15) not null,车手积分 numeric(10) not null,分站杆位数 smallint not null,分站冠军数 numeric(10) not null,备注 text not null);CREATE TABLE DRIVERSTATES(车手 char(8) not null,所属车队 char(15) not null,签约时长 char(15) not null,下赛季是否转会 char(15) not null,备注 text not null);

创建的Formula_one数据库和运行后的表格结果图

未录入数据前,
编辑前两百行查看所生成的表格,分别如下图所示:
DRIVERS表

DRIVERSTATES表

POINTS表

TEAMS表

1.2数据库表数据的录入

根据附件所示数据将数据插入到对应的表格中
对应的SQL语句

USE Formula_one
INSERT INTO DRIVERS /*'车手','出生时间','国籍','车手状态','选用车号','备注'*/ VALUES('维斯塔潘','1997-9-30','荷兰','正式车手','1','NULL'),('佩雷兹','1990-1-26','墨西哥','正式车手','11','NULL'),('勒克莱尔','1997-10-16','摩纳哥','正式车手','16','NULL'),('拉塞尔','1998-2-15','英国','正式车手','63','NULL'),('汉密尔顿','1985-1-7','英国','正式车手','44','NULL'),('赛恩斯','1994-9-1','西班牙','正式车手','55','NULL'),('诺里斯','1999-11-13','英国','正式车手','4','NULL'),('奥康','1996-9-17','法国','正式车手','31','NULL'),('阿隆索','1981-7-29','西班牙','正式车手','14','NULL'),('博塔斯','1989-8-28','芬兰','正式车手','77','NULL'),('维特尔','1987-7-3','德国','正式车手','5','NULL'),('里卡多','1989-7-7','澳大利亚','正式车手','3','NULL'),('马格鲁森','1992-10-5','丹麦','正式车手','20','NULL'),('加斯利','1996-2-7','法国','正式车手','10','NULL'),('斯图罗尔','1998-10-29','加拿大','正式车手','18','NULL'),('米克','1999-3-22','德国','正式车手','47','NULL'),('角田裕毅','2000-5-11','日本','正式车手','22','NULL'),('周冠宇','1999-5-30','中国','正式车手','24','NULL'),('拉提菲','1995-6-29','加拿大','储备车手','6','NULL'),('阿尔本','1996-3-23','泰国','正式车手','23','NULL'),('德弗里斯','1995-2-6','荷兰','储备车手','45','NULL'),('罗斯伯格','1985-6-27','德国','储备车手','22','NULL'),('奥斯卡','2001-4-26','澳大利亚','测试车手','2','NULL');INSERT INTO TEAMS    /*车队,车队领队,2022车队积分,制造商冠军,备注*/VALUES('红牛','霍纳','719','是','NULL'),('法拉利','比诺托','524','否','NULL'),('梅赛德斯','沃尔夫','505','否','NULL'),('阿尔平','萨弗诺尔','167','否','NULL'),('迈凯伦','赛德尔','148','否','NULL'),('阿尔法罗密欧','瓦塞尔','55','否','NULL'),('阿斯顿马丁','克拉克','50','否','NULL'),('哈斯','斯泰纳','37','否','NULL'),('红牛二队','托斯特','35','否','NULL'),('威廉姆斯','卡皮托','8','否','NULL');INSERT INTO POINTS /*车手,2022年车队积分,分站杆位数,分站冠军数,备注*/VALUES('维斯塔潘','429','6','14','NULL'),('佩雷兹','290','1','2','NULL'),('勒克莱尔','290','9','3','NULL'),('拉塞尔','265','1','1','NULL'),('汉密尔顿','240','6','0','NULL'),('赛恩斯','234','1','1','NULL'),('诺里斯','113','0','0','NULL'),('奥康','86','0','0','NULL'),('阿隆索','81','0','0','NULL'),('博塔斯','49','0','0','NULL'),('维特尔','36','0','0','NULL'),('里卡多','35','0','0','NULL'),('马格鲁森','25','1','0','NULL'),('加斯利','23','0','0','NULL'),('斯图罗尔','14','0','0','NULL'),('米克','12','0','0','NULL'),('角田裕毅','12','0','0','NULL'),('周冠宇','6','0','0','NULL'),('阿尔本','4','0','0','NULL'),('拉提菲','2','0','0','NULL'),('德弗里斯','2','0','0','NULL'),('罗斯伯格','0','0','0','NULL'),('奥斯卡','0','0','0','NULL');INSERT INTO DRIVERSTATES /*车手,所属车队,签约时长,下赛季是否转会,备注*/VALUES('维斯塔潘','红牛','六年','否','NULL'),('佩雷兹','红牛','两年','否','NULL'),('勒克莱尔','法拉利','两年','否','NULL'),('拉塞尔','梅赛德斯','两年','否','NULL'),('汉密尔顿','梅赛德斯','两年','否','NULL'),('赛恩斯','法拉利','两年','否','NULL'),('诺里斯','1迈凯伦','两年','否','NULL'),('奥康','阿尔平','两年','否','NULL'),('阿隆索','阿尔平','两年','否','NULL'),('博塔斯','阿尔法罗密欧','两年','否','NULL'),('维特尔','阿斯顿马丁','一年','否','NULL'),('里卡多','迈凯伦','未续约','是','NULL'),('马格鲁森','哈斯','两年','否','NULL'),('加斯利','红牛二队','两年','是','NULL'),('斯图罗尔','阿斯顿马丁','未知','否','NULL'),('米克','哈斯','未知','未知','NULL'),('角田裕毅','红牛二队','两年','否','NULL'),('周冠宇','阿尔法罗密欧','两年','否','NULL'),('阿尔本','威廉姆斯','两年','否','NULL'),('拉提菲','威廉姆斯','未续约','是','NULL'),('德弗里斯','梅赛德斯','一年','是','NULL'),('罗斯伯格','阿斯顿马丁','未知','是','NULL'),('奥斯卡','阿尔平','两年','是','NULL');

执行SQL代码后对应的表格数据结果更新如下
DRIVERS表

DRIVERSTATES表

POINTS表

TEAMS表

1.3章节小结

本章主要针对已有的数据表格进行表格的创建和对应表格数据的插入,并对执行结果进行查验。

2.SQL语句——数据更新

前文所述,INSERT语句也同样属于表格内容更新语句,在后文中便不再过多赘述。
下文内容主要介绍UPDATE和DELETE语句在数据库中的应用。

/*INSERT语句*/
INSERT INTO 表名
VALUES('','',....,'')
/*将车手久戈维奇插入DRIVERS表*/
USE Formula_one
INSERT INTO DRIVERS /*'车手','出生时间','国籍','车手状态','选用车号','备注'*/ VALUES('久戈维奇','2000-5-23','','储备车手','0','NULL')

2.1修改、删除数据

/*将DRIVERSTATES表格中的米克签约时长变更为“未续约”,将下赛季是否转会变更为“是”*/
USE Formula_one
UPDATE DRIVERSTATES
SET 签约时长='未续约',下赛季是否转会='是'
WHERE 车手='米克'

找到对应的表,编辑前200行查看对应表格,发现以根据要求更新数据,如下图所示

删除DRIVERSTATES表中的车手诺里斯的所属车队,并更新为“迈凯伦”

/*第一种方法*/
USE Formula_one
UPDATE DRIVERSTATES
SET 所属车队='迈凯伦'
WHERE 车手='诺里斯'
/*第二种方法*/
USE Formula_one
DELETE FROM DRIVERSTATES
WHERE 所属车队='1迈凯伦'INSERT INTO DRIVERSTATESVALUES('诺里斯','迈凯伦','两年','否','NULL')

从执行结果中可以看出,车手诺里斯的所属车队错误信息已经得到更正

如上述所示,第二种方法修改表数据的方式更为复杂,需要先找到需要修改的行,再利用删除语句DELETE FROM… (但是尤为注意,删除语句是删除目标行一整行,相较与UPDATE语句略显复杂),后重新往表格中插入正确的信息。

补充:DELETE语句一般用于删除无用的数据,但受限于调研时冗杂信息设置较少,不做单独举例。DELETE操作是通过事务来实现的,所删除的是满足条件的对应行,而如果需要快速彻底的删除表中所有行,可选用TRANCATE TABLE语句。

2.2用户界面操作方式管理表中数据

打开对象资源管理器,找到对应数据库,选择对应需要操作的表格,鼠标右键,后点击“编辑前200行”,在弹出的界面中进行插入、修改和删除操作,和Excel表格中方法基本一致。相对简单,不做过多赘述

2.3章节小结

本章中主要介绍了数据的更新、插入、删除和修改,以及如何查看表中的数据是否更新的操作,从先删除列在重新插入的方式来修改表格中的数据和直接修改表格中的数据两种不同的语句进行对比。可以明显看出UPDATE语句在小范围修改中更为便捷,但是在实际使用时,各自的语句有各自的有点,回归原点,还是要根据任务的需要来选用实际的语句。

3.SQL语句——数据查询

3.1SELECT语句一般查询和单表查询

SELECT语句从表格中的简单查询

USE Formula_one
SELECT 车手,车手积分,分站冠军数
FROM POINTS

执行结果

筛选出英国国籍的车手

USE Formula_one
SELECT 车手,国籍
FROM DRIVERS
WHERE 国籍='英国'

执行结果如下

SELECT语句更换列名并执行筛选条件

USE Formula_one
SELECT 车手,分站杆位数 AS'杆位数',分站冠军数 AS'冠军数'/*更换列名*/
FROM POINTS
WHERE 分站杆位数!<1 AND 分站冠军数!<1/*筛选条件杆位数和冠军数大于1*/

执行结果图如下

为便于年度比较,将车手所得的积分数进行排序操作(降序)

USE Formula_one
SELECT 车手,车手积分
FROM POINTS
ORDER BY 车手积分 DESC
/*ASC升序 DESC降序*/

执行结果

SELECT语句一般查询和单标查询在Formula_one中的常见应用如筛选出车手的积分、分站杆位数、分站冠军数等操作到此结束.除此之外,SELECT语句还可进行算数运算、比较筛选、字符匹配等一系列操作,具有强大的功能。

3.2连接查询

将DRIVERS表和POINTS表连接,查询各车手的详细信息和得分数

USE Formula_one
SELECT DRIVERS.*,POINTS.*
FROM DRIVERS,POINTS
WHERE DRIVERS.车手=POINTS.车手


多表连接查询_LEFT OUTER(左外连接)
(车手积分查询系统)

USE Formula_one
SELECT DRIVERS.车手,DRIVERS.选用车号,POINTS.车手积分
FROM DRIVERS LEFT OUTER JOIN POINTS ON DRIVERS.车手=POINTS.车手

多表连接查询
将车手的姓名、车号、所属车队和车手积分从多个表中连接,执行并形成一个表
(Formula_one车手积分榜系统)
/将POINTS表中的车手、车手积分和DRIVERSTATES表中车手所属车队和DRIVERS表中车手选用车号相连接/

SELECT POINTS.车手,DRIVERS.选用车号,DRIVERSTATES.所属车队,POINTS.车手积分
FROM POINTS,DRIVERSTATES,DRIVERS
WHERE POINTS.车手=DRIVERS.车手 AND DRIVERS.车手=DRIVERSTATES.车手


多表连接查询,可以将我们所需要的具有一定关系数据进行筛选并连接形成所需要的关系表格
上述所示的三个多表连接实例操作,分别形成了车手的详细信息、车手积分榜和车手、车号及其所属车队的积分榜的输出,主要用于Formula_one系统中的排名分数系统,当然上述所示的历程也可以通过代码的改编达到同样的效果。

3.3嵌套查询

在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块WHERE子句或HAVING短语的条件中。就叫做嵌套查询。
常见的有:带有IN谓词的子查询、带有比较运算符的子查询、带有ANY、SOME、ALL谓词的子查询
例如以下对带有IN谓词的子查询进行举例,对DRIVERS表中的英国车手进行查询,并显示对应车手的姓名。

USE Formula_one
SELECT 车手
FROM DRIVERS
WHERE 国籍 IN(SELECT 国籍FROM DRIVERSWHERE 国籍='英国')

3.4章节小结

查询语句主要分为单表查询和多表查询,在上述给出的例子中,数据可以通过单表查询根据对应的约束值找到对应的数据,也可以根据数据间的关系(多表查询)找出对应约束关系下的数据,总之,请根据实际需求来优化自己的查询方式。

4.数据库视图创建及应用

4.1视图

视图是从一个或几个基本表(或视图)导出来的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。视图类似于一个窗口,可以用于对数据库中感兴趣的数据进行监视。
视图一经定义,就可以和基本表一样被查询、删除,也可以在一个视图上再定义新的视图,但对视图的更新(增、删、改)操作则有一定的限制。

4.2视图的创建、修改和删除

创建一个英国车手的视图

USE Formula_one
GO
CREATE VIEW 英国车手
AS SELECT 车手,国籍,选用车号,出生时间 FROM DRIVERS WHERE 国籍='英国'


创建一个车手姓名、车队、车号、车手积分的赛季积分榜视图

USE Formula_one
GO
CREATE VIEW 赛季积分榜
AS SELECT DRIVERSTATES.车手,所属车队,车手积分
FROM DRIVERSTATES,POINTS
WHERE DRIVERSTATES.车手=POINTS.车手
GO


将视图修改为筛选出车手积分数大于100的车手

ALTER VIEW 赛季积分榜
AS SELECT DRIVERSTATES.车手,所属车队,车手积分
FROM DRIVERSTATES,POINTS
WHERE DRIVERSTATES.车手=POINTS.车手 AND 车手积分!<100
GO


视图插入值操作在对应视图中可进行图形化操作
删除视图

DROP VIEW 赛季积分榜

操作后会发现数据库“视图”选项中已无对应的视图,如下图所示

4.3视图知识点补充

1.视图类似于用户端的窗口,这些数据会将用户所关心的数据呈现在用户面前,并简化用户查询数据时的操作
2.视图能够针对机密数据提供安全保护,即不同等级的用户对应所能查询到的数据有限,针对对应的数据形成保护机制
3.视图使用户能以多种角度看待同一数据。视图机制能使不同的用户以不同的方式看待同一数据,当许多不同种类的用户共享同一个数据库时。

4.4章节小结

视图是从一个或几个基本表中导出来的一个“虚表”。不同约束下的视图对应的数据显示的不同,并且其中的数据会随基本表的数据变化而变化。除此之外,视图能够像基本表一样被查询、删除。

5.数据库数据完整性

数据库完整性是衡量数据库中数据质量好坏的标准,是确保数据库中数据的正确性和唯一性的重要保证,是规划数据的结构以使其更加便于管理的重要手段

5.1数据库完整性

数据库完整性一般包括实体完整性、域完整性和参考完整性三个方面:

  1. 实体完整性:又称行完整性,确保表中行的唯一性。实体完整性要求表中有一个主键,真值不能为空,且能够唯一标识一行。
  2. 域完整性:又称范围完整性,确保列的取值的有效性。
  3. 参照完整性:又称引用完整性,确保父表与子表中数据的一致性

满足数据完整性的数据一般有以下特点:

  1. 数据的取值范围符合要求;
  2. 数据在表中的唯一标识;
  3. 数据与其他表中的相关数据相匹配。

例如TEAMS表中的车队为主键,而DRIVERSTATES表中的车队为外键,前者为父表,后者为子表。

5.2缺省与规则

缺省是为列提供数据的一种方式,规则是用户进行INSERT或UPDATE操作时,对输入列中的数据设定的取值范围
缺省与规则有以下特点:

  1. 缺省与规则是数据库对象,他们是独立于表和列而建立的;
  2. 缺省与规则建立后与列或者数据类型产生关联,列和数据类型就具有了缺省与规则的属性;
  3. 缺省和规则定义后,可以重复使用,可以绑定到多个列或者数据类型上;
  4. 缺省与规则不随表同时调入内存,当用到时才会被调入内存,这可能是程序执行出现延迟。
    (特别注意:缺省与规则不是ANSI标准,不推荐使用,相比应尽可能使用约束)
    例如将,TEAMS表中制造商冠军的选项只能为“是”或者“否”
CREATE RULE rul_制造商冠军
AS @制造商冠军 IN('是','否')


将对应规则绑定到对应列

EXEC sp_bindrule'rul_制造商冠军','TEAMS.制造商冠军'

5.3数据约束

创建含有列约束的表格

USE Formula_one
CREATE TABLE DRIVERS(车手 char(8) not null,出生时间 smalldatetime not null,国籍 char(20) not null,车手状态 char(10) not null,选用车号 smallint not null,备注 text not null );

由于前文中有执行过类似操作,不做过多赘述

5.3.1主键约束

主键约束:为了确保更新或引用数据时行定位的唯一性,必须为每一个表设定主键,主键可以是单独的列,也可以是多个列的联合。
主键的特性:

  1. 每一个表仅能有一个主键;
  2. 主键值不可为NULL,该表在表内是唯一的,即没有重复值;
  3. 主键已经具有UNIQUE的特性,作为主键的列不能再被定义成UNIQUE约束;
  4. IMAGE和TEXT类型的列不能作为主键
  5. 主键具有自动检索的作用,不能人为取消。
    用命令操作定义主键约束
USE Formula_one
CREATE TABLE DRIVER(车手 char(8) not null PRIMARY KEY CLUSTERED,出生时间 smalldatetime not null,国籍 char(20) not null,车手状态 char(10) not null,选用车号 smallint not null,备注 text not null );

上述操作中将“车手”这一列定义为主键约束,同时完成此操作也可以“编辑前200行”中的表格中进行图形化操作。
唯一约束和外键操作类似于主键约束,但各自的用处不一样,如唯一约束是表中已有主键约束,若再想唯一性定义,则可使用唯一约束。外键约束则是用于两表之间实现一对一或一对多的关系。除此之外,还有缺省约束和CHECK约束。

5.4章节小结

缺省和规则代码相对更容易维护,但受制于不属于ANSI标准,不方便移植。缺省和规则不仅是能够重复使用的对象,并且属于面向对象的开发方式,但缺省和规则是与数据库分离的对象。

6.存储过程

通常存储过程用来提供交互式查询的客户端接口,满足用户指定条件的查询需求

6.1存储过程的特点和类型

存储过程是指在一个执行规划中预先定义并编译好的一组T-SQL语句,存放在数据库中,可由用户随时调用。
存储过程的特点:
1).执行速度快
2).减少网络流量
3)作为一种安全机制。
4)屏蔽T-SQL命令,提供交互查询用户接口,增加数据库应用的方便性.
存储过程的类型:
1).内建存储过程

  1. 目录存储过程
  2. 系统存储过程
  3. 复制存储过程
  4. 事务存储过程
  5. 扩充存储过程

2).本地存储过程

  1. 永久存储过程
  2. 临时存储过程

6.2存储过程的相关操作

创建储存过程,来查询车手的积分,并执行

CREATE PROCEDURE 荷兰车手查询;1 @DRIVERS_国籍 char(20)='荷兰%'AS SELECT 车手,国籍FROM DRIVERSWHERE 国籍 LIKE @DRIVERS_国籍
GOEXECUTE 荷兰车手查询 '荷兰'

执行结果如下:

将触发器的名字不发生变更,但是将触发器的操作改为类似于前文中“车手积分榜”的操作,并执行

ALTER PROCEDURE 荷兰车手查询
WITH ENCRYPTION
AS
SELECT DRIVERS.车手,DRIVERS.国籍,DRIVERS.选用车号,POINTS.车手积分
FROM DRIVERS,POINTS
WHERE DRIVERS.车手=POINTS.车手
GOEXECUTE 荷兰车手查询

查询结果如下

删除上述的存储过程“荷兰车手查询”

USE Formula_one
DROP PROCEDURE 荷兰车手查询
GO

6.3章节小结

存储过程是在服务器中的代码,用以提高服务器的性能,是用户使用EXECUTE命令调用执行的,与后文的触发器不同,触发器属于“被动”触发。

7.触发器

触发器通常用来检测用户对表的操作是否符合整个应用系统的需求和商业规则,增加数据访问的安全性和方便性,维持表内数据的完整性。在执行方式上,储存过程与触发器不同,存储过程是由用户使用EXECUTE命令调用执行它,触发器是当用户对表进行操作(如建修改或删除数据)失误时被触发而自动执行。

7.1触发器的概念和类型

触发器是在定义数据库时,作为表的一部分而创建的,当表发生变化时触发器被激活,触发器代码自动运行,用户不能专门调用触发器,也不能阻止触发器的触发,除非拥有足够的权限才能禁止触发器工作。
触发器的类型:AFTER触发器和INSTEAD OF触发器

7.2触发器的作用

触发器是数据库对象,是表定义的一部分,主要用于保护表中的数据,触发器的作用为:

  1. 保证数据的完整性
  2. 数据同步变化
  3. 执行存储过程
  4. 代替规则、复杂的缺省和约束
USE Formula_one
GO
CREATE TRIGGER DRIVERS_TRIGGER1
ON DRIVERS
FOR INSERT
AS
PRINT 'DATA INSERT SUCCESSFUL'
GO/*下面插入一行数据作为测试*/
INSERT INTO DRIVERS
VALUES('测试1','','','','','')

结果显示

除此之外,还可以设计各种“个性化”的触发器,当用户使用对应的语句时触发对应的触发器。

8.附录(以下待编号)

8.1所用到的表格

原始数据表格(以下表格仅记录2022世界一级方程式锦标赛阿布扎比收官战之前的数据)
数据可能有轻微错误,如有发现,请联系小编改正



8.2参考书目

《SQL Server基础教程(第三版)》董翔英 主编

8.3所使用到的软件

Microsoft SQL Server Management Studio 18
Office Excel 2019专业增强版
Xmind

世界一级方程式锦标赛_Formula one小型查询数据库设计实例相关推荐

  1. 超大型Oracle数据库设计实例

    超大型系统的特点为: 1.处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB: 2.系统必须提供实时响应功能,系统需不停机运行,要求系统有很高的可用性及可扩展性. 这篇是笔者针对 ...

  2. 篮球赛场数据统计系统数据库设计实例

    篮球赛场数据统计系统数据库设计实例 研究内容(篮球赛场数据统计系统)    1)比赛前对球队.球员各项基本信息的录入功能: 2)比赛时对进球得分.各种进球类型以及裁判评判情况等数据和信息的记录功能: ...

  3. 数据库设计实例 教务管理系统

    数据库实验七 数据库设计 题目要求: 设计一个教务管理系统.要求管理包括:学生的档案,学生选课的情况,学生每学期的综合测评,教师档案,教师工作量等等.具体考核方法根据自己了解的实际情况处理. 假设此次 ...

  4. MYSQL数据库设计和数据库设计实例(一)

    数据库设计(database design):数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理要求,满足各种用户 ...

  5. MYSQL数据库设计和数据库设计实例(二)

    数据库设计---需求分析 1>需求分析的主要任务或者说主要的作用是:通过详细的调查现实世界要处理的对象,了解计算机系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能, 还需要考虑 ...

  6. 【转】数据库设计实例一学习

    ​​​​​​数据库1​​​​​​​​​​​​​​​​​​​​​对多,1对1,M对N学习  以RBAC为例.​​​​​​​​​​​​​​ 于 RBAC(Role-based Access Control ...

  7. oracle数据库设计实例

    1)要求 设计一个网上购物程序(使用powerdesigner建立模型并编写测试数据).有一下需求: 管理员可以在后台添加商品,每个商品属于一个商品组 可以对管理员进行分组,对每一组进行分别授权,即一 ...

  8. 第4章 数据库设计---数据库原理及应用

    目录 一.数据库设计方案 1. 数据库应用架构设计:单用户.集中.CS.分布 2. 数据库结构设计:概念.逻辑.物理 3. 数据库应用访问方式设计:访问方式 数据库结构设计模型 概念数据模型:概念,不 ...

  9. mySQL教程 第1章 数据库设计

    E-R设计 很多同学在学SQL语句时,觉得非常困难,那是因为你在学一个你根本不了解的数据库,数据库中的表不是你设计的,表与表之间的关系你不明白.因此在学SQL语句之前,先介绍一下数据库设计. 下面举例 ...

最新文章

  1. arcgisserver修改服务器地址,ArcGIS for Server默认端口6080修改
  2. 大球分析系统_烧成系统如何提高熟料后期强度
  3. 互联网秒杀设计--转载
  4. 4.4 为什么使用深层表示-深度学习-Stanford吴恩达教授
  5. 挑选SaaS企业需要注意十要素
  6. 入门机器学习(三)--课后作业解析-线性回归(Python实现)
  7. 关于es6的一些文章
  8. SpringMVC学习一
  9. jmeter html测试脚本,Jenkins如何实现自动运行jmeter脚本并出具报告
  10. 如何将 namedtuple 转换为字典或常规元组
  11. 明天支付宝就开始提现收费了!这几招可以让你受用
  12. oracle非延迟约束,Oracle可延迟约束Deferable的使用
  13. python 获取二维数组所有元素
  14. 计算机二级公共知识总结,计算机二级公共基础知识考点总结
  15. 测试用例(测试大纲法)
  16. Firefox中文版与英文版转换
  17. Mysql——DQL(查询语句语法、格式、举例)以及全部数据库源码,复制就可实现全部功能
  18. MLE的数值确定:Newton-Raphson迭代法、得分法
  19. php多线程原子操作,C语言线程互斥和原子操作
  20. 自从有了物联网,人类便能感知地球。

热门文章

  1. 2021安徽护理副高考试成绩查询,全国卫生人才网2021护士资格考试合格成绩查询官网...
  2. 初步探讨BitTorrent文件的结构
  3. windows之升级win10后输入密码却无法进入系统
  4. 如何万网域名解析亚马逊服务器,使用aws ELB后关于proxy_pass 的域名解析问题
  5. 无网络状态下CentOS无线网卡驱动安装
  6. CentOS mini 7下离线安装rabbitmq
  7. 领域、子域和限界上下文概述
  8. 课程作业1-数据预处理以及 python对函数求导
  9. mysql快速生成100W条测试数据(8)全球各城市人口及经济增长速度并存入mysql数据库
  10. 前瑞银大牛:区块链如何变革传统金融两大应用模式?