suchen
HeimDatenbankMySQL-Tutorial 第一章 数据库的设计

1.1 为什么需要规范的数据库设计 在第一阶段,根据业务需求,我们直接创建库、创建表、插入测试数据,然后再查询数据,为什么现在需要强调先设计再创建库、创建表呢?原因非常简单,正如我们修造建筑物一样,如果您是盖一间茅屋或一间简易平房,您会花钱请人

1.1 为什么需要规范的数据库设计

  在第一阶段,根据业务需求,我们直接创建库、创建表、插入测试数据,然后再查询数据,为什么现在需要强调先设计再创建库、创建表呢?原因非常简单,正如我们修造建筑物一样,如果您是盖一间茅屋或一间简易平房,您会花钱请人设计房屋图纸吗?毫无疑问,没人请。但是,如果是房地产开发商开发一个楼盘,修建多栋楼的居住小区,他会请人设计施工图纸吗?答案是肯定的,不但开发商会考虑设计施工图纸,甚至很多专业的购房者也会在看房时要求开发商出示设计图纸。

  同样道理,在实际的项目开发中,如果系统的数据存储量较大,设计的表比较多,表和表之间的关系比较复杂,我们就需要首先考虑规范的数据库设计,然后再进行具体的创建库、创建表的工作。不管是创建动态网站,还是创建桌面窗口应用程序,数据库设计的重要性都不言而喻。如果设计不当,查询起来就非常吃力,程序的性能也会受到影响。无论您使用的是SQL Server 还是 Oracle 数据库,通常进行规范化的数据库设计,美国服务器,都可以使您的程序代码更具体可读性,更容易扩展,从而也会提升项目的应用性能。

  1. 什么是数据库设计

  数据库设计就是将数据库中的数据对象以及这些数据对象之间关系,进行规划和结构化的过程。

  2. 数据库设计非常重要

  数据库中创建的数据结构的种类,以及在数据对象之间建立的复杂关系是决定数据库系统效率的重要因素。

  糟糕的数据库设计表现为以下几点。

  (1)效率底下。

  (2)更新和检索数据时会出现许多问题。

  良好的数据库设计表现为以下几点。

  (1)效率高。

  (2)便于进一步扩展。

  (3)使得应用程序开发变得更容易。

1.2 设计数据库的步骤

  经过了毕业设计项目开发、我们对项目的开发有了一个整体上的认识,项目开发需要经过需求分析、概要设计、详细设计、代码编写、运行测试和打包发行几个阶段。下面,重点讨论在各个阶段中数据库的设计过程。

    需求分析阶段:分析客户的业务和数据处理需求。

    概要设计阶段:绘制数据库的E-R模型图,用于在项目团队内部、设计人员和客户之间进行沟通,确认需求信息的正确性和完整性。

    详细设计阶段:将E-R图转换为多张表,进行逻辑设计,确认各表的主外键,并应用数据库设计的三大范式进行审核。经项目组开会讨论确定后,还需根据项目的技术实现、团队开发能力以及项目的经费来源,选择具体的数据库(如SQL Server或Oracle等)进行物理实现,包括创建库、创建表,并创建我们后面将要学习的存储过程等。创建完毕后,开始进入代码编写阶段,开发前端应用程序。

  现在,我们共同讨论在需求分析阶段,后台数据库的设计步骤。

  需求分析阶段的重点是调查、收集并分析客户业务的数据需求、处理需求、安全性与完整性需求。

  常用的需求调研方法有在客户的公司跟班实习、组织召开调查会、邀请专人介绍、设计调查表,并请用户填写、查阅业务相关数据记录等。

  常用的需求分析方法有调查客户的公司住址情况、各部门的业务需求情况、协助客户分析系统的各种业务需求、确定新系统的边界。

  物理数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考下列基础步骤。

  (1)收集信息。

  (2)标识对象。

  (3)标识每个对象需要存储的详细信息。

  (4)标识对象之间的关系。

  1. 收集信息

  创建数据库之前,必须充分理解数据库需要完成的任务和功能。简单地说,我们需要了解数据库需要存储哪些信息(数据),实现哪些功能。

  2. 标识对象(实体)

  在收集需求信息后,必须标识数据库要管理的关键对象或实体。对象可以是有形的事物,如人或产品;也可以是无形的事务,如商业交易,公司部门或发薪周期。在系统中标识这些对象以后,与它们相关的对象就会条理清楚。

  3. 标识每个对象需要存储的详细信息(属性)

  将数据库中的主要对象标识为表的候选对象以后,下一步就是标识每个对象存储的详细信息,也称为该对象的属性,这些属性将组成表中的列。简单地说,就是需要细分出每个对象包含的子成员信息。

  4. 标识对象(实体)之间的关系

  关系型数据库有一项非常强大的功能,它能够关联数据库中各个项目的相关信息。不同类型的信息可以单独存储,但是如果需要,数据库引擎可以根据需要将数据组合起来。在设计过程中,要标识对象之间的关系,需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加关系列建立起表之间的连接。

1.3 绘制E-R(实体-关系)图

  在需求分析阶段解决了客户的业务和数据处理需求后,就进入了我们的概要设计阶段,我们需要和项目团队的其他成员以及我们的客户沟通,讨论数据库的设计是否满足客户的业务和数据处理需求。和机械行业需要机械制图,建筑行业需要施工图一样,我们的数据库设计也需要图形化的表达方式---E-R(Entity-Relationship)实体关系图,它包括一些具有特定含义的图形符号。

1.3.1 实体-关系模型

  1. 实体

  所谓实体就是指现实世界中具有区分其他事物的特征或属性并与其他实体有联系的对象。例如,BBS论坛系统中的用户(如张三、李四、王五等)、帖子、板块(动画板块、情感天地板块等)等,实体一般是名词,它对应我们表中的一行数据,例如张三用户这个实体,将对应于“用户表”中,张三用户所在的一行数据,包括他的密码、出生日期、电子邮件等信息。严格地说,实体是指表中一行一行的特定数据,但我们在开发时,也常常把整个表也称为一个实体。

  2. 属性

  属性可以理解为实体的特征。例如,“用户”这一实体的属性有昵称、出生日期和电子邮件等。属性对应表中的列。

  3. 关系

  关系是两个或多个实体之间的联系。

  如图所示为用户实体和版块实体之间的关系。实体使用方块表示,实体一般是名词,属性使用椭圆标识,一般也是名词,关系使用菱形标识,一般是动词。

  

  4. 映射基数

  映射基数表示可以通过关系与实体关联的其他实体的个数。对于实体集X和Y之间的二元关系,映射基数必须为下列基数之一。

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
深入理解MySQL索引优化器工作原理深入理解MySQL索引优化器工作原理Nov 09, 2022 pm 02:05 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于索引优化器工作原理的相关内容,其中包括了MySQL Server的组成,MySQL优化器选择索引额原理以及SQL成本分析,最后通过 select 查询总结整个查询过程,下面一起来看一下,希望对大家有帮助。

sybase是什么数据库sybase是什么数据库Sep 22, 2021 am 11:39 AM

sybase是基于客户/服务器体系结构的数据库,是一个开放的、高性能的、可编程的数据库,可使用事件驱动的触发器、多线索化等来提高性能。

数据库系统的构成包括哪些数据库系统的构成包括哪些Jul 15, 2022 am 11:58 AM

数据库系统由4个部分构成:1、数据库,是指长期存储在计算机内的,有组织,可共享的数据的集合;2、硬件,是指构成计算机系统的各种物理设备,包括存储所需的外部设备;3、软件,包括操作系统、数据库管理系统及应用程序;4、人员,包括系统分析员和数据库设计人员、应用程序员(负责编写使用数据库的应用程序)、最终用户(利用接口或查询语言访问数据库)、数据库管理员(负责数据库的总体信息控制)。

visual foxpro数据库文件是什么visual foxpro数据库文件是什么Jul 23, 2021 pm 04:53 PM

visual foxpro数据库文件是管理数据库对象的系统文件。在VFP中,用户数据是存放在“.DBF”表文件中;VFP的数据库文件(“.DBC”)中不存放用户数据,它只起将属于某一数据库的 数据库表与视图、连接、存储过程等关联起来的作用。

microsoft sql server是什么软件microsoft sql server是什么软件Feb 28, 2023 pm 03:00 PM

microsoft sql server是Microsoft公司推出的关系型数据库管理系统,是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理,具有使用方便可伸缩性好与相关软件集成程度高等优点。SQL Server数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使用户可以构建和管理用于业务的高可用和高性能的数据应用程序。

access数据库的结构层次是什么access数据库的结构层次是什么Aug 26, 2022 pm 04:45 PM

结构层次是“数据库→数据表→记录→字段”;字段构成记录,记录构成数据表,数据表构成了数据库。数据库是一个完整的数据的记录的整体,一个数据库包含0到N个表,一个表包含0到N个字段,记录是表中的行。

数据库的什么是指数据的正确性和相容性数据库的什么是指数据的正确性和相容性Jul 04, 2022 pm 04:59 PM

数据库的“完整性”是指数据的正确性和相容性。完整性是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。完整性对于数据库系统的重要性:1、数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据;2、合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能;3、完善的数据库完整性有助于尽早发现应用软件的错误。

mysql查询慢的因素除了索引,还有什么?mysql查询慢的因素除了索引,还有什么?Jul 19, 2022 pm 08:22 PM

mysql查询为什么会慢,关于这个问题,在实际开发经常会遇到,而面试中,也是个高频题。遇到这种问题,我们一般也会想到是因为索引。那除开索引之外,还有哪些因素会导致数据库查询变慢呢?

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools